COURSE INFORMATION
Course Title: COMPUTER ORGANIZATION
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 385 A 5 3 0 2 4 5
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) NA
Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Dimitrios Karras , Tuesday 16.30-20.00, Wednesday 10.30 - 17.00
Second Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: NA
Teaching Assistant(s) and Office Hours: NA
Language: English
Compulsory/Elective: Compulsory
Classroom and Meeting Time: Tuesday 13.30-20.00, Wednesday 10.30 - 17.00
Course Description: Understanding of the inner-workings of modern computer systems and tradeoffs present at the hardware-software interface: Instruction set design and addressing modes, register transfer, internal CPU bus structure, ALU (microprogramming and hardwired control), computer arithmetic, memory system, input-output system and survey of real computers and microprocessors.
Course Objectives: The main objective of the course is to introduce students to the computer organisation from hardware and programming . This course teaches students fundamental knowledge in computer architecture and microarchitecture. The course covers the basic organizations of computer systems including instruction-set architecture, execution pipeline, memory hierarchy, and I/O subsystem. It also addresses advanced processor microarchitecture issues such as dynamic instruction scheduling, branch prediction, lock-up free caches, instruction-level parallelism, multiple instruction fetch/issuing, speculative execution, etc. to improve computer processor performance. Shared-memory multiprocessor systems with coherent caches to reduce memory access latency are also covered. Finally, it outlines the verification issues of today's microprocessors.
COURSE OUTLINE
Week Topics
1 Introduction: Digital computer generation, computer types and classifications, functional units and their interconnections, buses, bus architecture,The Digital Abstraction
2 Number Systems and Number Representations, the basic operations in ALU
3 Combinational Logic Design
4 Combinational Logic Design in detail and Principles of Sequential Logic Design
5 Hardware Description Languages
6 Digital Building Blocks, Arithmetic Circuits, Memory and Logic Arrays
7 Computer Architecture, Assembly Language, Machine Language programming, Addressing Modes
8 Midterm Exam.
9 Microarchitecture and Performance Evaluation, introduction to Pipelining
10 Memory and I/O Systems, Memory System Performance Analysis, Virtual Memory
11 Input / Output: Peripheral devices, I/O interface, I/O ports, Interrupts: interrupt hardware, types of interrupts and exceptions.
12 Modes of Data Transfer: Programmed I/O, interrupt initiated I/O and Direct Memory Access., I/O channels and processors. Serial Communication: Synchronous & asynchronous communication, standard communication interfaces.
13 Pipelining: Basic and Intermediate Concepts. Instruction-Level Parallelism and Its Exploitation
14 Modern Multicore Architecture, Multiprocessors and Thread-Level Parallelism
Prerequisite(s): Introduction in Computer Engineering, Data Structures and Algorithms and programming knowledge is required.
Textbook: 1. David Money Harris & Sarah L. Harris, "Digital Design and Computer Architecture", 2013 Elsevier, Inc. 2. William Stallings, “Computer Organization and Architecture – Designing for Performance”, Sixth Edition, Pearson Education, 2003.
Other References: 1. Patterson, Computer Organisation and Design, Elsevier Pub. 2009 2. Vravice,Hamacher & Zaky, “Computer Organization”, TMH 3. Mano,” Computer System Architecture”, PHI 4. John P Hays, “ Computer Organization”, McGraw Hill 5. Tannenbaum,” Structured Computer Organization’, PHI 6. P Pal chaudhry, ‘ Computer Organization & Design’, PHI
Laboratory Work:
Computer Usage: Yes
Others: No
COURSE LEARNING OUTCOMES
1 Knowledge of digital computer generation, computer types and classifications, functional units and their interconnections, buses, bus architecture, types of buses and bus arbitration. Register, bus and memory transfer.
2 Knowledge on Central Processing Unit: Addition and subtraction of signed numbers, look ahead carry adders. Multiplication: Signed operand multiplication, Booths algorithm and array multiplier. Division and logic operations. Floating point arithmetic operation Processor organization, general register organization, stack organization and addressing modes.
3 Ability to understand low level Assembler language prporamming
4 Knowledge on Control Unit: Instruction types, formats, instruction cycles and subcycles ( fetch and execute etc) , micro-operations, execution of a complete instruction. Hardware and microprogrammed control: microprogramme sequencing, wide branch addressing, microinstruction with next address field, pre-fetching microinstructions, concept of horizontal and vertical microprogramming.
5 Knowledge on Memory: Basic concept and hierarchy, semiconductor RAM memories, memory organization. ROM memories. Cache memories: concept and design issues, performance, address mapping and replacement) Auxiliary memories: magnetic disk, magnetic tape. Virtual memory: concept implementation.
6 Knowledge about Input / Output: Peripheral devices, I/O interface, I/O ports, Interrupts: interrupt hardware, types of interrupts and exceptions. Modes of Data Transfer: Programme I/O, interrupt initiated I/O and Direct Memory Access., I/O channels and processors.
7 Knowledge about Communication protocols: Serial Communication: Synchronous & asynchronous communication, standard communication interfaces.
8 Knowledge about Pipelining: Basic and Intermediate Concepts. Instruction-Level Parallelism and its Exploitation.
9 Knowledge about modern multicore architecture, Multiprocessors and Thread-Level Parallelism
10 to understand performance Evaluation Issues
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Business Informatics (3 years) Program
1 Identify activities, tasks, and skills in management, marketing, accounting, finance, and economics. 4
2 Apply key theories to practical problems within the global business context. 5
3 Demonstrate ethical, social, and legal responsibilities in organizations. 4
4 Develop an open minded-attitude through continuous learning and team-work. 5
5 Integrate different skills and approaches to be used in decision making and data management. 5
6 Combine computer skills with managerial skills, in the analysis of large amounts of data. 5
7 Provide solutions to complex information technology problems. 5
8 Recognize, analyze, and suggest various types of information-communication systems/services that are encountered in everyday life and in the business world. 5
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
2
12.5
Midterm Exam(s)
1
25
Quiz
1
15
Final Exam
1
35
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 3 48
Hours for off-the-classroom study (Pre-study, practice) 16 3 48
Mid-terms 1 3 3
Assignments 4 5.8 23.2
Final examination 1 3 3
Other 1 0
Total Work Load:
125.2
Total Work Load/25(h):
5.008
ECTS Credit of the Course:
5