Anda di halaman 1dari 49

Desain Unit Pemrosesan

Mesin von Neumann


Konsep untuk memiliki sebuah program
yang tersimpan dalam memori komputer
Arsitektur dasar mesin ini masih menjadi
kerangka
referensi pada
komputer
modern

Mesin von Neumann

Mesin von Neumann


Program disimpan dalam unit memori utama, yang
berhadapan dengan piranti input/output (I/O) melalui unit
pengolahan pusat (CPU atau central processing unit)
CPU membaca dari atau menulis ke memori, pertamatama dengan mengirimkan alamat word ke unit memori
melalui bus adress dan kemudian menerima atau
mengirimkan data melalui bus data.
Data dipertukarkan antara CPU dan unit I/O juga
menggunakan data bus.
Operasi ini disinkronisasikan oleh dua bus control
dengan sinyal kendali yang dikirim oleh CPU dan sinyal
acknowledgement serta sinyal interupsi yang diterima
oleh CPU.

Prosesor: Control &


Datapath

Computer
Processor
(active)
Control

Datapath

Memory
(passive)
(dimana
program,
data ada
ketika
dijalankan)

Devices
Input

Output

Bagian Utama CPU


Kumpulan register / register set
Unit aritmatika dan logika (ALU /
Arithmetic and Logic Unit)
Unit kendali logika (CU / Control Unit)

Bagian Utama CPU


Kumpulan register menyimpan informasi
sementara
yang
diperlukan
untuk
melaksanakan sebuah instruksi atau
kumpulan instruksi / program
ALU
menggunakan
nilai-nilai
yang
tersimpan dalam kumpulan register untuk
melakukan operasi aritmatika dan logika

Bagian Utama CPU


CU mengendalikan sistem dalam dua
cara:
Dengan mengarahkan transfer ke dan dari
register baik ke maupun dari memori, ALU
dan register lainnya
Dengan memerintahkan ALU ke operasi yang
akan dijalankan

Bagian Utama CPU

Kumpulan Register
Register dari sebuah komputer secara
kolektif disebut sebagai kumpulan register
/ register set
Beberapa register mungkin mempunyai
jenis yang sama, yang lainnya mungkin
berbeda
Beberapa register berlaku umum pada
hampir semua komputer

Register Program Counter


Menyimpan alamat memori dari instruksi selanjutnya
yang akan dijalankan
Pelaksanaan sebuah program biasanya dilakukan
berurutan, maka alamat instruksi berikutnya bernilai 1
lebih tinggi daripada alamat dari instruksi saat ini.
PC (PC)+1
Jika suatu jump atau cabang instruksi dijalankan,
instruksi yang akan dilaksanakan berikutnya disimpan
pada alamat yang ditentukan dalam cabang instruksi.
Dalam hal ini, kita ingin me-load langsung alamat baru
ke PC :
PC bagian alamat dari instruksi cabang

Register Instruksi
Register khusus untuk menyimpan instruksi
Pertama, instruksi di-fetch dari memori dan disimpan
dalam IR kemudian PC ditingkatkan sehingga ia
menunjuk ke instruksi berikutnya
IR M[PC]
PC (PC)+1
M[PC] menunjukkan isi lokasi memori yang ditunjuk oleh
PC.
Sekali instruksi disimpan dalam IR, maka instruksi
tersebut dapat di-decode oleh Control Unit (CU) dan
operasi mikro dapat diaktifkan untuk pelaksanaannya

Register Umum
Untuk menyimpan nilai-nilai sementara
selama pelaksanaan instruksi
Sebuah komputer memiliki sebuah
register prosesor untuk pelaksanaan
instruksi-instruksi, disebut Accumulator
(ACC)

Register Flag
Mengendalikan aliran pelaksanaan pada
CU dan ALU

Organisasi Prosesor (single bus)


Control lines

Address
lines
Memory
bus

Data
lines

PC

Instruction
Decoder

MAR

IR

MDR

R0

Control
Unit

Y
R(n-1)
ALU
control
lines

Add
Sub

ALU
XOR

Carry-in

TEMP

Datapath
Unit

Operasi Dasar Prosesor


Operasi-operasi Dasar:
Mengambil (fetching) Data dari Memori
Menyimpan (storing) Data ke Memori
Pertukaran Data Antar-Register
Operasi Aritmatika & Logika di Datapath

Siklus Eksekusi Program


CPU mem-fetch instruksi berikutnya dari memori
CPU men-decode instruksi
Berdasarkan instruksi, CPU mengeluarkan
sinyal kendali untuk mem-fetch operand lainnya
jika diperlukan dan kemudian akan
melaksanakan salah satu tindakan berikut ini :
Melakukan operasi aritmatika atau logika
Menyimpan sebuah hasil ke dalam memori
Membaca sebuah hasil dari atau menuliskan hasil ke
piranti I/O

CPU kembali ke langkah pertama dan


melanjutkan proses hingga program
diberhentikan

Siklus Eksekusi Program


