Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!bcm!dimacs.rutgers.edu!rutgers!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: comp.sys.amiga.advocacy Subject: Re: AMIGAstation... Message-ID: <19294@cbmvax.commodore.com> Date: 25 Feb 91 18:59:12 GMT References: <19154@cbmvax.commodore.com> <19110@cbmvax.commodore.com> <1991Feb16.180604.10623@magnus.ircc.ohio-state.edu> <12013@helios.TAMU.EDU> <1991Feb12.053906.10441@magnus.ircc.ohio-state.edu> <1991Feb16.062147.24843@NCoast.ORG> <2290@ria.ccs.uwo.ca> <2311@ria.c Reply-To: daveh@cbmvax.commodore.com (Dave Haynie) Organization: Commodore, West Chester, PA Lines: 61 In article <2352@ria.ccs.uwo.ca> ptoper@obelix (Andy Nagy) writes: >In article <19154@cbmvax.commodore.com>, daveh@cbmvax.commodore.com >(Dave Haynie) writes: >> In article <2311@ria.ccs.uwo.ca> ptoper@obelix (Andy Nagy) writes: >>> Also, just out of curiosity, what were the design decisions you used >> >to come up with this arrangement, >> The main tradeoff started out as, do we enforce our original 32 bit >> addressing constraint by locating motherboard memory above 68000 space, or >> do we cut the folks who did it wrong yet another break. Once we took in >> the possibility of 16MB rather than 4MB, though, there was no choice to >> make. We had to have the extra space. > Huh? I think I missed something here. (What do you mean by "did it >wrong", and 16MB vs 4MB ?) "Did it wrong" == People who, intentionally or unintentionally, broke our original rule that all Amiga code had to run in a full 32 bit address space. The 68000 hardware gives you only 24 bits of actual address. Some lazy hacker types in the early days of 68000 coding figured they could stuff some useful stuff in the extra 8 bits of address pointers. Knowing of this practice, the original pre-A1000 ROM Kernel Manuals made this practice strictly forbidden. But this didn't stop everyone from doing it anyway. Since the A2500 systems only cames with 4MB of RAM, there was space in the 68000/24-bit memory map for this extra memory. Since these systems didn't use any non-24 bit memory, such illegal programs could still work on them. If we had only supported 4MB of memory on the A3000 motherboard, we might have done something similar. Since we were able to specify a memory device that would support either 4MB or 16MB on the motherboard, it was obvious that we could not even consider locating this memory in the 24 bit address space. So such illegal programs break on the A3000. >Would you please explain again about having both the 68030 and the 68040 >working concurrently would work. I got the impression that it was only >a matter of software for each processor to actually make this idea fly. Given the design of the A3000, and an appropriate 68040 board, this is just "a simple matter of software". However, that hardly makes it simple software. For example, Exec isn't necessarily going to be happy at all dealing with multiple CPUs; just because a routine is capable of being multi-threaded, does not mean it can be mult-processed. For example, it can lock out any context switches during critical sections of code by using Disable() or Forbid(). But it can't lock out an alternate processor the same way; you have to assume both processors are, in reality, running at the same time. So tightly coupled symmetric multiprocessing, the thing most everyone thinks of when you say "both processors run at once", requires lots of OS rethinking. Even for UNIX. Once you decide that the whole OS runs on only one of the processors, you can simplify things greatly. But that will limit the usefulness of the second processor. >Andy Nagy (ptoper@asterix.gaul.csd.uwo.ca) -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "What works for me might work for you" -Jimmy Buffett