34
INTERRUPT

02 Interrupt

Embed Size (px)

Citation preview

INTERRUPT

INTERRUPT1INTERRUPTMekanisme memesan processor untuk mengeksekusi instructions lain(I/O ) sementara operasi normal sedang berlangsung.2INTERRUPT DAN INSTRUCTION CYCLEUser program mencapai titik (tempat) melakukan system call berupa WRITE call, dan I/O program yang di-invoke dalam kasus ini terdiri dari kode-kode preparasi dan I/O command sebenarnya. Setelah instruksi-instruksi dieksekusi, control kembali ke user program. 3INTERRUPT DAN INSTRUCTION CYCLEUser programWRITEWRITEWRITEI/O programI/O commandENDTANPA INTERRUPTS4INTERRUPT DAN INSTRUCTION CYCLEUser programWRITEWRITEWRITEI/O programI/O commandENDINTERRUPTS; I/O wait pendekInterrupt handler5INTERRUPT DAN INSTRUCTION CYCLEUser programWRITEWRITEWRITEI/O programI/O commandENDINTERRUPTS; I/O wait panjangInterrupt handler6TRANSFER CONTROL VIA INTERRUPTS12

ii+1

MInterrupt muncul di siniInterrupt handlerUser program7INTERRUPT CYCLEUntuk mengakomodasi interrupt, sebuah interrupt cycle ditambahkan ke instruction cycle.Di dalam interrupt cycle, processor mengecek untuk melihat apabila ada interrupt telah muncul, yang ditandai dengan keberadaan sebuah interrupt signal.Jika tidak ada interrupt yang pending, processor melanjutkan ke fetch cycle dan fetch instruksi berikutnya dari program saat itu.8INTERRUPT CYCLEJika sebuah interrupt sedang pending, yang dilakukan processor adalah :Menunda eksekusi program saat itu yang sedang dieksekusi dan menyimpan context-nya (menyimpan address instruksi berikutnya yang akan dieksekusi (isi PC saat itu) dan data-data lain yang relevan terhadap aktifitas processor saat itu.Mengisi PC dengan starting address dari routine interrupt handler.9INSTRUCTION CYCLE DENGAN INTERRUPTSTARTFetch instruksi berikutnyaEksekusi instruksiCek apa ada interrupt; proses interruptHALTFetch cycle Execute cycle Interrupt cycle Interrupts enabledInterrupts disabled10MULTIPLE INTERRUPTSSebuah program bisa menerima data dari communication lines dan printing results. Printer mengenerate interrupt setiap kali menyelesaikan pencetakan. Communication line controller mengenerate interrupt setiap kali satuan data tiba. Kemungkinan communication interrupt muncul sementara printer interrupt sedang diproses.Ada dua pendekatan untuk mengurusi multiple interrupts.11MULTIPLE INTERRUPTSDisabled interrupt, processor bisa dan akan mengabaikan interrupt request signal tersebut. Ketika users program sedang dieksekusi dan interrupt muncul, maka interrupt langsung akan di-disabled.Setelah interrupt handler routine selesai, interrupt di-enabled sebelum melanjutkan users program, dan processor memeriksa apakah ada interrupt tambahan yang muncul.Pendekatan ini sederhana, interrupt ditangani dalam urutan sekuensial.12MULTIPLE INTERRUPTSUser programInterrupt handler XInterrupt handler YPemrosesan Interrupt Sekuensial13MULTIPLE INTERRUPTSUser programInterrupt handler XInterrupt handler YPemrosesan Interrupt Nested14MULTIPLE INTERRUPTSPendekatan kedua mendefinisikan prioritas untuk interrupts dan mengijinkan interrupt dengan prioritas lebih tinggi menyebabkan interrupt handler dengan prioritas lebih rendah akan di-interrrupt sendiri.(Contoh), sistem dengan 3 I/O devices, printer, disk, dan communications line dengan prioritas masing-masing 2, 4 dan 5.15MULTIPLE INTERRUPTSt =0User program Printer ISR Communication ISRt=10t=40t=15t=25t=25t=35Disk ISRContoh Urutan Waktu Multiple Interrupts16I/O FUNCTIONI/O module (yaitu, disk controller) bisa menukar data secara langsung dengan processor. Persis sebagaimana processor bisa meng-initiate read / write dengan memory, dengan alamat lokasi tertentu, processor bisa juga read data dari atau write data ke I/O module. Processor menentukan device khusus yang dikontrol oleh I/O module tertentu.Sehingga, instruksi-instruksi I/O bisa menggantikan instruksi-instruksi yang merujuk ke memory (memory referencing instructions).17STRUKTUR INTERKONEKSIComputer merupakan jaringan (network) modul-modul dasar (processor, memory, I/O), sehingga ada path untuk menghubungkan modul-modul (modules) tersebut.Struktur interkoneksi (interconnection structure) : koleksi paths yang menghubungkan beberapa modules yang berbeda.Rancangan struktur ini akan tergantung pada pertukaran yang harus dilakukan (terjadi) antara modul-modul. 18STRUKTUR INTERKONEKSITipe-tipe pertukaran yang diperlukan dengan menandakan bentuk-bentuk kebanyakan (major) dari input dan output untuk masing-masing tipe modul :MemoryN words0

N-1DataReadWriteAddressData19STRUKTUR INTERKONEKSII/O ModuleM portsExternal DataReadWriteAddressExternal DataInternal DataInternal DataInterrupt signals20STRUKTUR INTERKONEKSICPUControl SignalsInstructionsInterrupt signalsDataAddressData21STRUKTUR INTERKONEKSIStruktur Interkoneksi harus support tipe-tipe transfer berikut :Memory processorProcessor memoryI/O processor : processor read data dari I/O device melalui I/O module.Processor I/O : processor send data ke I/O deviceI/O memory atau Memory I/O : untuk kedua kasus ini, I/O module diijinkan bertukar data langsung dengan memory, tanpa melalui processor, melainkan dengan direct memory access (DMA).22INTERKONEKSI BUSBus : jalur komunikasi yang menghubungkan dua atau lebih devices.Karakteristik kunci : medium transmisi bersama (shared transmission medium).Banyak devices terhubung dengan bus, dan sinyal (signal) yang dikirim oleh salah satu device tertempel (attached) di bus dan tersedia untuk bisa diterima oleh semua devices lain.Jika dua devices mengirim dalam periode waktu yang sama, sinyal mereka akan overlap dan menjadi garbled. Sehingga hanya ada satu device yang berhasil mengirim setiap saat.23INTERKONEKSI BUSTipikalnya, bus terdiri dari banyak jalur komunikasi atau lines. Masing-masing line mampu mengirim (transmit) sinyal-sinyal yang merepresentasikan biner-biner 1 dan 0.Secara bersamaan, beberapa line of a bus bisa digunakan untuk mengirim angka-angka biner secara simultan (paralel).Sistem komputer memuat sejumlah bus-bus yang berbeda yang menyediakan jalur-jalur antara komponen-komponen di level-level yang berbeda dari herarki sistem komputer.Bus yang menghubungkan komponen-komponen utama komputer (processor, memory, I/O) disebut bus sistem (system bus).24STRUKTUR BUSSystem bus terdiri dari sekitar mulai 50 s/d 100an line-line terpisah, yang masing-masing ditugasi (assigned) fungsi atau arti tertentu.Pada umumnya, bus lines bisa diklasifikasikan menjadi tiga grup fungsional : data, address, dan control lines.Di samping itu, ada power distribution lines yang men-suply power ke module-module yang digandeng (attached).25STRUKTUR BUSData lines menyediakan path untuk moving data antar system modules. Line-line ini secara kolektif disebut data bus. Data bus bisa terdiri dari 32 s/d 100an line-line terpisah, banyaknya line dalam data bus disebut width dari data bus.Width data bus merupakan faktor kunci dalam penentuan kinerja sistem keseluruhan. Jika lebar (width) data bus 8, masing-masing instruksi panjangnya 16 bits, maka processor harus mengakses memory module dua kali selama masing-masing siklus instruksi.26STRUKTUR BUSAddress lines digunakan untuk menunjukkan source dan destination dari data pada data bus. Sebagai contoh, jika processor ingin membaca word (8, 16 atau 32 bits) data dari memory, maka processor meletakkan address word yang dikehendaki pada address lines.Width address bus menentukan kemungkinan maksimum kapasitas sistem.Address lines umumnya juga digunakan address I/O ports. Tipikalnya, bit order-lebih tinggi digunakan untuk memilih module tertentu pada bus, sedang bit order-lebih rendah memilih lokasi memory atau I/O port dalam module.27STRUKTUR BUSControl lines digunakan untuk mengontrol akses ke dan penggunaan address dan data lines. Karena data dan address lines di-share (shared) oleh semua komponen, maka harus ada alat untuk mengontrol penggunaan mereka.Sinyal kendali (control signal) mengirim keduanya command dan timing information antara module-module sistem.Timing signal menandakan validitas data dan informasi address.Command signals menentukan operasi-operasi yang harus diselenggarakan.28TIPE-TIPE CONTROL LINESMemory write : menyebabkan data di bus ditulis ke lokasi ber-address.Memory readI/O write : menyebabkan data di bus dikeluarkan (output) ke I/O port ber-address.I/O readTransfer ACK : menandakan bahwa data telah diterima dari atau ditempatkan di bus.Bus request : menandakan bahwa module perlu mendapatkan control dari bus.29TIPE-TIPE CONTROL LINESBus grant : menandakan bahwa module yang request telah dikabulkan (granted) dari bus.Interrupt request : menandakan bahwa sebuah interrupt sedang pending.Interrupt ACK : pemberitahuan bahwa interrupt yang sedang pending telah dikenali.Clock : digunakan untuk operasi-operasi sinkronisasi.Reset : meng-inisialisasi semua modules.

30OPERASI PADA BUSJika sebuah module ingin send data ke yang lian, maka :(1) mendapatkan penggunaan bus(2) mentransfer data melalui busSebaliknya, jika sebuah module ingin request data dari module lain, maka :(1) mendapatkan penggunaan bus(2) mentransfer request ke module lain melalui control dan address lines yang sesuai. Module pertama harus menunggu module kedua send data.31SKEMA INTERKONEKSI BUS CPUMemoryMemoryI/OI/OControl linesAddress linesData linesBUS32MULTIPLE-BUS HIERARCHIESJika sejumlah besar devices terhubung ke bus, kinerja akan memburuk. 2 alasan utama :(1) lebih banyak devices terhubung ke bus, propagation delay meningkat. Delay menentukan yang diperlukan device untuk koordinasi penggunaan bus.(2) Bus bisa menjadi bottleneck seiring kumpulan permintaan (demand) transfer data mendekati kapasitas bus. Solusi : meningkatkan data rate yang bisa dibawa oleh bus dan dengan menggunakan bus yang lebih lebar (wider bus).33ELEMEN BUS DESIGNTipe Bus(1) Dedicated bus lines secara permanen di-assign ke satu fungsi atau ke beberapa (subset) komponen-komponen komputer. Contoh functional dedication : penggunaan dedicated address dan data lines terpisah, yang umum diterapkan pada banyak bus. Informasi address dan data bisa dikirim pada sekumpulan line yang sama menggunakan Address Valid control line. Di awal pengiriman data, address ditempatkan pada bus dan Address Valid control line diaktifkan. Pada saat ini, masing-masing module mempunyai periode waktu tertentu untuk menyalin address dan menentukan apakah ini module ber-address. Kemudian adress dihapus dari bus, dan koneksi bus yang sama digunakan untuk read atau write transfer data berikutnya. Metode ini menggunakan line-line yang sama untuk banyak kegunaan dan dikenal sebagai time multiplexing.34