我对 ide、ata、sata、pci 等总线标准确实感到困惑。
我刚刚读了这篇文章:当发生磁盘读取或磁盘写入时,数据会去哪里?所以如果我们谈论硬盘驱动器;硬盘逻辑板包含一个微控制器、缓冲内存、电机驱动器等。该微控制器与电机驱动器通信,以便读取和写入硬盘驱动器的扇区。据我所知,微控制器是 CPU、寄存器、IO 端口、RAM 等的组合。此外,微控制器内部必须有固件。
我的第一个问题是如何确定硬盘微控制器的时钟频率?
根据上述文章,为什么会有“sata drive”这样的词?我的意思是,如果“ata”或“sata”等只是 CPU 和设备控制器之间的总线接口,那么为什么“ata”、“sata”或“pci”会成为外围设备的前缀?
我真的想深入了解与外围设备的通信。从上面的文章中我了解到,当我们想要从硬盘读取扇区时,会发生两次单独的通信,第一次是“CPU - 设备控制器”之间的通信,第二次是“设备控制器 - 硬盘”之间的通信。那么这些单独的通信如何相互工作呢?
最后,如果“ata”或“sata”只是代表“cpu和内存(dma)-设备控制器”通信网关的接口,为什么这个接口比前端总线(fsb)慢?我的意思是,如果我说的是 dma 传输,那么在磁盘控制器从 hdd 读取一个扇区后,它必须将这个扇区传输到内存中,对吗?那么为什么这些慢速总线接口用于内存和设备控制器之间的通信呢?
答案1
我对 ide、ata、sata、pci 等总线标准确实感到困惑。
您应该将 PCI 与 ATA、SATA 和 IDE 区分开来。ATA
、SATA 和 IDE 不是像 PCI 那样的总线。
我的第一个问题是如何确定硬盘微控制器的时钟频率?
这是基于成本效益以及所需的性能水平而做出的决定。
根据上述文章,为什么会有“sata drive”这样的词?我的意思是,如果“ata”或“sata”等只是 CPU 和设备控制器之间的总线接口,那么为什么“ata”、“sata”或“pci”会成为外围设备的前缀?
SATA 和 ATA 是接口,而不是“总线接口”。
它用作形容词来指定外围设备所具有的接口类型以及主机端所需的接口类型。
如果您有“SATA 驱动器”,并且 PC 主板上没有可用的 SATA 端口,则无法连接它。如果有其他未使用的接口(例如 PCI 插槽或 IDE 端口或 USB 端口),那么您可以使用适当的适配器(会增加成本,并且可能会降低性能)。
据我所知,当我们想要从硬盘读取扇区时,会发生两次单独的通信,第一次是在“CPU - 设备控制器”之间,第二次是“设备控制器 - 硬盘”之间。那么这些单独的通信如何相互运作?
设备控制器位于这两个操作的中间。
SATA 磁盘驱动器中嵌入的现代磁盘控制器拥有自己的 CPU(又称微控制器)、RAM 和闪存,并执行自己的固件来执行其功能。
顺便说一句,您的数据流 100% 反向。对于从磁盘读取的扇区,第一次传输是“hdd -> 设备控制器”,然后第二次传输是“设备控制器 -> 主机”。
此外,“数据传输”比“通信”更能准确描述操作。
最后,如果“ata”或“sata”只是代表“cpu和内存(dma)-设备控制器”通信网关的接口,那么为什么这个接口比前端总线(fsb)慢?
外围接口通常比处理器总线慢,原因很简单,就是长度和结构。前端总线只有几厘米长,完全包含在主板上。电路设计人员可以很好地控制总线必须抑制的预期电气噪声。外围接口几乎总是用于使用柔性电缆的板外设备。在设计此类接口时,需要考虑许多成本与性能之间的权衡。
顺便说一句,这对于接口来说不是一个好的定义。“通信网关”完全是另一种动物。
我的意思是,如果我谈论 dma 传输,那么磁盘控制器从 hdd 读取一个扇区后,它必须将该扇区传输到内存中,对吗?
0.25 米柔性电缆上速度与 FSB 一样快的外设接口可能要贵 1000 倍。成本效益比很低,因为多相数据传输中只有一个阶段得到了改进。
那么为什么这些慢速总线接口用于内存和设备控制器之间的通信呢?
成本。
更让人困惑的是,这些外设接口并不直接连接到“记忆”(正如您多次写到的那样)。通常,这种接口的主机端会连接到本地系统总线,这样 CPU(使用 PIO)或 DMA 控制器就可以访问接口的数据寄存器。
也许这对您来说太详细了,但也许正是这种缺乏细节和过度简化导致了混乱。