# 計算機組織與結構 L4 處理器 : 資料路徑與控制 計算機實作規格有兩種 - **單一時脈計算機** - 所有指令的執行都要在一個時脈週期內完成 - 時脈週期長度取決於最長執行時間的指令 - 效率不佳 - **多重時脈計算機** - 將指令分成好幾個步驟,每個步驟都是一個時脈週期 - 執行時間較長的指令需要較多的步驟 - 減少單一時脈造成的時間浪費 ## 抽象化設計 **指令集 :** 建構計算機的規格 **Design Abstraction :** 設計複雜系統時,將較低層的細節掩藏起來,以簡化抽象化設計原則 - 基本零件 - **Register File :**  - **ALU :**  - **Data Memory :**  - **Instruction Memory :**  - **Adder :**  - **Sign Extension Unit :**  - **Program Counter :**  - **Processor (CPU) :** - 包含 Datapath 和 Control Unit ## 單一時脈計算機 (Single Cycle Machine) Datapath 的建構 **RTL (Register Transfer Language) :** 暫存器轉移敘述 1. **Instruction Fetch**  2. **R-Tpye Instruction**  3. **Load Word**  4. **Store Word**  5. **Branch On Equal**   6. **Memory & R-Tpye (2, 3, 4)**  7. **Memory & R-Type & Instruction Fetch (1, 2, 3, 4)**  8. **Memory & R-Type & Instruction Fetch & Branch (1, 2, 3, 4, 5)**  9. ⭐**With Control Unit**  10. **With Jump**  ## 單一時脈計算機的 Control Unit - 用 **Control Unit** 的其中兩根訊號線 **ALUOp** 控制 **ALU Control** - 降低主要控制單元的尺寸 - 加快控制單元的速度   - | 控制信號 | Effect When Deasserted | Effect When Asserted | | -------- | -------- | -------- | | **RegDst** | 寫入的目的暫存器是 **rt** | 寫入的目的暫存器是 **rd** | | **RegWrite** |None|允許寫入資料| |**ALUSrc** | ALU 的第二個運算元為 **register 第二個輸出** | ALU 第二個運算元為 **sign extend 後的結果** | |**PCSrc**| PC 為 **PC + 4** |PC 為**分支目的位址**| |**MemRead**|None|允許要被讀的資料輸出記憶體| |**MemWrite**|None|允許要被寫的資料輸入記憶體| |**MemtoReg**|要寫入 register 的資料是來自 **ALU 的計算結果**| 要寫入 register 的資料是來自 **memory**| - | 指令 | RegDst | ALUSrc | MemtoReg | RegWrite | | -------- | -------- |---|---|---| | **R-Type** | 1 | 0 | 0 | 1 | | **lw** | 0 | 1 | 1 | 1 | | **sw** | x | 1 | x | 0 | | **beq** | x | 0 | x | 0 | | **addi** | 0 | 1 | 0 | 1 | | 指令 | MemRead | MemWrite | Branch | ALUOp1 | ALUOp0 | | -------- | -------- | -- | -- |---|---| | **R-Type** | 0 | 0 | 0 | 1 | 0 | | **lw** | 1 | 0 | 0 | 0 | 0 | | **sw** | 0 | 1 | 0 | 0 | 0 | | **beq** | 0 | 0 | 1 | 0 | 1 | | **addi** | 0 | 0 | 0 | 0 | 0 | - **PLA (Programmable Logic Array) :** 是 Control Unit 的其中一種電路方式  - **Dataflow Chart** - **Dataflow for R-Type** - **PIR MAMR**  - **Dataflow for lw** - **PIR ADMR**  - **Dataflow for sw** - **PIR AD**  - **Dataflow for Branch** - **PIR MAaM**  - **Dataflow for addi** - **PIR AMR**  - **Dataflow for Jump** - **PI SCM**  - **Chart Comparision**  ## 多重時脈計算機 (Multi Cycle Machine) - **每個步驟**只能使用**一個主要功能單元** - **Memory** - **Register** - **ALU** - 指令執行步驟分為 - **Instruction Fetch (IF)** - **Instruction Decode & Register Fetch (ID)** - **Execution, Memory Address Computation or Branch Completion (EXE)** - **Memory Access or R-Type Instruction Completion (MEM)** - **Memory Read Completion (WB)** 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up