Computer System Engineering

Download Report

Transcript Computer System Engineering

An Introduction
Chapter 1
Computer Systems
Programmable machines
 Hardware + Software (program)

Hardware
2301274
Program
Chapter 1
Introduction
2
Classes of Computing Applications

Desktop computers


Servers



Personal computers
Accessed by network
Handle large workloads
Embedded computers

2301274
Microprocessors embedded in devices
Chapter 1
Introduction
3
Program Performances

Algorithm


Programming languages, compiler and
architecture


Number of machine instructions
Processor and memory systems


Number of high-level instructions & I/O
operations
Number of clocks for each instruction
I/O systems

2301274
Time for each I/O operations
Chapter 1
Introduction
4
Representation of Data and Programs
Bits: 0 or 1
 Bytes: string/sequence of bits e.g.
10010110



Words: sequence of bytes


Normally, a byte is composed of 8 bits.
A word can be composed of 4 or 8 bytes.
There are standard formats of data stored
in a computer.

2301274
ASCII code, Unicode
Chapter 1
Introduction
5
Languages and Programs
A program is a sequence of instructions
for computer.
 A format of instructions = a language
 Computer languages


High-level languages


Low-level languages


2301274
Java, Python, C, ASP, HTML, …
Assembly languages
Machine languages
Chapter 1
Introduction
6
Examples of Languages
 Assembly
 High-level
languages
languages

C

swap(int v[], int k))
{ int temp;
temp=v[k];
v[k]=v[k+1];
v[k+1]=temp;
return;
}
2301274
Chapter 1
MIPS assembly
swap:
muli
add
lw
lw
sw
sw
jr
Introduction
$2, $5, 4
$2, $4, $2
$15, 0($2)
$16, 4($2)
$16, 0($2)
$15, 4($2)
$31
7
Examples of Languages
swap:
muli $2, $5, 4
add $2, $4, $2
lw
$15, 0($2)
lw
$16, 4($2)
sw
$16, 0($2)
sw
$15, 4($2)
jr
$31
2301274

Machine languages
00000000101000010000000000011000
00000000000110000001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
Chapter 1
Introduction
8
Advantages of high-level languages
Easy to understand
 Improve productivity
 Machine-independent

2301274
Chapter 1
Introduction
9
Hardware-Software interface
Application software
System software
Hardware
2301274
Chapter 1
Introduction
10
System Software
Provide services to application software
and users
 Examples




2301274
Operating systems
Compilers
Assemblers
Chapter 1
Introduction
11
Compilers
A compiler is a program which translates a
program in one language into another
language.
 Usually, the source language is a highlevel language, and the target language is
a low-level language.

Source
program
compiler
Source language
2301274
Chapter 1
Introduction
Target
program
Target language
12
Assembler

Assembly language


Symbolic representation of machine
instructions.
Assembler

2301274
A compiler which translates from an assembly
language to a machine language.
Chapter 1
Introduction
13
Components of computers
Processor
Input
Unit
datapath
control
Output
Unit
Memory
2301274
Chapter 1
Introduction
14
Memory

Linear storage
Addressable in words
 “Random access”
 Data/program can be read from/ write to
memory, one word at a time.



2301274
To write data d to memory addressed a ,
data d and address a must be specified.
To read data from memory addressed a ,
address a must be specified.
Chapter 1
Introduction
15
Components of a computer: More detail
processor
registers
memory
ALU
data
program
Instruction register
Program counter
address
data
Control units
2301274
Chapter 1
Introduction
16
Components of Processors

Arithmetic-logic unit (ALU)


Registers


Performs arithmetic and logic functions: add, substract,
multiply, divide, and, or, not, etc.
Fast-access memory used by a processor to store
intermediate results.
Program counter (PC)



2301274
Keeps track where the current instruction is.
Normally, incremented to point to the next instruction.
Changed by instructions that alter the flow of control of
a program (if-then-else, loop, and function call).
Chapter 1
Introduction
17
Components of Processors


Instruction register (IR)

Store the current instruction fetched from
memory.

Its content (the instruction) signals the control
unit to initiate the execution of that
instruction.
Control unit



2301274
Most complex part of a processor.
Send control signals to all parts in the
processor to co-ordinate their activities.
A large finite state machine.
Chapter 1
Introduction
18
How a computer system works
Fetch-execute cycle
 Fetch: get an instruction (addressed by
PC) from memory and store in IR, and
update PC.
 Execute: work according to the instruction
in IR


2301274
If the instruction causes PC changed, PC is
updated again.
Chapter 1
Introduction
19
Instruction Execution Cycle
processor
registers
memory
ALU
data
program
Control units
Instruction register
address
data
Program counter
increment
2301274
Chapter 1
Introduction
20
Levels of descriptions of computer systems
Applications
Operating systems
Instruction set
Functional units
Finite state machine
Logic gates
Electronics
2301274
Chapter 1
Introduction
21
Levels of descriptions of computer systems
Applications
Operating systems
Instruction set
Application level is what a
user typically sees a
computer system, running
his/her application
programs.
Functional units
Finite state machine
Logic gates
Electronics
2301274
Chapter 1
An application is usually
written in a computer
language which used
many system functions
provided by the operating
system.
Introduction
22
Levels of descriptions of computer systems
Applications
Operating systems
Instruction set
Functional units
Finite state machine
An operating system is
abstraction layers that
separate a user program
from the underlying
system-dependent
hardware and peripherals.
Logic gates
Electronics
2301274
Chapter 1
Introduction
23
Levels of descriptions of computer systems
• computer architecture begins
Applications
Operating systems
Instruction set
Functional units
Finite state machine
Logic gates
Electronics
2301274
Chapter 1
at the instruction set.
• An instruction set is what a
programmer at the lowest level
sees of a processor
• one instruction set with
different level of performance
for many models, based on the
implementation of a control
unit via “microprogram”.
• Present day processor
designs converge, their
instruction sets become more
similar than different.
Introduction
24
Levels of descriptions of computer systems
Units are divided by their functions,
e.g. ALU, control unit, etc.
Applications
Operating systems
Instruction set
processor
Functional units
Finite state machine
Logic gates
registers
ALU
data
Control units
Instruction
register
Electronics
2301274
The interconnection between units
are described.
address
Program counter
Chapter 1
Introduction
25
Levels of descriptions of computer systems
Applications
Operating systems
Mathematical description of
the behavior of a system.
Instruction set
Functional units
Finite state machine
Important tool for
verification of the correct
behavior of the hardware.
Logic gates
Electronics
2301274
Chapter 1
Introduction
26
Levels of descriptions of computer systems
Applications
Operating systems
Instruction set
Functional units
Logic gates (e.g. and,
or, not gates) are
used to build
functional units.
Finite state machine
Logic gates
Electronics
2301274
Chapter 1
Introduction
27
Levels of descriptions of computer systems
Applications
Operating systems
Electronic circuits are
used to build logic gates.
Instruction set
Functional units
Finite state machine
Logic gates
Electronics
2301274
Chapter 1
Introduction
28