Halo agan - agan. Ane kembali lagi nih, artikel sekarang ini merupakan suatu tugas / persyaratan untuk UAS. Maklum, mahasiswa :D. Oke, sudah cukup basa basi nya :)
2. Pipeline Grafis, sering ditemukan dalam sebagian besar unit pemrosesan grafis, yang terdiri dari berbagai unit aritmatik atau unit pemroses sentral lengkap, yang menerapkan berbagai macam tahap dari operasi render yang umum (seperti proyeksi perspektif, kalkulasi warna dan pencahayaan, primitif gambar, dan sebagainya).
3. Pipeline Perangkat Lunak. Dimana keluaran dari suatu program langsung dipakai oleh program lain sebagai masukkan sehingga dapat langsung diproses.
1. Organisasi Prosesor SISD
2. Single
Instruction, Multiple Data Stream – SIMD
3. Multiple Instruction, Single Data Stream – MISD
Pemrograman
Mikro
Unit kendali logika (CLU atau Control Logic Unit)
mengatur seluruh aktifitas perangkat keras di dalam komputer, memberi kode pada
intruksi tersebut untuk menentukan operasi yang akan dilaksanakan, menentukan
sumber dan tujuan data, dan menyebabkan perpindahan data dan eksekusi operasi
yang diperlukan. CLU mengulangi seluruh proses sampai sebuah operasi HALT
secara tiba-tiba masuk kedalam program dan dieksekusi. Suatu unit logika
kendali hard-wired memerlukan
perancangan ulang perangkat keras secara ekstensif jika serangkaian intruksi
harus dikembangkan atau jika sebuah fungsi harus diubah. Sebaliknya, dalam CLU microprogrammed,
serangkaian intruksi mikro (program-mikro) yang berhubungan dengan
Pemrograman mikro adalah proses penerjemahan dan
eksekusi dari setiap instruksi prosesor menjadi urutan instruksi yang lebih
kecil mikro. Ini untuk mengatakan bahwa mikro-program adalah proses penulisan
kode mikro untuk prosesor-mikro. Ini mendefinisikan fungsi prosesor-mikro
sambil mengeksekusi instruksi mesin-bahasa. Juga dikenal sebagai mikro-coding,
konsep pemrograman mikro pertama kali dikembangkan pada tahun 1951 oleh Maurice
Wilkes. Ini adalah teknik yang digunakan dalam menerapkan sebuah Unit Kontrol.
Micro-kode atau mikro-program dikembangkan sebagai instruksi set CPU. Dengan
demikian, insinyur desain CPU menulis mikro-program untuk mengimplementasikan
set instruksi mesin. Dalam proses pengembangan produk perangkat lunak, ini-kode
mikro dapat ditulis atau diubah beberapa kali bahkan selama tahap desain nanti.
fleksibilitas seperti di affords mikro-program besar kebebasan untuk merancang
insinyur untuk mengubah dan / atau datang dengan set instruksi yang lebih kompleks
dan dengan demikian sebagian besar memfasilitasi desain CPU fleksibel. Pada
beberapa komputer, mikro-kode yang disimpan dalam ROM dan karenanya tidak dapat
dimodifikasi. Tapi di komputer yang lebih besar, mereka disimpan dalam EPROM
dan, dengan demikian, dapat digantikan dengan versi segar atau yang lebih baru.
Konsep pemrograman mikro juga digunakan dalam
pengembangan perangkat lunak online. perkembangan pesat dalam teknologi
komputer dalam beberapa tahun terakhir telah membuat konsep pemrograman mikro tampak
agak berlebihan. Program menjadi lebih kompleks dan ini memiliki dampak
langsung pada kinerja perangkat lunak dan pembangunan. Interpreter dan compiler
telah membuat kode tingkat rendah dari perintah tingkat tinggi. Kemajuan
tersebut telah digantikan keunggulan microprogramming. Ada telah skema desain
CPU yang tidak menggunakan pemrograman mikro seperti TTA Prosesor, Superscaler
Prosesor, Prosesor RISC, dan Prosesor RISC. Pemrograman mikro menawarkan suatu
pendekatan yang lebih terstruktur untuk merancang unit kendali logika (CLU)
dibandingkan dengan kendali hard-wired. Rancangan pemrograman mikro relatif
mudah diubah-ubah dan dibetulkan,menawarkan kemampuan diagnostik yang lebih
baik dan lebih dapat diandalkan daripada rancangan hard-wired. Karena waktu
akses memori kendali ROM menentukan kecepatan operasi CLU maka kendali
microprogrammed mungkin menghasilkan CLU yang lebih lambat dibandingkan dengan
kendali hard-wired.Alasannya adalah bahwa waktu yang diperlukan untuk
menjalankan suatu instruksi-mikro juga harus mencakup waktu akses ROM.
Sebaliknya, suatu keterlambatan dalam CLU hard-wired hanya mungkin disebabkan
oleh keterlambatan waktu penyebaran melalui perangkat keras, yang relatif
sangat kecil. Bagaimanapun juga, ilmu ekonomi kelihatannya lebih menyukai
kendali hard-wired hanya jika sistem itu tidak terlalu kompleks dan hanya
memerlukan beberapa operasi kendali.
Komputer Pipeline
adalah suatu teknik implementasi dengan mana
berbagai instruksi dapat dilaksanakan secara tumpang tindih (overlapped; hal
ini mengambil keuntungan paralelisme yang ada di antara tindakan yang
diperlukan untuk mengeksekusi suatu instruksi. Teknik pipeline ini dapat
diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang
tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti
pada instruksi yang dijalankan oleh microprocessor.
Pada umumnya
efisiensi sebuah komputer dinilai berdasarkan kecepatan perangkat keras dan fasilitas-fasilitas perangkat lunak. Penilaian ini disebut
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.
Dalam komputer,
pipeline adalah satu set dari elemen pemrosesan data dihubungkan secara seri,
sehingga hasil keluaran dari satu elemen adalah masukkan bagi elemen
berikutnya. Elemen - elemen dari sebuah pipeline sering dijalankan secara
paralel.
Contoh pipeline dalam komputer adalah:
1. Pipeline Instruksi. Biasanya digunakan di unit
pemroses sentral agar istruksi - instruksi dapat dijalankan dalam satu waktu
dalam satu sirkuit digital. Biasanya sirkuitnya dibagi dalam beberapa tahap,
termasuk decode instruksi, aritmatika dan tahap - tahap penjemputan data dari
register, dimana setiap tahap melakukan satu instruksi dalam satu waktu. 2. Pipeline Grafis, sering ditemukan dalam sebagian besar unit pemrosesan grafis, yang terdiri dari berbagai unit aritmatik atau unit pemroses sentral lengkap, yang menerapkan berbagai macam tahap dari operasi render yang umum (seperti proyeksi perspektif, kalkulasi warna dan pencahayaan, primitif gambar, dan sebagainya).
3. Pipeline Perangkat Lunak. Dimana keluaran dari suatu program langsung dipakai oleh program lain sebagai masukkan sehingga dapat langsung diproses.
Kategori Pipeline:
1.Pipeline Unit Arithmetic : berguna untuk operasi vector
2.Pipeline Unit Instruction : berguna untuk komputer yang mempunyai
set instruksi yang sederhana
Proses Pipeline :
Instruksi-instruksi dari
program yang sudah berurutan kemudian satu-persatu memasuki pipeline prosesor
untuk diproses. Setiap tingkat pipeline memerlukan satu clock cycle untuk
menyelesaikan satu instruksi dan meneruskan hasilnya ke pipeline berikutnya.
3 kesulitan pada metode Pipeline
- 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.
- 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.
Generic Pipeline
ada 4 tahapan dalam generic pipeline :
1. Fetch : Ambil
instruksi dari memori
2. Decode : Terjemahkan
arti dari instruksi
3. Execute : Eksekusi
instruksi yang telah di-decode
4. Write-back : Simpan hasil
eksekusi ke memori
Dekomposisi Pengolahan Instruksi
a.
Fetch
Adalah pengambilan data ke memori atau register
b.
Execute
Menginterpretasikan opcode dan melakukan operasi yang diindikasikan
c.
Fetch
Instruction (FI)
Membaca instruksi berikutnya ke dalam buffer
d.
Decode
Instruction (DI)
Menentukan Opcode dan operand specifier
e.
Calculate
Operand (CO)
Menghitung alamat efektif seluruh operand sumber. Hal ini mungkin melibatkan displacement, register indirect, atau
bentuk kalkulasi alamat lainnya.
f.
Fetch
Operand (FO)
mengambil semua operand dari memori. Operand-operand yang berada di
register tidak perlu diambil.
g.
Execute
Insruction (EI)
Melakukan operasi yang diindikasikan dan menyimpan hasilnya
h.
Write
Operand (WO)
Menyimpan hasilnya di dalam memori.
ADA 2 TAHAP
1. Tahapan pertama mengambil instruksi dan mem-buffer-kannya.
2.
Ketika tahapan kedua bebas, tahapan
pertama mengirimkan instruksi yang di-buffer-kan tersebut. Pada saat tahapan
kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori
yang tidak dipakai untuk mengambil dan membufferkan instruksi berikutnya.
- Proses ini disebut instruction prefetch atau fetch overlap.
Penanganan Percabangan:
1. Multiple Streams
2. Prefetch Target percabangan
3. Loop buffer
4. Memprediksi percabangan
5. Delay percabangan
Konsep Pipeline adalah konsep alami di kehidupan
sehari-hari. Umpamakan sebuah perakitan mobil, asumsikan beberapa langkah di
jalur perakitan adalah untuk memasang mesin, memasang kap, dan memasang roda
(dalam urutan tersebut, dengan berbagai macam kemungkinan langkah - langkah
lain di antara langkah - langkah tersebut). Sebuah mobil di jalur perakitan
hanya satu dari tiga langkah diatas dapat selesai dalam suatu waktu. Setelah
sebuah mobil telah terpasang mesinnya, mobil tersebut pindah ke pemasangan kap,
dan mobil kedua sedang dalam tahap pemasangan mesin. Setelah mobil pertama
selesai memasang kap, mobil kedua dalam tahap pemasangan kap, mobil pertama
dalam tahap pemasangan roda, dan mobil ketiga yang baru masuk dalam tahap
pemasangan mesin. Dan begitu seterusnya. Jika seumpama pemasangan mesin butuh
20 menit, pemasangan kap butuh 5 menit dan pemasangan roda butuh 10 menit, maka
menyelesaikan ketiga mobil tersebut jika satu mobil dirakit dalam satu waktu
akan membutuhkan waktu 105 menit. Sedangkan jika menggunakan jalur perakitan
seperti yang disebutkan diatas, waktu yang diperlukan untuk menyelesaikan
ketiganya hanya 75 menit.
Pemrosesan Paralel
Pemrosesan paralel (parallel processing) adalah
penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara
simultan. Idealnya, parallel processing membuat program berjalan lebih cepat
karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali
sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa
berkaitan di antaranya.
Komputasi paralel adalah salah satu teknik
melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer
secara b ersamaan. Biasanyadiperlukan saat kapasitas yang diperlukan sangat
besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan
proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini
diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang
dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk
menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak
pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur
distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai
harus membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel adalah teknik pemrograman
komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik
dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda
dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk
meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara
bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa
diselesaikan.
Komputasi paralel membutuhkan:
• algoritma
• bahasa pemrograman
• compiler
Sebagian besar komputer hanya mempunyai satu CPU, namun ada yang
mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer
dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya
dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan
software canggih yang disebut distributed processing software. Parallel
processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa
program sekaligus. Parallel processing disebut juga parallel computing. Ø
Klasifikasi arsitektur Komputer Parallel
Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi
Prosesor dibagi menjadi 4 :
A. SISD (Single Instruction Single Data Stream) Arus Instruksi Tunggal
dan Data Tunggal
B. SIMD (Single Instruction Multiple Data Stream) Arus Instruksi
Tunggal dan Multiple Data
C. MISD (Multiple Instruction Single Data Stream) Arus Multiple
Instruksi dan Data Tunggal
D. MIMD (Multiple Instruction Multiple Data Stream) Arus Multiple
Instruksi dan Multiple Data
• Prosesor tunggal
• Aliran instruksi tunggal
• Data disimpan dalam memori
tunggal
• Uni-processor
Keterangan:
CU : Control Unit
IS : Instruction Stream (Arus
Instruksi)
PU : Processing Unit (Unit Pengolah
yang biasa disebut ALU)
DS : Data Stream (Arus Data)
MU : Memory Unit (Unit Memori)
• Single machine instruction
• Mengontrol eksekusi secara
simultan
• sejumlah elemen-elemen
pengolahan
• Berdasarkan Lock-step
• Setiap pengolahan elemen memiliki
hubungan dengan memori data
• Setiap instruksi dieksekusi
pada kumpulan data yang berbeda oleh prosesor yang berbeda
• Prosesor Vector and array
• Rangkaian dari data
• Dikirimkan ke kumpulan
prosesor
• Setiap prosesor mengeksekusi
urutan instruksi yang berbeda
• Belum pernah diimplementasikan
(komesial)
4.
Multiple Instruction, Multiple Data Stream- MIMD
•
Kumpulan/sejumlah prosesor
•
Mengeksekusi secara simultan urutan instruksi yang berbeda
•
Kumpulan data yang berbeda
•
SMP, Cluster and sistem NUMA