Yesterday, while I was pondering over Why can’t OS use entire 64-bits for addressing? I found another interesting thing. Lets take Intel Core 2 Duo Processor for example.
From "4.2 Alphabetical Signals Reference" of Intel Core 2 Duo Processor E8000 and E7000 Series - Datasheet I came to know that it has 36 address lines & 64 data lines. Data sheet refers address lines as A[35:3] and data lines as D[63:0].
What exactly does this imply? This is my understanding (with few unanswered questions) from above:
- Since, there are 36 address lines. Total addressable memory is 2^36=64GB and each physical memory location (byte) is addressed by 36-bit number.
- Since, A[2:0] is not mentioned. It implies that MMU (Paging unit to be more specific) after translating virtual address to physical address (with the help of Address tables) it only puts 33 most significant bits on address lines A[35:3]. RAM sends all 8 possible bytes (with 3 LSB, A[2:0]) i.e.. for any request in these 8 byte range. RAM sends the same 8 byte data. right? I guess this is done for efficiency purposes.
- What happens next? I mean MMU needed 1 byte data but RAM sent 8 bytes. How is it gonna handle it?
- Is this adress bus width been 36-bits since intel enabled PAE?
- I'm unable to find address-bus and data-bus width in new processor datasheets (Intel® Core™ i7 Processor Extreme Edition). :( Help me!