Bismillah...

Memori dan Interupsi

I.    Memori pada sistem komputer

Sebuah sistem komputer memiliki berbagai jenis memori yang memiliki kinerja,kapasitas dan kecepatan berbeda-beda sesuai dengan tingkat hirarkinya. Memori yang memiliki hirarki paling atas,  memiliki tingkat kecepatan yang paling tinggi tetapi memiliki tingkat kapasitas (kemampuan penyimpanan data) paling rendah. Sesuai dengan tingkat hirarkinya, memori dalam sebuah komputer dapat dibedakan sebagai
berikut :
  
1.    Register
Register merupakan memori dengan hirarki yang paling tinggi. Berada dalam chip sebuah prosesor dan merupakan bagian integral dari prosesor itu sendiri. Register merupakan memori dengan kemampuan proses paling cepat, dimana proses baca dan tulis dilakukan dalam satu siklus detak.

2.    Cache Memory (Static RAM)
Cache Memory atau dalam bahasa Indonesia disebut memori cashe merupakan memori yang berada pada hirarki kedua setelah register. Cashe memiliki kapasitas kecil tetapi berkecepatan tinggi dan dipasang diantara prosesor dan memori utama. Memori ini dibuat dilatar belakangi oleh adanya  perbedaan kecepatan operasi antara prosesor dan memori utama bisa menjadi kendala bagi dicapainya efisiensi kerja sistem komputer.
Cashe memori juga disebut dengan nama static RAM. Disebut “static”, karena terbuat dari bahan yang sifatnya statis. Penggunaan bahan statis menyebabkan memori cashe dapat melakukan proses dengan sangat cepat, tetapi harganya mahal. Disamping itu Elektronis
Mekanis bahan statis merupakan bahan yang cepat panas sehingga tidak tepat jika digunakan dalam jumlah besar. 
Ditinjau dari lokasi pemasangannya, memori cashe terdiri dari dua jenis yaitu :

a.    Internal Cache (on-chip). Merupakan memori  cashe yang dipasang langsung dalam sebuah prosesor. Kapasitas umumnya sekitar 8 KB. Waktu yang diperlukan untuk mengakses data adalah beberapa siklus detak. 
b.    External Cache  (Memori Cashe level kedua). Memori ini  memiliki kapasitasnya lebih besar dari Internal Cache dan ditempatkan di luar chip prosesor. 

3.    Memori Utama (Dynamic RAM)
Jika memori cashe merupakan memori yang terbuat dari bahan statis, maka memori utama dibuat dari bahan yang bersifat dinamis sehingga juga disebut sebagai dynamic RAM. Bahan yang bersifat dinamic merupakan kebalikan dari bahan yang bersifat static. Harganya lebih murah, tidak cepat panas, tetapi proses yang dilakukannya tidak secepat memori statis. Orang mengenal memory utama dengan hanya menyebutnya sebagai RAM (Random Access Memory).
Memori ini disebut sebagai memori utama, karena memori ini langsung berhubungan dengan prosesor dalam menyediakan program dan data yang dibutuhkannya. Memori utama menghubungkan prosesor dengan memori sekunder untuk dapat melakukan tugas pengolahan data dengan baik. 
4.    Memori Sekunder 
Memori ini disebut secondary memory karena menyediakan media penyimpanan sekunder dalam jangka waktu lama untuk program dan data yang kadang-kadang dibutuhkan, tetapi tidak secara aktif. Biasanya terdiri dari unit disk yang terhubung secara elektronik ke sistem. Operasi I/O dibutuhkan disini untuk mengakses informasi yang tersimpan dalam memori sekunder ini. Contoh memori sekunder adalah hard disk,floppy disk, optical disk, dan lain sebagainya.
Magnetic Disk, Optical Disk ,  Magnetic Tape

II.    Interrupt

Interupsi adalah suatu permintaan khusus kepada mikroposesor untuk melakukan sesuatu. Bila terjadi interupsi, maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi dan setelah selesai akan kembali ke program  utamanya, Ada dua jenis interupsi yaitu :
Interupsi hardware adalah interupsi yang ditimbulkan oleh perangkat keras lewat pin NMI dan INTR pada prosesor. Contoh interupsi harware adalah interupsi timer, keyboar, I/O dsb.
Interupsi software adalah lebih mirip sub rutin atau prosedur. Interupsi software lebih banyak dipakai dalam kode program assembly secara langsung.
Pada IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0 sampai 255. Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu IC didalam komputer yang mengatur operasi dasar komputer. Jadi bila terjadi interupsi dengan nomor 0-1Fh, maka secara default komputer akan beralih menuju ROM BIOS dan melaksanakan program yang terdapat disana. Program yang melayani suatu interupsi dinamakan Interrupt Handler.

Vector Interupsi
Setiap interrupt akan mengeksekusi interupt handlernya masing-masing berdasarkan nomornya. Sedangkan alamat dari masing- masing interupt handler tercatat di memori dalam bentuk array yang besar elemennya masing-masing 4 byte. Keempat byte ini dibagi lagi yaitu 2 byte pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode segmen dari alamat interupt handler yang bersangkutan. Jadi besarnya array itu adalah 256 elemen dengan ukuran elemen masing-masing 4 byte. Total keseluruhan memori yang dipakai adalah sebesar 1024 byte (256 x 4 = 1024) atau 1 KB dan disimpan dalam lokasi memori absolut 0000h sampai 3FFh. Array sebesar 1 KB ini disebut Interupt Vector Table (Table Vektor Interupsi). Nilai-nilai yang terkandung pada Interupt Vector Table ini tidak akan sama di satu komputer dengan yang lainnya. Untuk mencari alamat awal dari suatu nomor interupsi digunakan rumus :

Alamat Awal = 4 * Nomor-Interupsi

Sedangkan interupt yang berjumlah 256 buah ini dibagi lagi ke dalam 2 macam yaitu:

a.    Interupt 00h - 1Fh (0 - 31) adalah interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS atau bukan. Lokasi Interupt Vector Table-nya ada di alamat absolut 0000h-007Fh.
b.    Interupt 20h - FFh (32 - 255) adalah interrupt DOS. Interrupt ini hanya ada pada komputer yang menggunakan sistem operasi DOS dan Interupt Handler-nya di-load ke memori oleh DOS pada saat DOS digunakan. Lokasi Interupt Vector Table-nya ada di alamat absolut 07Fh-3FFh.



* Interrupt ini telah dipastikan kegunaannya oleh sistem untuk keperluan yang khusus , tidak boleh diubah oleh pemrogram seperti yang lainnya.

a.  DEVIDE BY ZERO : Jika terjadi pembagian dengan nol maka proses akan segera dihentikan.
b.  SINGLE STEP : Untuk melaksanakan / mengeksekusi intruksi satu persatu.
c.  NMI : Pelayanan terhadap NMI (Non Maskable Interrupt) yaitu interupsi yang tak dapat dicegah.
d.  BREAK POINT : Jika suatu program menyebabkan overflow flag menjadi 1 maka interrupt ini akan melayani pencegahannya dan memberi tanda error.