ee-2623 mikroprosesor & antarmuka

Click here to load reader

Upload: shel

Post on 24-Feb-2016

92 views

Category:

Documents


0 download

DESCRIPTION

EE-2623 Mikroprosesor & Antarmuka. Materi 9 Interrupt Team Dosen 2007. INTerrupt. Sinyal input Fungsi: meminta pelayanan prosesor Kerja gabungan antara h/w dan s/w dikarenakan uP untuk kaki INTR dan NMI NMI = non maskable interrupt  tidak bisa dihalangi oleh software. - PowerPoint PPT Presentation

TRANSCRIPT

Interrupt

EE-2623Mikroprosesor & AntarmukaMateri 9InterruptTeam Dosen20071INTerruptSinyal inputFungsi: meminta pelayanan prosesorKerja gabungan antara h/w dan s/w dikarenakan uP untuk kaki INTR dan NMINMI = non maskable interrupt tidak bisa dihalangi oleh software

2Langkah-langkah interruptH/W : Devais mengirim INTS/W :Menghentikan program yang sedang berjalanSimpan parameter-parameter penting dari program tersebut agar bisa kembali meneruskan program tsbMenjalankan program pelayanan interuptAmbil parameter-parameter program awal dan teruskan 3Parameter penting programIsi dari register FLAG15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 X X X X O D I T S Z X A X P X CO = OverflowT = TrapA = Auxiliary carryD = DirectionS = SignP = Parity I = interruptZ = Zero C = CarryX = tidak terpakai

I = 0 melayani interupt, I = 1 tidak melayani interupt Alamat : IP dan CSIsi dari register-register data yang digunakan oleh program interupt4AssemblyPUSHF simpan flagSTI I = 1PUSH IPPUSH CSPUSH AX atau PUSH BX atau dllProgram InteruptDll atau POP BX atau POP AXPOP CSPOP IPPOPF mengambil isi flag asal

5Program InteruptMengisi IP dan CSinstruksi ..instruksiIRET interupt return

6Interrupt ControllerMasalah : kaki INT di uP 8088/8086 hanya 1 (satu) padahal devais yang minta pelayanan >1Solusi : ditambahkan IC interrupt controller uPINTRInt ContIR0IR778259 PIC

8

