SIKLUS FETCH DAN EKSEKUSI

Pada awal setiap siklus instruksi, CPU membaca instruksi dari memori. Pada CPU yang umum, suatu register yang disebut program counter (PC) dipakai untuk mengawasi instruksi yang akan dibaca selanjutnya secara berurutan (yaitu, instruksi yang terletak pada alamat yang lebih tinggi berikutnya, di dalam memori). Sebagai contoh saja, masing-masing instruksi menempati sebuah word 16 bit di memori dan anggaplah bahwa PC disetel pada lokasi 300. Maka CPU kemudian akan membaca instruksi pada lokasi 300. Siklus instruksi selanjutnya, CPU akan membaca instruksi dari lokasi 301, 302, 302, dst. Urutan dapat berubah, sebagai contoh apabila ada proses interupt dari perangkat lain (I/O, memori).
Contoh berikut adalah cara CPU mengeksekusi program (3 siklus fetch dan 3 tiga eksekusi) :

  1. Program counter (PC) berisi 300 [alamat instruksi pertama]. Kemudian alamat ini dimuatkan ke dalam instruction register (IR). Sedangkan memori address register (MAR) dan memory buffer register (MBR) diabaikan dulu.
  2. 4 bit pertama di dalam IR (ingat, format instruksi 16 bit) mengindikasikan bahwa akumulator (AC) akan dimuatkan. 12 bit sisanya menentukan alamat dlm memori, yaitu 940.
  3. PC dinaikkan nilainya, dan instruksi berikutnya akan diambil.
  4. Isi AC yang lama dan isi lokasi 941 ditambahkan, dan hasilnya disimpan di dalam AC.
  5. PC dinaikkan nilainya, instruksi berikutnya akan diambil.
  6. Isi AC akan disimpan pada lokasi 941.

Supaya lebih jelas dari siklus tersebut perhatikan gambar berikut :

contoh_eksekusi_program

dan untuk memudahkan pemahaman alur proses di atas, berikut Op Code register CPU internal:

  • 0001 = muatan AC dari memori
  • 0010 = simpan AC ke memori
  • 0101 = tambahkan AC dari memori