PENJELASAN IAC, IOD, OAC, DO, OS, OF, dan IF
                             IAC, IOD, OAC, DO, OS, OF, dan IF


                                   
                                        







Penjelasan :
·     Instruction  Address  Calculation (IAC),  yaitu  mengkalkulasi  atau  menentukan  alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
·          Instruction  Fetch  (IF),  yaitu  membaca  atau  pengambil  instruksi  dari  lokasi  memorinya
        ke CPU.
·          Instruction  Operation  Decoding  (IOD),  yaitu   menganalisa  instruksi   untuk   menentukan
        jenis operasi yang akan dibentuk dan operand yang akan digunakan.
·          Operand   Address    Calculation   (OAC),   yaitu    menentukan     alamat    operand,   hal   ini  
        dilakukan apabila melibatkan referensi operand pada memori.
·          Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.
·           Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.
·          Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori.


Penjelasan Tentang :
Accumulator
Temporary Register (MQ)
IBR  (Intruction Buffer Register)
IR (Intruction Register)
PC (Program Counter)
MBR (Memory Buffer Register)
MAR ( Memory Address Register)

1.  Register-register internal CPU :
Memory Buffer Register (MBR) atau Memory Data Register (MDR) :
berisi sebuah word yang akan disimpan di dalam memori, atau digunakan untuk menerima word dari memori.

2.  Memory Address Register (MAR) :
Menentukan alamat di memori yang isinya akan diambil ke MBR atau yang akan diisi dengan data yang terdapat di MBR.

3.  Instruction Register (IR) :
Instruction Register (IR) : tempat menampung instruksi yang akan dieksekusi.

4.  Program Counter (PC)  :
Menyimpan alamat instruksi berikutnya yang akan diambil dari memori.

5.  Accumulator :
Digunakan untuk menyimpan sementara operand dan hasil operasi ALU.

6.  Fetch cycle
Fetch   adalah siklus pengambilan data ke memori atau register.  Berikut adalah contoh aliran data siklus pengambilan(fetch cycle) :
    Urutan kejadian selama siklus instruksi tergantung pada rancangan CPU.
    Asumsi :  sebuah  CPU   yang   menggunakan   register  memori   alamat   (MAR),  register
      memori  buffer  (MBR),  pencacah program (PC)  dan  register instruksi (IR).

Prosesnya :
§    Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
§    PC berisi alamat instruksi berikutnya yang akan diambil.
§    Alamat ini dipindahkan ke MAR dan ditaruh di bus alamat.
§    Unit  control meminta pembacaan  memori  dan  hasilnya disimpan di bus data dan disalin ke
     MBR dan kemudian dipindahkan ke IR.
§    PC naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya.
§    Siklus   selesai,  unit  control  memeriksa  isi  IR untuk menentukan apakah IR berisi operand
     specifier yang menggunakan pengalamatan tak langsung.

2. Register yang ada di dalam fetch:
a.   Memory Address Register (MAR)
·     Terkoneksi dengan address bus
·     MAR melakukan spesifikasi address untuk operasi baca atau tulis

b.   Memory Buffer Register (MBR)
§  Terkoneksi dengan data bus
§  Menyimpan data untuk di tulis atau menyimpan data terakhir yang dibaca (Holds data to write or last data read)

7.  Execution Cycle
Execution cycle adalah proses dari CPU untuk mengerjakan instruksi yang sudah dijemput dari main memory dan sudah berada di IR register.Control unit di CPU mengartikan instruksi tersebut, melaksanakan operasi yang harus dilakukan, seperti penjemputan/penambilan data dari main memory, mengirim instruksi ke ALU untuk melakukan operasi aritmatika atau logika dan menyimpan hasil pengolahan kembali ke main memory.

Siklus Intruksi Dasar :
Eksekusi program akan terhenti apabila komputer dimatikan, terjadi kesalahan, atau terdapat instruksi yang menghentikan komputer.
Mengambil instruksi berikutnya Eksekusi instruksi Siklus Pengambilan (Fetch Cycle) & Siklus Eksekusi (Execute Cycle)
Pada awal setiap siklus instruksi, CPU membaca instruksi dari memori.
Sebuah register yang disebut Program Counter (PC) digunakan untuk menunjukkan alamat instruksi yang akan diambil dari memori.
Setiap kali sebuah instruksi dibaca, isi PC akan ditambah sehingga CPU akan membaca instruksi selanjutnya secara berurutan.
Instruksi yang dibaca akan dimuatkan ke sebuah register di dalam CPU yang disebut Instruction register (IR).
Selanjutnya CPU menginterpretasikan instruksi dan melakukan aksi yang diperlukan.

Register Internal Cpu :
Program Counter (PC) = menyimpan alamat instruksi
Instruction Register (IR) = menampung instruksi yang sedang dieksekusi
Accumulator (AC) = register penyimpanan temporer

Kode Atau Instruksi :
0001 =  Isi memori,   yang  alamatnya  dinyatakan  pada  bit  4  sampai  bit  15 pada format                 instruksi, disalinkan ke Accumulator.
0010 =  Simpan isi accumulator ke memori, yang alamatnya dinyatakan pada bit 4 sampai                  bit 15.
0101 =  Tambahkan   isi   AC    dengan     isi    memori, yang alamatnya dinyatakan pada bit                  4   sampai bit 15.

Kumpulan Register :
9 Memory Buffer Register (MBR)
9 Memory Address Register (MAR)
9 Instruction Register (IR)
9 Instruction Buffer Register (IBR): digunakan untuk menyimpan sementara instruksi sebelah kanan word di dalam memori.
9 Program Counter (PC)
9 Accumulator dan Multiplier -Ouotient (MQ) : digunakan untuk menyimpan sementara operand dan hasil operasi ALU.


Reference :
1. http://adi-lecture.blogspot.com/2013/02/struktur-dan-fungsi-cpu.html
2. https://rispian2016.blogspot.com/2016/03/penjelasan-dan-cara-kerja-diagram.html
3. http://rendydattebayo.blogspot.com/2014/10/siklus-intruksi-cpu.html
4. http://indradwiantoro.blogspot.com/2010/10/tugas-organisasi-arsistektur-komputer.html
5. https://asrwidi15.blogspot.com/2019/05/tugas-2.html