6.流水線的藝術

T觸發器發表於2020-12-27

簡述

總的來說思路就是,一級電路處理a1,交給二級電路,在二級電路處理a1的時候,一級電路處理a2,也就是電路時鐘處於工作狀態,而不用等待最後一級輸出a1之後再處理a2。

DLX指令集的實現

指令集主要分為5個部分,:

  1. 指令獲取(IF)
  2. 指令解碼、暫存器獲取(ID)
  3. 執行、有效地址週期(EX)
  4. 訪問儲存器、分支完成周期(MEM)
  5. 寫會週期(WB)
    使用多週期流水線實現上述指令集需要9個週期就可以執行5條指令,單週期操作5個指令則需要25個週期,效能提升了2.8倍

流水線注意事項

  1. 所有共享一條流水線的指令的階段和階段次序必須相同。不需要則在該週期不操作
  2. 所有中間值必須在各個週期鎖存
  3. 不能服用任何模組
  4. 一個階段的所有操作應該在一個週期內完成

流水線冒險

  1. 結構冒險,一個指令的多個階段需要使用同一個儲存器等硬體資源,例如i為0的時候i++,和i=100+i,這兩個指令如果同時爭奪一個儲存器
  2. 資料冒險,後一個指令輸入為上一個指令的輸出
  3. 控制冒險,後一個指令的控制引數(地址?程式計數器?)為上一個輸入

adc使用流水線可以顯著提升取樣速率

相關文章