Lecture 1
Computer Abstractions
and Technology
Introduction
§1.1
The Computer Revolution
◼ Progress in computer technology
◼ Underpinned by Moore’s Law
◼ Makes novel applications feasible
◼ Computers in automobiles
◼ Cell phones
◼ Human genome project
◼ World Wide Web
◼ Search Engines
◼ Computers are pervasive(spreading
through every part of something)
Chapter 1 — Computer Abstractions and Technology — 2
Classes of Computers
◼ Desktop computers
◼ General purpose, variety of software
◼ Subject to cost/performance tradeoff
◼ Server computers
◼ Network based
◼ High capacity, performance, reliability
◼ Range from small servers to building sized
◼ Embedded computers
◼ Hidden as components of systems
◼ Stringent power/performance/cost constraints
Chapter 1 — Computer Abstractions and Technology — 3
What You Will Learn
◼ How programs are translated into the
machine language
◼ And how the hardware executes them
◼ The hardware/software interface
◼ What determines program performance
◼ And how it can be improved
◼ How hardware designers improve
performance
◼ What is parallel processing
Chapter 1 — Computer Abstractions and Technology — 4
Understanding Performance
◼ 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 — 5
§1.2 Below Your Program
Below Your Program
◼ Application software
◼ Written in high-level language
◼ System software
◼ Compiler: translates HLL 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
Chapter 1 — Computer Abstractions and Technology — 6
Levels of Program Code
◼ High-level language
◼ Level of abstraction closer
to problem domain
◼ Provides for productivity
and portability
◼ Assembly language
◼ Textual representation of
instructions
◼ Hardware representation
◼ Binary digits (bits)
◼ Encoded instructions and
data
Chapter 1 — Computer Abstractions and Technology — 7
Benefits of high-level languages
◼ Allow programmers to think in natural
language, often specific to their intended
use
◼ Fortran for scientific computations, Cobol for
business, LISP for symbol processing, etc
◼ Increase productivity
◼ Fewer lines of code required
◼ Allow programs to be independent of
computer on which they are developed
◼ portable; use of compilers
Chapter 1 — Computer Abstractions and Technology — 8
Under the cover
◼ Hardware performs same basic functions
across different types of computers
◼ inputting data
◼ outputting data
◼ processing data
◼ storing data
Chapter 1 — Computer Abstractions and Technology — 9
§1.3 Under the Covers
Components of a Computer
The BIG Picture ◼ Same components for
all kinds of computer
(Desktop, server,
embedded)
◼ input
◼ output
◼ memory
◼ datapath
◼ control
Chapter 1 — Computer Abstractions and Technology — 10
Components of a Computer
◼ Input/output includes
◼ User-interface devices
◼ Display, keyboard, mouse
◼ Storage devices
◼ Hard disk, CD/DVD, flash
◼ Network adapters
◼ For communicating with other computers
Chapter 1 — Computer Abstractions and Technology — 11
Anatomy of a Computer
Output
device
Network
cable
Input Input
device device
Chapter 1 — Computer Abstractions and Technology — 12
Anatomy of a desktop PC
Chapter 1 — Computer Abstractions and Technology — 13
Anatomy of a desktop PC
Chapter 1 — Computer Abstractions and Technology — 14
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 — 15
Through the Looking Glass
◼ LCD screen: picture elements (pixels)
◼ Mirrors content of frame buffer memory
Chapter 1 — Computer Abstractions and Technology — 16
Opening the Box
Chapter 1 — Computer Abstractions and Technology — 17
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 — 18
Inside the Processor
◼ AMD Barcelona: 4 processor cores
Chapter 1 — Computer Abstractions and Technology — 19
Abstractions
◼ 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 — 20
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 — 21
Networks
◼ Communication and resource sharing
◼ Local area network (LAN): Ethernet
◼ Within a building
◼ Metropolitan Area Network (MAN)
◼ Within a city
◼ Wide area network (WAN)
◼ Covering wider geographical area (country, continent, and
beyond)
◼ Wireless network: WiFi, Bluetooth
Chapter 1 — Computer Abstractions and Technology — 22
Technology Trends
◼ Electronics
technology
continues to evolve
◼ Increased capacity
and performance
DRAM capacity
◼ Reduced cost
Year Technology Relative performance/cost
1951 Vacuum tube 1
1965 Transistor 35
1975 Integrated circuit (IC) 900
1995 Very large scale IC (VLSI) 2,400,000
2005 Ultra large scale IC 6,200,000,000
Chapter 1 — Computer Abstractions and Technology — 23
Architecture & Organization 1
◼ Architecture is those attributes visible to
the programmer
◼ Instruction set, number of bits used for data
representation, I/O mechanisms, addressing
techniques.
◼ e.g. Is there a multiply instruction?
◼ Organization is how features are
implemented
◼ Control signals, interfaces, memory
technology.
◼ e.g. Is there a hardware multiply unit or is it
Structure & Function
◼ Structure is the way in which components
relate to each other
◼ Function is the operation of individual
components as part of the structure
Function
◼ All computer functions are:
◼ Data processing
◼ Data storage
◼ Data movement
◼ Control
Functional View
Operations (a) Data movement
Operations (b) Storage
Operation (c) Processing from/to storage
Operation (d) Processing from storage to
I/O
Structure - Top Level
Peripherals Computer
Central Main
Processing Memory
Unit
Computer
Systems
Interconnection
Input
Output
Communication
lines
Structure - The CPU
CPU
Computer Arithmetic
Registers and
I/O Login Unit
System CPU
Bus
Internal CPU
Memory Interconnection
Control
Unit
Structure - The Control Unit
Control Unit
CPU
Sequencing
ALU Login
Control
Internal
Unit
Bus
Control Unit
Registers Registers and
Decoders
Control
Memory