A. Pengertian
Pipeline
Pipeline adalah suatu cara yang
digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang
berbeda yang dialirkan secara kontinu pada unit pemrosesan. Dengan cara ini,
maka unit pemrosesan selalu bekerja. Teknik pipeline ini dapat diterapkan pada
berbagai tingkatan dalam sistemkomputer. Bisa pada level yang tinggi, misalnya
program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang
dijaankan oleh microprocessor.
Pada umumnya, efisiensi sebuah
komputer dinilai beerdasarkan kecepatan perangkat keras dan fasilitas-fasilitas
perangkat lunak. Penilaian ini disebut sebagai throughput, didefinisikan
sebagai jumlah pemrosesan yang dapat dikerjakan dalam suatu interval waktu
tertentu. Salah satu teknik yang mendorong peningkatan suatu sistem throughput
yang cukup hebat disebut sebagai pemrosesan pipeline. Konsep pemrosesan
pipeline dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu
pabrik industri. Ambil contoh, sutu proses pembuatan mobil. Ketika sebuah mobil
dibuat, mobil tersebut berpindah sepanjang ban berjalan dengan berurutan,
melewati beberapa stasiun. Pada setiap stasiun, dikerjakan sebagian proses
konstruksi pada mobil itu, kemudian berpindah lagi ke stasiun berikutnya.
Perpindahan mobil itu dari satu stasiun ke stasiun lainnya, memungkinkan
beberapa mobil berada pada baris perakitan pada waktu yang bersamaan,
masing-masing pada stasiun yang terpisah. Dengan demikian, hal ini
mengakibatkan kita menghasilkan mobil dari baris perakitan satu persatu secara
berurutan. Tanpa teknik baris perakitan seperti ini, pengerjaan suatu mobil
tidak dapat dimulai sampai mobil yang sebelumnya benar-benar
selesai.
Pemrosesan pipeline dalam suatu
komputer diperoleh dengan membagi suatu fungsi yang akan dijalankan menjadi
beberapa subfungsi yang lebih kecil dan merancang perangkat keras yang
terpisah, disebut sebagai tingkatan (stage), untuk setiap subfungsi.
Stage-stage itu kemudian dihubungkan bersama-sama dan membentuk sebuah pipeline
tunggal (atau pipe) untuk menjalankan fungsi asli tersebut.
C. Keuntungan
dan Kerugian
Pipelining tidak membantu dalam
semua kasus. Ada beberapa kemungkinan kerugian. Pipa instruksi dikatakan
sepenuhnya pipelined jika dapat menerima instruksi baru setiap clock cycle.
Sebuah pipa yang tidak sepenuhnya pipelined telah menunggu siklus yang menunda
kemajuan pipa.
Keuntungan
dari Pipelining :
- 1 waktu siklus prosesor berkurang, sehingga
meningkatkan tingkat instruksi dalam kebanyakan kasus( lebih cepat
selesai).
- Beberapa combinational sirkuit seperti penambah
atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak
sirkuit. Jika pipelining digunakan sebagai pengganti, hal itu dapat
menghemat sirkuit & combinational yang lebih kompleks.
Pemrosesan dapat dilakukan lebih
cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.
Kekurangan
Pipelining :
- Pipelined prosesor menjalankan beberapa instruksi
pada satu waktu. Jika ada beberapa cabang yang mengalami penundaan cabang
(penundaan memproses data) dan akibatnya proses yang dilakukan cenderung
lebih lama.
- Instruksi latency di non-pipelined prosesor
sedikit lebih rendah daripada dalam pipelined setara. Hal ini disebabkan
oleh fakta bahwa intruksi ekstra harus ditambahkan ke jalur data dari
prosesor pipeline.
- Kinerja prosesor di pipeline jauh lebih sulit
untuk meramalkan dan dapat bervariasi lebih luas di antara program yang
berbeda.
- 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.
D. RISC (Reduced
Instruction Set Computer)
RISC singkatan dari Reduced Instruction Set Computer. Merupakan bagian
dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk negeset
istruksi dalam komunikasi diantara arsitektur yang lainnya.
· Sejarah
RISC
Proyek RISC pertama dibuat oleh IBM,
stanford dan UC –Berkeley pada akhir tahun 70 dan awal tahun 80an. IBM 801,
Stanford MIPS, dan Barkeley RISC 1 dan 2 dibuat dengan konsep yang sama
sehingga dikenal sebagai RISC.
RISC
mempunyai karakteristik :
1.
One
Cycle Execution Time : satu putaran eksekusi. Prosessor RISC
mempunyai CPI (clock per instruction) atau waktu per instruksi untuk setiap
putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada CPU.
2. Large
number of registers: Jumlah register yang sangat banyak. RISC di Desain
dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk
mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.
3. Pipelining:
adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efisien.
Ciri-ciri :
- Instruksi berukuran tunggal
- Ukuran yang umum adalah 4 byte
- Jumlah pengalamatan data sedikit,
- Tidak terdapat pengalamatan tak langsung
- Tidak terdapat
operasi yang menggabungkan operasi load/store dengan operasi
aritmatika
- Tidak terdapat lebih dari satu operand beralamat
memori per instruksi
- Tidak mendukung perataan sembarang bagi data
untuk operasi load/ store.
- Jumlah maksimum pemakaian memori manajemen bagi
suatu alamat data adalah sebuah instruksi .
E. Instruksi Pipeline
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 .
Instuksi
pipeline:
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).
SUMBER
Tidak ada komentar:
Posting Komentar