IqIq Introduction to Computer Organization Introduction to Computer Organization Geoffrey Messier Professor of Electrical & Computer Engineering Schulich School of Engineering Slide 1/20 ©Geoffrey Messier 2021 IqIq A User’s Perspective Introduction to Computer Organization Slide 2/20 ©Geoffrey Messier 2021 • User’s Perspective: Making use of a computer in our daily lives. • This can take many forms. IqIq A User’s Perspective Introduction to Computer Organization Slide 3/20 ©Geoffrey Messier 2021 • The personal computer/laptop. IqIq A User’s Perspective Introduction to Computer Organization Slide 4/20 ©Geoffrey Messier 2021 • The smartphone. IqIq A User’s Perspective Introduction to Computer Organization Slide 5/20 ©Geoffrey Messier 2021 • A car. IqIq A User’s Perspective Introduction to Computer Organization • Input/Output (I/O) Interface: Used by the computer to receive information (input) and to provide information (output). • Hardware: The physical construction of a computer. • Software: The programs/apps that we run on the computer that define its behaviour. Slide 6/20 ©Geoffrey Messier 2021 IqIq A Programmer’s Perspective Introduction to Computer Organization Slide 7/20 ©Geoffrey Messier 2021 • Programmer’s Perspective: Using a computer to develop software. Usually in a high level language like C, Python, etc. • Software development is done in some kind of programming environment that translates code to a working program. • For many forms of software development, a programmer’s understanding doesn’t need to be much deeper than a regular user. IqIq The Silicon Perspective Introduction to Computer Organization • Computer hardware consists of transistors implemented on silicon. • Example: Figure: A silicon wafer.1 • The Apple A13 processor consists of 8.5 billion transistors. • Each transistor is 7 nm (the width of 14 atoms). Slide 8/20 ©Geoffrey Messier 2021 1 https://www.techpowerup.com IqIq Bridging the Gap Introduction to Computer Organization • Goal: Finish bridging the gap between the user/programmer perspective and silicon. • In your digital design classes, you’ve learned how to: • Use transistors to create basic logic gates (NOT, AND, OR, etc.). • Create circuits with memory using these basic logic functions. • Design circuits that change state and generate outputs that are a function of state an user input. Slide 9/20 ©Geoffrey Messier 2021 IqIq The Microarchitecture Perspective Introduction to Computer Organization Slide 10/20 ©Geoffrey Messier 2021 • Micro-architecture: Digital blocks implemented on silicon that make up a computer. • A micro-architecture executes a series of low level machine language instructions. • The machine language instructions are generated from a program written in a high level language (HLL). • Instruction Set Architecture: The set of all the different machine language commands that will run on a micro-architecture. IqIq The Microarchitecture Perspective Introduction to Computer Organization • The term architecture is used to refer to the many different types of processors available: • x86: Originally developed by Intel, this is the family that makes up most PC/laptop processors. Includes the i5/i7 processors. • Advanced RISC Machine (ARM): The most widely used architecture2 , ARM sells licenses to their designs to multiple companies who then build the chips. • AVR (Alf and Vergard’s Reduced Instruction Set Computer): The micro-processor family used by Arduino. Slide 11/20 ©Geoffrey Messier 2021 1 https://en.wikipedia.org/wiki/ARM architecture IqIq Diving into a Micro-architecture Introduction to Computer Organization Slide 12/20 ©Geoffrey Messier 2021 IqIq Diving into a Micro-architecture Introduction to Computer Organization Slide 13/20 ©Geoffrey Messier 2021 • Processor: Active block of the computer that’s responsible for following the instructions making up a program. • Memory: The area where programs and the data used by programs are stored. • I/O: Any interface or device used to send information into the computer or to get information out of it. • Bus: One or more wires that run in parallel and carry digital information. • Microprocessors (MPUs): Supported by several external chips that implement memory, I/O, etc. • Microcontrollers (MCUs): All functionality contained on a single chip. IqIq Diving into a Micro-architecture Introduction to Computer Organization • Buses are digital connections between functional blocks. They can be: • Serial: One bit is transmitted at a time. Usually consists of one wire for data and a few others for clock and control signals. • Parallel: Several bits are transmitted simultaneously. Usually implemented using several parallel wires. 8 8 bit Parallel Bus Single Digital Line Slide 14/20 ©Geoffrey Messier 2021 IqIq The Harvard Micro-Architecture Introduction to Computer Organization Instruction Memory Processor I/O Slide 15/20 ©Geoffrey Messier 2021 Data Memory IqIq The AVR128DB28 Microprocessor Introduction to Computer Organization Slide 16/20 ©Geoffrey Messier 2021 1 Microchip, AVR128DB28/32/48/64 Datasheet, DS40002247A, 2020. IqIq Specialized vs. Generalized Computing Introduction to Computer Organization • A micro-architecture is the ultimate in generalized computing. • Actions taken by the processor depend on the instructions stored in memory (the stored program concept). • We can change what the processor does by changing the instructions, not the actual hardware. • Some digital circuits are designed to do only one job. • Implemented on a field programmable gate arrays (FPGAs) and migrated to an application specific integrated circuit (ASIC). • Very fast, low cost and power efficient. • Not very versatile. Slide 17/20 ©Geoffrey Messier 2021 IqIq Specialized vs. Generalized Computing Introduction to Computer Organization • Some stored program devices also have specialized hardware to accelerate certain operations: • Digital signal processors (DSPs). • Graphics processing units (GPUs). Slide 18/20 ©Geoffrey Messier 2021 IqIq Embedded Design & “Firmware” Introduction to Computer Organization Slide 19/20 ©Geoffrey Messier 2021 • An embedded system is a computer that is embedded in a larger system that does a very specific job. • Example: Automobile engine control, home security system controller. • Embedded systems still use a stored program micro-architecture. • Firmware is software that provides very low level control of hardware. IqIq Our Goal Introduction to Computer Organization • To learn how a computer “works”: • How a high level programming language is translated into low level binary instructions a micro-architecture can understand. • The design of the digital logic structures necessary to store and execute these instructions. • How micro-architecture design can be enhanced to improve performance. • By the end of this course, we will have bridged the gaps between the program and the a digital design made up of simple logic gates. Slide 20/20 ©Geoffrey Messier 2021