# What does "address resolution at the byte level" mean?

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?

• Try searching for "byte level addressing" or "byte-addressable" instead. May 31, 2015 at 0:59
• Ahh i see thank you. So the way I understand it. The processor processes a word at a time. A word is made up of bytes. Byte level addressing supports accessing individual bytes inside those words? May 31, 2015 at 1:03
• @committedandroider - Not strictly true: byte-level addressing supports the addressing of bytes within a word; whether these bytes can be accessed depends on the CPU instruction set. In practice, most CPUs allow byte strings to be compacted within words and provide instructions to access them individually, and in such cases your assertion is correct.
– AFH
May 31, 2015 at 1:46

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:

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.

• "By contrast, ... a word addressable memory architecture." -- This was a common trait of "minicomputers" circa 1970s. Minicomputers were defined as low-cost computer systems, i.e. much cheaper than a mainframe. They often had 16-bit words (and other cost-cutting features) until Interdata introduced the 32-bit mini. Addressing a word instead of a byte increased the addressable memory capacity (counting in bytes). That's important when the maximum address is only 32K (e.g. Data General Nova) or 64K. Jun 1, 2015 at 3:04
• Common, perhaps, but the PDP-11, which Wikipedia refers to as “the most popular minicomputer ever,” introduced in 1970, was the garden where Unix grew — and it was byte addressable. Jun 1, 2015 at 3:54

I would understand "address resolution at the byte level" to mean that moving to the next 64-bit word requires adding 8 to the address. That is, the numerical address measures the number of bytes apart addresses are.