Architecture is the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.*
Introduction
This course is all about how computers work But what do we mean by a computer?
Different types: desktop, servers, embedded devices Different uses: automobiles, graphics, finance, genomics Different manufacturers: Intel, Apple, IBM, Microsoft, Sun Different underlying technologies and different costs!
Introduction
Many similarities from vehicle to vehicle (e.g., wheels) Huge differences from vehicle to vehicle (e.g., gas vs. electric)
What to learn
How are programs written in a high-level language, translated into the language of the hardware What is the interface between the software and the hardware, and how does software instruct the hardware to perform needed function What determines the performance of a program What techniques can be used by hardware designers to improve performance
Performance
Abstraction
Levels of Abstraction
Application Programming Application Libraries
Graphical Interface
Operating System
System Programming Programming Language Assembler Language Instruction Set Architecture - Machine Language Processor Firmware Computer Design Datapath and Control Logic Design Circuit Design Fabrication Semiconductors Materials IO System Microprogramming
Digital Design
Circuits and devices
imp 1
time
imp 2
imp 3 Interface usage can far exceed the most optimistic projections of its designer:
Instruction sets - S/360 1964 ~ present - X86 1972 ~ present - SPARC 1981 ~ present Network protocols - Ethernet 1973 ~ present - TCP/IP 1974 ~ present Programming languages - C 1973 ~ present
Historical Perspective
ENIAC built in World War II was the first general purpose computer
Used for computing artillery firing tables 80 feet long by 8.5 feet high and several feet wide Each of the twenty 10 digit registers was 2 feet long Used 18,000 vacuum tubes Performed 1900 additions per second
Eniac
Since then: Moores Law: transistor capacity doubles every 18-24 months
Why? My MS-Word, Latex runs quite fast on my Pentium-166 MMX thank you very much But my Unreal Tournament doesnt
How about weather simulation? Speech recognition? MPEG-4, Your Killer-App circa 2015? Bottom line:
Historically, faster processors facilitated new applications Similarly, novel applications created a need for faster machines
Any reason why this will change? Also performance not the only requirement #1: User requirements are constantly changing
Caches:
80s: depends on machine 90s: millions of xtors, what to do with them, DRAM much slower than processor a must, otherwise your Ghz processor spends most of its time waiting for memory #2: Technology changes rapidly making past choices often obsolete #3: Also opens up new opportunities (e.g., out-oforder, chip multiprocessor)
#4: It is a required class #5: Understand basic working principles of a computer #6: A lot of jobs for architects
Research jobs
Course Basics
Website https://sites.google.com/a/ku.edu.tr/comp303 Check regularly for announcements All course materials posted -- lecture notes, homework, labs, supplemental materials Communicate information, questions and issues Office Hours: ENG 130 Monday and Thursday 15:15 16:00 (or by appointment) Teaching Assistant: TBD Text supplements lectures and assigned reading should be done prior to lectures. I assume that all assigned readings are completed even if the material is not covered in class. Homeworks, Lab, and Exam Collaborative study and discussion is highly encouraged Work submitted must be your own Individual grade Group Projects Collaborative effort Team grade
Comp 303 Computer Architecture
Grade
50% Homework and Projects 3 or 4 homework sets
10% of the grade Individual projects for designing processor components and tool chain 40 % of the grade
Projects
Background Information
LogiSim
Reading Assignment