Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehDira Okumura Telah diubah "9 tahun yang lalu
1
PENDAHULUAN Dalam bab ini, kita akan mengembangkan pengetahuan mengenai dasar I/O dan antar muka periferal yang dapat diprogram denagn memelajari sebuah teknik yang disebut I/Q terproses interupsi (interrupt-processed I/O). Interupsi adalah sebuah prosedur yang dimulai oleh perangkat keras yang akan menginterupsi program apa pun yang sedang berjalan NEXT
2
NEXT TUJUAN BAB Usai memelajari bab ini, anda akan mampu untuk: 1. Menjelaskan struktur interupsi keluarga mikroposesor Intel 2. Menjelaskan operasi instruksi perangkat lunak INT, INTO, INT 3, DAN BOUND 3. Menjelaskan bagaimana bit flag interup-enable (TF) dan operasi pelacakan (tracing) yang dihasilkan ileh trap 4. Menjelaskan fungsi bit flag interupt-trap dan operasi pelacakan (tracing) yang dihasilkan oleh trap 5. Mengembangkan prosedur layanan interupsi yang mengontrol peralatan eksternal berkecepatan lebih rendah 6. Mengembangkan struktur interupsi dari suatu mikroposesor dengan menggunakan kontroler yang dapat diprogram 8259A dan dengan teknik- teknik lain 7. Menjelaskan tujuan dan operasi clock waktu riil (real-time clock)
3
NEXT PEMROSESAN INTERUPSI DASAR Pada bagian ini, kita membicarakan fungsi sebuah interupsi dalam sisitem berbasisi mikroposesor, dan struktur serta fitur interupsi yang terdapat pada keluarga mikroposesor Intel. Manfaat Interupsi Interupsi sangat berguana ketika berhubungan denagn peralatan I/O yang menyediakan atau membutuhkan data dengan kecepatan transfer data yang relatif lambat. Sebagai contoh, dalam Bab 11 kita memperlihatkan sebuah keyboard dengan menggunakan operasi masukan ter-strobe dari 82C55. Pada contoh tersebut, perangkat lunak memilih 82C55 dan bit IBF untuk mengetahui apakah data tersedia dari keyboard. Jika pengguna keyboard mengetik suatu karakter per detik, perangkat lunak untuk 82C55 menunggu satu detik penuh pada tiap tekanan tombol hingga orang tersebut menekan tombol lainnya. Proses ini sangat membuang waktu sehingga perancang mengembangkan proses lain, yaitu pemrosesan interupsi, untuk menangani situasi ini..
4
NEXT Gambar 12-1 Urutan waktu yang menunjukkan penggunaan interupsi dalam suatu sistem umum
5
NEXT Interupsi Interupsi-inteupsi dari seluruh keluarga mikroprosesor Intel meliputi dua buah pin perangkat lunak yang meminta interupsi (INTR dan NMI), dan satu pin perangkat lunak () yang mengenali permintaan interupsi melalui INTR. Sebagai tambahan pin tersebut, mikroprosesor juga memiliki interupsi perangkat lunak INT, INTO, INT 3, dan BOUND. Dua bit flag, IF (interrupt flag – flag interupsi) dan TF (trap flag), juga digunakan bersama struktur interupsi dan sebuah instruksi return khusus IRET (atau IRETD pada 80386, 80486, atau Pentium–Pentium 4). Vektor Interupsi. Vektor interupsi dan tabel vektor merupakan dua hal yang sangat penting untuk dapat memahami interupsi perangkat keras dan perangkat lunak. Tabel vektor interupsi terlitak di 1024 byte pertama dari memori pada alamat 000000H– 0003FFH. Di dalamnya berisi 256 vektor interupsi berbeda dan masing-masing berukuran 4 byte. Sebuah vektor interupsi berisi alamat (segmen dan offset) prosedur layanan interupsi.
6
NEXT Gambar 12-2. (a) Tabel vektor interupsi untuk mikroprosesor dan (b) isi dari sebuah vektor interupsi
7
NEXT Instruksi Interupsi: BOUND, INTO, INT, INT3, dan IRET Dari lima interupsi perangkat lunak yang tersedia pada mikroprosesor, INT dan INT 3 sangat mirip, BOUND dan INTO bersifat tradisional, dan IRET merupakan instruksi return interupsi khusus. Instruksi BOUND, yang memiliki dua operand, membandingkan sebuah register dengan dua word data memori. Sebagai contoh, jika instruksi BOUND AX.DATA dijalankan, isi AX dibandingkan isi DATA dan isi DATA+1. selain itu, ia juga dibandingkan dengan DATA+2 dan DATA+3. Jika AX lebih kecil dari DATA+1, interupsi tipe 5 akan terjadi. Demikian juga yang terjadi jika AX lebih besar dari DATA+2 dan DATA+3. Apabila AX berada di dalam jangkauan dua word memori ini maka tidak ada interupsi yang terjadi.
8
NEXT Operasi pada Interupsi Mode Riil Ketika mikroprosesor selesai menjalankan instruksi, selanjutnya dicari apakah ada interupsi yang aktif dengan memeriksa (1) eksekusi instruksi, (2) single-step, (3) NMI, (4) overrun segmen koprosesor, (5) INTR, dan (6) istruksi INT dalam urutan yang ada. Jika muncul satu kondisi interupsi atau lebih, urutan peristiwa berikut terjadi: 1. Isi register flag dimasukkan ke dalam flag. 2. Kedua flag interuspsi dan trap flag dikosongkan sehingga menonaktifkan pin INTR dan trap atau fitur single-step. 3. Isi register segmen kode (CD) dimasukkan ke dalam stack. 4. Isi pointer instruksi (IP) dimasukkan ke dalam stack. 5. Isi vektor interupsi diambil dan ditempatkan ke dalam IP dan CS sehingga instruksi berikutnya dijalankan pada prosedur layanan interupsi yang dialamati oleh vektor.
9
NEXT Operasi pada Interupsi Mode Terproteksi Pada mode terproteksi, interupsi memiliki tugas yang sama sebagaimana mode riil, tetapi tabel vektor interupsinya berbeda. Sebagai pengganti vektor interupsi, mode terproteksi menggunakan satu set 256 deskriptor interupsi yang disimpan ke dalam tabel deskriptor interupsi (IDT). Oanjang tabel deskritor interupsi adalah 256 x 8 (2K) byte, dengan masing-masing deskriptor berisi delapan byte. Tabel deskriptor interupsi diletakkan pada lokasi memori tertentu dalam sistem oleh register alamat tabel deskriptor interupsi (IDTR). Tiap entry dalam IDT berisi alamat prosedur layanan interupsi mode terproteksi dengan menyalin alamat prosedur interupsi dari tabel vektor interupsi dan mengubahnya menjadi alamat offser 32-bit yang disimpan di deskriptor interuspsi. Sektor tunggal dan deskriptor segmen dapat ditempatkan dalam tabel deskriptor global yang mengidentifikasi 1 M byte pertama memori sebagai segmen interupsi.
10
NEXT Gambar 12-3 Deksriptor Interupsi mode terproteksi
11
NEXT Bit Flag Interupsi Flag interupsi (IF) dan trap flag (TF) dikosongkan setelah isi register flag ditumpuk selama interupsi berlangsung. Gambar 12-4 menunjukkan isi register flag dan juga lokasi IF dan TF. Ketika bit IF diset, pin INTR akan menimbulkan interupsi,; ketika bit IF dikosongkan, pin INTR dicegah untuk melakukannya. Kondis TF = 1 menyebabkan terjadinya sebuah interupsi trap (tipe 1) setelah tiap instruksi dieksekusi. Itulah alasan kita biasa menyebut trap, langkah tunggal. Ketika TF = 0, program dieksekusi secara normal. Bit flag ini memugkin debugging seperti yang akan dijelaskan pada Bab 17–19 mengenai 80386–Pentium 4. Flag interupsi diset dan dikosongkan oleh instruksi STI dan CLI secara berturu-turut. Tak ada instruksi khusus yang mengeset dan mengosongkan trap flag. Contoh 12-1 menunjukkan sebuah prosedur layanan interupsi yang menghiudpkan pelacakan dengan mengeset trap flag pada stack dari dalam prosedur. Contoh 12-2 menunjukkan sebuah prosedur layanan interupsi yang mematikan pelacakan dengan mengosongkan trap flag pada stack dari dalam prosedur
12
NEXT Contoh 12-1
13
NEXT INTERUPSI PERANGKAT KERAS Mikroprosesor memiliki dua interupsi perangkat keras; non-maskable interrupt (NMI) dan interrupt request (INTR. Ketika masukan NMI diaktifkan, interupsi tipe 2 terjadi karena NMI didekode secara internal. Masukan INTR haruslah didekode secara eksternal untuk memilih sebuah vektor. Vektor interupsi apa pun dapat dipilih untuk pin INTR, tetapi kami biasa menggunakan tipe interupsi bernomor antara 20H dan FFH. Intel telah mencadangkan interupsi ooH dampai 1FH untuk penggunaan internal dan pengembangan di masa mendatang. Sinyal INTA juga merupakan pin interupsi pada mikroprosesor, tetapi satu nomor tipe vektor pada koneksi bus data D7–D0. gambar 12-5 memperlihatkan hubungan tiga interupsi pengguna pada mikroprosesor.
14
NEXT Gambar 12-5. Pin interupsi pada semua versi dari mikroprosesor intel
15
NEXT Gambar 12-6 Rangkaian deteksi kegagalan tenaga
16
NEXT Interupsi Keyboard 82C55 Contoh keyboard yang ditampilkan pada Bab ii menunjukkan sebuah contoh sederhana operasi masukan INTR dan sebuah interupsi. Gambar 12-12 mengilustrasikan interkoneksi 82C55 dengan mikroprosesor dan keyboard. Gambar ini juga memperlihatkan bagaimana suatu penyangga oktal 74ALS244 digunakan untuk melengkapi mikroprosesor dengan nomor tipe interupsi 40H sebagai respons atas interupsi keyboard selama pulsa berlangsung.
17
NEXT Gambar 12-10. Sebuah rangkaian yang menerapkan tipe vektor interupsi apa saja sebagai respons atas INTA. Disini, rangkaian menerapkan nomor tipe 80H
18
NEXT Soal 1.Gambarkan urutan waktu yang menunjukkan penggunaan interupsi dalam suatu sistem umum! 2.Buatlah tabel vektor interupsi untuk mikroprosesor dan isi dari sebuah vektor interupsi! 3.Berikan contoh sebuah bahasa assembly dari Bit Flag Interupsi! 4.Gambarkan sebuah rangkaian yang menerapkan tipe vektor interupsi apa saja sebagai respons atas INTA. Disini, rangkaian menerapkan nomor tipe 80H!
19
TUTUP Terima Kasih
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.