Kode instruksi, bersama-sama dengan data, tersimpan di dalam memori. Seperti telah kita ketahui, sebuah instruksi merupakan suatu entitas yang kompleks yang pelaksanaannya tidak dapat diselesaikan dalam sebuah pulsa waktu tunggal. 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 antara sebuah instruksi dan sebuah instruksi-mikro, seringkali instruksi-instruksi disebut sebagai instruksi-makro (macroinstruction).
Instruksi-mikro merupakan operasi primitif tingkat rendah yang bertindak secara langsung pada sirkuit logika suatu komputer. Mereka memerinci fungsi-fungsi (sinyal-sinyal) seperti berikut:
- Membuka/menutup suatu gerbang (gate) dari sebuah register ke sebuah bus.
- Mentransfer data sepanjang sebuah bus.
- Memberi inisial sinyal-sinyal kendali seperti READ, WRITE, SHIFT, CLEAR dan SET.
- Mengirimkan sinyal-sinyal waktu.
- Menunggu sejumlah periode waktu tertentu.
- Menguji bit-bit tertentu dalam sebuah register.
Ada dua pendekatan pokok bagi perancangan sebuah CLU yaitu: rancangan hard-wired (atau logika random) dan rancangan microprogrammed. Pada pendekatan hard-wired, sejumlah gerbang (gate), counter dan register saling dihubungkan untuk menghasilkan sinyal-sinyal kendali. Setiap rancangan memerlukan sekelompok piranti logika dan hubungan yang berbeda-beda. Pada pendekatan microprogrammed, dibentuk serangkaian instruksi-mikro, disebut sebagai sebuah program-mikro, untuk setiap instruksi-mikro dan disimpan dalam sebuah memori kendali (biasanya sebuah ROM) dalam CLU. Kemudian waktu yang diperlukan dan sinyal 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 men-decode instruksi itu dan menghasilkan serangkaian instruksi-mikro. Ambillah contoh suatu komputer yang mempunyai 16 instruksi sehingga setiap instruksi dapat diberi kode dengan sebuah opcode 4-bit yang unik (Tentu saja, sisa word instruksi berisi informasi pengalamatan yang penting seperti register-register yang terlibat, address-address memori dan offset). Gambar berikut menunjukkan suatu kemungkinan implementasi decoder untuk opcode tersebut. Mnemonic-nya diperlihatkan berikut ini:

LDR (Load suatu register dari memori)
LDM (Load memori dari suatu register)
ADR (Add ke register)
BRU (Branch/percabangan tidak kondisional)
BRZ (Branch/percabangan pada nol)
Setiap output decoder dapat digunakan untuk menghasilkan serangkaian instruksi-mikro. Instruksi-mikro ini dikendalikan oleh sinyal waktu dan beberapa kondisi status di dalam sistem.
Setiap rangkaian instruksi-mikro dijalankan dalam suatu periode waktu yang disebut sebagai suatu siklus mesin (machine cycle). CLU membagi-bagi siklus mesin menjadi serangkaian keadaan (state), to, t1, …, sedemikian sehingga durasi tiap-tiap state sama dengan periode clock komputer. Kita dapat menghasil sinyal waktu ini dengan menggunakan sebuah counter ring atau, seperti ditunjuk kan pada Gambar 2(a), sebuah kombinasi counter-decoder. Sirkuit counterdecoder ini menghasilkan suatu rangkaian berurutan atas empat state tersebut yang mengulanginya setiap empat pulsa waktu. Diagram waktu untuk sirkuit ini ditunjukkan pada Gambar 2(b).

Untuk mengilustrasikan bagaimana sirkuit counter-decoder pada Gambar 2 menghasilkan sinyal waktu yang diperlukan untuk menjalankan sebuah instruksi komputer, perhatikan suatu instruksi ADD pada sebuah komputer pengalamatan tunggal. Untuk mem-fetch dan menjalankan instruksi ini, CLU harus melakukan langkah-langkah berikut ini:
to: MAR ß (PC)
t1: MBR ß M[MAR]
t2: IR ß (MBR)
t3: MAR ß (IR|address operand)
t4: MBR ß M[MAR]
t5: ACC ß (ACC) + (MBR)
Isi PC dikirim ke MAR.
Isi lokasi memori yang dialamati diletakkan pada MBR dan PC bertambah 1.
Isi MBR dikirim ke IR.
Field address operand instruksi tersebut dikirim dari IR ke MAR.
Operand diletakkan pada MBR.
Isi MBR dan akumulator ditambahkan dan hasilnya diletakkan pada akumulator.
Sinyal waktu t4 dan t5 ditunjukkan dalam tanda kurung pada Gambar 2(b).
KENDALI MICROPROGRAMMED
Istilah program-mikro pertama kali diungkapkan oleh MN Wilkes pada awal tahun 1950-an
Suatu unit logika kendali hard-wired memerlukan perancangan ulang perangkat keras secara ekstensif jika serangkaian instruksi harus dikembangkan atau jika fungsi sebuah instruksi harus diubah. Sebaliknya, dalam CLU microprogrammed, serangkaian instruksi mikro (program-mikro) yang berhubungan dengan masing-masing instruksi dalam kelompok instruksi tersimpan di dalam memori, hanya-baca (ROM atau read-only memory) yang disebut sebagai memori kendali. Oleh karena itu, arti sebuah instruksi dapat diubah dengan mengubah program-mikro yang bersesuaian dengan instruksi tersebut dan kelompok instruksi dapat dikembangkan hanya dengan menyertakan ROM tambahan yang berisi program-mikro yang bersesuaian. Sebagai hasilnya, perubahan perangkat keras yang diperlukan dalam CLU dapat diusahakan sampai batas minimal.
Tingkat di mana program-mikro dapat diubah oleh pemakai, bervariasi dari suatu komputer ke komputer lainnya. Beberapa komputer tidak memungkinkan adanya perubahan, sedangkan yang lainnya memungkinkan sebagian perubahan dan yang lainnya lagi tidak memiliki kelompok instruksi yang tetap namun sebagai pengganti memungkinkan pemakai untuk melakukan pemrograman-mikro atas kelompok instruksi yang dibentuk sesuai dengan peruntukkan aplikasi komputer tersebut. Konsekuensinya, suatu CLU microprogrammed disebut sebagai microprogrammable (dapat diprogram secara mikro)
Organisasi CLU Microprogramed
Organisasi pokok sebuah CLU microprogrammed ditunjukkan pada Gambar 3 Instruksi-makro disimpan dalam memori utama dan diakses melalui memori address register (MAR) dan memory buffer register (MBR). Instruksi di-fetch ke dalam register instruksi (IR atau instruction register) dan pengendali-mikro (microcontroller atau sequencer) menjalankan program-mikro yang bersesuaian. Address awal program-mikro di-load ke dalam register address kendali (CAR atau control address register) dan kemudian memori kontrol mentransfer instruksi-mikro pertama ke dalam register buffer kendali (CBR atau control buffer, register). Dengan mem-fetch sebuah instruksi-mikro dari memori kontrol berarti kita menyatakan sebuah siklus-mikro, yaitu waktu di mana instruksi-mikro didecode untuk menghasilkan sinyal kendali yang diperlukan untuk menjalankannya. CAR secara normal bertambah 1 pada tiap-tiap pulsa waktu sehingga ia dapat mengalamati instruksi-mikro berikutnya secara berurutan. Namun, perhatikan bahwa rangkaian tersebut dapat diubah oleh kondisi-kondisi yang terjadi di dalam atau di luar CLU, yang mungkin menyebabkan pengendali-mikro (micrccontroller) meningkatkan CAR dengan lebih dari 1. Jika ada operand yang diperlukan untuk suatu instruksi tertentu maka informasi address dalam IR di-decode untuk melengkapi lokasi operand.
