Struktur

Struktur
dan
dan
Fungsi
Fungsi
CPU
CPU
Pertemuan
Pertemuan
9
9
Politeknik Elektronika Negeri Surabaya - ITS
2005
Oleh
Oleh
:
:
Riyanto
Riyanto
Sigit
Sigit
, S.T,
, S.T,
M.Kom
M.Kom
Nur
Nur
Rosyid
Rosyid
Mubtada'i
Mubtada'i
S.Kom
S.Kom
Setiawardhana
Setiawardhana
, S.T
, S.T
Hero
Hero
Yudo
Yudo
Martono
Martono
, S.T
, S.T
Tujuan
Tujuan

Nengerti
Nengerti
struktur
struktur
dan
dan
Fungsi
Fungsi
CPU
CPU
yaitu
yaitu
dapat
dapat
melakukan
melakukan
Fech
Fech
!nstruksi
!nstruksi
, !nterpreter
, !nterpreter
instuksi
instuksi
,
,
Fech
Fech
data,
data,
exekusi
exekusi
,
,
dan
dan
menyimpan
menyimpan
kembali
kembali
.
.
Serta
Serta
struktur
struktur
dari
dari
register
register
macam
macam
-
-
macam
macam
register
register
dan
dan
fungsinya
fungsinya

Nengerti
Nengerti
aliran
aliran
data
data
pada
pada
siklus
siklus
pengambilan
pengambilan
,
,
siklus
siklus
tak
tak
langsung
langsung
,
,
siklus
siklus
interupt
interupt
,
,
Nengerti
Nengerti
pipelining,
pipelining,
dan
dan
mengerti
mengerti
teknik
teknik
-
-
teknik
teknik
menangani
menangani
percabangan
percabangan
pada
pada
pipelining
pipelining
Nateri
Nateri

Bagian
Bagian
ini
ini
membahas
membahas
aspek
aspek
-
-
aspek
aspek
struktur
struktur
dan
dan
fungsi
fungsi
CPU
CPU
untuk
untuk
dasar
dasar
pembahasan
pembahasan
bab
bab
berikutnya
berikutnya
,
,
yaitu
yaitu
R!SC.
R!SC.

Fokus
Fokus
bab
bab
struktur
struktur
dan
dan
fungsi
fungsi
CPU
CPU
adalah
adalah
organisasi
organisasi
prosesor
prosesor
dan
dan
register,
register,
siklus
siklus
instruksi
instruksi
dan
dan
strategi
strategi
dalam
dalam
metode
metode
pipelining
pipelining
4.3.
4.3.
Siklus
Siklus
Instruksi
Instruksi

Ada
Ada
beberapa
beberapa
sub
sub
-
-
siklus
siklus

Apa
Apa
saja
saja
?
?
Sub
Sub
-
-
siklus
siklus
instruksi
instruksi

Fetch
Fetch
-
-
Adalah
Adalah
siklus
siklus
pengambilan
pengambilan
data
data
ke
ke
memori
memori
atau
atau
register
register

Execute
Execute
-
-
Nenginterpretasikan
Nenginterpretasikan
opcode
opcode
dan
dan
melakukan
melakukan
operasi
operasi
yang
yang
diindikasikan
diindikasikan

!nterrupt
!nterrupt
-
-
Apabila
Apabila
interrupt
interrupt
diaktifkan
diaktifkan
dan
dan
interrupt
interrupt
telah
telah
terjadi
terjadi
,
,
simpan
simpan
status
status
proses
proses
saat
saat
itu
itu
dan
dan
layani
layani
interupsi
interupsi
Siklus
Siklus
Tidak
Tidak
Langsung
Langsung
,
,
Apa
Apa
itu
itu
?
?

Eksekusi
Eksekusi
sebuah
sebuah
instruksi
instruksi
melibatkan
melibatkan
sebuah
sebuah
operand
operand
atau
atau
lebih
lebih
di
di
dalam
dalam
memori
memori
, yang
, yang
masing
masing
-
-
masing
masing
operand
operand
memerlukan
memerlukan
akses
akses
memori
memori

Pengambilan
Pengambilan
alamat
alamat
-
-
alamat
alamat
tak
tak
langsung
langsung
dapat
dapat
dianggap
dianggap
sebagai
sebagai
sebuah
sebuah
subsiklus
subsiklus
instruksi
instruksi
atau
atau
lebih
lebih
Siklus
Siklus
instruksi
instruksi

Apakah
Apakah
ada
ada
cara
cara
pandang
pandang
yang lain ?
yang lain ?
-
-
ADA
ADA

