Pipeline

 

1.1    Latar Belakang

Arsitektur von Neumann merupakan salah satu arsitektur yang kerap digunakan sebagai dasar untuk mendesign sebuah sistem komputer. 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 yang akan menghambat kinerja dari pipeline itu sendiri.

Dalam makalah ini kami akan membahas tentang pipeline baik dari segi kinerja, masalah, dan cara mengatasinya.

 

1.2    Rumusan Masalah

1.     Definisi pipeline

2.     Jenis-jenis pipeline

3.     Kinerja pipeline

4.     Pipeline Hazard

5.     RISC

6.     Contoh penerapan pipeline pada sequential, parallel, dan pipelining.

 

1.3    Tujuan.

1.     Meningkatkan pengetahuan tentang pipelin.

2.     Mampu menganalisis kinerja dari pipeline.

3.     Mampu mengembangkan untuk kinerja dari pipeline.


BAB II
PEMBAHASAN

2.1  DEFINISI

Pengertian dari pipeline di Komputer adalah 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 mikroprosesor. Pada mikroprosesor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai. Setelah selesai baru intstruksi berikutnya dilakukan. Sedangkan mikroprosesor 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 mikroprosesor akan didapatkan peningkatan dalam waktu kerja mikroprosesor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara paralel dalam 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 terhadapt data bias muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus jump juga perlu diperhatikan, Karena ketika sebuah instruksi meminta untuk melompat ke suatu memori tertentu akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap tidak mendukung mengharapkan terjadinya perubahan program counter.

 

2.2  JENIS- JENIS 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) mengajukan tiga skema untuk mengklasifikasikan pipeline menurut konfigurasi dan strategi kendalinya : unifungsi atau multifungsi dan skalar atau vector.

2.2.1    Berdasarkan Fungsional

pipeline dapat diklasifikasikan menjadi tiga kelompok :

1.     Pipeline Aritmatika,

Sebuah pipeline aritmatika membagi masalah aritmatika menjadi berbagai sub masalah untuk eksekusi di berbagai segmen pipeline. Ini digunakan untuk operasi floating point, perkalian dan berbagai perhitungan lainnya. Proses atau flowchart pipa aritmatika untuk penambahan floating point ditunjukkan pada diagram.

Penambahan floating point menggunakan pipa aritmatika:

Sub operasi yang dilakukan dalam kasus ini:

                         

1.     Bandingkan eksponennya.

2.     Sejajarkan mantissa.

3.     Tambahkan atau kurangi mantissa.

4.     Normalisasikan hasilnya

Pertama-tama dua eksponen dibandingkan dan yang lebih besar dari dua eksponen dipilih sebagai eksponen hasil. Selisih eksponen kemudian memutuskan berapa kali kita harus menggeser eksponen yang lebih kecil ke kanan. Kemudian setelah menggeser eksponen, kedua mantissa akhirnya terjadi penambahan kedua angka diikuti dengan normalisasi hasil pada segmen terakhir.

 

Contoh

Mari kita tentukan dua angka

X=0.3214*10^3 dan Y=0.4500*10^2

Penjelasan :

Pertama-tama kedua eksponen dikurangkan untuk menghasilkan 3-2 = 1. Jadi 3 menjadi eksponen hasil dan eksponen yang lebih kecil dikurangkan 1 kali ke kanan untuk memberikan

 

Y=0.0450*10^3

 

Akhirnya dua angka ditambahkan untuk menghasilkan

 

Z=0.3664*10^3

 

Karena hasilnya sudah dinormalisasi hasilya tetap sama.

2.     Pipeline Instruksi

Dalam aliran instruksi dapat dieksekusi dengan Overlapping Fetch (OF), Decode dan mengeksekusi fase siklus instruksi Jenis teknik ini digunakan untuk meningkatkan keluaran dari sistem komputer Sebuah pipeline membaca instruksi dari memori sementara instruksi sebelumnya sedang dieksekusi di bagian pipeline lain dengan demikian kita dapat mengeksekusi beberapa instruksi secara bersamaan. Pipeline akan lebih efisien jika siklus instruksi dibagi menjadi segmen-segmen dengan durasi yang sama.