1. IR M[PC]
2. PC PC + d

// Fetch instruksi
// Tunjuk ke lokasi instruksi

berikutnya
3. Eksekusi instruksi

Mengambil Data dari


Memori

Read

MFC

Instruksi:
LD R2,(R1) ; R2 M[R1]
Address
lines

Langkah-langkah:
1.

MAR R1

2.

Read

3.

Tunggu sinyal MFC

4.

Data
lines

PC

Instruction
Decoder

MAR

IR

MDR

R1

// MFC = Memory Function Completed


// Pada saat MFC aktif:
Add
// MDR M[MAR]

R2 MDR

R2

Sub

ALU
XOR

Carry-in

TEMP

19

Menyimpan Data ke Memori


Write

MFC

Instruksi:
ST (R1),R2 ; M[R1] R2
Address
lines

Langkah-langkah:
1.

MAR R1

2.

MDR R2, Write

3.

Tunggu sinyal MFC

Data
lines

PC

Instruction
Decoder

MAR

IR

MDR

R1

// MFC = Memory Function Completed


// Pada saat MFC aktif:
Add
// M[MAR] MDR

R2

Sub

ALU
XOR

Carry-in

TEMP

20

Pertukaran Data Antar-Register


R1in

Instruksi:
MOV R4,R1

; R4 R1

R1
X

Langkah-langkah:

R1out

R4in
X

1.

Enable output of R1

2.

Enable input of R4

// setting R1out to 1
// setting R4in to 1

R4
X
R4out

21

Operasi Aritmatika dan Logika


Riin
X

Instruksi:
ADD R1,R2

Ri

; R1 R1 + R2

X
Riout
Yin
X
Y
X
Yout

Langkah-langkah:
1.

R1out, Yin

2.

R2out, Add, Zin

3.

Zout, R1in

ALU
Add

Zin

Z
X
Zout

22

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.)

23

Tahapan Eksekusi Instruksi


Instruksi:
Add

R1,(R3)

; R1 R1 + M[R3]

Langkah-langkah:
1.

Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin

2.

Fetch operand #1 (isi lokasi memori yg ditunjuk oleh R3)


4. R3out, MARin, Read
5. R1out, Yin, WMFC

3.

Lakukan operasi penjumlahan


6. MDRout, Add, Zin

4.

Simpan hasil penjumlahan di R1


7. Zout, R1in, End
24

1. Fetch
1.instruksi
PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2.
3.

Zout, PCin, WMFC


MDRout, IRin

Address
lines
Data
lines

Control lines

PC

Instruction
Decoder

MAR

IR

MDR

R1

00000000
Y
R3
Add

ALU

PC+1 Carry-in
Z

TEMP

25

2. Fetch operand
#1
4.
R3out, MARin, Read
5.

R1out, Yin, WMFC

Address
lines
Data
lines

PC=PC+1

Instruction
Decoder

MAR

IR

MDR

R1

Y
R3

ALU
Z

TEMP

26

3. Lakukan operasi
penjumlahan

6.

MDRout, Add, Zin

Address
lines
Data
lines

PC=PC+1

Instruction
Decoder

MAR

IR

MDR=M[R3]

R1

Y=R1
R3
Add

ALU
Carry-in
Zin

TEMP

27

4. Simpan hasil
penjumlahan

7.

Zout, R1in, End

Address
lines
Data
lines

PC=PC+1

Instruction
Decoder

MAR

IR

MDR=M[R3]

R1

Y=R1
R3

ALU
Z=R1+M[R3]

TEMP

28

Tahapan Eksekusi Branching


Unconditional (JMP Loop)
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. PCout, Yin
5. Offset-field-of-IRout, Add, Zin

// PC PC + Offset

6. Zout, PCin, End

Conditional (contoh: BRNeg Loop)


1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. PCout, Yin , If N=0 then End

// take the branch?

5. Offset-field-of-IRout, Add, Zin

// PC PC + Offset

6. Zout, PCin, End


29

LD

Rd,X

30

Tahapan Eksekusi Instruksi: LD Rd,X


Instruksi:
LD R16,X

; R16 M[X]

Langkah-langkah:
1.

Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin

2.

Fetch operand dari lokasi memori yang ditunjuk oleh X


4. Xout, MARin, Read
5. WMFC

3.

Lakukan operasi ALU

4.

Simpan hasil penjumlahan di R16


6. MDRout, R16in, End
31

Tahapan Eksekusi Instruksi: LD Rd,X


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

Xout, MARin, Read

5.

WMFC

6.

MDRout, R16in, End

Control lines
Read

Instruction
Decoder

PC
Address
lines
Data
lines

Clear Y

PCout

MAR

IR

MARin

MDR

00000000
Y
R16

Add

ALU

1
Set

PC+1 Carry-in
Z

TEMP

Zin
32

Tahapan Eksekusi Instruksi: LD Rd,X


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

Xout, MARin, Read

5.

WMFC

6.

