Apa itu pemrograman Mikro?
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-codingIni 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. 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. Telah ada skema desain CPU yang tidak menggunakan pemrograman mikro seperti TTA Prosesor, Superscaler Prosesor, 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.
Istilah program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun 1950-an ketika dia mengajukan suatu pendekatan baru untuk mengendalikan perancangan unit. Ide ini menarik perhatian banyak ahli dan insinyur komputer pada saat itu, walaupun hal itu tampak tidak realistis karena adanya persyaratan untuk memori kendali yang sangat cepat dan relatif tidak mahal. Situasi ini berubah secara dramatis dengan adanya pengumuman keluarga komputer IBM System/360 pada bulan April 1964. Seluruh model terbesar menyertakan memori kontrol yang cepat dan tidak mahal dan merupakan microprogrammed. Sejak itu, pemrograman mikro menjadi hal yang umum sejalan dengan peningkatan kecepatan dan penurunan harga memori kontrol.
Istilah program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun 1950-an ketika dia mengajukan suatu pendekatan baru untuk mengendalikan perancangan unit. Ide ini menarik perhatian banyak ahli dan insinyur komputer pada saat itu, walaupun hal itu tampak tidak realistis karena adanya persyaratan untuk memori kendali yang sangat cepat dan relatif tidak mahal. Situasi ini berubah secara dramatis dengan adanya pengumuman keluarga komputer IBM System/360 pada bulan April 1964. Seluruh model terbesar menyertakan memori kontrol yang cepat dan tidak mahal dan merupakan microprogrammed. Sejak itu, pemrograman mikro menjadi hal yang umum sejalan dengan peningkatan kecepatan dan penurunan harga memori kontrol.
Pemrograman Mikro
Unit
Kendali Logika atau Control Logic Unit adalah bagian yang mengatur
seluruh aktivitas perangkat keras di dalam komputer. CLU menyebabkan
suatu instruksi dapat diambil dari memori, memberi kode pada instruksi
tersebut untuk menentukan operasi yang akan dilaksanakan, menentukan
sumber dan tujuan data, dan menyebabkan perpindahan data dan eksekusi
operasi yang diperlukan. CLU menjalankan seluruh proses sampai sebuah
operasi HALT secara tiba-tiba masuk ke dalam program dan dieksekusi.
Kode
instruksi bersama data, tersimpan di dalam memori. Sebuah instruksi
merupakan entitas kompleks yang pelaksanaannya tidak dapat diselesaikan
dalam satu waktu/putaran. Karena itu setelah menginterpretasikan kode
biner suatu instruksi, CLU menghasilkan serangkaian perintah kendali
yang disebut sebagai instruksi-mikro (microinstruction) yang menjalankan
instruksi tersebut. Untuk membedakan sebuah instruksi dan sebuah
instruksi-micro, seringkali instruksi-instruksi disebut sebagai
instruksi-makro (macroinstruction).
Durasi
siklus eksekusi tergantung pada jenis operasi yang akan dikerjakan,
mode pengalamatan data yang digunakan dan jumlah operand yang
diperlukan. CLU mengerjakannya dengan membagi setiap siklus instruksi
menjadi serangkaian keadaan (state), setiap state mempunyai panjang yang
sama dan durasi setiap state sama dengan periode clock/siklus komputer.
Instruksi-mikro
merupakan operasi primitif tingkat rendah yang bertindak secara
langsung pada sirkuit logika suatu komputer. Mereka memerinci
fungsi-fungsi (sinyal-sinyal) seperti berikut:
1. Membuka/menutup suatu gerbang (gate) dari sebuah register ke sebuah BUS.
2. Mengirim data sepanjang sebuah BUS.
3. Memberi inisial sinyal-sinyal kendali seperti READ, WRITE, SHIFT, CLEAR dan SET.
4. Mengirimkan sinyal-sinyal waktu.
5. Menunggu sejumlah periode waktu tertentu.
6. Menguji bit-bit tertentu dalam sebuah register.
Ada dua pendekatan pokok bagi perancangan sebuah CLU yaitu: rancangan hard-wire (atau logika acak) dan rancangan microprogrammed.
Pada pendekatan hard-wired sejumlah gerbang (gate), counter, dan register saling
dihubungkan untuk menghasilkan sinyal-sinyal kendali, setiap rancangan
memerlukan piranti logika dan hubungan yang berbeda-beda. Pada
pendekatan microprogrammed untuk setiap instruksi-mikro disebut
sebagai sebuah program-mikro, untuk setiap instruksi-mikro dan disimpan
dalam sebuah memori kendali (biasanya ROM) dalam CLU. Kemudian waktu
yang diperlukan dan kendali dihasilkan dengan menjalankan suatu
program-mikro untuk masing-masing instruksi-makro.
KENDALI HARD-WIRED
Sewaktu sebuah instruksi ditempatkan dalam register instruksi (IR atau Instruction Register),
CLU mendekode instruksi itu dan menghasilkan serangkaian
instruksi-mikro. Sebagai contoh suatu komputer yang mempunyai 16
instruksi, sehingga setiap instruksi dapat diberi kode dengan sebuah
opcode 4 bit yang unik, sisa word instruksi berisi informasi pengalamatan yang penting seperti register-register yang terlibat, alamat-alamat memori dan offset). Mneumonic-nya diperlihatkan sebagai berikut:
LDR (Load register dari memori)
LDM (Load memori dari suatu register)
ADR (Add ke register)
BRU (Branch/percabangan tidak kondisional)
BRZ (Branch/percabanan pada nol)
KENDALI MICROPROGRAMMED
Istilah
program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun
1950-an ketika dia mengajukan suatu pendekatan baru untuk mengendalikan
perancangan unit. Ide ini menarik perhatian banyak ahli dan insinyur
komputer pada saat itu, walaupun hal itu tampak tidak realistis karena
adanya persyaratan untuk memori kendali yang sangat cepat dan relatif
tidak mahal. Situasi ini berubah secara dramatis dengan adanya
pengumuman keluarga komputer IBM System/360 pada bulan April 1964.
Seluruh model terbesar menyertakan memori kontrol yang cepat dan tidak
mahal dan merupakan microprogrammed. Sejak itu, pemrograman mikro menjadi hal yang umum sejalan dengan peningkatan kecepatan dan penurunan harga memori kontrol.
l Organisasi CLU Microprogrammed
Instruksi-makro disimpan dalam memori utama dan diakses melalui memory address register (MAR) dan memory buffer register (MBR). Instruksi diambil (fetch) ke dalam register instruksi (IR atauinstruction register) dan pengendali-mikro (microcontroller atau sequencer) yang bersesuaian. Alamat awal program-mikro dimuat (load) ke dalam kendali alamat register (CAR atau Control Address Register) dan kemudian kendali memori mengirim instruksi-mikro pertama ke dalam kendali penyangga register (CBR atau Control Buffer).
l Komponen-Komponen Pokok Control Unit Microprogrammed
1. Instruction Register
Menyimpan instruksi register mesin yang dijalankan.
2. Control Store berisi microprogrammed
a) Untuk semua instruksi mesin.
b) Untuk startup mesin.
c) Untuk memprosesan interupt
3. Address Computing Circuiting
Menentukan alamat Control Store dari mikroinstruksi berikutnya yang akan dijalankan.
4. Microprogrammed Counter
Menyimpan alamat dari mikroinstruksi berikutnya.
5. Microinstruction Buffer
Menyimpan mikroinstruksi tersebut selama dieksekusi.
6. Microinstruction Decoder
Menghasilkan dan mengeluarkan mikroorder yang didasarkan pada
mikroinstruksi dan opcode instruksi yang akan dijalankan
Format Instruksi-mikro
Pada
dasarnya ada dua jenis format instruksi-mikro: horisontal dan vertikal.
Pada format instruksi-mikro horisontal, satu bit diberikan untuk setiap
sinyal logika yang dapat dihasilkan oleh instruksi-mikro. Dengan
demikian, jika dibutuhkan sejumlah K sinyal kendali yang berbeda maka dibutuhkan instruksi-mikro dengan word sepanjang K bit.
Untuk menghasilkan suatu sinyal tertentu, bit yang bersesuaian dalam
instruksi mikro diatur menjadi 1, kehadiran suatu sinyal kendali
diindikasikan dengan menempatkan sebuah nol pada posisi bit yang
semestinya. Pendekatan ini mempunyai keuntungan bahwa kita dapat
menghasilkan sebanyak mungkin sinyal kendali yang diperlukan secara
beruntun, yang memungkinkan operasi yang sangat cepat.
Namun
demikian kebanyakan operasi-mikro adalah mutual ekslusif dan tidak
pernah dipanggil secara bersamaan. Karena itu, kita dapat membagi mereka
ke dalam kelompok-kelompok dan menggunakan sejumlah bit (field)
untuk memberi kode sekumpulan intruksi-mikro yang mutual ekslusif.
Kemudian digunakan suatu dekoder untuk memilih operasi mikro tertentu
yang akan dipanggil. Jika terbawa ke dalam ekstrem (hanya satu field) maka proses mengode (coding) dan mendekode (decoding)
menghasilkan suatu format instruksi-mikro vertikal, dimana hanya ada
satu operasi-mikro yang dipanggil pada suatu waktu. Karena itu
instruksi-mikro vertikal menyerupai format sebuah interuksi-makro dan
terdiri atas suatu kode operasi tunggal, disebut sebagai opecode mikro,
satu operand atau lebih, dan berberapa field lain (misalnya untuk percabangan kondisional).
KEUNTUNGAN PEMROGRAMAN-MIKRO
Kendali microprogrammed menawarkan suatu pendekatan yang lebih terstruktur untuk merancang unit kendali logika (CLU) dibandingkan dengan kendali hard-wired.
1. Rancangan microprogrammed relative mudah diubah-ubah dan dibetulkan
2. Menyediakan kemampuan diagnostic yang lebih baik dan lebih dapat diandalkan daripada rancangan hard-wired
3. Utilisasi
memori utama dalam computer microprogrammed biasanya lebih baik Karena
perangkat lunak yang seharusnya menggunakan ruang memori utama justru
ditempatkan pada memori kendali
4. Pengembangan
ROM lebih lanjut(dalam kaitan dengan harga dan waktu akses) secara
lebih jauh justru menguatkan posisi dominant pemrograman mikro, salah
satunya dengan menyertakan unit memori ketiga disebut sebagai
nano-memory (tambahan bagi memori utama dan memori kendali). Dalam
mengerjakan hal ini, mungkin terjadi pertukaran (trade-off) yang menarik
antara pemrograman mikro horisontal dan vertikal