大话存储系列2——计算机内部的IO世界

1.、总线:

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

所有的部件按照另一条总线,也就是仲裁总线或者中断总线上给出的信号来判断这个时刻总线可以由哪个部件来使用。产生仲裁总线或者中断电位的可以是CPU,也可以是总线上的其他设备。

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总线,可以有效地降低了处理器和各个硬件之间数据传输的延迟,能有效地提高系统性能。


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存到内存中。

时间: 2024-09-08 06:59:35

大话存储系列2——计算机内部的IO世界的相关文章

大话存储系列21——存储系统内部IO 上

1.IT系统的IO结构图 2.应用程序层IO 应用层程序是计算机系统内主动发起IO请求的大户,但是要知道,计算机内不止有应用程序可以向底层存储设备主动发起IO请求,其他的,比如文件系统自身.卷管理层自身.适配器驱动层自身等,都可以主动发起IO.当然,只有应用程序发起的IO才可以修改用户实体数据内容,而其他角色发起的IO一般只是对数据进行移动.重分布.校验.压缩.加密等动作,并不会修改用户层面的实际数据内容. 应用程序在读写数据的时候一般是直接调用操作系统所提供的文件系统API来完成文件数据的读写

大话存储系列23——存储系统内部IO 下

5.层与层之间的调度员:IO Manager IO Manager 或称IO Scheduer.每个操作系统都会有这样一个角色,它专门负责上层程序的IO请求,然后将IO请求下发到对应的模块和设备驱动中执行,然后将结果通知给上层程序,当某个程序师徒访问某个文件的时候,它其实并没有和文件系统打交道,而只是在与IO Manager打交道,而只是在与IO Manager 打交道. 1.某时刻,图中的"Subsystem"这里就是指某个应用程序,向OS(System Service)发起了对某个

大话存储系列22——存储系统内部IO 中

4.卷管理层IO 卷管理层在某种程度上来讲是为了弥补底层存储系统的一些不足之处的,比如LUN空间的动态管理等.卷管理层最大的任务是做Block级的映射.对于IO的处理,卷层只做了一个将映射翻译之后的IO向下转发的动作以及反向过程.另外,应用程序可以直接对某个卷进行IO操作而不经过文件系统.我们所说的不经过文件系统,并不是说Bypass系统内核缓存的Direct IO,而是完全不需要FS处理任何块映射关系.这时就需要由应用程序自行管理底层存储空间,而且此时不能对这个卷进行FS格式或者其他未经应用程

大话存储系列7——文件系统和IO处理流程

1.文件系统 在早期的计算机系统中,每个程序都必须自己管理磁盘,在磁盘中放自己的数据,程序需要直接和磁盘控制器打交道.有多少个程序要利用磁盘,就有多少个磁盘交互启动接口. 在没有文件系统的计算机上,如果一个程序要向磁盘上存储一些自己的数据,那么这个程序只能自己调用磁盘控制器启动(无VM的情况下),或者调用VM提供的接口,对磁盘写数据.而写完数据后,很有可能被其他程序的数据覆盖掉.引入文件系统后,各个程序之间都通过文件系统接口访问磁盘,所有被写入的数据都称为一个文件,有着自己的名字,是一个实体.而

大话存储系列1——对存储的初步认识

这篇文章转载自大牛Hellodba,连接如下:http://www.hellodb.net/2009/08/storage.html 那这篇文章开始我的存储之旅,我将会在近期整理出关于存储的更多细节. IOPS IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能.存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以

大话存储系列5——RAID原理

整理自网络和大话存储2: 1.预备知识:条带化 当多个进程同时访问一个磁盘时,可能会出现磁盘冲突.大多数磁盘系统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制.当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突.     避免磁盘冲突是优化 I/O 性能的一个重要目标,而 I/O 性能的优化与其他资源(如CPU和内存)的优化有着很大的区别 ,I/O 优化最有效的手段是将 I/O 最大限度的进行平衡.     条带化技术就是一种

大话存储系列0——LUN 与 LVM 名词解释

在看这篇文章之前,请先参考我的博客:http://blog.csdn.net/cymm_liu/article/details/8656154  中的第4部分:逻辑卷管理,摘录如下: 逻辑卷一旦创建,之后就无法改变,如果开始的时候划分了100G的逻辑盘,但是两年之后,空间使用快满了,但是又不能放到别的磁盘(逻辑盘),因为受上层文件系统的限制,一个文件不可能跨越多个分区来存放.更别提多个磁盘了.如果一个文件超过了这100G,那就死路一条了.. 所以必须有一种机制,在一个逻辑磁盘空间满了的时候,可以

大话存储系列11——NAS、DAS、SAN三国争霸

原文转自:http://www.liusuping.com/storage/das-nas-san-cunchu-jishu-bijiao.html 1.什么是NAS 找了一篇非常非常好的文章,把NAS的解释的淋漓尽致,看下面的东西之前,一定要看这篇文章: 转自:http://www.storageonline.com.cn/storage/nas/what-is-the-the-the-the-the-nas/ IT男们经常受到两个消息的折磨:好消息是,有姑娘主动打来电话了:坏消息是,她们只是

大话存储系列8——磁盘阵列

JBOD(just a Bound Of  Disk)只是一串磁盘:这就是盘柜,里面没有带RAID 控制器. 而我们说的盘阵(磁盘阵列)是指的自带RAID控制器的盘柜.磁盘阵列将内部的磁盘经过外部SCSI接口连接到主机上段的SCSI接口.此时,整个磁盘对于主机来说,就是主机SCSI总线上的一个或者多个设备,具有一个或者多个SCSI ID.所有的逻辑磁盘都以LUN的形势呈现给主机. hp EVA 和 MSA 的区别 接口不一样嘛! EVA 里面的硬盘接口也是光纤的,而MSA就不是了,用的硬盘是SC