其他分享
首页 > 其他分享> > 计算机IO【硬件部分】

计算机IO【硬件部分】

作者:互联网

背景:最近遇到了io等待导致我整个系统挂掉的问题,当然是因为其它原因。一只对io从硬件到软件、阻塞和非阻塞这些概念一知半解,故记录一下了解到过程

 

1.、总线:

IO是通过共享一条总线的方式来实现的,总线也就是一条或者多条物理上的导线,每个部件都接到这些导线上,导线上的电位每个时刻都是相等的(这个地方需要注意下,之前没有考虑这个问题),这样总线上的所有部件都会受到相同的信号。也就是说,这条总线是共享的,同一个时刻只能有一个部件在接收或者发送,是全单工的工作模式。(数据只在一个方向上传输,不能实现双方通信https://blog.csdn.net/itworld123/article/details/83795099

*PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写

*南北桥结构的主板上都有两个面积比较大的芯片,靠近CPU的为北桥芯片,主要负责控制AGP显卡、内存与CPU之间的数据交换;靠近PCI槽的为南桥芯片,主要负责软驱、硬盘、键盘以及附加卡的数据交换。

2、北桥芯片:

一块电脑主板,以CPU插座为北的方法拿着,靠近CPU插槽的一个起连接作用的芯片称为“北桥芯片”,英文名:North Bridge Chipset。北桥芯片(NorthBridge)是主板芯片组中起主导作用的组成部分,也称为主桥(HostBridge)。北桥是个人电脑主板芯片组两枚大规模芯片中的一枚。北桥被用来处理高速信号,通常处理CPU(处理器),RAM(内存),AGP端口或PCI Express,和南桥芯片之间的通信。一般来说,芯片组的名称就是以北桥芯片的名称来命名的,例如英特尔 845E芯片组的北桥芯片是82845E,875P芯片组的北桥芯片是82875P等等。北桥芯片负责与CPU的联系并控制内存、AGP数据在北桥内部传输,提供对CPU的类型和主频、系统的前端总线频率、内存的类型(SDRAM,DDR SDRAM以及RDRAM等等)和最大容量、AGP插槽、ECC纠错等支持,整合型芯片组的北桥芯片还集成了显示核心。北桥芯片就是主板上离CPU最近的芯片,这主要是考虑到北桥芯片与处理器之间的通信最密切,为了提高通信性能而缩短传输距离。因为北桥芯片的数据处理量非常大,发热量也越来越大,所以现在的北桥芯片都覆盖着散热片用来加强北桥芯片的散热,有些主板的北桥芯片还会配合风扇进行散热。因为北桥芯片的主要功能是控制内存,而内存标准与处理器一样变化比较频繁,所以不同芯片组中北桥芯片是肯定不同的,当然这并不是说所采用的内存技术就完全不一样,而是不同的芯片组北桥芯片间肯定在一些地方有差别。

3、南桥芯片:

南桥芯片(SouthBridge)是主板芯片组的重要组成部分,一般位于主板上离CPU插槽较远的下方,PCI插槽的附近,这种布局是考虑到它所连接的I/O总线较多,离处理器远一点有利于布线。相对于北桥芯片来说,其数据处理量并不算大,所以南桥芯片一般都没有覆盖散热片。南桥芯片不与处理器直接相连,而是通过一定的方式(不同厂商各种芯片组有所不同,例如英特尔的英特尔Hub Architecture以及SIS的Multi-Threaded“妙渠”)与北桥芯片相连。

南桥芯片负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等,这些技术一般相对来说比较稳定,所以不同芯片组中可能南桥芯片是一样的,不同的只是北桥芯片。所以现在主板芯片组中北桥芯片的数量要远远多于南桥芯片。例如早期英特尔不同架构的芯片组Socket 7的430TX和Slot1的440LX其南桥芯片都采用82317AB,而近两年的芯片组845E/845G/845GE/845PE等配置都采用ICH4南桥芯片,但也能搭配ICH2南桥芯片。更有甚者,有些主板厂家生产的少数产品采用的南北桥是不同芯片组公司的产品,例如以前升技的KG7-RAID主板,北桥采用了AMD760,南桥则是VIA 686B。南桥芯片的发展方向主要是集成更多的功能,例如网卡、RAID、IEEE 1394、甚至WI-FI无线网络等等

新的i3、i5、i7处理器也都将将存储控制器整新的i3合到CPU中,并且为处理器提供了更快的管道和系统部件的通信能力。同时新的移动处理器还“革命”性的将图形处理核心(GPU)整合到了处理器中。这种将两种制程工艺制造的处理器整合到一起的产品堪称业界首创,32nm的处理器核心+45nm图形处理核心、内存控制器共同构成了代号为Arrandale的新款移动处理器,而与以往的分离式设计相比,这种将图形处理核心集成在处理器内部的做法直接提高了系统整体的兼容性和稳定性。被Intel称为“高清显卡”的图形处理器支持2通道的高清全硬件解码,令高清电影的播放更为流畅,画面更清晰逼真,令用户的视觉体验加倍升级。 全新的酷睿i3/i5/i7是把北桥芯片组也集成到CPU上,其内部仍是采用QPI总线来通讯,而外部与主板芯片组通讯,其实就是以往主板上南桥与北桥通讯,采用的正是DMI总线。酷睿i3/i5/i7并没有精简QPI总线,只是集成度更高而已。QPI总线可以用于CPU内部通讯,也可以用于CPU与主板北桥芯片组通讯,而Bloomfield Core i7正是利用QPI作为CPU内部通信以及CPU与北桥通信的通道。QPI总线的传输速率是FSB 1600MHz的4倍多,虽然前者数据位宽较窄,但传输带宽仍然是后者的2倍。通过QPI总线,可以有效地降低了处理器和各个硬件之间数据传输的延迟,能有效地提高系统性能。

关于总线的描述可以参考这部分代码:https://blog.csdn.net/fivedoumi/article/details/50209163

4、IO案例分析:

下面我们按照“连找发” 三元素理论,去分析一个CPU向磁盘要数据的例子:

连——总线

找——首先要有分区,才能有所谓“找”,这个分区体现在主机总线中就是设备地址映射。每个IO设备在启动时都要向内存中映射一个或者多个地址,这个地址有8位长,又被称作IO端口。针对这个地址的数据,统统被北桥芯片重定向到总线上实际的设备上。假如,IDE磁盘控制器地址被映射到了地址0xA0,也就是十六进制A0,CPU根据程序机器代码,向这个地址发出多条指令来完成一个读操作,这就是找。

发——首先CPU将这个IO地址放到系统总线上,北桥接收到之后,会等待CPU发送第一个针对这个外设的指令。然后CPU发送如下3条指令。 

第一条:指令中包含了表示当前指令时读还是写的位,而且还包含了其他选项,比如操作完成时是否用中断来通知CPU处理,是否启用磁盘缓存等。

第二条:指明应该读取的硬盘逻辑块号(LBA)。这个逻辑块在我们讲磁盘结构时会讲到,总之逻辑块就是对磁盘上存储区域的一种抽象。

第三条:给出读取出来的内容应该放到内存中哪个地址中。

这3条指令被北桥依次发送给IO 总线上的磁盘控制器来执行。磁盘控制器收到第一条指令之后,知道这是读指令,而且知道这个操作的一些选项,比如完成是否发中断,是否启用磁盘缓存等,然后磁盘控制器会继续等待下一条指令,即逻辑块地址。磁盘空间器收到指令后,会进行磁盘实际扇区和逻辑块的对应查找,可能一个逻辑块会对应多个扇区,查找完成之后,控制器驱动磁头寻道,等盘体旋转到那个扇区后,磁头开始读出数据。在读取数据的同时,磁盘控制器会接收都第三条指令,也就是CPU给出的数据应该存放在内存中的地址。有了这个地址,数据独处之后直接通过DMA(DMA是Direct Memory Access的缩写。其意思是“存储器直接访问”。它是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,即不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为“DMA控制器”的控制下进行的。CPU除了在数据传输开始和结束时作一点处理外,在传输过程中CPU可以进行其它的工作。这样,在大部分时间里,CPU和输入输出都处在并行操作。因此,使整个计算机系统的效率大大提高)技术,也就是磁盘控制器可以直接对内存寻址并执行写操作,而不必先转到CPU,然后再从CPU存到内存中。

总结来说:程序控制cpu, cpu控制dma控制器,dma控制器控制磁盘控制器,磁盘控制器再控制我们的ide硬盘

 

 

 

 

 

 

 

 

标签:南桥,计算机,芯片,总线,北桥芯片,硬件,IO,芯片组,CPU
来源: https://blog.csdn.net/qq_35789269/article/details/116140004