What does “address resolution at the byte level” mean

64-bitcachecomputer-architecturecpu-architectureresolution

Here is the problem I am working on

The Problem :A high speed workstation has 64 bit words and 64 bit addresses with address resolution at the byte level. How many words can in be in the address space of the workstation? Assuming a direct mapped cache with 8192 64 byte lines, how many bits are in each of the following address fields for the cache? 1) byte 2) Index 3) Tag?

I am trying to make sure I understand every term in the problem before I attempt to solve it. I understand the problem until the phrase "with address resolution at the byte level".

Does anyone know what this phrase means in this context? I know what a byte is and what an address is. An address would specify a location in computer memory that contains an instruction or data.

I did a Google search for this phrase but the results I got had to do with ARP, a protocol for mapping IP addresses but this question has to do with computer organization, not computer networking. I guess another way of asking this is does anyone know what this term means in a computer organization sense?

Best Answer

I touched on this subject in a presentation that I wrote a few years ago.  I had a slide that said

  • The bytes (typically octets) at addresses 2000 and 2001 can be accessed collectively as a word at address 2000
  • The bytes/octets at addresses 2000, 2001, 2002, and 2003 can be accessed collectively as a double word at address 2000

(Yes, it was so long ago that we were talking about 16-bit words.  Ouch.)  Anyway, I had the following graphic on the next slide:

Memory Addressing Illustration

It may help you (and future readers) to visualize the concept.


By contrast, the PDP-6, the PDP-10 (a.k.a. the “DEC 10”), and the DECSYSTEM-20, had a 36-bit word with a word addressable memory architecture.  This meant that numerically consecutive addresses such as 2000 and 2001 identified consecutive (non-overlapping) 36-bit words.  The architecture supported arbitrary bit fields that were, sometimes, loosely called “bytes”; for example, it was possible to have bytes ranging in size from 1 bit to 35 (or even 36) bits, and they could overlap.  This complexity, naturally, did not support a simple one-up numbering scheme for byte addresses (like what most contemporary machines use).  It was possible to address a byte within a word, but it required a compound address object that comprised the word address, the byte offset, and the byte size; these are mentioned superficially here.

Related Question