Bagaimana
Bagaimana
?
?
Sifat
Sifat
siklus
siklus
instruksi
instruksi

Sekali
Sekali
instruksi
instruksi
telah
telah
diambil
diambil
,
,
maka
maka
operand
operand
specifier
specifier
-
-
nya
nya
harus
harus
diidentifikasikan
diidentifikasikan
.
.

Kemudian
Kemudian
seluruh
seluruh
operand input yang
operand input yang
berada
berada
di
di
dalam
dalam
memori
memori
akan
akan
diambil
diambil
,
,
dan
dan
proses
proses
ini
ini
mungkin
mungkin
memerlukan
memerlukan
pengalamatan
pengalamatan
tak
tak
langsung
langsung
.
.

Operand
Operand
berbasis
berbasis
register
register
tidak
tidak
perlu
perlu
diambil
diambil
.
.

Apabila
Apabila
opcode
opcode
telah
telah
dieksekusi
dieksekusi
,
,
proses
proses
yang
yang
sama
sama
akan
akan
diperlukan
diperlukan
untuk
untuk
menyimpan
menyimpan
hasilnya
hasilnya
di
di
dalam
dalam
memori
memori
Diagram status
Diagram status
siklus
siklus
instruksi
instruksi
Aliran
Aliran
data
data
siklus
siklus
pengambilan
pengambilan
÷ ÷ Urutan Urutan kejadian kejadian selama selama siklus siklus instruksi instruksi
tergantung tergantung pada pada rancangan rancangan CPU. CPU.
÷ ÷ Asumsi Asumsi: : sebuah sebuah CPU yang CPU yang menggunakan menggunakan
register register memori memori alamat alamat (MAR), register (MAR), register memori memori
buffer (MBR), buffer (MBR), pencacah pencacah program (PC), program (PC), dan dan
register register instruksi instruksi (ÌR). (ÌR).
Prosesnya Prosesnya : :
÷ ÷ Pada Pada saat saat siklus siklus pengambilan pengambilan (fetch cycle), (fetch cycle),
instruksi instruksi dibaca dibaca dari dari memori memori. .
÷ ÷ PC PC berisi berisi alamat alamat instruksi instruksi berikutnya berikutnya yang yang akan akan
diambil diambil. .
÷ ÷ Alamat Alamat ini ini dipindahkan dipindahkan ke ke MAR MAR dan dan ditaruh ditaruh di di
bus bus alamat alamat. .
÷ ÷ Unit Unit kontrol kontrol meminta meminta pembacaan pembacaan memori memori dan dan
hasinya hasinya disimpan disimpan di di bus data bus data dan dan disalin disalin ke ke MBR MBR
dan dan kemudian kemudian dipindahkan dipindahkan ke ke ÌR. ÌR.
÷ ÷ PC PC naik naik nilainya nilainya 1, 1, sebaai sebaai persiapan persiapan untuk untuk
pengambilan pengambilan selanjutnya selanjutnya. .
÷ ÷ siklus siklus selesai selesai, unit , unit kontrol kontrol memeriksa memeriksa isi isi ÌR ÌR untuk untuk
menentukan menentukan apakah apakah ÌR ÌR berisi berisi operand operand specifier specifier
yang yang menggunakan menggunakan pengalamatan pengalamatan tak tak langsung langsung
Aliran
Aliran
data
data
siklus
siklus
tak
tak
langsung
langsung
N bit paling N bit paling kanan kanan pada pada MBR, yang MBR, yang berisi berisi
referensi referensi alamat alamat, , dipindahkan dipindahkan ke ke MAR. MAR.
Unit Unit kontrol kontrol meminta meminta pembacaan pembacaan memori memori, ,
agar agar mendapatkan mendapatkan alamat alamat operand yang operand yang
diinginkan diinginkan ke ke dalam dalam MBR MBR
Siklus Siklus pengambilan pengambilan dan dan siklus siklus tak tak
langsung langsung cukup cukup sederhana sederhana dan dan dapat dapat
diramalkan diramalkan. .
Siklus Siklus instruksi instruksi (instruction cycle) (instruction cycle)
mengambil mengambil banyak banyak bentuk bentuk karena karena bentuk bentuk
bergantung bergantung pada pada bermacam bermacam- -macam macam
instruksi instruksi mesin mesin yang yang terdapat terdapat di di dalam dalam ÌR. ÌR.
Siklus Siklus meliputi meliputi pemindahan pemindahan data data di di antara antara
register register- -register, register, pembacaan pembacaan atau atau
penulisan penulisan dari dari memori memori atau atau Ì/O, Ì/O, dan dan atau atau
penggunaan penggunaan ALU ALU
Aliran
Aliran
data
data
siklus
siklus
interupsi
interupsi
Ìsi Ìsi PC PC saat saat itu itu harus harus disimpan disimpan
sehingga sehingga CPU CPU dapat dapat melanjutkan melanjutkan
aktivitas aktivitas normal normal setelah setelah terjadinya terjadinya
interrupt. interrupt.
Cara: Cara: isi isi PC PC dipindahkan dipindahkan ke ke MBR MBR
untuk untuk kemudian kemudian dituliskan dituliskan ke ke dalam dalam
memori memori. .
Lokasi Lokasi memori memori khusus khusus yang yang
dicadangkan dicadangkan untuk untuk keperluan keperluan ini ini
dimuatkan dimuatkan ke ke MAR MAR dari dari unit unit kontrol kontrol. .
Lokasi Lokasi ini ini berupa berupa stack pointer. stack pointer.
PC PC dimuatkan dimuatkan dengan dengan alamat alamat rutin rutin
interrupt. interrupt.
Akibatnya Akibatnya, , siklus siklus instruksi instruksi berikutnya berikutnya
akan akan mulai mulai mengambil mengambil instruksi instruksi yang yang
sesuai sesuai
+.+.
+.+.
Strategi
Strategi
Pipelining
Pipelining

