指令集與組合語言

下列何者是對現在的高效能x86 CPU在內部如何執行複雜指令的正確說明?

  1. A所有指令都以軟體模擬器一個指令一個指令地執行
  2. B解碼指令後,拆分為類似RISC的單純微運算,再以管線執行
  3. C因為無法執行複雜的指令,所以由作業系統視為錯誤而停止
查看答案與解析

正確答案:B. 解碼指令後,拆分為類似RISC的單純微運算,再以管線執行

x86 CPU在前段的解碼器,將可變長度的複雜指令拆分為稱為微運算(μop)的單純操作,後段則以亂序(out-of-order)方式執行這些微運算。也有CPU具備μop快取,保存拆分過的μop,不必重新解碼。如此一來,在維持與舊軟體相容的同時,也運用了與RISC相同的高速執行技術。

  • A. 並不是以軟體模擬。
  • B. 正確。外部是CISC,內部接近RISC。
  • C. 複雜的指令也能執行。
練習這個領域 前往領域頁面

指令集與組合語言的其他題目

  1. 下列何者是RISC-V的M擴充加到基本整數指令集的指令?
  2. 下列何者是RISC-V的C擴充(壓縮指令)的主要目的?
  3. 針對沒有M擴充的RV32I CPU,編譯C語言的「a * b」(int與int相乘)時,一般會變成什麼?
  4. 關於以前的MIPS等具備的分支延遲槽(branch delay slot,不論是否分支,緊接在分支指令之後的1個指令都會被執行的規定),下列何者正確?
  5. 在64位元的RV64I中執行lw指令時,讀入的32位元值是如何放入64位元暫存器的?