Interupsi dan Chip 8259.

Slides:



Advertisements
Presentasi serupa
Flags.
Advertisements

Pertemuan 6 (Organisasi Input/Output)
Struktur CPU Organisasi Komputer TATA SUMITRA M.KOM HP
Sistem Input/output (I/O)
Organisasi Komputer : Struktur dan Fungsi Komputer 2
Bhakti Yudho Suprapto, MT
FUNGSI DAN KOMPONEN UTAMA CPU
REGISTER Oleh : Oman Somantri, S.Kom
Pertemuan 3 Arsitektur Komputer II
PENDAHULUAN Dalam bab ini, kita akan mengembangkan pengetahuan mengenai dasar I/O dan antar muka periferal yang dapat diprogram denagn memelajari sebuah.
INTERUPSI mikroprosesor 8088
INTERUPSI.
Organisasi dan Arsitektur Komputer
Struktur CPU By Serdiwansyah N. A..
Organisai dan arsitektur komputer
SISTEM KOMPUTER STRUKTUR CPU NI KETUT ESATI, S.Si.
BAB 3 Struktur CPU.
PERTEMUAN KE-2 PERKULIAHAN SISTEM OPERASI
Struktur Sistem Komputer
REGISTER.
Arsitektur Perangkat Lunak 8086
Arsitektur dan Organisasi Komputer
MANAJEMEN DEVICE.
Struktur Sistem Komputer
Register.
INTERRUPT Mulyono.
Sistem Operasi Pertemuan 6.
Struktur Sistem Komputer
Sistem Input/output (I/O)
Arsitektur & Organisasi Komputer BAB IIi STRUKTUR CPU Oleh : Bambang Supeno, ST., MT. Sep-17 Arsitektur & Organisasi Komputer.
BIOS, DOS, dan String.
1. Mikroprosesor Intel Pertama adalah : a c
Oleh : SGO Aplikasi Mikrokontroler (DTG2K3)
Komponen CPU (2) ALU,I/O Interconnection & Interupsi
INTERUPSI.
Pendahuluan Interupsi
Matakuliah : T0483 / Bahasa Rakitan Tahun : 2005 Versi : 1.0
Pertemuan 4 STRUKTUR CPU Author: LINDA NORHAN, ST.
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
Memori pada Mikrokomputer
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
Triyogatama Wahyu Widodo
Matakuliah : H0162/ Mikroprosesor Tahun : 2006 Versi : 1/0
Perangkat Keras Masukan/Keluaran
REGISTER.
Mikroprosesor 8086 dan 8088.
Struktur CPU.
Pertemuan 2 Organisasi Komputer II
Sistem Bilangan & REGISTER
BAYU PRATAMA NUGROHO, S.Kom, M.T
Instruksi-instruksi pada 8086
Instruksi-instruksi pada 8086
Abdul Wahid STRUKTUR CPU JURUSAN TEKNIK INFORMATIKA
Struktur Sistem Komputer
Matakuliah : T0483 / Bahasa Rakitan Tahun : 2005 Versi : 1.0
Oleh : Devie Rosa Anamisa
Operasi Input Output (I/O)
Struktur CPU PERTEMUAN 3 Bambang Irawan S.Kom;M.Kom.
Bab 3.2. Unit Masukan dan Keluaran
ORGANISASI & ARSITEKTUR KOMPUTER
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
Pertemuan ke - 6 Organisasi Komputer
ORGANISASI & ARSITEKTUR KOMPUTER
Struktur Sistem Komputer
Struktur CPU.
Struktur CPU.
Universitas Trunojoyo
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
Struktur CPU.
Transcript presentasi:

Interupsi dan Chip 8259

Apakah interupsi itu? Interupsi adalah mekanisme yang digunakan perangkat eksternal untuk mendapatkan layanan dari CPU Perangkat eksternal membangkitkan sinyal interupsi untuk menarik perhatian CPU sehingga CPU menghentikan aktivitas yang sedang dilakukan untuk sementara waktu dan beralih ke penanganan interupsi Namun tidak semua interupsi berasal dari perangkat eksternal: perangkat lunak pun dapat membangkitkan interupsi

