[comp.sys.amiga] Memory question

OHA101%URIACC.BITNET@mitvma.mit.edu (F. Michael Theilig) (08/11/89)

     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.

     /*   F. Michael Theilig               OHA101 at URIACC.Bitnet

            "There is no Dark Side in the Moon, really ...
                                  matter of fact it's all dark."       */

ckp@grebyn.com (Checkpoint Technologies) (08/12/89)

In article <21467@louie.udel.EDU> OHA101%URIACC.BITNET@mitvma.mit.edu (F. Michael Theilig) writes:
>
>     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.

	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.
-- 
First comes the logo: C H E C K P O I N T  T E C H N O L O G I E S      / /  
                                                                    \\ / /    
Then, the disclaimer:  All expressed opinions are, indeed, opinions. \  / o
Now for the witty part:    I'm pink, therefore, I'm spam!             \/

451061@UOTTAWA.BITNET (Valentin Pepelea) (08/12/89)

"F. Michael Theilig" <OHA101%URIACC.BITNET@mitvma.mit.edu>
writes in Message-ID: <21467@louie.udel.EDU>

>      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.

Each memory location contains a byte. (8 bits) On 16-bit systems, you can
read or write 16 bits at a time. (2 bytes) On 32-bit systems, you can access
32 bits at a time. That is much faster, because the hardware has to specify
the address accessed only once instead of 4 times. Depending on the
architecture, it is also much faster to access 32-bit data on 4-byte aligned
an instant address error. (That's Guru 00000003 for you and me)

Valentin
_________________________________________________________________________
The godess of democracy? "The           Name:   Valentin Pepelea
tyrants may destroy a statue,           Phonet: (613) 231-7476
but they cannot kill a god."            Bitnet: 451061@Uottawa.bitnet
                                        Usenet: Use cunyvm.cuny.edu gate
                   - Confucius          Planet: 451061@acadvm1.UOttawa.CA

jam@lonex.radc.af.mil (Joel A. Mussman) (08/14/89)

>>     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

451061@uottawa.bitnet (Valentin Pepelea) (08/14/89)

The line eater ate up a the 14th line of one of my previous postings. This is
how it should have looked like:

----------------------------Corrected message----------------------------
"F. Michael Theilig" <OHA101%URIACC.BITNET@mitvma.mit.edu>
writes in Message-ID: <21467@louie.udel.EDU>

>      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.

Each memory location contains a byte. (8 bits) On 16-bit systems, you can
read or write 16 bits at a time. (2 bytes) On 32-bit systems, you can access
32 bits at a time. That is much faster, because the hardware has to specify
the address accessed only once instead of 4 times. Depending on the
architecture, it is also much faster to access 32-bit data on 4-byte aligned
addresses. On the 68000, accessing 16-bit data on odd addresses will produce
an instant address error. (That's Guru 00000003 for you and me)

Valentin
_________________________________________________________________________
The godess of democracy? "The           Name:   Valentin Pepelea
tyrants may destroy a statue,           Phonet: (613) 231-7476
but they cannot kill a god."            Bitnet: 451061@Uottawa.bitnet
                                        Usenet: Use cunyvm.cuny.edu gate
                   - Confucius          Planet: 451061@acadvm1.UOttawa.CA