Dalam kasus yang paling umum, komputer perlu memproses setiap instruksi dalam urutan langkah-langkah berikut:


1.     Fetch instruksi dari memori (FI)

2.     Decode instruksi (DA)

3.     Hitung alamat efektif

4.     Fetch operan dari memori (FO)

5.     Jalankan instruksi (EX)

6.     Simpan hasilnya di tempat yang tepat

 

Flowchart untuk Pipeline Instruction ditunjukkan di bawah ini.

Berikut contoh intruction pipeline :

Contoh :

Di sini instruksi diambil pada siklus clock pertama di segmen 1. Sekarang didekode pada siklus clock berikutnya, kemudian operan diambil dan akhirnya instruksi dieksekusi. Kita dapat melihat bahwa di sini fase fetch dan decode tumpang tindih karena pipelining. Pada saat instruksi pertama sedang diterjemahkan, instruksi berikutnya diambil oleh pipeline

Dalam kasus instruksi ketiga kita melihat bahwa itu adalah instruksi yang didekodekan. Di sini ketika sedang didekodekan, instruksi ke-4 diambil secara bersamaan. Tetapi karena ini hanya instruksi, ia mungkin menunjuk ke beberapa instruksi lain ketika didekodekan. Jadi instruksi keempat disimpan Ketika dieksekusi maka instruksi keempat disalin kembali dan fase lainnya berlanjut seperti biasa.

3.     Pipeline prosesor

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.

 

2.2.2    Berdasarkan Konfigurasi

pipeline dapat diklasifikasikan menjadi 3 kelompok :

1.     Unifungsi dan Multifungsi

Kemampuan suatu pipeline menjalankan hanya satu jenis pokok operasi disebut sebagai pipeline 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.

2.     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 dalam pipe. 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 mana untuk 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.

3.     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 vektor.

 

2.3  KINERJA PIPELINE

Derajat konkurensi yang lebih tinggi dapat dicapai jika banyak pipeline instruksi diterapkan pada prosesor. Hal ini berarti digunakannya banyak unit fungsional, menciptakan jalur paralel dimana berbagai instruksi yang berbeda dapat dieksekusi secara paralel. Dengan pengaturan tersebut, maka dimungkinkan untuk memulai beberapa instruksi pada tiap siklus clock. Mode operasi ini disebut eksekusi superscalar. Jika mode ini dapat bertahan dalam waktu yang lama selama eksekusi program, maka instruksi-instruksi yang dilakukan memory dapat dipercepat. Tentu saja, eksekusi paralel harus mempertahankan kebenaran logika program, sehingga hasil yang diperoleh harus sama dengan hasil dari eksekusi serial instruksi program. Banyak dari prosesor performa tinggi saat ini didesain untuk bekerja dengan cara tersebut.

Di sini suatu satuan membaca instruksi tunggal mengambil pasangan-pasangan dari instruksi-instruksi secara bersama dan memasukkan masing-masing pasangan ke dalam pipelinenya sendiri, lengkap dengan ALUnya sendiri bagi operasi paralel. Agar dapat beroperasi secara paralel, kedua instruksi tersebut tidak boleh berebutan dalam menggunakan sumber daya (contoh, register-register), dan salah satu instruksi tidak boleh bergantung pada hasil dari instruksi yang lain. Seperti halnya dengan sebuah pipeline tunggal, begitu pula kompiler harus menjamin situasi ini tetap terjaga (yaitu, hardware tidak memeriksa dan memberikan hasil-hasil yang salah jika instruksi-instruksi tidak sebanding), atau konflik-konflik dideteksi dan dihilangkan selama pelaksanaan dengan menggunakan hardware tambahan.

