|Program of Graduate Studies||Applied Informatics|
|Subject Area||Hardware and Computer Architecture Technologies|
|Semester||Semester 1 – Fall|
|Weekly Teaching Hours||3|
Course curriculum follows:
- High level description of a processor-based computer. Processing Units, registers, memory.
- Introduction to Instruction Set Architecture (assembly language) with focus on MIPS assembly.
- Emphasis on assembly programming.
- Support for Procedure Call Standards in ISAs. Stack. Application Binary Interfaces.
- Exceptions/Interrupts in a processor.
- Intel’s x86 Instruction Set Architecture and comparison between RISC and CISC architectures.
- Data type representation in a computer. Integer and floating point computer arithmetic.
- Computer arithmetic operations such as addition, multiplication, division, etc.
- Computer performance metrics.
- Micro-architectural organization of a MIPS processor.
- Implementation of a single-cycle MIPS processor. Data path and control unit.
- Pipeline implementation of a MIPS processor. Limitations and Hazards (structural, data and control hazards). Data forwarding, stalling, and branch prediction.
- Memory hierarchy and cache memories. Functionality and structure of cache memories.
- Processor performance with cache memory hierarchy.
- Virtual Memory
- Introduction to hardware description languages such as Verilog. Design and implementation of processing elements using Verilog.
This is an introductory course on the structure and functionality of modern computing systems. The curriculum introduces the students to the important concepts of instruction set architectures (ISA) as the basic interface between software and hardware implementation, and the microarchitectural implementation of a modern processing system.
Students that have successfully concluded the course will:
- have excellent knowledge of the functionality and organization of a modern processor.
- She will understand basic concepts of ISAs (assembly language) and the interaction between assembly, high-level programming languages and processor hardware.
- She will be able to develop advance programs in assembly language (MIPS assembly).
- She will understand computer arithmetic, both integer and floating point and computer operations (addition, multiplication, division, etc.)
- She will be able to analyze the performance of a processor and to understand the factors that determine performance in such a system.
- She will be able to design, implement and simulate a processor using a Hardware Description Language such as Verilog.