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.
KONSEP PIPELINE
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.
B. Intruksi pipeline
Tahapan pipeline
1. Mengambil
instruksi dan membuffferkannya
2. Ketika tahapn 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).
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).
2. 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.
3. Pemrosesan dapat
dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan
dalam satu waktu.
Kekurangan Pipelining :
1. 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.
2. 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.
3. Kinerja prosesor di
pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di
antara program yang berbeda.
4. 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.
5. Sedangkan
ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan
memerlukan data dari instruksi yang sebelumnya.
6. 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. Kesulitan dalam Pipeline
Untuk menerapkan prinsip multi-stage
atau mulai saat ini kita namakan pipelining di prosesor, diperlukan organisasi
prosesor khusus. Pada dasarnya, prosesor dipartisi menjadi sejumlah unit-unit
kecil dengan fungsi spesifik. Setiap unit berperan untuk menyelesaikan sebagian dari instruksi-intruksi berikut :
Instruction fetch, decode, operand
address calculation, operand fetch, execute dan store result.
Dalam proses di atas terkadang
sering terjadi kendala/conflict seperti :
1. Terjadinya
pause (Pi), karena adanya data conflict dalam program tersebut
2. Terjadinya
data error dikarenakan banyaknya proses yang dilakukan bersamaan
3. Terjadinya
pengambilan data secara bersamaan, sehingga salah satu proses tertunda
4. Terjadinya
penumpukan data di salah satu intruksi sehingga ada beberapa proses yg di tunda.
5. Dengan terjadinya
conflict tadi, speed-up yang diperoleh menjadi lebih kecil (lambat) dibandingkan
dengan tanpa conclict.
ARSITEKTUR REDUCED INSTRUCTION SET COMPUTERS (RISC)
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 :
- 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.
- pipelining:adalah sebuah teknik yang
memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien
- 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.
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 .
Perkembangan inovasi komputer sejak 1960 menambah satu daftar
penemuan yang sangat menarik dan paling penting , yaitu Arsitektur Reduced
Instruction Set computers ( RISC). Walaupun sistem RISC telah ditentukan dan
dirancang dengan berbagai cara berdasarkan komunitasnya, elemen penting yang
digunakan sebagian rancangan umumnya adalah sebagai berikut :
- Set instruksi yang
terbatas dan sederhana
- Register general purpose
berjumlah banyak atau penggunaaan teknologi kompiler untuk mengoptimalklan
penggunaan register.
- Penekanan pada pengoptimalan
pipeline instruksi
Implikasi
Secara umum penelitian menyatakan terdapat tiga buah elemen yang
menentukan karakter arsitektur RISC :
- Penggunaan register dalam jumlah besar yang
ditunjukan untuk mengotimalkan pereferensian operand.
- Diperlukan perhatian bagi
perancangan pipelaine instruksi karena tingginya proporsi instruksi pencabangan
bersyarat dan procedure call, pipeline instruksi yang bersifat langsung dan
ringkas menjadi tidak efisien
- Terdapat set instruksi
yang disederhanakan
Karakteristik Arsitektur Reduced Instruction Set Computers
(RISC)
Arsitektur RISC memiliki beberapa karakteristik diantaranya :
- Siklus mesin ditentukan
oleh waktu yang digunakan untuk mengambil dua buah operand dari register,
melakukan operasi ALU, dan menyimpan hasil operasinya kedalam register, dengan
demikian instruksi mesin RISC tidak boleh lebih kompleks dan harus dapat
mengeksekusi secepat mikroinstruksi pada mesin-mesin CISC. Dengan menggunakan
instruksi sederhana atau instruksi satu siklus hanya dibutuhkan satu mikrokode
atau tidak sama sekali, instruksi mesin dapat dihardwired. Instruksi seperti
itu akan dieksekusi lebih cepat dibanding yang sejenis pada yang lain karena
tidak perlu mengakses penyimapanan kontrol mikroprogram saat eksekusi instruksi
berlangsung.
- Operasi
berbentuk dari register-ke register yang hanya terdiri dari operasi load dan
store yang mengakses memori . Fitur rancangan ini menyederhanakan set instruksi
sehingga menyederhanakan pula unit control. Keuntungan lainnya memungkinkan
optimasi pemakaian register sehingga operand yang sering diakses akan tetap ada
di penyimpan berkecepatantinggi. Penekanan pada operasi register ke register
merupakan hal yang unik bagi perancangan RISC
- Penggunaan mode
pengalamatan sederhana, hampir sama dengan instruksi menggunakan pengalamatan
register,. Beberapa mode tambahan seperti pergeseran dan pe-relatif dapat
dimasukkan selain itu banyak mode kompleks dapat disintesis pada perangkat
lunak dibanding yang sederhana, selain dapat menyederhanakan sel instruksi dan
unit kontrol.
- Penggunaan format-format
instruksi sederhana, panjang instruksinya tetap dan disesuaikan dengan panjang
word. Fitur ini memiliki beberapa kelebihan karena dengan menggunakan field
yang tetap pendekodean opcode dan pengaksesan operand register dapat dilakukan secara
bersama-sama.
Referensi :
http://nur-firmansyah.blogspot.com/2013/01/pipelining-dan-risc-pengertian-pipeline.html
yusufruli.blogspot.com/2012/01/makalah-pipeline-dan-risc.html
http://malica29.blogspot.com/2013/05/perbedaan-cisc-dan-risc.html