CPE 411 / 611
Digital Computer Architecture
and Design
Instructor: Mircea Nicolescu
Lecture 1
Contacts
• Instructor: Dr. Mircea Nicolescu
− E-mail: mircea@cse.unr.edu
− Office: SEM 232
− Office Hours: Wednesday: 9:00am-12:00pm
• Class web page:
− http://www.cse.unr.edu/~mircea/Teaching/cpe411_611
2
Assignments and Exams
• Homework assignments and quizzes (40%)
− Written exercises and small assembly programs
• Midterm exam (25%)
− Closed book, closed notes
• Final exam (30%)
− Closed book, closed notes
− Comprehensive, although focused on the second half
of the course
• Attendance and class participation (5%)
3
Late Submission Policy
• No late assignments will be accepted
Warning:
Dates in the calendar are closer than they appear!
4
Required Textbook
• Computer Organization & Architecture,
7th Edition, by William Stallings, Prentice Hall, 2006.
5
Course Objectives
• Review development of computer systems
• Examine the design and operation of the major
building blocks of a computer system
• Investigate performance enhancements for each
component
6
Introduction
• How do computers work?
• What do we mean by a computer?
− Different types: desktop, servers, embedded devices
− Different uses: general computation, graphics, finance,
genomics, automobiles…
− Different manufacturers: Intel, Apple, IBM, Sun…
− Different underlying technologies and different costs
− Historically, a computer was a job title, not a piece of
equipment!
7
Introduction
• Best way to learn:
− Focus on a specific instance and study how it works
− Meanwhile, learn general principles and historical
perspectives
8
Classes of Computers
• Desktop computers
− A.k.a. personal computers
− Only about 30 years old!
− Good performance, single user, low cost
− Execute third party software
9
Classes of Computers
• Servers
− A.k.a. mainframes, minicomputers, supercomputers
− Accessed via network
− Large workloads
− Single complex application (scientific, engineering, etc)
− Many small jobs (WWW)
− Customized applications, for particular function
− Emphasis on dependability
10
Classes of Computers
• Embedded computers
− Found in cars, airplanes, washing machines, cell
phones, digital TVs
− One application only, or small set of applications
− Integrated with hardware
− Cost and power constraints
− Limited performance, but least tolerance for failure
11
What Are We Studying?
• Computer Evolution and Performance
− Organization and Architecture
• The Computer System
− Computer Interconnection Structures
− Cache Memory
− Internal Memory
− External Memory
− Input/Output
− Operating System Support
12
What Are We Studying?
• The CPU
− Computer Arithmetic
− Instruction Sets
− Characteristics and Functions
− Addressing Modes and Formats
− Processor Structure and Function
− RISC
− Superscalar Processors
• The Control Unit
− Control Unit Operation
− Microprogrammed Control
• Parallel Processing
13
Why Study It?
• Build software that people use (need performance)
• Make a purchasing decision or offer “expert” advice
• Understand the performance impact of both hardware
and software:
− Algorithm determines number of source-level statements
− Language/Compiler/Architecture determine machine
instructions
− Processor/Memory determine how fast instructions are
executed
14
Why Study It?
• Relevant for computer engineers, but also for:
− Compiler writers
− Operating system designers
− Database programmers
− Most software engineers
15
Applications
• Applications that drive computer performance:
− Weather forecasting
− Oceanography
− Seismic/petroleum exploration
− Medical research and diagnosis
− Aerodynamics and structure analysis
− Nuclear physics
− Artificial intelligence
− Military
− Socio-economics
16
Applications
• Applications desired but impractical not long ago:
− ATMs
− Embedded systems (e.g., computers in cars)
− Laptop computers
− World Wide Web
17
Trends in Computer Usage
• Four levels of increasing sophistication:
18
How do computers work?
• Need to understand abstractions such as:
− Applications software
− Systems software
− Assembly language
− Machine language
− Architectural issues: i.e., caches, virtual memory,
pipelining
− Sequential logic, finite state machines
− Combinational logic, arithmetic circuits
− Boolean logic, 1s and 0s
− Transistors used to build logic gates (CMOS)
− Semiconductors used to build transistors
− Properties of atoms, electrons, and quantum dynamics
19
Programming Perspective
• Need to hide the lower-
level details
20
Architecture and Organization
• Distinction between architecture and organization:
• Computer architecture:
− Attributes visible to the programmer
− Instruction set, number of bits used for data
representation, I/O mechanisms, memory addressing
techniques
− Example: Is there a multiply instruction?
21
Architecture and Organization
• Computer architecture – cont.:
− Baer:
− “The design of the integrated system which provides a useful
tool to the programmer”
− Hennessy and Patterson:
− “The interface between the hardware and the lowest level
software”
− Foster:
− “The art of designing a machine that will be a pleasure to work
with”
22
Architecture and Organization
• Computer organization:
− How features are implemented
− Realize the architectural specifications
− Hardware details transparent to programmer
− Control signals, interfaces between computer and
peripherals, memory technology
− Example: Is there a hardware multiply unit or is it done
by repeated addition?
23
Internet Resources
• http://WilliamStallings.com/COA/COA7e.html
− links to sites of interest
− errata list for book
• http://WilliamStallings.com/StudentSupport.html
− Math
− How-to
− Research resources
24
Internet Resources
• WWW Computer Architecture Home Page
• CPU Info Center
• Processor Emporium
• ACM Special Interest Group on Computer
Architecture
• IEEE Technical Committee on Computer
Architecture
• Intel Technology Journal
• Manufacturer’s sites
− Intel, IBM, etc.
25
Internet Resources
• comp.arch
• comp.arch.arithmetic
• comp.arch.storage
• comp.parallel
26
Architecture and Organization
• Computer manufacturers offer a family of models:
− Same architecture
− Different organizations
• Examples:
− All Intel x86 family share the same basic architecture
− The IBM System/370 family share the same basic
architecture
• What are the benefits?
− Code compatibility (at least backwards)
− Customization (different constraints on performance and
price)
27
Architecture and Organization
• Example: instruction set architecture
− A very important abstraction
− Interface between hardware and low-level software
− Standardizes instructions, machine language bit
patterns, etc.
• Advantage
− Different implementations of the same architecture
• Disadvantage
− May prevent new innovations
• Modern instruction set architectures:
− IA-32, PowerPC, MIPS, SPARC…
28
Announcements
• Readings
− Chapter 1
29