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.
Ø
Konsep
Pipeline/Pipelining
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:
·
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.
·
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).
·
Pipeline perangkat
lunak. Dimana keluaran dari suatu program langsung dipakai oleh program lain
sebagai masukkan sehingga dapat langsung diproses.
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 bersamaan. 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 :
Ø SISD (Single Instruction Single Data Stream) Arus
Instruksi Tunggal dan Data Tunggal.
Ø SIMD (Single Instruction Multiple Data Stream) Arus
Instruksi Tunggal dan Multiple Data.
Ø MISD (Multiple Instruction Single Data Stream) Arus
Multiple Instruksi dan Data Tunggal.
Ø MIMD (Multiple Instruction Multiple Data Stream) Arus
Multiple Instruksi dan Multiple Data
1.
Organisasi Prosesor
SISD
Ø 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)
2.
Single Instruction,
Multiple Data Stream – SIMD
Ø
Single machine
instruction
Ø
Mengontrol
eksekusi secara simulta
Ø
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
3.
Multiple Instruction,
Single Data Stream – MISD
Ø
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
Sumber :