1 / 31

EE-2623 Mikroprosesor & Antarmuka

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.

shel
Download Presentation

EE-2623 Mikroprosesor & Antarmuka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EE-2623Mikroprosesor & Antarmuka Materi 9 Interrupt Team Dosen 2007

  2. 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

  3. Langkah-langkah interrupt • H/W : Devais mengirim INT • S/W : • Menghentikan program yang sedang berjalan • Simpan parameter-parameter penting dari program tersebut  agar bisa kembali meneruskan program tsb • Menjalankan program pelayanan interupt • Ambil parameter-parameter program awal dan teruskan

  4. Parameter penting program • Isi dari register FLAG 15 141312111009080706050403020100 XX X XODITSZXAXPXC O = Overflow T = Trap A = Auxiliary carry D = Direction S = Sign P = Parity I = interrupt Z = Zero C = Carry X = tidak terpakai I = 0  melayani interupt, I = 1  tidak melayani interupt • Alamat : IP dan CS • Isi dari register-register data yang digunakan oleh program interupt

  5. Assembly • PUSHF simpan flag • STI  I = 1 • PUSH IP • PUSH CS • PUSH AX atau PUSH BX ataudll • Program Interupt • Dllatau POP BX atau POP AX • POP CS • POP IP • POPF  mengambilisi flag asal

  6. Program Interupt • Mengisi IP dan CS • instruksi • ….. • instruksi • IRET  interupt return

  7. uP IR0 Int Cont IR7 INTR Interrupt Controller • Masalah : kaki INT di uP 8088/8086 hanya 1 (satu) padahal devais yang minta pelayanan >1 • Solusi : ditambahkan IC interrupt controller

  8. 8259 PIC

  9. 3. INTA 5. Send Interrupt Type 4. INTA (Timer untukkesempatan Master mengirim ID ke slave 1. Interrupt dari divais 2. PIC mengirim INT ke uP

  10. IBM PC : Pemetaan IRQ ke INT

  11. Menambah interrupt (cascade)

  12. IBM PC-AT Interrupt architecture IRQ7 IRQ15 IRQ0 IRQ8 Prioritas IRQ: 0,1,8,9,10,11,12,13,14,15,3,4,5,6,7

  13. IBM PC AT : Pemetaan IRQ ke INT

  14. PetaMemori IBM PC & Letak IVT

  15. Alamatfisik FFFF0  tabel vector bootupF000:284E Alamatfisik 00000 sd 003FF table vector intterupt Interrupt Vector Table

  16. Interupt 0 sd 255 • Dari IVT didapatkan 256 vector ISR (Interrupt Service Routine) • Interrupt hardware  PIC • Interrupt software  OS (contoh : INT 21H) • Interrupt hardware mempunyai prioritas lebih tinggi dari interrupt software kecuali interrupt dari system (INT 0,1,2,3,4)

  17. INT 0 • Divide by Zero • Menangani hasil operasi aritmetik pembagian yang hasilnya 0 • Umumnya : menghasilkan pesan kesalahan ke OS  pesan ke program aplikasi • MOV AL,92 ;AL=92 SUB CL,CL ;CL=0 DIV CL ;92/0=undefined result • MOV AX,0FFFFH ;AX=FFFFH MOV BL,2 ;BL=2 DIV BL 65535/2 =32767 larger than 255 .maximum capacity of AL

  18. IBM PC AT : Pemetaan IRQ ke INT

  19. Masking Interrupt & NMI (non maskable interrupt) • IRQ padadasarnyabisadihalangioleh software  memprogram OCW1 • Fungsinyamenghalangidivais-divaistertentu yang meminta IRQ • Disediakan kaki NMI sebagaimasukan interrupt yang mautidakmauharusdilayani

  20. 0 0 0 0 1 LTIM 0 SNGL IC4 1= ICW4 needed 0= no ICW4 needed 1= single 0= cascade Always 0 for the x86 1= level trigger input 0= edge trigger input Always 0 for x86 Programming • ICW1 • A0 = 0 dan D4 = 1 A0 D4

  21. A0 1 T7 T6 T5 T4 T3 T2 T1 T0 ICW2 • ICW2 cirinya A0 = 1 • ICW2 menentukanIRx INTy ; 3 bit LSB ICW2 ditentukanoleh PIC sesuaidenganIRnya • Contoh: • IR0  INT 70H ; program ICW2 = 01110000 Maka: IR0  INT70H IR1  INT71H dst

  22. ICW3 Di PIC master diprogramsesuaidenganIRx yang dihubungkandengan PIC slave • Misal : di IMB PC/AT slave melalui IR2 PIC master  ICW3 = 00000100 ; A0 = 1 • Di PIC slave ICW3 menentukanalamatdari slave (CAS0, CAS1, CAS2 dari master)

  23. OCW • Setelahdiprogramdengan ICW1, ICW2, ICW3, ICW4, padadasarnya PIC telahsiapuntukmenerima Interrupt daridivais. • Program aplikasibisamemask interrupt tertentu,  program aplikasitidakingindigangguoleh INT tertentu, misal : tidakingindiganggu KYB, maka interrupt untuk keyboard di mask • Caranyadenganmemprogram OCW

  24. OCW1 • OCW1 langsunguntukmemask IR tertentu, misal IR6 ingindi mask  OCW1 = 01000000 ; A0 = 1 • Karena status mask padasaat PIC dimulaitidakdiketahuimaka, OCW1 harusdi set segerasetelah ICW-ICW diprogram

  25. OCW2 • Untuk menentukan urutan priotitas IR0 sd IR7 • Ada 3 mode • Fully 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 dilayani

  26. MODE : Fully nested • Urutan prioritas bisa digeser dengan mengisi OCW2 • Misal : • paling tinggi IR5  OCW2 = 00100101 • Melayani IR4, datang IR5 dan IR0  IR4 ditunda ke stack, IR5 dilayani, IR0 dilayani, IR4 dilanjutkan

  27. MODE : Automatic Rotation • IR yang sudah dilayani menjadi IR dengan prioritas terendah • Misal • IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7 • Dilayani IR5, maka urutan : IR6,IR7,IR0,IR1,IR2,IR3,IR4,IR5 • Dilayani IR2, maka urutan : IR3,IR4,IR5,IR6,IR7,IR0,IR1,IR2 • Agar semua intterupt bisa kebagian dilayani

  28. MODE : specific rotation • IR5 selesai dilayani, maka : IR6,IR7,IR0,IR1,IR2,IR3,IR4,IR5 • IR2 selesai dilayani, maka : IR3,IR4,IR6,IR7,IR0,IR1,IR5,IR2 • IR4 selesai dilayani, maka : IR6,IR7,IR0,IR1,IR3,IR5,IR2,IR4 • IR7 • IR1 • IR3 • IR0 • IR6 • IR5 selesai dilayani, maka : IR0,IR1,IR2,IR3,IR4,IR6,IR7,IR5 • IR2 selesai dilayani, maka : IR0,IR1,IR3,IR4,IR6,IR7,IR5,IR2 • IR4 selesai dilayani, maka : IR0,IR1,IR3,IR6,IR7,IR5,IR2,IR4 • IR7 selesai dilayani, maka : IR0,IR1,IR3,IR6,IR5,IR2,IR4,IR7 • IR1selesai dilayani, maka : IR0,IR3,IR6,IR5,IR2,IR4,IR7,IR1 • IR3selesai dilayani, maka : IR0,IR6,IR5,IR2,IR4,IR7,IR1,IR3 • IR0selesai dilayani, maka : IR6,IR5,IR2,IR4,IR7,IR1,IR3,IR0 • IR6 selesai dilayani, maka : IR5,IR2,IR4,IR7,IR1,IR3,IR0,IR6 Program : IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7

  29. GND 1 40 VCC AD14 2 39 AD15 AD13 3 BHE/S7 38 A16/S3 AD12 4 MN/MX 37 A17/S4 AD11 5 RD 36 A18/S5 AD10 6 35 A19/S6 AD9 7 34 AD8 8 8086 WR 33 AD7 9 M/IO 32 AD6 10 DT/R 31 HOLD AD5 11 DEN 30 HLDA AD4 12 29 AD3 13 INTA 28 AD2 14 TEST 27 AD1 15 26 AD0 16 25 ALE NMI 17 24 INTR 18 23 CLK 19 22 READY GND 20 21 RESET • Reset • Menghentikan aktifitas mp saat itu • masukan • Aktif ‘high’ • Kondisi register di dalam mikroprosesor setelah reset:

  30. Kondisi Reset / Bootup • Q : Alamat (IO / Memori) berapa yang diaksesolehuPpadasaatpertama kali bootup (sesudah reset) ? • A : Memori • Q : Tahudarimana yang diaksesmemori? • A : Register CS diisi FFFF • Q : Memangnyadipeta I/O tidakadasegmen? • A : Tidakadakarenapeta I/O hanya 64 kB • Q : Apa yang andatahutentangsegmen? Ukuran? Jenis? • A : Ukuransegmen 64kB, Jenis 4 : Code, Data, Stack, Extra • Q : Alamat (IO / Memori) berapa yang diaksesolehuPpadasaatpertama kali bootup (sesudah reset) ? • A : AlamatMemori FFFF0 yang diaksesolehuPpadasaatpertama kali bootup (sesudah reset) Back 

More Related