CBP Comp 1017 Digital Technologies1 Let’s make a Computer
CBP Comp 1017 Digital Technologies2 Let’s make a CPU
CBP Comp 1017 Digital Technologies3 Pentium
CBP Comp 1017 Digital Technologies4 Arithmetic Logic Unit Input AInput B Output ALU Integer Execution Unit 5 32 add 1 32 sub
CBP Comp 1017 Digital Technologies5 Input AInput B Output ALU Multimedia MMX
CBP Comp 1017 Digital Technologies add Processing Idea Nr. 1 Move data from memory Move data into memory Data Memory Move data in and out of data memory
CBP Comp 1017 Digital Technologies add Processing Idea Nr.2 IP (Code Memory) mov 3 in from memory mov 2 in from memory add the two numbers mov the result to memory Instruction Memory Program Move instructions into CPU from code memory
CBP Comp 1017 Digital Technologies8 Registers AX BX
CBP Comp 1017 Digital Technologies9 Registers AX BX MAR
CBP Comp 1017 Digital Technologies10 ip Data Memory Instruction Memory mar Our CPU so far …
CBP Comp 1017 Digital Technologies11 SAM-2
CBP Comp 1017 Digital Technologies12 Hierarchy of Programming 2. Written in HLL (C) 3. CPU executes machine code mov ax,[x] mov bx,[y] add ax, bx mov [w],ax w = x + y ; 1. Application
CBP Comp 1017 Digital Technologies13 Moving data into Registers Instruction Memory mar 3 4 mov ax, [1] BX AX mov ax, [1] mov bx, [2] 7 For example …
CBP Comp 1017 Digital Technologies14 Moving data into Memory Instruction Memory mar 3 4 mov [3], ax BX AX mov [3], ax mov [0], bx 7 For example … 8 7
CBP Comp 1017 Digital Technologies15 Adding Numbers Instruction Memory mar 3 4 add ax, bx BX AX Add ax,bx 7 For example …
CBP Comp 1017 Digital Technologies16 I’ve never wrestled with such a complex problem before It must take a lot of organization and control !
CBP Comp 1017 Digital Technologies17 Pentium Organization and control
CBP Comp 1017 Digital Technologies18 Fetch-Execute Cycle 1. Fetch instruction from memory 2. Decode the instruction and read any registers 3. Do any ALU operations (execute units) 5. Write back results to registers add ax, bx 4. Do any Memory Access ALU <- ax ALU <- bx ax + bx (Data cache) ax <- ALU None needed
CBP Comp 1017 Digital Technologies19 add ax, bx add ax bx Fetch-Exec : State 1 Instruction Fetch AX BX
CBP Comp 1017 Digital Technologies Fetch-Exec : State 2 Decode, Register Operations add ax, bx add axbx AX BX
CBP Comp 1017 Digital Technologies Fetch-Exec : State 3 ALU Operation add ax, bx add axbx AX BX 3 1 4
CBP Comp 1017 Digital Technologies Fetch-Exec : State 4 Memory Access add ax, bx add axbx AX BX 3 1 4
CBP Comp 1017 Digital Technologies Fetch-Exec : State 5 Register Write add ax, bx add axbx BX
CBP Comp 1017 Digital Technologies24 Fetch-Execute Cycle 1. Fetch instruction from memory 2. Decode the instruction and read any registers 3. Do any ALU operations (execute units) 5. Write back results to registers (Organization and Control) mov ax, [1] 4. Do any Memory Access Read the ‘1’ Put ‘1’ into MAR Data into ax Read memory at addr ‘1’
CBP Comp 1017 Digital Technologies25 mov ax, [1] mov ax Fetch-Exec : State 1 Instruction Fetch
CBP Comp 1017 Digital Technologies26 mov ax, [1] mov ax Fetch-Exec : State 2 Decode, Register Operations
CBP Comp 1017 Digital Technologies27 mov ax, [1] mov ax Fetch-Exec : State 3 ALU Operation
CBP Comp 1017 Digital Technologies28 mov ax, [1] mov ax Fetch-Exec : State 4 Memory Access
CBP Comp 1017 Digital Technologies29 mov ax, [1] mov ax Fetch-Exec : State 5 Register Write
CBP Comp 1017 Digital Technologies30 Pentium Fetch 2.Decode 3.ALU 4.Mem Ops 5.Reg Write