PIPELINE
Lima
tahap pipeline pada mesin RISC (IF = Instruction Fetch(FI), ID = Instruction
Decode(DI), EX = Execute(EI), MEM = Memory access, WB = Register write
back(WO)) Dalam siklus waktu keempat (kolom hijau), paling awal adalah
instruksi dalam tahap Mem, dan instruksi terbaru belum masuk set pipelining.
Pipeline
adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama
tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit
pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja. Teknik
pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer.
Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat
yang rendah, seperti pada instruksi yang dijaankan oleh microprocessor.
Pada
microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai
selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam
microprocessor yang menggunakan teknik pipeline, ketika satu instruksi
sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam
waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada
dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati
oleh sebuah instruksi.
Dengan
penerapan pipeline ini pada microprocessor akan didapatkan peningkatan kinerja
microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan
secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan
didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang
tidak menggunakan pipeline, apabila tahapan yang ada dalam satu kali pemrosesan
instruksi adalah K tahap.
Karena
beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut
sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan
yang tepat agar proses tetap berjalan dengan benar dan lancar. Sedangkan
ketergantungan terhadap data bisa muncul, misalnya instruksi yang berurutan
memerlukan data dari instruksi yang sebelumnya. Kasus Jump, juga perlu
perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu
lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan
instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya
mungkin tidak mengharapkan terjadinya perubahan program counter.
Teknik
pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur
khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan
arsitektur pipeline dengan microprocessor yang menerapkan teknik ini.
Pada
microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai
selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam
microprocessor yang menggunakan teknik pipeline, ketika satu instruksi
sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam
waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada
dalam tahap proses yang berbeda.
Jadi,
ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Misalnya
sebuahmicroprocessor menyelesaikan sebuah instruksi dalam 4 langkah. Ketika
instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk
diproses pada langkah 1 instruksi tersebut. Begitu pun seterusnya, ketika
instruksi pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan
instruksi ketiga masuk ke langkah 1.
Teknik
pipeline ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga
ketika diterapkan dapat berjalan dengan baik.
Tiga
kesulitan yang sering dihadapi ketika menggunakan teknik pipeline ini adalah :
- Terjadinya penggunaan resource yang bersamaan
- Ketergantungan terhadap data, dan
- Pengaturan Jump ke suatu lokasi memori.
Tahapan
pipeline
- Mengambil instruksi dan membuffferkannya
- Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
- Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya.
Karena
untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka
dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai
contoh
Instruksi 1 : ADD
AX, AX Instruksi 2: ADD EX,CX
Setelah
CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi
tersebut(ID). Pada menerjemahkan instruksi
1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline
menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi
1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2
diterjemahkan (ID).
Dengan
adanya pipeline dua instruksi selesai dilaksanakan padadetik keenam (sedangkan
pada kasus tanpa pipeline baru selesai pada detik kesepuluh). Dengan demikian
telah terjadi percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan
untuk pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2, 14x dari 15T
menjadi hanya 7T.
Untuk
kasus pipeline sendiri, 2 instruksi dapat dikerjakan dalam 6T (CPI = 3) dan
instruksi dapat dikerjakan dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat
dikerjakan dalam 8T (CPI =2). Ini
berarti untuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI = 1,04). Pada
kondisi ideal CPI akan harga 1.
2.
KONSEP PIPELINE
Konsep
pemrosesan pipeline dalam suatu komputer mirip dengan suatu baris perakitan
dalam suatu pabrik industri. Ambil contoh, suatu proses pembuatan sebuah mobil:
anggaplah bahwa langkah-langkah tertentu di jalur perakitan adalah untuk
memasang mesin, memasang kap mesin, dan memasang roda (dalam urutan tersebut,
dengan langkah arbitrary interstitial). Sebuah mobil di jalur perakitan hanya
dapat memiliki salah satu dari tiga tahap yang dilakukan sekaligus.
Setelah
mobil memiliki mesin yang terpasang, bergerak ke bagian pemasangan kap,
meninggalkan fasilitas pemasangan mesin yang tersedia untuk mobil berikutnya.
Mobil pertama kemudian pindah ke pemasangan roda, mobil kedua untuk pemasangan
kap, dan mobil ketiga dimulai untuk pemasangan mesin. Jika instalasi mesin
membutuhkan waktu 20 menit, instalasi kap mobil memakan waktu 5 menit, dan
instalasi roda membutuhkan waktu 10 menit, kemudian menyelesaikan semua tiga
mobil ketika hanya satu mobil dapat dioperasikan sekaligus akan memakan waktu
105 menit.
Di
sisi lain, dengan menggunakan jalur perakitan, total waktu untuk menyelesaikan
ketiga adalah 75 menit. Pada titik ini, mobil selanjutnya akan datang dari
jalur perakitan pada kenaikan 20 menit.
3. MASALAH-MASALAH PADA PIPELINE
Dengan
adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak saling
bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal
dilaksanakan (instruksi berikutnya tidak bisa dilaksanakan). Situasi ini
disebut Hazards. Hazards mengurangi performansi dari CPU dimana percepatan
ideal tidak dapat dicapai.
Ada
3 kelompok Hazards :
- Structural Hazards muncul dari konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi.
- Data Hazards muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
- Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh : branch).
Adanya
Hazards menyebabkan pipeline terhambat (stalled). Tidak ada instruksi baru yang
dijemput sampai hambatan itu selesai. Ini berarti instruksi-instruksi
selanjutnya akan ditunda pula penjemputannya.
4. KEUNTUNGAN DARI PIPELINE
Waktu siklus procesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
Waktu siklus procesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
Beberapa combinational sirkuit seperti
penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih
banyak sirkuit.
Jika
pipeline digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs
combinational yang lebih kompleks sirkuit.
5. KERUGIAN DARI PIPELINE
Prossesor
non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal ini
untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan
masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain
lebih sederhana dan lebih murah untuk diproduksi.
Instruksi latency di prossesor non-pipeline
sedikit lebih rendah daripada dalam pipeline setara. Hal ini disebabkan oleh
fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prossesor
pipeline.
Prossesor non-pipeline akan memiliki
instruksi bandwidth yang stabil. Kinerja prossesor yang pipeline jauh lebih
sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang
berbeda.
Pipelining,
merupakan fitur standar pada procesor RISC, tidak sama dengan assembly line.
Karena procesor bekerja pada berbagai langkah dari instruksi pada saat yang
sama, beberapa pekerjaan bisa dilaksanakan dalam jangka waktu yang lebih
singkat. Teknologi Pipeline yang digunakan pada komputer bertujuan untuk
meningkatkan kinerja dari komputer.
Teknik
pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur
khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan
arsitektur pipeline dengan microprocessor yang menerapkan teknik ini.
Pada microprocessor yang tidak menggunakan
pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya
dapat dilaksanakan.
Pada microprocessor yang menggunakan teknik
pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang
berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi
yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi,
ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.
Misalnya
sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah, Ketika
instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk
diproses pada langkah 1 instruksi tersebut. Begitu seterusnya, ketika instruksi
pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi
ketiga masuk ke langkah 1. Dengan penerapan pipeline ini pada microprocessor
akan didapatkan peningkatan dalam unjuk kerja microprocessor.
Hal
ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalam
waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan
beberapa kali dibandingkan dengan microprocessor yang tidak menggunakan
pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah
banyak tahap.
Teknik
pipeline ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga
ketika diterapkan dapat berjalan dengan baik.
Tiga
kesulitan yang sering dihadapi ketika menggunakan teknik pipeline ini adalah :
Terjadinya
penggunaan resource yang bersamaan,
Ketergantungan
terhadap data, dan
Pengaturan
Jump ke suatu lokasi memori.
Karena
beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut
sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan
yang tepat agar proses tetap berjalan dengan benar. Sedangkan ketergantungan
terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data
dari instruksi yang sebelumnya. Kasus Jump,
juga perlu perhatian, karena ketika sebuah instruksi meminta untuk
melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter,
sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang
berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.
Dengan
menerapkan teknik pipeline ini, akan ditemukan sejumlah perhatian yang khusus
terhadap beberapa hal di atas, tetapi tetap akan menghasilkan peningkatan yang
berarti dalam kinerja microprocessor. Ada kasus tertentu yang memang sangat
tepat bila memanfaatkan pipeline ini, dan juga ada kasus lain yang mungkin
tidak tepat bila menggunakan teknologi pipeline.
6.
GENERIC PIPELINE
Ada
4 tahapan dalam generic pipeline :
1.
Fetch
2.
Decode
3.
Execute
4.
Write-back
PERFORMA
PIPELINE
Procesor
pipelined menyelesaikan pengolahan satu instruksi pada tiap cycle, yang berarti
kecepatan pengolahan instruksi tersebut empat kali lebih besar dari op e.
berurutan. Peningkatan potensial dalam performa yang dihasilkan dari pipelining
proporj,_M dengan jumlah pipeline stage. Akan tetapi, peningkatan ini hanya
akan dicapai jika ope pipelined dapat
dipertahankan tanpa inter melalui eksekusi program. Stalled selama dua clock
cycle. pipelined normal dimulai lagi pada cycle 7. Tiap kondisi yang
menyebabkan pipeline stall but hazard.
Tidak ada komentar:
Posting Komentar