處理器:資料路徑與控制

單週期處理器(single-cycle processor)

想像一位廚師堅持把一道菜完全做完——切、煮、擺盤、上桌——才肯碰下一張訂單。無論這道菜多簡單,整個廚房都被最慢那道菜的節奏綁住。單週期處理器就是這樣運作:每一道指令,不論簡單或複雜,都在一個時脈滴答內從頭到尾完成,而時脈必須慢到足以讓最費時的指令做完。

在單週期設計裡,資料路徑被布置成:在一個時脈週期內,訊號能一路從讀取程式計數器、提取指令、讀暫存器、在 ALU 運算、視需要存取資料記憶體、到把結果寫回——全都趕在結束週期的時脈邊緣之前完成。因為一切都在一個週期內發生,這種設計極易理解、易於推理:你可以在圖上一趟就追蹤任何一道指令,沒有半途未完的指令要記掛。

誠實的代價是效能。時脈週期必須長到能容納資料路徑中最長的路徑(關鍵路徑),通常是載入指令(PC + 指令記憶體 + 讀暫存器 + ALU + 資料記憶體 + 寫暫存器)。每一道指令,即使是不需要上述任何步驟的簡單加法,也被拉長到同樣的最壞情況長度。正是這種浪費,促使真實設計轉向多週期、再到管線化的組織。單週期 CPU 是教學的鷹架,而非具競爭力的晶片。

假設一道加法只需 2 奈秒的邏輯時間,而一道載入需 8 奈秒。單週期時脈至少要 8 奈秒,於是本來 2 奈秒就能完成的加法,也被迫花掉 8 奈秒——在常見情況上浪費了四倍。

每個時脈週期一道指令,但時脈被釘死在最慢指令的需求上。

單週期並不代表快。「每週期一道指令」聽起來理想,但週期本身被迫拉長;CPI 是 1,週期時間卻很糟。這正是整個管線化故事的種子。

又称
single-cycle datapath單週期資料路徑