---
# System prepended metadata

title: Single-Cycle Processor

---

# Single-Cycle Processor
## Introduction：
* 在計算機架構和性能優化的領域中，了解影響CPU性能的因素至關重要。這涉及深入研究各個方面，如指令數、每指令週期數（CPI）、週期時間，以及指令集架構（ISA）、編譯器和CPU硬體之間的相互作用。

## CPU性能因素：
* 指令數：
    * 由指令集架構（ISA）和編譯器的效率確定。
    * ISA的選擇以及編譯器將高級代碼轉換為機器指令的程度，顯著影響指令數。
* CPI和週期時間：
    * CPI（每指令週期數）和週期時間受到CPU硬體設計和架構的影響。
    * CPI測量執行一條指令所需的平均時鐘周期數，而週期時間表示一個時鐘周期所需的時間。

## 兩個MIPS實現：
* 簡化版本：
    * 提供基本概念的基本版本。
    * 深入研究基本指令，如lw（加載字）、sw（存儲字）、add、sub、and、or、slt（設置小於）。
    * 還將探討分支指令如beq（相等時分支）和j（跳轉）。
* 實際流水線版本：
    * 一個更複雜的實現，反映現代CPU的流水線性質。
    * 流水線將指令的執行分解為階段，允許並行處理。
    * 這個版本將展示流水線如何影響記憶體、算術、邏輯和控制轉移指令的性能。
## 指令集：
* Memory 引用：
    * lw（加載字）
    * sw（存儲字）
* 算術/邏輯：
    * add
    * sub
    * and
    * or
    * slt
* 控制轉移：
    * beq（相等時分支）
    * j（跳轉）

## Instruction Execution
指令執行是計算機處理器中的核心過程，涉及從記憶體中擷取指令、解碼指令、計算以及存取數據。

* 指令被執行的流程：
    * 透過PC得知指令位子
    * 到instruction memory取出指令
    * 指令中有暫存器編號則到對應暫存器取出資料
    * 判斷要做哪一種運算
    * ALU操作（一般算數、加載/存儲、分支）：
        * 使用算術邏輯單元（ALU）執行算術運算，計算 memory 的加載/存儲地址，或計算分支的目標地址。
    * 存取 memory ：
        * 如果指令涉及 memory 操作，則進行相應的 memory 讀取或存儲。
    * 更新程序計數器（PC = PC + 4）：
        * 使程序計數器增加4，指向下一條指令的位置。
## Logic Design Basics

* 資訊以二進制編碼：
    * 低電壓表示 0，高電壓表示 1。
    * 每個位元使用一條電線。
    * 多位元資料使用多條電線編碼在多線匯流排上。
* 組合元件：
    * 對資料進行操作。
    * 輸出是輸入的函數。
* 狀態（順序）元件：
    * 儲存資訊。

![image](https://hackmd.io/_uploads/rJ3qiV59T.png)



