『阿男的工程世界』*让我们简单聊一下IO(2)*
『阿男的工程世界』*让我们简单聊一下IO(2)*
我们来考虑一下不同设备之间速度不匹配的协调问题。首先,最快的设备应该是CPU本身这里,但是CPU也最忙,要协调处理周边设备。CPU内部的内存,就是寄存器,是可以和CPU本身匹配的内存设备。现代的CPU还配备L1 Cache
,L2 Cache
这些分级缓存,速度没有寄存器那么快,但是要比内存快。
速度在第二梯队的应该就是内存这种,虽然没有CPU内部的内存那么快,但是要比硬盘这些设备快得多。当然现在的固态硬盘SSD
慢慢在接近内存的速度,但仍然有个差异在里面。
所有这些速度的差异,直接决定了硬件架构和操作系统的设计。阿男这里给大家讲三个层面:南桥北桥
,DMA
,Memory Mapped IO
。
首先,围绕着CPU的架构,要为了匹配不同的设备速度差异,产生了"南桥","北桥"的概念,也就是North Bridge
,South Bridge
:
从图中可以看到,CPU连接北桥,北桥连接速度快的设备,比如显卡和内存。北桥后面连接南桥,南桥连接一些速度相对而言在第二梯队的设备,比如键盘,硬盘,USB设备,网卡等等。
南桥和北桥在具体的实现上也有了不少演化,比如早期的设计,南桥和北桥是独立于CPU的芯片。比如下面是Intel制造的北桥芯片:
南桥和北桥在主板上早期也可以看到:
随着硬件的演进,现在CPU一般把北桥做在一起,还有显卡也集成在一起。比如Intel
和Nvidia
都做。然后在具体的工业标准上面,也在不断演化之中,但整体的设计思路不变。因为实际的场景并没有改变,比如键盘鼠标这种设备永远不会和内存等等设备的IO速度达到一致,这是客观现实。
转载于:https://my.oschina.net/u/3195023/blog/836075