資源描述:
《計算機科學引論》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、CPU的結(jié)構(gòu)和指令的執(zhí)行計算機科學引論CPU的基本部件計算機的基本模型有兩個部件內(nèi)存存儲需要處理的數(shù)據(jù)存儲處理好的數(shù)據(jù)存儲程序CPU執(zhí)行存儲在內(nèi)存中的程序,把需要處理的數(shù)據(jù)變換成所期望的新格式或內(nèi)容(處理好的數(shù)據(jù))結(jié)構(gòu)比內(nèi)存復雜得多內(nèi)存CPU8/27/20212MachineStructureCPU的基本部件CPU究竟需要哪些部件?CPU的工作:執(zhí)行程序(program)程序:一系列的指令(instruction)指令:對一個或多個數(shù)進行某個操作Z=X+YA=B*C操作(operator)操作數(shù)(operand)讓CPU工作的第一步:告訴它操作和操作數(shù)的信息CPU只認識二進制數(shù)把指令編碼成二
2、進制數(shù)8/27/20213MachineStructureCPU的基本部件指令編碼編碼操作常用操作個數(shù):20-30個用4-5位二進制數(shù)即可編碼8/27/20214MachineStructureCPU的基本部件指令編碼編碼操作數(shù)操作數(shù)存儲在內(nèi)存中內(nèi)存用地址索引?用地址編碼操作數(shù)?32位平臺,地址一般是32位3操作數(shù)指令的話,地址要32*3=96位!現(xiàn)代內(nèi)存相對于現(xiàn)代CPU的速度來說也太慢了?把操作數(shù)放到快而小的存儲空間?指令中只編碼一個地址8/27/20215MachineStructureCPU的基本部件指令編碼編碼操作數(shù)操作數(shù)放在哪里?比較小,可以用很短的地址編碼非???,和CPU的計算速
3、度相當要快,就要?。?寄存器(register)8/27/20216MachineStructureCPU的基本部件指令編碼寄存器(register)CPU中存放操作數(shù)的空間?。阂话悴怀^32個快:一般一個CPU周期可訪問多次(2到10多次)編碼操作數(shù)編碼寄存器的地址32個寄存器須用5位二進制編碼,3個操作數(shù)需要3*5=15位二進制數(shù)CPU寄存器內(nèi)存8/27/20217MachineStructureCPU的基本部件指令編碼寄存器中的數(shù)從何而來?數(shù)據(jù)總是存儲在內(nèi)存中的?數(shù)據(jù)必須從內(nèi)存讀內(nèi)存訪問指令:只編碼一個地址RISC類CPU甚至只編碼半個地址,一個32位地址須由兩條指令裝載到寄存器并拼接
4、而成CPU需要內(nèi)存訪問單元(memoryunit)CPU寄存器內(nèi)存MU8/27/20218MachineStructureCPU的基本部件指令所指定的操作需要執(zhí)行CPU需要有執(zhí)行部件不同功能的執(zhí)行部件有不同的名字ALU:算術(shù)邏輯單元(執(zhí)行整數(shù)算術(shù)邏輯運算)FPU:浮點單元(執(zhí)行浮點運算)……CPU寄存器MUALUFPU為何ALU/FPU要接到MU上?CISC類CPU允許指令使用內(nèi)存操作數(shù)現(xiàn)代CPU為優(yōu)化執(zhí)行速度而這么設計8/27/20219MachineStructureCPU的基本部件指令也必須從內(nèi)存中讀取存儲程序?取指部件(instructionfetch)CPU寄存器MUALUFPUI
5、FIF要讀內(nèi)存,連上MU??較老的CPU是這么設計的?較新的CPU其MU被分裂成多個部件以提高速度8/27/202110MachineStructureCPU的基本部件指令從哪個內(nèi)存單元取?IP/PCInstructionPointer,ProgramCounterCPU寄存器MUALUFPUIFPC每次取到指令后,IP/PC自動加適當?shù)闹抵赶蛳乱粭l指令?分支指令怎么辦?8/27/202111MachineStructureCPU的基本部件控制器(ControlUnit)控制指令執(zhí)行過程,協(xié)調(diào)各部件工作CPU寄存器MUALUFPUIFPCCUCPU核心邏輯,最難設計的部分。設計優(yōu)劣直接影響C
6、PU的性能。8/27/202112MachineStructureCPU指令執(zhí)行過程第一步:取指把IP/PC的值交給MUMU讀到指令給IFIP/PC增加,指向下一條指令寄存器MUALUFPUIFPCCU.8/27/202113MachineStructure指令執(zhí)行過程第二步:指令譯碼(decode)解出指令的操作和操作數(shù),并從寄存器讀出需要的操作數(shù)寄存器MUALUFPUIFPCCUaddr1,r2,r3指令寄存器8/27/202114MachineStructure指令執(zhí)行過程第三步:運算執(zhí)行指令所指定的運算寄存器MUALUFPUIFPCCUaddr1,r2,r38/27/202115Ma
7、chineStructure指令執(zhí)行過程第四步:內(nèi)存訪問如果是要讀寫內(nèi)存的指令:讀寫內(nèi)存如果不是??暫停等待一周期,或跳過寄存器MUALUFPUIFPCCUaddr1,r2,r38/27/202116MachineStructure指令執(zhí)行過程第五步:寫回把結(jié)果寫回寄存器寄存器MUALUFPUIFPCCUaddr1,r2,r38/27/202117MachineStructureMIPS的指令執(zhí)行簡化表示IF