Introduction to Computer Science CSCI 109 Readings St. Amant, Ch. 3 China – Tianhe-2 Andrew Goodney Spring 2018 Lecture 2: Architecture Jan 22 nd , 2018
Reminders u Take the survey if you haven’t already v https://usc.qualtrics.com/jfe/form/SV_0dKlS7wjGvUMiGh u Work on HW #1. It is due 1/29. u Quiz #1 is on 1/29. It will cover material taught on 1/8 and 1/22. 1
Schedule 2
Computer Architecture u The von Neumann architecture u The Central Processing Unit (CPU) u Storage u Input and Output Reading: St. Amant Ch. 3 3
The von Neumann Architecture Controller Input Memory Arithmetic and Output Logic Unit Controller + ALU = Central Processing Unit (CPU) 4
The Central Processing Unit (CPU) u Controller + ALU = Central Processing Unit (CPU) u CPU has a small amount of temporary memory within it v Registers v A special register called the program counter (PC) u CPU performs the following cycle repeatedly Fetch Decode Execute Instruction Instruction Instruction 5
Typical Controller Tasks Controller Input Memory Arithmetic and Logic Output Unit u Read an instruction from memory u Direct ALU to do some arithmetic or logic operation u Transfer data from one place to another u Prepare for next instruction to be read u Send a directive to input or output device 6
Typical ALU Tasks Controller Input Memory Arithmetic and Logic Output Unit u Perform an arithmetic operation on the contents of registers e.g., add R1 and R2 and put the result in R1 (R1 = R1 + R2) u Perform a logical operation on the contents of registers e.g., compare R1 and R2 (R1 < R2 ?) 7
Improving the CPU Controller Input Memory Arithmetic and Logic Output Unit u Faster clock (~GHz on modern computers) u Specialized ALU (e.g., GPU) or more than one ALU u Multiprocessing (more than one CPU) u Streamlining Controller-ALU cooperation (pipelining) u More complex ALU instructions ? 8
Storage: Addressing and Random Access Input Controller Memory Arithmetic and Logic Output Unit u How is storage organized ? u Linear ordering v Each stored item has a an address (which is a number) v To retrieve an item you have to know this number v Retrieval is by address 9
Storage: Modular and Hierarchical u Analogy with office files v Each (physical) file has a number v When a file is needed, you ask for it by number v In the office, files may be stored in shelves, on tables, in cabinets, etc. u Storage is modular : as long as the person who wants the file knows its number and as long as the storekeeper can find the file, doesn’t matter exactly how physical files are stored u Or where they are stored: Files may be stored in a basement – not easy to reach 10
The Nature of Computer Storage u Only one item can be stored at one memory location u Random access (RAM) – all locations in memory are (on the average) equally slow (or fast) in terms of access speed u Storage is hierarchical CPU Controller Input Controller Input RAM Disk Memory Arithmetic and Logic Unit Arithmetic and Logic Output Output Registers Unit 11
The Storage Hierarchy CPU Input Controller RAM Disk Arithmetic and Logic Unit Output Registers Cheaper Faster Registers RAM (memory) Secondary Storage (Disk Space) 12
Volatile Storage, Special Memory u Volatile: memory is erased when power turned off v Registers, RAM (often called primary storage) u Non-volatile: memory intact when power turned off v Secondary storage (disk) u Booting and ROM (read-only memory) u Cache: small, fast memory between registers and RAM CPU CPU Controller Input Controller Input Cache RAM Disk RAM Disk Arithmetic and Arithmetic and Logic Unit Logic Unit Output Output Registers Registers 13
Cache u Small (but bigger than registers) u Volatile u Fast (not as fast as registers, but faster than RAM) u What to keep in the cache ? v Things that programs are likely to need in the future v Locality principle: u Look at what items in memory are being used u Keep items from nearby locations (spatial locality) u Keep items that were recently used (temporal locality) 14
Input and Output u Input: Interrupt-driven v e.g., Key strokes are slow, CPU treats them like special events u Output: Write to special memory (e.g., video memory) CPU Controller Input Cache RAM Disk Arithmetic and Logic Unit Output Registers 15
Creating Assembly (Machine) Code u Adding four numbers in C is easy a = b + c + d + e u Equivalent assembly code add a, b, c OR add a, b, c add a, a, d add f, d, e add a, a, e add a, a, f u Which one is better ? Are the two equivalent ? 16
Programs at Different Abstraction Levels u C code a = b + c u Assembly code add a, b, c u Machine code 00000010001100100100000000100000 17
Programs at Different Abstraction Levels u C code a = b + c u Assembly code add a, b, c u Machine code 00000010001100100100000000100000 6 bits – opcode 5 bits: source register 1 5 bits: source register 2 5 bits: destination register 5 bits: shift amount 5 bits: functions 18
Typical Operations u ADD Ri Rj Rk Add contents of registers Ri and Rj and put result in register Rk u SUBTRACT Ri Rj Rk Subtract register Rj from register Ri and put result in register Rk u AND Ri Rj Rk Bitwise AND contents of registers Ri, Rj and put result in register Rk u NOT Ri Bitwise NOT the contents of register Ri u OR Ri Rj Rk Bitwise OR the contents of registers Ri, Rj and put result in register Rk u SET Ri value Set register Ri to given value u SHIFT-LEFT Ri Shift bits of register Ri left u SHIFT-RIGHT Ri Shift bits of register Ri right u MOVE Ri Rj Copy contents from register Ri to register Rj u LOAD Mi Ri Copy contents of memory location Mi to register Ri u WRITE Ri Mi Copy contents of register Ri to memory location Mi u GOTO Mi Jump to instruction stored in memory location Mi u COND_GOTO Ri Rj Mi If Ri > Rj and R2, jump to instruction stored in memory location Mi 19
A Typical Day at PaniCorp u Central processing: Connie and Alun u The bus: Buster u Storage (Memory): Mr. Lager Read St. Amant Ch. 3 u Input and output Play out a typical instruction cycle with your friends 20
M100 SET R1 MI M101 SET R2 0 M102 SET R3 1 M103 SET R6 0 M104 ADD R1 R2 R4 M105 SUB R1 R3 R5 M106 MOVE R5 R1 M107 MOVE R4 R2 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END What does this program do?
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M103 SET R6 0 M104 ADD R1 R2 R4 M105 SUB R1 R3 R5 M106 MOVE R5 R1 M107 MOVE R4 R2 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M104 ADD R1 R2 R4 M105 SUB R1 R3 R5 M106 MOVE R5 R1 M107 MOVE R4 R2 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M101 3 0 3 M104 ADD R1 R2 R4 M105 SUB R1 R3 R5 M106 MOVE R5 R1 M107 MOVE R4 R2 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M101 3 0 3 M104 ADD R1 R2 R4 M102 3 0 1 3 M105 SUB R1 R3 R5 M106 MOVE R5 R1 M107 MOVE R4 R2 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M101 3 0 3 M104 ADD R1 R2 R4 M102 3 0 1 3 M105 SUB R1 R3 R5 M103 3 0 1 0 3 M106 MOVE R5 R1 M107 MOVE R4 R2 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M101 3 0 3 M104 ADD R1 R2 R4 M102 3 0 1 3 M105 SUB R1 R3 R5 M103 3 0 1 0 3 M106 MOVE R5 R1 M104 3 0 1 3 0 3 M107 MOVE R4 R2 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M101 3 0 3 M104 ADD R1 R2 R4 M102 3 0 1 3 M105 SUB R1 R3 R5 M103 3 0 1 0 3 M106 MOVE R5 R1 M104 3 0 1 3 0 3 M107 MOVE R4 R2 M105 3 0 1 3 2 0 3 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M101 3 0 3 M104 ADD R1 R2 R4 M102 3 0 1 3 M105 SUB R1 R3 R5 M103 3 0 1 0 3 M106 MOVE R5 R1 M104 3 0 1 3 0 3 M107 MOVE R4 R2 M105 3 0 1 3 2 0 3 M106 2 0 1 3 2 0 3 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M110 END
M100 SET R1 MI PC R1 R2 R3 R4 R5 R6 M1 M2 M101 SET R2 0 3 M102 SET R3 1 M100 3 3 M103 SET R6 0 M101 3 0 3 M104 ADD R1 R2 R4 M102 3 0 1 3 M105 SUB R1 R3 R5 M103 3 0 1 0 3 M106 MOVE R5 R1 M104 3 0 1 3 0 3 M107 MOVE R4 R2 M105 3 0 1 3 2 0 3 M106 2 0 1 3 2 0 3 M108 COND_GOTO R1 R6 104 M109 WRITE R2 M2 M107 2 3 1 3 2 0 3 M110 END
Recommend
More recommend