RSS

Pelacakan Eksekusi Pada Sebuah Instruksi SIC

Nama : Dhea Imaniar Herlina
Kelas : 4IB03A
Dosen : Setiyono
Tugas Softskill Organisasi & Arsitektur Komp. # (1)
 
Pelacakan Eksekusi Pada Sebuah Instruksi SIC

Setelah menjabarkan siklus cpu, mekanisme pemilihan waktu dan pengendalian serta unit-unit fungsional pada SIC, kita telah mendefinisikan bagaimana register dan unit-unit pada komputer yang saling berhubungan dan bagaimana data yang di transfer diantara mereka. Pada bagian ini, kita akan melacak suatu intruksi melalui keseluruhan siklus fecth dan eksekusinya sebagai sebuah contoh tentang cara kerja SIC.
 
Untuk memulainya, anggaplah bahwa isi unit memori adalah seperti ditunjukkan pada Gambar 4-6 (a). Kita akan melacak melalui pelaksanaan intruksi yang sekarang tersimpan dalam M[10]. Kita anggap intruksi sebelumnya, M[9], telah dijalankan dan isi dari register CPU adalah seperti yang ditunjukkan pada Gambar 4-6(b). Perhatikan flag F dan E telah disusun untuk siklus fetch berikutnya, tetapi counter C belum kembali ke 00.



Eksekusi tanpa interupsi
Pelacakan intruksi pada M[10] dilukiskan dalam rangkaian “snapshot” pada Gambar 4-7, dimana setiap snapshot menunjukan keadaan dari sistem tepat setelah C ditingkatkan. Register yang diubah sejak snapshot sebelumnya dutunjukkan dengan huruf tebal.
Ketika counter bergerak ke 00, akan dihasilkan sinyal waktu pertama, t0, pada siklus fetch. Berdasarkan intruksi siklus fetch yang diberikan dalam Tabel 4-6, aksi-aksi berikut ini akan dilakukan. Pada saat t0, isi PC akan ditransfer ke MAR [Gambar 4-7(a)]. Pada saat t0, word memori yang dijabarkan oleh MAR dibaca ke dalam MBR dan PC meningkat [bagian (b)]. Pada sinyal waktu ketiga, t2, isi MBR disalin ke IR [bagian(c)]. Transfer yang terjadi pada sinyal waktu terakhir siklus fetch, t3, tergantung pada nilai field IX pada IR. Karena nilai tersebut adalah 1, maka nilai field AD dan IR ditambahkan ke nilai register X dan disimpan dalam MAR. Sebagai tambahan; flag F dibersihkan dan flag E di-set. Transfer ini ditunjukkan pada Gambar 4-7(d). sewaktu counter C kembali ke 00, maka flag F dan E akan memaksa CPU untuk memasuki siklus eksekusi. Siklus eksekusi yang akan digunakan dikendalikan oleh opcode yang saat itu berada dalam field OP dan IR. Dalam hal ini, dipakai siklus eksekusi ADD yang ditunjukkan sebelumnya pada Tabel 4-8. Dengan demikian pada sinyal t0, isi word memori yang dijabarkan oleh MAR, M[25], disalin ke dalam MBR [bagian (e)].


Pada saat t1, nilai MBR ditambahkan ke A dan juga disimpan ke A. Karena M[25] berisi 50, nilai A menjadi 151 [bagian (f)]. Tidak ada tindakan yang terjadi pada sinyal waktu t2, selain peningkatan C secara otomatis [bagian (g)]. Pada contoh pertama ini, tidak ada interupsi yang terjadi selama siklus fetch maupun siklus eksekusi. Dengan demikian pada Gambar 4-7(h), F dan E disusun untuk siklus fetch berikutnya.

Eksekusi dengan menggunakan interupsi
Sekarang mari kita anggap bahwa kadang-kadang selama siklus fetch maupun siklus eksekusi pada Gambar 4-7 terjadi interupsi. Kita ambil pelacakan instruksi dalam M [10] pada t2, F=0 dan E=1 [Gambar 4-7(g) pada contoh terdahulu], tetapi dengan INT=1 dan SW[MASK]=0. Gambar 4-8(a) melukiskan keadaan baru ini. Pada saat ini, sewaktu sinyal waktu terakhir siklus eksekusi ADD, t3, (NOT SW [MASK] AND INT), bernilai benar, sehingga kondisi pernyataan IF menjadi salah. Sebagai hasilnya, hanya E yang berubah [Gambar 4-8(b)].
Ketika C meningkat menjadi 00, flag E dan F akan mengarahkan CPU ke siklus interupsi (ditunjukkan dalam Tabel 4-7). Pada sinyal waktu pertama pada siklus ini, t0, akan terjaadi tiga transfer. Isi PC ditransfer ke field AD pada MBR, flag INT dibersihkan dan field MASK pada SW di-set [bagian (c)]. Pada saat t1, PC di-set bernilai 1 dan MAR dibersihkan [bagian (d)]. Kemudian pada sinyal waktu ketiga, t2, MBR ditulis ke memori pada address 0 [bagian (e)]. Tindakan terakhir pada siklus ini adalah menyusun F dan E untuk siklus fetch. Hal ini dikerjakan dengan men-set F ke 1 seperti ditunjukkan pada Gambar 4-8 (f).
Seperti yang dapat dilihat pada kedua contoh tersebut, baik terjadi interupsi maupun tidak, pada akhir suatu siklus intruski yang lengkap, CPU sudah siap untuk mulai bekerja pada intruksi berikutnya. Sebenarnya, intruksi mana yang berikutnya tergantung pada apa yang terjadi selama siklus eksekusi sebelumnya dan jika siklus interupsi telah dilaksanakan. Bagaimanapun juga hal ini tidak relevan untuk CPU yang hanya terus bekerja dan mengambil intruksi yang direferensikan oleh PC. Lihat kembali Gambar 4-7 dan 4-8 untuk lebih memahami cara kerja SIC.