代码之家  ›  专栏  ›  技术社区  ›  claws

对处理器的地址行不需要更多的说明

  •  3
  • claws  · 技术社区  · 15 年前

    Why can’t OS use entire 64-bits for addressing?

    来自“4.2字母信号参考” Intel Core 2 Duo Processor E8000 and E7000 Series - Datasheet 我知道它有36个地址行;64条数据线。数据表将地址行表示为A[35:3],数据行表示为D[63:0]。

    1. 因为,有36个地址行。总可寻址内存为2^36=64GB,每个物理内存位置(字节)由36位数字寻址。
    2. 因为,没有提到[2:0]。这意味着MMU(更具体地说是寻呼单元)在将虚拟地址转换为物理地址(借助地址表)之后,它只在地址行A上放置33个最高有效位[35:3]。RAM发送所有8个可能的字节(使用3个LSB,A[2:0]),即对于这8字节范围内的任何请求。RAM发送相同的8字节数据。正确的?我想这样做是为了提高效率。
    3. 接下来会发生什么?我的意思是MMU需要1字节的数据,但是RAM发送了8字节。怎么处理?
    4. 自从启用intel PAE后,这个地址总线宽度是36位吗?
    5. 在新的处理器数据表中找不到地址总线和数据总线宽度 (Intel® Core™ i7 Processor Extreme Edition ). :( 帮助我!
    2 回复  |  直到 8 年前
        1
  •  2
  •   Nathan Fellman    15 年前

    要访问地址0x1,您需要在[35:3]上加上所有的零,并将其设置为[1](我可能认为管脚号和极性有点错误,但这个想法仍然是正确的)。

    要访问字节0x3:0x0,您需要在[35:3]上加上所有的零,并设置为[3:0]。

    这应该回答问题1、2和3。

    无法帮助5。。。

        2
  •  0
  •   Quonux    15 年前

    当然,不能在任何地方使用3*64位,因为SSE单元与128位线连接到一级缓存(当然是两条64位缓存线)。

    这三个通道只适用于同时快速预取不同的地址。

    推荐文章