据我所知,FSB 和 RAM 时钟速度是两个不同的值。那么当 FSB 时钟比 RAM 快或 FSB 较慢时会发生什么?
是否有数据缓冲区?或者处理器只是暂停直到数据写入?您能解释一下吗?
答案1
首先,现在有了 CPU 内存控制器,这已经不再那么重要了,CPU 现在直接连接到内存,因此 FSB -> 北桥 -> 内存频率不再那么重要,因为 CPU 内存控制器频率与内存频率相同。
虽然通常北桥上会有一个小型的内存请求缓冲区,但 CPU 和北桥之间(或最近在 CPU 和内存之间)也有控制线,这些控制线是“数据就绪”线,表示北桥已提取数据并准备好传输到 CPU。这些类型的控制线类似于使用即时消息/紧急消息(准备发送/清除发送)机制来表示数据已准备就绪且接收器已准备好发送。
由于这些控制线和小缓冲器的存在,各个组件之间每个链路的实际频率可能不同。内存和控制器可以支持一种速度,然后北桥以不同的速度将数据转发到 CPU。
答案2
数字数据几乎总是从缓冲区传输到缓冲区。您可能会惊讶地发现,计算机所做的大部分工作(包括硬件和软件)都只是移动数据(在设备和子系统之间以及在变量和寄存器之间)。
在低硬件级别,您几乎总是会发现简单的缓冲区或寄存器,称为“闩锁”,用于在总线上传输数据时保存数据,或从总线接收数据。您几乎总是可以假设数字数据在子系统之间传输时以某种方式临时存储,无论是在字节/字级别(在总线闩锁中),还是在完整的磁盘扇区(在 IDE/ATA 驱动器上)和以太网帧(存储和转发交换机上)。这些“瞬时存储”功能与子系统可能具有的任何缓存功能不同。
答案3
以下是 AnandTech 上关于内存分配器的一篇好文章:
http://www.anandtech.com/show/2427/4
特别是,它为内存控制器如何与内存组交互的基础知识提供了很好的入门知识。