ECE462/562 Computer Architecture and Design

advertisement
ECE 462/562: COMPUTER
ARCHITECTURE AND DESIGN
Fall 2013
Professor Ahmed Louri
ECE Department
Website for Professor:
http://www.ece.arizona.edu/~hpcat
Website for course:
http://www.ece.arizona.edu/~ece462
Course Syllabus
August 27, 2013
The University of Arizona
ECE 462/562 – Fall 2013
• The is being offered for both in-class students as well
as on-line.
• In class students section 001 and on-line it is section
910.
• The class is being recorded using Panapto software
(you will be getting some info about the software from
UITS shortly).
• It is in D2L and you can login to the course that way as
well.
• There will be a separate website for the course which
will be password-protected.
TOPICS
Introduce myself
 Course Administration
 Pre-requisites For ECE 462/562
 Office Hours & Textbook
 Course Syllabus
 Course Workload
 Attendance & Grading Policy
 Communication Between Students-TAInstructor
 Other

Instructor





Prof. Ahmed Louri
Ph.D. in Computer Engineering From University of Southern
California, USC 1988.
Full Professor, ECE Department for last 25 years.
Areas of Interest: Computer Architecture, Parallel Processing,
Interconnection Networks, Multicore Architectures, and Emerging
Computing and Interconnect Technologies.
Introduced and taught ECE 462/562 more than 15 years ago.
Last few years (2010 – to – 2013) I was invited by the National Science
Foundation as a Program Director to direct the national programs on
computer architecture, HPC, trustworthy computing, among several
others.
 Website:
www.ece.arizona.edu/~hpcat

What is Computer Architecture?
What is “Computer Architecture”?
Application
Operating
System
Compiler
Firmware
Instr. Set Proc. I/O system
Instruction Set
Architecture
Datapath & Control
Digital Design
Circuit Design
Layout
• (1) Functional organization, (2) Instruction set
design, (3) Hardware Implementation (integrated
circuit design, packaging, power, etc) Technology
AND
• (4) Quantitative measurement, evaluation, and
reporting.
ECE 462/562 Course Focus
Understanding the design techniques, machine structures,
technology factors, and evaluation methods that will
determine the form of computers in 21st Century, be it for
mobile, desktop, server, embedded, supercomputing,
datacenter, etc.
Computer Architecture is at the heart of this!
Technology
Parallelism
Programming
Languages
Applications
Computer Architecture:
• Instruction Set Design
• Organization
• Hardware
•Performance evaluation
Operating
Systems
Performance
Evaluation
Interface Design
(ISA)
Eco-system
COURSE OBJECTIVES (1/3)


This course aims to provide a strong foundation for students
to understand modern computer system architecture and to
apply these insights and principles to future computer
designs.
It provides basic knowledge, fundamental concepts, design
techniques and trade-offs, machine structures, technology
factors, software implications, and evaluation methods and
tools required for understanding and designing modern
computer architectures ranging from mobile systems, to
desktops, to servers, to clusters, to large datacenters, with
emphasis on multicores, embedded systems, and parallel
systems.
COURSE OBJECTIVES (2/3)




The course is structured into three parts:
The first part of the course focuses on the fundamentals of each building
blocks of general-purpose computing systems building block: processor,
memory, and interconnect (networks). Topics include processor microcoding and pipelining; cache microarchitecture and optimization; and
network topology, routing, and flow control.
The second part goes into more advanced techniques and will enable
students to understand how these three building blocks can be integrated
to build a modern computing system, and how software interacts with
hardware. Topics include superscalar execution, branch prediction, outof-order execution, register renaming and memory disambiguation;
VLIW, vector, GPU, and multithreaded processors; memory protection,
translation, and virtualization; and memory synchronization, consistency,
and coherence.
The third part addresses parallel computing principles, including
multicore architectures, datacenters and cloud computing
COURSE OBJECTIVES (3/3)
At the end of this course, students will :
 (1) know the fundamentals of computer architecture and
