# 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)