Anda di halaman 1dari 17

MAKALAH KONSEP PIPELINE

Sebagai Salah Satu Tugas Mata Kuliah Arsitektur dan Organisasi


Komputer
Dosen Pengampu: M. Arif Budiyanto, S.Kom, M.Hum

Disusun oleh:
1. Alex Sander P. B (41518110021)
2. Taufik Adi Saputra (41518110069)
3. Dzikril Hakim (41518110161)

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER
UNIVERSITAS MERCU BUANA
TAHUN 2019
KATA PENGANTAR

Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha
Penyayang. Kami panjatkan puji syukur atas kehadirat-Nya yang telah melimpahkan
rahmat dan kasih-Nya sehingga kami dapat menyelesaikan makalah ini tepat pada
waktunya.

Makalah yang berjudul “Makalah Konsep Pipeline” ini kami susun untuk
memenuhi tugas besar mata kuliah Arsitektur dan Organisasi Komputer yang diampu
oleh Bapak M. Arif Budiyanto, S.Kom, M.Hum. Makalah ini berisi tentang penjelasan
dan konsep cache memory.

Dalam menyusun makalah ini, kami banyak mendapat tantangan dan


hambatan akan tetapi dengan bantuan dari berbagai pihak tantangan itu dapat teratasi.
Oleh karena itu, kami mengucapkan terima kasih yang sebesar-besarnya kepada
semua pihak yang telah membantu dalam penyusunan makalah ini.

Kami menyadari sepenuhnya bahwa makalah yang kami susun masih memiliki
banyak kekurangan. Untuk itu, kami meminta kesediaan pembaca untuk memberikan
kritik serta saran yang membangun mengenai penulisan makalah agar kami dapat
lebih baik dalam pembuatan makalah selanjutnya.

Jakarta, April 2019

Penulis

i
DAFTAR ISI

Kata Pengantar ..................................................................................................... i

Daftar Isi .............................................................................................................. ii

Bab I Pendahuluan

1.1 Latar Belakang ......................................................................................... 1


1.2 Rumusan Masalah.................................................................................... 1
1.3 Tujuan ...................................................................................................... 1

Bab II Pembahasan

2.1 Pengertian Pipeline .................................................................................. 2


2.2 Tahapan-tahapan Pipeline ....................................................................... 3
2.3 Instruksi Pipline ........................................................................................ 4
2.4 Ilustrasi cara kerja Pipeline....................................................................... 5
2.5 Klasifikasi Pipeline.................................................................................... 6
2.6 Klasifikasi berdasarkan fungsi .................................................................. 7
2.7 Klasifikasi berdasarkan konfigurasi .......................................................... 8
2.8 Permasalahan pada instruksi Pipeline ...................................................... 9
2.9 Keuntungan dan Kerugian Pipeline ........................................................ 10

Bab III Penutup

3.1 Kesimpulan ............................................................................................ 11

Daftar Pustaka ................................................................................................... 13

ii
I. PENDAHULUAN

1.1 Latar Belakang

Arsitektur von Neumann merupakan salah satu arsitektur yang kerap


digunakan sebagai dasar untuk mendesign sebuah system computer. Dalam
hal ini, pipeline dibutuhkan dalam rangka untuk mempercepat kerja dari
processor.
Pipeline dapat diartikan sebagai suatu cara yang digunakan untuk
melakukan sejumlah kerja secara bersama tetapi dalam tahap berbeda yang
dialirkan secara kontinu pada unit pemrosesan. Pipeline digunakan untuk
mempercepat dan mengoptimalkan kerja processor, walaupun di lain hal
banyak hal yang akan menghambat kinerja dari pipeline itu sendiri.
Dalam makalah ini kami akan membahas tentang pipeline baik dari segi
keuntungan, kerugian dan cara mengatasinya.

1.2 Rumusan Masalah


1. Definisi Pipeline
2. Tahap Instruksi Pipeline
3. Cara kerja Pipeline
4. Klasifikasi Pipeline
5. Kelebihan dan kerugian pipeline
6. Hal-hal yang menghambat kinerja Pipeline

1.3 Tujuan
1. Meningkatkan pengetahuan tentang pipeline
2. Mampu menganilisis kinerja dari pipeline
3. Mampu mengembangkan untuk kinerja dari Pipeline

1
II. PEMBAHASAN
2.1 Gambaran Umun Pipeline

Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah


kerja secara bersama tetapi dalam tahap berbeda yang dialirkan secara kontinu
pada unit pemrosesan. Dengan Pipeline, unit pemrosesan akan selalu bekerja
sehingga memaksimalkan kerja microprocessor. Pada microprocessor yang
tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, setelah
selesai baru instruksi berikutnya dilakukan. Sedangkan microprocessor yang
menggunakan teknik pipeline, ketika satu instruksi diproses, maka instruksi
berikutnya dapat dikerjakan dan diproses dalam waktu yang bersamaan.
Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses
yang berbeda. Jadi, ada sejumlah tahap yang akan dilewati oleh sebuah
instruksi.

Dengan penerapan pipeline ini pada microprocessor akan didapatkan


peningkatan dalam untuk kerja microprocessor. Hal ini terjadi karena beberapa
instruksi dapat dilakukan secara parallel dalm waktu yang bersamaan. Namun,
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 bias muncul, misalnya
instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
Kasus jump juga perlu diperhatikan. Karena ketika sebuah instruksi meminta
untuk mrelompat ke suatu memori tertentu akan terjadi perubahan program
counter, sedangkan instruksi yang sedang berada dalam salah satu tahap tidak
mendukung dan mengharapkan terjadinya perubahan program counter.

2
2.2 Tahap instruksi Pipeline
Ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.
Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam 4
langkah. Ketika instruksi pertama masuk ke langkah ke 2 maka instruksi kedua
diambil untuk diproses dalam langkah 1 instruksi tersebut, dan begitu
seterusnya. Adapun tahapan-tahapannya yaitu :

Ket :
a. IF : Instruction Fetch
b. ID : Instruction Decode
c. EX : Execute
d. MEM : Access Memory
e. WB : Write Back

1) Mengambil instruksi dan membufferknnya.


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 membufferkan instruksi berikutnya.

3
2.3 Instruksi Pipeline

Karena untuk setiap tahap pengerjaan instruksi, komponen yang


bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di
komponen tersebut.

Instruksi 1 : ADD AX, AX


Instruksi 2 : ADD BX, CX
Contoh pengerjaan instruksi tanpa pipeline :
Clock 1 2 3 4 5 6 7 8 9 10
ADD AX,AX IF DE IF DE EX
ADD BX,AX IF DE IF DE EX

Contoh pengerjaan instruksi dengan pipeline :

Clock 1 2 3 4 5 6 7 8 9 10
ADD AX,AX IF DE IF DE EX
ADD BX,AX IF DE IF DE EX
ADD DX,DX IF DE IF DE EX

Disini instruksi baru akan dipanggil setelah tahap IF menganggur (t=2).

Dengan adanya pipeline dua instruksi selesai dilaksanakan pada detik


keenam (sedangkan pada kasus tanpa pipeline baru selesai pada detik
kesepuluh). Dengan demikian telah terjadi percepatan sebanyak 1.67 kali dari t
= 10 menjadi t = 6. Sedangkan untuk 3 instruksi terjadi percepatan sebanyak 2
kali dari t = 14 menjadi t = 7. Teknik perancangan pipeline mendekomposisikan
sebarisan proses ke dalam sub-sub proses atau segmen. Setiap stadium
melakukan fungsi khusus dan menghasilkan suatu output yang dikehendaki
dengan segera.

4
Setiap stadium akan memuat suatu input latch , atau disebut juga
register atau buffer, yang diikuti oleh satu sirkuit pemrosesan. Sinyal clock
dikoneksikan ke masing-masing input latch.

2.4 Ilustrasi Instruksi Pipeline

5
Time Execution

0 Four instructions are waiting to be executed

1  The green instruction is fetched from memory

 The green instruction is decoded


2
 The purple instruction is fetched from memory

 The green instruction is executed (actual operation is performed)


3  The purple instruction is decoded
 The blue instruction is fetched

 The green instruction's results are written back to the register file or memory
 The purple instruction is executed
4
 The blue instruction is decoded
 The red instruction is fetched

 The execution of green instruction is completed


 The purple instruction is written back
5
 The blue instruction is executed
 The red instruction is decoded

 The execution of purple instruction is completed


6  The blue instruction is written back
 The red instruction is executed

 The execution of blue instruction is completed


7
 The red instruction is written back

8  The execution of red instruction is completed

9 The execution of all four instructions is completed

2.5 Klasifikasi Pipeline

Pipeline dapat kita klasifikasikan menurut fungsi dan konfigurasinya.


