需要对处理器的地址线进行更多说明
昨天,当我思考 为什么操作系统不能使用整个 64 位来寻址? 我发现了另一个有趣的事情。我们以英特尔酷睿 2 双核处理器为例。
来自 Intel Core 2 双核处理器 E8000 和 E7000 系列的“4.2 字母信号参考” -数据表 我才知道它有 36 个地址线和 36 个地址线。 64条数据线。数据表将地址线称为 A[35:3],将数据线称为 D[63:0]。
这究竟意味着什么?这是我对上面的理解(有一些未回答的问题):
- 因为,有 36 个地址行。总可寻址内存为 2^36=64GB,每个物理内存位置(字节)由 36 位数字寻址。
- 因为,A[2:0] 没有被提及。这意味着 MMU(更具体地说是分页单元)在将虚拟地址转换为物理地址(借助地址表)后,仅将 33 个最高有效位放在地址线 A[35:3] 上。 RAM 发送所有 8 个可能的字节(具有 3 LSB,A[2:0]),即。对于这 8 字节范围内的任何请求。 RAM 发送相同的 8 字节数据。正确的?我想这样做是为了提高效率。
- 接下来会发生什么?我的意思是 MMU 需要 1 字节数据,但 RAM 发送 8 字节。它将如何处理?
- 自英特尔启用 PAE 以来,该地址总线宽度是否为 36 位?
- 我无法在新处理器数据表中找到地址总线和数据总线宽度(英特尔® 酷睿™ i7 处理器至尊版)。 :( 帮我!
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!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
芯片的字节使能 (BE) 引脚指定 8 字节块中的哪些位实际相关。
要访问地址 0x1,请将 A[35:3] 全部设为 0,并设置 BE[1](我的 BE 引脚编号和极性可能有点错误,但这个想法仍然是正确的)。
要访问字节 0x3:0x0,请将全零放在 A[35:3] 上并设置 BE[3:0]。
这应该回答问题 1、2 和 3。
关于问题 4,实际上 PAE 允许您使用 36 位地址。在后来的处理器中,可以通过 64 位模式分页来实现相同的效果。
无法帮助5...
The chip's byte-enable (BE) pins specify which of the bits in the 8-byte chunk are actually relevant.
To access address 0x1 you put all zeros on A[35:3] and set BE[1] (I may have the pin numbers and polarity for BE a bit wrong, but the idea is still correct).
To access bytes 0x3:0x0 you put all zeros on A[35:3] and set BE[3:0].
This should answer questions 1, 2 and 3.
Regarding question 4, it is in fact PAE that will allow you to use 36 bits of address. In later processors the same can be achieved with 64-bit mode paging.
can't help with 5...
约5:
Core i7 架构使用 3 个(片上)内存控制器(每个通道一个控制器),每个通道的宽度为 64 位。
但是当然你不能在任何地方使用3*64位,因为SSE单元通过128位线连接到L1缓存(当然是两个64位Chache线)。
这三个通道仅适用于同时快速预取不同地址。
但在 GPR 上你只能使用 64 位(因为它是 64 位架构)。
地址空间也应该是 36 位,因为如果你永远无法连接这么多内存,你将需要其他位来做什么。
About 5:
The Core i7 Architecture uses 3 (On Chip) Memory Controller (for each Channel one Controller) with a width of 64-Bit for each Channel.
But of course you can no where use the 3*64 Bit because the SSE units are conected with 128-Bit lines to the L1 cache(that are of course two 64-Bit Chache lines).
The three Channels are only useful for fast prefetching of different adresses at the same time.
But on GPR's u can only use 64-Bits (because it is a 64 Bit Architecture).
The adressspace should be 36 Bits too, because for what would you need the other bits if you could never connect so much memory.