硬件之总线

发布时间:2016-12-9 15:58:53 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"硬件之总线",主要涉及到硬件之总线方面的内容,对于硬件之总线感兴趣的同学可以参考一下。

    博主除了画过几次PCB板子就没搞过硬件,但实践中感觉到,软件从根源上依附于硬件而存在,随硬件的不断演化而发展变化,掌握软件背后的一些硬件基础和发展脉络,编写软件时才能自信而不盲目,主动而不是机械地紧跟技术变化。     比如总线,看起来它和一般程序员关系不大。但它却串联起很多问题:为什么片上RAM和外部RAM访问速度有差异;为什么CPU访问外部RAM速度慢;为什么访问IO设备更慢;为什么CPU访问cache比外部RAM快? 背景     总线是一组、多条信号线,是计算机中多个模块间(如CPU、内存、外设等)的通讯信路;     每根信号线上传输变化的0/1信号;     信号收发双方必须以某种方式(如一根时钟信号线)同步,以正确传递和解析这些信号;     信号变化的频率大致决定总线上数据传输速率,随着工艺的进步,总线频率不断提高,带宽不断增加,但和CPU一样有极限,因为频率越高,信号线间干扰越严重;     内存受自身及其控制器工艺所限,也有访问速度限制,CPU访问内存速度=min(总线,内存);     外围设备速度很慢,或者说数据量很小,如串口/鼠标/键盘等。 发展过程     下面让我们跟着历史的脚步看看总线的发展历程,理解今天复杂的总线是怎样出现的。     a.公共总线     早期PC中,CPU/RAM/IO都挂在一条总线上,即所有部件都被限定在同一个时钟频率下工作,这样整个系统不得不去迁就跑得最慢的外围IO设备,整体速度等于系统中最慢的设备的速度,系统性能无法提高。     b. I/O总线     "所有计算机科学中的问题都能通过增加一个中间转换层来解决",人们自然想到这把万能钥匙,于是把高/低速设备分组,各自用高/低速总线连接,即CPU和内存连接在高速的内部总线上,外围慢速的IO设备就挂在慢速I/O总线上。这样I/O总线最早分离出去,与内部总线工作在不同时钟频率上,之间通过一个被称为bridge的器件匹配连接,bridge起降频作用。        这时CPU摆脱了低速I/O设备的束缚,访问RAM的速度大大提高。     c.倍频出世     再后来,CPU发展迅猛,频率大幅攀升,内存逐渐跟不上CPU,让内存和CPU工作于同一总线频率就浪费了CPU的性能。人们又类似地引入了倍频的概念,即在CPU与原先内部总线间引入一个倍频器,内存依旧工作在原内部总线频率,而CPU工作频率(主频)变成外频(内存总线频率)*倍频。       这样CPU内部访问寄存器以及运算的速度不再受内存速度的拖累。 总结     至此就可以回答最初几个问题。     a. CPU访问外部RAM要经过降频后的总线,有总线瓶颈,所以慢;     b.cache属于片上RAM,工作于CPU频率,访问它不需要经过降频后的内存总线,所以速度快;     c.访问I/O低速设备要经过更慢的I/O总线,所以性能最差。     目前计算机整体基本还是CPU/内存(高速)总线/IO(低速)总线几个级别,整体性能大概可用下面公式表达:总时间=∑(CPU片内工作量/cpu频率)+∑(内存等高速设备访问量/内存总线频率)+∑(I/O设备访问/IO总线频率)。因此围绕总线的演化趋势就是:     a.不断把各种设备按速度分组,细化出各种子总线并桥接在系统的高速或低速总线上;     b.不断提高高速总线带宽,并尽量把对低速区的访问缓存在高速区,如CPU cache和磁盘文件的内存缓冲。     以上论述或许有硬件细节的不准确,但可以作为基础去理解软件的相关问题。

上一篇:删除的文件怎么还会恢复呢?
下一篇:安装samba的一点问题及解决

相关文章

关键词: 硬件之总线

相关评论