13 December 2019, 12:33 | #1 |
Amiga user
Join Date: Nov 2008
Location: Sofia / Bulgaria
Posts: 456
|
Does the Amiga really Multitask?
Everybody knows that AmigaOS is one of the first widely available multitasking operating systems, but can the hardware itself multitask without the main CPU doing the task switching itself? I mean can the Paula play without the CPU feeding data to it, can the Blitter/Copper do graphic jobs, without the CPU telling them all the time what to do?
There are some hardware of the late 1980s/early 1990 (arcade games, consoles like Sega Mega Drive and SNES) where separate processors for the sound/music and graphics can do their job independently and they have their own memory address space, I/O ports etc, like the Z80 in the Genesis/Mega Drive, but can the Amiga do similar multitasking jobs independently? |
13 December 2019, 12:43 | #2 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,409
|
On the Amiga, the Copper can execute a Copper list. Copper lists can blit (do graphic jobs), play samples, set up the screen, display/move sprites, etc. It is even possible to write a Copper list so that the Blitter feeds in new instructions into the Copper list (though this is definitely not for the faint of heart) so that things change from frame to frame without CPU intervention.
If desired, this can all be done without CPU assistance once it is running (again, not easy). The CPU will be required to set up the Copper list once though. Edit: just to clarify, the Copper list doesn't have to be this advanced for it to still run without CPU intervention. Even if it isn't complicated, it will still run on it's own without needing the CPU. Many games use the Copper to set up the screen and sprites every frame, or to do screen splits. There are so many options because the Copper list is basically a program telling the Copper what to do. The Copper in turn is a very limited special purpose processor which then executes the program in the list. So the answer is basically yes. Most games and demos still use the CPU for plenty of these tasks though Last edited by roondar; 13 December 2019 at 12:50. |
13 December 2019, 12:55 | #3 |
-
Join Date: Jul 2003
Location: Helsinki / Finland
Age: 43
Posts: 9,861
|
Yes, Paula plays samples with DMA. At some point you must give a new buffer to play of course.
Denise also streams picture data from chip RAM with DMA. But the word for this is not really multitasking. :-) If it were, the C64's VIC-II would also be multitasking. |
13 December 2019, 13:49 | #4 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,409
|
Actually, all the Amiga custom chips (Paula, Denise, Agnus) do DMA.
But what I was talking about was the Copper controlling the chipset, which is rather different. After all, no matter how tiny, the Copper is a small CPU that runs it's own program to control these things. Which is definitely not the same as 'just' DMA |
16 December 2019, 13:19 | #5 |
-
Join Date: Jul 2003
Location: Helsinki / Finland
Age: 43
Posts: 9,861
|
Yeah, I should have perhaps quoted some part of drHirudo's post, it was in reply to him more than you.
Copper, blitter and such are closer to parallel processing, than multitasking. :-) |
16 December 2019, 14:11 | #6 |
Registered User
Join Date: Jan 2005
Location: Umeå
Age: 43
Posts: 922
|
When they say multitasking, what usually is referred to is the OS possibility to run applications simultaneously.
More specifically the preemptive multitasking ability of AmigaOS, where it will switch between tasks disregarding where in the code they are - the applications don’t need to do anything to facilitate the multitasking taking place (like making a system call for a task switch to happen). And with only one CPU, the tasks will not actually be running simultaneously, but the task switches happen so often that it feels like that. |
16 December 2019, 20:06 | #7 |
Moderator
Join Date: Jan 2002
Location: Chicago, IL
Posts: 3,375
|
Whatever the Amiga is doing it’s damn good.
|
17 December 2019, 13:00 | #8 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,908
|
|
17 December 2019, 14:30 | #9 |
MI clan prevails
Join Date: Jul 2010
Location: Belgrade, Serbia
Posts: 1,443
|
*Incoming Amiga can't really multitask and 386 PCs did true multitasking for less money posts*
|
17 December 2019, 15:20 | #10 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,908
|
|
17 December 2019, 17:55 | #11 |
Not a Rebel anymore
Join Date: Apr 2005
Location: UK
Age: 51
Posts: 497
|
Even modern PC's with multi-core CPU's still do multi-tasking in much the same way the Amiga did, just scaled across multiple cores. You still have to run small amounts of each process in turn otherwise the number of processes would be limited to the number of cores. Multi-tasking is just a piece of software that schedules each process for a time slice and determines which processes need attention and how much time they get.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
|
|