Download - Instruksi Pipelining revisi
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 1/18
Instruksi Pipelining
adalah teknik yang menerapkan suatu bentuk parallelism yag disebut instruksi-
level parallelism dalam satu prosesor. Oleh karena itu memungkinkan
CPU throughput yang lebih cepat (jumlah instruksi yang dapat dieksekusi dalam unit
waktu) daripada yang akan diberikan pada clockrate. asar siklus instruksi inidipecah menjadi serangkaian disebut pipeline. aripada memproses setiap instruksi
secara berurutan (menyelesaikan satu instruksi sebelum memulai berikutnya)!
setiap instruksi dibagi menjadi urutan langkah-langkah langkah yang berbeda dapat
dieksekusi secara paralel dan instruksi dapat diproses secara bersamaan (mulai
satu instruksi sebelum menyelesaikan sebelumnya) .
Pipelining meningkatkan instruksi throughput dengan melakukan beberapa operasi
pada saat yang sama! namun tidak mengurangi instruksi latency! yang merupakan
waktu untuk menyelesaikan sebuah instruksi dari awal sampai akhir! karena masih
harus melalui semua langkah. "emang!semua itu dapat meningkatkan latency
karena overhead tambahan dari perhitungan menjadi langkah-langkah yangterpisah dan menjadi lebih buruk! pipeline lebih meningkatkan latency. engan
demikian! pipelining meningkatkan throughput yang merupakan biaya latency! dan
sering digunakan dalam CPU tapi dihindari dalam sistem real-time! di mana latency
merupakan kendala yang sulit.
#etiap instruksi dibagi menjadi urutan langkah-langkah tergantung. $angkah
pertama adalah selalu mengambil instruksi dari memori% langkah terakhir biasanya
menulis hasil instruksi untuk register prosesor atau memori. Pipelining berusaha
untuk membiarkan pekerjaan prosesor untiuk memberika banyak petunjuk karena
ada langkah-langkah yang bergantung! hanya digunakan sebagai jalur perakitan
untuk membangun banyak instruksi sekaligus! daripada menunggu sampai satuinstruksi telah melewati garis sebelum mengakui yang berikutnya. #ama seperti
tujuan dari jalur perakitan adalah untuk menjaga setiap assembler produkti&
sepanjang waktu! pipelining berusaha untuk menjaga setiap bagian dari prosesor
yang sibuk dengan beberapa instruksi. Pipelining memungkinkan waktu siklus
komputer menjadi cepat disaat langkah intruksi menjadi paling lambat sekalipun!
dan idealnya memungkinkan satu instruksi lengkap dalam setiap siklus.
Pengantar.
Central processing unit (CPU) yang didorong oleh sebuah clock.. #etiap pulsa clock
tidak perlu melakukan hal yang sama! logika dalam CPU mengarahkan pulsa secara
berturut-turut ke berbagai tempat untuk melakukan urutan yang berguna. 'da
banyak alasan bahwa seluruh pelaksanaan instruksi mesin tidak dapat terjadi
sekaligus di pipelining! e&ek yang tidak dapat terjadi pada saat yang sama dibuat
menjadi langkah tergantung dari instruksi.
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 2/18
"isalnya! jika salah satu pulsa clock kait nilai ke register atau dimulai perhitungan!
itu akan memakan waktu untuk nilai stabil pada output dari register atau
perhitungan untuk menyelesaikan. #ebagai contoh lain! membaca instruksi dari unit
memori tidak dapat dilakukan pada saat yang sama bahwa instruksi menulis
hasilnya ke unit memori yang sama.
Sejumlah Tahapan Pipeline
umlah langkah tergantung bervariasi dengan arsitektur mesin. #ebagai contoh*
• +," #tretch adalah proyek yang mengusulkan istilah etch! ecode! dan
/ecute yang telah menjadi istilah pada umumnya .
• 0lasik 1isch Pipeline terdiri dari*
. +nstruction etch
2. ecode instruksi dan 1egister etch
3. /ecute
4. 'kses memori
5. 1egister 6rite ,ack
• 7he 'tmel '81 dan P+C mikrokontroler masing-masing memiliki pipeline dua
tahap.
• ,anyak desain yang menggunakan pipeline 9! : dan bahkan 2: tahapan
(seperti pada +ntel Pentium 4).
• ;Prescott; dan ;Cedar "ill; <etburst core dari +ntel! yang digunakan dalam
Pentium 4 terbaru model dan mereka Pentium dan =eon derivati&! memiliki
pipeline yang panjangnya 3 tahapan .
• 7he =elerated =:> aringan Processor ini memiliki pipeline lebih dari seribu
tahapan. ?@
Pipeline dibuat ;lebih dalam; (tergantung dengan lebih banyak langkah )! langkah
yang diberikan dapat diimplementasikan dengan sirkuit sederhana! yang dapatmembiarkan clock prosesor berjalan lebih cepat. ?2@ pipeline tersebut dapat
disebut superpipelines. ?3@
#ebuah prosesor dikatakan sepenuhnya pipelined jika dapat mengambil sebuah
instruksi pada setiap siklus. engan demikian! jika beberapa petunjuk atau kondisi
mengharuskan penundaan yang menghambat mengambil instruksi baru! prosesor
tidak sepenuhnya pipelined.
2
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 3/18
Hazard
"odel eksekusi sekuensial mengasumsikan bahwa setiap instruksi selesai sebelum
yang berikutnya dimulai% asumsi ini tidak benar pada prosesor pipelined. #ebuah
situasi di mana hasil yang diharapkan bermasalah dikenal
sebagai haAard. ,ayangkan dua instruksi da&tar berikut untuk prosesor 1+#C *
* add ke 15
2* copy 15 ke 1B
ika prosesor memiliki 5 langkah yang tercantum dalam ilustrasi awal! instruksi
akan diambil pada waktu t dan pelaksanaannya akan lengkap pada t 5. +nstruksi 2
akan diambil pada t 2 dan akan lengkap di t 6. +nstruksi pertama akan menyetorkan
sehingga jumlah bertambah menjadi 15 sebagai langkah kelima (1egister 6rite
,ack) pada t 5. 7etapi instruksi kedua kemungkinan mendapatkan nomor dari 15(copy ke 1B) di langkah kedua (decode instruksi dan 1egister etch) pada waktu
t 3. 7ampaknya instruksi pertama tidak akan bertambah nilainya pada saat
itu. #ehingga akan menyebabkan haAard.
"enulis program komputer dalam bahasa program yang dijalankan compiler
mungkin tidak menimbulkan kekhawatiran ini! karena compiler dapat dirancang
untuk menghasilkan kode mesin yang menghindari haAard.
WorkAround
alam beberapa #P dan 1+#C prosesor awal! dokumentasi menyarankanprogrammer untuk menghindari ketergantungan seperti petunjuk instruksi yang
berdekatan dan hampir berdekatan (disebut slot delay)! atau menyatakan bahwa
instruksi kedua menggunakan nilai lama daripada nilai yang diinginkan (dalam
contoh di atas! prosesor akan melakukan counter-intuiti& lalu menyalin nilai
unincremented)! atau menyatakan bahwa nilai yang digunakan tidak
terdenisi. Programmer mungkin mempunyai pekerjaan yang lain dan tidak berelasi
sehingga prosesor dapat melakukan pekerjaan secara bersamaan! untuk
memastikan hasil yang benar! programmer dapat menyisipkan <OP ke dalam kode!
untuk meniadakan keuntungan dari pipelining.
Solusi
Prosesor pipelined biasanya menggunakan tiga teknik untuk bekerja seperti yang
diharapkan ketika programmer berasumsi bahwa setiap instruksi selesai sebelum
yang berikutnya dimulai*
3
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 4/18
• Prosesor yang dapat menghitung kehadiran haAard ataupun stall! untuk
menunda pemrosesan instruksi kedua (dan instruksi berikutnya) sampai nilai-
nilai itu diperlukan da disiapkan sebagai masukan. Dal ini
menciptakan bubble di dalam pipeline! juga sebagian meniadakan
keuntungan dari pipelining.
• ,eberapa prosesor tidak hanya dapat menghitung kehadiran haAard tetapi
dapat mengkompensasi dengan memiliki jalur data tambahan yang
memberikan masukan yang diperlukan untuk langkah perhitungan sebelum
instruksi berikutnya jika tidak akan dihitung oleh prosesor tersebut ! sehingga
menjadi atribut yang disebut operan &orwarding. ?4@ ?5@
• ,eberapa prosesor dapat menentukan bahwa instruksi lain berikut yang
sekuensial tidak tergantung pada satu intruksi atau instruksi yang dijalankan
saat ini dan dapat dijalankan tanpa haAard. Prosesor tersebut dapat
melakukan out-o&-order eksekusi.
Branches
#ebuah branch dari urutan instruksi yang normal sering melibatkan haAard. 0ecuali
prosesor dapat memberikan e&ek branch dalam siklus waktu tunggal! pipeline akan
terus mengambil instruksi secara berurutan. +nstruksi tersebut tidak bisa dibiarkan
berlaku karena programmer telah dialihkan untuk mengontrol ke bagian lain dari
program.
#ebuah branch bersyarat bahkan lebih bermasalah. Prosesor ataupun branch!
tergantung pada perhitungan yang belum terjadi. ,erbagai prosesor mungkin stall!
mencoba prediksi branch! dan mungkin dapat mulai mengeksekusi dua sekuens
program yang berbeda ! baik dengan asumsi branch ini ataupun tidak! dengan
membuang semua pekerjaan yang berhubungan dengan menebak pekerjaan
instruksi yang salah.
#ebuah prosesor dengan pelaksanaan prediksi branch yang membuat prediksi yang
benar dapat meminimalkan kinerja dari perbranchan. <amun! jika branch
diperkirakan kurang! akan lebih baik menciptakan lebih banyak pekerjaan untuk
prosesor! seperti Eushing &rom the pipeline jalur kode yang salah dan sudah mulai
dieksekusi sebelum melanjutkan eksekusi pada lokasi yang benar.
Program yang ditulis didalam prosesor pipelined dibuat untuk menghindari branch
dan untuk meminimalkan kemungkinan kehilangan kecepatan.#ebagai contoh!
programmer dapat menangani kasus biasa dengan eksekusi sekuensial dan branch
hanya pada mendeteksi kasus yang tidak biasa. "enggunakan program
seperti gcov untuk menganalisis kode cakupan memungkinkan programmer
mengukur seberapa sering branch tertentu yang benar-benar dijalankan dan
4
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 5/18
mendapatkan instruksi yang dapat digunakan untuk mengoptimalkan kode program
tersebut.
Situasi Khusus
• Program sel&-modication
7eknik Program #el&-"odication dapat menjadi masalah pada prosesor
pipelined. alam teknik ini! salah satu e&ek dari sebuah program adalah untuk
memodikasi instruksi yang akan datang sendiri. ika prosesor
memiliki cacheinstruksi! instruksi asli mungkin sudah disalin ke dalam antrian
masukan pre&etch dan modikasi tidak akan berlaku.
• +nstruction Uninterruptible
+nstruksi mungkin tidak akan pernah terputus untuk memastikan ! seperti ketika
swap dua item. "engiAinkan sebuah prosesor secara berurutan untuk
menyela antara instruksi! tetapi prosesor pipelining akan penuh dengan instruksi
yang tumpang tindih! sehingga eksekusi instruksi yang tidak terputus membuat
bagian-bagian dari instruksi biasa menjadi Uniterruptible.
• Pipeline independen
"atematika pipeline ! seperti prosesor aritmatika dalam produk +ntel Pentium!
proses array besar atau vektor dengan mengulangi proses seperti perkalian ribuan
kali. Prosesor 8ideo juga melakukan banyak perhitungan secara paralel dengan
pelaksanaan instruksi prosesor. #ituasi ini tidak inheren menimbulkan haAard
terhadap pelaksanaan instruksi. <amun! setelah memulai operasi! programmer
harus mempertimbangkan atau menguji apakah operasi telah selesai sebelum
memulai operasi lain yang tergantung pada hasil yang pertama! atau prosesor
harus dirancang untuk mendeteksi dan stall yang bergantung pada operasi sampai
input telah disiapkan.
Pertimbangan Desain
5
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 6/18
0ecepatan
Pipelining menyimpan semua bagian dari prosesor yang diduduki dan meningkatkan
jumlah pekerjaan yang berguna prosesor dapat melakukan instruksi dalam waktu
tertentu. Pipelining biasanya mengurangi waktu siklus prosesor dan meningkatkan
throughput instruksi. 0ecepatan keuntungan berkurang sejauh eksekusi yangbertemu haAard yang memerlukan eksekusi untuk memperlambat tingkat bawah
yang ideal.#ebuah prosesor non-pipelined mengeksekusi hanya satu instruksi pada
satu waktu. 'wal instruksi berikutnya tertunda tidak didasarkan pada haAard dan
tanpa syarat.
0ebutuhan #ebuah prosesor pipelined untuk mengatur semua pekerjaan ke dalam
langkah-langkah modular mungkin memerlukan duplikasi register yang
meningkatkan latency dari beberapa instruksi.
konomi
engan membuat setiap langkah yang sederhana! pipelining dapat mengakti&kan
operasi kompleks lebih ekonomis daripada menambahkan sirkuit yang kompleks!
seperti untuk perhitungan numerik. <amun! untuk prosesor yang mengutamakan
peningkatan kecepatan dengan pipelining mungkin akan menjadi lebih sederhana
dan lebih murah untuk diproduksi.
Prediktabilitas
ibandingkan dengan lingkungan di mana pemrogram perlu untuk menghindari
atau mengatasi haAard! penggunaan prosesor non-pipelined mungkin membuatnya
lebih mudah untuk program dan untuk melatih programmer. Prosesor non-pipelined
juga dibuat untuk prosesor lebih mudah memprediksi waktu yang tepat dari urutanyang diberikan instruksi.
!"!#I$ PIP!%I"!
ibawah ini generic pipeline dibagi 4 stage
. etch
2. ecode
3. /ecute
4. 6rite ,ack
B
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 7/18
0otak abu-abu atas adalah da&tar instruksi yang menunggu untuk dieksekusi%kotak
abu-abu bawah adalah da&tar instruksi yang telah selesai% dan kotak putih tengah
adalah pipeline.
6aktu ksekusi
: mpat instruksi yang menunggu untuk dieksekusi
• +nstruksi hijau diambil dari memori
2• +nstruksi hijau diterjemahkan
• +nstruksi ungu diambil dari memori
3
• +nstruksi hijau dijalankan (operasi yang sebenarnya dilakukan)
• +nstruksi ungu diterjemahkan
• +nstruksi biru diambil
4 • Dasil hijau instruksi yang ditulis kembali ke le register atau
memori
• +nstruksi ungu dieksekusi
• +nstruksi biru diterjemahkan
9
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 8/18
• +nstruksi merah diambil
5
• +nstruksi hijau selesai
• +nstruksi ungu ditulis kembali
• +nstruksi biru dieksekusi
• +nstruksi merah diterjemahkan
B
• +nstruksi ungu selesai
• +nstruksi biru ditulis kembali
• +nstruksi merah dieksekusi
9
• +nstruksi biru selesai
• +nstruksi merah ditulis kembali
F • +nstruksi merah selesai
G #emua empat instruksi dieksekusi
Bubble
0etika (gangguan) dalam pelaksanaan terjadi! ;bubble; yang dibuat di pipeline di
mana yang tidak digunakan akan terjadi. alam siklus 2! mengambil dari instruksi
F
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 9/18
ungu tertunda dan tahap decoding dalam siklus 3 sekarang berisi
bubble. #emuanya balik instruksi ungu tertunda juga tapi segala sesuatu di depan
instruksi ungu berlanjut dengan eksekusi.
elas! bila dibandingkan dengan pelaksanaan di atas! bubble menghasilkan total
waktu eksekusi dari F clock bukannya 9.
,ubble seperti warung (penundaan)! di mana tidak ada yang berguna akan terjadi
untuk mengambil! decode! mengeksekusi dan writeback. Dal ini
seperti<OP (kependekan ada operasi) kode.
Contoh
#ebuah instruksi khas untuk menambahkan dua nomor mungkin ' '! ,! C yang
menambahkan nilai-nilai yang ditemukan di lokasi memori ' dan ,! dan kemudian
menempatkan hasilnya dalam lokasi memori C. alam prosesor pipelinedyang pipeline kontroler akan merusak ini menjadi serangkaian tugas yang mirip
dengan*
$O' '! 1
$O' ,! 12
' 1! 12! 13
#7O1 13! C
$O' instruksi berikutnya
$okasi H1H dan H12H adalah register dalam CPU. <ilai-nilai yang tersimpan dalam
memori lokasi berlabel H'H dan H,H yang dimuat (disalin) ke register ini! lalu
menambahkan! dan hasilnya disimpan dalam lokasi memori berlabel HCH.
alam contoh ini pipeline adalah tiga tahap panjang $oad! mengeksekusi! dan
menyimpan. #etiap langkah-langkah yang disebut tahap pipeline.
Pada prosesor non-pipelined! hanya satu tahap dapat bekerja pada suatu waktu
sehingga seluruh instruksi yang lengkap sebelum instruksi berikutnya dapat
dimulai. Pada prosesor pipelined! semua tahapan dapat bekerja sekaligus padainstruksi yang berbeda. adi! ketika instruksi ini di jalankan tahap! instruksi kedua
akan berada di tahap decode dan instruksi 3 akan diambil.
Contoh 2
Untuk lebih memahami konsep ini! kita dapat melihat pipeline 3-tahap teoritis*
G
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 10/18
7ahap eskripsi
$oad ,aca instruksi dari memori
/ecute "engeksekusi instruksi
#tore Dasil #tore di memori dan I atau register
dan pseudo-kode assembly listing yang akan dijalankan*
$O' # 40, A; Load 40 A
"O8 '! ,% salin ' pada ,
' # 20, B; menambahkan 20 ke B
#7O1 ,! :/3::% #tore , ke dalam sel memori :/3::
ibawah +ni adalah bagaimana hal itu akan dieksekusi*
Clock
$oad /ecute #tore
$O'
+nstruksi $O' diambil dari memori.
+nstruksi $O' dieksekusi! sedangkan instruksi "O8 diambil dari memori.
Clock3
:
Clock2
$oad /ecute #tore
"O8 $O'
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 11/18
$oad /ecute #tore
' "O8 $O'
+nstruksi $O' dalam tahap #tore! di mana hasilnya (jumlah 4:) akan disimpan
dalam register '. #ementara itu! instruksi "O8 sedang dieksekusi. 0arena harus
memindahkan isi dari ' ke ,! harus menunggu akhir dari instruksi $O'.
Clock 4
$oad /ecute #tore
#7O1 ' "O8
+nstruksi #7O1 adalah dimuat! sedangkan instruksi "O8 adalah nishing oJ dan
' adalah menghitung.
an sebagainya. Perhatikan bahwa! kadang-kadang! suatu instruksi akan
tergantung pada hasil yang lain (seperti contoh "O8 kami). ,ila lebih dari satu
instruksi re&erensi lokasi tertentu untuk operand! baik membacanya (sebagai
masukan) atau menulis itu (sebagai output)! melaksanakan instruksi tersebut dalam
urutan yang berbeda dari program yang asli agar dapat mengakibatkan
situasi haAard (disebutkan di atas).
Tahapan Pipeline
- "engambil instruksi dan membuJerkannya- 0etika tahapan yang kedua bebas! tahapan pertama mengirimkan instruksi
yag di buJerkan tersebut.- Pada saat tahapan kedua sedang mengeksekusi! tahapan pertama
meman&aatkan siklus memory yang tidak dipakai untuk mengambil dan
membuJerkan instruksi berikutnya.
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 12/18
0arena untuk setiap tahap pengerjaan instruksi! komponen yang bekerja berbeda
maka dimungkinkan untuk mengisi kekosongan pada komponen tersebut. #ebagai
contoh*
+ntruksi * ' '= '=
+ntruksi 2* ' = C=
#etelah CU menjemput +nstruksi dari memory (+)! CU akan menerjemahkan
instruksi tersebut (+). Pada saat menterjemahkan instruksi tersebut! komponen +
tidak bekerja. 'danya teknologi pipeline menyebabkan + akan menjemput +nstruksi
2 pada saat + menterjemahkan +nstruksi . emikian seterusnya pada saat CU
2
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 13/18
menjalankan instruksi (=)! instruksi 2 diterjemahkan (+).
engan adanya pipeline! dua instruksi selesai dilaksanakan pada detik keenam!
sedangkan kasus tanpa pipeline baru selesai pada detik kesepuluh. engan
demikian telah terjadi percepatan sebanyak !B9 / dari :7 menjadi hanya B7.
sedangkan untuk pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2!4 dari
5 7 menjadi hanya 97.
Untuk kasus pipeline sediri! 2 instruksi dapat dikerjakan dalam B7(CP+K3) dan
instruksi dapat dikerjakan dalam 97(CP7K2!3) dan untuk instruksi dapat dikerjakan
dalam F7(CP+K2) ini berarti untuk :: instruksi akan dapat dikerjakan dalam :47
(CP+K.:4). pada kondisi ideal CP+ akan berhargaIbernilai .
3
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 14/18
alam teknik pipeline! problem dibagi menjadi deretan yang harus dilaksanakan
satu persatu setelah lainnya. #etiap tugas nantinya akan dieksekusi oleh proses
atau processor yang berbeda
Pipeline dapat meningkatkan kecepatan untuk problem yang sekuensial! dalam tiga
tipe komputasi*
. ika lebih dari satu instance dari problem yang akan dieksekusi.
2. ika ada deretan item data yang harus di proses! masing-masing membutuhkan
operasi ganda.
4
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 15/18
3. ika in&ormasi untuk memulai proses berikutnya dapat diberikan sebelum proses
selesai melaksanakan operasi internalnya.
iagram 1uang waktu pipeline
7ipe
iagram 1uang waktu alterative
5
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 16/18
iagram 1uang 6aktu Pipeline 7ipe 2
Pemrosesan Pipeline : ata
iagram 1uang 6aktu Pipeline 7ipe 3
Pemrosesan Pipeline! +n&ormasi di pass sebelum proses selesai
B
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 17/18
ika jumlah tahap lebih besar dari jumlah processor dalam pipeline! kelompok tahap
dapat di assign untuk tiap processor.
Partitioning Processes onto processors
Permasalahan Instruksi Pipelining
8ariasi 6aktu*
7idak semua tahap memakan waktu yang sama. +ni berarti untuk mendapatkan
kecepatan dalam instruksi pipelining sangat ditentukan oleh tahap yang paling
lambat. "asalah ini sangat akut dalam memproses instruksi! sejak instruksi yangberbeda memiliki persyaratan operad waktu proses yang berbeda. #elain itu!
diperlukan mekanisme sinkronisasi untuk memastikan bahwa data lewat dari stage
ke stage hanya ketika kedua stage siapI
Percabangan (,ranch)*
Untuk mengambil instruksi berikutnya! kita harus tahu mana saja yang dibutuhkan!
jika instruksi berikutnya mungkin tidak diketahui sampai saat diproses
edaI+nterupsi(+nteruptions)
+nterupsi membuat interupsi e/tra yang tidak terencana untuk masuk ke dalam
aliran instruksi. eda(+nterrupt) harus berperan antar instruksi! yaitu ketika satu
instruksi telah selesai dan instruksi berikutya belum dimulai. engan pipelining!
instruksi berikutnya biasanya dimulai sebelum instruksi yang terlebih dahulu
selesai.
ata ,erbahaya(ata DaAards)
9
7/23/2019 Instruksi Pipelining revisi
http://slidepdf.com/reader/full/instruksi-pipelining-revisi 18/18
0etika beberapa instruksi di eksekusi secara parsial! masalah timbul jika mereka
mempunyai re&erensi data yang sama. 0ita harus memastika bahwa instruksi
selanjutnya tidak berusaha untuk mengakses data lebih cepat dari instruksi
sebelumnya! jika ini terjadi akan menyebabkan hasil yang salah. #ebagai contoh
instruksi <L tidak harus diperbolehkan untuk mengambil sebuah operand yang
belum disimpan oleh instruksi <.
'7'1 PU#7'0'
https*IIabdrahman92.wordpress.comI2:3II:GIsiklus-instruksi-dan-pipelining-
instruksiI
http*IIstudent.blog.dinus.ac.idInanangarsyadI2:5I:9I:3Iarsitektur-pipelineI
https*IIilhamewilsaputra.les.wordpress.comI2:3I:I
http*IIen.wikipedia.comIpipeliningMinstruction
F