Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!gatech!udel!mmdf
From: jam@lonex.radc.af.mil (Joel A. Mussman)
Newsgroups: comp.sys.amiga
Subject: Re: Memory question
Message-ID: <21648@louie.udel.EDU>
Date: 14 Aug 89 14:55:38 GMT
Sender: mmdf@udel.EDU
Lines: 54

>>     It is my understanding that each memory location is 8 bits wide
>> even on a 16 bit machine.  And that this holds true for 32 bit machines.
>> What (without getting TOO technical) is the difference between 16 and 32
>> bit RAM?  Someone refered to 32 bit RAM as being wider.  I'm confused.
>>
>	Good question. All memory *addresses*, to the programmer, are
>the address of a particular byte. However, the memory organization can
>be different.
	
	At least on most *normal* modern machines, there are exceptions
	to every rule (see Honeywell?).

>	The memory 'width' indicates the number of bits that can be
>moved between the CPU and memory in one 'memory cycle', whose duration
>depends on the machine; on the Amiga, one 'memory cycle' is usually 4
>clock cycles, each being 1/7,160,000th of a second). On an 8 bit CPU,
>you can get 8 bits at a time, exactly one 'byte'. On the 68000 in the
>Amiga, it can get 16 bits at one time, meaning it can move twice as
>many bits in the same amount of time. (It doesn't *always* use 16 bits
>at a time; it depends on the program.) The 68020 can get 32 bits at a
>time, twice as many as the 68000.

	This sounds a little complicated, I would like to make my
	humble attempt at enlightenment.

	The movement of data from memory to the processor is divided into
	two parts.  The first depends on the size of the machine, be it
	8bit, 16bit, or 32bit.  What this really means is that the
	smallest memory unit you can work with is normally a byte, and
	the largest is normally the size of a register in your particular
	processor (68000 = 32 bit registers).
	
	The second part is how data is moved from memory to the registers
	and back.  This takes place over a device named the 'data bus',
	which you may envision as a series of wires, each corresponding
	to a bit in memory (or a register).  For example, if you want to
	move 32 bits of memory, and have a 32bit data bus, you can move it
	in one swoop.  If you have a 16bit bus you have to make two "grabs".
	Of course you are allowed to move memory elements smaller than
	the data bus, a byte only takes up eight bits of the bus.  Also
	it should be apparent that this only takes one "grab".

	Side note:  the bitsize of a machine is ususally calculated from
	the register size, not the data path.

	Anyways, the 68020/30 has a wider data bus than the 68000, so
	it can make 32bit moves.   The Amiga, being designed around the
	68000, has its main memory centered around a smaller data bus.
	Thats why third party vendors sell memory boards which offer a
	separate connection to add-on processor boards, so you can add
	memory that is accessible at a higher rate.

Joel A. Mussman
jam@lonex.radc.af.mil