[英]Need Clarification on Memory Accessing (ISA/MIPS)
我正在做一個理論作業,我設計自己的 ISA。 我正在做一個內存-內存設計,其中 ALU 接收來自內存的輸入並輸出回內存而不使用任何寄存器。 這是一種過時的方法,現在寄存器更有效,但這對我的任務無關緊要。
我的問題:
如果我的指令之一的編碼看起來像這樣
opcode|destination|value1|value2|function
00 0001 0011 1100 00
函數“00”代表加法,操作碼 00 代表 ALU 操作。
對於該功能,我的 RTN 如下所示:
Mem[0001] <--- Mem[0011] + Mem[1100]
0001, 0011, 1100 是內存地址,我想要完成的是將這些內存地址中的值相加,然后將其存儲在 0001 的內存地址中(覆蓋它)。
因此,如果內存地址 0011 中的值為“2”,而內存地址 1100 中的值為“3”,則我的指令會將“5”存儲在內存地址 0001 中。
還可以說我想用“4”覆蓋地址 1100 中的值“3”。 我可以做 Mem[1100] <--- 0100(binary for 4) 嗎?
我正在實施的是正確的嗎? 或者我接近內存尋址完全錯誤?
這些架構通常有一個累加器。 否則你需要一個雙端口內存來同時訪問兩個操作數。
您可以鎖存一個內存值,但這只是一個不太通用的累加器。
存儲器寫入在與讀取不同的時鍾/時鍾側翼上完成。
Memory-const 操作使用與相同類型的 memory-memory 操作不同的操作碼。
最后,如果你的 const 對於你的指令大小來說太大,你需要先將 const 復制到一個內存地址,然后在內存-內存操作中使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.