Pipelining, merupakan fitur standar pada prosesor RISC,
tidak sama dengan assembly line. Karena prosesor 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.
Secara
sederhana, pipeline adalah suatu cara yang digunakan untuk melakukan
sejumlah kerja secara bersamaan tetapi dalam tahap yang berbeda yang dialirkan
secara berlanjut pada unit pemrosesan. Dengan cara ini, maka unit pemroses akan
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 dijalankan oleh microprocessor.
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.
1. Pada microprocessor yang tidak menggunakan
pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya
dapat dilaksanakan.
2. 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 :
1.
Terjadinya penggunaan resource yang bersamaan
2. Ketergantungan
terhadap data
3.
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.
Gambar pipeline :
lima tahap pipeline pada mesin RISC:
1. IF - Instruksi Fetch unit
Biasanya disebut sebagai "unit beban" dalam terminologi modern.
Instruksi yang ditunjuk oleh PC diambil dari memori ke register instruksi CPU,
dan PC bertambah untuk menunjuk ke instruksi berikutnya dalam memori.
2. ID - Instruksi Decode unit
Unit ini mendapat instruksi dari IF, dan ekstrak opcode dan operand dari
instruksi. Instruksi yang diterjemahkan, dan pada paruh kedua dari tahap
Operand ditransfer dari register file ke input ALU register. Ini juga mengambil
nilai-nilai mendaftar jika diminta oleh operasi
3. EXE – Excute (Pelaksanaan) unit
Menjalankan instruksi, biasanya disebut sebagai ALU dalam terminologi
modern.
Logika dan operasi aritmatika yang dijalankan pada operand yang berasal
dari ID stage. Hasil dari operasi dapat menjadi nilai yang akan ditulis kembali
dalam register file atau alamat dari data memori untuk diakses pada tahap
berikutnya.
4. MEM - Memory unit akses
Unit yang MEM menjemput data dari memori utama, di bawah kontrol instruksi
dari ID dan EX.
Data memori diakses (baik membaca atau menulis).
5. WB – Write Back unit
Biasanya disebut sebagai “load-store” dalam terminologi modern. Pada
tahapan ini, disediakan saluran bagi DLX sehingga dapat menyimpan kembali
register untuk tahap eksekusi (EX). Hal ini dapat mempercepat pelaksanaan
operasi register ke register oleh ALU yang berada dalam tahap eksekusi.
Dalam siklus
waktu keempat (kolom hijau), paling awal adalah instruksi dalam tahap Mem, dan
instruksi terbaru belum masuk set pipelining.
Generic
Pipeline
ada 4
tahapan dalam generic pipeline :
1. Fetch
2. Decode
3. Execute
4.
Write-back
Tidak ada komentar:
Posting Komentar