Dickson@system-m.az05.bull.com (Paul Dickson) (05/15/91)
> Run the Exec on the 88000 as well as the 68000, so that C > programs could be compiled for the 88000 and still work. The > only really hairy parts would be Forbid() and Disable()... the > synch primitives. I think that at first these primitives will > have to stall both CPUs, or it'd be too hard to port stuff to > the 88000 side. Switching processes can be done with little to no halting if coded right even in a multiprocessing environment. It's not easy but it has been done and done well. It will have to be done if Exec is ever to run both the 68030 and 68040 cooperatively at the same time. Adding 88000 support at the same time would only take a significant fraction of effort more (significant, but much much less than twice the effort). The Multics operating system will run a user's process on the next available CPU, even allowing the user to choose from a subset of those available. Taking this concept to the Amiga, after loading a program the loader then selects which CPUs are needed to run. Of course the downside of this is that you've just doubled the amount of system code. But only code for one of the CPUs needs to be in ROM at startup, the other can be loaded into MMU protected later.