寄存器为什么比内存快

计算机中最快的是寄存器,内存其次,最慢的是硬盘.

1.硬件设计不同:

相比较内存寄存器就是比较稀有的宝贵资源了,所以高性能,高成本,高耗电的设计都用在寄存器上.事实上确实如此,内存设计相对简单,每个位就是一个电容和一个晶体管,而寄存器设计则完全不同,多出好几个元件,并且通电后,寄存器的晶体管一直有电,而内存的晶体管是用时才有电,没用就没电,这样利于省电,这些设计因素上,决定了寄存器的读取速度更快.

2.工作方式不同:

寄存器的工作方式简单,只有两步:(1)找到相关的位,(2)读取这些位

内存的工作方式就要复杂的多:

(1)找到数据的指针(可能存放在寄存器,所以这一步就已进包含了读取寄存器)

(2)将指针送往内存管理单元(MMU),由MMU将虚拟的内存地址翻译成实际的物理地址

(3)将物理地址送往内存控制器,由内存控制器读出该地址在哪一个内存插槽上

(4)确定数据在哪个内存块上,从该块上读取数据

(5)数据先送回内存控制器,再送回CPU,然后开始使用

3.距离不同:

距离不是主要因素,但是最好懂.内存距离CPU 比较远,所以要耗费跟长的时间来读

以3GHz的CPU为例,电流每秒钟可以振荡30亿次,每次耗时大约为0.33纳秒。光在1纳秒的时间内,可以前进30厘米。也就是说,在CPU的一个时钟周期内,光可以前进10厘米。因此,如果内存距离CPU超过5厘米,就不可能在一个时钟周期内完成数据的读取,这还没有考虑硬件的限制和电流实际上达不到光速。相比之下,寄存器在CPU内部,当然读起来会快一点。

距离对于桌面电脑影响很大,对于手机影响就要小得多。手机CPU的时钟频率比较慢(iPhone 5s为1.3GHz),而且手机的内存紧挨着CPU。


你可能感兴趣的:(寄存器为什么比内存快)