Secara fungsional, pipeline dapat diklasifikasikan menjadi tiga kelompok pokok
: pipelining aritmatika, instruksi, dan prosesor. Ramamoorthy dan Li (1977)

6
mengajukan tiga skema untuk mengklasifikasikan pipeline menurut konfigurasi
dan strategi kendalinya : unifungsi atau multifungsi dan skalar atau vector.

2.6 Klasifikasi Berdasarkan Fungsi


 Pipelining Aritmatika
Proses segmentasi fungsi dari ALU dari sistem yang muncul
dalam kategoriini.
 Pipelining Instruksi
Dalam suatu komputer non-pipeline, CPU bekerja melalui
suatusiklus yang berkesinambungan dari fetch-decode-eksekusi
untuk semua instruksinya. Proses fetchsuatu instruksi tidak akan
dimulai sampai eksekusi instruksi sebelumnya selesai.Untuk mem-
pipeline fungsi ini, instruksi-instruksi yang berdampingan di-fetch
darimemori ketika instruksi yang sebelumnya di-decode dan
dijalankan. Proses pipelininginstruksi instruction look ahead, mem-
fetch instruksi secara berurutan. Dengandemikian, jika suatu
instruksi menyebabkan percabangan keluar dari urutan itu maka
pipe akan dikosongkan dari seluruh instruksi yang telah di-fetch
sebelumnya daninstruksi percabangan tersebut di-fetch. Proses
pipelining instruksi dikerjakan pada hampir semua komputer
berkemampuan tinggi

 Pipelining Processor
Sewaktu stage dari suatu pipeline, prosesor aktual dan latch-
latch saling berbagi memori di antara prosesor-prosesor tersebut,
sehingga pipeline tersebut disebut sebagai pipeline prosesor. Dalam
pipeline ini, setiap prosesor mempunyai suatu tugas tertentu yang
akan dijalankan pada aliran data. Pipelining banyak
prosesor(multiple prosesor) merupakan konsep yang relatif baru dan
belum umum.

7
2.7 Klasifikasi Berdasarkan Konfigurasi
 Unifungsi dan Multifungsi
Kemampuan suatu pipeline menjalankan hanya satu jenis pokok
operasi disebut sebagaipipeline unifungsi. Misalnya, perkalian
floating-point mensyaratkan pipeline agar juga menjalankan operasi
yang sama pada setiap kelompok input. Jika pipeline dapat
menjalankan fungsi-fungsi yang berbeda maka disebut sebagai
pipeline multifungsi. Fungsi-fungsi yang berbeda itu bisa dijalankan
baik pada waktu yang bersamaan ataupun berbeda, dengan
menghubungkan subkelompok-subkelompok stage yang berbeda
dalam pipeline. Pipeline disusun seperlunya sesuai dengan nilai input
kendali tambahan.

 Static atau Dynamic


Ketika instruksi-instruksi yang berjenis sama akan dijalankan secara
bersamaan waktunya, maka digunakan pipeline statis. Pipeline ini
dapat berupa pipeline fungsional maupun multifungsional tetapi
mungkin mengasumsikan hanya satu konfigurasi fungsional pada
suatu waktu. Suatu pipeline multifungsi statis dapat bekerja paling
baik jika fungsi yang akan dijalankan tidak sering berubah. Antara
perubahan, pipeline terlihat sebagai pipeline unifungsi dan
mengulangi operasi yang sama berulang-ulang. Sebelum mengganti
fungsi tersebut, kelompok input terakhir dari fungsi sebelumnya harus
benar-benar telah melewati pipeline. Kemudian pipeline
dikonfigurasikan untuk fungsi yang baru dan input yang baru boleh
masuk ke dalampipe. Dengan pipeline dinamis, beberapa konfigurasi
fungsional dapat muncul sekaligus. Hal ini berarti harus digunakan
sebuah pipeline multifungsional. Dalam kasus ini, konfigurasi pipe
berubah-ubah secara konstan, tergantung pada data manauntuk
fungsi yang mana pada stage yang mana untuk setiap penangguhan
clock. Pipeline dinamis memerlukan kendali yang sangat kompleks
dan mekanisme perangkat untuk mengkonfigurasikan pipe bagi input-
input tertentu. Untuk alasan ini, pipelining aktual tidak berada di
bawah kendali programmer melainkan dibangun kedalam arsitektur
mesin tersebut.

