Top Banner
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 ini dipecah 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 yang terpisah 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 satu instruksi 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.
18

Instruksi Pipelining revisi

Feb 17, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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.

Page 2: Instruksi Pipelining revisi

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

Page 3: Instruksi Pipelining revisi

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

Page 4: Instruksi Pipelining revisi

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

Page 5: Instruksi Pipelining revisi

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

Page 6: Instruksi Pipelining revisi

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

Page 7: Instruksi Pipelining revisi

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

Page 8: Instruksi Pipelining revisi

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

Page 9: Instruksi Pipelining revisi

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

Page 10: Instruksi Pipelining revisi

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'

Page 11: Instruksi Pipelining revisi

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.

Page 12: Instruksi Pipelining revisi

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

Page 13: Instruksi Pipelining revisi

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

Page 14: Instruksi Pipelining revisi

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

Page 15: Instruksi Pipelining revisi

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

Page 16: Instruksi Pipelining revisi

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

Page 17: Instruksi Pipelining revisi

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

Page 18: Instruksi Pipelining revisi

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