You are on page 1of 34

INTERRUPT

Mekanisme memesan processor untuk mengeksekusi instructions lain(I/O ) sementara operasi normal sedang berlangsung.

INTERRUPT DAN INSTRUCTION CYCLE

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

INTERRUPT DAN INSTRUCTION CYCLE


User program I/O program

WRITE

I/O command

WRITE

END

WRITE

TANPA INTERRUPTS

INTERRUPT DAN INSTRUCTION CYCLE


User program I/O program

WRITE

I/O command Interrupt handler

WRITE

END

WRITE

INTERRUPTS; I/O wait pendek

INTERRUPT DAN INSTRUCTION CYCLE


User program I/O program

WRITE

I/O command Interrupt handler

WRITE END WRITE

INTERRUPTS; I/O wait panjang

TRANSFER CONTROL VIA INTERRUPTS


User program
Interrupt muncul di sini

1 2

i
i+1

Interrupt handler

INTERRUPT CYCLE
Untuk 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.

INTERRUPT CYCLE
Jika sebuah interrupt sedang pending, yang dilakukan processor adalah : oMenunda 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. oMengisi PC dengan starting address dari routine interrupt handler.

INSTRUCTION CYCLE DENGAN INTERRUPT

Fetch cycle

Execute cycle
Interrupts disabled

Interrupt cycle

START

Fetch instruksi berikutnya

Eksekusi instruksi

Cek apa ada interrupt; proses interrupt

Interrupts enabled

HALT

MULTIPLE INTERRUPTS
Sebuah 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.

MULTIPLE INTERRUPTS
Disabled 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 dienabled sebelum melanjutkan users program, dan processor memeriksa apakah ada interrupt tambahan yang muncul. Pendekatan ini sederhana, interrupt ditangani dalam urutan sekuensial.

MULTIPLE INTERRUPTS
User program Interrupt handler X

Pemrosesan Interrupt Sekuensial

Interrupt handler Y

MULTIPLE INTERRUPTS
User program Interrupt handler X Pemrosesan Interrupt Nested

Interrupt handler Y

MULTIPLE INTERRUPTS
Pendekatan kedua mendefinisikan prioritas untuk interrupts dan mengijinkan interrupt dengan prioritas lebih tinggi menyebabkan interrupt handler dengan prioritas lebih rendah akan diinterrrupt sendiri. (Contoh), sistem dengan 3 I/O devices, printer, disk, dan communications line dengan prioritas masing-masing 2, 4 dan 5.

MULTIPLE INTERRUPTS
User program t =0 Printer ISR
t=15

Communication ISR

t=25 t=10

t=25
t=40 t=35

Disk ISR

Contoh Urutan Waktu Multiple Interrupts

I/O FUNCTION
I/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).

STRUKTUR INTERKONEKSI
Computer merupakan jaringan (network) modulmodul 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.

STRUKTUR INTERKONEKSI
Tipe-tipe pertukaran yang diperlukan dengan menandakan bentuk-bentuk kebanyakan (major) dari input dan output untuk masing-masing tipe modul :

Read
Write
Address
Data

Memory
N words
0

Data

N-1

STRUKTUR INTERKONEKSI

Read Write
Address

I/O Module
M ports

Internal Data

External Data

Internal Data External Data

Interrupt signals

STRUKTUR INTERKONEKSI

Instructions Data

Address

CPU

Control Signals

Interrupt signals

Data

STRUKTUR INTERKONEKSI

Struktur Interkoneksi harus support tipe-tipe transfer berikut :

o Memory processor o Processor memory o I/O processor : processor read data dari I/O device melalui I/O module. o Processor I/O : processor send data ke I/O device o I/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).

INTERKONEKSI BUS
Bus : 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.

INTERKONEKSI BUS
Tipikalnya, 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).

STRUKTUR BUS
System 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).

STRUKTUR BUS
Data lines menyediakan path untuk moving data antar system modules. Lineline 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.

STRUKTUR BUS
Address 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.

STRUKTUR BUS
Control 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.

TIPE-TIPE CONTROL LINES


Memory write : menyebabkan data di bus ditulis ke lokasi ber-address. Memory read I/O write : menyebabkan data di bus dikeluarkan (output) ke I/O port ber-address. I/O read Transfer ACK : menandakan bahwa data telah diterima dari atau ditempatkan di bus. Bus request : menandakan bahwa module perlu mendapatkan control dari bus.

TIPE-TIPE CONTROL LINES


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

OPERASI PADA BUS


Jika sebuah module ingin send data ke yang lian, maka : (1) mendapatkan penggunaan bus (2) mentransfer data melalui bus Sebaliknya, 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.

SKEMA INTERKONEKSI BUS

CPU

Memory Memory

I/O

I/O

Control lines

BUS

Address lines Data lines

MULTIPLE-BUS HIERARCHIES
Jika sejumlah besar devices terhubung ke bus, kinerja akan memburuk. 2 alasan utama : o (1) lebih banyak devices terhubung ke bus, propagation delay meningkat. Delay menentukan yang diperlukan device untuk koordinasi penggunaan bus. o (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).

ELEMEN BUS DESIGN

Tipe Bus
o (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 beraddress. 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.

You might also like