当一个值从一个寄存器复制到另一个寄存器时,源寄存器中的值 会发生什么变化?目标寄存器中的值会发生什么变化。CPU和内存(值,寄存器)
0
A
回答
2
我将展示它如何在简单的处理器中工作,如用于研究CPU架构的DLX或RISC。
当(AT & T语法,或$ R1复制到$ R2)
mov $R1, $R2
或偶数(对于RISC风格架构)
add $R1, 0, $R2
指令工作,CPU将读取的源操作数:来自register file的R1和来自...的零可以是立即操作数或零发生器;将两个输入传递到Arithmetic Logic Unit (ALU)。 ALU将执行只是将第一个源操作数传递到目标的操作(因为A + 0 = A),并且在ALU之后,目标将被写回寄存器文件(但是到R2插槽)。
所以,数据在源寄存器仅readed和没有改变在此操作中; 目标寄存器中的数据将被源寄存器数据的副本覆盖。 (目标寄存器的老态将会丢失with generating of heat。)
在物理层,在寄存器文件中的任何寄存器设置的SRAM cells,他们每个人是两个逆变器(双稳态触发器的基础上,M1,M2 ,M3,M4)和附加门写作和阅读:
当我们要覆盖到存储于SRAM单元格的值,我们将设置BL和-BL根据我们的数据(存储位0 - 设置BL和取消设置-BL;存储位1 - 设置-BL和取消设置BL);然后写入单元的当前设置(行)(WL打开;它将打开M5和M6)。 M5和M6打开后,BL和-BL将改变双稳态触发器的状态(如SR-latch)。因此,新值被写入并丢弃旧值(通过将电荷泄漏到BL和-BL中)。
相关问题
- 1. perf-report显示CPU寄存器的值
- 2. 从CPU转储CPU寄存器
- 3. 在CPU寄存器中分配寄存器变量的标准?
- 4. JB和值寄存器
- 5. XMM寄存器值
- 6. 寄存器值8086
- 7. 内存数据寄存器(MDR)与内存缓冲寄存器(MBR)
- 8. C++ CPU寄存器的使用
- 9. FPGA器件内存映射寄存器
- 10. LC3,将寄存器的值存储到内存位置
- 11. 在另一个cpu内核中读/写寄存器
- 12. 在内核崩溃转储期间分析CPU寄存器
- 13. 可以寄存器在CPU内部做算术
- 14. CPU寄存器内的字节序编号
- 15. XOR寄存器,寄存器(汇编)
- 16. 解释GDB寄存器(SSE寄存器)
- 17. Python中的内存映射寄存器
- 18. Java堆内存尖峰和CPU峰值
- 19. 有没有办法让sbcl打印出CPU寄存器的值?
- 20. 寄存器值问题
- 21. 的x86寄存器值
- 22. 获得值寄存器
- 23. java将对象保存在cpu寄存器中
- 24. 将变量存储在CPU寄存器中
- 25. 存放无符号长值寄存器
- 26. Ansible:无法存取寄存器的值
- 27. 保存xmm寄存器的值
- 28. 如何理解和更改bochsdbg中的CPU寄存器标志?
- 29. 寄存器和临时寄存器有什么区别?
- 30. 使用FPU和MMX寄存器作为“通用寄存器”
哇!兰道尔的原则很酷!从来没有想过这样。 – 2011-11-17 22:40:34
你应该知道它仍然有点争议。这是一个下限,对于现代CPU(有许多经典Wt)的Wt <2/100(最坏情况估计)。但它是量子计算机的主要限制因素(如果你不可逆地重写量子寄存器,它将被加热并失去量子性质)。因此[量子门](http://en.wikipedia.org/wiki/Quantum_gate)具有相同数量的输入和输出,任何计算都可以从最终状态恢复(反转)回到开始状态。 – osgx