寄存器和内存之间的比较

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

同样是晶体管存储设备,为什么寄存器比内存快呢?

原因一:距离不同

距离不是主要因素,但是最好懂,所以要放在前面说。内存距离CPU比较远,所以要耗费更长时间读取。

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

(之所以是5厘米,是因为要计算的是往返的路程。)

原因二:硬件设计不同

苹果公司推出的iPhone5S,CPU是A7,寄存器有6000多位(31个64位寄存器,加上32个128位寄存器)。而iPhone5S内存是1GB,约为80亿位(bit)。这意味着,高性能、高成本、高耗电的设计可以用在寄存器上,反正只有6000多位,而不能用在内存上。

原因三:工作方式不同

寄存器的工作方式比较简单,只有两步:

  1. 找到相关的位
  2. 读取这些位

内存的工作方式就比较复杂了:
(1) 找到数据指针。(指针可能存放在寄存器内,所以这一步就已经包括了寄存器的全部工作了。)
(2) 将指针送往内存管理单元(MMU),由MMU将虚拟的内存地址翻译成实际的物理地址。
(3)将物理地址送往内存控制器(memory controller),由内存控制器找出该地址在哪一根内存插槽上。
(4)确定数据在哪一个内存块上,从该块读取数据。
(5)数据先送回内存控制器,再送回CPU,然后开始使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值