Interupsi pada keluarga Intel Total terdapat 256 interupsi: INT 00, INT 01, …,INT FFh (atau disebut juga sebagai interrupt type) Ke-256 jenis interupsi disimpan di dalam sebuah tabel: interrupt vector tabel (IVT) IVT terletak pada 1024 byte pertama memori: alamat 00000h – 003FFh Masing-masing entri di dalam IVT berisi vektor atau alamat dari interrupt service routine (ISR), yaitu pasangan CS dan IP dalam ukuran 4 byte

Interrupt vector table Intel telah memesan 32 jenis interupsi pertama (INT 00 – INT 1Fh), sisanya bebas digunakan 2 byte pertama pada masing-masing entri berisi alamat offset (IP) 2 byte selanjutnya berisi alamat segment (CS)

Beberapa interupsi pada keluraga Intel

Jenis interupsi Interupsi dibedakan berdasarkan sumber pembangkit interupsi Interupsi perangkat keras (hardware interrupt): berasal dari perangkat eksternal Interupsi perangkat lunak (sotfware interrupt): berasal dari perangkat lunak Kedua jenis interupsi berada dalam 256 jenis interupsi yang tersedia: sebagian untuk interupsi perangkat keras, sebagian untuk interupsi perangkat lunak

Interupsi perangkat keras Mikroprosesor 80x86 menyediakan 3 pin untuk penanganan interupsi: INTR (interrupt request), NMI (nonmaskable interrupt), dan INTA (interrupt acknowledge) INTR adalah pin input sinyal interupsi dari perangkat eksternal yang dapat diabaikan (masked) atau tidak (unmasked): melalui instruksi CLI dan STI NMI tidak dapat diabaikan (nonmaskable): input NMI otomatis membangkitkan interupsi jenis 2, digunakan untuk penanganan kegagalan sistem

Interupsi perangkat keras INTA digunakan sebagai pin output untuk memberitahukan kepada perangkat keras bahwa mikroprosesor tanggap terhadap interupsi yang dibangkitkan Selanjutnya perangkat keras harus menyediakan jenis interupsi pada pin D0-D7 Untuk itu input jenis interupsi harus melalui proses “dekoding” terlebih dahulu salah satunya dengan chip 8259

Interupsi perangkat lunak Interupsi perangkat lunak dibangkitkan dari dalam aplikasi dengan instruksi INT xx Contoh, INT 21h (DOS) dan INT 10h (display) Selain dengan instruksi INT xx, interupsi perangkat lunak dapat dibangkitkan oleh instruksi lain, yaitu BOUND, INTO, INT 3 BOUND dan INTO adalah instruksi kondisional, artinya tidak selalu membangkitkan interupsi INT 0, INT 1, INT 3, dan INT 4 adalah predefined interrupt yang masuk dalam kategori interupsi perangkat lunak 0: divide error, 1: single step, 3: breakpoint, 4: signed number overflow

Apa beda interupsi dan CALL FAR? Alamat yang dituju pada interupsi telah ditentukan dalam IVT: instruksi CALL FAR dapat menuju sembarang alamat dalam address range Interupsi dapat dibangkitkan setiap saat oleh perangkat keras: CALL FAR adalah pemanggilan prosedur yang telah direncanakan Interupsi perangkat keras dapat diabaikan: CALL FAR tidak Sebelum rutin interupsi dilakukan, flag register disimpan terlebih dahulu: CALL FAR tidak, hanya CS:IP saja Diakhir rutin interupsi digunakan instruksi IRET: CALL FAR menggunakan RETF, flag register yang disimpan dalam stack tidak diambil kembali Interupsi perangkat lunak = dengan CALL FAR: terencana

Interupsi dan flag register Ada 2 flag yang mempengaruhi interupsi: IF (interrupt flag) dan TF (trap flag) OF (overflow flag) digunakan dalam instruksi untuk mendeteksi adanya overflow (INTO) IF digunakan untuk mengabaikan atau memperhatikan interupsi eksternal (perangkat keras) NMI dan instruksi INT xx (interupsi perangkat lunak) tidak terpengaruh oleh IF: selalu diperhatikan oleh CPU IF dan TF akan di-clear saat akan masuk rutin interupsi dan akan dikembalikan kondisinya sekembalinya dari rutin interupsi

