1 of 29

Organisasi dan Arsitektur Komputer

Struktur & Fungsi

CPU

1

Iim Abdurrohim, M.T.

&

Yasri, MT

2 of 29

Fungsi Interrupt

  • Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam CPU kepada routine interupsi.
  • Tujuan interupsi secara umum untuk manajemen pengeksekusian routine instruksi agar efektif dan efisien antar CPU dan modul – modul I/O maupun memori.
  • Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU. Disamping itu kecepatan eksekusi masing – masing modul berbeda sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul

2

3 of 29

Macam – macam kelas sinyal interupsi

  • Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada hasil eksekusi program. Contohnya: aritmatika overflow, pembagian nol, operasi ilegal.
  • Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.

3

4 of 29

Aritmatika Overflow

  • Terjadi ketika hasil perhitungan melebihi kapasitas register.

Contoh

  • Misalnya register hanya bisa menyimpan 8-bit (−128 s.d. 127)

LOAD A ; A = 120� ADD B ; B = 20

Hasil:

  • 120 + 20 = 140 → melebihi 127 (overflow)
  • Prosesor akan memicu interrupt/exception overflow karena hasil tidak bisa direpresentasikan.

4

5 of 29

Pembagian dengan Nol (Division by Zero)

  • Terjadi saat melakukan pembagian dengan penyebut = 0.

Contoh

LOAD A ; A = 25� DIV B ; B = 0

  • Operasi ini tidak terdefinisi, sehingga prosesor memicu interrupt division by zero.

5

6 of 29

Operasi Ilegal (Illegal Instruction)

  • Terjadi jika CPU menemukan instruksi yang tidak dikenal atau tidak valid.

Contoh

LOAD A� XYZ B ; instruksi tidak valid

  • CPU tidak mengenali XYZ, maka terjadi illegal instruction interrupt.

6

7 of 29

Macam – macam kelas sinyal interupsi

  • I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan kondisi error dan penyelesaian suatu operasi.
  • Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan paritas memori.(bit tambahan)

7

8 of 29

Apabila interupsi ditangguhkan, maka

  1. Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya.Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data lain yang relevan.

  • Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.

8

9 of 29

Siklus instruksi dengan interrupt

9

10 of 29

Interupsi Proses Ganda

  1. Menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor. Kemudian setelah prosesor selesai menangani suatu interupsi maka interupsi lain baru di tangani.

Disebut pengolahan interupsi berurutan / sekuensial. Pendekatan ini cukup baik dan sederhana karena interupsi ditangani dalam urutan yang cukup ketat.

Kelemahan 🡪 tidak memperhitungkan prioritas interupsi. Diperlihatkan pada gambar 3.6a.

  1. Mendefinisikan prioritas bagi interupsi dan interrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu.

Disebut pengolahan interupsi bersarang, diperlihatkan pada gambar 3.6b.

10

11 of 29

Penanganan Interupsi Proses Ganda

11

12 of 29

Contoh Pendekatan Bersarang

  • Suatu sistem memiliki tiga perangkat I/O: printer, disk, dan saluran komunikasi, dengan prioritas masing – masing 2, 4 dan 5 (prioritas paling tinggi).
  • Pada awal sistem melakukan pencetakan dengan printer(2), saat itu terdapat pengiriman data pada saluran komunikasi(5) sehingga modul komunikasi meminta interupsi.
  • Proses selanjutnya adalah pengalihan eksekusi interupsi modul komunikasi, sedangkan interupsi printer ditangguhkan.

12

13 of 29

Contoh Pendekatan Bersarang

  • Saat pengeksekusian modul komunikasi terjadi interupsi disk(4), namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan.
  • Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang memiliki prioritas lebih tinggi, yaitu disk(4).
  • Bila interupsi disk(4) selesai dilanjutkan eksekusi interupsi printer(2).
  • Selanjutnya dilanjutkan eksekusi program utama.

13

14 of 29

Diagram siklus instruksi dengan interrupt

14

15 of 29

Siklus Instruksi

Masih ingat apa saja?

Fetch

Decode

Execute

Interrupt

Masih ada lagi?

15

16 of 29

Sub-siklus Instruksi

  • Fetch : membaca instruksi berikutnya dari memori ke dalam CPU
  • Decode : menginterpretasikan opcode dan melakukan operasi yang diindikasikan
  • Execute : Menjalankan code
  • Interrupt : Apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interrupt.

16

17 of 29

Siklus Tak Langsung

  • Eksekusi sebuah instruksi dapat melibatkan sebuah operand atau lebih di dalam memori, yang masing-masing memori memerlukan akses memori.
  • Pengambilan alamat-alamat yang tak langsung dapat dianggap sebagai sebuah subsiklus instruksi.