Pipelining,
Pipelining,
Apa
Apa
itu
itu
?
?
÷
÷
Ìnput
Ìnput
baru
baru
akan
akan
diterima
diterima
pada
pada
sebuah
sebuah
sisi
sisi
sebelum
sebelum
input yang
input yang
diterima
diterima
sebelumnya
sebelumnya
keluar
keluar
sebagai
sebagai
output
output
di
di
sisi
sisi
lainnya
lainnya

Pendekatan
Pendekatan
:
:
÷
÷
Pipelining
Pipelining
instruksi
instruksi
mirip
mirip
dengan
dengan
penggunaan
penggunaan
rangkaian
rangkaian
perakitan
perakitan
pada
pada
pabrik
pabrik
.
.
÷
÷
Rangkaian
Rangkaian
perakitan
perakitan
memanfaatkan
memanfaatkan
kelebihan
kelebihan
yang
yang
didapat
didapat
dari
dari
fakta
fakta
bahwa
bahwa
suatu
suatu
produk
produk
diperoleh
diperoleh
dengan
dengan
melalui
melalui
berbagai
berbagai
tahapan
tahapan
produksi
produksi
.
.
÷
÷
Dengan
Dengan
menaruh
menaruh
proses
proses
produksi
produksi
di
di
luar
luar
rangkaian
rangkaian
perakitan
perakitan
,
,
maka
maka
produk
produk
yang
yang
berada
berada
diberbagai
diberbagai
tahapan
tahapan
dapat
dapat
bekerja
bekerja
secara
secara
bersamaan
bersamaan
.
.
Pipeline
Pipeline
instruksi
instruksi
dua
dua
tahap
tahap
Pipeline ?
Pipeline ?
Pengolahan
Pengolahan
instruksi
instruksi
1. 1.
Pengambilan
Pengambilan
instruksi
instruksi
2. 2.
Pengeksekusian
Pengeksekusian
instruksi
instruksi
.
.

Terdapat
Terdapat
waktu
waktu
yang
yang
dibutuhkan
dibutuhkan
selama
selama
proses
proses
eksekusi
eksekusi
sebuah
sebuah
instruksi
instruksi
pada
pada
saat
saat
memori
memori
sedang
sedang
tidak
tidak
diakses
diakses
.
.

Waktu
Waktu
ini
ini
dapat
dapat
digunakan
digunakan
untuk
untuk
mengambil
mengambil
instruksi
instruksi
berikutnya
berikutnya
secara
secara
paralel
paralel
(
(
bersamaan
bersamaan
)
)
dengan
dengan
eksekusi
eksekusi
instruksi
instruksi
saat
saat
itu
itu
Tahapan
Tahapan
Pipeline
Pipeline

Tahapannya
Tahapannya
!ndependen
!ndependen

Nengapa
Nengapa
?
?
-
-
Tiap
Tiap
tahapan
tahapan
bekerja
bekerja
sendiri
sendiri
-
-
Kedua
Kedua
bekerja
bekerja
dalam
dalam
waktu
waktu
yang
yang
bersamaan
bersamaan

Ada
Ada
berapa
berapa
?
?

Ada
Ada
2
2
tahap
tahap

Tahapan
Tahapan
pertama
pertama
mengambil
mengambil
instruksi
instruksi
dan
dan
mem
mem
-
-
buffer
buffer
-
-
kannya
kannya
.
.