Meskipun pipeline-pipeline, tunggal atau ganda, sebagian besar digunakan pada mesin-mesin RISC (komputer 386 dan generasi-generasi pendahulunya tidak memiliki pipeline satupun), Intel 486 adalah yang pertama kali mulai memperkenalkan pipeline-pipeline ke dalam CPU-CPUnya. Intel 486 memiliki satu pipeline dan Pentium memiliki dua pipeline lima tahap, meskipun pembagian tugas sebenarnya antara tahap 2 dan tahap 3

Pipeline utama, yang disebut pipeline u, dapat menjalankan sebuah instruksi Pentium yang selalu berubah-ubah. Pipeline kedua, yang disebut pipeline v, dapat menjalankan hanya instruksi-instruksi integer sederhana (dan juga satu instruksi titik mengambang sederhanaFXCH). Peraturan-peraturan yang rumit menentukan apakah sepasang instruksi sebanding sehingga mereka dapat dijalankan secara paralel. Jika instruksi-instruksi yang berpasangan tidak cukup sederhana atau tidak sebanding, hanya pasangan pertama yang dijalankan (dalam pipeline u). Pasangan kedua kemudian disimpan dan dipasangkan dengan instruksi berikutnya. Instruksi-instruksi selalu dijalankan secara berurutan. Jadi kompiler-kompiler khusus Pentium yang memproduksi pasangan-pasangan instruksi yang sebanding dapat memproduksi program-program yang beroperasi lebih cepat dibanding kampiler-kompiler lama. Beralih ke empat pipeline dapat dilakukan, namun bila hal ini dilakukan akan menduplikat terlalu banyak hardware. Bahkan, suatu pendekatan berbeda digunakan pada high end CPU.

 

