Course Information

Course Information
Course Title Code Semester L+U Hour Credits ECTS
Computer Organization CE204 4. Semester 3 + 0 3.0 5.0
Prerequisites None
Language of Instruction English
Course Level Undergraduate
Course Type
Mode of delivery Oral presentation and practice
Course Coordinator Assist. Prof. Dr. Sultan ZAVRAK
Instructors Hüseyin BODUR
Assistants
Goals This course aims to provide students with a thorough understanding of the inner workings of computer systems, from basic abstractions to advanced hardware functionality. The course emphasizes both theoretical foundations and practical applications, helping students build skills in analyzing and designing efficient computer architectures. Through an exploration of instruction sets, data processing techniques, and memory management, students learn how various components of a computer work together to execute tasks efficiently.
Course Content This course begins with an introduction to fundamental computer abstractions and performance measurement techniques. Students then explore RISC-V instruction sets, including arithmetic and logic operations, conditional instructions, procedures, and addressing modes, with practical examples in C to illustrate data handling with arrays and pointers. Computer arithmetic operations, such as addition, subtraction, multiplication, and division, as well as floating-point operations, are covered in depth. The course then shifts to processor design, guiding students through the development of a single-cycle datapath and pipeline processing in RISC-V. Finally, students examine memory hierarchies, including various memory technologies, cache mechanisms, and virtual memory, to understand how computers manage data storage and retrieval efficiently.
Learning Outcomes - Understand and explain core computer abstractions and performance measurement methods
- Analyze and use RISC-V instruction sets for basic arithmetic, logic operations, decision-making, and addressing.
- Design and implement data processing operations in assembly language, including handling arrays and pointers in C.
- Demonstrate proficiency in computer arithmetic, including fixed-point and floating-point operations.
- Develop single-cycle and pipelined processor designs for RISC-V, understanding the intricacies of each design.
- Explain and utilize memory hierarchy concepts, including cache and virtual memory, to enhance data storage efficiency.
- Apply knowledge of computer organization in building efficient computer architectures and solving real-world computational problems.
Weekly Topics (Content)
Week Topics Learning Methods
1. Week Computer Abstractions and Technology - Introduction
2. Week Computer Abstractions and Technology - Measuring Performance
3. Week RISC-V Instructions: Language of the Computer - Hardware Operations (Arithmetic, Logical), Signed and Unsigned Numbers, Instruction Representation
4. Week RISC-V Instructions : Language of the Computer (Making Decisions, Procedures, Addressing Modes)
5. Week RISC-V Instructions: Language of the Computer - Parallelization, C sort example, Arrays and Pointers
6. Week Arithmetic for Computers - Addition, Subtraction, Multiplication, Division
7. Week Arithmetic for Computers - Floating Point (Addition, Multiplication)
8. Week Midterm Exam
9. Week The Processor - Building Single Cycle Datapath (RISC-V)
10. Week The Processor - Building Single Cycle Datapath (RISC-V)
11. Week The Processor - Pipelining (RISC-V)
12. Week Large and Fast: Exploiting Memory Hierarchy - Memory Technologies
13. Week Large and Fast: Exploiting Memory Hierarchy - Caches
14. Week Large and Fast: Exploiting Memory Hierarchy - Virtual Memory
Recommended Sources
[1] D. A. Patterson and J. L. Hennessy, Computer Organization and Design RISC-V Edition: The Hardware Software Interface. in ISSN. Elsevier Science, 2020.
S. Harris and D. M. Harris, Digital Design and Computer Architecture. Elsevier, 2022. doi: 10.1016/B978-0-12-820064-3.00025-8.
Relations with Education Attainment Program Course Competencies
Program Requirements Contribution Level DK1 DK2 DK3 DK4 DK5 DK6 DK7 Measurement Method
*DK = Course's Contrubution.
0 1 2 3 4 5
Course's Level of contribution None Very Low Low Fair High Very High
Method of assessment/evaluation Written exam Oral Exams Assignment/Project Laboratory work Presentation/Seminar
ECTS credits and course workload
Event Quantity Duration (Hour) Total Workload (Hour)
Midterm 1 5 16 80
Homework 2 5 10 50
Total Workload 130
ECTS Credit of the Course 5.0