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 :
1. Instruksi
berukuran tunggal
2. Ukuran yang umum
adalah 4 byte
3. Jumlah
pengalamatan data sedikit,
4. Tidak terdapat
pengalamatan tak langsung
5. Tidak terdapat
operasi yang menggabungkan operasi load/store dengan operasi
aritmatika
6. Tidak terdapat
lebih dari satu operand beralamat memori per instruksi
7. Tidak mendukung
perataan sembarang bagi data untuk operasi load/ store.
8. Jumlah maksimum
pemakaian memori manajemen bagi suatu alamat data adalah sebuah instruksi .
E. Instruksi Pipeline
Tahapan pipeline :
1. Mengambil
instruksi dan membuffferkannya
2. Ketika tahapan
kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut .
3. 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