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.