Ketika
Ketika
tahapan
tahapan
kedua
kedua
bebas
bebas
,
,
tahapan
tahapan
pertama
pertama
mengirimkan
mengirimkan
instruksi
instruksi
yang
yang
di
di
-
-
buffer
buffer
-
-
kan
kan
tersebut
tersebut
.
.

Pada
Pada
saat
saat
tahapan
tahapan
kedua
kedua
sedang
sedang
mengeksekusi
mengeksekusi
instruksi
instruksi
,
,
tahapan
tahapan
pertama
pertama
memanfaatkan
memanfaatkan
siklus
siklus
memori
memori
yang
yang
tidak
tidak
dipakai
dipakai
untuk
untuk
mengambil
mengambil
dan
dan
membufferkan
membufferkan
instruksi
instruksi
berikutnya
berikutnya
.
.
÷
÷
Proses
Proses
ini
ini
disebut
disebut
instruction
instruction
prefetch
prefetch
atau
atau
fetch
fetch
overlap
overlap
Efek
Efek
Pipeline
Pipeline

Mempercepat
Mempercepat
eksekusi
eksekusi
instruksi
instruksi
.
.

Apabila
Apabila
tahapan
tahapan
pengambilan
pengambilan
dan
dan
eksekusi
eksekusi
instruksi
instruksi
memerlukan
memerlukan
waktu
waktu
yang
yang
sama,
sama,
maka
maka
siklus
siklus
instruksi
instruksi
akan
akan
berkurang
berkurang
menjadi
menjadi
separuhnya
separuhnya

Penggandaan
Penggandaan
kecepatan
kecepatan
eksekusi
eksekusi
tidak
tidak
akan
akan
terjadi
terjadi
apabila
apabila
beberapa
beberapa
hal
hal
terjadi
terjadi

Apa
Apa
saja
saja
alasannya
alasannya
?
?

Bagaimana
Bagaimana
mengatasinya
mengatasinya
?
?
Alasan
Alasan
?
?

Umumnya
Umumnya
waktu
waktu
eksekusi
eksekusi
akan
akan
lebih
lebih
lama
lama
dibandingkan
dibandingkan
dengan
dengan
pengambilan
pengambilan
instruksi
instruksi
.
.
Kenapa
Kenapa
?
?
÷ ÷ Eksekusi Eksekusi akan akan meliputi meliputi pembacaan pembacaan dan dan penyimpanan penyimpanan operand operand
serta serta kinerja kinerja sejumlah sejumlah operasi operasi sehingga sehingga tahapan tahapan pengambilan pengambilan
mungkin mungkin perlu perlu menunggu menunggu beberapa beberapa saat saat sebelum sebelum
mengosongkan mengosongkan buffer buffer- -nya nya

Ìnstruksi
Ìnstruksi
pencabangan
pencabangan
bersyarat
bersyarat
akan
akan
membuat
membuat
alamat
alamat
instruksi
instruksi
berikutnya
berikutnya
yang
yang
akan
akan
diambil
diambil
tidak
tidak
diketahui
diketahui
.
.
÷ ÷ Tahapan Tahapan pengambilan pengambilan harus harus menunggu menunggu sampai sampai menerima menerima
alamat alamat instruksi instruksi berikutnya berikutnya dari dari tahapan tahapan eksekusi eksekusi. . Dengan Dengan
demikian demikian tahapan tahapan eksekusi eksekusi harus harus menunggu menunggu pada pada saat saat fetch fetch
Solusi
Solusi

Kerugian
Kerugian
waktu
waktu
yang
yang
diakibatkan
diakibatkan
tahapan
tahapan
kedua
kedua
dapat
dapat
dikurangi
dikurangi
dengan
dengan
cara
cara
:
:
Menebak
Menebak
=
=
Prediksi
Prediksi
Aturan
Aturan
Prediksi
Prediksi
?
?

Aturannya
Aturannya
sederhana
sederhana
÷
÷
Ìnstruksi
Ìnstruksi
pencabangan
pencabangan
bersyarat
bersyarat
dikirimkan
dikirimkan
dari
dari
tahapan
tahapan
pengambilan
pengambilan
ke
ke
tahapan
tahapan
eksekusi
eksekusi
,
,
tahapan
tahapan
pengambilan
pengambilan
mengambil
mengambil
instruksi
instruksi
berikutnya
berikutnya
di
di
dalam
dalam
memori
memori
setelah
setelah
terjadinya
terjadinya
instruksi
instruksi
pencabangan
pencabangan
itu
itu
.
.
÷
÷
Apabila
Apabila
pencabangan
pencabangan
tidak
tidak
dilakukan
dilakukan
,
,
maka
maka
tidak
tidak
akan
akan
terdapat
terdapat
watu
watu
yang
yang
hilang
hilang
.
.
÷
÷
Apabila
Apabila
pencabangan
pencabangan
dilakukan
dilakukan
,
,
instruksi
instruksi
yang
yang
diambil
diambil
harus
harus
dibuang
dibuang
dan
dan
instruksi
instruksi
yang
yang
baru
baru
harus
harus
diambil
diambil

