有些人不明白为什么片上ram和外部ram访问速度有差异?为什么cpu访问外部ram速度慢,其实先要知道原因,最关键的是要懂得总线的知识。
有些技术,比如总线,看起来它和一般程序员关系不大。但它却串联起很多问题:为什么片上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和磁盘文件的内存缓冲。
以上或许在细节上不准确,但可以作为基础去理解软件的相关问题。
十年后我们还需不需要WiFi
应对ADAS和自动驾驶的软件挑战
印度运营商与中兴签署谅解备忘录 共同建设探索5G网络
700MHz5G网络绝非“禁脔”:电信、联通将注重农村地区
基于线性电源供电的LED发光二极管驱动电路设计
解读片上RAM和外部RAM访问速度的差异问题
在汽车领域,国产芯片企业有着大量机会
2018数据中心在四方面受到机器对机器通信的影响分析
amd处理器与intel区别对比_amd处理器与intel哪个好
设计反激式转换器时需要考虑的几大关键因素
XREAL Air 2系列搭载瑞声科技整体声学解决方案
海深科技获得4000万元A轮融资,全面布局无人零售终端平台
大功率led照明的散热问题该如何有效解决
新品上市 | 合宙MCU新品Air103【芯片+开发板+拓展板】火爆来袭
18天备战创近亿元销售额,直播电商团队如何用飞书工作?
金蝶参与国际标准制订 创造无边界信息流
东芝照明将推出首款"LED吸顶灯"
空调制冷剂r32和r410的区别
AT89C2051单片机智能控制器电路的设计
为什么现阶段不适合买电动汽车?