8
 Skalar atau Vector
Suatu pipeline skalar memproses serangkaian operasi skalar pada
operand skalar. Salah satu contoh berupa operasi ADD dalam loop
FOR. Pipeline vector dirancang untuk memproses instruksi vektor
dengan menggunakan operand vektor.Komputer yang mempunyai
instruksi-instruksi vektor disebut sebagai prosesor vector.

2.8 Permasalahan di Dalam Instruksi Pipeline


1) Variasi waktu
Tidak semua tahapan memakan waktu yang sama. Artinya,
kecepatan instruksi pipelining ditentukan oleh tahap yang paling lambat.

2) Data Berbahaya ( Data Hazards)


Ketika beberapa instruksi dieksekusi secara parsial, masalah
akan timbul jika instruksi tersebut memiliki referensi data yang sama.
Kita harus memastikan bahwa instruksi selanjutnya tidak berusaha
mengakses data lebih cepat dari seharusnya.

3) Percabangan (Branch)
Masalah dalam percabangan adalah pipelining diperlambat oleh
instruksi karena kita tidak tahu cabang mana yang harus kita ikuti.

4) Jeda (Interupsi)
Interupsi harus berperan antar instruksi. Yaitu, ketika satu
instruksi telah selesai daninstruksi berikutnya belum dimulai. Dengan
pipelining, instruksi berikutnya biasanya dimulai sebelum instruksi yang
sekarang telah selesai.

5) Solusi Permasalahan Pipeline


1) Variasi Pemilihan Waktu (Timing Variations)
Metode sinkron adalah jika tahapan telah dianggap lengkap dari
sejumlah siklus waktu tertentu.Metode asinkron adalah lebih efisien,
karena bit atau garis sinyal harus dilewatkan maju ketahap berikutnya

9
yang artinya data sudah valid. Ketika data telah diterima, sinyal
jugaharus melewati tahapan berikunya.

2) Data Berbahaya (Data Hazards)


Pipeline biasanya dilengkapi dengan small associative check
memory yang dapat menyimpan alamat dan jenis operasi. Ketika ada
konflik, instruksi memasuki pipa dan alamat operand disimpan dalam
memory check. Ketika selesai, alamat ini akan dihapus.

3) Percabangan (Branching)
a. Menunda Percabangan.
b. Menyusun kembali program sehingga percabangan menjadi lebih
sedikit.
c. Memprediksi jenis cabang.

2.9 Kelebihan dan Kekurangan

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.

1) Kelebihan dari Pipelining


a. Waktu siklus prosesor berkurang, sehingga meningkatkan
tingkat instruksi dalam kebanyakan kasus ( lebih cepat selesai).
b. 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.
c. Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa
proses dilakukan secara bersamaan dalam satu waktu.

2) Kekurangan Pipelining

10
a. Pipeline 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.
b. 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.
c. Kinerja prosesor di pipeline jauh lebih sulit untuk meramalkan
dan dapat bervariasi lebih luas di antara program yang berbeda.
d. 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.
e. Sedangkan ketergantungan terhadap data, bisa muncul,
misalnya instruksi yang berurutan memerlukan data dari instruksi
yang sebelumnya.
f. 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.

11
III. Kesimpulan

Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah


kerja secara bersama tetapi dalam tahap berbeda yang dialirkan secara kontinu
pada unit pemrosesan . Elemen-elemen dalam sebuah pipeline sering
dijalankan secara parallel.
Pipeline dapat kita klasifikasikan menurut fungsi dan konfigurasinya.
Secara fungsional, pipeline dapat diklasifikasikan menjadi tiga kelompok pokok
: pipelining aritmatika, instruksi, dan prosesor. Ramamoorthy dan Li (1977)
mengajukan tiga skema untuk mengklasifikasikan pipeline menurut konfigurasi
dan strategi kendalinya : unifungsi atau multifungsi dan skalar atau vector.

12
DAFTAR PUSTAKA

Akbar, Muhammad. 2012. Pipeline Instruksi, Jurusan Magister Ilmu Komputer,


Universitas Budi Luhur, Jakarta

"CMSC 411 Lecture 19, Pipelining Data Forwarding". Csee.umbc.edu. Retrieved 2014-
02-08.

https://en.wikipedia.org/wiki/Instruction_pipelining.

Modul-Modul Kuliah Arsitektur dan Organisasi Komputer. Jakarta : Universitas Mercu


Buan

13