×
嵌入式 > 存储技术 > 详情

解读片上RAM和外部RAM访问速度的差异问题

发布时间:2020-05-15 发布时间:
|

  有些人不明白为什么片上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和磁盘文件的内存缓冲。

  以上或许在细节上不准确,但可以作为基础去理解软件的相关问题。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AntMicro开源DRAM控制器添加对RPC DRAM的支持