Re: A couple of DRAM memory stick questions ??

2009-10-08 Thread Bill Davidsen

Patrick O'Callaghan wrote:

On Wed, 2009-09-30 at 10:55 -0400, William Case wrote:

I'll take that information to the bank.  To state it another way just
to make sure I've got it.  A typical physical address goes to, or
points to,  8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 cells arranged side-by-side
in a line on an individual DIMM/DRAM stick. 


+8 more if it's parity memory, or more for ECC memory.


I suspect that by thinking of address as divided into bytes rather
than a single 64 bit word (dword, qword, -- pick your author) there is
a natural division for instructions, numbers and characters within the
'word'. Or, is there some physical reason why it is thought of as 8 +
8 ...


It's the data that's stored in units of 8 bits. When addresses are
stored then of course the same applies. When they're on the address
lines of the memory bus, they may be in groups of 16 or 32 or 64
(depends on the bus design). None of this matters to you as a
programmer.

Note that the pedantic name for a group of 8 bits is "octet". A "byte"
is the number of bits required to represent a character in some
encoding. Nearly all modern machines have 8-bit bytes and are
byte-addressed, so we tend to equate "byte" with "8 bits", but I've used
machines where addresses refer to 12-bit words, and the DEC-10 famously
had 36-bit words and a configurable byte size, usually set to 6.

The GE-600/6000 line had 36 bits also, and could use 6 or 9 bit characters. We 
used ASCII with the unused high bit as end of string. MULTICS was developed on a 
GE-645, leading to UNIX, leading to Linux. Sort of.


Nomenclature: 8 bits is a byte, 4 bits is a nybble, 2 bits is a quarter. That's 
probably only funny to old programmers in the USA, sorry.


--
Bill Davidsen 
  "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot

--
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-30 Thread William Case
Hi poc, Markku.

I think I have what I wanted.  Thanks for taking the time.

On Wed, 2009-09-30 at 12:02 -0430, Patrick O'Callaghan wrote:
> On Wed, 2009-09-30 at 12:03 -0400, William Case wrote:
> > Thanks poc;


> > 
> > Then what was Markku referring to when he said "A typical 64-bit DIMM
> > "stick" has eight 8-bit wide chips."  The chip is one of the minute
> > black chips I can just barely see on a RAM stick --?  That is what I
> > originally thought.
> 
> Yes.
> 
> > Markku's statement then implies that a 64 bit qword is stored in an 8 x
> > 8 array of cells.  True?
> 
> No. If a 64-bit wide DIMM has 8 chips on it you can be highly confident
> in saying the chips are 8 bits wide, but their depth is another matter.
> And the fact that the chip presents an 8-bit wide interface doesn't mean
> that the internal organization is in 8x8 bit arrays, though it might be.
> 
> Furthermore, the 64 bits in a word will pretty much *never* be stored in
> a single 8x8 array. They'll be stored in a number of parallel arrays for
> speed of access, usually across 8 separate chips.
> 

Ah, back to 8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 cells arranged side-by-side in
a line on an individual DIMM/DRAM stick.  OK, that's good enough for the
personal visualization I wanted.  I understand that this can vary, but
once one has a basic configuration in mind, it only requires mild mental
gymnastics to move the parts and pieces around in one's head as long as
the parts and pieces are still all there,

> Again: this level of detail (the array size) is essentially invisible to
> the programmer.

I know.  My objective is not primarily for programming but for
understanding how a machine (basically an appliance) plugged into a wall
socket can do so much.

> 
> > By the Way:
> > The definition of a 'word' seems to be all over the place.
> > 
> > With Intel, the definition I have read says a 'word' is 16 bits, a
> > 'double word (dword)' is 32 bits, and a 'quadruple word (qword)' is 64
> > bits.
> 
> That's true of Intel. It's not necessarily true across all computer
> architectures (in fact it isn't, as I mentioned in my previous reply).
> 
> > The specs for the 64 bit AMD CPU I used to have defined a 'word' as
> > whatever the machine said it was.  In my case at the time, a 'word'
> > would have been 64 bits.  
> 
> A word is normally considered to be the unit of the bus cycle of the
> machine (but see the above discussion of dual-cycle implementations) and
> coincides with the maximum addressable range of virtual memory (physical
> memory can be less, or even more in some cases). It usually also
> coincides with the size of the most common machine instructions, those
> these can also vary depending on the architecture.
> 
> Good introductions to this stuff are Hennessy and Patterson, or
> Tanenbaum's Computer Organization book.

I have both books and read them a couple of years ago, cover to cover.
You would be surprised how much I was able to understand and retain.  I
made copious notes at the time. I am presently re-reading and putting
those notes into a meaningful form for myself. But learning is an
iterative process.  Any questions I ask now are fill-in questions or
questions I didn't think to ask at the time.  Now that I know better
where and how to look, I can do MOST of the research myself, but an
occasional hand is greatly appreciated.

The advantage of being able to mentally visualize a process is that I
find it easier to see logic gaps; to ask myself questions like "hey wait
a minute; how did that get from here to there?".

> 
> > I raised the question of 'words' with my local Linux Users Group and
> > simply got caught in a long debate amongst them with huge digressions
> > that resolved nothing to my satisfaction.
> 
> That's because only hardware nuts and operating system geeks really
> care :-)
> 

