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.
Definisi
pipeline
2.
Jenis-jenis
pipeline
3.
Kinerja
pipeline
4.
Pipeline
Hazard
5.
RISC
6.
Contoh
penerapan pipeline pada sequential, parallel, dan pipelining.
1.
Meningkatkan
pengetahuan tentang pipelin.
2.
Mampu
menganalisis kinerja dari pipeline.
3. Mampu mengembangkan untuk kinerja dari pipeline.
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.
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.
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.
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 :
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.
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.
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.
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
Comments
Post a Comment