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.
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.
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
"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
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*
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