07 Mode Operasi pada CPU 1
Processing Unit Operations 1
Bentuk Operasi Pada ALU
Untuk melaksanakan tugasnya ALU dibantu oleh register Y dan Z. Register Y berfungsi untuk menahan suatu data yang akan diproses oleh ALU menunggu data ke dua, karena untuk proses yang menggunakan dua data, kedua data tersebut harus masuk secara bersamaan. Sedang register Z
Misal akan dilakukan operasi matematis di bawah ini : R3 R1 + R2
Maka langkah-langkah yang dilakukan adalah
sebagai berikut :1. R1 , Y out in
2. R2 , Add, Z out in
Eksekusi Sebuah Instruksi
Untuk melaksanakan sebuah instruksi secara lengkap, langkah-langkah yang diperlukan adalah sbb: Misal pada instruksi Add R1,(R3)
1. Baca instruksi
2. Ambil operand yang berada di memory (dengan alamat yang tersimpan di R3)
3. Lakukan penjumlahan
Untuk langkah-langkah di atas maka prosessor
memberikan urutan sinyal control seperti di bawah ini :1. Pc , MAR , Read, Clear Y, Set Carry-in to out in
ALU, Add, Z in
2. Z , PC , WMFC out in
3. MDR , IR out in
4. R1 , Y out in
Penjelasan :
1. Mula-mula prosessor mengambil instruksi yang alamatnya tersimpan pada PC, sambil menunggu datangnya instruksi dari memori, PC mengupdate isinya (ditambah dengan 1)
2. Setelah instruksi didapat, instruksi ini diterjemahkan oleh rangkaian control melalui IR, dan didapatkan instruksi Add R1,(R3)
3. Operand pertama letaknya di register langsung di bawa
ke register Y, sedang operand ke dua di baca dari memori yang alamatnya disimpan di register R3.Branching
Sebagaimana sudah kita ketahui untuk melakukan proses branch maka prosessor akan mengupdate isi PC sebelumnya dengan alamat baru yang akan dieksekusi.
Pengubahan isi PC dilakukan dengan menambah isi PC dengan nilai offset X. Misal pada saat CPU mengeksekusi instruksi di alamat 1000 yang berisi
Eksekusi dari program diatas adalah sbb :
1. PC , MAR , Read, Clear Y, Set carry-in to
out inALU, Add, Z in
2. Z , PC , WMFC out in
3. MDR , IR out in
4. PC , Y out in
PENGERTIAN URUTAN SINYAL- SINYAL CONTROL (SEQUENCE OF CONTROL SIGNALS)
Untuk melaksanakan suatu instruksi, CPU
mempunyai beberapa cara utk membang-
kitkan sinyal control dlm urutan yang benar. Dua cara membangkitkan sinyal yang umum adalah :
Hardwired Control
- Memerlukan pengaturan waktu untuk tiap step
secara tepat.- Dapat dilakukan dg menggunakan counter yg dikendalikan oleh clock, dg asumsi:
Tiap step memerlukan waktu yang sama.
Krn itu sinyal control yang diperlukan secara
unik / khas ditentukan oleh :- Isi control step counter
- Isi instruction register - Isi condition code dan status flag.
Status flag : sinyal - sinyal yang mewakili
Perhatikan gambar control unit organization.
Decoder - encoder block merupakan
suatu rangkaian combinational yang
menghasilkan output control yang diperlukan, tergantung pada keadaan semua inputnya.Clock CLK Control Step Counter . . .
Status Flag ... IR Decoder / Encoder .
. . Condition Codes ...
Clock CLK Control Step Counter Reset Step Decoder . . .
T T T 1 2 n INS . . . INS 2
1 Status Flag Instruction ... IR . . Decoder Encoder . .
. . INS m Condition Codes ... Gambar A dan B di atas adalah blok diagram untuk menghasilkan sinyal kontrol yang digunakan untuk mengeksekusi suatu instruksi, yang diterjemahkan dalam beberapa sinyal kontrol dari instruction decoder (INS … INS ). 1 m
Pelaksanaan setiap urutan sinyal kontrol akan dikendalikan oleh sebuah step decoder yang dihasilkan dari counter yang dipicu oleh sinyal
Sinyal step docoder dan instruction decoder dipadukan dengan sinyal dari status flag
dan condition codes, menghasilkan sinyal
control individu seperti Pc , Y , Add, End, out in dan sebagainya.Contoh : Misal untuk mengimplementasikan fungsi logic:
Gb. Diagram rangkaian untuk ADD sinyal kontrol Z in BR T 5 T 6 T 1
PLA (Programmable Logic Array)
Dari gambar di atas dapat kita lihat bahwa untuk mengimplementasikan suatu fungsi dapat diguna- kan gerbang-gerbang dasar. Dan untuk untuk me- nerapkan hal ini digunakan VLSI (Very Large Scale Integration) Technology. Dalam Chip VLSI struktur yang digunakan lebih mudah di realisasi- kan dari pada rangkaian fungsi-fungsi digital de- ngan menggunakan gerbang dasar. Salah satu
PLA ter-diri dari barisan gerbang AND yang diikuti de-ngan barisan gerbang OR dan dapat digunakan untuk menerapkan fungsi- fungsi logika kombinasi dari beberapa
variable. Semua kombinasi rangkaian dalam
Encoder dan Decoder dapat diterapkan dalam bentuk PLA tunggal seperti gambar dibawah iniGambar PLA PLA AND Array OR array
IR Control step Flag and Control Signals
CPU-Memory Interaction
Interaksi antara CPU dengan memory adalah
berupa proses menulis dan membaca data
oleh CPU ke dan dari memory. Dimana bus
data external dari CPU terhubung dengan MDR. Di bawah ini adalah gambar rangkaian yangGambar rangkaian pembangkit sinyal Read & Write J
Q Q K SET CLR J Q Q K SET CLR Read Write MR MW To Main Memory Gambar timing diagram operasi Read
i i + 1 i + 2 CLK / /
Read / / / /
MR / /
WMFC MFC / / Rangkaian di atas dapat digunakan untuk memory yang berkecepatan tinggi (fast memory) maupun rendah (slow memory). Fast memory membutuhkan satu clock cycle untuk setiap transfer data sedang slow memory membutuhkan lebih itu.
Hal ini dapat dilakukan karena adanya komponen flip-flop yang menahan permintaan transfer data
Perhatikan gambar timing diagram untuk operasi read memory. Saat sinyal read
diberikan (high) maka sinyal MR (memory read) juga ikut ‘high’. Dan sinyal MR ini akan tetap ‘high’ meskipun sinyal read telah berubah ‘low’. Saat itulah CPU mengaktifkan WMFC (wait memory Bila data telah terkirim, memory mengirim
sinyal MFC. Sinyal ini akan mematikan sinyal
read dari gerbang and dan flip-flop (pin K) sekaligus menghentikan sinyal run dari gerbang and.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.
Contoh micro instruction untuk instruksi :
Add R1,R3Urutan 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 Organisasi control unit untuk microprogrammed digambarkan sebagai berikut :
IR Starting address generator
µPC Clock 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
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 Untuk mengimplementasikan microroutine dengan instruksi branch, maka organisasi CU yang digunakan adalah sbb: Status flags IR Starting and generator address branch Condition codes
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 conditionMicroinstructions
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
- 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
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.
F1 (4 bit) F2 (3 bit) F3 (2 bit) F4 (2 bit) F5 (4 bit) F6( 2 bit) 0000 : No transfer 0001 : PC out 0010 : MDR out 0011 : Z out 0100 : R0 out 0101 : R1 out 0110 : R2 out 0111 : R3 out 1000 : SOURCE out 1001 : DESTIN out 1010 : TEMP out 1011 : Address out 000 : No transfer 001 : PC in 010 : IR in 011 : Z in 100 : Ro in 101 : R1 in 110 : R2 in 111 : R3 in 00 : No transfer 01 : MAR in 10 : MDR in 11 : TEMP in 00 : No transfer 01 : Y in 10 : SOURCE in 11 : DESTIN in 0000 : Add 0001 : Sub
0010 : Mul 0011 : Div 00 : No action 01 : Read 10 : Write F7( 1 bit) F8( 1 bit) F9( 1 bit) F10( 1bit) 0 : No action
1 :Clear Y 0:Carry-in = 0 1:Carry-in = 1 0 : No action 1 :WMFC 0 : Continue 1 : End Dengan pengelompokan seperti di atas 42 sinyal kontrol dapat disederhanakan menjadi 20 bit.
Pengkodean dari 42 bit sebenarnya dapat 6 dikodekan hanya dengan 6 bit (2 = 64 bit), namun dalam merancang rangkaian decodernya sangatlah rumit sehingga tidak mungkin dibuat kombinasi hanya dengan 6 bit saja.