system design.

(2) be able to appreciate the various design issues and
tradeoffs of computer design.

(3) be able to apply this knowledge to new computer
architecture design problems with the context of balancing
application requirements against technology constraints.

(4) be able to understand current trends and future directions
of computer architecture.
COURSE OBJECTIVES (continued)




In-depth understanding of the inner-workings of
computers, their evolution, design trade-offs, and
where the computer field is heading.
Gain experience with the design process in the context
of a large hardware system: computer design, from the
functional specs to physical implementation.
Computer architecture impacts EVERY other aspect of
computer engineering and computer science.
It is a unifying field for hardware and software.
PREREQUISITES
Digital Logic (ECE 274 or equivalent) .
 Basic Machine Structure/Organization: CPU,
memory, virtual memory, caches, buses, I/O :
ECE 369 or equivalent).
 Some assembly language programming.
 Some basic programming concepts in a highlevel language such as C, C++, or similar.
 Use of basic Unix (Linux) commands.
 Please come see me if you have questions.

OFFICE HOURS & TEXTBOOK




Instructor: Prof. Ahmed Louri
– Office Hours: 3:30 – 4:30pm, Tuesday, Thursday, in ECE Room 456S
– email: louri@ece.arizona.edu
Lab Assistant: Pavan Poluri
Email: pavanp@email.arizona.edu
Office Hours: Wednesday 3pm - 4pm, Thursday 3pm - 4pm, Carell 556.
Lab Hours: Tuesdays 2pm - 4pm, Room ECE 250.
Textbook Required:
“Computer Architecture a Quantitative Approach” J.L. Hennessy and D. A.
Patterson, Morgan Kaufmann Publishers, Fifth Edition. You are highly
discouraged from using previous versions as they outdated.
Additional reading: this course includes a number of reading papers from
recent conferences and journals. Such papers are very important and are
required reading for this course. These will be provided or posted on the
website.
There are many optional books on computer architecture. You can consult
them for specific topics to gain a better understanding if you wish. You can see
me for a list of books.
COURSE OUTLINE (a sample only)











Fundamentals of computer design (building blocks, technology, cost,
performance measures, evolution, etc.)
Processor design (all aspect): datapaths and control mechanisms
Pipelining: principles and advanced topics (super-pipelining,
superscalar, VLIW, etc.)
Instruction Level Parallelism and Data-level Parallelism
Thread-level Parallelism (Multithreading) and Task-level Parallelism
Speculative execution, out-of-order execution, scheduling, branch
prediction, hazards, etc.)
Multicore design
Memory Design: hierarchical memory design, virtual memory, cache
design, cache coherence protocols, memory technologies.
Interconnects and communications: buses, networks, network-on-chip
I/O and Storage
Parallel Processing Principles: multi-processors, multi-computers,
distributed computing, cloud computing.
RELATED GRADUATE COURSES





ECE 462/562: Computer Architecture : not only how
to build a computer but also how to evaluate,
analyze, compare it, and possibly improve it.
ECE 568: Introduction to Parallel Processing: It
concentrates on exploitation of parallelism in the
computing process and provides state-of-the-art
knowledge about design of parallel computing
systems from all aspects: hardware, architecture,
algorithm design, programming, scheduling, etc.
ECE 569: High-Performance Computing Systems :
advanced parallel processing systems
ECE 596: Network-on-chips for Multicore
Architectures and SOCs.
ECE 462/562 – ECE 568 – ECE 569 (or ECE 596) - etc
What will you get out of ECE462/562













Formal Evaluation Techniques
Critical performance measures and benchmarks
Processor design techniques (principles & state-of-the-art concepts)
Memory hierarchy design techniques and critical design issues
Pipelining and Parallelism
Static / Dynamic Scheduling
Multithreading
Multi-core processor design
Interconnection schemes and networks
Understanding Technology Trends and limitation: power, reliability,
scalability, etc.
Experience in designing an entire system (through modeling and
simulation only)
Ability to pursue advanced graduate degrees (MS, Ph.D) in computer
architecture, high-performance computing, and networking
Increase you chances of getting s highly-paid job and career in
computer systems design
COURSE WORKLOAD (1/2)










