02/03/2019
Chapter 0
INTRODUCTION
Contents
References
Grading policy
The Content
Course overview
Why study computer architecture
What is computer
Organizations and Architecture
What will you learn
1
02/03/2019
References
David A. Patterson and John L. Hennessy, Computer
Organization &Design–The Hardware/Software
Interface, 4th Edition, Morgan Kaufmann Publishers,
2008
William Stallings, Computer Organization and
Architecture–Designing for Performance, 7th Edition,
Pearson International Edition, 2006.
Linda Null, Julia Lobur, The Essentials of Computer
Organization and Architecture, Jones and Bartlett
Publishers, 2003
[Link]
online
Grading policy
Attend class
Homework
Midterm examination
Labs
Final examination
2
02/03/2019
Contents
Chapter 0 : Introduction to course
Chapter 1 : Introduction
Chapter 2 : Top-level view of Computer functions and
interconnections
Chapter 3 : Computer Memory
Chapter 4 : The Central Processing Unit
Chapter 5 : Data Presentation
Chapter 6 : Instruction Set
Chapter 7 : Addressing Mode and Stack Processing
Chapter 8 : Macro and Function
Chapter 9 : System services
Course overview
Principle and organization of digital computers
Performance issues in computer architecture
Bus organization and memory design
Principle of computer’s instruction set and
programming in assembly language (some
popular processors are used such as Intel x86,
ARM, …)
3
02/03/2019
Why study computer architecture
To be a professional in any field of computing
today,you should not regard the computer as just a back
box that executes program by magic.
You should understand a computer system’s
functional components, their characteristics, their
performance, and their interactions.
You need to understand computer architecture in
order to build a program so that it runs efficiently on a
machine.
When selecting a system to use, you should be able to
understand the tradeoff among various components,
such as CPU clock speed vs. memory size.
Understand the complex trade-offs between CPU clock
speed, cache size, bus organization, number of core
processors,…
What determines the performance of a program, and
how can a programmer improve the performance? As we
will see, this depends on the original program, the so ware
translation of that program into the computer’s language,
and the effectiveness of the hardware in executing the
program.
Understand other areas of computing curriculum such as
operating system, passing parameter/pointers, stack frame
in high-level language,
4
02/03/2019
What is Digital computer
Define
Computer is a data processing machine,
operation automatically under the control of one
list of commands (called programs) is strored in
memory
5
02/03/2019
Functions of computers
Functions of computer consit of :
Data processing
Data storage
Data movement
Control
Structure - Top Level
Peripherals Computer
Central Main
Processing Memory
Unit
Computer
Systems
Interconnection
Input
Output
Communication
lines
6
02/03/2019
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
7
02/03/2019
Computer Abstraction
Application Problem-oriented language
Compiler
Assembly language
Assembler
Gap
Operating system
Partial intepretation
Instruction Set Architecture
(ISA)
Microprogram
Microarchitecture
Hardware
Physical devices Digital circuits
Other abstract view
Applications
OS (Windows, linux, Mac
OS)
Software
Compiler
Assembler
Processor Memory I/O System
Hardware Datapath & Control
Digital design
Digital circuits
8
02/03/2019
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
Organizations and Architecture
What Is Computer Architecture?
Computer Architecture refers to those attributes of a
system that have a direct impact on the logical
execution of a program. Examples:
The instruction set
The number of bits used to represent various data types
I/O mechanisms
Memory addressing techniques
ISA, Organization, Implementation
Instruction Set Architecture: SW/HW interface
9
02/03/2019
Instructions
Memory management and protection
Interrupts and traps
Floating-point standard (IEEE)
Organization: also called microarchitecture
Computer Organization refers to the operational units
and their interconnections that realize the architectural
specifications. Examples are things that are
transparent to the programmer:
Control signals
Interfaces between computer and peripherals
The memory technology being used
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
10
02/03/2019
The Processor Market
What will you 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
11
02/03/2019
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
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
12
02/03/2019
C/Java, assembly, and machine code
13
02/03/2019
14