1. Fetching dan Execute A. Pengertian CPU CPU (Central Processing Unit) adalah otak atau sumber dari komputer yang mengatur dan memproses seluruh kerja komputer. CPU ini berbentuk IC yang diberi nama sesuai dengan tipenya, misalnya 8088 untuk PC XT dan 80286 untuk PC AT,Pentium IV dan sebagainya. Karena CPU ini berada pada suatu board (papan) yang disebut motherboard dan terletk dalam kotak (casing), sekarang ini orang jadi cenderung menyebut kotak berisi catu daya, disk drive dan motherboard sebagai CPU/ kotak CPU. Di dalam kotak CPU biasanya terdapat 2 buah disket drive yang diberi nama disket drive A dan disket drive B. selain disket drive ada juga yang mempunyai hard disk dan CD ROM. B. Fungsi CPU Fungsi utama CPU adalah menjalankan program-program yang disimpan di memori utama. Hal ini dilakukan dengan cara mengambil instruksi-instruksi dari memori utama dan mengeksekusinya satu persatu sesuai dengan alur perintah. Pekerjaan ini dilakukan dalam dua tahapan yaitu membaca instruksi (fetch) dan melaksanakan instruksi tersebut (execute). Proses membaca dan melaksankan ini dilakukan berulang-ulang sampai semua instruksi yang terdapat di memori utama dijalankan atau komputer dimatikan. Proses ini dikenal juga sebagai siklus fetch-eksekusi. a) Siklus fetch-eksekusi bisa dijelaskan sebagai berikut 1. Di awal setiap siklus, CPU akan membaca dari memori utama, 2. Sebuah register, yang disebut Program Counter (PC), akan mengawasi dan menghitung instruksi selanjutnya, 3. Ketika CPU membaca sebuah instruksi, Program Counter akan menambah satu hitungannya, 4. Lalu instruksi-instruksi yang dibaca tersebut akan dimuat dalam suatu register yang disebut register instruksi (IR), dan akhirnya 5. CPU akan melakukan interpretasi terhadap instruksi yang disimpan dalam bentuk kode binari, dan melakukan aksi yang sesuai dengan instruksi tersebut. b) Siklus Intruksi 1. Instruction Addess 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. 2. Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU. 3. Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan. 4. Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori. 5. Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O. 6. Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi. 7. Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori Sub Siklus Intruksi 1. Fetch : membaca instruksi berikutnya dari memori ke dalam CPU 2. Execute : menginterpretasikan opcode dan melakukan operasi yang diindikasikan 3. Interrupt : Apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interrupt. Aksi – Aksi CPU 1. CPU Memori, perpindahan data dari CPU ke memori dan sebaliknya 2. CPU – I/0, perpindahan data dari CPU ke modul I/0 dan sebaliknya 3. Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data 4. Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi pengubahan urusan eksekusi 2. A. INTERRUPT Pengertian Interupt Interupsi atau interrupt adalah suatu permintaan khusus pada mikroprocessor untuk melakukan sesuatu, jika terjadi interupsi maka komputer akan menghentikan dahulu apa yang sedang dikerjakan dan melakukan apa yang di minta oleh yang menginterupsi, setelah selesai maka aliran program akan kembali ke pernyataan program sebelum terjadinya interupsi. Interupsi merupakan sub rutin yang sudah tersedia dalam memori komputer. Pada IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0 s/d 255. Nomor interupsi 0 s/d 1Fh disediakan oleh ROM BIOS yaitu suatu IC di dalam komputer yang mengatur operasi dasar komputer. Jadi jika terjadi interupsi dengan nomor 0 s/d 1Fh maka secara default komputer akan beralih ke ROM BIOS dan melaksanakan program yang terdapat disana. Program yang melayani suatu interupsi dinamakan Interrupt Handler, dan hanya dijalankan jika terjadi sesuatu kejadian khusus (event). Kejadian ini bisa berupa timer yang mengalami overflow, penerimaan karakter melalui port serial, mengirimkan karakter melalui port serial, atau salah satu dari dua kejadian eksternal. Setiap interrupt akan mengekseskusi interrupt handlernya masing masing berdasarkan nomornya. Sedangkan alamat dari masing masing interrupt 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 interrupt handler yang bersangkutan. Jadi besarnya array itu adalah 256 elemen dengan ukuran elemen masing masing 4 byte. Total keseluruhan memori yang di pakai adalah sebesar 1024 byte (256x4=1024) atau 1 KB dan disimpan dalam lokasi memori absolut 0000h sampai 3FFh. Array sebesar 1 KB ini disebut interrupt vector table. Nilai nilai yang terkandung pada interrupt vector table ini tidak akan sama di satu komputer dengan yang lainnya. Fungsi interupsi adalah sebagai berikut : 1. Interupsi memindahkan pengendalian kepada interrupt service routine melalui interrupt vektor yang berisi alamat dari semua service routine. 2. Arsitektur interrupt harus menyimpan alamat intruksi yang di interrupt. 3. Interrupt yang datang berikutnya dibatalkan ketika interrupt lain sedang diproses untuk mencegah hilangnya suatu interrupt. 4. Trap adalah software generated interrupt yang disebabkan oleh kesalahan atau karena permintaan user. 5. Suatu sistem operasi dikendalikan oleh interrupt. Tujuan Interupsi : Secara umum untuk manajemen pengeksekusian routine intruksi 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. Dapat sebagai sinkronisasi kerja antar modul. B. JENIS INTERUPSI Internal HW interruptions : Ditimbulkan/digenerasi oleh peristiwa tertentu yang terjadi pada waktu/selama eksekusi program Diatur oleh HW dan tidak dapat dirubah Contoh : tipe interrupt untuk counter clock internal; HW call interrupt ini untuk memaintance “time to date” External HW interrupstion Ditimbulkan/digenerasi oleh devais peripheral, seperti keyboard, printers, mouse, dsb. Biasa juga ditimbulkan/digenerasi oleh Co-processor Tidak mungkin mendeaktivekan Tidak dikirim langsung ke CPU, melainkan ke IC yang memiliki fungsi untuk menghandle secara eksklusive interrupts ini. Software interruption : · Diaktifkan langsung oleh assembler melalui sejumlah interupsi yang di harapkan dengan intruksi INT · Terdapat 2 jenis : DOS interrupstions & BIOS interruptions. Perbedaan nya, DOS interruptions lebih mudah digunakan, namun lebih lambat, karena interruptions jenis ini menggunakan BIOS, BIOS interruptions lebih cepat, namun banyak kerugiannya karena BIOS bagian HW dan HW-specific. Pemilihan interrupt tergantung pada karakteristik yang akan kita berikan pada program : SPEED -> BIOS interruptions . PORTABILITY -> DOS interruptions. Ada 2 macam Software Interrupt : 1. Vektor Interrupt ROM BIOS Interrupt 00h-1Fh (0-31) adalah interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS atau bukan. Lokasi interrupt vector tabkenya ada di alamat absolut 0000h-007Fh. Interrupt BIOS dibawah ini telah di pastikan kegunaannya oleh sistem untuk keperluan khusus tidak boleh di ubah oleh program seperti lainnya. DEVIDE BY ZERO Jika terjadi pembagian dengan nol maka proses akan segera dihentikan. SINGLE STEP untuk melaksanakan/mengeksekusi intruksi satu persatu. NMI pelayanan terhadap NMI (Non Maskable Interrupt yaitu interupsi yang tak dapat dicegah. BREAK POINT Jika suatu program menyebabkan overflow flag menjadi 1, interrupt ini akan melayani pencegahannya dan memberi tanda error. 2. Interrupt DOS Interrupt 20h-FFh (32-255) adalah interrupt DOS, dan hanya ada pada komputer yang menggunakan sistem operasi DOS dan interrupt handlernya di load ke memori oleh DOS pada saat DOS digunakan. Lokasi interrupt vector tablenya ada di alamat absolut 07Fh-3FFh Penyebab terjadinya interupsi : 1. Program Diakibatkan adanya beberapa kondisi yang terjadi, hasil dari suatu eksekusi. Contoh: arithmetic overflow, devision by zero, pengeksekusian secara illegal, penggunaan memori yang berlebihan. 2. Timer Disebabkan oleh timer di dalam prosesor. Hal ini memungkinkan sistem operasi menjalankan fungsi-fungsi tertentu secara regular. 3. I/O Disebabkan oleh I/O Controller, baik sebagai tanda bahwa suatu operasi telah selesai, maupun memberi tanda adanya kondisi error. Interrupt I/O ada dua macam, interrupt pendek dan interrupt panjang. 4. Hardware Failure Disebabkan olch kesalahan hardware, scperti power failure (kegagalan daya) atau memory parity error. 5. Menangani exception, Exception adalah suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi didapatkan hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contohnya, pembagian dengan nol, pengaksesan alamat memori yang restricted atau tidak valid, dll. 6. Mengatur virtual memory paging. 7. Menangani perangkat lunak interupsi. 8. Menangani alur kontrol kernel. Tindak lanjut interupsi : 1. Penata interupsi / interrupt handler Jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi. a. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program. b. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses. c. Penata interupsi mengidentifikasi jenis dan asal interupsi. d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi. e. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi. 2. Penata keliru/Error handler Yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru. a. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan. b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses. c. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.