Faktor
Faktor
-
-
faktor
faktor
di
di
atas
atas
mengurangi
mengurangi
efektivitas
efektivitas
pipeline
pipeline
dua
dua
tahap
tahap
,
,
namun
namun
terjadi
terjadi
juga
juga
beberapa
beberapa
percepatan
percepatan
.
.

Untuk
Untuk
memperoleh
memperoleh
percepatan
percepatan
lebih
lebih
lanjut
lanjut
, pipeline
, pipeline
harus
harus
memiliki
memiliki
lebih
lebih
banyak
banyak
tahapan
tahapan
Dekomposisi
Dekomposisi
pengolahan
pengolahan
instruksi
instruksi

Fetch Ìnstruction (FÌ)
Fetch Ìnstruction (FÌ)
÷ ÷ membaca membaca instruksi instruksi berikutnya berikutnya ke ke dalam dalam buffer buffer

Decode Ìnstruction (DÌ)
Decode Ìnstruction (DÌ)
÷ ÷ menentukan menentukan opcode opcode dan dan operand operand specifier specifier

Calculate Operand (CO)
Calculate Operand (CO)
÷ ÷ menghitung menghitung alamat alamat efektif efektif seluruh seluruh operand operand sumber sumber. Hal . Hal ini ini
mungkin mungkin melibatkan melibatkan displacement, register indirect, displacement, register indirect, atau atau bentuk bentuk
kalkulasi kalkulasi alamat alamat lainnya lainnya

Fetch Operand (FO)
Fetch Operand (FO)
÷ ÷ mengambil mengambil semua semua operand operand dari dari memori memori. Operand . Operand- -operand yang operand yang
berada berada di di register register tidak tidak perlu perlu diambil diambil

Execute Ìnstruction (EÌ)
Execute Ìnstruction (EÌ)
÷ ÷ melakukan melakukan operasi operasi yang yang diindikasikan diindikasikan dan dan menyimpan menyimpan hasilnya hasilnya

Write Operand (WO)
Write Operand (WO)
÷ ÷ menyimpan menyimpan hasilnya hasilnya di di dalam dalam memori memori
Efek
Efek
dekomposisi
dekomposisi
diatas
diatas
apa
apa
?
?

Bermacam
Bermacam
tahapan
tahapan
dapat
dapat
memiliki
memiliki
durasi
durasi
yang
yang
hampir
hampir
sama
sama

Contoh
Contoh
bagaimana
bagaimana
?
?
÷
÷
Pipeline
Pipeline
enam
enam
tahap
tahap
dapat
dapat
mengurangi
mengurangi
waktu
waktu
eksekusi
eksekusi
9
9
buah
buah
instruksi
instruksi
dari
dari
54
54
satuan
satuan
waktu
waktu
menjadi
menjadi
14
14
satuan
satuan
waktu
waktu
-
-
Bagaimana
Bagaimana
gambar
gambar
prosesnya
prosesnya
?
?
Diagram
Diagram
pewaktuan
pewaktuan
operasi
operasi

Faktor
Faktor
menghambat
menghambat
peningkatan
peningkatan
kinerja
kinerja
?
?
÷
÷
Keenam
Keenam
tahapan
tahapan
memiliki
memiliki
durasi
durasi
yang
yang
tidak
tidak
sama,
sama,
terjadi
terjadi
waktu
waktu
tunggu
tunggu
pada
pada
beberapa
beberapa
tahapan
tahapan
pipeline
pipeline
÷
÷
Ìnstruksi
Ìnstruksi
pencabangan
pencabangan
bersyarat
bersyarat
, yang
, yang
dapat
dapat
mengagalkan
mengagalkan
beberapa
beberapa
pengambilan
pengambilan
instruksi
instruksi
Contoh
Contoh
¨Branch"
¨Branch"
Asumsi Asumsi: :
Ìnstruksi Ìnstruksi 3 3 adalah adalah pencabangan pencabangan
bersyarat bersyarat instruksi instruksi 15. 15.
Sampai Sampai saat saat instruksi instruksi dieksekusi dieksekusi, , tidak tidak
terdapat terdapat cara cara untuk untuk mengetahui mengetahui
instruksi instruksi mana mana yang yang akan akan terjadi terjadi
kemudian kemudian. .
Ìnstruksi Ìnstruksi 4 4 sampai sampai 14 14 tidak tidak dilakukan dilakukan
eksekusi eksekusi sehingga sehingga data data harus harus
dibersihkan dibersihkan dari dari jalurnya jalurnya. .
Eksekusi Eksekusi dilanjutkan dilanjutkan saat saat
pencabangan pencabangan ke ke instruksi instruksi 15 15 sudah sudah
sampai sampai
Rancangan
Rancangan
Pipeline ÌBM S/360
Pipeline ÌBM S/360