(Buka kembali Orkom 1 – Mode Pengalamatan – Indirect)

17

18 of 29

Siklus Instruksi

18

19 of 29

Diagram Status Siklus Instruksi

19

20 of 29

Aliran Data Siklus Pengambilan (Instruction Fetch)

  • Urutan kejadian selama siklus instruksi tergantung pada rancangan CPU.

  • Umumnya :

Sebuah komputer menggunakan

    • register memori alamat (MAR),
    • register memori buffer (MBR),
    • pencacah program (PC) dan
    • register instruksi (IR).

20

21 of 29

Aliran Data Siklus Pengambilan (Instruction Fetch)

Prosesnya:

  • Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
  • PC berisi alamat instruksi berikutnya yang akan diambil.
  • Alamat ini akan dipindahkan ke MAR dan ditaruh di bus alamat.
  • Unit kontrol 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.

21

22 of 29

Aliran Data Siklus Pengambilan (Instruction Fetch)

Selanjutnya:

  • Siklus selesai, unit kontrol memeriksa isi IR untuk menentukan apakah IR berisi operand specifier yang menggunakan pengalamatan tak langsung.
  • Apabila pengalamatan tak langsung, maka siklus tak langsung akan dijalankan.

22

23 of 29

Aliran Data Siklus Tak Langsung

  • N bit paling kanan pada MBR, yang berisi referensi alamat, dipindahkan ke MAR.
  • Unit kontrol meminta pembacaan memori, agar mendapatkan alamat operand yang diinginkan ke dalam MBR.

23

24 of 29

Instruksi di dalam MBR biasanya terdiri dari:

  • Opcode (kode operasi) → bagian kiri
  • Address (alamat operand) → bagian kanan

Jadi, N bit paling kanan = bagian yang berisi alamat memori (operand).

  • Ketika instruksi akan dijalankan:
  • Bagian alamat (kanan) ini dipindahkan ke MAR
  • Supaya CPU tahu data di memori mana yang harus diambil

Contoh Angka Sederhana

  • Panjang instruksi = 16 bit
  • 6 bit kiri = opcode
  • 10 bit kanan = alamat (N = 10)

Isi MBR:

  • MBR = 101010 0000011010

Penjelasan:

  • 101010 → opcode (misalnya perintah LOAD)
  • 0000011010 → alamat = 26 (desimal)

Maka:

  • MAR = 0000011010 (alamat 26)

Artinya: CPU akan mengambil data dari alamat memori ke-26.

24

25 of 29

Aliran Data Siklus Execute

  • Siklus pengambilan dan siklus tak langsung cukup sederhana dan dapat diramalkan.
  • Siklus instruksi (instruction cycle) mengambil banyak bentuk karena bentuk bergantung pada bermacam-macam instruksi mesin yang terdapat di dalam IR.
  • Siklus meliputi pemindahan data di antara register-register, pembacaan atau penulisan dari memori, I/O, dan atau penggunaan ALU.

25

26 of 29

Aliran Data Siklus Interupsi

  • Isi PC saat itu harus disimpan sehingga CPU dapat melanjutkan aktivitas normal setelah terjadinya interrupt.

Proses :

  • Isi PC dipindahkan ke MBR untuk dituliskan ke dalam memori.
  • Lokasi memori khusus yang dicadangkan untuk keperluan ini dimuatkan ke MAR dari unit kontrol.
  • Lokasi ini berupa stack pointer.
  • PC dimuatkan dengan alamat rutin interrupt.
  • Akibatnya, siklus instruksi berikutnya akan mulai mengambil instruksi yang sesuai.

26

27 of 29

Penjelasan Intinya

  • Instruction Cycle adalah langkah-langkah CPU menjalankan instruksi.
  • Setelah tahap fetch, instruksi disimpan di IR.
  • Isi IR menentukan:
    • operasi apa yang dilakukan
    • apakah butuh data dari memori
    • apakah butuh perhitungan tambahan
  • Karena itu, alur siklus bisa berbeda-beda (mengambil banyak bentuk).

Contoh Perbedaan : Instruksi sederhana (tanpa operand memori)

  • ADD R1, R2

Siklusnya:

  • Fetch
  • Decode
  • Execute

27

28 of 29

Penjelasan Intinya

Contoh Perbedaan : Instruksi dengan operand di memori

  • LOAD A

Siklusnya:

  • Fetch
  • Decode
  • Hitung alamat (OAC-Operand Address Calculation)
  • Ambil data (OF-Operand Fetch)
  • Execute
  • Lebih panjang karena harus akses memori

Contoh Perbedaan : Instruksi percabangan

  • JUMP 100

Siklusnya:

  • Fetch
  • Decode
  • Ubah alamat instruksi berikutnya (PC)
  • Tidak ada operasi data

28

29 of 29

29