Processing Unit Operations 2 ORGANISASI KOMPUTER Processing Unit Operations 2
Microprogrammed Control Merupakan cara lain untuk membangkitkan sinyal kontrol. Hal-hal utama mengenai microprogrammed control ini adalah sbb: Pengaturan sinyal kontrol dilakukan dengan microinstruction (lihat gambar di bawah). Control word (CW) adalah word yang terdiri dari beberapa bit, dimana tiap bitnya mewakili berbagai sinyal kontrol. Setiap langkah / step pada urutan control (control sequence) sebuah instruksi mendefinisikan kombinasi yang khas dari 0 dan 1 pada CW.
Contoh micro instruction untuk instruksi : Add R1,R3
Urutan perintah dalam CW menyatakan urutan sinyal control dari sebuah instruksi mesin (machine instruction), atau merupakan microroutine bagi instruksi mesin tsb. Dan satu baris (word) pada CW disebut sebagai microinstruction. Microprogram suatu komputer disimpan dalam memory khusus yang disebut control store. Control unit dapat menghasilkan sinyal kontrol untuk setiap instruksi dengan membaca CW yang sesuai dengan microinstruction dari control store.
Organisasi control unit untuk microprogrammed digambarkan sebagai berikut :
Untuk membaca CW secara berurutan digunakan microprogram counter (µPC) Untuk membaca CW secara berurutan digunakan microprogram counter (µPC). Setiap instruksi baru masuk ke IR, maka sebuah “starting address generator” diload ke dalam µPC. Berikutnya secara otomatis meng-increment alamat yang diberikan dengan ditriger oleh clock. Dalam praktisnya organisasi control unit tidaklah cukup seperti gambar di atas. Gambar diatas digunakan hanya untuk instruksi yang berjalan secara berurutan. Untuk instruksi yang didalamnya terdapat branch diperlukan informasi dari status flag dan condition codes.
Microinstruction dengan instruksi Branch Address Microinstruction PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin 1 Zout, PCin, WMFC 2 MDRout, IRin 3 Branch to starting address of appropriate microroutine …………………………………………………………………………… 25 PCout, Yin, If N=0 then branch to microinstruction 0 26 Offset-field-of-IRout, Add, Zin 27 Zout, PCin, End Microinstruction dengan instruksi Branch
Untuk mengimplementasikan microroutine dengan instruksi branch, maka organisasi CU yang digunakan adalah sbb:
Dengan menggunakan organisasi di atas maka dapat dilakukan instruksi branch. Untuk branch tanpa syarat dilakukan dengan memasukkan nilai alamat yang akan dituju (di dapat dari instruksi) ke µPC. Sedang untuk branch bersyarat hampir sama dengan cara di atas dan dipadukan dengan informasi dari status flag dan condition codes
Microinstructions Dalam penulisan microinstructions pemakaian bit secara individu untuk setiap sinyal kontrol akan sangat panjang jika banyak sinyal kontrol yang harus dikendalikan melalui penulisan CW. Untuk menghitung jumlah bit CW yang diperlukan maka dapat diperhitungkan dari : Jumlah register (R0, R1, R2, …) Jumlah operasi yang dilakukan (read, write, clear Y, Set Carry-in, WMFC, …) Jumlah fungsi arithmatic & logic (add, subtract, and, or, …)
Jika ditotal kira-kira diperlukan sebanyak 42 sinyal kontrol Jika ditotal kira-kira diperlukan sebanyak 42 sinyal kontrol. Dan ini ukuran cukup panjang bagi sinyal kontrol. Untuk itu dilakukan penyederhanaan dengan cara mengelompokkan sinyal kontrol berdasarkan fungsinya dan kombinasi bit. Disamping dalam prakteknya terdapat hal-hal sbb: Sebagian besar sinyal ini tidak diperlukan secara bersama-sama, ada beberapa sinyal yang tidak dapat dibangkitkan bersama-sama (hanya satu fungsi saja yang diaktifkan
contoh : sinyal Add pada ALU, Sinyal read dan Write, R0 out dan R1 out dll). Sehingga beberapa mikro instruksi kebanyakan dapat diwakili dalam satu mikrooperasi. Untuk operasi ALU dapat diwakili dengan 4 bit untuk 16 fungsi yang berbeda (Add, Sub, OR, And, ….. XOR). Sinyal kontrol keluaran untuk masing-masing register dapat dikelompokkan. Dari hal-hal tsb di atas maka sinyal kontrol dapat dikelompokkan menjadi seperti gambar berikut ini:
Gambar pengelompokan sinyal kontrol
Dengan pengelompokan seperti di atas 42 sinyal kontrol dapat disederhanakan menjadi 20 bit. Pengkodean dari 42 bit sebenarnya dapat dikodekan hanya dengan 6 bit (26 = 64 bit), namun dalam merancang rangkaian decodernya sangatlah rumit sehingga tidak mungkin dibuat kombinasi hanya dengan 6 bit saja.