Des 07, 2024 Organisasi Sistem Komputer

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, seperti ditunjukkan pada Gambar 1(a). Dengan demikian, jika dibutuhkan sejumlah K sinyal kendali yang ber­beda maka dibutuhkan instruksi-mikro dengan word sepanjang K bit. Untuk menghasilkan suatu sinyal tertentu, bit yang bersesuaian dalam instruksi-mikro di-set menjadi 1; kehadiran suatu sinyal kendali diindikasikan dengan menempatkan sebuah nol pada posisi bit yang semestinya. Pendekatan ini mempunyai keun­tungan bahwa kita dapat menghasilkan sebanyak mungkin sinyal kendali yang diperlukan secara beruntun, yang memungkinkan suatu operasi yang sangat cepat.

Gambar 1. Format Instruksi-mikro

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 instruksi-mikro yang mutual eksklusif. Kemudian diguna­kan suatu decoder untuk memilih operasi mikro tertentu yang akan dipanggil. Jika terbawa ke dalam ekstrem (hanya satu field) maka proses coding dan decoding menghasilkan suatu format instruksi-mikro vertikal, dimana hanya satu operasi ­mikro yang dipanggil pada suatu waktu, seperti ditunjukkan pada Gambar 1(b). Karena itu format sebuah instruksi-mikro vertikal menyerupai format sebuah instruksi-makro dan terdiri atas suatu kode operasi tunggal, disebut sebagai op­code mikro, satu operand atau lebih, dan beberapa field lain (untuk percabangan kondisional, misalnya).

Gambar 2. Sebuah ALU

Untuk menggambarkan perbedaan antara format instruksi-mikro horisontal dan vertikal, perhatikan Gambar 2, yang memperlihatkan sebuah unit aritmatika dan logika (ALU) dengan dua input paralel 8-bit X dan Y dan sebuah output paralel tunggal 8-bit Z. Dua bit input yang diberi nama C digunakan untuk mengendalikan operasi ALU. Data input dapat diperoleh dari salah satu dari enam register 8-bit Ro hingga R5 (tidak diperlihatkan Gambar 2) dan data output dapat ditulis ke dalam salah satu register ini. Kita berasumsi bahwa input dan output ALU tetap tidak berubah sampai data baru tersimpan ke dalamnya. Untuk mengakses register terse­but, masing-masing memiliki sebuah address 4-bit yang di-encode, misalnya, dengan kode di atas 3. Dengan demikian kita mengencode Ro dengan pola bit 0011, R1 dengan 0100, dan seterusnya, meng-encode R5 dengan 1000.

Agar lebih sederhana, mari kita asumsikan bahwa ALU hanya dapat menjalankan tiga fungsi yang berbeda: tidak ada operasi (NOP atau no operation), tambahkan X dan Y (X+ Y), dan kurangkan Y dari X (X- Y). Untuk memilih salah satu operasi ini, ALU menggunakan dua baris kendali (C) yang diperlihatkan pada Gambar 2. Asumsikan bahwa NOP di-encode sebagai 00, (X+ Y) sebagai 01, dan (X- Y) sebagai 10.

Rangkaian operasi-mikro yang berhubungan dengan ALU tersebut terdiri atas langkah-langkah berikut ini:

Gambar 3. Format horizontal untuk ALU pada gambar 2

Jika kita menggunakan suatu format instruksi-mikro horisontal untuk menjalan­kan operasi-mikro ini maka instruksi-mikro terdiri atas 14 bit, seperti ditunjukkan pada Gambar 3(a). Dua bit dicadangkan untuk opcode, yang menunjukkan ope­rasi ALU yang dipilih. Field X4-bit yang menunjukkan address register tersebut memasok data ke input X, sedangkan field Y 4-bit menunjukkan register yang berhubungan dengan input Y dan field Z 4-bit menunjukkan register tempat penulisan hasil operasi ALU. Misalnya, Gambar 3(b) memperlihatkan instruk­si-mikro horisontal yang telah dikodekan, yang diperlukan untuk menjalankan

Gambar 4 Format vertical untuk ALU pada gambar 3

Sebaliknya, suatu format vertikal memerlukan empat instruksi-mikro untuk menjalankan operasi-mikro, seperti ditunjukkan pada Gambar 4(a). Dua bit dicadangkan untuk meng-encode masing-masing keempat langkah tersebut da­lam rangkaian operasi-mikro yang berhubungan dengan ALU. Seperti kita lihat format vertikal ini memerlukan 24 bit memori kendali. Hanya 2 bit yang tidak digunakan, yaitu dalam instruksi-mikro berhubungan dengan langkah “pilih sebuah operasi ALU”. Jika kita meng-encode empat operasi-mikro “pilih X”, “pilih Y”, “pilih ALU”, ” pilih Z”, masing-masing sebagai 00, 01, 10 dan 11, Gambar 4(b) memperlihatkan pemberian kode yang diperlukan untuk men­jalankan

Dalam contoh ini terlihat bahwa format horisontal menggunakan memori kendali lebih efisien daripada format vertikal. Hal ini disebabkan karena, dalam contoh tersebut, seluruh field tersebut digunakan dalam format horisontal. Tetapi hal ini tidak terjadi dalam setiap kasus program-mikro. Sebagai contoh, perhatikan rangkaian operasi berikut ini:

Gambar 5 Contoh Program Mikro

Pada Gambar 5(a) kita memperlihatkan keempat instruksi-mikro horisontal yang diperlukan untuk menjalankan rangkaian tersebut. Program mikro itu meng­gunakan 56 bit (4 x 14) memori kendali tetapi seperti sia-sia karena ketiga field dalam instruksi-mikro ke-dua dan ke-empat tidak digunakan. Sebaliknya, delapan instruksi-mikro vertikal yang diperlihatkan pada Gambar 5(b) hanya memerlukan 48 bit (8 x 6) memori kendali dengan hanya 4 bit yang sia-sia.

Karena format dan operasi instruksi-mikro vertikal menyerupai instruksi-makro maka lebih mudah bagi kita untuk menuliskan program-mikro vertikal daripada pasangan horisontal-nya. Pendekatan vertikal memerlukan panjang word yang relatif pendek tetapi implementasinya memerlukan sirkuit yang lebih kompleks dan tidak mengambil seluruh keuntungan paralelisme dalam arsitektur-mikro. Kebanyakan prosesor memakai kombinasi dari kedua pendekatan itu. Format instruksi-mikro dapat sangat bervariasi dari rancangan yang satu ke lainnya dan tergantung pada faktor-faktor seperti kelompok operasi mikro yang dipilih, pertukaran (trade-off) antara panjang word instruksi-mikro dan kecepatan operasi, dan tingkat kompleksitas sirkuit decoding-instruksimikro yang diterapkan.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *