流水線的總體效率取決於最耽誤事的那個結點,即流水線級數中最長延遲那個。(由於流水線是先後順序傳遞的)效率
之因此會有超級流水線,就是由於有多級流水線中最耽誤事的結點存在,因此將這個結點細分。由於這是這是影響全局的關鍵因素,但並非說越細分就越越好,細分是有成本的,增長流水線寄存器也是要有延遲的。因此當增長的流水線延遲大於細分分開的延遲,那就得不償失了。並行
一共三種冒險,分別是數據冒險、結構冒險、控制冒險,能夠直接從其名字加以區分,可是理解不到位,容易混淆。方法
數據冒險:與數據有關,數據的產生與ALU有關,因此,這裏的冒險是指,ALU計算出數據尚未回寫時就要被用到,那正常狀況必定是用不到的。(不過有解決方法:數據前遞,但也不是徹底解決,好比正在進行ALU計算時就要這個數據,那也是得不到的)cpu
結構冒險:與結構有關,好比指令和數據放在了同一個存儲器,由於一次容許一個指令讀,因此要冒險;還有讀寄存器和寫寄存器同時發生,又是發生爭搶,要冒險。數據
控制冒險:控制去哪唄,好比一個分支指令,還不清楚下一步要去哪的時候,執行緊隨它以後的指令是很懸的,因此又要冒險了。時間