Jenis Instruksi yang dijalankan oleh Processor
1. Pertukaran data antara
pocessor dan memori utama.
Instruksi ini dilakukan ketika data harus
dibaca/ditulis ke memori utama.
2. Pertukaran data antara
processor dan modul I/O.
Instruksi ini dilakukan ketika data harus
dibaca/ditulis ke peranti I/O. Umumnya data-data untuk
operasi
I/O akan disimpan sementara di memori utama sebelum diproses oleh processor.
3. Pemrosesan data oleh
processor.
Instruksi ini dilakukan jika diperlukan
operasi-operasi aritmatika ataupun logika.
4. Operasi kendali.
Instruksi ini dilakukan jika diperlukan
pengaturan alur eksekusi instruksi seperti operasi lompat (jump) ke instruksi tertentu.
Untuk menjalankan tugasnya, processor membutuhkan tempat menampung instruksi, data, maupun alamat data. Memori semacam ini disebut register. Jenis-jenis register yang umumnya terdapat pada processor sebagai berikut :
Register
Pengguna
Yaitu
register yang dapat digunakan untuk menyimpan data serta alamat data program.
Register
Status dan Kontrol
Yaitu
register yang digunakan untuk mengontrol eksekusi kode instruksi program.
Register Pengguna, terdiri atas :
Register
Data
Register ini digunakan untuk menyimpan data yang dibaca dari memori ataupun yang akan diproses di ALU. Yang termasuk register data antara lain register AX,
BX, CX, DX.
Register
Alamat
Register ini digunakan untuk menyimpan alamat memori dari data ataupun kode instruksi program yang akan diakses oleh processor. Register alamat dapat dikelompokkan ke dalam register indeks (index register, seperti register SI, DI),
register segmen (segment register, seperti register ES, DS, SS)
dan register pointer
(pointer register, seperti BP, SP)
Register Status dan Control, terdiri atas :
Register
penghitung
(PC, Program Counter Register)
Register ini menyimpan alamat memori (alamat relatif/logika) dari kode instruksi yang sedang dieksekusi.
Register
segmen kode instruksi
(CS, Code Segment Register)
Register ini meyimpan alamat segmen memori dari kode instruksi yang sedang dieksekusi.
Register
Instruksi
(IR, Instruction register)
Register ini menyimpan alamat kode instruksi yang sedang/akan dieksekusi. Kode instruksi ini dibaca dari memori fisik menggunakan alamat yang ditunjukkan oleh register CS dan PC.
Register
status (F, Flag Register)
Register ini menyimpan sejumlah status hasil eksekusi kode instruksi yang sedang berlangsung. Misalkan jika terjadi pembagian dengan bilangan nol maka kondisi tersebut akan dicatat di register status.
Interupsi
Adalah sinyal perangkat lunak ataupun sinyal perangkat keras, terutama peranti I/O, untuk meminta processor melakukan suatu tugas tertentu.
Interpusi terdiri dari:
Interupsi Perangkat Lunak
(Software Interrupt)
Yaitu interupsi yang diakibatkan oleh kode instruksi atau efek dari perangkat lunak. Interupsi ini sering juga disebut system call, karena umumnya digunakan untuk meminta layanan atau penanganan dari sistem operasi. Contoh kondisi yang memicu terjadinya interupsi perangkat lunak adalah : program meminta sistem untuk mencetak hasil keluaran atau output ke printer, atau terjadi kondisi pembagian dengan bilangan nol (division by zero) ataupun hasil operasi aritmatika melebihi presisi tipe data penyimpan (arithmetic
overflow).
Interupsi Perangkat Keras (Hardware Interrupt)
Yaitu interupsi yang diakibatkan aksi pada perangkat keras, terbagi dua :
1.Maskable Interrupt, yaitu interupsi yang disela, misalkan : interupsi oleh timer, penekanan keyboard atau mouse.
2.Non-Maskable Interrupt, yaitu interupsi yang tidak dapat disela, misalnya terjadi kegagalan perangkat keras seperti penyuplai tenaga (power failure) ataupun memory (memory
parity error).
Cara kerja interupsi :
Setiap interupsi memiliki rutin interupsi (ISR, Interrrupt service routine), yaitu kumpulan instruksi yang akan dieksekusi jika interupsi tersebut terjadi. Rutin interupsi atau ISR disimpan di memory pada saat komputer dihidupkan. Alamat memori dari ISR ini disimpan sebagai referensi dalam suatu tabel interupsi IST (interrupt
service table). Ketika interupsi terjadi, processor akan menunda program yang sedang dieksekusi, kemudian menyimpan isi register-register
processor, disebut juga dengan konteks processor, ke memory.
Proses selanjutnya akan membaca (lookup) di IST untuk mengetahui alamat ISR interupsi bersangkutan. Dalam pembacaan ini, processor menggunakan nomor interupsi yang dibangkitkan perangkat keras sebagai nomor indeks untuk membaca IST. Seteleh mengetahui alamat ISR, processor mulai membaca kode instruksi ISR dan mengeksekusinya.
Setelah eksekusi ISR selesai, processor akan kembali mengeksekusi program yang tertunda, yang diawali dengan mengisi kembali register-register
processor sehingga kondisinya sama seperti sebelum terjadi interupsi.
0 komentar:
Posting Komentar