Byte addressable memory

Why the memory is still byte-addressable? Would it make any difference for a 64/32 bit processor, if it could only access 64/32 bit chunk?

Reply to
v4vijayakumar
Loading thread data ...

It makes a HUGE difference. In a large majority of programs, that run on computers that use the memory that you are talking about, the data is often only byte wide. Take character sets for example that are used for information and document exchange. Older stuff all used byte-wide data and even now Unicode at 16-bits represents an almost complete working set. If computers of 64-bit width used all 64-bits in each data element to represent a character for example much space goes to waste. If software has to pack and unpack smaller sized data to and from

64-bit wide memory there is a large performance impact. Thus the solution is to make memory byte addressable even though it may be present on a 64-bit bus. Of course the 64-bit bus being there to provide full width data flow when the application warrents the highest performance.

- mkaras

Reply to
mkaras

Obvious guess is memory wastage for smaller data.

Don't know it would make processor circuit complex, but we can encode smaller data it in different ways, and stuff enough information into a word and then move to memory. Right?

Reply to
v4vijayakumar

That's the compiler's job, and the source of the performance impact in some cases.

Reply to
OBones

I dont think all types of memory is actually byte adressable - that is one of the things one must specifically progam into the memory controller on PowerQuick and Athlon64's: Each memory range essentially has it's own state machine for load/store etc.

The default is "byte mode" to be able to boot from ROM and to program the state machines in the RAM* but this is done "manually" by using only the lower 8 data lines!

On the physical SDRAM/DDR memory busses you will always get a/(a series of) the full width 64/32 bit load(s). Once the data is loaded the memory controller and the cache colludes to make the data byte adressable.

Seen from the application "the right thing" happens.

*Setting up modern RAM to work with the memory controller is a major pain in the butt; especially mapping the weasel words of the documentaion into bits to flip - at both ends!
Reply to
Frithiof Andreas Jensen

mostly for 8086 compatibility.

some architectures do that.

--

Bye.
   Jasen
Reply to
jasen

Of course this doesn't take into account computers with other than 2^n bit word widths. I have worked with computers with 12 bits, 15 bits, 18 bits,

30 bits, and 36 bits. Some of these used characters of 6 bits and some used characters of 9 bits. The 18 bit and 30 bit computers also supported 5 bit Baudot (early teletype) code.
--
 JosephKK
 Gegen dummheit kampfen die Gotter Selbst, vergebens.  
  --Schiller
Reply to
joseph2k

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.