Ada
Ada
2
2
faktor
faktor
hambatan
hambatan
, APA ?
, APA ?

Nasih
Nasih
terjadi
terjadi
sampai
sampai
sekarang
sekarang
1. 1.
Setiap
Setiap
tahapan
tahapan
pipeline
pipeline
terdapat
terdapat
sejumlah
sejumlah
overhead
overhead
yang
yang
terjadi
terjadi
pada
pada
pemindahan
pemindahan
data
data
dari
dari
buffer
buffer
ke
ke
buffer
buffer
dan
dan
pada
pada
saat
saat
melakukan
melakukan
persiapan
persiapan
dan
dan
pengiriman
pengiriman
fungsi
fungsi
÷
÷
fungsi
fungsi
. Overhead
. Overhead
akan
akan
memperpanjang
memperpanjang
waktu
waktu
eksekusi
eksekusi
instruksi
instruksi
tunggal
tunggal
.
.
Pertambahan
Pertambahan
waktu
waktu
ini
ini
akan
akan
makin
makin
terasi
terasi
apabila
apabila
instruksi
instruksi
saling
saling
tergantung
tergantung
secara
secara
logika
logika
2. 2.
Jumlah
Jumlah
kontrol
kontrol
logika
logika
yang
yang
diperlukan
diperlukan
untuk
untuk
menangani
menangani
ketergantungan
ketergantungan
memori
memori
dan
dan
register
register
akan
akan
meningkat
meningkat
seiring
seiring
banyaknya
banyaknya
tahapan
tahapan
. Hal
. Hal
ini
ini
menyebabkan
menyebabkan
kerumitan
kerumitan
dan
dan
waktu
waktu
fungsi
fungsi
pengontrolan
pengontrolan
Penanganan
Penanganan
Pencabangan
Pencabangan

Untuk
Untuk
apa
apa
?
?
÷
÷
Menjamin
Menjamin
terjadinya
terjadinya
aliran
aliran
instruksi
instruksi
yang
yang
stabil
stabil
÷
÷
Kestabilan
Kestabilan
akan
akan
terganggu
terganggu
saat
saat
instruksi
instruksi
mengalami
mengalami
pencabangan
pencabangan
karena
karena
belum
belum
bisa
bisa
ditentukan
ditentukan
tujuan
tujuan
pencabangan
pencabangan
tersebut
tersebut
-
-
Beberapa
Beberapa
metode
metode
pendekatan
pendekatan
masalah
masalah
digunakan
digunakan
untuk
untuk
mengatasi
mengatasi
hal
hal
tersebut
tersebut
?
?
Teknik
Teknik
pendekatan
pendekatan
1.
1.
Multiple Streams
Multiple Streams
2.
2.
Prefetch
Prefetch
branch target
branch target
3.
3.
Loop buffer
Loop buffer
4.
4.
Branch prediction
Branch prediction
5.
5.
Delayed branch
Delayed branch
1.
1.
Nultiple Streams
Nultiple Streams

Kedua
Kedua
instruksi
instruksi
percabangan
percabangan
diambil
diambil
dengan
dengan
dua
dua
buah
buah
stream.
stream.
Kelemahan
Kelemahan
:
:

Adanya
Adanya
persaingan
persaingan
dalam
dalam
mengakses
mengakses
register
register
dan
dan
memori
memori
untuk
untuk
dimasukkan
dimasukkan
dalam
dalam
pipeline.
pipeline.

Bila
Bila
dalam
dalam
percabangan
percabangan
terdapat
terdapat
percabangan
percabangan
lagi
lagi
,
,
tidak
tidak
mampu
mampu
ditangani
ditangani
oleh
oleh
dua
dua
stream.
stream.