2.4  PIPELINE HAZARD

Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan (instruksi berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards. Hazards mengurangi performansi dari CPU dimana percepatan ideal tidak dapat dicapai.

Ada 3 kelompok Hazards :

2.4.1       Structural Hazards

Structural hazard terjadi karena adanya konflik dalam penggunaan resource oleh masing-masing instruksi yang sedang berada dalam pipeline. Pipelining pada dasarnya memungkinkan beberapa instruksi dikerjakan dalam waktu yang bersamaan. Ketika masing-masing instruksi tersebut dieksekusi, mesin harus mampu memenuhi resource yang dibutuhkan. Ada kalanya mesin tidak mampu melakukan hal tersebut, yang menyebabkan sebuah resource mengalami konflik dalam penggunaannya oleh instruksi-instruksi yang kebetulan akan mengakses resource yang sama. Kondisi umum yang dapat menyebabkan structural hazard adalah sebagai berikut :

Ada functional unit yang belum siap untuk digunakan. Functional unit adalah komponen yang dimiliki processor yang mampu melakukan komputasi sesuai dengan perintah yang dibawa sebuah instruksi. Ada kalanya functional unit yang dimiliki processor belum siap untuk di-pipeline. Hal ini berakibat instruksi yang sudah di-pipeline harus di-stall untuk beberapa clock cycle sampai functional unit siap untuk di-pipeline. Resource belum seluruhnya diduplikasi. Duplikasi resource memungkinkan resource yang sama diakses oleh beberapa instruksi yang berbeda. Contoh umum resource yang dapat diduplikasi adalah memory.

Cara mengatasi structural hazard adalah dengan melakukan stall terhadap pipeline selama 1 clock atau lebih sesuai dengan prediksi control logic. Stall selama 1 cycle atau lebih ini menyebabkan adanya delay terhadap salah satu instruksi yang terlibat, yang pada akhirnya menghilangkan terjadinya konflik pada resource yang akan diakses.

 

2.4.2       Data Hazards

Data hazard disebabkan oleh terjadinya perbedaan urutan eksekusi insruksi baca dan tulis dibanding sebelum instruksi tersebut belum dipecah secara paralel. Urutan instruksi menjadi penting karena ada kalanya sebuah instruksi membutuhkan input dari hasil operasi instruksi sebelumnya. Data hazard dibagi 3, yaitu :

 

1.     Read after Write (true data dependency)

Operasi baca dilakukan setelah operasi tulis selesai, di mana nilai hasil pembacaan dibutuhkan oleh operasi tulis tersebut.

 

2.     Write after Write (Output dependency)

Operasi tulis dilakukan tepat setelah sebuah operasi tulis lainnya dilakukan. Dapat terjadi pada pipeline yang membolehkan operasi tulis dilakukan dilebih dari satu stage. Pada kasus ini sebuah register digunakan oleh dua operasi tulis.

 

3.     Write after Read (Anti data dependency)

Operasi tulis dilakukan setelah operasi baca, di mana operasi baca seharusnya membaca nilai yang dihasilkan oleh operasi tulis tersebut. Secara umum, penanganan ketika akan terjadi sebuah data hazard (terutama true data dependency) adalah dengan melakukan stall terhadap instruksi yang membutuhkan nilai dari instruksi lainnya. Hal ini menyebabkan adanya penalty terhadap kinerja dari pipeline tersebut. Untuk mengurangi penalty yang harus dihadapi, maka sebuah teknik yang dikenal dengan forwarding diimplementasi. Forwarding memungkinkan nilai hasil instruksi yang dihasilkan pada tahapan lanjut pipeline langsung disimpan pada memory tanpa harus dipipeline terlebih dahulu. Ketika ada sebuah instruksi yang membutuhkan nilai yang dihasilkan oleh instruksi di tahapan lanjut pipeline, instruksi tersebut memiliki 2 pilihan input : nilai yang dihasilkan oleh instruksi sebelumnya secara normal, atau nilai yang di-forward oleh instruksi di tahapan pipeline setelah instruksi tersebut.

 

2.4.3       Control Hazards

Hazard yang terjadi karena adanya instruksi yang dieksekusi sebelum seluruh branch pada jalur eksekusi selesai dievaluasi. Control hazard dapat menyebabkan terjadinya perubahan nilai PC (Program Counter). Perubahan ini mengharuskan adanya program baru yang harus dieksekusi, menyebabkan seluruh instruksi yang sudah masuk pipeline menjadi tidak berguna untuk dieksekusi. Cara mengatasi control hazard adalah dengan melakukan branch handling dan branch prediction.

 

2.5  REDUCED INSTRUCTION SET COMPUTER (RISC)

Kata “reduced” berarti pengurangan pada set instruksi. RISC merupakan rancangan arsitektur CPU yang mengembil dasar filosofi bahwa prosesor dibuat dengan arsitektur yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar yang diperlukan saja. Dengan kata lain RISC adalah arsitektur komputer dengan kumpulan perintah (instruksi) yang sederhana, tetapi dalam kesederhanaan tersebut didapatkan kecepatan operasi setiap siklus instruksinya. Kebanyakan pada proses RISC , instruksi operasi dasar aritmatik hanya penjumlahan dan pengurangan, untuk perkalian dan pembagian sudah dianggap operasi ang kompleks. RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam penyusunan kompiler yang pada akhirnya dapat memaksimumkan kinerja program yang ditulis dalam bahasa tingkat tinggi. Ada beberapa elemen penting dalam arsitektur RISC, yaitu:

1.     Set instruksi yang terbatas dan sederhana

2.     Register general-purpose yang berjumlah banyak, atau pengguanaan teknologi kompiler untuk mengoptimalkan pemakaian regsiternya.

3.     Penekanan pada pengoptimalan pipeline instruksi.

Ciri-ciri karakteristik RISC

1.     Instruksi berukuran tunggal.

2.     Ukuran yang umum adalah 4 byte.

3.     Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.

4.     Tidak terdapat pengalamatan tak langsung.

5.     Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika .

Ada tiga buah elemen yang menentukan karakter arsitektur RISC, yaitu:

1.     Penggunaan register dalam jumlah yang besar. Hal ini dimaksudkan untuk mengoptimalkan pereferensian operand.

2.     Diperlukan perhatian bagi perancangan pipeline instruksi. Karena tingginya proporsi instruksi pencabangan bersyarat dan prosedur call, pipeline instruksi yang bersifat langsung dan ringkas akan menjadi tidak efisien.

3.     Terdapat set instruksi yang disederhanakan (dikurangi).

 

2.6. CONTOH SIKLUS PIPELINE DALAM PENERAPAN PIPELINE MENGGUNAKAN SEQUENTIAL, PARALLEL DAN PIPELINING.


Proses dalam pabrik 5 pengemasan secara sukuensial membutuhkan

1 menempatkan kotak kosong,1 meletakkan kue ke kotak, 1 menyegel, 1 melabel, 1meletakkan di dalam container, waktu total = 5x90 menit

 

Bayangkan sebuah pabrik kue di mana proses pembakaran dan pengemasan kue untuk pengiriman dilakukan secara terpisah.

Departemen pengiriman  5 pekerja untuk prosessan 5  pengemasan kue tersebut. Maka dapat dimisalkan a,b,c,d dan e mempunyai satu set dalam pengemasan kue sampai memindahkan ke kontainer.

Pekerja 1  menempatkan sebuah kotak kue kosong  tersebut ke meja memerlukan waktu 10 menit. Kotak tersebut dibawa ke pekerja 2, yang memasukkan sebuah kue yang sudah dibakar ke dalam kotak itu butuh waktu 30 menit. Sesaat kemudian, kotak tersebut sampai di pos kerja pekerja 3, yang kemudian menutup dan menyegel kotak tersebut butuh waktu 20. Selanjutnya kotak tersebut diteruskan ke pekerja 4, yang memasang sebuah label pada kotak kue itu butuh waktu 10 menit. Terakhir, pekerja 5 memindahkan kotak dari meja tersebut ke dalam sebuah kontainer besar untuk kemudian dikirim ke sebuah supermarket butuh waktu 20 menit dengan 1 orang.

Untuk pengemasan a memerlukan waktu 90 menit

Untuk pengemasan b memerlukan waktu 90 menit

Untuk pengemasan c memerlukan waktu 90 menit

Untuk pengemasan d memerlukan waktu 90 menit

Untuk pengemasan e memerlukan waktu 90 menit

Proses pabrik kue secara urutan untuk 5 set kotak kue yang dicuci membutuhkan waktu 7 jam 50 menit

 


Departemen pengiriman  5 pekerja untuk prosessan 5  pengemasan kue tersebut. Maka dapat dimisalkan a,b,c,d dan e mempunyai satu set dalam pengemasan kue sampai memindahkan ke kontainer.

Pekerja 1  menempatkan sebuah kotak kue kosong  tersebut ke meja memerlukan waktu 10 menit. Kotak tersebut dibawa ke pekerja 2, yang memasukkan sebuah kue yang sudah dibakar ke dalam kotak itu butuh waktu 30 menit. Sesaat kemudian, kotak tersebut sampai di pos kerja pekerja 3, yang kemudian menutup dan menyegel kotak tersebut butuh waktu 20. Selanjutnya kotak tersebut diteruskan ke pekerja 4, yang memasang sebuah label pada kotak kue itu butuh waktu 10 menit. Terakhir, pekerja 5 memindahkan kotak dari meja tersebut ke dalam sebuah kontainer besar untuk kemudian dikirim ke sebuah supermarket butuh waktu 20 menit dengan 5 orang dalam waktu yang bersamaan.

pengemasan a, b , c, d dan e dikemas dalam waktu yang bersamaan disatu waktu dengan 5 orang pengerjaan sampai memindahkan ke kontainer dengan total waktu pengerjaan 5 orang tersebut 90 menit

 



pada siklus ini Misal a,b,c,d dan e berturut turut adalah 5 pekerja masing masing mempunyai satu  set Pengemasan untuk menempatkan kotak kosong, meletakkan kue ke kotak, menyegel, melabel dan meletakkan di dalam kontainer. Menempatkan kotak kosong memerlukan waktu 10 menit, meletakkan kue ke kotak butuh 30 menit, menyegel kotak kue butuh waktu 20 menit, melabel kotak butuh 10 menit, dan memindahkan kotak ke kontainer butuh 20 menit dengan 1 orang

-        tahap 1 hanya menempatkan kotak kosong ke meja a dengan waktu 30 menit

-        tahap 2 melakukan meletakkan kue ke kotak a dan menempatkan kotak kosong ke meja b dengan waktu pengerjaan 30 menit

-        tahap 3 melakukan 3 pekerjaan yaitu , menyegel  kotak a, meletakkan kue ke kotak b, dan meletakkan kotak kosong ke meja c  dengan waktu 30 menit

-        tahap 4 pengemasan sama seperti tahap 3 tapi ada 4 pekerjaan yaitu melabel kotak  a, menyegel kotak b,  meletakkan kue ke kotak c, dan menempatkan kotak kosong  ke meja d dengan waktu 30 menit.

-        tahap 5 melakukan 5 pekerjaan  pengemasan a telah selesai, dan lanjut proses memindahkan kotak ke kontainer. Melabel kotak b,  menyegel kotak c, meletakkan kue ke kotak d, dan menempatkan kotak kosong ke meja e  

-        tahap 6 melakukan 4 pekerjaan  pengemasan b telah selesai, dan lanjut proses memindahkan kotak ke kontainer. Melabel kotak c,  menyegel kotak d, dan meletakkan kue ke kotak e.  

-        tahap 7 melakukan 3 pekerjaan  pengemasan c telah selesai, dan lanjut proses memindahkan kotak ke kontainer. Melabel kotak d,  menyegel kotak e.

-        tahap 8 melakukan 2 pekerjaan  pengemasan d telah selesai, dan lanjut proses memindahkan kotak ke kontainer. Melabel kotak e.

-        tahap 9 pengemasan e telas selesai lanjut proses memindahkan kotak ke kontainer.

-        Pada tahap 9 pengerjaan untuk 5 pengemasan dengan semua proses dengan 1 orang memakan waktu 4 jam 50 menit untuk menyelesaikan.

 

Laundry sekuensial



Misal a,b,c dan d berturut turut adalah anna, brian, charlie, dan dafid masing masing mempunyai satu  set

Pakaian untuk dicuci, dikeringkan dan dilipat.Mencuci memerlukan waktu 30 menit, mengeringkan butuh

40 menit dan melipat butuh 20 menit dengan 1 orang

Untuk cucian a memerlukan waktu 90 menit

Untuk cucian b memerlukan waktu 90 menit

Untuk cucian c memerlukan waktu 90 menit

Untuk cucian d memerlukan waktu 90 menit

Proses laundry secara urutan untuk 4 set pakaian yang dicuci membutuhkan waktu 6 jam


Laundry paralel



Misal a,b,c dan d berturut turut adalah anna, brian, charlie, dan dafid masing masing mempunyai satu  set

Pakaian untuk dicuci, dikeringkan dan dilipat. Mencuci memerlukan waktu 30 menit, mengeringkan butuh

40 menit dan melipat butuh 20 menit dengan 4 orang dalam waktu yang bersamaan

Cucian a, b , c dan d dicuci dalam waktu yang bersamaan disatu waktu dengan 4 orang pengerjaan

melipat(setrika) dengan total waktu pengerjaan 4 orang tersebut 90 menit


laundry pipelining

 


pada siklus ini Misal a,b,c dan d berturut turut adalah anna, brian, charlie, dan dafid masing masing mempunyai satu  set Pakaian untuk dicuci, dikeringkan dan dilipat. Mencuci memerlukan waktu 30 menit, mengeringkan butuh 40 menit dan melipat butuh 20 menit dengan 1 orang

-        tahap 1 hanya mencuci cucian a dengan waktu 40 menit

-        tahap 2 melakukan pengeringan cucian a dan mencuci cucian b dengan waktu pengerjaan 40 menit

-        tahap 3 melakukan 3 pekerjaan yaitu melipat cucian a, mengeringkan cucian b, dan mencuci cucian c  dengan waktu 40 menit

-        tahap 4 cucian a telah selesai, dan lanjut proses melipat dan menyetrika cucian b, mengeringkan cucian c dan mencuci cucian ddengan waktu 40 menit

-        tahap 5 cucian b telah selesai, dan lanjut proses melipat dan menyetrika cucian c dan mengeringkan cucian d

-        tahap 6 cucian c telah selesai lanjut proses melipat cucian d

-        pada 6 tahap mengerjaan untuk 4 cucian dengan proses setrika dan melipat dengan 1 orang memakan waktu 3 jam untuk menyelesaikannya


pipa berisi bola sequensial



pipa berisi bola berjalan ada 3 bola yaitu merah, biru dan kuning dengan masing masing warna 4 bola yang dimasukkan kedalam  1 pipa yang sama

-        Sebuah pipeline system dianalogikan sebagai sebuah pipa yang berisi bola yang mengelinding

-        Setelah pipa dipenuhi bola warna pertama maka bola itu akan melakukan output dari pipa dan akan menginput bola warna kedua

-        Setelah pipa penuh dengan bola warna kedua maka bola warna kedua akan keluar dan bola warna ketiga akan masuk

-        Setelah pipa penuh dengan bola ketika maka bola ketiga akan keluar

-        Proses ini memakan waktu perbola masuk 4 tahap dan perbola keluar 4 tahap maka total dari 3 bola berwarna 8x3 = 24 tahap memasukkan dan mengeluarkan bola dari dalam pipa

Pipa berisi bola parralel



pipa berisi bola berjalan ada 3 bola yaitu merah, biru dan kuning dengan masing masing warna 4 bola yang dimasukkan kedalam  3 pipa berbeda dalam waktu bersamaan

-        Sebuah pipeline system dianalogikan sebagai sebuah pipa yang berisi bola yang mengelinding

-        Pada 1 tahap pada 3 pipa masing masing dimasuki 3 bola

-        Pada pipa 1 digelindingkn bola merah

-        Pada pipa 2 digelingdingkan bola kuning

-        Pada pipa 3 digelindingkan bola merah

-        Masing masing pipa melakukan tahapan memasukkan bola satu persatu

-        Setelah 4 bola masuk makan akan gelindingkan keluar dari pipa pada waktu yang bersamaan

-        Proses ini memakan 8 tahapan dalam 1 waktu penggelindingan


Pipa berisi bola pipelining

 


Analogi lain : pipa berisi bola berjalan

-        Sebuah pipeline system dianalogikan sebagai sebuah pipa yang berisi bola yang mengelinding

-        Setelah pipa dipenuhi bola,setiap kali masuk satu bola disisi input,pasti akan keluar bola lain disisi output

    

        KESIMPULAN

Dengan adanya teknik pipeline pada pemrosesan di komputer menyebabkan komputer berkembang pesat dan tidak hanya itu proses pipeline ini dapat digunakan juga dalam kegiatan sehari hari seperti pabrik kue, laundry dan, pipa berisi bola.

 

REFERENSI

http://andi-granderist.blogspot.co.id/2013/01/pipelining-risc-dan-prosesor-paralel.html

https://www.google.co.id/search?q=klasifikasi+pipeline&oq=klasifikasi+pipeline&aqs=chrome..69i57.10565j0j8&sourceid=chrome&ie=UTF-8#

https://id.wikipedia.org/wiki/Pipeline

https://irfanirwantsilmi.wordpress.com/7-pipelining-risc-dan-prosesor-paralel/

https://yogafirza.blogspot.com/2017/12/pipeline-hazard.html

https://www.herdaynote.com/2020/07/pipeline-arkom-orkom.html

https://helmifajriyanto.blogspot.com/2017/12/komputer-pipeline.html?m=1

https://www.geeksforgeeks.org/arithmetic-pipeline-and-instruction-pipeline/

http://apeacetol.blogspot.com/2008/12/pipelining.html

BIODATA MAHASISWA

Comments