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.
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.