1、1p.012p.01p透過透過內儲程式內儲程式的控制,配合適當的控制,配合適當(時時)的的Input,產,產生正確的生正確的Output的機器。的機器。p電腦的電腦的5大架構大架構1.C.U.(Control Unit)2.A.L.U.(Arithmetic&Logic Unit)3.Memory4.Input5.OutputC.P.U.(Central Processing Unit)I/O有缺陷,所以需要有缺陷,所以需要輔助記憶體輔助記憶體3p.01程式 資料MemoryCPUC.U.A.L.U.InputOutputA.S.(Auxiliary Storage)輔助記憶體指令資料存取4p
2、.01pMemory實作之缺陷實作之缺陷1.速度太慢 階層式記憶體(Memory Hierarchy)解決,如:快取記憶體(Cache)2.容量有限3.揮發性記憶體(Volatile Storage)n快閃記憶體(Flash Memory)nRAM(Random Access Memory)nMain Memory主體,有volatile。nROM(Read Only Memory)n唯讀,沒有volatile,將程式燒入其中,開機時將作業系統(Operating System)搬入Memory中。A.S.解決5p.01pROM儲存程式分類儲存程式分類1.自我檢查程式自我檢查程式2.Boots
3、trap載入載入:將:將OS載入載入Memory中中n(Bootstrap Loader):靴帶程式,可以上工了!3.BIOS(Basic Input Output System)n所有有關I/O操控程式的集合,以備其他程式呼叫。6p.01pRegister 暫存器暫存器(工人的口袋工人的口袋)n一排Flip/Flop(正反器),儲存一組資訊,速度極快,存CPU最近馬上要用/常用的資訊(資料,位址,指令)nCPU內有許多Registers(現在約十幾個,以後會更多250個nRegister可分為Data Register1.General-Purpose Register:AX,BX,CX,D
4、X等2.Accumulator(累加器):Acc等Control RegisternSpecial-Purpose Register慢慢CPUMemory暫存器工人倉庫資料資料指令指令7p.01pControl Register1.PC:Program Counter(計數器)n存電腦正要/將要執行的指令的位址2.IR:Instruction Registern存電腦正在執行的指令內容3.MAR(Memory Address Register)n決定Memory實際大小之上限4.MBR(Memory Buffer Register)n決定電腦之位元數5.Flag Register(旗標暫存器)
5、n存一串bits,分成數個欄位,每個欄位紀錄正在執行程式的某一狀態,代表某個狀態發生了沒?CUALUPCIRMemory位址+指令CPU.1 Giga Bytes=230MARMBR位址位址 30bits資料資料(指令指令)8p.01p能執行指令,處理資料的電路,平時不作用,只能執行指令,處理資料的電路,平時不作用,只執行特定指令,專門負責執行特定指令,專門負責CPU1.不會做不會做:如80386時代80486之80387浮點算器,目前之DSP數位訊號處理器(Digital Signal Processor)等。2.不願做不願做:如I/O指令由I/O processor負責,因為CPU執行速度
6、快(us),而I/O速度慢(ms)。為使CPU速度不被I/O拖住,所以以I/O processor代為執行,可使CPU以Multi-programming方式,多工處理多個程式。nI/O processor又稱為又稱為channel(通道通道)nPC(Personal Computer)以以DMA(Direct Memory Access)代替代替I/O processor。沒有I/O processor窮人的I/O processor9p.011.Address bus 2.Data Bus3.Control BusCPU.MARMBRR/W Address單向單向MemoryALE送位址門
7、鎖送位址門鎖DIR方向方向DEN 送資料送資料 雙向雙向Address Letch EnableData ENable10p.01pCPU/電腦中最複雜的部分電腦中最複雜的部分p製作方式製作方式1.Hardwired(硬體接線):將C.U.視為一種邏輯電路1.1940s1960s,1985s未來2.缺點:工程浩大費時修改不易3.優點:速度快2.Micro-programmed(微程式):將C.U.視為一ROM(Read Only Memory)1.1960s1980s中2.缺點:反應速度慢3.優點發展迅速修改方便11p.01p指令:機器碼指令:機器碼 Machine code(一串一串0/1)
8、抓指令抓指令執行執行OP-codeOperandsOperandsOperands運算碼運算碼運算元運算元動作動作對象對象12p.01TimeInstruction Cycle(指令週期)S1S2S3S4 S1:ADD DX,100BXFetch Instruction 把指令抓進Memory中Decode 解碼,CU發出該Op-code之控制訊號Operand Addressing 找出運算元在Memory中的位址Operand Fetch 抓取運算元Execution 執行運算Write Back 將執行結果寫回Memory中13p.01CISC:Complex Instruction S
9、et Computer 複雜複雜 指令指令 集集 電腦電腦 六階段六階段RISC:Reduced Instruction Set Computer 簡單簡單 指令指令 集集 電腦電腦 四階段四階段ADD AX,100BX AXAX+Mem100+BX Fetch Ins.DecodeOperand AddressingOperand FetchExecutionWrite backFetchDecodeExecutionWrite back14p.01pRISC vs.CISCnCISC:1970s因以Micro-Programmed來製作C.U的方式(軟體)被重用,C.U的大小及功能被不斷擴
10、充,所以指令集中的指令數目增加到500800個之多。nRISC:1970s末,IBM-801以Hardwired的方式(硬體)製作C.U,所需指令少,速度快。nRISC指令集架構是由David Peterson(U.C Berkeley)及 John Hennessy(Stanford)所發揚光大。nWhy RISC?80%的CPU時間執行20%的基本指令。15p.01RISCCISC指令數目指令數目100個之內個之內數百個數百個定址法定址法固定數種固定數種(Direct,Immediate等等)複雜而變化多複雜而變化多指令長度與格式指令長度與格式固定固定(4Bytes)各指令隨需要而不同各指
11、令隨需要而不同指令週期指令週期固定固定各指令隨需要而不同各指令隨需要而不同控制邏輯控制邏輯HardwiredMicroprogrammed程式所需指令數目程式所需指令數目較多較多較少較少特性特性較適用於較適用於Pipeline,Cache等設計等設計程式設計較簡單程式設計較簡單Code Size大大小小代表機型代表機型ALPHA,Power PC等等僅僅Pentium系列系列Register數目數目多多(數十數十數百個數百個)少少(數個數個)16p.01pPipeline:將:將指令指令分成數個獨立階段分成數個獨立階段(stage),分,分別由不同之硬體負責,使連續指令能同時按順序別由不同之硬
12、體負責,使連續指令能同時按順序在不同階段在不同階段重疊重疊(overlap)執行執行TimeInstruction Cycle(指令週期)F1S1S2S3S4D1 E1 W1F1 D1 E1 W1F1 D1 E1 W1F1 D1 E1 W117p.01pPipeline三大危障三大危障(Hazard)1.Structural Hazard(結構危障):因硬體資源衝突 LOAD AX,100BX2.Data Hazard(資料危障):因連續指令有資料相依的關係3.Control Hazard(控制危障):因更改控制流程指令如:Jump,Call,Return,Int 等F1S1S2S3D1 E1
13、 W1F1 D1 E1 W1F1 D1 E1 W1同時作同時作Memory Access18p.01pProblems1.增加電腦執行效率(performance)的方法?1.Pipeline:可加快程式執行速度 2.Cache:可減少程式執行時間 2.加快指令執行速度的方法?1.Cache 2.Pipeline 3.Pipeline將延長指令週期(latency)19p.011.窮人的I/O processor2.除CPU之外唯一會主動透過Bus存取Memory,來執行I/O動作。(協調Bus,Cycle Stealing)pDMA使用使用Bus作作I/O的方式的方式1.Cycle Stea
14、ling:DMA向CPU借Bus,趁CPU不用Bus時,作一次存取。2.Burst Mode I/O一旦借到Bus使用權,就一直用到完成I/O為止。CPUDMACMemoryBufferDiskBufferBus*DMA使用使用Bus的優先權比的優先權比CPU高?高?因為因為DMA使用使用Bus的頻率遠比的頻率遠比CPU低低20p.011.Virtual Memory(虛擬記憶體虛擬記憶體)p使user 執行program時,能不受限於實際memory的大小,主要是O.S(作業系統)的技術配合硬體完成)。2.Memory Hierarchy Concept(階層式記憶體概階層式記憶體概念念)3
15、.Cache(快取記憶體快取記憶體)4.Disk/Tape(磁碟磁碟/磁帶磁帶)21p.01pMemory Hierarchy Concept(階層式記憶體概念階層式記憶體概念)n透過多層次記憶元件,考量效能(Performance),容量(capacity),成本(Cost)等因素,所作成的記憶體配置。Register Cache Main Memory Disk Tape愈快愈快 速度速度 愈慢愈慢愈昂貴愈昂貴 價格價格 愈便宜愈便宜愈小愈小 容量容量 愈大愈大22p.01MainMemoryROMRAMMask ROM 已寫入資料的ROMProgrammable ROM 尚未寫入資料的R
16、OMErasable PROM 可修改重置(抹去)的ROMElectrical EPROM 可以電壓寫入/抹去的ROMFlash Memory 更新式的EEPROM(金氧半導體MOS技術),No Volatile,未來可取代RAM。SRAM(Static RAM):用Flip/Flop儲存,速度快,密度低(元件大),成本高,作Cache等快速記憶體,不不須須Refresh。DRAM(Dynamic RAM):用電容器製作,速度慢,密度高(元件小),成本低,為Main Memory的主體,須須Refresh。23p.01p記憶體儲存方式分類記憶體儲存方式分類1.SAM(Sequential Ac
17、cess Memory)循序存取記憶體n資料存取時間與資料所在位置有線性關係,適用於批次檔案及備份檔案,如磁帶等。2.RAM(Random Access Memory)隨選存取記憶體n資料存取時間與資料所在位置無關,存取時間為常數,如ROM,RAM等。3.DAM(Direct Access Memory)直接存取記憶體n資料存取時間與資料所在位置有關,但不可預測,如Disk,CD-ROM等。4.CAM(Content Access Memory)內容存取記憶體n以內容(資料)決定存取位置,如Cache24p.01pCache:可有可無的記憶體可有可無的記憶體1.存CPU最近常用的區塊:Cach
18、e大小約為主記憶體1/1000,卻可滿足CPU 95%以上的存取需求。2.運用Locality of Reference原理1.Temporal locality:CPU存取某資料X,則未來馬上會再存取X,如變數資料,程式迴路(loop)等。2.Spatial locality:CPU存取某資料X,則未來馬上可能用下一個/前一個或附近的資料,如陣列資料,循序指令等。CPUCacheMain MemoryDataMem.Address時間上空間上25p.01pCache 有三種結構有三種結構分類分類成本成本Cost效果效果Hit Rate失誤率失誤率Miss RateDirect mapped(
19、貧民版貧民版)低廉低廉$5最差最差88%12%Fully Associative(尊王版尊王版)昂貴昂貴$500000最好最好99.8%0.02%N-way set Associative(國民版國民版)便宜便宜$20$50很好很好9899%12%26p.01p例:例:CPU存取存取Mem.須須200ns,存取,存取Cache須須10ns,若,若CPU執行指令中有執行指令中有1/3是是load/store指令,則在一個指令,則在一個90%hit rate的的Cache支援下,其指令執行速度支援下,其指令執行速度比沒有比沒有Cache時,加速多少倍?時,加速多少倍?pANS:加速(Speedup
20、)=6.9倍此題中,如果此題中,如果hit rate=95%時,加速多少倍?時,加速多少倍?沒有Cache時的執行時間有Cache時的執行時間20029設設CPU總共執行總共執行X道指令道指令(X-X)*1+X*2*200ns(X-X)*1+X*2*(90%*10ns+10%*200ns)31313131執行指令時,所需要存取Mem.的總次數Cache真偉大!真偉大!27p.01p在一管線計算機中有四個管線,其處理某運算所需時間分別為3、1、4、2,則全部計算完10個此種運算所需時間為何?Ans:TimeS1S2S3S4S5S6S7S8S9S10314 2312243312413312413312413312413312413312413312413312413開始結束總計運算時間=3*2+4*10+2*1=48(時間單位)1.如果不使用管線,做完10個此種運算所需時間為何?2.如果全部計算完10000個此種運算所需時間為何?3.如果不使用管線,做完10000個此種運算所需時間為何?Pipeline真偉大!真偉大!