Walaupun
Walaupun
terdapat
terdapat
kelemahan
kelemahan
tapi
tapi
terbukti
terbukti
meningkatkan
meningkatkan
kinerja
kinerja
pipelining.
pipelining.
÷
÷
Teknik
Teknik
ini
ini
diterapkan
diterapkan
pada
pada
ÌBM 370/168
ÌBM 370/168
dan
dan
ÌBM 3033
ÌBM 3033
2.
2.
Prefetch
Prefetch
branch target
branch target

Apabila
Apabila
pencabangan
pencabangan
bersyarat
bersyarat
telah
telah
diketahui
diketahui
Prosesnya
Prosesnya
:
:

Dilakukan
Dilakukan
pengambilan
pengambilan
awal
awal
(
(
prefetch
prefetch
)
)
terhadap
terhadap
instruksi
instruksi
setelah
setelah
pencabangan
pencabangan
dan
dan
target
target
pencabangan
pencabangan
.
.
÷
÷
Diterapkan
Diterapkan
pada
pada
ÌBM 360/91.
ÌBM 360/91.
Masalah
Masalah
:
:

Diperlukan
Diperlukan
buffer
buffer
dan
dan
register
register
untuk
untuk
prefetch
prefetch
3.
3.
Loop buffer
Loop buffer

Apabila
Apabila
terdapat
terdapat
pencabangan
pencabangan
maka
maka
perangkat
perangkat
keras
keras
memeriksa
memeriksa
apakah
apakah
target
target
pencabangan
pencabangan
telah
telah
ada
ada
dalam
dalam
buffer,
buffer,
bila
bila
telah
telah
ada
ada
maka
maka
instruksi
instruksi
berikutnya
berikutnya
diambil
diambil
dari
dari
buffer.
buffer.

Perbedaan
Perbedaan
dengan
dengan
prefetch
prefetch
adalah
adalah
pada
pada
loop
loop
buffer
buffer
akan
akan
membuffer
membuffer
instruksi
instruksi
ke
ke
depan
depan
dalam
dalam
jumlah
jumlah
yang
yang
banyak
banyak
,
,
sehingga
sehingga
bila
bila
target
target
tidak
tidak
berjauhan
berjauhan
lokasinya
lokasinya
maka
maka
secara
secara
otomatis
otomatis
telah
telah
terbuffer
terbuffer
.
.

Terkesan
Terkesan
teknik
teknik
ini
ini
seperti
seperti
cache
cache
memori
memori
,
,
namun
namun
terdapat
terdapat
perbedaan
perbedaan
karena
karena
loop buffer
loop buffer
masih
masih
mempertahankan
mempertahankan
urutan
urutan
instruksi
instruksi
yang
yang
diambilnya
diambilnya
4.
4.
Branch prediction
Branch prediction

Penganalisaan
Penganalisaan
sejarah
sejarah
instruksi
instruksi
.
.
Kenapa
Kenapa
?
?

Ìnstruksi
Ìnstruksi
komputer
komputer
seringkali
seringkali
terjadi
terjadi
berulang
berulang
.
.
Sehingga
Sehingga
:
:

Teknik
Teknik
prediksi
prediksi
ini
ini
juga
juga
diterapkan
diterapkan
dalam
dalam
pengambilan
pengambilan
instruksi
instruksi
pada
pada
cache
cache
memori
memori
.
.

Diperlukan
Diperlukan
algoritma
algoritma
khusus
khusus
untuk
untuk
melakukan
melakukan
prediksi
prediksi
tersebut
tersebut
.
.

Patokan
Patokan
memprediksi
memprediksi
target
target
pencabangan
pencabangan
÷ ÷ Penganalisaan Penganalisaan eksekusi eksekusi ÷ ÷ eksekusi eksekusi yang yang telah telah terjadi terjadi dan dan aspek aspek
lokalitas lokalitas. .
÷ ÷ Aspek Aspek lokalitas lokalitas memori memori adalah adalah kecenderungan kecenderungan penyimpanan penyimpanan
instruksi instruksi yang yang berhubungan berhubungan dalam dalam tempat tempat yang yang berdekatan berdekatan
5.
5.
Delayed branch
Delayed branch

Eksekusi
Eksekusi
pada
pada
tahapan
tahapan
pipeline yang
pipeline yang
melibatkan
melibatkan
pencabangan
pencabangan
akan
akan
dilakukan
dilakukan
penundaan
penundaan
proses
proses
beberapa
beberapa
saat
saat
sampai
sampai
didapatkan
didapatkan
hasil
hasil
pencabangan
pencabangan
.
.

Namun
Namun
tahapan
tahapan
pipelining
pipelining
lainnya
lainnya
dapat
dapat
berjalan
berjalan
seiring
seiring
penundaan
penundaan
tersebut
tersebut
.
.