MDRout, R16in, End

Control lines
WMFC

PC
Address
lines
Data
lines

Instruction
Decoder

PCin

MAR

IR

MDR

Y
R16

ALU
Z = PC+1

TEMP

Zout
33

Tahapan Eksekusi Instruksi: LD Rd,X


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

Xout, MARin, Read

5.

WMFC

6.

MDRout, R16in, End

Address
lines
Data
lines

Control lines

PC+1

Instruction
Decoder

MAR

IR
IRin

MDR

MDRout

Y
R16

ALU
Z

TEMP

34

Tahapan Eksekusi Instruksi: LD Rd,X


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

Xout, MARin, Read

5.

WMFC

6.

MDRout, R16in, End

Control lines
Read

Address
lines
Data
lines

PC+1

Instruction
Decoder

MAR

IR

MARin

MDR

X
Xout

Y
R16

ALU
Z

TEMP

35

Tahapan Eksekusi Instruksi: LD Rd,X


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

Xout, MARin, Read

5.

WMFC

6.

MDRout, R16in, End

Control lines
WMFC

Address
lines
Data
lines

PC+1

Instruction
Decoder

MAR

IR

MDR

Y
R16

ALU
Z

TEMP

36

Tahapan Eksekusi Instruksi: LD Rd,X


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

Xout, MARin, Read

5.

WMFC

6.

MDRout, R16in, End

Address
lines
Data
lines

Control lines

PC+1

Instruction
Decoder

MAR

IR

MDR

MDRout

Y
R16
R16in

ALU
Z

TEMP

37

ADD Rd,Rs

38

Tahapan Eksekusi Instruksi: ADD Rd, Rs


Instruksi:
ADD

R16,R17

; R16 R16 + R17

Langkah-langkah:
1.

Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin

2.

Fetch operand ke-1 (R16)


4. R16out, Yin

3.

Fetch operand ke-2 (R17) dan Lakukan operasi ALU


5. R17out, Add, Zin

4.

Simpan hasil penjumlahan di R16


6. Zout, R16in, End
39

Tahapan Eksekusi Instruksi: ADD Rd, Rs


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

R16out, Yin

5.

R17out, Add, Zin

6.

Zout, R16in, End

Control lines
Read

Instruction
Decoder

PC
Address
lines
Data
lines

Clear Y

PCout

MAR

IR

MARin

MDR

R17

00000000
Y
R16

Add

ALU

1
Set

PC+1 Carry-in
Z

TEMP

Zin
40

Tahapan Eksekusi Instruksi: ADD Rd, Rs


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

R16out, Yin

5.

R17out, Add, Zin

6.

Zout, R16in, End

Control lines
WMFC

PC
Address
lines
Data
lines

Instruction
Decoder

PCin

MAR

IR

MDR

R17

Y
R16

ALU
Z = PC+1

TEMP

Zout
41

Tahapan Eksekusi Instruksi: ADD Rd, Rs


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

R16out, Yin

5.

R17out, Add, Zin

6.

Zout, R16in, End

Address
lines
Data
lines

Control lines

PC+1

Instruction
Decoder

MAR

IR
IRin

MDR

R17

MDRout

Y
R16

ALU
Z

TEMP

42

Tahapan Eksekusi Instruksi: ADD Rd, Rs


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

R16out, Yin

5.

R17out, Add, Zin

6.

Zout, R16in, End

Address
lines
Data
lines

Yin

Control lines

PC+1

Instruction
Decoder

MAR

IR

MDR

R17

Y
R16
R16out

ALU
Z

TEMP

43

Tahapan Eksekusi Instruksi: ADD Rd, Rs


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

R16out, Yin

5.

R17out, Add, Zin

6.

Zout, R16in, End

Address
lines
Data
lines

Control lines

PC+1

Instruction
Decoder

MAR

IR

MDR

R17
R17out

Y=R16
R16
Add

Zin

ALU
Z

TEMP

44

Tahapan Eksekusi Instruksi: ADD Rd, Rs


1.

PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin

2.

Zout, PCin, WMFC

3.

MDRout, IRin

4.

R16out, Yin

5.

R17out, Add, Zin

6.

Zout, R16in, End

Address
lines
Data
lines

Control lines

PC+1

Instruction
Decoder

MAR

IR

MDR

R17

Y=R16
R16
R16out

ALU
Zout

Z=R16+R17

TEMP

45

Peningkatan Kinerja Prosesor

46

Multiple-bus: salah satu cara peningkatan


kinerja
A
C
B
Instruction
Decoder
IR
PC
Register
File

Add R1,R2,R3 ;R1R2+R3

ALU

TEMP

MDR
MAR
Data
lines

Address
lines

Memory Bus

47

Bandingkan dengan Organisasi Singlebus


PC

Instruction
Decoder

MAR

IR

MDR

R1

Add R1,R2,R3 ;R1R2+R3


Y

R2
R3

ALU
Z

TEMP

48

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
49

Anda mungkin juga menyukai