當一個值從一個寄存器複製到另一個寄存器時,源寄存器中的值 會發生什麼變化?目標寄存器中的值會發生什麼變化。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