Teknik
Teknik
penundaan
penundaan
ini
ini
menggunakan
menggunakan
instruksi
instruksi
NOOP
NOOP
Diagram
Diagram
alir
alir
prediksi
prediksi
Penanganan
Penanganan
Interupsi
Interupsi

Ìnterupsi
Ìnterupsi
adalah
adalah
fasilitas
fasilitas
yang
yang
disediakan
disediakan
untuk
untuk
mendukung
mendukung
sistem
sistem
operasi
operasi

Pengolahan
Pengolahan
interupsi
interupsi
memungkinkan
memungkinkan
suatu
suatu
program
program
aplikasi
aplikasi
dapat
dapat
ditahan
ditahan
, agar
, agar
kondisi
kondisi
÷
÷
kondisi
kondisi
insterupsi
insterupsi
dapat
dapat
dilayani
dilayani
,
,
kemudian
kemudian
program
program
dilanjutkan
dilanjutkan
.
.

Ìnterupsi
Ìnterupsi
adalah
adalah
suatu
suatu
masalah
masalah
dalam
dalam
pipeline,
pipeline,
karena
karena
mengganggu
mengganggu
aliran
aliran
instruksi
instruksi
yang
yang
telah
telah
tersusun
tersusun
.
.

Hal yang
Hal yang
sering
sering
dilakukan
dilakukan
dalam
dalam
perancangan
perancangan
adalah
adalah
interupsi
interupsi
ditangguhkan
ditangguhkan
beberapa
beberapa
saat
saat
sampai
sampai
program
program
utama
utama
mendapatkan
mendapatkan
titik
titik
pemberhentian
pemberhentian
.
.

Hal
Hal
ini
ini
efektif
efektif
dilakukan
dilakukan
sehingga
sehingga
tidak
tidak
terlalu
terlalu
mengganggu
mengganggu
pipelining
pipelining
instruksi
instruksi
.
.
Diagram
Diagram
alir
alir
penanganan
penanganan
!nterupsi
!nterupsi
?
?

Ada
Ada
2
2
macam
macam
:
:
1.
1.
Ìnterupsi
Ìnterupsi
yang
yang
dilakukan
dilakukan
oleh
oleh
perangkat
perangkat
keras
keras
2.
2.
Ìnterupsi
Ìnterupsi
dari
dari
program (Exception)
program (Exception)
Kesimpulan
Kesimpulan

Syarat
Syarat
agar
agar
bisa
bisa
disebut
disebut
CPU
CPU
adalah
adalah
bisa
bisa
mengambil
mengambil
instruksi
instruksi
,
,
menterjemahkan
menterjemahkan
,
,
mengambil
mengambil
data,
data,
mengolah
mengolah
dan
dan
menyimpan
menyimpan
kembali
kembali

CPU
CPU
dibantu
dibantu
memori
memori
internal yang
internal yang
disebut
disebut
register
register

Terdapat
Terdapat
dua
dua
group register
group register
yaitu
yaitu
register yang
register yang
dapat
dapat
diakses
diakses
oleh
oleh
programer
programer
(user visible register)
(user visible register)
dan
dan
register yang
register yang
tidak
tidak
bisa
bisa
diakses
diakses
oleh
oleh
programer
programer
(control
(control
status word)
status word)

Siklus
Siklus
instruksi
instruksi
terdiri
terdiri
dari
dari
fetch, execute
fetch, execute
dan
dan
interupt
interupt

Dengan
Dengan
cara
cara
pipelining
pipelining
kinerja
kinerja
CPU
CPU
dapat
dapat
ditingkatkan
ditingkatkan
Latihan
Latihan

Apa
Apa
fungsi
fungsi
dari
dari
general purpose register, data
general purpose register, data
register, address register
register, address register
?
?

Jelaskan
Jelaskan
kembali
kembali
alur
alur
data
data
pada
pada
siklus
siklus
pengambilan
pengambilan
!
!

Jelaskan
Jelaskan
kembali
kembali
alur
alur
data
data
pada
pada
siklus
siklus
tak
tak
langsung
langsung
!
!

Jelaskan
Jelaskan
kembali
kembali
alur
alur
data
data
pada
pada
siklus
siklus
interupt
interupt
!
!

Mengapa
Mengapa
Pipelining
Pipelining
mempercepat
mempercepat
proses
proses
?
?

Bagaimana
Bagaimana
Mengantisipasi
Mengantisipasi
kalau
kalau
terjadi
terjadi
percabangan
percabangan
saat
saat
melakukan
melakukan
pipelining?
pipelining?

Jelaskan
Jelaskan
tentang
tentang
NOOP !
NOOP !