1. Interrupt dari divais2. PIC mengirim INT ke uP4. INTA (Timer untuk kesempatan Master mengirim ID ke slave5. Send Interrupt Type3. INTA9IBM PC : Pemetaan IRQ ke INTIRQ-0IRQ-1IRQ-2IRQ-3IRQ-4IRQ-5IRQ-6IRQ-7IR-0IR-1IR-2IR-3IR-4IR-5IR-6IR-7INT-8INT-9INT-AINT-BINT-CINT-DINT-EINT-FMenambah interrupt (cascade)

11IBM PC-AT Interrupt architecture

IRQ7IRQ0IRQ8IRQ15Prioritas IRQ: 0,1,8,9,10,11,12,13,14,15,3,4,5,6,712IBM PC AT : Pemetaan IRQ ke INTIRQ0IRQ1IRQ3IRQ4IRQ5IRQ6IRQ7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15INT8INT9INTBINTCINTDINTEINTFINT70INT71INT72INT73INT74INT75INT76INT77Peta Memori IBM PC & Letak IVT

Interrupt Vector Table

Alamat fisik FFFF0 tabel vector bootup F000:284EAlamat fisik 00000 sd 003FF table vector intterupt15Interrupt NumberVector AddressContent (My Comp)Content (Toshiba 1415-S)INT 0 (div 0)0000:00000000:00010000:00020000:0003IP low (68)IP high (10)CS low (A7)CS high (00)INT 1 (single step)0000:00040070:018B0070:018BINT 2 (NMI)0000:0008038F:0016INT 3 (One Byte Interrupt)0000:000C0070:018B0070:018BINT 4 (Overflow)0000:00100070:018B0070:018B. . .. . .. . .INT 2550000:03FC0246:F00016Interupt 0 sd 255Dari IVT didapatkan 256 vector ISR (Interrupt Service Routine) Interrupt hardware PICInterrupt software OS (contoh : INT 21H)Interrupt hardware mempunyai prioritas lebih tinggi dari interrupt software kecuali interrupt dari system (INT 0,1,2,3,4)17INT 0Divide by ZeroMenangani hasil operasi aritmetik pembagian yang hasilnya 0Umumnya : menghasilkan pesan kesalahan ke OS pesan ke program aplikasiMOV AL,92 ;AL=92SUB CL,CL ;CL=0DIV CL ;92/0=undefined result

MOV AX,0FFFFH ;AX=FFFFH MOV BL,2 ;BL=2DIV BL 65535/2 =32767 larger than 255 .maximum capacity of AL18IBM PC AT : Pemetaan IRQ ke INTIRQ0IRQ1IRQ3IRQ4IRQ5IRQ6IRQ7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15INT8INT9INTBINTCINTDINTEINTFINT70INT71INT72INT73INT74INT75INT76INT77Masking Interrupt & NMI (non maskable interrupt)IRQ pada dasarnya bisa dihalangi oleh software memprogram OCW1Fungsinya menghalangi divais-divais tertentu yang meminta IRQDisediakan kaki NMI sebagai masukan interrupt yang mau tidak mau harus dilayani

20ProgrammingICW1A0 = 0 dan D4 = 1

1= ICW4 needed0= no ICW4 needed

1= single0= cascade

Always 0 for the x86

1= level trigger input0= edge trigger input

Always 0 for x86 00001LTIM0SNGLIC4A0D421ICW2ICW2 cirinya A0 = 1ICW2 menentukan IRx INTy ; 3 bit LSB ICW2 ditentukan oleh PIC sesuai dengan IRnyaContoh:IR0 INT 70H ; program ICW2 = 01110000Maka: IR0 INT70HIR1 INT71Hdst1T7T6T5T4T3T2T1T0A022ICW3Di PIC master diprogram sesuai dengan IRx yang dihubungkan dengan PIC slaveMisal : di IMB PC/AT slave melalui IR2 PIC master ICW3 = 00000100 ; A0 = 1

Di PIC slave ICW3 menentukan alamat dari slave (CAS0, CAS1, CAS2 dari master)

A0D7D6D5D4D3D2D1D01IR7IR6IR5IR4IR3IR2IR1IR023OCWSetelah diprogram dengan ICW1, ICW2, ICW3, ICW4, pada dasarnya PIC telah siap untuk menerima Interrupt dari divais.Program aplikasi bisa memask interrupt tertentu, program aplikasi tidak ingin diganggu oleh INT tertentu, misal : tidak ingin diganggu KYB, maka interrupt untuk keyboard di maskCaranya dengan memprogram OCW24OCW1OCW1 langsung untuk memask IR tertentu, misal IR6 ingin di mask OCW1 = 01000000 ; A0 = 1Karena status mask pada saat PIC dimulai tidak diketahui maka, OCW1 harus di set segera setelah ICW-ICW diprogram

25OCW2Untuk menentukan urutan priotitas IR0 sd IR7Ada 3 modeFully Nested Sedang menjalankan IR3, datang IR2 dan IR4 pada saat yang bersamaan IR3 ditunda ke stack, IR2 dilayani sampai selesai, IR3 dilanjutkan sampai selesai, baru IR4 dilayani26MODE : Fully nestedUrutan prioritas bisa digeser dengan mengisi OCW2Misal :paling tinggi IR5 OCW2 = 00100101Melayani IR4, datang IR5 dan IR0 IR4 ditunda ke stack, IR5 dilayani, IR0 dilayani, IR4 dilanjutkan

27MODE : Automatic RotationIR yang sudah dilayani menjadi IR dengan prioritas terendahMisalIR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7Dilayani IR5, maka urutan : IR6,IR7,IR0,IR1,IR2,IR3,IR4,IR5Dilayani IR2, maka urutan : IR3,IR4,IR5,IR6,IR7,IR0,IR1,IR2Agar semua intterupt bisa kebagian dilayani28MODE : specific rotationIR5 selesai dilayani, maka : IR6,IR7,IR0,IR1,IR2,IR3,IR4,IR5IR2 selesai dilayani, maka : IR3,IR4,IR6,IR7,IR0,IR1,IR5,IR2IR4 selesai dilayani, maka : IR6,IR7,IR0,IR1,IR3,IR5,IR2,IR4IR7IR1IR3IR0IR6

IR5 selesai dilayani, maka : IR0,IR1,IR2,IR3,IR4,IR6,IR7,IR5IR2 selesai dilayani, maka : IR0,IR1,IR3,IR4,IR6,IR7,IR5,IR2IR4 selesai dilayani, maka : IR0,IR1,IR3,IR6,IR7,IR5,IR2,IR4IR7 selesai dilayani, maka : IR0,IR1,IR3,IR6,IR5,IR2,IR4,IR7IR1 selesai dilayani, maka : IR0,IR3,IR6,IR5,IR2,IR4,IR7,IR1IR3 selesai dilayani, maka : IR0,IR6,IR5,IR2,IR4,IR7,IR1,IR3IR0 selesai dilayani, maka : IR6,IR5,IR2,IR4,IR7,IR1,IR3,IR0IR6 selesai dilayani, maka : IR5,IR2,IR4,IR7,IR1,IR3,IR0,IR6

Program : IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR729Kondisi Reset / BootupQ : Alamat (IO / Memori) berapa yang diakses oleh uP pada saat pertama kali bootup (sesudah reset) ?A : MemoriQ : Tahu dari mana yang diakses memori?A : Register CS di isi FFFF Q : Memangnya di peta I/O tidak ada segmen?A : Tidak ada karena peta I/O hanya 64 kBQ : Apa yang anda tahu tentang segmen? Ukuran? Jenis? A : Ukuran segmen 64kB, Jenis 4 : Code, Data, Stack, ExtraQ : Alamat (IO / Memori) berapa yang diakses oleh uP pada saat pertama kali bootup (sesudah reset) ?A : Alamat Memori FFFF0 yang diakses oleh uP pada saat pertama kali bootup (sesudah reset)Back 31INT number

Physical Address

Logical Address

lNT00

00000

0000:0000

INT01

00004

0000:0004

INT02

00008

0000:0008

...

...

...

...

iintff

003FC

0000:03FC