地址总线

地址总线

我有一台 64 位 x86 (x86-64) 计算机。这是否意味着我的地址总线是 64 位?我正在尝试计算寻址能力和地址空间正如这里解释的那样

我真的不知道如何找到我的数据总线大小。

如果有帮助的话,这是我的 CPU 的规格(我认为这是相关的东西)

規格詳細信息。

还,维基芯片关于我的 CPU 有什么要说的吗?这是否有帮助

在此处输入图片描述

答案1

地址总线

目前还没有任何 x86-64 系统具有 64 位地址总线。

要查找您的地址总线大小类型。

grep 'address sizes' /proc/cpuinfo

在 Debian Gnu/Linux 上测试。

我明白了

address sizes   : 39 bits physical, 48 bits virtual

这意味着

  • 最多可寻址 2³⁹ 字节(2⁹ GB = ½TB),用于 ROM、RAM、IO……
  • 每个进程最多可以寻址 2⁴⁸ 字节(2⁸ TB = 256TB)的虚拟内存。

物理内存可能还有其他限制,这些限制是在 CPU 之外施加的:RAM 插槽的数量、每个插槽的容量……

数据总线

x86-64 的数据总线逻辑宽度为 64 位。但是物理大小由制造商选择。他们可以随意选择,而不会影响行为。例如,在 32 位或 16 位总线上多路复用 64 位,或者在 128 位总线上发送两个 64 位值。

串行总线使这一切变得更加混乱。我们通过 1 位总线发送所有数据,但速度非常快(事实证明,让总线变宽很难,即使对于 2 位宽的总线,也很难让它运行得更快)。然后我们添加多通道。我不知道细节,但看过很多关于这方面的好资源。

答案2

该 CPU 可以寻址 64 GiB。64 位双通道,36 条地址线。但是:Razer Blade 15 限制为 32 GiB。

DDR4-2666 或 LPDDR3-2133. 64 位宽 = 8 字节(3 位地址)

回答

因此,要寻址 32 GiB 或 4GiW 千兆字,只需要 35-3 位字地址 = 32 位地址即可访问 32 GiB

1 个字 = 8 个字节 = 2^3 个字节,因此 CPU 可以寻址 4GiW = 32GiB。(“i” 表示字节的二进制版本……例如 1024,而不是十进制版本 1000 是千)

答案3

除了一些人所说的内容之外,问题的整个性质“我如何才能找到我的计算机的地址总线宽度和数据总线大小?”告诉我它来自旧的计算机科学教科书。我不知道它在现代系统或过去 20 年的系统中有多大程度的适用性。

有些回答者不知道问题出在哪里,所以我来回答一下。为了直接回答你的问题,我只能说我不确定数据总线和地址总线的概念有多大程度上适用。它必须以某种方式适用。你可以查找“字长”,这是一个非常模糊的术语,我在最后提到了一点。

对于那些不理解这个问题的人来说,这个问题假设一个模型,其中有一条内存总线、一条数据总线和一条控制总线。

 CPU<---address bus--------->main memory(RAM)
 CPU<---data bus------------>main memory(RAM)  

而且我不记得控制总线和 IO 是如何发挥作用的,以至于无法制作我自己的图表,但我自己在这里画了一张图片,但这是一张图片。90 年代末的一本书可能有这个,可能在 2000 年代初,甚至可能是 2010 年以后。现在是 2020 年。但这看起来像是你的问题的来源。我在 90 年代末、2000 年代初看到的信息。那可能仍然存在/仍在教授。即使在 90 年代后期也是老派的。

在此处输入图片描述

和这里

在此处输入图片描述

这在现代建筑中是否仍然适用?可能不适用。

在此处输入图片描述

这里提到了哈佛模型和冯·诺依曼架构https://www.polytechnichub.com/difference-harvard-architecture-von-neumann-architecture/

你可以使用 DMAhttps://tspradeepkumar.wordpress.com/2008/07/15/direct-memory-access/

如果我知识更丰富一些,我就可以向你展示这些架构是如何演变成我们今天所拥有的!然后识别地址总线和数据总线,或它们的等效总线!这才是真正回答问题并回答好它的方法。我只能说现代系统可能比那种架构更复杂。

有一个可怕的术语叫做“字大小”,它的含义非常模糊......并且可能在某种程度上回答你的问题......“字大小”是指数据总线的大小,还是 CPU 寄存器的大小,谁知道呢......但如果它指的是数据总线,那么你很幸运,如果它指的是 CPU 通用寄存器大小,那么它们可能与数据总线大小相差不远。

现代处理器(包括嵌入式系统)的字长通常为 8、16、24、32 或 64 位

我过去也遇到过类似的问题,很难找到答案,但希望这些信息能够对您的探索有所帮助。

很多时候,信息只在特定领域提供。当实际需要时,设计 CPU 的人会知道真相,而其他人会得到某种“工作模型”。(例如,技术人员经常对 Web 服务器存在根本性的误解,只有当他们有机会编写一个 Web 服务器时,他们才会发现自己存在误解)。CPU 制造商可能会制作一些“白皮书”或大量有关它的细节,但可能需要强大的电子背景才能真正理解。

计算机科学教科书的内容与现代建筑的真相之间存在某种脱节,我还没有在书中看到过这座桥,尽管我几年前看过。当人们更详细地谈论这些事情时,他们会举出英特尔 8086 和英特尔 8088 的例子!(它们是 20 世纪 70 年代末的) https://en.wikipedia.org/wiki/Intel_8088 “8088 有一个 8 位外部数据总线,而不是 8086 的 16 位总线”

答案4

x64 指的是 64 位架构。比较容易混淆的是,x86 指的是 32 位系统。

最大地址空间是通过简单地提高 2^n 来计算的,例如对于 32 位,它是 2^32 = 4294967296(4 GB)。

对于 64 位来说,可能的地址空间相当大

2^64 = 1.8446744e+19

因此,在现实世界中你不会找到实际的实现。你可以购买的实际系统不需要利用全部可能的地址空间,并且(目前)昂贵主板上的最大内存量为 512Gbhttps://www.mwave.com.au/motherboards/server-workstation-motherboards

相关内容