2019 Computer Architecture

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Computer Science
Kise Kenji  Le Hieu Hanh 
Class Format
Lecture / Exercise     
Media-enhanced courses
Day/Period(Room No.)
Tue5-8(W321)  Fri5-6(W321)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

In the computer science area, it is important to understand the basic structure of computer systems and architectures for high-performance computers learning the interface between hardware and software. This course teaches the role and principles of key components for computer systems such as processors, memory technologies, input/output, multiprocessors, and multicore.
In the exercise, students describe the computer systems including a processor and caches in hardware description language such as Verilog HDL, and verify their operation by the simulation and implement them on the hardware board with an FPGA,
and learn the interface between hardware and software.

Student learning outcomes

At the end of this course, students will understand
- Understand the basic structure of computer systems and architectures for high-performance computers,
- Understand the role and principles of components for computer systems such as processors, memory technologies, input/output, multiprocessors, and multicore,
- Obtain skills for designing typical computer systems with a hardware description language.


Computer Architecture, Processor, Superscalar, Cache, Memory Hierarchy, Virtual Memory, Multiprocessors, Multicore, Hardware Description Language, Verilog HDL, FPGA

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

In general, a 90 minutes exercise using an FPGA board will be conducted after two 90 minutes lectures.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Basic Structure of Computer Systems Understand the basic structure of computer systems.
Class 2 Trends in Performance and Power Understand the trends in performance and power.
Class 3 Computer Design Exercise(1) Computer Design Exercise(1)
Class 4 Memory Technologies Understand memory technologies.
Class 5 Computer Design Exercise(2) Computer Design Exercise(2)
Class 6 Caches: Direct-Mapped Understand the direct-mapped caches.
Class 7 Caches: Set-Associative Understand the set-associative caches.
Class 8 Computer Design Exercise(3) Computer Design Exercise(3)
Class 9 Memory Hierarchy and Dependability Understand memory hierarchy and dependability.
Class 10 Pipelined Processor Understand pipelined processors.
Class 11 Computer Design Exercise(4) Computer Design Exercise(4)
Class 12 Superscalar Processor Understand superscalar processors.
Class 13 Branch Prediction Understand branch prediction.
Class 14 Computer Design Exercise(5) Computer Design Exercise(5)
Class 15 Data-Level Parallelism in Vector and SIMD Understand the data-level parallelism in vector and SIMD.
Class 16 Virtual Memory and Security Understand virtual memory and security issues.
Class 17 Computer Design Exercise(6) Computer Design Exercise(6)
Class 18 Input/Output and Bus Understand Input/Output and bus.
Class 19 Interconnection Network Understand interconnection networks.
Class 20 Computer Design Exercise(7) Computer Design Exercise(7)
Class 21 Multiprocessors and Multicore Understand multiprocessors and multicore.
Class 22 Computer Design Exercise(8) Computer Design Exercise(8)


David A. Patterson, John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface (Fifth Edition). Morgan Kaufmann.

Reference books, course materials, etc.


Assessment criteria and methods

Students will be assessed on their understanding of computer architecture and the ability to apply them to implement small computer systems with a hardware description language (HDL).
Students' course scores are based on exercise problems (30%) and a final examination (70%).

Related courses

  • CSC.T252 : Switching Circuit Theory
  • CSC.T262 : Assembly Language
  • CSC.T372 : Compiler Construction
  • CSC.T341 : Computer Logic Design
  • CSC.T433 : Advanced Computer Architecture

Prerequisites (i.e., required knowledge, skills, courses, etc.)

No prerequisites are necessary, but enrollment in the related course of Computer Logic Design is desirable.

Page Top