• Tidak ada hasil yang ditemukan

JUN - ITTELKOM. Interrupt. Definisi Interrupt [1]

N/A
N/A
Protected

Academic year: 2021

Membagikan "JUN - ITTELKOM. Interrupt. Definisi Interrupt [1]"

Copied!
26
0
0

Teks penuh

(1)

LOGO

Oleh: Junartho Halomoan ([email protected])

Mikroprosesor dan Antarmuka

Interrupt

Definisi Interrupt [1]

Interupsi adalah upaya untuk

mengalihkan perhatian μP Intel 8088 dari program yg sedang dikerjakan untuk memberikan pelayanan khusus terlebih dahulu pada yang

menginterupsinya.

Contoh : Keyboard menginterupsi

kerja 8088 karena ada tuts keyboard yg ditekan. Data yg dihasilkan oleh tuts tersebut harus diambil sesegera mungkin oleh μP Intel 8088.

JUN

(2)

Definisi Interrupt [2]

Dilihat dari siapa yg menginterupsi,

interupsi dapat dibedakan menjadi 2, yaitu :

1. Software generated : dihasilkan dengan menggunakan instruksi INT 2. Hardware generated : dihasilkan

dengan mengaktifkan sinyal Interrupt pada pin 18 di μP Intel 8088 (active high)

Definisi Interrupt [3]

Kedua jenis interupsi tersebut akan

menyebabkan μP Intel 8088

mengerjakan suatu routine (program kecil) khusus (Interrupt Service

Routine/ ISR).

JUN

(3)

Interrupt Vector Table

http://www.pelletiernet.com/helppc/int_table.html

Software Generated [1]

Dihasilkan oleh instruksi INT yang

diikuti nomor interupsinya. Contoh : INT 13 berarti interupsi nomor 13H.

Tipe interupsi ini ada 2 jenis :

1. Interupsi yg dihasilkan oleh ROM BIOS (untuk nomor interupsi 0 s.d. nomor interupsi 1FH)

2. Interupsi yg dihasilkan oleh sistem operasi yg digunakan (untuk nomor interupsi 20H keatas)  DOS (disk operating system)

JUN

(4)

Software Generated [2]

Adanya instruksi INT dalam program

akan menyebabkan μP 8088

meninggalkan program yg sedang dikerjakan, dan mengerjakan routine khusus untuk nomor interupsi

tersebut. Setelah routine tersebut

selesai dikerjakan, maka μP 8088 akan kembali ke program semula yg tadinya ditinggalkan.

Software Generated [3]

Urutan kerja μP 8088 saat

mengerjakan instruksi INT XX (nilai XX dapat berharga 00H sampai FFH) : 1. Menyimpan isi register ke Stack

2. Mencari alamat routine XX

3. Lompat ke alamat routine tersebut 4. Mengerjakan routine tersebut

5. Kembali ke program semula dgn cara mengembalikan semua isi register dari Stack

JUN

(5)

Software Generated [4]

1. Menyimpan isi register ke Stack

Langkah ini ditujukan untuk

mengembalikan kembali isi register setelah routine XX selesai dijalankan.

Yang dilakukan :

a. Push Flag,

b. Clear Interrupt Flag, c. Clear Trap Flag,

d. Push CS, e. Push IP

Software Generated [5]

2. Mencari alamat routine XX

Sebelum dapat menjalankan routine

XX, μP 8088 harus mencari terlebih dahulu dimana routine XX tersebut berada. Untuk mendapatkan alamat routine tsb, μP 8088 akan mencarinya di Interrupt Vector Table (IVT) yg ada di alamat 00000H sampai 003FFH

