精华内容
下载资源
问答
  • 图解寄存器与内存

    千次阅读 2020-09-24 18:47:26
    寄存器内存寄存器内存 初学单片机的时候,由于没有看过计算机相关的知识,很难理解寄存器是个什么东西。内存虽在生活中常常被提到,但一和寄存器放一块就显得有点混乱了。现在就用一张图来展示一下它们之间的关系...

    寄存器与内存比较

    初学单片机的时候,由于没有看过计算机相关的知识,很难理解寄存器是个什么东西。内存虽在生活中常常被提到,但一和寄存器放一块就显得有点混乱了。现在就用一张图来展示一下它们之间的关系。

    寄存器

    寄存器是用于存储二进制数的逻辑部件,一个触发器可以存储1位二进制数据,存储N位二进制数据的寄存器需要N个触发器组成。由8个触发器构成的8位寄存器的逻辑图如下图所示:

    在时钟CP上升作用下, D 0 D_0 D0~ D 7 D_7 D7同时存入数据,当使能信号有效时,触发器存储的数据就可以通过三态门进行输出。
    由于寄存器是集成在CPU内部的,所以当CPU访问寄存器时,只要找到相关的位进行读取就可以了,访问速度自然很快。

    内存

    与寄存器不同,内存是独立于CPU之外的。CPU访问内存时,需要经历一系列过程,访问速度自然要比访问寄存器慢很多。例如,CPU要从内存中读取一条指令:首先内核先将代码中的逻辑地址送给内存管理单元(MMU),由MMU将逻辑地址转换成实际的物理地址,并通过地址总线传送到内存,定位出指令的存放位置;接着内存再将指令通过数据总线传送到缓存;最终CPU从缓存中取得指令。
    值得注意的是,缓存是CPU内部的一种存储器,可以存放好几条指令。在实际工作中,CPU往往一次性读取多条指令有序存放在缓存中。当CPU执行完缓存里存放的指令时,内存刚好又送来好几条指令,如此便能保证内存与CPU都维持在工作状态,工作效率就可以得到保证了。

    参考文献
    [1]康华光,电子技术基础 数字部分(第六版).北京:高等教育出版社,2014.1;

    展开全文
  • 寄存器与内存的区别

    万次阅读 多人点赞 2018-03-02 08:28:20
    寄存器寄存器是有触发器或锁存器组成,通常由触发器组成,寄存器拥有非常高的读写速度,所以在寄存器之间传递数据非常快 内存内存就是存储器,由半导体器件构成。 计算机的存储层次(memory hierarchy)之中,...
    寄存器
    :寄存器是有触发器或锁存器组成,通常由触发器组成,寄存器拥有非常高的读写速度,所以在寄存器之间传递数据非常快 
    
    内存 :内存就是存储器,由半导体器件构成。 
    计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 这里写图片描述  
    同样都是晶体管存储设备,为什么寄存器比内存快呢? 
    Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。 
    原因一:距离不同  
    距离不是主要因素,但是最好懂。内存离CPU比较远,所以消费更长的时间储存。 
    以3Ghz的CPU为例子,电流每秒可以震荡30亿次,每次耗时大概为0.33纳秒,光在1纳秒里可以前进30cm,也就是说一个CPU周期内,光可以前进10cm。因此如果内存距离CPU超过5cm,就不可能在一个时钟周期内完成数据的读写。这还没考虑硬件的限制和电流实际上达不到光速。相比之下,寄存器在CPU内部,当然读起来会快一点。 
    原因二:硬件设计不同  
    苹果公司新推出的iphone5s,CPU是A7,寄存器有6000多位(31个64位寄存器,加上32个128位寄存器)。而iphone5s的内存是1GB,约为80亿位(bit)。这意味着高性能、高成本、高耗电的设计可以用在寄存器上,反正只有6000多位,而不能用在内存上,因为每个位的成本和耗能只要增加一点点,就会被放大80亿倍。 
    事实上确实如此,内存的设计相对简单,每个位就是一个电容和一个晶体管,而寄存器的设计则完全不同,多出好几个电子元件。并且通电后,寄存器的晶体管一直有电,而内存的晶体管只有在用到的才有电,没用到的就没电,这样利于省电。这些设计上的因素,决定了寄存器比内存读取速度更快。 
    原因三:工作方式不同  
    寄存器的工作方式只有2步:(1)找到相关的位(2)读取这些位 
    内存的工作方式就复杂多: 
    (1)找到数据的指针(指针可能存放在寄存器内,所以这一步就已经包括寄存器的全部工作了。) 
    (2)将指针送往内存管理单元(MMU),由MMU讲虚拟的内存地址翻译成实际的物理地址。 
    (3)将物理地址送往内存控制器(memory controller),由于内存控制器找出该地址在哪一根内存插槽(bank)上. 
    (4)确定数据在哪一个内存块(chunk)上,从该块读取数据。 
    (5)内存先送回内存控制器,再送回CPU,然后开始使用。 
    内存的工作流程比寄存器多出许多步,每一步都会产生延迟,累积起来就使得内存比寄存器慢得多。 
    为了缓解寄存器和内存之间速度的巨大差异,硬件设计师做出了许多努力,包括CPU内部设置缓存,优化CPU工作方式,尽量一次从内存读取指令所要用到的全部数据等等。 
    转载自 http://www.ruanyifeng.com/blog/2013/10/register.html
    展开全文
  • 汇编:寄存器与内存数据传递

    千次阅读 2019-02-22 16:11:53
    一、单个寄存器与内存数据传递 用 str 指令将寄存器中的数据放入到内存中,用 ldr 指令将内存中的数据取出放入寄存器中 .global _start _start: ldr r0,=stack1 ldr r1,=0xffffffff ldr r2,=0x22222222 ...

    一、单个寄存器与内存数据传递
    str指令将寄存器中的数据放入到内存中,用ldr指令将内存中的数据取出放入寄存器中

    .global _start
    _start:
    	ldr r0,=stack1
    
    	ldr r1,=0xffffffff
    	ldr r2,=0x22222222
    	
    	str r1,[r0]
    	str r2,[r0,#4]
    	
    	bic r1,#0xffffffff
    	bic r2,#0xffffffff
    	
    	ldr r1,[r0]
    	ldr r2,[r0,#4]
    .data
    	stack0:
    		.space 1024,0
    	stack1:
    .end
    

    二、批处理操作
    stm指令将寄存器中的数据放入到内存中,用ldm指令将内存中的数据取出放入寄存器中

    .global _start
    _start:
    	ldr sp,=stack1
    	ldr r1,=0xffffffff
    	ldr r2,=0x22222222
    	
    	stmfd sp!, {r0-r12, lr} 
    	
    	bic r1,#0xffffffff
    	bic r2,#0xffffffff
    	
    	ldmfd sp!, {r0-r12, pc}^
    .data
    	stack0:
    		.space 1024,0
    	stack1:
    .end
    
    展开全文
  • 寄存器内存的区别

    2021-07-28 11:04:02
    寄存器内存的区别1、寄存器是中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器...

    寄存器和内存的区别

    1、寄存器是中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

    2、内存既专业名上的内存储器,内存是由内存芯片、电路板、金手指等部分组成的。它包涵的范围也很大,一般分为只读存储器和随即存储器,以及最强悍的高速缓冲存储器(CACHE)。

    只读存储器应用广泛,它通常是一块在硬件上集成的可读芯片,作用是识别与控制硬件,它的特点是只可读取,不能写入。

    随机存储器的特点是可读可写,断电后一切数据都消失,我们所说的内存条就是指它了。它也只是存储器中的沧海一粟,是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。

    3、外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。

    4、缓存是指临时文件交换区,在内存中划分出一块区域用于存放常使用的输入输出数据,以缓解CPU与外设处理速度不匹配的问题。电脑把最常用的文件从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便。因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在用完后还是会把文件送到硬盘等存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。千万不能把缓存理解成一个东西,它是一种处理方式的统称!

    总结:

    高速缓存是内存的部分拷贝,因为高速缓存速度快,把常用的数据放这里可以提高速度。

    高速缓存一般不能被程序直接更改,它由硬件自己处理。程序直接读写CPU的寄存器,来完成操作。

    CPU要取数据,处理数据,都要放到寄存器处理。一般寄存器不用太大,它只要存放指令一次操作的数据就够了。

    从远近来看: CPU〈——〉寄存器〈—->缓存内存

    寄存器并不每次数据都可以从缓存中取得数据,万一不是同一个内存地址中的数据,那寄存器还必须直接绕过缓存从内存中取数据。所以并不每次都得到缓存中取数据,这就是缓存的命中率,从缓存中取就命中,不从缓存中取从内存中取,就没命中。

    通俗的话讲:

    cpu(central processing unit)中央处理单元,是用来处理、控制信息的,内存是用来存储信息的,在硬件构造上通常二者都被构造为独立的硬件,当然也有构造在一起成为一个硬件的,如单片机。程序运行时所有的计算,信息解释与传输控制都是由cpu 完成的,而信息本身是存储在内存中的,cpu 需要信息时就把信息从内存中调入到cpu 中,这是一个传输过程,传输当然需要一定的时间,提高效率的一个方法就是流水线作业,cpu 从内存中读取数据时,通常不止是读取它正急需的数据,而是连同不是急需的数据一起读进来,放在自己的某个地方留着下步使用,这就像一个小卖部通常不是等客人来买什么货品才去批发市场进什么货一样,他们会一次性进入许多货品,放在柜台上等着卖,很明显这样比每次卖时重新进货效率高多了,在这里cpu就相当于小卖部,内存相当于批发市场,寄存器相当于小卖部的柜台,售货员相当于cpu 里的计算器和控制器。当然现在cpu除了寄存器外还有一级缓存二级缓存用于存储临时数据,这相当于小卖部自己建设了一个临时仓库出错货品…这一切都是为了完成功能的基础上提高效率,你说小卖部只是在客人来买东西时根据客人需要再去提货能不能行呢?明显也能运转,现在有些小规模的电子商品柜台不就是这样的吗,你问他买台笔记本,他说需要临时进货要等几天…为什么cpu增加了寄存器和缓存速度就快了呢?想想我们的小卖部吧,因为离得近了嘛,硬件上离得近了,少了一些导线和元器件传输,带宽通道也宽,每次会节省那么几微秒,对计算机来说几微秒的节省很不得了。

    展开全文
  • 寄存器内存

    千次阅读 2019-09-30 23:04:34
    打游戏断电后损失数据,原因是电脑用“随机存取存储器”简称RAM中信息丢失,它只能在有点情况下存储东西,比如游戏状态。 另一种存储叫持久存储,电源关闭...之相反,and门可记录0 为了能做出有用存储,我们把两个...
  • 【reverse】逆向2 寄存器与内存

    千次阅读 2021-07-31 10:49:26
    【reverse】逆向2 寄存器与内存 1、通用寄存器 主要用途其实没必要记下来,因为只是CPU建议你这么做。 寄存器需要按照顺序被下来 32位就是可以存32个0或1 所以存储范围就是0~0xFFFFFFFF 16位通用寄存器,名称就是...
  • 理解CPU/寄存器/内存之间的关系

    万次阅读 多人点赞 2018-10-08 23:35:35
    CPU/寄存器/内存  因为要了解多线程,自然少不了一些硬件知识的科普,我没有系统学习过硬件知识,仅仅是从书上以及网络上看来的,如果有错误请指出来。  CPU,全名Central Processing Unit(中央处理器)。这是...
  • 【8086汇编】2.访问寄存器与内存

    千次阅读 2020-02-07 21:55:47
    一、寄存器及数据存储 寄存器是CPU内部的信息存储单元,在8086CPU中有14个寄存器: 通用寄存器:AX、BX、CX、DX 变址寄存器:SI、DI 指针寄存器:SP、BP 指令指针寄存器:IP 段寄存器:CS、SS、DS、ES 标志寄存器...
  • CPU 寄存器内存三者之间的关系

    万次阅读 多人点赞 2018-08-26 16:43:19
    寄存器 不知道什么是寄存器?那见过太监没有?大家应该都看过古装戏,那些皇帝们要阅读奏章的时候,大臣总是先将奏章交给皇帝身边的小太监,小太监呢再交给皇帝同志进行处理。这个小太监只是个中转站,并无别的功能...
  • 8086CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放。比如我们从0地址开始...
  • 寄存器与内存访问

    2013-08-25 22:45:01
    学习内容:从内存角度继续学习寄存器内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放。这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。 字单元:存放...
  • 一、存储器及存储器映射 存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程称为存储器映射,如果再分配一个地址就叫...换句话说,寄存器就是一些有特定功能的内存单元。 (二)...
  • CPU中常见寄存器与内存的交互

    千次阅读 2020-04-20 22:27:40
    本篇博客关于指令集和PSW的内容参考至:https://www.cnblogs.com/f-ck-need-u/p/11141636.html,同时做下了寄存器与内存交互的总结。 指令集 对于每个CPU,其都有一套自己可以执行的专门的指令集(这部分指令由CPU...
  • 一、计算机的存储体系 ...寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。 寄存器是CPU的内部组成单元,是CPU运算时取指令和数据的地方,速度很快,寄存器
  • 寄存器、存储器、内存的区别

    千次阅读 2019-06-15 16:54:29
    从范围来看,它们所指的范畴不一样。 寄存器是中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件...寄存器内存,都是存储器里...
  • 单片机有寄存器内存内存就是RAM、ROM/FLASH,这里的内存的概念和电脑的不太一样,不要搞混,眼着于单片机即可。 ROM/FLASH:程序存储区(只读存储器),不变的东西都存这俩里头,并且存里头的东西只读。 RAM:...
  •     计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。     同样都是晶体管存储设备,为什么寄存器内存快呢?     原因一:距离不同     距离不是...
  • 「C语言」寄存器变量与内存变量
  • 最近一直在好奇一个问题:寄存器内存之间到底什么关系?我是知道寄存器是在CPU中的,但是内存存储空间是在硬件的哪里呢?知道这个问题的答案之后,觉得自己问这种问题确实点憨。你是不是啥傻?忘了有个东西叫做...
  • RAM-memory 即内存,是用于存放数据的...Cache :即高速缓冲存储器,是位于CPU内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU
  • CPU/寄存器/内存

    2019-10-03 20:16:09
    为了缓解寄存器与内存之间的巨大速度差异,硬件设计师做出了许多努力,包括在CPU内部设置缓存Cache、优化CPU工作方式,尽量一次性从内存读取指令所要用到的全部数据等等。  上面说到”缓存“,大部分程序员都知道...
  • 文章目录前言一、用Debug的R命令查看、改变CPU寄存器的内容r命令查看cpu寄存器内容:r命令改变寄存器中的内容:二、用Debug的D命令查看内存中的内容用D命令直接查看内存中的内容用“D 段地址:偏移地址”的格式来...
  • 也就是说,那些最频繁读写的数据(比如循环变量),都会放在寄存器里面,CPU 优先读写寄存器,再由寄存器内存交换数据 。 寄存器不依靠地址区分数据,而依靠名称。每一个寄存器都有自己的名称,我们告诉 CPU 去...
  • 内存、缓存、寄存器

    2020-08-27 23:19:16
    往往一个程序的运行,首先程序是放在电脑的硬盘...由于数据在内存与寄存器之间的传输速度比较慢,当需要经常进行数据的传输时,耗时较长。 这时就由出现了缓存这个概念,缓存是放在CPU上的一块内存,缓存与内存条和寄
  • 内存内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及硬盘等外部存储器交换的数据。如RAM,SDRAM,Flash等。 物理地址:操作系统会给每一个内存单元编上一个绝对的号,计算机系统就...
  • 通用寄存器_内存读写.part1
  • 详解通用寄存器-内存读写

    千次阅读 2020-10-28 16:04:16
    放在内存中会相对慢一点,但是内存要相对便宜一点 所以两者兼用会比较好。 cpu中提供的常用的32位容器 我们称为32位通用寄存器 32位通用寄存器的指定用途如下 这张图片里面的东西一定要记住,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 307,464
精华内容 122,985
关键字:

寄存器与内存