大话存储 1 - 走进计算机IO世界
组成计算机的三大件:CPU,内存和IO。
1 总线
总线就是一条或者多条物理上的导线,每个部件都接到这些导线上,同一时刻只能有一个部件在接收或者发送。
仲裁总线:所有部件按照另一条总线,也就是仲裁总线或者中断总线上给出的信号来判断这个时刻总线可以由哪个部件来使用。产生仲裁总线或者中断电位的可以是CPU,也可以是总线上的其他设备。
如上图所示,主板上的每个部件都是通过总线连接起来的。
PCI总线:目前台式机与服务器所普遍使用的一种南桥与外设连接的总线技术。
北桥芯片:IO总线和以太网HUB模型的区别在于多了一个北桥芯片。因为CPU和内存足够快,他们之间单独用一个总线连接,这个总线和慢速IO总线之间通过一个桥接芯片连接,也就是主板上的北桥芯片。这个芯片连接了CPU、内存和IO总线。
前端总线:CPU与北桥连接的总线叫做系统总线,也叫作前端总线。
内存总线:内存与北桥连接的总线叫做内存总线。
由于北桥速度太快,而IO总线速度相对北桥显得太慢,所以北桥和IO总线之间,往往要增加一个网桥,叫做南桥,在南桥上一般集成了众多外设的控制器,比如磁盘控制器、USD控制器等。
总线位数:系统总线的条数,比如64条或者128条,叫做总线的位数。
CPU位数:寄存器和运算单元之间总线的条数。
IO总线分成数据总线、地址总线和控制总线。寻址用地址总线,发数据用数据总线,发中断信号用控制总线。IO总线是并行而不是串行的。
2 CPU、内存和磁盘之间通过网络来通信
因为主板上的总线很短、很稳定,所以CPU和存储设备之间组成的一个“网络”不需要运输层,而只需要物理层、网络层和上三层的网络。
设备映射:每个IO设备在启动时都要向内存中映射一个或者多个地址,这个地址有8位长,又被称做IO端口。针对这个地址的数据,统统被被北桥芯片重定向到总线上实际的设备上。
CPU在对磁盘发送指令的时候,这些指令其实是发给了主板南桥上集成的控制器,比如ATA控制器或者SCSI控制器。让磁盘读取或者写入某个磁道、某个扇区等,CPU不需要知道这些,CPU只需要知道逻辑块地址是读还是写就可以了,让CPU产生这些信息的是磁盘控制器驱动程序。
3 小结
CPU、内存和磁盘之间组成的网络可以用下面图抽象:
参考资料
《大话存储2-存储系统架构与底层原理极限剖析》