(setiap nomor interupsi membutuhkan 4 byte alamat yg disimpan oleh IVT : 2

byte untuk alamat Segment dan 2 byte

JUN

(6)

Software Generated [6]

Software Generated [7]

3. Lompat ke alamat routine XX

Melompat ke instruksi awal dari

routine XX dgn melakukan lompatan JMP SSSS:OOOO dimana SSSS adalah alamat Segment dan OOOO adalah alamat Offset.

JUN

(7)

Software Generated [8]

4. Mengerjakan routine XX

μP 8088 akan mengerjakan semua

instruksi yg ada sampai ditemukan instruksi IRET (Interrupt Return)

Software Generated [9]

5. Kembali ke program semula

Jika instruksi IRET dikerjakan, maka

semua isi regiter yg tadi disimpan, akandikembalikan.

Yang dilakukan : a. Pop IP,

b. Pop CS,

c. Set Trap Flag,

d. Set Interrupt Flag, e. Pop Flag

JUN

(8)

Pemrograman Interrupt [1]

Ada beberapa instruksi interrupt

antara lain: INT, INT3, BOUND, INTO, IRET

INT n dimana menjalankan prosedur/

rutin interupsi pada alamat (4 byte) yang disimpan di vektor “n”

Cara menghitung alamat vektor table:

mis INT 5  5 x 4 = 20 (14h) maka alamat awal vektor interupsi 5 di 00014h sampai 00017h (karena 4 byte)

Pemrograman Interrupt [2]

BOUND merupakan instruksi interupsi

yang membandingkan 2 buah operand antara sebuah register dan 2 buah

word dari memori data. Mis BOUND AX,DATA  register AX

dibandingkan isi DATA dan DATA+1 juga dengan DATA+2 dan DATA+3

Jika (isi register AX lebih kecil dari DATA

dan DATA+1) atau (isi register AX lebih

besar dari DATA+2 dan DATA+3) maka

BOUND akan menjalankan prosedur/rutin pada alamat (4 byte) yang disimpan di vektor

JUN

(9)

Pemrograman Interrupt [3]

 Jika isi register AX di antaranya, BOUND

tidak akan terjadi apa- apa

INT3 merupakan instruksi interupsi

yang digunakan menyimpan breakpoint untuk debugging.

INTO merupakan instruksi interupsi

yang dijalankan dengan mengecek OF (overflow). Jika OF=1 maka INTO menjalankan prosedur/rutin pada alamat (4 byte) yang disimpan di vektor “4”. Jika OF =0 maka INTO tidak akan terjadi apa- apa.

Hardware Generated [1]

Adanya sinyal +5V pada pin 18 (INTR)

pada 8088 akan menyebabkan 8088 meninggalkan program yg sedang dikerjakan, dan mengerjakan routine khusus untuk nomor interupsi

tersebut. Setelah routine tersebut selesai dikerjakan, maka 8088 akan kembali ke program semula yg tadinya ditinggalkan.

JUN

(10)

Hardware Generated [2]

Urutan kerja μP 8088 saat

mendapatkan sinyal aktif pada pin 18 (INTR) :

1. Menyimpan isi register ke Stack

2. Mengaktifkan sinyal INTA (Interrupt Acknowledged) di pin 24

3. Membaca nomor interupsi di Address Bus (A0 – A7)

4. Mencari alamat routine untuk nomor interupsi tersebut

5. Lompat ke alamat routine tersebut

Hardware Generated [3]

6. Mengerjakan routine tersebut

7. Kembali ke program semula dgn cara mengembalikan semua isi register dari Stack

JUN

(11)

Hardware Generated [4]

1. Menyimpan isi register ke Stack

Langkah ini ditujukan untuk

mengembalikan kembali isi register setelah routine selesai dijalankan.

Yang dilakukan :

a. Push Flag,

b. Clear Interrupt Flag, c. Clear Trap Flag,

d. Push CS, e. Push IP

Hardware Generated [5]

2. Mengaktifkan sinyal INTA

Langkah ini ditujukan agar Interrupt

Controller (ex: 8259) memberitahukan

μP 8088 nomor interupsinya

JUN

(12)

Hardware Generated [6]

3. Membaca nomor interupsi

Membaca kondisi Address Bus AD0 –

AD7 untuk mengetahui siapa yg menginterupsinya

Hardware Generated [7]

4. Mencari alamat routine yg sesuai

Sebelum dapat menjalankan routine

yg sesuai, μP 8088 harus mencari terlebih dahulu dimana routine tersebut berada.

Untuk mendapatkan alamat routine

tsb, μP 8088 akan mencarinya di Interrupt Vector Table yg sama dgn tabel untuk Software Generated Interrupt.

JUN

(13)

Hardware Generated [8]

5. Lompat ke alamat routine tersebut

Melompat ke instruksi awal dari

routine dgn melakukan lompatan JMP SSSS:OOOO dimana SSSS adalah

alamat Segment dan OOOO adalah alamat Offset

Hardware Generated [9]

6. Mengerjakan routine tersebut

μP 8088 akan mengerjakan semua

instruksi yg ada sampai ditemukan

instruksi IRET (Interrupt Return)

JUN

(14)

Hardware Generated [10]

7. Kembali ke program semula

Jika instruksi IRET dikerjakan, maka

semua isi regiter yg tadi disimpan, akan dikembalikan.

Yang dilakukan :

a. Pop IP, b. Pop CS,

c. Set Trap Flag,

d. Set Interrupt Flag, e. Pop Flag

Hardware Generated [11]

JUN

(15)

Hardware Generated [12]

Hardware Generated [13]

Pada saat flag interrupt (IF) = 1 maka pin INTR bisa menginterupsi. Sebaliknya saat Flag interupt =0, INTR tidak bisa

menginterupsi. Men-set IF dengan instruksi STI dan Men-clear IF dengan instruksi CLI

Hardware interupt selain INTR juga ada NMI (non maskable interrupt) yang berarti interupsi yang tidak dapat diinterupsi dan dapat menginterupsi prosedur interupsi yang sedang berjalan

JUN

(16)

Hardware Generated [14]

NMI biasa digunakan untuk

mendeteksi ada power failure. Misal: suatu ketika tiba- tiba daya listrik ke uP 8088 drop. Maka sinyal interupsi masuk ke pin 17 (NMI) untuk

menjalankan interrupt tipe 2 dan semua data disimpan ke battery backed-up memory

Antarmuka PIC 8259 [1]

Jika dibutuhkan interupsi H/W lebih

dari satu maka sebuah komponen pengendali interupsi dibutuhkan dan mengatur prioritas interupsi yang dijalankan. Komponen controller interrupt (PIC=Programmable Interrupt Controller) adalah 8259. Misal dibutuhkan 64 interupsi maka dibutuhkan 1 IC master 8259 dan 8 buah IC master 8259

JUN

(17)

Antarmuka PIC 8259 [2]

Antarmuka PIC 8259 [3]

JUN

(18)

Antarmuka PIC 8259 [4]

WR: Connects to a write strobe signal

(one of 8 for the Pentium).

RD: Connects to the IORC signal.

INT: Connects to the INTR pin on the

microprocessor.

INTA: Connects to the INTA pin on the

microprocessor.

A0: Selects different command words

in the 8259A.

CS: Chip select - enables the 8259A for

programming and control.

Antarmuka PIC 8259 [5]

SP/EN: Slave Program (1 for master, 0

for slave)/Enable Buffer (controls the data bus transievers when in buffered mode).

CAS2-CAS0: Used as outputs from the

master to the slaves in cascaded systems.

JUN

(19)

Antarmuka PIC 8259 [6]

Antarmuka PIC 8259 [7]

1. Interrupt dari divais 3. INTA

4. Send Interrupt Type

JUN

(20)

Antarmuka PIC 8259 [8]

Prioritas IRQ: 0,1,8,2,10,11,12,13,14,15,3,4,5,6,7

Antarmuka PIC 8259 [9]

JUN

- ITTELKOM

(21)

Antarmuka PIC 8259 [10]

PIC diprogram oleh initialization (ICW) dan operation (OCW) command word

Ada 4 register ICW: ICW1, ICW2, ICW3, ICW4

ICW1jika dalam cascade mode maka ICW3 harus digunakan

Antarmuka PIC 8259 [11]

ICW2digunakan untuk menset

vektor interrupt. Mis:

vector interrupt = 08H s/d 0Fh (karena jumlah pin interrupt PIC

hanya 8 buah) maka ICW2diset 08H

JUN

(22)

Antarmuka PIC 8259 [12]

ICW3digunakan untuk apakah pin

interrupt IC master 8259 memiliki slave.

Antarmuka PIC 8259 [13]

ICW4digunakan untuk mode

interrupt yang diprogram. Jika AEOI

bernilai “1” maka OCW2 tidak perlu

diprogram. Sebaliknya jika bernilai “0”

maka OCW

JUN

2 perlu diprogram

(23)

Antarmuka PIC 8259 [14]

OCW1digunakan untuk men-mask

suatu interrupt tertentu. Program aplikasi bisa memask interrupt tertentu,  program aplikasi tidak ingin diganggu oleh INT tertentu,

misal : tidak ingin diganggu KYB, maka interrupt di-mask untuk keyboard

Antarmuka PIC 8259 [15]

OCW2digunakan untuk men-set

prioritas interrupt. Ada 3 mode interrupt: fully nested, automatic rotation, specific

JUN

(24)

Antarmuka PIC 8259 [16]

Antarmuka PIC 8259 [17]

Ada 3 mode interrupt: fully nested,

automatic rotation, specific.

MODE FULLY NESTED:

IR0 prioritas tertinggi, IR7 terendah misal: IR5 di set prioritas paling tinggi

Register ICW4bit SFNM di set “1”

dan bit AEOI di set “0”

Register OCW2di set 01100101

011  specific EOI command 101  IR5 paling tinggi

JUN

(25)

Antarmuka PIC 8259 [18]

Proses interrupt: pada saat IR4 sedang berjalan, kemudian IR5 dan IR0 masuk. Maka IR4 ditunda dahulu dan alamat prosedur IR4 diamankan ke stack. Kemudian rutin IR5

dijalankan setelah IR5 selesai  rutin IR0 dijalankan setelah IR0 selesai  IR4 dilanjutkan kembali

MODE AUTOMATIC ROTATION: IR yang

sudah dilayani menjadi IR dengan prioritas terendah

Antarmuka PIC 8259 [19]

Misal:

Register ICW4bit SFNM di set “0”

dan bit AEOI di set “0”

Register OCW2di set 10000xxx

100  rotate on automatic EOI cmd. start:IR0,IR1,IR2,IR3,IR4,IR5,IR6, IR7

o IR 5 sesudah dijalankan menjadi:

IR0,IR1,IR2,IR3,IR4,IR6, IR7,IR5

o IR 2 sesudah dijalankan menjadi

IR0,IR1,IR3,IR4,IR6, IR7,IR5,IR2

JUN

(26)

Antarmuka PIC 8259 [20]

MODE SPECIFIC:

101  IR5 paling rendah

Register ICW4bit SFNM di set “0”

dan bit AEOI di set “0”

Register OCW2di set 11000101

110  set priority cmd. maka urutan priority:

start:IR0,IR1,IR2,IR3,IR4,IR6,IR7,IR5 jika IR3 sedang berjalan, IR1 masuk. Maka IR1 harus menunggu sampai IR3 selesai

Antarmuka PIC 8259 [20]

101  IR5 paling rendah

Register ICW4bit SFNM di set “0”

dan bit AEOI di set “0”

Register OCW2di set 11100101

111  rotate on specific EOI cmd. maka urutan priority:

start:IR0,IR1,IR2,IR3,IR4,IR6,IR7,IR5

o saat IR3 selesai dijalankan

IR0,IR1,IR2,IR4,IR6,IR7,IR5,IR3

o saat IR2 selesai dijalankan

IR0,IR1,IR4,IR6,IR7,IR5,IR3,IR2

JUN

Referensi

Dokumen terkait

Kondisi ini dapat terlihat dalam perwilayahan komoditas, aktivitas pertanian kurang mendapat sorotan yang lebih mendetail mengenai jenis pertanian pada tataran Rencana Tata Ruang

sehingga dibutuhkan suatu media informasi tentang bagaimana belajar tentang teknik dasar dari bermain futsal yang dapat diajadikan sebagai suatu metode pembelajaran untuk

Menurut UU No 28 tahun 2009 Pajak Daerah, yang selanjutnya disebut Pajak, adalah kontribusi wajib kepada Daerah yang terutang oleh orang pribadi atau badan yang

untuk mengetahui kesalahan siswa dalam mengerjakan soal operasi hitung pecahan. Peneliti menemukan tipe kesalahan yang dilakukan siswa dalam menyelesaikan soal

Sedangkan berkaitan dengan dampak pelatihan dalam meningkatkan kesejahteraan keluarga, ada tiga bagian kesejahteraan keluarga yaitu kesejahteraan ekonomi yang

(As Reynie had already completed all the textbooks on his own, even those for high school students, the orphanage director had assigned him a special tutor while the other children

Dalam konteks kajian keragaman (multikultural) pandangan ini sangat superficial (Summer, 2010,). Pada tahap ini paling sering orang menganggap sebagai multikultural misalnya