Menangani interupsi Pada setiap interupsi, baik sofware maupun hardware, prosesor melakukan langkah-langkah sbb.: PUSHF: menyimpan FR ke dalam stack IF dan TF di-nol-kan (cleared) PUSH CS PUSH IP Mengambil vektor interupsi dari IVT: nomor/jenis interupsi dikalikan 4 untuk mendapatkan alamat fisik yang menyimpan vektor interupsi  nilai CS dan IP dari vektor interupsi disalin ke register CS dan IP Rutin interupsi dijalankan: karena CS dan IP sudah merujuk pada lokasi rutin interupsi Setelah selesai menjalankan rutin interupsi: IRET  POP IP, POP CS, POPF

Fungsi-fungsi INT 00 – 04h INT 00h (divide error): termasuk dalam kategori conditional atau exception interrupt, otomatis akan dibangkitkan CPU jika ada suatu kondisi yang tidak bisa ditangani CPU, contoh membagi dengan nol atau jika sisa bagi dalam operasi pembagian terlalu besar (tidak dapat dimuat dalam 1 register)

Fungsi-fungsi INT 00 – 04h INT 01h (single step): digunakan pada modus single stepping atau trace di mana memungkinkan untuk memeriksa isi memori atau register, cara kerjanya adalah dengan men-set TF menjadi 1 sehingga setiap selesai mengeksekusi 1 instruksi CPU akan menjalankan INT 01h

Fungsi-fungsi INT 00 – 04h INT 02h (NMI): rutin layanan nonmaskable interrupt Interupsi ini dibangkitkan oleh perangkat eksternal dengan mengaktifkan pin NMI ke 5 V

Fungsi-fungsi INT 00 – 04h INT 03h (breakpoint): biasanya digunakan bersama-sama dengan INT 01h untuk melakukan debugging perangkat lunak, INT 03h memungkinkan untuk memeriksa isi memori dan register setelah serangkaian instruksi dieksekusi CPU INT 01h akan dijalankan setelah CPU mengeksekusi 1 buah instruksi INT 03h akan dijalankan setelah CPU mengeksekusi serangkaian instruksi

Fungsi-fungsi INT 00 – 04h INT 04h (signed number overflow): interupsi ini dibangkitkan dengan instruksi INTO (interrupt on overflow), instruksi INTO diletakkan setelah instruksi IMUL atau ADD sehingga jika OF = 1, maka CPU akan memanggil INT 04h, jika tidak maka INTO akan diabaikan (seolah-olah seperti instruksi NOP)

Merancang interupsi perangkat eksternal Pin interupsi pada mikroprosesor hanya tersedia 2 buah: INTR dan NMI NMI adalah interupsi khusus yang umumnya digunakan untuk menangani kondisi kegagalan Kenyataan, perangkat eksternal yang membutuhkan layanan CPU lebih dari satu Oleh karena itu diperlukan cara untuk memperluas (expanding) interupsi sehingga beberapa perangkat eksternal dapat dilayani oleh CPU melalui sebuah pin INTR Ingat, perangkat eksternal yang ingin dilayani CPU harus menyediakan jenis interupsi pada pin D0–D7

Mekanisme perluasan interupsi Menggunakan chip three state buffer (74ALS244) Teknik daisy chain menggunakan 74ALS32 Menggunakan programmable interrupt controller 8259A

Menggunakan 74ALS244 Interupsi tipe 80h

Menggunakan 74ALS244

Daisy chain dengan 74ALS32 Cukup membutuhkan satu vektor interupsi: tipe interupsi yang sama, tetapi dapat dibedakan reaksinya (prioritasnya) melalui rutin penanganan interupsi (ISR) Kelemahan: membutuhkan waktu lebih lama dengan adanya logik dalam ISR untuk menentukan interupsi dari perangkat keras mana yang harus ditangani Kelebihan: lebih baik daripada menggunakan 74ALS244

Daisy chain dengan 74ALS32 Rutin untuk menentukan sumber interupsi

Menggunakan 8259 PIC Tugas, silakan lihat di eLisa