Module Details

COMPUTER ARCHITECTURE: ARCHITECTURE I

MF0200

Course
COMPUTER ARCHITECTURE: ARCHITECTURE I
Code
MF0200
Academic Year
2023/2024
Curriculum Year
2023/2024
Degree Programme
BIOLOGY
Curriculum
000 - CORSO GENERICO
Course coordinator
Lecturers
Credits
6
Lecture Hours
48
Scientific Disciplinary Sector (SSD)
INF/01 - Computer Science
Course Type
Single-subject learning activity
Course Delivery
OBB - Obbligatoria
Year
1
Teaching period
Primo Semestre
Campus
VERCELLI
Teaching language
Italian
Course Contents
The architecture of modern computers is introduced emphasizing its layered structure. The main hardware components are presented and their interface towards the upper software layers is explained.
This is the first of two units that together constitute one integrated course. It lays out the basis by introducing: the binary encoding of all data types (numbers, text, images, analog quantities), the basic hardware components of a computer and in particular the internal structure of the CPU, the interaction between the CPU and the central memory and between the CPU and the I/O devices.
Reference Texts
A.S. Tanenbaum, T. Austin: "Structured Computer Organization", VI Ed.,
Pearson Education, 2013.
Learning Outcomes
The first goal of this course is to develop the knowledge on the basic concepts of binary information encoding (binary representation of numbers, text and images) and of the processing of binary data through logical functions, defined by means of Boolean algebra, and implemented by logic circuits.
Another goal is to develop the knowledge about the main components of a computer, and understand the basic operational principles and the interactions between such components; in this context it is interesting to highlight the impact that the technological advances have on the organization of computer architecture. Such observations allow to exercise the ability to compare the characteristics of different computer architecture organizations (or of different computer component organizations) and to evaluate the differences in cost and performance.
Another important concept introduced in this course is the layered structure of the computer systems: it derives from the application of the method of problem decomposition into simpler sub-problems. To help understanding in practice such concept, it is exemplified by presenting the architecture of a simple processor (MIC1, not real but realistic): building on the simple operations that can be executed directly by the basic hardware architecture, it is possible to implement the more powerful MIC1 machine language (IJVM) through microprogramming, the latter topic is developed in the second module.
Prerequisites
none
Teaching Methods
The topics of the course are mainly presented through class lectures that may be integrated with lab sessions (to experiment the internal representation of various data types, to design and simulate combinatorial and sequential circuits, to experiment the execution of simple machine language programs through an emulator).
During the lectures an interactive tool (Wooclap) is used to get a feedback from the students through anonymous quizzes that can be answered using the smartphone. This way the students are stimulated to reflect; moreover this activity allows an early detection of the possible critical aspects in the learning process.

After presenting each topic the students are challenged with exercises and formative quizzes. Tutored meetings in small groups are proposed, to develop and discuss exercises (similar to those included in the written exam).
Additional Information
It is possible to download electronic copy of all slides of the lectures, perform self-assessment tests, read general information on the course and news about the lectures and the exam organization on the e-learning platform DIR .
General information on the organization of the course and of the exams are published through a forum. Specific forums can be used by students to ask questions on course topics or exercises, or to provide answers posted by other students.
Assessment Methods
The examination can be either oral or a written test (usually it is written in the first exams session, while it may be oral in the other sessions with a few enrolled students). When the exam takes the form of a written test, it is possible to ask for an oral integration (for instance this could be the case when the written test grade is not fully sufficient, it is possible to ask for an oral integration to improve the grade to pass the exam). Intermediate tests can be organized (as a facilitation to pass the exam early at the end of the course) that may comprise lab exercises. The test includes four to six questions each of which possibly structured into several points. The questions may also take the form of an exercise testing the ability to apply the learned concepts to practical examples. The threshold to pass the exam is the 60% of the global sum of points assigned to the questions.
Each unit has its own exam, and a sufficient final result is required in each unit in order to pass the exam of the whole course. The final grade is agreed upon by the teachers of the two units, taking into account the final result obtained in each one.
Detailed Syllabus
Brief review of the historical evolution of computers (from Charles Babbage’s Analytical Engine up to current computers).Information encoding: binary encoding of integer numbers, both unsigned and signed. Transformation from binary to octal and hexadecimal representation and viceversa. Arithmetic operations with binary numbers. Encoding of the fractional numbers: fixed point and floating point (according to IEEE 754 standard). Text encoding (ASCII, Unicode, UTF-8). Redundant codes for error detection and correction. Images encoding (bitmap, image resolution and depth).Boolean algebra, AND, OR, NOT, NAND, NOR gates. From logical functions to combinatorial circuits (truth tables, sum of products and product of sums normal form expressions, simplification by means of algebra laws, or through Karnaugh’s maps). Examples of circuits: Decoder, Multiplexer, Half Adder, Full Adder, ALU, etc. Sequential circuits: Latch, Flip-flop, registers and memories. Main components of a computer (CPU, RAM memory, Magnetic disks, RAID, Optical disks, BUS, various peripherals) and their basic operating principles. Central Processing Unit: fetch-decode-execute cycle. CISC and RISC processors, Processors with pipeline architecture. Introduction the MIC1 architecture (see textbook).
Expected Learning Outcomes
Describe the historical evolution of computers highlighting the impact of technology on their organization. Explain the positional representation of numbers in any base r (both integer and fractional numbers). Describe and apply the procedures for transforming a fractional number from decimal to base 2, 8 or 16 and viceversa. Describe and apply the procedure to obtain the binary encoding of signed integers in the two representation: sign and modulus or two’s complement. Execute arithmetic operation with binary numbers. Describe and apply the procedure to transform a fractional number into the floating point representation according to standard IEEE 754. Enunciate and explain the main Boolean algebra laws. Represent a Boolean function in different form (SP and PS normal forms, and simplified either applying algebraic rules or through Karnaugh maps). Derive a logical circuit for a given Boolean algebra expression. Given a circuit, state which Boolean function it implements. Recognize the basic combinatorial and sequential circuits and describe the function they implement. Describe the main components of a computer, list the main characteristics, how they work and how they interact. In particular describe the CPU main components and the fetch-decode-execute cycle. State the differences between CISC and RISC architectures and the principle behind the pipeline architectures. Describe the microinstructions language of MIC1 (both in binary and mnemonic representation), implement some simple microprograms using such language and simulate their execution.
Acquire the skills for autonomous learning specific aspects or more advanced topics about computer architecture (in particular skills to search the necessary documentation on-line).
Last update:09-09-2026 00:14:31