精华内容
下载资源
问答
  • 寄存器的存取速度比内存快

    千次阅读 2009-10-16 21:44:00
    寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。

    寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。

    展开全文
  • 寄存器比内存访问速度原因

    千次阅读 2016-10-13 17:29:08
    CPU访问内存的过程中会包含访问寄存器的操作。 以上是看完文章后的个人理解,放上原文如下。http://www.cnblogs.com/lcw/p/3371877.html 【系统】寄存器比内存访问速度快的原因 计算机的存储层次 ...
    1. 距离太远,寄存器就在CPU内部,而内存则在外部。
    2. 寄存器结构复杂,内存设计简单。
    3. 工作方式不同。CPU访问内存的过程中会包含访问寄存器的操作。

    以上是看完文章后的个人理解,放上原文如下。http://www.cnblogs.com/lcw/p/3371877.html

    【系统】寄存器比内存访问速度快的原因

    计算机的存储层次

      

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

      Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。

    原因一:距离不同

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

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

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

    原因二:硬件设计不同

      苹果公司新推出的iPhone 5s,CPU是A7,寄存器有6000多位(31个64位寄存器,加上32个128位寄存器)。而iPhone 5s的内存是1GB,约为80亿位(bit)。这意味着,高性能、高成本、高耗电的设计可以用在寄存器上,反正只有6000多位,而不能用在内存上。因为每个位的成本和能耗只要增加一点点,就会被放大80亿倍。

      事实上确实如此,内存的设计相对简单,每个位就是一个电容和一个晶体管,而寄存器的设计则完全不同,多出好几个电子元件。并且通电以后,寄存器的晶体管一直有电,而内存的晶体管只有用到的才有电,没用到的就没电,这样有利于省电。这些设计上的因素,决定了寄存器比内存读取速度更快。

    原因三:工作方式不同

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

    (1)找到相关的位,

    (2)读取这些位。

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

    (1)找到数据的指针。(指针可能存放在寄存器内,所以这一步就已经包括寄存器的全部工作了。)

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

    (3)将物理地址送往内存控制器(memory controller),由内存控制器找出该地址在哪一根内存插槽(bank)上。

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

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

      内存的工作流程比寄存器多出许多步。每一步都会产生延迟,累积起来就使得内存比寄存器慢得多。

      为了缓解寄存器与内存之间的巨大速度差异,硬件设计师做出了许多努力,包括在CPU内部设置缓存、优化CPU工作方式,尽量一次性从内存读取指令所要用到的全部数据等等。

    展开全文
  • 计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 同样都是晶体管存储设备,为什么寄存器比内存快呢? Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于...

    为什么寄存器处理数据的速度比内存快?

    计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。

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

    Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。下面就是我的简单翻译。

    原因一:距离不同

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

    以3GHz的CPU为例,电流每秒钟可以振荡30亿次,每次耗时大约为0.33纳秒。光在1纳秒的时间内,可以前进30厘米。也就是说,在CPU的一个时钟周期内(0.33纳秒),光可以前进10厘米。

    涛声依旧注:每次震荡的耗时也就是CPU的时钟周期,时钟周期为震荡频率的倒数。

    因此,如果内存距离CPU超过5厘米,就不可能在一个时钟周期内完成数据的读取,这还没有考虑硬件的限制和电流实际上达不到光速。相比之下,寄存器在CPU内部,当然读起来会快一点。

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

    原因二:硬件设计不同

    苹果公司新推出的iPhone 5s,CPU是A7,寄存器有6000多位(31个64位寄存器,加上32个128位寄存器)。而iPhone 5s的内存是1GB,约为80亿位(bit)。

    这意味着,高性能、高成本、高耗电的设计可以用在寄存器上,反正只有6000多位,而不能用在内存上。因为每个位的成本和能耗只要增加一点点,就会被放大80亿倍。
    事实上确实如此,内存的设计相对简单,每个位就是一个电容和一个晶体管,而寄存器的设计则完全不同,多出好几个电子元件。
    并且通电以后,寄存器的晶体管一直有电,而内存的晶体管只有用到的才有电,没用到的就没电,这样有利于省电。

    这些设计上的因素,决定了寄存器比内存读取速度更快。

    原因三:工作方式不同

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

    (1)找到相关的位
    (2)读取这些位。

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

    为了缓解寄存器与内存之间的巨大速度差异,硬件设计师做出了许多努力,包括在CPU内部设置缓存、优化CPU工作方式,尽量一次性从内存读取指令所要用到的全部数据等等。

    来源:阮一峰的网络日志 | 作者:阮一峰

    展开全文
  • 寄存器

    2019-01-05 23:11:26
    在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器中,从而减少访问内存的次数,提高其运行速度。但是,寄存器的数目也不能太多,除了增加成本外,寄存器地址编码增加还会增加指令的长度...

    寄存器组是CPU中的一个重要组成部分,它是CPU内部的临时存储空间。

    寄存器既可以用来存放数据和地址,也可以存放控制信息或CPU工作时的状态。在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器中,从而减少访问内存的次数,提高其运行速度。但是,寄存器的数目也不能太多,除了增加成本外,寄存器地址编码增加还会增加指令的长度。

    CPU中的寄存器通常分为存放数据的寄存器、存放地址的寄存器、存放控制信息的寄存器、存放状态信息的寄存器和其他寄存器等类型。

    程序计数器存放指令地址的寄存器,其作用是:当程序顺序执行时,每取出一条指令,程序计数器(PC)内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指向新的指令地址。

    指令寄存器(IR)用于存放正在执行的指令,指令从内存取出后送入指令寄存器。其操作码部分经指令译码器送微操作信号发生器,其地址码部分指明参加运算的操作数的地址形成方式。在指令执行过程中,指令寄存器中的内容保持不变。

    状态字寄存器(PSW)用于保存指令执行完成后产生的条件码,例如运算是否有溢出,结果为正还是为负,是否有进位等。此外,PSW还保存中断和系统工作状态等信息。

    通用寄存器组是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。

    在汇编语言程序中,程序员可以直接访问通用寄存器以存取数据,可以访问状态字寄存器以获取有关数据处理结果的相关信息,可以通过相对程序计数器进行寻址,但是不能访问指令寄存器。

    展开全文
  • 一图说明 硬盘以上主存、L3、L2、L1、寄存器一旦发生断电行为数据立刻丢失,只有硬盘能持久化保存。一般程序存储就在内存上,而比较关键数据会使用寄存器保存(ecx、epx等)。
  • 计算机的存储层次    同样都是晶体管存储设备,为什么寄存器比内存快呢?  Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。 原因一:距离不同  距离不是主要因素,但是...
  • 在计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 具体原因如下 一、距离不同 距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费...
  • 寄存器与缓存区别

    2015-01-05 20:17:33
    由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的...
  • 寄存器的分类及作用

    千次阅读 2021-01-14 11:01:55
    目录 一、存储器与寄存器 1.1、存储器 1.2、寄存器 ...2.1.3、存储单元 ... 内存和寄存器是为了解决存储器读写速度而产生多级存储机制。 寄存器亦称缓存,一般是指由基本触发器结构衍生出来D触发..
  • 寄存器介绍

    2017-12-26 22:50:39
    寄存器是CPU组成部分,因为在CPU内,所以CPU对其读写速度是最快,不需要IO传输,但同时也决定了此类寄存器数量非常有限,有限到几乎每个存储都有自己名字,而且有些还有多个名字。  IA-32构架提供了16个...
  • 计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 同样都是晶体管存储设备,为什么寄存器比内存快呢? Mike Ash写了一篇很好的解释,非常通俗地回答了这...
  • PC寄存器概念 每个线程启动的时候,都会创建一个PC...也是运行速度最快的存储区域。也是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。 这块内存区域很小,它是当前线程所执行的字节码的行号指
  • CPU中的寄存器

    千次阅读 2015-05-13 10:19:56
    在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器件中,从而减少访问内存的次数,提高其运行速度。但是,寄存器的数目也不能太多,除了增加成本外,由于寄存器地址编码增加也会相对增加...
  • 寄存器-笔记

    2020-07-31 17:27:41
    由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内.
  • 寄存器与内存区别

    2018-05-18 15:23:38
     计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 同样都是晶体管存储设备,为什么寄存器比内存快呢? Mike Ash写了一篇很好的解释,非常通俗地回答了这个问...
  • 4.21 寄存器

    2021-04-14 17:15:16
    文章目录常见的CPU架构寄存器缓存寄存器的分类 常见的CPU架构 x86架构:PC端主流,高性能高消耗 ARM架构:移动端主流,体积小低功耗 MIPS架构:龙芯3号 国产 寄存器 CPU上存放数据的容器,与内存条、硬盘等不同,...
  • CPU寄存器

    2009-08-25 14:59:00
    由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的...
  • CPU寄存器

    2010-06-23 16:56:00
    由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再...
  • 寄存器

    2009-03-04 15:15:00
    由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。  寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而免把中间结果存入内存,再读取内存的...
  • JVM PC寄存器

    2021-02-21 14:25:05
    他是一块很小的内存空间,几乎可以忽略不计,也是速度最快的存储区域 在JVM规范中,每个线程都有他自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致 任何时候一个线程都只有一
  • 寄存器和栈关系

    千次阅读 2019-07-31 19:27:28
    首先我们要知道,寄存器是距离CPU最近,存取速度很快的存储单元。而栈是内存里属于某个程序的一段连续空间 程序内存包含 【对于这些程序内存是如何分配以及寻址的请看其他博客】 程序的可执行机器代码 操作系统需要...
  • PC寄存器

    2020-10-13 22:52:57
    寄存器存储指令相关的线程信息,CPU...他是一块很小的内存空间,几乎可以忽略不计,也是运行速度最快的存储区域。 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。
  • 内存和寄存器就是为了解决存储器读写速度慢而产生多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前计算机都是用半导体存储器...
  • ARM寄存器

    千次阅读 2016-08-01 01:04:29
    ARM寄存器 操作模式 ...分组寄存器R8-R14ARM寄存器寄存器是存在于CPU中的存储速度极快的存储器,主要负责储存程序运行过程中需要保存的临时变量和系统环境变量等等.操作模式为了处理不同的情况,ARM设
  • 寄存器-2

    2017-06-08 18:16:00
    由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。运算器结构 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再...
  • 该方案以移位寄存器为核心,具有可重新置改变字长、易于扩展、匹配查找速度快等特点。  1 CAM功能描述  CAM基本框图如图1所示。  与RAM相似,CAM是将数据项存储在一个阵列中。每个数据项位数叫做字

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,687
精华内容 674
关键字:

寄存器的存储速度