Memory Bus Addressing: Understanding Offsets in System Architectures

  • Thread starter TheAnalogKid83
  • Start date
  • Tags
    Bus Memory
In summary: Nowadays this is how virtually all CPUs internally address memory, unless they have some special feature or are using some older protocol.In summary, a computer has 64 bit address space and uses byte-address to interface with memory devices that have fewer than 64 bits address range. If a device needs to be addressed at a byte-address, the last two address lines are replaced by four byte-select lines. With dynamic memory addressing, the actual address line number is halved when the request is for a new memory location not located on-page.
  • #1
TheAnalogKid83
174
0
I've been looking at system architectures, and it seems almost always, a specific device on the memory bus uses a staggered type of addressing. What I mean by this is that say you have a chip select exclusive to 1 device. The address bus may have lines A[25:0], but instead of matching each address up (A0 of the memory controller to A0 of the device, A1 to A1, and so on), they are offset like maybe A10-A22 of the controller are attached to A0-A12 of the peripheral correspondingly.

I know each chip select has its own mapping, but why bother with the different addressing offsets? If its important, how do I know what I'm doing? There seems little reason that I can see from just looking at a schematic. I know some devices have page mode, where you're actually accessing a chunk of data, so maybe this is the only reason to have offsets? Along these lines, I've noticed almost always that the LSB of the controller address lines are the ones skipped.

Please, can someone with some experience with this give me an idea of what's going on here? Any tips for when I want to do this with different devices?
 
Engineering news on Phys.org
  • #2
I'm not completely sure I understand your question. But I think the answer is to reduce the number of bits for addressing.

Consider a computer with 64 bit address range. How would it interface with memory devices having fewer than 64 bits address range? Clearly, you must partition the 64 bit range so that each device can take an address relative to the partition start.
 
  • #3
I'm not sure if this is what you are asking about but something like this started with the 80386 CPU (among the PCs, I mean). Since the CPU had 32bit data bus the original byte-addressing became problematic, so the last two address lines were replaced by four byte-select lines.
Later on as the internal caches became common the actual addressing on the memory is no longer byte-address, but whole cache line address, since the whole data block were moved in bursts every time it got addressed: for example i7 has 64 byte cache line size which is always filled with one memory transaction, so the last six lines of a byte-address is omitted.
A further trick comes with the usage of dynamic memory addressing: as there is separate row and column address, the actual address line number is halved (with half the address provided only if the new request is off-page).
 
  • Like
Likes anorlunda

1. What is a memory bus?

The memory bus is a communication pathway that connects the central processing unit (CPU) to the computer's memory. It allows the CPU to access and retrieve data from the memory for processing.

2. What is memory bus addressing?

Memory bus addressing is a method used by the CPU to identify and access specific locations in the computer's memory. Each memory address is a unique identifier for a specific byte of data in the memory.

3. What is an offset in memory bus addressing?

An offset in memory bus addressing is an additional value added to a base memory address in order to access a specific byte of data within a larger block of memory. It is used to specify the exact location of the data within the memory block.

4. How does understanding offsets help in system architectures?

Understanding offsets in memory bus addressing is important for optimizing system architectures. By utilizing offsets, data can be accessed and retrieved more efficiently, reducing processing time and improving overall system performance.

5. Are there different types of memory bus addressing?

Yes, there are two main types of memory bus addressing: physical addressing and virtual addressing. Physical addressing uses the physical memory addresses assigned to each byte of data, while virtual addressing uses logical addresses that are translated into physical addresses by the memory management unit (MMU).

Similar threads

  • Computing and Technology
Replies
10
Views
2K
  • Computing and Technology
Replies
14
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
5
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
4K
  • Engineering and Comp Sci Homework Help
Replies
4
Views
3K
Replies
3
Views
2K
  • Computing and Technology
Replies
1
Views
4K
Back
Top