COMP273 Introduction
Course Lecture Outline • Topics include
– Boolean Algebra/Digital Circuit Design – Number Representation
– Assembly Programming (MIPS)
– Floating Point
– I/0 & Interrupts – Caches
– Virtual Memory – CPU Organization
Course Format
• Section 001 Monday and Wednesday 11:30 am to 1:00 pm
– Formal lecture, with interactive Q&A throughout, recorded on zoom
• Section 002 Monday and Wednesday 2:30 pm to 4:00 pm – Inverted classroom… bring your questions!
– Tutorials, live coding, problem solving, etc.
– Not always recorded!
• Prof Hsiu-Chin Lin teaching up to reading week • Prof Paul Kry teaching after reading week
Course Information – Pre-requisites • COMP-206: Introduction to Software Systems.
• Anyone who has not taken COMP-206 (and is not taking it this term) will be automatically deregistered from COMP-273.
• This policy will be followed without exception.
Course Information – Assignments
• Assignments
– Four assignments, covering logic, numbers, circuits, MIPS programming – Show your work (i.e., circuit design, comments in assembly programs) – A1 and A3 worth 10%, A2 and A4 worth 15%
– Do your own work
– Must be correctly submitted to MyCourses
– Late deadline is 3 days after due date, with penalty is 10%
– Penalty can be waived once (request this in a README.txt file) • Use for any personal reason, sickness, etc.
Course Information – Evaluation
• Assignments: 50%
• Mid-term Examination: 20%
• Final Examination: 30%
• Nomake-uptestsormake-upassignments
• Supplemental exam weight is 30% (i.e., same as the final)
Course Information – Resources
• MyCourses
– Discussions on material
– Questions with respect to assignments
– Assignment submission
– Course outline (in course content)
– Office hours (posted in my courses calendar)
Course Information – Textbook
• Patterson and Hennessy “Computer Organization and Design: The Hardware/Software interface”
– The 4th or 5th edition (6th edition is probably OK too)
• Available at the bookstore, e-book on reserve in library.
• This is the main textbook for the course (recommended that you buy a copy)
• Also available as an interactive online zyBook!
• Lecture notes and other handouts will be made available on MyCourses
Teaching Assistants Office Hours and Tutorials
• Teaching Assistants
– Names and email and listed on course web page – Office hours to be announced on MyCourses
• Jiahui Peng
• Jifeng Wang
• Jiyi Wang
• Kaixiang Xie
• Linghang Liu
• Luca Zarow
• Richard Olaniyan
• Ruoyu Wang
• Wing Hang Ho
• Xiru Zhu
• Yanan Wang
Meet the TAs
Who to contact and when
• Problems with marking?
– Contact TA who graded your assignment
– If not satisfied with TA response, then email prof
• Problems with course content
– Check for answers on MyCourses
– Post your questions on MyCourses
– Visit TAs or prof during the office hours
• Personal Issues
– Visit the prof during the office hour
– Email the prof with a clear subject prefix [COMP273]
In case you didn’t already know…
McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures. See www.mcgill.ca/integrity for more information, as well as www.mcgill.ca/integrity/studentguide, the Student Guide to Avoid Plagiarism.
It should be noted that, in accordance with article 15 of the Charter of Students’ Rights, students may submit examination answers in either French or English.
According to Senate regulations, instructors are not permitted to make special arrangements for final exams. Please consult the Calendar, section 4.7.2.1, General University Information and Regulations at www.mcgill.ca. Special arrangements in emergencies may be requested at your Student Affairs Office. If you have a disability, please advise the Office for Students with Disabilities (398-6009) as early in the term as possible so that we can provide appropriate accommodation to support your success.
In the event of circumstances beyond the instructor’s control, the evaluation scheme as set out in this document might require change. In such a case, every effort will be made to obtain consensus agreement from the class.
Additional policies governing academic issues which affect students can be found in the Handbook on Student Rights and Responsibilities, Charter of Students’ Rights.
Be sure your name and student number is included in your circuit or the top comments section of each of your source files. Submit your source code as a zip file via MyCourses unless otherwise specified. If you have comments about your solution, include a readme.txt or readme.pdf file with your comments. Be sure to check that your submission is correct by downloading your submission from MyCourses. You can not receive any marks for assignments with missing or corrupt files! Note that you are encouraged to discuss assignments with your classmates, but not to the point of sharing code and answers. All code and written answers must be your own.
Do not share your code. Using version control is a good idea, but using a publicly accessible repository is not acceptable. ALL WORK MUST BE SUBMITTED ON MY COURSES. DO NOT EMAIL YOUR WORK TO THE PROF OR TAs.
ALL DEADLINES ARE HARD!!! DO NOT WAIT TO THE LAST MINUTE TO SUBMIT YOUR WORK!
Question
• What can you do if you are having trouble?
About you
What is your major?
About the instructors • Brief research overviews…
What is inside a computer?
What are “Machine Structures”?
Software
Instruction Set Hardware Architecture
Application (e.g., browser)
Compiler
Assembler
Operating
System (e.g., Windows)
Processor
Memory
I/O system
Datapath & Control
Digital Design
Circuit Design
transistors
* Coordination of many levels of abstraction
Below Your Program • High-level language program (in C)
swap (int v[], int k) { int temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;
}
• Assembly language program (for MIPS) swap: sll $2, $5, 2 add $2, $4,$2
lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31
• Machine (object) code (for MIPS)
000000 00000 00101 0001000010000000
000000 00100 00010 0001000000100000 …
C compiler
assembler
Anatomy: 5 Parts of any Computer
Computer
Processor
Control
(“brain”)
Datapath
(“brawn”)
Memory
(where programs, data
live when running)
Devices
Input
Output
Keyboard, Mouse
Disk
(where programs, data
live when not running)
Display, Printer
Technology Trends: Memory Capacity (Single-Chip DRAM)
1000
100
10
Size 1 (Mbits)
0.1
0.01
1980 1985 1990 1995 2000 2005
• Was 1.4X/yr, or 2X every 2 years. • 4000X from 1980 to 2002
year
1980
1983
1986
1989
1992
1996
1998
2000
2002
2009
2014
2018
size (Mbit)
1/16 1/4 1
4
16
64 128 256 512
4096
8192
8192
Technology Trends: Microprocessor Complexity
CPU Transistor Counts from 1971 and Moore’s Law Titan V
10,000,000,000 1,000,000,000 100,000,000 10,000,000 1,000,000 100,000
10,000 2,300
10-Core Xeon
Tesla K40
GTX680
Curve shows “Moore’s Law”: transistor count doubling every two years or so
1971 1980
GPUs now part of every machine, arguably more powerful than CPUs and programmable
1990 2000 2010 2020 Date of introduction
Transistor count
ENIAC
• First general-purpose electronic computer
If transportation had kept pace…
• How do the hardware predictions hold up?
The story back in 2000
• Processor
– 2X in speed every 1.5 years (since ‘85);
100X performance in previous decade. • Memory
– DRAM capacity: 2x / 2 years (since ‘96); 64x size in previous decade.
• Disk
– Capacity: 2X / 1 year (since ‘97) – 250X size in previous decade.
The story back in 2000 • State-of-the-art PC when you graduate:
– Processor clock speed: GigaHertz)
– Memory capacity: GigaBytes)
– Disk capacity: TeraBytes)
5000 MegaHertz (5.0 2000 MegaBytes (2.0 2000 GigaBytes (2.0
– New units! Mega => Giga, Giga => Tera
2015 and shifting trends
• Energy efficiency now of major importance (mobile computing)
– Faster clock speeds use too much energy • Multi core CPUs now the means to
increasing performance.
• Very powerful graphics cards now prevalent
3.5 GHz quad core 32 GB
3 TB
$3000
2688 cores, 0.8 GHz, 6 GB $1000
Other Big Changes
• Smart phones and tablets
• Cloud computing and software as a service
COMP 273 – Course Information
• Learn big ideas in computer science and engineering:
– 5 Classic components of a Computer
– Data can be anything (integers, floating point, characters): a program determines what it is
– Stored program concept: instructions just data
– Principle of Locality, exploited via a memory hierarchy (cache)
– Greater performance by exploiting parallelism
– Principle of abstraction, used to build systems as layers
Objectives • Demystify abstraction layers
– What is really “under the hood”, how does it work?
• Take advantage of new found capabilities
– Faster programs!
– Many examples with impact in many domains!!
– One example to motivate:
• “Computing the Singular Value Decomposition of 3×3 matrices with minimal branching and elementary floating point operations”
University of Wisconsin – Madison, Computer Science technical report TR1690, May 2011 (VIDEO)
In Conclusion • Hierarchical layers of abstraction
• Continued rapid improvement in technology – Moore’s Law
• 5 classic components of all computers Memory Input Output
Processor
Control Datapath
Review and more information
• Textbook Chapter 1 (section numbers from 5th edition)
1.1 Introduction
1.2 Eight great ideas in computer architecture
1.3 Below your program
1.4 Under the covers
1.5/1.6 Technology and Performance
(we’ll come back to later in the term)
1.7 The power wall
1.8 The sea of change: the switch to multiprocessors