Class consists of lectures, homework, lab assignments, exams, and a
Term Paper (TP for graduate students only, it is optional for
undergraduates).
Two lectures per week.
Lab/discussion sessions (optional but highly encouraged to attend)
Lectures delivered by Instructor, lab/discussion sessions delivered by
Lab Assistant (LA).
Homework problems: theoretical in nature (problems similar to the
ones at the end of each chapter in the book) about 4 - 5 problem sets.
Lab assignments provide hands-on experience and require
programming. There will be about 4 - 5 assignments.
two types f exams: unannounced quizzes and scheduled exams.
Quizzes: short quizzes at the beginning of lectures (random
selection). Require previewing material from previous lectures.
Two scheduled exams: a midterm covering the first part of the
course and a second exam at the end of semester covering the entire
class with a focus on the parts covered after the first exam.
Term Paper on a specific topic of computer architecture (more later).
COURSE WORKLOAD (2/2)
Class attendance is REQUIRED and taken into consideration for final
grade.
Note on Lecture Attendance: You are required to attend the lectures. This
is your opportunity to ask questions, contribute answers and insights,
and affect the nature of the class. Lecture notes and textbook are not
guaranteed to capture 100% of every topic and details covered in class.
Any extenuating circumstances that would prevent you from attending
the class must be discussed with me in advance (e.g. Death in the
family, illness, traveling for interview, …). Written documentation
required.



It is not compulsory to attend all lab sessions, but highly
recommended that you show up.
Readings: Students are expected to complete all of the assigned
reading, including the textbook and the papers provided. These will
be also subject to exam questions as well.
Course Policies and Procedures





Collaboration:
Studying and discussing course material with classmates
is ok but :
Work handed in for grade (homework, lab assignment,
term paper, etc.) MUST BE YOUR OWN effort only.
Online solutions from other sources etc.: Students are not
allowed to use online solutions from previous course
offerings, commercial websites, etc. This will be strictly
checked and enforced.
You should adhere to the UofA policies and procedures on
Code of Academic Integrity.
Course Policies and Procedures



I have to explicitly state this per University policy: Cheating
in ECE 462/562 will automatically result in failure and
possible expulsion from the ECE and the University.
Examples of cheating include:
- Submitting someone’s work (homework, lab assignment),
or something very similar (both assignments will result in
zero, both students will fail the class)
- Downloading a solution/program from somewhere and
submitting it as your own.
- Plagiarizing someone’s work and submitting it as your
own for the term paper.
If you use someone’s work as a reference or a starting point,
it MUST be cited and clearly indicated. Please see me for
this.
Course Policies and Procedures







Auditor policy: Casual listeners that attend lectures but do not enroll
are not allowed. You must enroll in the class to attend the lectures and
have access to course material. This will be enforced.
Cellular Phones, Laptops, Tablets and Lecture Policy: Students are
prohibited from using cellular phones, laptops and tablets during
lectures. It is not practical to take notes with a laptop or a tablet for this
course due to the math, extensive micro-architectural diagrams and
drawings, illustrations, etc. Also, the distraction caused by a few
students using (or misusing) laptops, tablets during lecture far
outweigh any benefits in this class.
Late Assignment Policy: NO late assignment will be accepted! No
exception. All assignments will be submitted electronically and
therefore no room for being late due to automatic checking.
No partial credits on assignments, be it homework or lab assignment:
- if program runs and produces the required results you get a grade
- if its does not work to the problem specs, you get zero.
NO MAKE-UP EXAMS! (except for special extenuating circumstances)
Grading Policy for Undergraduates
For Undergraduate students:
 Two Exams + Quizzes
45% (20, 20, 5).
 Assignments (Homework/Lab: 8 to 10) 45%
 Class participation/discussion
