學習目標 列出Von Neumann machine的元件以及它們的功能。 描述電腦記憶體如何組織與存取。
程式儲存化概念 圖 5.1 The von Neumann架構
The von Neumann架構 Stored Program 程式儲存在記憶體中,執行時一行一行讀出,加以執行。
記憶體 記憶體是記憶細胞(每個都擁有獨一無二的實體位址)的集合體
暫存器 暫存器(Register) 在CPU中的記憶體為暫存器(Register)。 暫存器可以用來存放將要進行運算或運算完畢的資料。
暫存器(Cont.) Program counter( PC)指向下一個要執行的指令。(儲存下一個要執行的指令的位址) MAR(memory Address Register):儲存要進/出記憶體資料的位址。 MBR(Memory Buffer Register):為一緩衝區,儲存要進/出記憶體資料的資料。 指令暫存器(instruction register, IR)儲存剛從記憶體取出而將要執行的指令。
資訊的流動 這些部份經由一組稱為匯流排(bus)的排線連接到另一個部份。 圖 5.2 資料流過范紐曼機器
擷取-執行週期 擷取下一個指令 將指令解碼 取得資料(如果有需要) 執行指令
圖 5.3 截取-執行週期
3.5 程式的執行流程 電腦的運作其實就是程式的執行,程式由是由許多指令(instruction)組成,這些指令將被循序地執行。 3.5 程式的執行流程 電腦的運作其實就是程式的執行,程式由是由許多指令(instruction)組成,這些指令將被循序地執行。 CPU執行一個指令的過程稱之為機器週期(machine cycle)。 通常指令的執行被分為許多階段,以DLX機器而言,一個指令將被分為5個步驟 指令擷取(IF) 指令解碼(ID) 指令執行(EX) 記憶體存取(MEM) 結果回存(WB) 其中指令擷取與指令解碼所花費的時間合稱為指令時間(I-Time;Instruction-Time)。 指令執行、記憶體存取、結果回存所花費的時間合稱為執行時間(E-Time;Execution-Time)。 機器循環週期=I-Time+E-Time。
程式的執行流程 DLX的機器循環週期 【註】: 一個指令究竟被分為幾個階段來執行,每種電腦的設計都有一些不同,有些電腦執行一個指令只需要4個階段IF、ID、EX、WB,有些電腦則將指令執行切割成更多階段,讀者若對其他各類電腦指令的運作有興趣,請參閱計算機結構之專書。
指令擷取 MARPC,PC PC+1 MBR M[MAR] IR MBR
4-2-2 機器循環週期 過程1:擷取指令 (1).程式計數器(Program Count, PC)暫存器把指向的位址(例如A)送到記憶體位址暫存器(Memory Address Register, MAR)暫存器,準備提取運算碼 (2).PC暫存器自動再指向下一個指令的位址(例如A+1)。 (3).MAR依據位址(例如A) ,找到記憶體中的運算碼 (例如ADD),並將運算碼 送到記憶體緩衝暫存器 (Memory Buffer Register, MBR)。所以MBR目前所 存放的就是即將要被執行 的指令
4-2-2 機器循環週期 過程2:解碼 (4).MBR將運算碼(ADD)送到指令暫存器(instruction register, IR)。 (5).IR將運算碼送給解碼器(Decoder)。 (6).解碼器將運算碼(ADD)解析為許多微指令,若需要運算時會通知算術邏輯單元,若需要再提取資料時,會進行過程3的動作。此時運算碼(ADD)需要提取下一運算元。
4-2-2 機器循環週期 過程3:擷取運算元 類似於過程1的動作: (7).程式計數器(Program Count, PC)暫存器把指向的位址(例如A+1)送到MAR,準備提取運算元。 (8).PC暫存器自動再指向下一個指令的位址(例如A+2)。 (9).MAR依據位址(例如 A+1),找到記憶體中的 運算元(例如Y),並將運 算元送到MBR。所以 MBR目前所存放的就是 即將要被計算的運算元。
4-2-2 機器循環週期 過程4:執行指令 (10).MBR把運算元(B)送到ALU並與累加器共同執行運算。
4-2-2 機器循環週期 過程5:存放結果 (12).視指令狀況把運算結果再送回主記憶體中儲存。