BiographySafwat Zaky received his BSc degree in Electrical Engineering and BSc in Mathematics from Cairo University, Egypt, and his MASc and PhD degrees in Electrical Engineering from the University of Toronto. He joined the Department in 1973, after three years at Bell Northern Research, Bramalea, Ontario. He served as Department Chair from 1993 to 2003 and as Vice-Provost, Planning and Budget, from 2003 to 2009. In 1980-81, he was a senior visitor at the Computer Laboratory, University of Cambridge, England. His research interests are in the areas of computer architecture, digital-circuit design, and electromagnetic compatibility. He is a coauthor of two books: Computer Organization and Embedded Systems, now in its sixth edition, and Microcomputer Structures.
We wish to acknowledge this land on which the University of Toronto operates. For thousands of years it has been the traditional land of the Huron-Wendat, the Seneca, and the Mississaugas of the Credit. Today, this meeting place is still the home to many Indigenous people from across Turtle Island and we are grateful to have the opportunity to work on this land.
Computer architecture is the science and art of selecting and interconnecting hardware components and designing the hardware/software interface to create a computer that meets functional, performance, energy consumption, cost, and other specific goals. This course introduces the basic hardware structure of a modern programmable computer, including the basic laws underlying performance evaluation. We will learn, for example, how to design the control and data path hardware for a ARM-like processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems. The principles presented in the lecture are reinforced in the laboratory through the design and simulation of a register transfer level (RTL) implementation of a MIPS-like pipelined processor in Verilog. In addition, we will develop a cycle-accurate simulator of this processor in C, and we will use this simulator to explore processor design options.
There is no required textbook. But we recommend several textbooks below which may be helpful supplements to the material covered in the lectures, labs, and homework assignments. You can place orders for these books at the CMU bookstore.
Overview: The goal of the book is to illustrate the principles of computer organization by using a number of extensive examples drawn from commercially available computers. The machines discussed in the book are the Motorola 680X0 and 683XX families, Intel80X86 and Pentium families, ARM family, Sun Microsystems Sparc family, and DEC(Compaq) Alpha family. The 68000, Pentium, and ARM are used as detailed examples early in the book.
1) The document provides solutions to problems from Chapter 1 and Chapter 2 of a computer organization textbook. 2) In Chapter 1, it discusses basic computer structure, performance improvement through overlapping operations, and performance comparisons between RISC and CISC processors. In Chapter 2, it covers machine instructions, binary representations of numbers, assembly language programming, and addressing modes.3) Some of the problems solved include calculating non-overlapped and overlapped execution times, comparing RISC and CISC processors under different clock rates, implementing addition and subtraction in binary, writing assembly code to calculate a dot product, and designing programs that use indexed addressing modes.Read less
The student who successfully completes the course: will master an advanced knowledge of the design of embedded systems realized as a programmable CPU, hardware coprocessors and peripheral interfaces to/from actuators/sensors; will be aware of the different design choices and metrics; will be able to explore the designs space and find the most appropriate solution given the specifications to be fulfilled; will have the ability to master the most advanced tools for the design and verification of the hardware and the software parts of the embedded system.
The student must demonstrate the ability to put into practice and to execute, with critical awareness, the design of an embedded system consisting of a computer and interfaces on a programmable device (System on a Programmable Chip - SoPC). The design includes the definition of the specification, the hardware/software partitioning, the realization of the computing hardware, the realization of the high-level software and the practical realization of a demonstrator, described in a written report.
ORGANIZZAZIONE DI UN COMPUTER. Blocchi principali. Istruction Set RISC/CISC. Benchmarking. Registri del processore. Implemetazione hardware delle istruzioni. Data Path. Periferiche. Stack. Meccanismo di Interruzione. Organizzazione della memoria. DMA. Cache. Pipelining. Superscalar processor.
SoPC su Piattorgra Intel FPGA. Processore Nios II. System Interconnect Fabric. Interfacce di connessione disponibili: memory-mapped, streaming, ecc. Tool Quartus/Qsys/SBT per lo sviluppo hardware/sotware del sistema embedded. Introduzione di periferiche custom.
EMBEDDED SYSTEMS ORGANIZATION. Embedded system definition. RISC processors computer architecture. Memory organization and pipeline. Cache memories. Peripherals. DESIGN TECHNIQUES AND METRICS. Embedded system hardware-software codesign. Design space exploration. Comparative evaluation of discrete CPU, CPU integrated on programmable logic, dedicated ASIC. SYSTEM ON A PROGRAMMABLE CHIP (SOPC). NIOS II architecture. Parallel port, interval timer, JTAG UART interfaces. The Avalon system interconnect fabric. The SoPC builder tools for the hardware design of the embedded system. SOFTWARE PROGRAMMING. Recalls on C language. Layered software organization: device drivers, hardware abstraction layer, C standard libraries. Interrupt handling and code optimization.
C.Hamacher , Z.Vranesic, S.Zaky, N.Manjikian, Computer Organization and Embedded Systems, 6th Ed. Mc Graw-Hill. Altera documentation (www.altera.com): Nios II Processor Reference Handbook, Embedded Peripherals IP User Guide, Nios II Software Developer's Handbook, Avalon Interface Specification.
Recommended reading includes the following works: C.Hamacher , Z.Vranesic, S.Zaky, N.Manjikian, Computer Organization and Embedded Systems, 6th Ed. Mc Graw-Hill. Altera documentation (www.altera.com): Nios II Processor Reference Handbook, Embedded Peripherals IP User Guide, Nios II Software Developer's Handbook, Avalon Interface Specification.
This course presents the theoretical and practical knowledge to implement an algorithm into a digital architecture. Some design alternatives are presented ranging from a pure software, running on a general purpose computer, to an ad-hoc hardware implementation. This design knowledge is fundamental for understanding in depth all mechanisms on the base of any information computing system and all steps of a compilation chain transforming an high-level programming language into machine-level code.
Theory comprehension is checked through a written examination, eventually divided in parts that will be checked during each semester.
Practical skills are evaluated through two designs which can have a maximal impact of 4/30 on the final mark.
Theory without practical marks are preserved through examination sessions at the cost of a reduction.