Anda di halaman 1dari 46

°PROSESOR:

CONTROL DAN DATAPATH

Oky Dwi Nurhayati, ST, MT


email: okydn@undip.ac.id

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)

Eksekusi instruksi yang ukurannya bervariasi


do {
do { // Fetch instruksi
IR ← M[PC]
PC ← PC + d
} while (!end-of-instruction)
Eksekusi instruksi
} while (!stop)
4
Operasi-operasi Dasar & Waktu Eksekusi

° 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

° When input 0 → 1, output 1 → 0 but NOT instantly


• Output goes 1 → 0: output voltage goes from Vdd (5v) to 0v

° When input 1 → 0, output 0 → 1 but NOT instantly


• Output goes 0 → 1: output voltage goes from 0v to Vdd (5v)

° Voltage does not like to change instantaneously

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

° Total Propagation Delay = Sum of individual delays =


d1 + d2
° Capacitance C1 has two components:
• Capacitance of the wire connecting the two gates
• Input capacitance of the second inverter
14
Waktu Eksekusi: Register’s Delay

Clk
Setup Hold
D Q
D Don’t Care Don’t Care

Clock-to-Q
Q Unknown
Clk

° Setup Time: Input must be stable BEFORE the trigger


clock edge
° Hold Time: Input must REMAIN stable after the trigger
clock edge
° Clock-to-Q time:
• Output cannot change instantaneously at the trigger clock edge

15
Waktu Eksekusi
R2out, Add, Zin
Riin
X Turn-on time for 3-state driver
Ri
X
Riout
Transmission time
Yin
X
Y

X Propagation delay through ALU


Yout

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

° Eksekusi Instruksi merupakan kombinasi pertukaran


data antara:
• Register ↔ Bus ↔ Register
• Register ↔ Bus ↔ ALU
• Register ↔ Bus ↔ Memori

° Pertukaran data dilakukan dengan cara


mengaktifkan gerbang-gerbang register dengan
menggunakan sinyal-sinyal kendali (PCout, PCin, dst.)
• Selain itu, juga ada sinyal-sinyal kendali yang berhubungan
dengan komponen-komponen lain (Memori: Read, Write; ALU:
Add, Sub, Set Carry-in, dst.) 18
Tahapan Eksekusi Instruksi

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”

Unconditional (JMP Loop)


• PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
• Zout, PCin, WMFC
• MDRout, IRin
• PCout, Yin
• Offset-field-of-IRout, Add, Zin // PC ← PC + Offset
• Zout, PCin, End

Conditional (contoh: BRNeg Loop)


• PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
• Zout, PCin, WMFC
• MDRout, IRin
• PCout, Yin , If N=0 then End // take the branch?
• Offset-field-of-IRout, Add, Zin // PC ← PC + Offset
• Zout, PCin, End
24
LD Rd,X

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

Zout Z=R16+R17 TEMP

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

° TI SuperSPARCtm TMS390Z50 in Sun SPARCstation20

MBus Module
SuperSPARC

Floating-point Unit
L2 CC DRAM
Integer Unit $ MBus Controller

Inst Ref Data L64852 MBus control


M-S Adapter STDIO
Cache MMU Cache
SBus serial
Store SCSI kbd
SBus mouse
Buffer DMA Ethernet audio
RTC
Bus Interface SBus Boot PROM
Cards Floppy

46

Anda mungkin juga menyukai