---
# System prepended metadata

title: 實現single-cycle processorr

---

# 實現single-cycle processorr

當我們設計一個processor時，了解其基本運作原理是至關重要的。以下是一些重點的詳細解釋：

* Clock的重要性：
    * Clock是processorr操作的時間參考，它為processorr提供了時序。每個clock週期被分為不同的階段，確保指令按照順序執行並保持同步。
* Clock邊緣觸發的意義：
    * Clock的上升或下降邊緣觸發每個週期的開始。在這些邊緣上，processorr執行相應的操作，例如取指、解碼、執行、Memory存取和寫回。這樣的時序控制確保指令流程的順暢執行和穩定同步。
* Clock週期時間與組合邏輯延遲的關係：
    * Clock週期時間必須足夠長，以容納所有組合邏輯閘的延遲。這確保所有操作都能在單一週期內完成，避免時序問題。
* register的角色：
    * register在processorr中起著儲存和傳輸資料的關鍵角色。指令的運行始於讀取register中的資料，經過組合邏輯進行運算，最後將結果寫回register。這形成了processorr的資料路徑。
* 單一Clock週期內的操作：
    * 所有指令執行流程，包括取指、解碼、執行、Memory存取和寫回，都必須在單一Clock週期內完成。這確保每條指令都在同一時間框內完成，實現統一的時序。
* 沒有明確的回授路徑：
    * 由於整個設計在單一Clock週期內完成，因此沒有真正的回授路徑。這種設計確保指令執行的穩定性和可預測性，同時減少 race condition 的可能性。
* race condition的問題：
    * race condition 可能導致結果的不一致性，因為不同的操作可能在不同的時刻競爭相同的資源。在實際電路設計中，必須謹慎處理和避免race condition，確保正確的資料傳遞和processorr的正確運作。

## Clocking Methodology
Clocking Methodology
是數位電路設計的重要方面，特別是在處理器和其他同步數位系統的情境下。提供的陳述概述了Clocking Methodology的關鍵方面：
* 組合邏輯轉換：
    * 組合邏輯電路負責在Clock週期內轉換數據。這些電路在兩個相鄰的Clock邊緣之間操作，從狀態元件（如寄存器或觸發器）接收輸入，並生成可能反饋到狀態元件的輸出。
* Clock邊緣之間的操作：
    * 組合邏輯執行的操作發生在兩個相鄰Clock邊緣之間的時間段內。這段時間被稱為Clock週期或Clock周期。在此期間，組合邏輯處理輸入數據並生成相應的輸出。
* 從狀態元件輸入，輸出到狀態元件：
    * 組合邏輯從狀態元件接收輸入，這些元件存儲前一個Clock週期的數據。然後，組合邏輯的輸出被反饋到狀態元件以進行存儲，直到下一個Clock邊緣。
* 以最長延遲為Clock週期：
    * Clock週期由組合邏輯電路的最長延遲確定。延遲指的是信號通過組合邏輯的傳播所需的時間。Clock週期必須足夠長，以容納最長延遲，以確保電路的正常運作。

Clocking Methodology：

⧫ 定義信號何時被讀取和寫入

⧫ 假定邊緣觸發：

僅在Clock邊緣時更新存儲（狀態）元件中的值
=> Clock邊緣應該在輸入信號穩定之後才到達
任何組合電路必須具有從存儲元件輸入和輸出的功能
Clock週期：信號從一個存儲元件傳播，通過組合電路，到達第二個存儲元件所需的時間
寄存器可以在同一個Clock週期內被讀取，其值通過某個組合電路傳播，新值被寫回到相同的寄存器，所有這些操作在同一週期內完成 => 單一週期內無反饋。
這樣的Clocking Methodology確保數位電路的同步性和穩定性。在邊緣觸發的情況下，操作僅在Clock邊緣時進行，確保了穩定的輸入信號。同時，組合電路的輸入和輸出都與存儲元件相關聯，並且整個操作流程在單一Clock週期內完成，避免了在同一週期內的反饋。

## The Critical Path（關鍵路徑）：

⧫ Register File和理想Memory：

在讀取期間，表現為組合邏輯：
地址有效 => 存取時間後輸出有效
在數位電路中，「關鍵路徑」指的是信號在電路中的最長延遲路徑。這條路徑的長度和延遲時間決定了整個電路的性能和時脈頻率。在這個上下文中，描述了Register File和理想Memory的關鍵路徑的一些特點：

Register File（Register File）：

在理想情況下，當進行讀取操作時，Register File的行為類似組合邏輯。
當輸入的地址信號為有效（address valid）時，讀取操作的結果將在存取時間（access time）之後變為有效。換句話說，只有在地址信號有效的情況下，讀取操作的輸出才會在存取時間後變得有效。
理想Memory（Ideal Memory）：

同樣地，在理想Memory中，當進行讀取操作時，其行為也被描述為組合邏輯。
一旦地址信號有效，Memory的輸出將在存取時間後變得有效。
![image](https://hackmd.io/_uploads/Sk0OgUC9p.png)
