BAB V STRUKTUR SISTEM BUS
Bus adalah jalur fisik yang menghubungkan antara unit-unit fungsional di dalam komputer, dan antara komputer dengan dunia luar. Sistem bus menyediakan fasilitas jalur lintasan untuk perintah, alamat, dan data dari unit kontrol ke seluruh unit dalam komputer. Perancangan bus mempunyai efek yang sangat penting pada unjuk kerja komputer. Karakteristik bus seperti kecepatan, jumlah bit, dan aturan transmisi informasi memerankan peranan yang kritis dalam perancangan setiap sistem komputer.
Universitas Gadjah Mada
1
V.1 Transfer Informasi pada Bus Salah satu contoh sistem bus pada komputer sederhana diperlihatkan pada Gambar 5.1. lsyarat dari unit kontrol akan menentukan baik arch aliran informasi maupun register spesifik yang digunakan. Sistem clock berfungsi mensinkronkan transfer in formasi aktual antara register pengirim, bus dan register penerima.
Gambar 5.2 Diagram logika transfer data dari register ke bus register.
Gambar 5.2 merupakan perluasan dari Gambar 5.1, yang terdiri atas register instruksi (IR), memory data register (MDR) dan sistem bus. Gambar ini memperlihatkan salah satu alternati f implementasi dari pewaktuan dan untai kontrol minimum yang diperlukan untuk transfer data dari MDR ke IR. Diagram pewaktuan transfer data antar bus diperlihatkan pada Gambar 5.3. Langkah-langkah yang diperlukan untuk melengkapi proses transfer data dari MDR ke IR adalah sebagai berikut : 1. Pilih MDR untuk keluaran (keluaran MDR). 2. Letakkan data ke dalam bus (write bus). 3. Pilih IR untuk masukan (input IR). 4. Baca data dari bus (read bus). Karena beberapa register yang berbeda dapat dihubungkan ke bus, maka untuk mencegah terjadinya kerancuan dalam transfer data maka digunakan penyangga tiga keadaan (tristate buffer) untuk mentransmisikan isi register ke bus. Universitas Gadjah Mada
2
Gambar 5.3 Diagram pewaktuan transfer data dari register ke bus register.
Dari penjelasan di atas terlihat bahwa sistem bus cukup sederhana, terdiri atas himpunan jalur yang dilewati informasi dari satu register ke register yang lain. Unit kontrol akan mengkoordinasikan seluruh proses tansfer dan membangkitkan semua isyarat pewaktuan dan kontrol yang diperlukan. Terdapat beberapa masalah penting dengan sistem bus sederhana ini. Pertama, sistem ini dapat menjadi tidak efisien untuk beberapa oeprasi. Misalnya untuk operasi menulis ke memori. Untuk mengeksekusi operasi penulisan ke memori, unit kontrol harus 1. Mentransfer alamat memori ke MAR (Memory Address Register). 2. Mentransfer data dari register lain ke MDR. 3. Meminta satu operasi penulisan memori. Operasi ini akan memanggil dua runtun operasi dengan pewaktuan seperti yang diperlihatkan pada Gambar 5.3.Dalam perancangan suatu sistem komputer dengan kecepatan tinggi, operasi di ataas tidak akan dapat diterima. Masalah kedua dengan sistem bus sederhana ini adalah bahwa seluruh isyarat kontrol dan pewaktuan hares datang dari unit kontrol. Hal ini mungkin tidak terlihat sebagai suatu masalah, tetapi akan menimbulkan masalah jika terdapat unit lain seperti piranti I/O yang juga memerlukan inisialisasi transfer.
Universitas Gadjah Mada
3
V.2 Sistem Bus dengan Jalur Data, Alamat , dan Kontrol Contoh sistem bus dengan jalur data, alamat, dan kontrol diperlihatkan pada Gambar 5.4. Misal diinginkan untuk menulis isi dari akumulator ke memori utama pada lokasi yang dinyatakan oleh register alamat efektif EAR (Effecetive Address Register), maka langkah-langkah transfer yang diperlukan adalah sebagai berikut : 1. Pilih EAR dan letakkan keluarannya ke bus alamat, dan pilih akumulator untuk menyimpan keluaran dari bus data. 2. Letakkan alamat ke bus data (tulis alamat bus) dan letakkan data pada bus data (tulis bus data). 3. Pilih MAR untuk menerima keluaran bus alamat (Input MAR) dan pilih MDR untuk menerima keluaran dari bus data (baca bus data). 4. Baca alamat bus alamat (baca bus alamat) dan baca data dari bus data (baca bus data). 5. Tulis ini MDR ke memori pada lokasi yang ditentukan oleh MAR (tulis memori). Gambar 5.5 memperlihatkan pewaktuan untuk isyarat-isyarat di atas. Dari gambar tersebut terlihat bahwa beberapa operasi dilakukan secara serentak (paralel) pada dua bus. Bus ini beroperasi lebih cepat dari pada konfigurasi bus tunggal karena mempunyai baik jalur data maupun jalur alamat.
Universitas Gadjah Mada
4
Gambar 5.5 Transfer paralel pada bus data dan bus alamat.
Gambar 5.6 berikut ini memperlihatkan arsitektur sistem bus pada komputer IBM. Kompleksitas dari logika kontrol bus bergantung pada jumlah translasi yang diperlukan antara sistem bus dan pin-pin pada CPU, kebutuhan sistem pewaktuan, apakah menyertakan manajemen interupsi (interupt) atau tidak, dan ukuran sistem secara keseluruhan. Jika suatu komponen sistem selain CPU dapat mengambil alih kendali sistem bus, maka seluruh alamat dan jalur data dan hampir seluruh jalur kendali harus mampu untuk secara logika tidak terhubung dengan CPU atau logika kontrol bus, yaitu hampir semua pin yang terhubung ke bus dapat dibuat dalam keadaan impedans tinggi (high impedans). Umumnya untai yang mengemudikan pin-pin pada keping CPU tunggal emmpunyai kemampuan pengendalian yang sangat terbatas dan hanya dapat dihubungkan pada beberapa antarmuka (interface) saja. Untuk sistem kecil atau sederhana (small system), beberapa atau semua pin kontrol CPU dpat digunakan secara langsung dan logika jabattangan (hand shaking) dapat dikurangi atau bahkan dihilangkan. Demikian pula pencrima kendali untuk jalur data dan alamat tidak diperlukan. Akan tetapi sistem yang mempunyai beberapa antarmuka akan tetap memerlukan kendali bus dan untai penerima atau disebut jugs penyangga (buffer) yang dihubungkan ke bus untuk menjaga kualitas isyarat.
Universitas Gadjah Mada
5
Universitas Gadjah Mada
6
Pewaktuan isyarat didalam CPU dan logika kontrol bus dikendalikan oleh clock. Siklus bus dan aktivitas CPU dikendalikan oleh grup pulsa clock. Jumlah clock yang pasti, atau siklus didalam siklus bus sangat bervariasi. Transaksi masukan suatu CPU akan dilakukan dengan mengeluarkan alamat data selama siklus clock pertama, yang menandakan bahwa proses Baca akan terjadi selama siklus clock kedua, menunggu sejumlah siklus clock dari piranti yang dialamati untuk meletakkan data pada jalur data, memasukkan data, dan memberi tanda piranti bahwa proses transfer telah lengkap selama siklus clock terakhir. V.3 Konfigurasi Dasar 8088/8086 Agar sedapat mungkin beradaptasi dengan berbagai situasi maka baik prosesor 8088 maupun 8086 menyediakan dua mode operasi, yaitu mode minimum dan mode maksimum.. Mode minimum digunakan untuk sistem sederhana dengan prosesor tunggal, yaitu sistem dimana 8088/8086 akan membangkitkan seluruh isyarat kendali bus yang diperlukan secara langsung (dengan demikian akan meminimumkan kendali bus yang diperlukan). Mode maksimum digunakan untuk sistem medium sampai besar, yang sering menggunakan dua prosesor atau lebih. Pada mode ini 8088/8086 akan meng-encode isyarat kendali bus kedalam 3-bit status, dan menggunakan pin kendali sisanya untuk menyediakan informasi tambahan yang diperlukan untuk mendukung konfigurasi prosesor ganda. Diagram pin prosesor 8088 dan 8086 diperlihatkan pada Gambar 5.7. Pin 33 (MN/MX) yang menentukan pilihan konfigurasi. Jika pin ini dihubungkan ke tanah (ground), maka prosesor akan berada dalam konfigurasi mode maksimum, dan jika dihubungkan ke +5 volt, maka akan beroperasi dalam mode minimum. Pada kedua jenis prosesor ini isyarat alamat dan data akan dimultipleks, dan keduanya mempunyai 20 pin alamat dengan isyarat alamat dan status dimultipleks pada 4 pin alamat bobot terbesar. Akan tetapi karena 8088 hanya dapat mentransfer 8 bit pada setiap saat, maka hanya delapan hit dari pin-pin yang digunakan untuk data, sedangkan pada 8086 adalah 16 bit. Pada 8086 pin 34(BHE) akan menentukan apakah transfer dilakukan pada AD8 sampai AD 15 atau tidak. Nilai 0 pada pin ini akan menyebabkan transfer data dilakukan dengan menggunakan ADO sampai AD 15 atau 16-bit, selainnya hanya menggunakan ADO sampai AD7. Bersama dengan BHE dan isyarat AO akan menunjukkan pada antarmuka yang terhubung ke bus bagaimana data muncul pada bus. Empat kombinasi yang mungkin didefinisikan seperti pada tabel di bawah ini.
Universitas Gadjah Mada
7
Tabel 5.1 Empat Kemungkinan Kombinasi Transfer Data. Operasi Baca/tulis kata pada alamat genap Baca/tulis byte pada alamat genap Baca/tulis byte pada alamat ganjil Baca/tulis kata pada alamat ganjil
BHE
A0
Pin data yang digunakan
0
0
AD 15 - ADO
1
0
AD7 - ADO
0
1
AD15 - AD8
0
1
AD15-AD8 (Siklus bus pertama : letakkan byte data bobot terkecil pada AD 15 - ADO)
1
0
AD7 - ADO (Siklus bus selanjutnya : letakkan byte data bobot terbesar pada AD7 - ADO)
V.3.1 Mode Minimum Perancangan sistem dengan konfigurasi mode minimum dilakukan dengan menghubungkan pin MN/MX dengan + 5 volt. Definisi dari pin 24 sampai 31 diperlihatkan pada Tabel 5.2, dan gambar diagram kotak konfigurasi mode minimum diperlihatkan pada Gambar 5.7. Tabel 5.2 Defmisi Pin untuk Mode Minimum. Pin
Simbol IniOut 3-state
24
INTA
0-3
25
ALE
0
Keterangan Untuk menerima permintaan interupsi. Terdiri atas dua pulsa menuju dalam negatifdua siklus bus yang berurutan. Mengeluarkan suatu pulsa pada awal siklus bus dan menunjukkan alamat sudah tersedia pada pin-pin alamat. bahwa suatu
26
DEN
0-3
Mempunyai keluaran selama bagian lanjut dari siklus bus dan
27
DT/R
0-3
memberi informasi pengirim bahwa CPU siap mengirim dan berguna untuk Menunjukkan apakah pengirim sedang mengirim atau menerima menerima data.
28
M/10
0-3
Membedakan transfer memori terhadap transfer i/o. Untuk transfer data. bernilai memori 1
29
WR
0-3
Jika 0 menunjukkan bahwa sedang melakukan operasi tulis. dengan pin bersama 28 (M/I0) dan 32 (RD) untuk menentukan jenis transfer. Digunakan
Universitas Gadjah Mada
8
30 31
HLDA HOLD
0
Mengeluarkan bus grant ke pengirim utama. Pin-pin dengan
1
keadaan dijadikan impedans tinggi sementara HLDA = I. gerbang tiga Menerima permintaan bus dari bus utama. 8088/8086 tidak dari bus sampai isyarat ini non-aktif. mengambil kendali
Alamat harus di-latch karena hanya tersedia selama bagian pertama siklus bus. Untuk memberi isyarat bahwa alamat telah siap untuk di-latch , maka pin 25 yaitu ALE (address latch enable) dibuat "1". Pada urnumnya proses latching dilakukan dengan menggunakan IC Intel 8282, yang merupakan 8 bit latch. Untuk pengalamatan 16 bit dibutuhkan 2 buah IC 8282„ sedangkan untuk pengalamatan 20 bit penuh membutuhkan 3 buah IC.
Universitas Gadjah Mada
9
Dalam sistem 8086, BHE juga harus di-latch. Untuk sistem kecil 8088 yang hanya mempunyai memori 64 kByte, hanya diperlukan dua buah IC 8282. Isyarat pada pin STB akan me-latch bit-bit yang digunakan pada jalur data input D17 - D10. Oleh karena itu SIB dihubungkan ke pin ALE 8086 dan D17 - D10 dihubungkan ke kedelapan jalur datanya. Suatu isyarat aktif rendah pada OE akan meng-enable keluaran latch D07 D00, dan isyarat "1" akan emnyebabkan keluaran dalam kondisi impedans tinggi. Pada sistem prosesor tunggal 8086/8088 yang tidak mempunyai kendali DMA, pin ini dibumikan (grounded).
Gambar 5.8 Aplikasi IC latch 8282.
Jika sistem mempunyai beberapa antarmuka. maka pengirim dan penerima yang pada sistem kecil dengan board tunggal mungkin tidak diperlukan, akan diperlukan untuk jalur data. IC Intel yang mengimplementasikan pengirim dan penerima seperti yang diperlihatkan pada Gambar 5.7, adalah IC 8286, yang terdiri atas 16 elemen tiga keadaan (tristate), delapan penerima dan delapan pengirim. Untuk 8088 hanya diperlukan 1 buah 8286 untuk melayani seluruh jalur data, tetapi untuk sistem 8086 diperlukan dua buah. Gambar 5.9 memperlihatkan bagaimana hubungan 8286 dengan sistem prosesor 8088 serta untai internal dari 8286. Universitas Gadjah Mada
10
Gambar 5.9 Hubungan 8286 dengan sistem serta untai. internalnya.
Pin output Enable (OE) menentukan apakan data diijinkan untuk melewati 8286, dan pin Transmisi (T) mengendalikan arah aliran data. Jika OE = 1, data tidak dilewatkan oleh 8286. Jika OE = 0 dan T = 1, akan membuat A7 - AO menjadi input, sedang jika T = 0 menyebabkan B7 - BO yang menjadi input. Dalam sistem yang berbasis 8086/8088 pin OE akan dihubungkan ke pin DEN, yang akan aktif rendah saat prosesor melakukan operasi masukan/keluaran (I/O). Komponen ketiga selain prosesor pada Gambar 5.7 adalah pembangkit clock 8284A, yang diperlihatkan pada Gambar 5.10. Selain mencatu runtun pulsa dengan frekuensi yang konstan, juga menghasilkan isyarat synchronizes ready (RDY), yang mengindikasikan bahwa suatu antarmuka siap untuk melakukan transfer, dan isyarat reset (RES) yang akan menginisialisasi sistem dari awal, seiring dengan pulsa clock. Sumber frekuensi yang diberikan pada 8284A dapat berasal dari suatu pembangkit pulsa yang dihubungkan ke pin EFI atau suatu osilator yang dihubungkan ke Xlmdan X2. Jika masukan F/C adalah 1, maka masukan EFI sebagai sumbernya, selainnya maka sumber frekuensinya adalah osilator. Clock keluaran adalah sepertiga dari frekuensi masukannya.
Universitas Gadjah Mada
11
Gambar 5.10 Pembangkit clock 8284A.
V.3.2 Mode Maksimum Prosesor akan berada pada mode maksimum jika pin MN/MX dibumikan. Konfigurasi mode maksimum diperlihatkan pada Gambar 5.11, dan definisi dari pin 24 sampai 31 diperlihatkan pada Tabel 5.3. Dari Gambar 5.11 terlihat jelas perbedaan utama antara konfigurasi maksimum dan minimum, yaitu perlunya tambahan untai untuk menterjemahkan isyarat kontrol. Unit ini digunakan untuk mengubah status bit SO, S 1 , dan S2 kedalam isyarat transfer I/O dan memori yang diperlukan untuk transfer data langsung, dan untuk mengendalikan IC latch 8282 dan IC transceiver 8286. Fungsi ini biasanya diimplementasikan dengan sebuah IC kendali bus 8288. Pada sistem maksimum dapat juga disertakan suatu piranti pengatur interupsi. Bit status SO, Sl, dan S2 menentukan jenis transfer yang akan dilakukan dan jika digunakan dengan kendali bus 8288, maka tidak diperlkukan lagi isyarat M/TO, WR, INTA, ALE, DT/R, dan DEN pada pin 24 sampai 29 seperti pada saat prosesor beroperasi pada konfigurasi mode minimum. Kecuali pada kondisi Si = SO = 1, S2 = 0, menunjukkan transfer data antara antarmuka I/O dan CPU, dan S2 = 1 mengimplementasikan transfer memori. Bit S1 menentukan bentuk operasi masukan dan keluaran. Pin QS0 dan QS1 digunakan untuk mengijinkan sistem eksternal melihat status dari urutan instruksi prosesor, sehingga dapat menentukan insttruksi apa yang sedang dieksekusi, dan pin LOCK mengindikasikan bahwa instruksi dengan awalan LOCK sedang dieksekusi dan bus tidak sedang digunakan oleh kendali potensial yang lain. Pinpin ini hanya diperlukan dalam sistem dengan prosesor jamak (multi processor).
Universitas Gadjah Mada
12
Gambar 5.11 Konfigurasi Mode Maksimum.
Pin HOLD dan HOLDA menjadi pin RQ/GTO dan RQ/GT1. Baik permintaan bus (bus request) maupun bus grant dapat diberikan melalui pin ini. Keduanya mempunyai isyarat yang sama kecuali jika permintaan datang pada kedua pin pada saat yang sama, maka isyarat situ pada RQ/GTO mempunyai prioritas yang lebih tinggi. Isyarat permintaan terdiri alas pulsa negatif yang datang sebelum mulainya siklus bus. Grant merupakan pulsa negatif yang muncul pada awal siklus bus, dengan tujuan : 1. Transfer bus sebelumnya bukan byte rendah dari suatu kata yang menuju atau dari a1amat ganjil untuk CPU 8086. Untuk 8088 tanpa memperhatikan alamat, isyarat grant tidak akan dikirim sampai byte kedua dari suatu kata diakses. 2. Pulsa pertama dari interupt acknowledge tidak muncul selama siklus bus sebelumnya.
Universitas Gadjah Mada
13
3. Instruksi dengan awalan LOCK tidak sedang dieksekusi.
Tabel 5.3 Definisi pin-pin pada mode maksimum. Pin
Simbol
In/Out 3-State
24, 25
QS1, QS0
0
26, 27, 28 SO, SI, S2
0-3
Keterangan Menunjukkan status dari urutan instruksi. Status ini aktivitas dalam urutan (queue) selama siklus clock mcnunjukkan sebelumnya. jenis trsnfer yang terjadi pada siklus bus : Menunjukkan S2 S1 S0 0 0 0
Interupt acknowledge
0 0
Baca port I/O
1
0 1 0
Tubs port I/O
0 1 1
Halt
1 0 0
Pengambilan instruksi
1 0
Baca memori
1
1 1 0 1 1 1 29
LOCK
0-3
Tulis memori Tidak aktif (pasif)
Menunjukkan bus tidak melepaskan kendali ke master bus yang lain. Diaktifkan oleh instruksi LOCK dan dipertahankan akhir dari instruksi berikutnya. Juga akan aktif selama sampai
30
RQ/GT1
I/O
dan pulsa antaraINTA. dua Untuk memasukkan permintaan bus dan mengeluarkan
31
RQ/GTO
I/O
Sama seperti RQ/GT1 Kecuali permintaan pada RQ/GT) bus grant mempunyai priooritas yang lebih tinggi.
Jika ditemukan kondisi 1 atau 2, maka grant tidak akan diberikan sampai sklus bus selanjutnya, dan jika kondisi 3 tidak ditemukan, grant akan menanti sampai instruksi penguncian lengkap. Sebagai tanggapan dari grant, pin-pin tip keadaan akan berada dalam kondisi impedans tinggi dan siklus bus selanjutnya akan diberikan ke kendali yang meminta. Prosesor secara efektif tidak akan terhubung dengan sistem bus sampai kendali emngirimkan pulsa kedua ke prosesor melalui pin RQ/GT.
Universitas Gadjah Mada
14
Gambar 5.12 Hubungan kendali bus 8288 pada sistem komputer.
Rangkaian kendali bus pada mode maksimum diperlihatkan pada Gambar 5.12. Pin SO, S I , dan S2 digunakan untuk menerima bit status dari pin yang sama pada prosesor 8086/8088. Input CLK memungkinkan aktivitas kendali bus dapat disinkronkan dengan prosesor. Fungsi dari pin-pin keluarannya adalah sebagai berikut :
Universitas Gadjah Mada
15
Gambar 5.13 Diagram pewaktuan sistem mode maksimum.
INTA, menghasilkan dua pulsa interupt acknowledgment ke kendali interupsi prioritas, atau piranti pengirim interupsi jika SO = sl = S2 = 0. IORC (I/O read command), akan menginstruksikan suatu antarmuka I/O untuk meletakkan data yang terdapat pada port yang teralamati ke bus data. IOWC (I/O write command), akan menginstruksikan suatu antarmuka I/O untuk menerima data dari bus data dan meletakkan data tersebut kedalam port yang teralamati. MRDC (memory read command), akan menginstruksikan memori untuk meletakkan isi dari lokasi alamat yang dimaksud ke bus data. Universitas Gadjah Mada
16
MWTC ( memory write command), akan menginstruksikan memori untuk menerima data dari bus data dan meletakkan data tersebut ke lokasi alamat memori yang dimaksud. Isyarat-isyarat di atas aktif rendah dan dikelaurakan selama pertengahan bagian siklus bus. Hanya salah satu dari keempat isyarat yang dikeluarkan dalam satu siklus bus. Diagram pewaktuan balk kondisi transfer data msukan inaupun keluaran untuk sistem dengan mode maksimum diperlihatkan pada Gambar 5.13. Bit SO, S 1, dan S2 diset pada awal siklus bus. Setelah mendeteksi perubahan pada kondisi SO = S1 = S2 = 1, kendali bus 8288 akan mengeluarkan pulsa pada pin ALE dan menggunakan isyarat yang sesuai ke pin DT/R selama Ti. Saat T1, 8288 akan menset DEN = 1 untuk meng-enable transceiver dan dari masukannya akan mengaktifkan MRDC atau IORC. Isyarat ini akan dipertahankan sampai T4. untuk keluaran AMWC atau AIOWC diaktifkan dari 12 sampai T4 dan MWTC atau IOWC diaktifkan dari T3 sampai T4. Bit status SO, S1, dan S2 akan tetap aktif sampai T3 dan menjadi pasif (semua berharga 1) selama T3 dan T4. Masukan READY tidak diaktifkan sebelum mulainya T3. Keadaan tunggu (wait state) akan disisipkan antara T3 dan T4. V.4 Struktur interupsi Struktur interupsi pada sistem berbasis 8086 didasarkan pada tabel vektor interupsi yang disimpan pada lokasi memori 00000 sampai 003FF seperti yang diperlihatkan pada Gambar 5.14. Setiap vektor terdiri atas empat byte. Dua byte pertama merupakan alamat PC yang baru, dan dua byte berikutnya adalah alamat register CS yang baru. Gabungan dari dua alamat ini akan membentuk alamat 20 bit dari suatu rutin pelayanan interupsi. Tabel vektor interupsi mempunyai kapasitas sampai 256 vektor interupsi.
Universitas Gadjah Mada
17
Gambar 5.14 Penunjukkan alamat rutin pelayanan interupsi dari tabel vektor interupsi.
Setiap vektor interupasi mempunyai nomor, yang jika dikalikan empat (digeser 2 bit ke kiri) akan menghasilkan alamat absolut vektor interupsi dalam tabel. Struktur interupsi 8086 memungkinkan kita untuk menentukan alamat awal lokasi memori tempat rutin pelayanan inteurpsi. 8086 mempunyai tiga jenis interupsi, yaitu : interupsi yang sudah terdefinisi yang dapat diakses oleh fungsi-fungsi khusus dalam 8086, interupsi perangkat keras yang didefinisikan oleh pengguna, dan interupsi perangkat lunak. Interupsi yang sudah terdefinisi dapat diakses melalui perangkat keras dan/atau perangkat lunak.
Universitas Gadjah Mada
18
V.4.1 Interupsi yang Terdefinisi Pada interupsi ini nomor interupsi dan vektornya telah didefinisikan pada Sistem Operasi. Oleh karena itu saat ada permintaan interupsi, 8086 secara otomatis akan menuju ke masukan tabel vektor. Permintaan interup ini dapat dilakukan secara perangkat keras, yang dilakukan oleh logika eksternal dan perangkat lunak yang dilakukan melalui urutan eksekusi transaksi. Interupsi yang sudah didefinisikan ini mempunyai nomor 0 sampai 31, yang lima diantaranya adalah : Interupsi 0 - Pembagian dengan nol. Interupsi ini akan aktif jika hasil eksekusi suatu pembagian melebihi dari nilai atau panjang bit yang telah ditentukan. Interupsi ini termasuk jenis yang tidak dapat dihalangi (non maskable). Permintaan interupsi ini merupakan bagian dari logika eksekusi instruksi pembagian standar. Interupsi 1 - Langkah tunggal. Interupsi ini akan muncul satu instruksi sesudah TF (bendera trap) dalam program status word diset. Instruksi ini digunakan untuk mengeksekusi program perlangkah. Setiap kali mengeksekusi instruksi program, interupsi akan diaktifkan. Untuk inisialisasinya, pertama simpan (push) isi dari PSW ke dalam stack, kemudian set bit trap flag didalam PSW yang tersimpan pada ujung stak daan keluarkan kembali ke PSW. Permintaan interupsi langkah tunggal akan muncul mengikuti eksekusi instruksi selanjutnya. Untuk kembali dari rutin pelayanan interupsi langkah tunggal digunakan instruksi IRET. Saat kembali akan menyimpan bit-bit bendera, termasuk TF dan mengijinkan interupsi TF lainnya muncul pada instruksi selanjutnya. Interupsi 2 - NM! (Non-Maskable Interupt). Merupakan interupsi perangkat keras dengan prioritas tertinggi. Intterupsi ini tidak dapat dihalangi, dan biasanya digunakan untuk keadaan kritis seperti kegagalan daya (tegangan catu daya terlalu rendah), atau pewaktuan sistem tidak terkendali. Interupsi 3 Interupsi satu byte. Merupakan insterupsi perangkat lunak yang dibangkitkan dengan mengeksekusi instruksi permintaan interupsi khusus yang terdiri atas kode obyek satu bayte. Instruksi intcrupsi digunakan untuk menset titik patah (break point) dalam perangkat lunak program debug. Interupsi ini tidal( dapat dihalangi. Interupsi 4 - Interupsi Overflow Permintaan interupsi ini akan muncul jika benders overflow (OF) dalam PSW diset, dan instruksi INTO dieksekusi. lnstruksi INTO memungkinkan 8086 untuk menuju ke rutin pelayanan kesalahan karena overflow. Interupsi ini tidak dapat dihalangi.
Universitas Gadjah Mada
19
V.4.2 Interupsi yang dapat didefinisikan Interupsi ini dapat didefinisikan sendiri oleh pemrogram. Pemrogram dapat menentukan alamat rutin pelayanan interupsi serta membuat program rutin pelayanan interupsinya. Permintaan interupsi ini dapat dilakukan secara perangkat keras maupun dengan perangkat lunak. Interupsi ini mempunyai prioritas yang lebih rendah dari pada interupsi yang terdefinisi. Interupsi perangkat lunak yang dapat didefinisikan Kita dapat membangkitkan interupsi perangkat lunak dengan mengeksekusi instruksi interupsi dua byte INT nn. Byte pertama dari kode obyek adalah kode operasi (op code) INT, dan byte berikutnya (nn) merupakan nomor interupsi yang akan dieksekusi. Interupsi INT tidak dapat dihalangi. Instruksi ini sering digunakan untuk pemanggilan program dinamis. Lokasi program yang dipanggil dalam memori tidak diketahui oleh program pemanggilnya, akan tetapi saat program yang dipanggil dimuat kedalam memori, alamat eksekusinya akan dimuat kedalam vektor interupsinya. Program yang dipanggil harus dikembalikan dengan instruksi IRET. Interupsi perangkat keras yang dapat didefinisikan Interupsi perangkat keras ini dilakukan melalui pin INTR dari 8086. Interupsi ini dapat dihalangi dengan bit IF (interupt flag) dari PSW. Selama periode terakhir dari setiap eksekusi instruksi, kondisi dari pin INTR akan Dari pembahasan di atas terdapat tiga jenis interupsi, yaitu NMI, single step, dan software interupt. Semuanya mempunyai prioritas diatas interupsi eksternal yang dapat didefinisikan, yang dilakukan melalui pin INTR. Diantara ketiganya, jika dua diantaranya muncul bersamaan maka single stepping mempunyai prioritas tertinggi diikuti oleh NMI, dan software traps mempunyai prioritas terendah. Tetapi jika ketiga interupsi tersebut diminta bersamaan, maka NMI yang mempunyai prioritas tertinggi, diikuti oleh software traps dan single stepping yang mempunyai prioritas terendah. Karena single stepping dapat mempunyai prioritas yang lebih tinggi atau lebih rendah dari NMI, maka rutin pelayanan interupsi untuk single stepping harus memeriksa apakah eksekusinya diikuti oleh interupsi NMI atau tidak. Jika diikuti oleh interupsi NMI dan diinginkan untuk melayani NMI segera, maka rutin pelayanan interupsi single stepping harus mengandung suatu logika untuk men-disable dirinya sendiri. Logika program ini akan memeriksa alamat rutin pelayanan interupsi pada puncak stack, dan selama mendeteksi alamat rutin pelayanan interupsi NMI, makaa yang diperlukan hanya kembali, dan mengijinkan rutin NMI untuk dieksekusi. Rutin NMI akan kembali ke program yang dijalankan dengan single stepped dan single stepping secara otomatis akan di-enable kembali dengan menyimpan status benders selama kembali. Universitas Gadjah Mada
20
V.4.3 Konfigurasi Sistem interupsi Sistem interupsi pada PC dengan prosesor 8086 ditangani oleh suatu kendali manajemen interupsi yang biasanya menggunakan IC 8259A. kendali prioritas interupsi 8259A dapat menangani permintaan interupsi eksternal jamak yang diodefinisikan oleh pemrogram melalui INTR, yang beroperasi dibawah 8086. Jika 8259A dibuat bertingkat (cascade), maka dengan konfigurasi master/slave akan dapat menangani sampai 643 interupsi dalam sistem tunggal. Gambar 5.15 memperlihtakan sistem 8086 dengan mode maksimum. Pada gambar di bawah terlihat 8259A master pada bus yang dimultipleks, dengan beberapa 8259A slave tarnbahan pada sistem bus tersangga (buffered). Konfigurasi ini memperlihatkan beberapa karakteristik unik dari antarmuka sistem mode maksimum. Jika 8259A master menerima interupsi dari campuran 8259A slave dan piranti interupsi lainnya, maka slave harus menyediakan nomor interupsi untuk piranti yang terhubung dengannya, sementara master harus menyediakan nomor interupsi untuk piranti yang terhubung langsung ke masukan interupsinya. Master dapat menentukan jika suatu interupsi sedang diterima langsung dari pianti pemanggil atau dari 8259A slave. 8259 master menggunakan informasi ini untuk meng-enable atau men-disable transceiver bus data melalui fungsi NAND dari DEN atau EN. Keluaran EN adalah normal tinggi sehingga 8086 dapat mengendalikan transceiver bus. Untuk memilih slave yang tepat saat melayani interupsi slave. maka master harus memberikan suatu alamat cascade (CAS) ke slave.
Universitas Gadjah Mada
21
Universitas Gadjah Mada
22