1
Prosesor: Control & Datapath
Computer
Processor Memory Devices
(active) (passive)
Control Input
(“brain”) (where
programs,
data
Datapath live when
(“brawn”) Output
running)
2
Organisasi Prosesor (Single-
bus)
Control lines
Instruction
PC Control
Decoder
Address Unit
lines
MAR IR
Memory
bus Data
lines
MDR R0
R(n-1) Datapath
Add Unit
ALU Sub
control
lines
ALU
XOR
Carry-in
Z TEMP
3
Siklus Eksekusi
Instruksi
Eksekusi instruksi yang ukurannya tetap
do {
1. IR ← M[PC] // Fetch instruksi
2. PC ← PC + d // Tunjuk ke lokasi instruksi berikutnya
3. Eksekusi instruksi
} while (!stop)
° Operasi-operasi Dasar:
• Mengambil (fetching) Data dari Memori
• Menyimpan (storing) Data ke Memori
• Pertukaran Data Antar-Register
• Operasi Aritmatika & Logika di Datapath
° Waktu Eksekusi
Gate Delay
- Waktu yang dibutuhkan output suatu gerbang logika
berubah sesuai kondisi inputnya
Register’s Delay
- Waktu yang dibutuhkan isi register berubah sesuai
inputnya
5
Mengambil Data dari
Memori
Read MFC
Instruksi:
LD R2,(R1) ; R2 ← M[R1] Instruction
PC
Decoder
Address
lines
MAR IR
Langkah-langkah:
Data
° MAR ← R1 lines
MDR R1
° Read
° Y
Tunggu sinyal MFC
// MFC = Memory Function Completed
// Pada saat MFC aktif: R2
// MDR ← M[MAR] Add
Sub
° R2 ← MDR ALU
XOR
Carry-in
Z TEMP
6
Menyimpan Data ke Memori
Write MFC
Instruksi:
ST (R1),R2 ; M[R1] ← R2 Instruction
PC
Decoder
Address
lines
MAR IR
Langkah-langkah:
Data
° MAR ← R1 lines
MDR R1
° MDR ← R2, Write
° Y
Tunggu sinyal MFC
// MFC = Memory Function Completed
// Pada saat MFC aktif: R2
// M[MAR] ← MDR Add
Sub
ALU
XOR
Carry-in
Z TEMP
7
Pengendalian Transfer Data
Dari/Ke Register
8
Pertukaran Data Antar-Register: Input & Output
Gating 1 bit line of common bus
S
Q
output:
1, 0, open-circuit
R _
Q
3-state
switch
operasi tulis &
Zin Zout
baca dilakukan
memungkinkan
secara bergantian
peranti lain
menggunakan bus
Operasi Tulis Operasi Baca
1-bit bus Zin Q Zout Q output
X 0 Q 0 X 3-state
0 1 0 1 1 1
1 1 1 1 0 0
9
Pertukaran Data Antar-Register
R1in Instruksi:
X
MOV R4,R1 ; R4 ← R1
R1
X
R1out
Langkah-langkah:
° Enable output of R1
// setting R1out to 1
R4in ° Enable input of R4
// setting R4in to 1
X
R4
X
R4out
10
Operasi Aritmatika dan
Logika
Riin
Instruksi:
X
ADD R1,R2 ; R1 ← R1 + R2
Ri
X
Riout
Yin Langkah-langkah:
X
° R1out, Yin
Y
° R2out, Add, Zin
X
Yout
° Zout, R1in
A B
ALU
Add X Zin
Z
X
Zout
11
Waktu Eksekusi
12
Waktu Eksekusi: Gate Delay
Voltage
Vout
1 => Vdd
In Out
Vin
0 => GND
Time
13
Waktu Eksekusi: Series Connection
Vdd Vdd
Vin V1 Vout
Vin V1 Vout
G1 G2 G1 G2
C1 Cout
Voltage
Vdd
Vin V1 Vout
Vdd/2
d1 d2
GND
Time
Clk
Setup Hold
D Q
D Don’t Care Don’t Care
Clock-to-Q
Q Unknown
Clk
15
Waktu Eksekusi
R2out, Add, Zin
Riin
X Turn-on time for 3-state driver
Ri
X
Riout
Transmission time
Yin
X
Y
A B
ALU
Setup time
Add X Zin
Hold time
Z
X
Zout
16
Langkah-langkah
Pengeksekusian Instruksi
17
Operasi (A&L): Bagian dari Pertukaran Data
Komponen-komponen Datapath:
• Register: tempat penyimpanan data
• ALU: tempat pemrosesan aritmatika & logika
• Bus: penghubung antar-register & antara register-ALU
Instruksi:
Add R1,(R3) ; R1 ← R1 + M[R3]
Langkah-langkah:
3. Fetch instruksi
• PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
• Zout, PCin, WMFC
• MDRout, IRin
4. Fetch operand #1 (isi lokasi memori yg ditunjuk oleh R3)
• R3out, MARin, Read
• R1out, Yin, WMFC
5. Lakukan operasi penjumlahan
• MDRout, Add, Zin
6. Simpan hasil penjumlahan di R1
• Zout, R1in, End
19
1. Fetch
• instruksi
PC , MAR
out , Read, Clear Y, Set carry-in to ALU, Add, Zin
in
• Zout, PCin, WMFC Control lines
• MDRout, IRin
Instruction
PC
Decoder
Address
lines
MAR IR
Data
lines
MDR R1
00000000
Y
R3
Add
1
ALU
PC+1 Carry-in
Z TEMP
20
2. Fetch operand
#1
• R3 , MAR , Read
out in
• R1out, Yin, WMFC
Instruction
PC=PC+1
Decoder
Address
lines
MAR IR
Data
lines
MDR R1
R3
ALU
Z TEMP
21
3. Lakukan operasi
penjumlahan
• MDRout, Add, Zin
Instruction
PC=PC+1
Decoder
Address
lines
MAR IR
Data
lines
MDR=M[R3] R1
Y=R1
R3
Add
ALU
Carry-in
Zin Z TEMP
22
4. Simpan hasil
penjumlahan
• Zout, R1in, End
Instruction
PC=PC+1
Decoder
Address
lines
MAR IR
Data
lines
MDR=M[R3] R1
Y=R1
R3
ALU
Z=R1+M[R3] TEMP
23
Tahapan Eksekusi “Branching”
25
Tahapan Eksekusi Instruksi: LD Rd,X
Instruksi:
LD R16,X ; R16 ← M[X]
Langkah-langkah:
3. Fetch instruksi
• PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
• Zout, PCin, WMFC
• MDRout, IRin
4. Fetch operand dari lokasi memori yang ditunjuk oleh X
• Xout, MARin, Read
• WMFC
° Lakukan operasi ALU
° Simpan hasil penjumlahan di R16
• MDRout, R16in, End
26
Tahapan Eksekusi Instruksi: LD Rd,X
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
Read
° MDRout, IRin
Instruction
PC
° Xout, MARin, Read Decoder
Address PCout
° WMFC lines
MAR IR
° MDRout, R16in, End
Data MARin
lines
MDR X
Clear Y
00000000
Y
R16
Add
1
ALU
Set
PC+1 Carry-in
Z TEMP
Zin
27
Tahapan Eksekusi Instruksi: LD Rd,X
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC WMFC
° MDRout, IRin
Instruction
PC
° Xout, MARin, Read Decoder
Address PCin
° WMFC lines
MAR IR
° MDRout, R16in, End
Data
lines
MDR X
R16
ALU
Z = PC+1 TEMP
Zout
28
Tahapan Eksekusi Instruksi: LD Rd,X
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
° MDRout, IRin
Instruction
PC+1
° Xout, MARin, Read Decoder
Address
° WMFC lines
MAR IR
° MDRout, R16in, End
Data IRin
lines
MDR X
MDRout
Y
R16
ALU
Z TEMP
29
Tahapan Eksekusi Instruksi: LD Rd,X
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
Read
° MDRout, IRin
Instruction
PC+1
° Xout, MARin, Read Decoder
Address
° WMFC lines
MAR IR
° MDRout, R16in, End
Data MARin
lines
MDR X
Xout
Y
R16
ALU
Z TEMP
30
Tahapan Eksekusi Instruksi: LD Rd,X
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
WMFC
° MDRout, IRin
Instruction
PC+1
° Xout, MARin, Read Decoder
Address
° WMFC lines
MAR IR
° MDRout, R16in, End
Data
lines
MDR X
R16
ALU
Z TEMP
31
Tahapan Eksekusi Instruksi: LD Rd,X
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
° MDRout, IRin
Instruction
PC+1
° Xout, MARin, Read Decoder
Address
° WMFC lines
MAR IR
° MDRout, R16in, End
Data
lines
MDR X
MDRout
Y
R16
R16in
ALU
Z TEMP
32
ADD Rd,Rs
33
Tahapan Eksekusi Instruksi: ADD Rd, Rs
Instruksi:
ADD R16,R17 ; R16 ← R16 + R17
Langkah-langkah:
3. Fetch instruksi
• PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
• Zout, PCin, WMFC
• MDRout, IRin
4. Fetch operand ke-1 (R16)
• R16out, Yin
5. Fetch operand ke-2 (R17) dan Lakukan operasi ALU
• R17out, Add, Zin
6. Simpan hasil penjumlahan di R16
• Zout, R16in, End
34
Tahapan Eksekusi Instruksi: ADD Rd, Rs
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
Read
° MDRout, IRin
Instruction
PC
° R16out, Yin Decoder
Address PCout
° R17out, Add, Zin lines
MAR IR
° Zout, R16in, End
Data MARin
lines
MDR R17
Clear Y
00000000
Y
R16
Add
1
ALU
Set
PC+1 Carry-in
Z TEMP
Zin
35
Tahapan Eksekusi Instruksi: ADD Rd, Rs
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC WMFC
° MDRout, IRin
Instruction
PC
° R16out, Yin Decoder
Address PCin
° R17out, Add, Zin lines
MAR IR
° Zout, R16in, End
Data
lines
MDR R17
R16
ALU
Z = PC+1 TEMP
Zout
36
Tahapan Eksekusi Instruksi: ADD Rd, Rs
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
° MDRout, IRin
Instruction
PC+1
° R16out, Yin Decoder
Address
° R17out, Add, Zin lines
MAR IR
° Zout, R16in, End
Data IRin
lines
MDR R17
MDRout
Y
R16
ALU
Z TEMP
37
Tahapan Eksekusi Instruksi: ADD Rd, Rs
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
° MDRout, IRin
Instruction
PC+1
° R16out, Yin Decoder
Address
° R17out, Add, Zin lines
MAR IR
° Zout, R16in, End
Data
lines
MDR R17
Yin Y
R16
R16out
ALU
Z TEMP
38
Tahapan Eksekusi Instruksi: ADD Rd, Rs
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
° MDRout, IRin
Instruction
PC+1
° R16out, Yin Decoder
Address
° R17out, Add, Zin lines
MAR IR
° Zout, R16in, End
Data
lines
MDR R17
R17out
Y=R16
R16
Add
ALU
Zin Z TEMP
39
Tahapan Eksekusi Instruksi: ADD Rd, Rs
° PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
Control lines
° Zout, PCin, WMFC
° MDRout, IRin
Instruction
PC+1
° R16out, Yin Decoder
Address
° R17out, Add, Zin lines
MAR IR
° Zout, R16in, End
Data
lines
MDR R17
Y=R16
R16
R16out
ALU
40
Peningkatan Kinerja Prosesor
41
Multiple-bus: salah satu cara peningkatan
kinerja
A B C
Instruction
Decoder
IR
PC
Register
File
Add R1,R2,R3 ;R1←R2+R3
TEMP
ALU
MDR
MAR
Data Address
lines lines
Memory Bus 42
Bandingkan dengan Organisasi Single-
bus
Instruction
PC
Decoder
MAR IR
MDR R1
Add R1,R2,R3 ;R1←R2+R3
R2
Y
R3
ALU
Z TEMP
43
Beberapa Teknik Peningkatan Kinerja Prosesor Lainnya
° Pre-fetching:
instruksi berikutnya (i+1) di-fetch pada waktu
pengeksekusian instruksi (i)
• Perlu teknik “Branch Prediction”
° Pipelining:
eksekusi instruksi dipecah kedalam tahap-tahap
yang dapat dilakukan secara “overlap”
• Fetch Instruksi
• Decode Instruksi
• Baca Operand (dari register asal)
• Lakukan Operasi
• Tulis Hasil (ke register tujuan)
° On-chip Cache:
mempercepat akses data dari/ke memori
44
Arsitektur Intel P6 (Pentium
Pro)
45
Arsitektur SPARCstation20
MBus Module
SuperSPARC
Floating-point Unit
L2 CC DRAM
Integer Unit $ MBus Controller
46