Princess Sumaya Univ. Computer Engineering Dept. Chapter 2: Princess Sumaya University 22444 – Computer Arch.

Download Report

Transcript Princess Sumaya Univ. Computer Engineering Dept. Chapter 2: Princess Sumaya University 22444 – Computer Arch.

Princess Sumaya Univ.
Computer Engineering Dept.
Chapter 2:
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Basic Computer Organization
 The 5 Classic Components of a Computer
 The Basic Hardware/Software Interface
 The Stored-Program Concept
1 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Instructions
 Assembly Language Instruction:
Perform:
a=b+c
ADD a, b, c
;ab+c
What are ‘a’, ‘b’ and ‘c’?
● The storage concept:
♦ Registers (R1, R2 …)
♦ Memory
 Sequence of Instructions:
Perform:
a = (b + c) – (d + e)
2 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Memory Operands
 Data Transfer Instructions
● Memory Address (Location)
● Slower than registers
● Lower bandwidth than registers
Memory
0
1
2
•
•
 Load and Store Instructions
3 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Constant Operands
 Memory Operand
Perform a = b + 4
•
•
21
Memory
22
•
•
4
b
 Immediate Operand
4 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Memory Access
8 bit
Memory
1 KB
•
•
21
4 KB
22
•
•
01
 Address & Data
43
1024
 Height and Width
1 KB
16 Locations 
1 K Locations 
1 M Locations 
 Read & Write
5 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Stored Program Architecture
Memory
1024 x 32
Instructions
(Program)
Opcode
Operands
Operands
(Data)
Binary Operand
6 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Memory Organization
 Byte Access
 Word Access
•
•
20 Byte
•
•
20 Byte Byte
•
•
20 Byte Byte Byte Byte
21 Byte
•
•
22 Byte Byte
•
•
24 Byte Byte Byte Byte
•
•
7 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Memory Organization
 Mixed Access
● Little Endian
● Odd/Even
Alignment
•
•
20 Byte Byte
22 Byte Byte
•
•
MSB
DATA
BUS
LSB
8 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Memory Organization
 Mixed Access
● Alignment!
•
•
20 Byte Byte Byte Byte
24 Byte Byte Byte Byte
•
•
MSB
DATA
BUS
LSB
9 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Instruction Representation
 Instruction Format
Opcode
Operands
Assembly
Language
ADD R1, R2,
0101 0001 0010
5
1
 Machine Language & Machine Code
47
00101111
2
2F
5122F
Machine
Language
Sequence of instructions
10 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Operations (Opcodes)
 Arithmetic
1 0 1 0 0 1 1 1
● Add, Sub, Mul, Div, Inc, Dec …
 Logic
1 0 1 0 0 1 1 1
● Shift
♦ Logical & Arithmetic
♦ Right & Left
● Bitwise AND, OR, XOR
● Complement (NOT)
11 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Operations (Opcodes)
 Shift Operation for Multiplication
● Multiply by 2
0 0 0 0 0 1 0 0
♦ Shift Left 1 bit
♦ Unsigned Binary
♦ 2’s Complement
1 1 1 1 1 1 0 1
● Multiply by 10
♦ BCD
0000 0100 1001
♦ Shift Left 4 bits
12 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Control Instructions
 Making Decisions (Conditional Branches)
Perform if (i == j) then a = b + c else a = b – c
i == j ?
a=b+c
a=b–c
13 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Control Instructions
 Transferring Execution
● Unconditional Branch or Jump
● Call Subroutine
● Software Interrupt
•
•
•
•
•
•
•
•
•
•
•
•
•
•
14 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
RISC & CISC
 Reduced Instruction Set Computer
● 32-Bit Storage:
♦ Registers (R1, R2 … R31)
♦ Memory
● Arithmetic operations:
♦ Simple
♦ Limited to registers
 Complicated Instruction Set Computer
● IA-32
15 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Intel Architecture IA-32
 General-Purpose Registers (GPRs)
Also:
“Accumulator”
EAX
EAX AX AX
AL
“Base”
EBX
BX
BL
“Count”
ECX
CX
CL
“Division”
EDX
DX
DL
“String Source”
ESI
SI
“String Destination”
EDI
DI
 Segment Registers
CS
Segmented Memory Addressing
(Real Mode)
SS
DS
16 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Intel Architecture IA-32
 Variable Length Instruction Format
17 / 18
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Intel Architecture IA-32
Year
Microprocessor
Address Bits
Data Bits
Transistors
1971
4004
12
4
2,300
1974
8080
16
8
6,000
1978
8086
20
16/8
29,000
1982
80286
24
16/8
134,000
1985
80386
32
32/16/8
275,000
1989
80486
32
32/16/8
1,200,000
1992
Pentium
32
32/16/8
3,100,000
1995
Pentium Pro
32
32/16/8
5,500,000
1997
Pentium II
32
32/16/8
7,500,000
1999
Pentium III
32
32/16/8
9,500,000
2001
Pentium 4
32
32/16/8
42,000,000
2004
Pentium 4 EM64T
64
32/16/8
125,000,000
2008
Core 2 Quad
64
32/16/8
820,000,000
18 / 18
Princess Sumaya University
Chapter 2
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Chapter 2 Exercise 1
 Write an assembly language program to perform
a+2b where ‘a’ and ‘b’ are stored in R1 and R2.
 Write an assembly language program to swap two
locations at memory addresses 10 and 20.
 Rewrite the following program to run faster:
SUB R1, R1, R1
INC R1
ADD R2, R3, R1
 A memory has 4 bits of address and 4 bits of data.
Determine the total number of bits inside it.
Princess Sumaya University
22444 – Computer Arch. & Org. (1)
Computer Engineering Dept.
Chapter 2 Exercise 2
 Determine the value of R1:
LD R1, M [ 43 ]
 Write the assembly
instruction at 44.
40 00100011010001010000000100010000
44 10110001000110100001001000010001
Opcode
Operand 1
Operand 2
Operand 3
Add (= B1) Reg (5 bits) Reg (5 bits) Reg (5 bits)
Add (= B2) Reg (5 bits) Reg (5 bits)
Constant
 Assuming 8-bit registers, determine the value of R1:
Load Immediate R1, Binary ‘11110010’
Arith Shift Right R1
 Assuming i and j are integers, R1= i and R2 = j, write the Clanguage statement for:
Compare
R1, R2
Jump Equal Label_1
Clear
R1
Label_1: Clear
R2