This page provides course handouts and supplementary materials. Please refer to the official page of the course for a complete list of course topics, textbooks, and examination rules.

[page updated on March 19, 2015]


01. Introduction:

01.01 Automatic Information Processing [CArc-1.pdf]
01.02 Brief History of Computing [CArc-2.pdf]

02. Information Theory:

02.01 Digital Encodings [CArc-3.pdf]
02.02 Representation of Numerical Sets and Binary Arithmetic [CArc-4-revised.pdf] (updated on Jan 9, 2014)
02.03 Representation of Non-Numerical Sets [CArc-5.pdf]
02.04 Special Encodings: Redundancy and Compression [CArc-6.pdf][CArc-6.comments.pdf][parity.xls]

03. Logic Networks:

03.01 Boolean Algebra [CArc-7.pdf]
03.02 Switching Networks and Combinational Circuits [CArc-8.pdf]
03.03 Sequential Circuits.[CArc-10.pdf]
03.04 Gate-Level Design [CArc-11.pdf]
03.05 Digital Systems [CArc-12.pdf]
03.06 Lab: Logic-Level Design and Simulation using TkGate.[CArc-9.text.pdf][Homework-1.pdf][exor.v][video1][myEXOR.v][video2][myRCA4.v][video3][myFF.v]
03.07 Address Decoding [CArc-13.pdf]

04. Computer Systems:

04.01 Von-Neumann Bottleneck and CPU Micro-Architecture [carc-14.pdf]
04.02 Istruction-Set Architecture. [carc-15.pdf]

05. CPU:

05.01 Elementary Pipelining and Performance Metrics. [first part of carc-16.pdf]
05.02 Reference Architecture: DLX. [second part of carc-16.pdf]
05.03 Pipeline Hazards. [carc-17.pdf]
05.04 Lab: Cycle-Accurate Simulazione of DLX Pipeline using WinDLX/WinMIPS. [carc-18.pdf]

06. Performance Optimization:

06.01 Static Code Optimization. [carc-19.pdf][loop0.s][CArc-19-MIPS][MIPSloop0]
06.02 Lab: Example of Simulation-Driven Static Code Optimization. [loop1d.sloop2d.sloop3d.sloop4d.sloop5d.sloop6d.sloop7d.sloop8d.sloop9d.sloop10d.sloop11d.s]
06.03 Multiple-Issue Processors. [carc-20.pdf]
06.04 Dynamic Optimization: OOO Execution and Speculation. [carc-21.pdf]
06.05 Lab: Development and Use of Performance Benchmarks. [carc-22.pdf]

07. Memory:

07.01 Memory Devices: SRAM and DRAM. [carc-23.pdf]
07.02 Non-Volatile Memory Devices: ROM and Flash. [carc-24.pdf]
07.03 Memory Hierarchy: Caching [carc-25.pdf] and Virtual Memory. [carc-26.pdf]

08. Communication:

08.01 BUS and I/O. [carc-27.pdf]
08.02 I/O Synchronization: Interrupts and DMA. [carc-28.pdf]