CS1104 – Computer Organization PART 2: Computer Architecture Lecture 1 Introduction
Textbook: Computer Organization by Hamacher, Vranesic and Zaky. McGrawHill. I shall mention which parts of this book should be read. • I shall provide slides and some notes. Please go through these too. • Instructor: Samarjit Chakraborty, Office: S14 #06-04. Phone: 6874 7997. Office hours: Thursdays 12 to 2 pm. Please come and see me if you have questions/doubts • There will be tutorials and assignments as before. Only 2 labs for this part on October20 & 27. Mid-term test on Oct 29, Wednesday
Why study this course? • The prospective software engineer, writing a program: • Why should I declare variable “x” to be an integer rather than floating point? • Should I use array or linked-list as my data structure? • Should I use multiplication, or implement it as repeated additions? • The embedded systems programmer developing code for a Palm Zire 71 or Sony Clie or a programmable dishwasher: • How is the memory of this device organized? What instructions are supported? • I need to program it in assembly language!!
Why study this course? • The prospective computer/hardware engineer (say working at Intel and developing the future Pentium Star100 processor): • Needs to have a strong background in Computer Architecture • Basic understanding of how a computer works and what is its internal organization • Foundation for more advanced courses • Necessary for hardware engineers as well as for all kinds of software developers
This course is about… • Desktop computing: Programs with integer and floating point data types, no regard for code size and power consumption • Servers: Database, file server, web and time-sharing applications for many users. Integer and string operations more important than floating-point operations • Embedded computing: Values cost, power and code size. Floating point operations might be restricted to reduce costs • …… Cost/Performance/Power/Size Tradeoffs!!!
Application Operating System Compiler Firmware Instruction set Memory organization I/O system The global picture Programming Languages, Compilers,Operating Systems, Software Engineering Instruction Set Architecture PART 2 Datapath & Control Digital Design PART 1 Circuit Design Electrical Engineering Layout
Program to Execution: The Flow Link multiple machine-language programs to one program Program in High-level language (C, Pascal, etc) Load program into computer’s memory Compile program into assembly language Assemble program to machine language Execute program
Organization Bus Processor Memory Devices Control Input Cache Datapath Program + Data Output Registers
0 17 18 8 0 32 Representing instructions in computer: Assembly Language: Add R0, R1, R2 means R2 R0 + R1 Machine Language: 000000 10001 10010 01000 00000 100000 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits op rs rt rd shamt funct Source Operand (register) Basic operation Destination register Shift amount Function code variants of the op field
Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction • The Clock • Everything in one clock cycle OR each step in one cycle? • Pipeline instruction execution? • The Memory • How much time does it take to access memory? • How is it organized? Cache? • The Bus • How many buses? Avoid bus conflicts …
? ? ? ? ? Questions!