Thanks again for your time.


-- 
Regards Bill
Fedora 11, Gnome 2.26.3
Evo.2.26.3, Emacs 23.1.1

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-30 Thread Patrick O'Callaghan
On Wed, 2009-09-30 at 12:03 -0400, William Case wrote:
> Thanks poc;
> 
> Then it gets confusing again!
> 
> On Wed, 2009-09-30 at 10:53 -0430, Patrick O'Callaghan wrote:
> > On Wed, 2009-09-30 at 10:55 -0400, William Case wrote:
> 
> > 
> > It's the data that's stored in units of 8 bits. When addresses are
> > stored then of course the same applies. When they're on the address
> > lines of the memory bus, they may be in groups of 16 or 32 or 64
> > (depends on the bus design). None of this matters to you as a
> > programmer.
> > 
> Understood -- I think.  Put another way, on a 64 bit machine if the
> memory bus is 32 lines wide the data, or whatever, would flow with the
> first 32 bits immediately followed by the second 32 bits -- right?

Right. Some implementations might have a bus with two cycles per word,
i.e. it's cheaper but slower. Intel has done that on occasion.

> (I am trying to avoid discussing whether data flows on the rising edge
> or falling edge of a clock tick etc.)

Please :-)

> > Note that the pedantic name for a group of 8 bits is "octet". A "byte"
> > is the number of bits required to represent a character in some
> > encoding. 
> > 
> > > When you say "chips" above I assume you mean cell, i.e. chip = cell =
> > > 1 capacitor and 1 transistor for storage of 1 bit.
> > 
> > A chip has a whole bunch of cells (in the millions these days). They
> > aren't the same.
> 
> Then what was Markku referring to when he said "A typical 64-bit DIMM
> "stick" has eight 8-bit wide chips."  The chip is one of the minute
> black chips I can just barely see on a RAM stick --?  That is what I
> originally thought.

Yes.

> Markku's statement then implies that a 64 bit qword is stored in an 8 x
> 8 array of cells.  True?

No. If a 64-bit wide DIMM has 8 chips on it you can be highly confident
in saying the chips are 8 bits wide, but their depth is another matter.
And the fact that the chip presents an 8-bit wide interface doesn't mean
that the internal organization is in 8x8 bit arrays, though it might be.

Furthermore, the 64 bits in a word will pretty much *never* be stored in
a single 8x8 array. They'll be stored in a number of parallel arrays for
speed of access, usually across 8 separate chips.

Again: this level of detail (the array size) is essentially invisible to
the programmer.

> By the Way:
> The definition of a 'word' seems to be all over the place.
> 
> With Intel, the definition I have read says a 'word' is 16 bits, a
> 'double word (dword)' is 32 bits, and a 'quadruple word (qword)' is 64
> bits.

That's true of Intel. It's not necessarily true across all computer
architectures (in fact it isn't, as I mentioned in my previous reply).

> The specs for the 64 bit AMD CPU I used to have defined a 'word' as
> whatever the machine said it was.  In my case at the time, a 'word'
> would have been 64 bits.  

A word is normally considered to be the unit of the bus cycle of the
machine (but see the above discussion of dual-cycle implementations) and
coincides with the maximum addressable range of virtual memory (physical
memory can be less, or even more in some cases). It usually also
coincides with the size of the most common machine instructions, those
these can also vary depending on the architecture.

Good introductions to this stuff are Hennessy and Patterson, or
Tanenbaum's Computer Organization book.

> I raised the question of 'words' with my local Linux Users Group and
> simply got caught in a long debate amongst them with huge digressions
> that resolved nothing to my satisfaction.

That's because only hardware nuts and operating system geeks really
care :-)

poc

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-30 Thread William Case
Thanks poc;

Then it gets confusing again!

On Wed, 2009-09-30 at 10:53 -0430, Patrick O'Callaghan wrote:
> On Wed, 2009-09-30 at 10:55 -0400, William Case wrote:

