Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!apple!julius.cs.uiuc.edu!usc!ucsd!nosc!crash!pnet01!lkoop From: lkoop@pnet01.cts.com (Lamonte Koop) Newsgroups: comp.sys.amiga.hardware Subject: Re: Beginer Questions (How Does the amiga use MEMORY?) Message-ID: <6812@crash.cts.com> Date: 9 Jan 91 08:56:06 GMT Sender: root@crash.cts.com Organization: People-Net [pnet01], El Cajon CA Lines: 115 yorkw@stable.ecn.purdue.edu (Willis F York) writes: >Autoconfig RAM - Memory over the 512K Chip, where other data is stored. > No "Program" needs be run for the amiga to see it on boot up. > >Public RAM- (Got a better name?) NON-AutoConfig, if ya use ADRAM, and other > programs to tell the computer the memory is there it's Public. > >Fast RAM - Same as Autoconfig Ram (RIGHT???) > Not really. FAST RAM on the Amiga is any RAM out of the reach of the custom chips. It is known as FAST RAM because code and data may be accessed by the CPU there faster, as it does not have to deal with the bus contention in the CHIP RAM addressing space. Look at it like this: On the CHIP RAM bus, time has to be shared by both the processor and the custom chips. If the custom chips are very active at a given time, the CPU must wait for the bus to be free for it's use. [Some activities of the custom chips can 'cycle steal' from the CPU, causing it to be forced to wait]. Normally, the 68000 on the Amiga only needs the bus every alternate clock cycle in order to run full speed...thus the other cycles not used are taken up by the custom chips. However, when the blitter is in use, or the coprocessor (COPPER), you see some of this cycle stealing. As a result, the CPU can usually run quite close to full speed on the CHIP RAM bus, but there is almost always some activity which slows it down a bit. And of course any heavy graphics use will cause considerable slowing if the CPU is forced to run code out of the CHIP RAM area. Now, with FAST RAM on the system, the CPU can generally run full speed regardless, provided the code/data being accessed is in said FAST RAM, as the custom chips cannot access this memory medium, and are not using it's bus. Now, AutoConfig memory is basically a setup of the OS and the memory board which uses it. When a memory board is considered to be AutoConfig, the system will automatically configure it into the free memory pool upon startup. Basically, AutoConfig allows a board to be assigned to a memory address slot based on what is free on the system at configuration time, without your habing to configure it manually. On startup, the each board along the line (of physical slots in the machine) appears at a specific memory location ($E80000 I belive..but I'm not sure I remember offhand), and presents ID information, whereby it is configured to a suitable address space on the system. This done, the next board in line appears, and the same process repeats...on down the line until no further AutoConfig boards remain. Non-AutoConfig memory is not recognized in this manner, and is designed for a specific memory address location only. Using a program such as AddMem, or AddRAM, you are telling the OS where in the addressing space this board can be found, and adding it's memory to free pool list. >32 bit RAM - Better then the normal 16 bit RAM normally used. (More info??) No such animal. There is no difference in the chips themselves. What IS different is how they are accessed. On a 16 bit bus (16-bit memory), 16 bits of data can be operated on at one time (transferred about, etc...). The 32-bit bus can work with 32-bits of data at a time. Thus if you are running two different buses...on 16-bit and one 32-bit, the 32-bit bus can handle more data at a given interval (assuming appropriate processors for each and equivalent bus speeds). But this is handled at the interface logic and bus level...NOT within the memory chips themselves. A 256x4 chip is just that...not a 32-bit or 16-bit creature. >And on a chip is a Number and the last didgets tell the speed in >nano-seconds, 120ns is slow, 90-80 is ok, 60ns is fast and big $$$. > >If ya have slow memory chips then ya get into wait states. Not necessarily. You will only run into having to have wait states if the memory being utilized is slower than the speed at which the processor needs it to come back. For instance, FAST RAM on the A2000 (68000) is usually rated at 120-100ns...this is perfectly fine for zero-wait state operation on that bus. The processor is incapable of "asking for" the data any faster. Putting 80ns memory here would be a waste of money, as the processor will not be able to access it any faster. [The processor/bus is running at a certain speed...it will not speed up for faster memory]. Now, if you were to put 200ns parts on a FAST RAM expansion board, you would have to put some wait states into that. >Does the "ROM" get copied to "RAM" and get run (Bad word) from there? >(I heard this and it "seems" silly) I think you are confusing something done on accelerators here. On normal systems, the ROM code is run straight out of the ROM itself...no "copying to RAM" occurs. On many accelerators, (ones with an MMU in place), it is possible to take an "image" of that ROM, copy it to a faster medium (32-bitr bus area...the accelerator's memory area), then use the MMU to translate address requests to where the ROM image originally was to it's new (hopefully faster) location. THis is done to speed up the system ROM calls. However, normally the ROM is simply accessed directly. > >What's so important about "Fastmemfirst" ? Does it prevent the >using up of "CHIP" befor "Other" memory is full? How does it do it? Memory on the Amiga is prioritized. Now, normally CHIP RAM is given a priority on the system of -10. This is to insure it is not used by programs requesting simply "I want a chunk of memory", and not saying "and it needs to be CHIP". This helps prevent CHIP RAM from being used for things which do not need to be there. Now, FastMemFirst is special. On Amigas with 512K of CHIP RAM, the other 512K which make up the 1 meg std. complement is what is called "SLOW-FAST" RAM. This is because, while the custom chips cannot use it, it is still subject to the bus contention for CHIP RAM I mentioned earlier, as it is in fact on that bus. [When you upgrade to the 1-meg Agnus, this "SLOW-FAST" memory is what becomes the other 512K of CHIP RAM.] FastMemFirst is useful if you have this "SLOW- FAST" memory, and also have true FAST memory on the system. What it does is place your "SLOW-FAST" memory at the same -10 priority as CHIP RAM. Since most true FAST RAM will default to a priority of 0, it places your true FAST RAM ahead of the CHIP and SLOW-FAST memory on the memory lists. This is so programs which do not need to use CHIP RAM (and a program's actual CODE never does for the most part) will be placed in you FAST RAM, and run somewhat faster. SLOW-FAST and CHIP will only be used when either requested specifically by a program, or when your FAST RAM is filled. LaMonte Koop Internet: lkoop@pnet01.cts.com ARPA: crash!pnet01!lkoop@nosc.mil UUCP: {hplabs!hp-sdd ucsd nosc}!crash!pnet01!lkoop A scientist is one who finds interest in the kinetic energy of Jell-O moving at ridiculous velocities...an engineer is one who can find a real-life application for such silliness.