====== EKT422 - Computer Architecture ====== This course is //Computer Architecture//, offered by the School of Computer and Communication Engineering. ====== Academic Session 2010/2011 ====== This semester (semester 1), I will be handling this course for students in the Computer Engineering and Communication Engineering programs. ===== Announcement ===== [**20101022**] Mini Project 2 Report due at 12pm on Oct 1, 2010. Email a softcopy AND pass the hardcopy to me! [**20100902**] Happy Eid to all my Muslim students! To everybody else, have fun. I'll see you guys after the break. [**20100829**] We will have a tutorial session during lab-hours this week (30/08/2010). This will most probably be conducted by En. Muslim. [**20100820**] Test 1 will be held on Aug 21 @Automart Complex (10am-11am). Please be there at least 10 minutes before time. [**20100812**] Test 1 that was previously scheduled on Aug 14 is **POSTPONED** to Aug 21. [**20100715**] Lab for group 4 (previously scheduled at 1700-1900) is now shifted to the 1300-1500 slot. [**20100712**] The lab sessions for this first week is canceled. I need to adjust the schedule and it has not been finalized. ===== Course Assessment ===== The assessment components are shown below. | ^ Examinations ^^^ Course Work ^^^^ ^ Total Contribution | 70% ||| 30% |||| ^ Assessment | Mid-Term Test | Second Test | Final Exam | Quiz/Assignments | Class Participation | Mini Project 1 | Mini Project 2 | ^ Contribution | 10% | 10% | 50% | 5% | 5% | 10% | 10% | **[Update20100825]** The assessment components has been reviewed. Notice that only the course component has been modified. So, Final Exams will only cover chapters 1-15. Chapters 16-18, if time permits, will be assessed in the special test. | ^ Examinations ^^^ Course Work ^^^^^ ^ Total Contribution | 70% ||| 30% ||||| ^ Assessment | Mid-Term Test | Second Test | Final Exam | Quiz/Assignments | Class Participation | Mini Project 1 | Mini Project 2 | Special Test | ^ Contribution | 10% | 10% | 50% | 5% | 5% | 5% | 5% | 10% | **[Update20101116]** The assessment components has been reviewed (AGAIN) as follows. This is FINAL. | ^ Examinations ^^^ Course Work ^^^^ ^ Total Contribution | 70% ||| 30% |||| ^ Assessment | Mid-Term Test | Second Test | Final Exam | Quiz/Assignments | Class Participation | Mini Project 1 | Mini Project 2 | ^ Contribution | 10% | 10% | 50% | 10% | 5% | 5% | 10% | ===== Course Outcome ===== I slightly modified the course outcome so that it'll become more clear and concise (at least from MY point of view). - **[CO1]** able to explain the theoretical aspects of computer organization and architecture - **[CO2]** able to analyze design issues involving cost and performance - **[CO3]** able to design basic CPU based on given specifications For reference, here are the original COs: - **[CO1]** Understand the theory and the architecture of a central processing unit - **[CO2]** Ability to analyze some design issues in term of speed, technology, cost and performance - **[CO3]** Ability to design a simple CPU with applying the theory and knowledge in the lecture - **[CO4]** Ability to use appropriate CAD tool to design verify and test the CPU architecture - **[CO5]** Students will exercise the theoretical aspects in completing the lab works and lab test Notice that some of the old outcomes are redundant and I feel the COs I have defined basically covers all aspect of the previous COs except for CO4. I purposely leave this one out because I think the CAD tools that we have are not specific for testing and verification of CPU architecture. The tools being used for this course are basic digital design tools which CAN be used to test and verify ANY digital design with proper simulation models and test vectors. So, the students will STILL go through the process, but I'd rather not put that as a CO. **Update20100820**: Due to my own mistakes, I am unable to officially use this new list of COs. The procedures involved in changing this turns out to be huge - need endorsements from the Senate. I can't imagine why... but, that's how it is. So, I'll re-map everything back to the old CO (will have a small problem on the lab implementation though). **Update20101223**: Actually, the COs that I refer to were an older version. The one that is in the system is the first four: - **[CO1]** Understand the theory and the architecture of a central processing unit - **[CO2]** Ability to analyze some design issues in term of speed, technology, cost and performance - **[CO3]** Ability to design a simple CPU with applying the theory and knowledge in the lecture - **[CO4]** Ability to use appropriate CAD tool to design verify and test the CPU architecture ===== Syllabus ===== **Week 01** * Lecture: Chapter(s) 1 - 2 * Week summary: - definitions & terminology - structures & functions - components of computer systems - history of processors (concentrate on x86 and ARM) - performance measurements **Week 02** * Lecture: Chapter(s) 3 - 4 * Week summary: - components of computer systems (more details) - program execution, interrupts & flow control - interconnections (i/o = peripherals, memory = directly addressable space) - bus implementations (please read-up about PCI bus specifications, including 64-bit extension) - general specifications/features of memory devices - cache memory (why, how, where) - cache mapping methods, replace algorithms * //**Note**: I was not able to finish Chapter 4 - I hope to be able to squeeze it in next week's lecture// **Week 03** * Lecture: Chapter(s) 5 - 6 * Week summary: - memory components and hierarchy (closest to the processor is @top) - terms: ROM vs RAM vs RWM - internal memory = primary memory (usu. volatile) - RAM types: SRAM, DRAM, SDRAM, DDRs - error correction techniques - external memory = secondary memory (non-volatile, but slower) - direct access? tracks, sectors and gaps (e.g. magnetic disk, optical disk) - RAID disk technology - sequential access: e.g. tape drive **Week 04** * Lecture: Chapter(s) 7 - 8 * Week summary: - not much on chapter 8 **Week 05** * Lecture: Syllabus Review **Week 06** * Lecture: Chapter(s) 9 * Week summary: - integer representations (signed, unsigned) - integer arithmetic - floating-point representation - floating-point arithmetic **Week 07** * Lecture: Chapter(s) 10 - 11 * Week summary: - instruction set design - addressing modes **Week 08** * Lecture: Chapter(s) 12 - 13 **Week 09** * Lecture: Chapter(s) 14 **Week 10** * Lecture: Syllabus Review **Week 11** * Lecture: Chapter(s) 15 **Week 12** * Lecture: Chapter(s) 16 **Week 13** * Lecture: Chapter(s) 17 - 18 **Week 14** * Lecture: Syllabus Revision **Lab Work** * Project 1: Bus Implementation (DUE: Mid semester) * Project 2: CPU Implementation (DUE: End of semester) ===== Timetable ===== //**20100712**// This may be IT! Lecture Hours ^ Group ^ Location ^ Day ^ Time ^ | (3,4) | ''DKP1'' | ''TUE'' | ''1000-1200'' | | (3,4) | ''DKR2'' | ''THU'' | ''0800-0900'' | Lab Hours ^ Group ^ Location ^ Day ^ Time ^ | (4) | ''MKY6'' | ''MON'' | ''1300-1500'' | | (3) | ''MKY6'' | ''MON'' | ''1500-1700'' | Consultation Hours ^ Group ^ Location ^ Day ^ Time ^ | ($) | ''SME-B10'' | ''TUE'' | ''1500-1600'' | | ($) | ''SME-B10'' | ''WED'' | ''1000-1200'' | | ($) | ''SME-B10'' | ''WED'' | ''1500-1600'' | | ($) | ''SME-B10'' | ''THU'' | ''1500-1600'' | | ($) | ''SME-B10'' | ''FRI'' | ''1000-1100'' | //**Note**// The 2-hour slot on Wednesday morning is by appointment only. ===== Reference ===== - [[http://www.pearsonhighered.com/educator/product/Computer-Organization-and-Architecture-Designing-for-Performance/9780136073734.page|Stallings, William]]. "//Computer Organization and Architecture: Designing for Performance//". 8th Edition, 2010. Prentice Hall. - [[http://www.pearsonhighered.com/educator/product/Essentials-of-Computer-Architecture/9780131491793.page|Comer, Douglas E.]]. "//Essentials of Computer Architecture//". 2005. Prentice Hall. The first one will most probably be the text-book for this course. The 7th Editions of this book are available at our library. The second one is also interesting to read and I want to use it as reference (good coverage but not enough depth, unfortunately). It is also available at the library. ====== Course Notes ====== ===== Chapter 14 - Instruction-Level Parallelism ===== ==== Superpipelined ==== * Double-clocked pipeline execution * almost double the throughput ==== Superscalar Processors ==== * processors with multiple execution units (Intel's hyper-threading?) BUT still a single CPU unit * executing multiple instructions at the same time, subject to true-data dependency issues * i.e. only works if the'parallel' instructions are processing on different target data