Computer Architecture & Operations I Instructor: Yaohang Li
Review Last Class This Class Next Class Syllabus Moore’s Law Classes of Computers Decimal, Binary, Octal, Hexadecimal Representations This Class Program and Computer Compiler, Assembler, and Linker Components of a Computer Next Class Computer Performance
Understanding Computer Performance Morgan Kaufmann Publishers May 27, 2018 Algorithm Determines number of operations executed Programming language, compiler, architecture Determine number of machine instructions executed per operation Processor and memory system Determine how fast instructions are executed I/O system (including OS) Determines how fast I/O operations are executed Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Below Your Program Application software Written in high-level language System software Compiler: translates High Level Language code to machine code Operating System: service code Handling input/output Managing memory and storage Scheduling tasks & sharing resources Hardware Processor, memory, I/O controllers §1.2 Below Your Program Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Levels of Program Code High-level language Level of abstraction closer to problem domain Provides for productivity and portability Assembly language Symbolic representation of instructions Hardware representation Binary digits (bits) Encoded instructions and data Chapter 1 — Computer Abstractions and Technology
Compiler Function of Compiler Convert programs in high-level language to programs in assembly language
Example: C Compiler C program Assembly Program
Assembler Assembler Assembly Language Translates assembly language into binary instructions Assembly Language Use symbols instead of 0’s and 1’s More readable
Binary Instructions MIPS binary code for summing 0 to 100 square
Linker Separate Compilation Linker Allows a program to be split into pieces that are stored in different files Each file contains a logically related collection of subroutines and data structures that form a module Can be compiled separately Can be reused Linker Merge Modules together
Functions of a Linker
Tasks of a Linker Search the program libraries to find library routines used by the program Determine the memory locations that code from each module will occupy and relocates its instructions by adjusting absolute references Resolves references among modules Matching references
Relationship Among Compiler, Assembler, and Linker
Example: gcc compiler Compile a simple program gcc –v test.c
Components of a Computer Morgan Kaufmann Publishers May 27, 2018 Components of a Computer §1.3 Under the Covers Same components for all kinds of computer Desktop, server, embedded Input/output includes User-interface devices Display, keyboard, mouse Storage devices Hard disk, CD/DVD, flash Network adapters For communicating with other computers The BIG Picture Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Anatomy of a Computer Output device Network cable Input device Input device Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Anatomy of a Mouse Optical mouse LED illuminates desktop Small low-res camera Basic image processor Looks for x, y movement Buttons & wheel Supersedes roller-ball mechanical mouse Chapter 1 — Computer Abstractions and Technology
Through the Looking Glass Morgan Kaufmann Publishers May 27, 2018 Through the Looking Glass LCD screen: picture elements (pixels) Mirrors content of frame buffer memory Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Opening the Box Chapter 1 — Computer Abstractions and Technology
Inside the Processor (CPU) Morgan Kaufmann Publishers May 27, 2018 Inside the Processor (CPU) Datapath: performs operations on data Control: sequences datapath, memory, ... Cache memory Small fast SRAM memory for immediate access to data Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Inside the Processor AMD Barcelona: 4 processor cores Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Abstractions The BIG Picture Abstraction helps us deal with complexity Hide lower-level detail Instruction set architecture (ISA) The hardware/software interface Application binary interface The ISA plus system software interface Implementation The details underlying and interface Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 A Safe Place for Data Volatile main memory Loses instructions and data when power off Non-volatile secondary memory Magnetic disk Flash memory Optical disk (CDROM, DVD) Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Networks Communication and resource sharing Local area network (LAN): Ethernet Within a building Wide area network (WAN: the Internet) Wireless network: WiFi, Bluetooth Chapter 1 — Computer Abstractions and Technology
Morgan Kaufmann Publishers May 27, 2018 Technology Trends Electronics technology continues to evolve Increased capacity and performance Reduced cost DRAM capacity Chapter 1 — Computer Abstractions and Technology
Summary Performance of a Computer Compiler Assembler Linker Components of a Computer
What I want you to do Review Chapter 1