> 
> It's the data that's stored in units of 8 bits. When addresses are
> stored then of course the same applies. When they're on the address
> lines of the memory bus, they may be in groups of 16 or 32 or 64
> (depends on the bus design). None of this matters to you as a
> programmer.
> 
Understood -- I think.  Put another way, on a 64 bit machine if the
memory bus is 32 lines wide the data, or whatever, would flow with the
first 32 bits immediately followed by the second 32 bits -- right?

(I am trying to avoid discussing whether data flows on the rising edge
or falling edge of a clock tick etc.)

> Note that the pedantic name for a group of 8 bits is "octet". A "byte"
> is the number of bits required to represent a character in some
> encoding. 
> 
> > When you say "chips" above I assume you mean cell, i.e. chip = cell =
> > 1 capacitor and 1 transistor for storage of 1 bit.
> 
> A chip has a whole bunch of cells (in the millions these days). They
> aren't the same.

Then what was Markku referring to when he said "A typical 64-bit DIMM
"stick" has eight 8-bit wide chips."  The chip is one of the minute
black chips I can just barely see on a RAM stick --?  That is what I
originally thought.

Markku's statement then implies that a 64 bit qword is stored in an 8 x
8 array of cells.  True?


By the Way:
The definition of a 'word' seems to be all over the place.

With Intel, the definition I have read says a 'word' is 16 bits, a
'double word (dword)' is 32 bits, and a 'quadruple word (qword)' is 64
bits.

The specs for the 64 bit AMD CPU I used to have defined a 'word' as
whatever the machine said it was.  In my case at the time, a 'word'
would have been 64 bits.  

I raised the question of 'words' with my local Linux Users Group and
simply got caught in a long debate amongst them with huge digressions
that resolved nothing to my satisfaction.

-- 
Regards Bill
Fedora 11, Gnome 2.26.3
Evo.2.26.3, Emacs 23.1.1

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-30 Thread Patrick O'Callaghan
On Wed, 2009-09-30 at 10:55 -0400, William Case wrote:
> I'll take that information to the bank.  To state it another way just
> to make sure I've got it.  A typical physical address goes to, or
> points to,  8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 cells arranged side-by-side
> in a line on an individual DIMM/DRAM stick. 

+8 more if it's parity memory, or more for ECC memory.

> I suspect that by thinking of address as divided into bytes rather
> than a single 64 bit word (dword, qword, -- pick your author) there is
> a natural division for instructions, numbers and characters within the
> 'word'. Or, is there some physical reason why it is thought of as 8 +
> 8 ...

It's the data that's stored in units of 8 bits. When addresses are
stored then of course the same applies. When they're on the address
lines of the memory bus, they may be in groups of 16 or 32 or 64
(depends on the bus design). None of this matters to you as a
programmer.

Note that the pedantic name for a group of 8 bits is "octet". A "byte"
is the number of bits required to represent a character in some
encoding. Nearly all modern machines have 8-bit bytes and are
byte-addressed, so we tend to equate "byte" with "8 bits", but I've used
machines where addresses refer to 12-bit words, and the DEC-10 famously
had 36-bit words and a configurable byte size, usually set to 6.

> When you say "chips" above I assume you mean cell, i.e. chip = cell =
> 1 capacitor and 1 transistor for storage of 1 bit.

A chip has a whole bunch of cells (in the millions these days). They
aren't the same.

poc

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-30 Thread William Case
Thank you Markku;

The cell arrangement of DRAM has been frustrating me for a long time
now.  Probably more because I set out to find an answer than because it
was something I needed to know.

The additional questions below simply sprung to mind as I was reading
your response and are only secondary.

On Wed, 2009-09-30 at 12:07 +0300, Markku Kolkka wrote:
> William Case kirjoitti viestissään (lähetysaika keskiviikko, 30. 
> syyskuuta 2009):
> > The second diagram shows a set of 4 X 4 arrays  -- with a
> > major disclaimer about its accuracy at the bottom.  I have
> > also seen other sites plus a couple of text books I own that
> > show the cell arrangement as a linear setup.  But only for 32
> > bit machines.  I found nothing for 64 bit DRAM.
> 
> The bit width of the CPU has no effect on the DRAM chip layout.

I know.  I only mentioned the CPU registers to avoid someone taking a
lot of time explaining the difference between SRAM and DRAM.  Perhaps
mentioning latches only confused the issue.

>  
> You simply connect enough chips in parallel to achieve the 
> desired data bus width. A typical 64-bit DIMM "stick" has eight 
> 8-bit wide chips.

I'll take that information to the bank.  To state it another way just to
make sure I've got it.  A typical physical address goes to, or points
to,  8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 cells arranged side-by-side in a line
on an individual DIMM/DRAM stick. 