10%
 Credit for the optional term paper.
 Homework assignment are weighted equally but lab
assignment are not. Lab assignment weight will be
provided when the assignment is handed out.
Grading Policy Graduate Students
For graduate students:
 Two exams + Quizzes
 Homework/Lab (8 to 10)
 Term Paper
 Class participation
35% (15, 15, 5)
45%
15%
10%
For graduate students this course has a larger significance, next slide
Graduate Students
For graduate students, this course represents a transition from
coursework to the research world.
You can consider yourself a researcher now.
In research, you are supposed to be able to:
1) do investigative work on a particular topic: ability to read
and understand research papers (key to your success)
2) document your findings (in terms of technical papers)
3) disseminate your findings through conference and journal
publications
4) present it and defend it in front of a scientific community of
your peers.
This course and the term paper will significantly help in this
transition.
We will talk more about the term paper later on.
Grading Policy (continued)


Homework/Lab assignments must be turned in
electronically.
You will use a turn-in program to submit the homework
and lab assignments.

PLEASE DO NOT E-MAIL ME YOUR HOMEWORK, LAB, OR
EXAM, it may get lost and not be graded (like everybody else, I
receive tons of emails a day).

Please refer to the course website for how to use
electronic submission and other important information.
Lab Info.

The lab sessions will be held in Room no. ECE 250. The other lab
which can be used by the students is Room no. ECE 232.
Room ECE 250 (open between 8am-5pm, unless reserved)
Room ECE 232 (open between 8am-5pm)
PLEASE locate the rooms and the resources available. Do not wait until due
date.

Website will be password-protected: once we verify you are
registered for the class, you will be provided with a password.

Simulators – WinMIPS64 (on Windows based machines), Dinero4
(on Unix based machines) more on this later.
(You can follow instructions on the class website for accessing
these tools).


E-mail (pavanp@email.arizona.edu) in case of any problems!
CLASS FORMAT (Prof. Louri)








The lectures will be on PowerPoint. Occasional writing on the
board.
Please arrive on time to the class! Quizzes will start at the
beginning of the lectures.
The PowerPoint presentations are only main bullets of the lecture.
Details and explanations are given in class.
Suggestion 1: print the class material beforehand, and try to write
down what I say in class on the ppt printout. Also, I would
encourage you to read the relevant chapter before the lecture
Questions are allowed and highly encouraged during the lecture.
Please do not hesitate to ask questions anytime during the lecture.
PLEASE DO NOT SLEEP IN CLASS! It is disturbing to the
instructor as well as to your classmates.
Suggestion 2: please have a light lunch or a snack only before
class. Having a heavy lunch will definitely interfere with your
ability to follow the entire lecture!
Need to check the website daily. Important announcements
related to the course will be posted on the course website.
CLASS INTERACTION


My goal is :
– To show you how to understand the fundamentals of
computer architecture in its present form and its
evolution in the future.
– To show you how to design by leading you through the
process on challenging problems.
– To open the door of learning for you: you need to walk
through the door!
I want you to succeed in achieving your goals
– easy transition from undergrad to grad studies
– easy transition to work environment
– well prepared for graduate studies
CLASS INTERACTION (continued)

So please:
– Show initiative
– Ask questions during class
– Read class material
– Come to office hours
– Find me in the lab, or my office if you can’t make it to office
hours
– Don’t be intimidated, keep in mind that in the learning process
EVERY QUESTION IS A VALID QUESTION !!! There is no
such a thing as a stupid question!
– If you don’t understand ask, ask, ask!
– Be proactive and you will succeed !
Homework #0





Design Your Own web site with your picture in
the page.
Protect access via a password (if you like).
Upload the information sheet on YOUR website
by downloading it from the class website,
include name, Major & Year, a picture of
yourself, something about yourself (brief), and
how you can be reached.
Send the URL to the LA along with the
password.
Due September 9, 2013.
Download