我读到过一篇文章,说我们可以计算出这种内存的带宽。假设内存时钟频率为 1600 MHz,没有双通道,带宽为 1600 MHz * 64 位 = 102400 Mbit/s,据我所知,这意味着内存在峰值性能下能够以 102400 Mbit/s 的速度传输数据。
同样,我们可以计算 CPU 的带宽吗?假设一个 64 位双核 CPU,时钟速度为 1.8 GHz,我们可以计算带宽为 1.8 GHz * 64 位 * 2 核 = 230.4 Gbits/s 吗?我倾向于认为这个 CPU 能够以 230.4 Gbits/s 的速度处理数据。
但是,当我在 Google 上搜索“CPU 带宽”一词时,我竟然没有找到一个定义。那么我们能计算 CPU 的带宽吗?如果不能,为什么带宽概念不适用于 CPU?
谢谢!
答案1
我很抱歉在评论中说得太简短了。让我再详细说一下。
这英特尔链接您提供的信息表明,您的特定核心可以由两种类型的 RAM DDR3L 1333/1600 提供服务。它们分别以 1300MHz 和 1600MHz 运行。假设您拥有更快的 RAM,您可以每秒向其中一个传输 64 位 x 1600x10^6 次,相当于 12.8GB/s。但是,同一网页指出核心最多有两个内存通道,因此使用两个都同时使用它们将允许您达到最大内存带宽 12.8 GB/s x2 = 25.6GB/s,即上述文档中引用的最终数字。
一个更令人好奇的案例是i7-6700 处理器,甚至可以使用 DDR4-1866/2133 作为内存组,具有 2 个内存通道。重复上述计算,每周期 8B,每秒 2.133x10^9 个周期,2 个内存通道,可获得 34.128GB/s,与链接中的值 34.1GB/s 相符。
答案2
我知道这是一个相当老的话题,但希望它能对后来者有所帮助。因此,有几件事需要考虑。首先也是最重要的是您的 CPU 外部时钟速度。假设它是 2 Ghz 或每秒 20 亿次滴答,并且您的数据总线假设是 64 位。理论上,这可以每秒向内存传输 16 GB(20 亿字节)的数据。一个字节由 8 位组成,因此每秒 20 亿 * 64 位 / 8 位。不过这只是理论上的,软件必须能够指示 CPU 使用所有数据总线,并且计算机的其余部分必须足够快才能跟上 CPU 的外部时钟速度。