I suspect that by thinking of address as divided into bytes rather than
a single 64 bit word (dword, qword, -- pick your author) there is a
natural division for instructions, numbers and characters within the
'word'. Or, is there some physical reason why it is thought of as 8 +
8 ...

When you say "chips" above I assume you mean cell, i.e. chip = cell = 1
capacitor and 1 transistor for storage of 1 bit.

-- 
Regards Bill
Fedora 11, Gnome 2.26.3
Evo.2.26.3, Emacs 23.1.1

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-30 Thread Markku Kolkka
William Case kirjoitti viestissään (lähetysaika keskiviikko, 30. 
syyskuuta 2009):
> The second diagram shows a set of 4 X 4 arrays  -- with a
> major disclaimer about its accuracy at the bottom.  I have
> also seen other sites plus a couple of text books I own that
> show the cell arrangement as a linear setup.  But only for 32
> bit machines.  I found nothing for 64 bit DRAM.

The bit width of the CPU has no effect on the DRAM chip layout. 
You simply connect enough chips in parallel to achieve the 
desired data bus width. A typical 64-bit DIMM "stick" has eight 
8-bit wide chips.

-- 
 Markku Kolkka
 markku.kol...@iki.fi

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-29 Thread William Case
Hi David;


On Mon, 2009-09-28 at 08:17 +1000, David Timms wrote:
> On 09/28/2009 01:07 AM, William Case wrote:
> > I have been re-reading some notes I have made on how DRAM works.  As a
> > result I have a couple of unanswered questions?
> http://en.wikipedia.org/wiki/Dynamic_random_access_memory
> has some pretty pictures, surely you found/searched that already ?
> 

Yes.  Found that a while ago.  It is a good example of why I am asking. 

The second diagram shows a set of 4 X 4 arrays  -- with a major
disclaimer about its accuracy at the bottom.  I have also seen other
sites plus a couple of text books I own that show the cell arrangement
as a linear setup.  But only for 32 bit machines.  I found nothing for
64 bit DRAM.  I do have the schematics for my CPU which has 64 bit SRAM
(latch) registers.

As I tried to explain, both probably exist, although I don't know that
for sure.  The actual operation of the DRAM isn't altered under either
arrangement.  The word line (row) and the bit line (column) are just
organized slightly differently.  The real problem is that the caption on
any diagram I view is never clear on whether I am being shown just a
concept or an actual arrangement.

I tend to visualize, in order to understand things better, such
operations as reading from and writing to memory .  It would help if I
could have in my mind's eye the actual arrangement of cells for the most
commonly used, current, DRAM for a 64 bit machine.

I have searched, on and off, over the last six months for something
definitive.  I have tried DRAM manufacturers sites for specifications
that would be helpful.  It seems that internal arrangements of memory
cells must be proprietary.

So I turned to the mail list to see if there where any engineers who
knew what the typical DRAM cell arrangement usually is.

-- 
Regards Bill
Fedora 11, Gnome 2.26.3
Evo.2.26.3, Emacs 23.1.1

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


Re: A couple of DRAM memory stick questions ??

2009-09-27 Thread David Timms

On 09/28/2009 01:07 AM, William Case wrote:

I have been re-reading some notes I have made on how DRAM works.  As a
result I have a couple of unanswered questions?

http://en.wikipedia.org/wiki/Dynamic_random_access_memory
has some pretty pictures, surely you found/searched that already ?

--
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines


A couple of DRAM memory stick questions ??

2009-09-27 Thread William Case
Hi;

For anyone, but particularly Les H.

I have been re-reading some notes I have made on how DRAM works.  As a
result I have a couple of unanswered questions?

1) This question is for personal visualization purposes. I fully realize
it makes no real difference on how DRAM works.  

What is the most common arrangement of memory cells (??) within a memory
stick.  It seems to be proprietary information?  I have seen schematics
of two possibilities; a) with each stored bit side-by-side for the
length of a 'word' or in my case a 'double word' (i.e. 64 bits), or, b)
in a 4 X 4 arrangement.  Is there some place in the DRAM manufacturer's
specification I could be looking to determine this?

As I said, this question is for no technical reason.  When I am thinking
about DRAM memory, I use a visualizations in my mind about what is
happening in memory.  I would like my mental vision of the process to be
as close to physical reality as possible.

2) When referring to DRAM memory, what is a 'cell'; is it physically one
bit (capacitor, transistor, lines and all) or is a cell a group of them?
If it is a group, from what I have read it is a bit ambiguous whether
'cell' refers to one 4 X 4 ( or one 16 bit linear) arrangement, one
'word' or one 'double word'?

-- 
Regards Bill
Fedora 11, Gnome 2.26.3
Evo.2.26.3, Emacs 23.1.1

-- 
fedora-list mailing list
fedora-list@redhat.com
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines