To know how to specify and implement simple synchronous, dedicated sequential machines, using the operating unit/control unit design paradigm. To learn the basic architectural principles behind modern microprocessors and their hardware/software components.
None. However, it is suggested to have attended the 1st year's course on Foundations of Computer Science and Programming.
Teaching: mainly at the blackboard, sometimes with PC+videoprojector. Additional material is suggested for home study. Further discussions and clarifications at student tutoring hours.
The examination includes a written test followed (usually one week later) by an oral test. The written test is usually subdivided into two parts. The first concerns the design of a dedicated sequential machine. In the second part, the student is requested to implement (machine code, operating unit, control unit) a single machine instruction on a CISC-like microprocessor. Alternative exercises focus on the measure/comparison of microprocessor performances, or on writing simple programs in assembly language. The oral test includes theoretical subjects and simple exercises.
1st PART – Logic Circuits:
Representation of signed/unsigned integers. Propositiona logic. Boolean algebra and canonical forms. Elementary combinatorial circuits: decoder, multiplexer, ROM. Arithmetic through Logic. ALU. Sequential machines: representations using FSM and "single-block" design. Flip-flops, registers. Design of dedicated machine according to the operating unit/control unit methodology.
2nd PART - Microprocessors: From dedicated machines to the universal machine. Technology, architecture, organization. Memory hierarchies. CPU-Memory-I/O transactions. Fetch and execution of machine instructions. Instruction types. Addressing modes. Design of a single machine instruction: coding and implementation (hardware of operating unit, control automaton). Bus, machine and wait cycles. CISC and RISC architectures. Performance. Assembly programming. Assembler, linker, loader.