Perangkat Eksternal
- Sistem komputer tidak akan berguna tanpa adanya peralatan input dan output. Operasi-operasi I/O diperoleh melalui sejumlah perangkat eksternal yang menyediakan alat untuk pertukaran data di antara lingkungan luar dan komputer.Human-Readable : cocok untuk berkomunikasi dengan pengguna komputer.
- Machine-Readable : cocok untuk berkomunikasi dengan peralatan.
- Communication : cocok untuk berkomunikasi dengan perangkat jarak jauh.
Interface ke modul I/O adalah dalam bentuk signal-signal control, status dan data. Data berbentuk sekumpulan bit untuk dikirimkan ke modul I/O atau diterima dari modul I/O. Control Signal menentukan fungsi-fungsi yang akan dilakukan perangkat, seperti mengirimkan data ke modul I/O (INPUT atau READ), menerima data dari modul I/O (OUTPUT atau WRITE), report status, atau membentuk fungsi kontrol tertentu ke perangkat. Signal status menandai status perangkat. Misalnya READY/NOT READY untuk menunjukan kesiapan perangkat untuk mengirimkan data.
Control logic berkaitan dengan perangkat yang mengontrol operasi perangkat dalam memberikan respons yang berasal dari modul I/O. Transducer mengubah data dari energi listrik menjadi energi lain selama berlangsungnya output dan dari bentuk energi tertentu menjadi energi listrik selama berlangsungnya input. Umumnya, suatu buffer dikaitkan dengan transducer untuk menampung sementara data yang ditransfer di antara modul I/O dan dunia luar. Ukuran buffer yang umum adalah 8 hingga 16 bit.
Keyboard/Monitor
Disk Drive
Sebuah disk drive terdiri dari perangkat elektronik untuk pertukaran signal-signal data, control dan status dengan modul I/O dan perangkat elektronik untuk mengontrol mekanisme pembacaan/penulisan disk. Pada fixed-head disk, transduser mampu melakukan konversi dari pola-pola magnetic pada permukaan disk yang bergerak menjadi bit-bit pada buffer perangkat. Disk yang head-nya bergerak juga harus dapat memindahkan lengan disk secara radial menjauhi dan mendekati permukaan disk.
I/O Terprogram
Terdapat tiga buah teknik yang dapat digunakan dalam operasi I/O. Pada I/O terprogram, data saling dipertukarkan antara CPU dengan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, termasuk status perangkat pengindera, pengiriman perintah pembacaan atau penulisan dan pemindahan data. Ketika CPU mengeluarkan perintah ke modul I/O, maka CPU harus menunggu sampai operasi I/O selesai. Apabila CPU lebih cepat dibandingkan modul I/O maka hal ini akan membuang-buang waktu CPU. Dengan menggunakan interrupt driven I/O, CPU mengeluarkan perintah CPU dilanjutkan dengan mengeksekusi instruksi-instruksi lainnya dan diinterupsi oleh modul I/O apabila instruksi-instruksi tersebut telah selesai dilaksanakan. Dengan menggunakan I/O terprogram dan I/O interrupt maka CPU bertanggungjawab atas pengeluaran data dari memori utama untuk keperluan output dan penyimpanan data di dalam memori utama untuk keperluan input. Alternatifnya dikenal sebagai direct memory access (DMA). Dalam mode ini, modul I/O dan main memori saling bertukar data secara langsung tanpa melibatkan CPU.
Perintah-perintah I/O
Untuk mengeksekusi instruksi yang berkaitan dengan I/O, CPU menerbitkan sebuah alamat yang menspesifikasikan modul I/O dan perangkat eksternal tertentu, dan sebuah perintah I/O. terdapat empat jenis perintah I/O yang akan diterima modul I/O ketika modul tersebut dialamati oleh CPU. Perintah-perintah tersebut dapat diklasifikasikan sebagai control, test, read dan write.
1. Perintah control digunakan untuk mengaktivasi peripheral dan memberitahunya tentang tugas yang harus dilaksanakannya.
2. Perintah test digunakan untuk menguji bermacam-macam kondisi status yang berkaitan dengan modul I/O dan perangkat peripheralnya.CPU perlu mengetahui bahwa peripheral yang dimaksud berada dalam keadaan aktif dan dapat digunakan. CPU juga perlu mengetahui apakah operasi I/O yang terkini telah selesai dan terjadinya error.
3. Perintah read mengakibatkan modul I/O akan mendapatkan sebuah butir data dari peripheral dan menaruhnya didalam buffer internal (register). Kemudian CPU akan memperoleh butir data dengan memintanya yang ditaruh modul I/O pada bus data.
4. Perintah write menyebabkan modul I/O mengambil data (byte atau word) dari bus data dan kemudian mentransmisikan butir data itu ke peripheral.
Instruksi-instruksi I/O
Dengan menggunakan I/O terprogram, terdapat hubungan yang erat antara instruksi I/O yang diambil CPU dari memori dengan perintah I/O yang dikeluarkan CPU ke modul I/O untuk mengeksekusi instruksi. Bentuk instruksi bergantung pada cara pengalamatan perangkat eksternal.
Umumnya, akan banyak terdapat perangkat I/O yang terhubung melalui modul I/O ke system. Setiap perangkat diberi pengenal (identifier) atau alamat yang unik. Pada saat CPU mengeluarkan perintah I/O, perintah akan berisi alamat perangkat yang diinginkan. Jadi setiap modul I/O harus menginterpretasikan saluran alamat untuk menentukan apakah perintah itu ditujukan untuk dirinya atau bukan.
Ketika CPU, memori utama dan I/O menggunakan bus umum secara bersama-sama maka akan dimungkinkan penggunaan dua mode pengalamatan :
1. memori yang dipetakan (memori-mapped I/O)
2. memori yang terisolasi (isolated memori)
Dengan menggunakan memori-mapped I/O, terdapat ruang alamat tunggal untuk lokasi memori dan perangkat I/O. Dengan menggunakan memori-mapped I/O, diperlukan saluran baca tunggal dan saluran tulis tunggal pada bus. Alternatifnya, bus dapat dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Karena ruang alamat bagi I/O diisolasi dari ruang alamat bagi memori maka teknik ini dikenal sebagai I/O terisolasi.
Bagi sebagian besar jenis CPU, terdapat sejumlah perintah yang berbeda untuk keperluan pembuatan referensi memori. Bila I/O terisolasi digunakan maka hanya akan terdapat sedikit instruksi I/O. Jadi, keuntungan memori-mapped I/O adalah bahwa suatu koleksi besar instruksi ini dapat digunakan, yang mana memungkinkan lebih efisiennya pemrograman. Kerugiannya adalah ruang memori alamat yang berharga akan habis terpakai. Baik memori-mapped I/O maupun I/O terisolasi digunakan secara luas.
Interrupt-driven I/O
Masalah yang dijumpai dalam I/O terprogram adalah bahwa CPU harus menunggu modul I/O yang diinginkan agar siap baik untuk menerima maupun untuk mengirimkan data dalam waktu yang relative lama. Pada saat menunggu, CPU harus berulang-ulang menanyakan status modul I/O. Akibatnya, tingkat kinerja system keseluruhan mengalami penurunan yang tajam.
Alternatifnya adalah CPU mengeluarkan perintah I/O ke modul dan kemudian mengerjakan pekerjaan lainnya. Kemudian modul I/O akan menginterupsi CPU untuk meminta layanan modul telah siap untuk saling bertukar data dengan CPU. Setelah itu CPU akan mengeksekusi pengiriman data, seperti sebelumnya, dan dilanjutkan menyelesaikan proses sebelumnya.
Mari kita perhatikan cara kerja tersebut, pertama-tama dari sudut pandang modul I/O. Pada input, modul I/O menerima perintah READ dari CPU. Kemudian modul I/O memproses pembacaan data dari peripheral tertentu. Sekali data telah berada dalam register data modul, modul mengeluarkan signal interrupt ke CPU melalui saluran control. Kemudian modul akan menunggu hingga datanya diminta oleh CPU. Pada saat permintaan itu terjadi, modul menaruh datanya pada bus data dan modul akan siap melakukan pekerjaan lainnya.
Dari sudut pandang CPU, kegiatan input adalah sebagai berikut. CPU mengeluarkan perintah READ. Kemudian CPU berhenti mengeluarkan perintah dan melanjutkan pekerjaan lainnya. Pada akhir setiap siklus instruksi, CPU memeriksa interrupt. Ketika interrupt dari modul I/O terjadi, CPU menyimpan context (misalnya penghitung program dan register CPU) program yang sedang berlangsung dan memproses interrupt. Dalam hal ini, CPU membaca word data dari modul I/O dan menyimpannya didalam memori. Kemudian CPU menyimpan context program yang sedang dikerjakannya dan melanjutkan eksekusi.
Pengolahan Interrupt
Adanya interrupt memicu sejumlah kejadian, baik pada hardware prosesor maupun pada software. Pada saat perangkat I/O telah menyelesaikan sebuah operasi I/O, maka urutan kejadian hardware dibawah ini akan terjadi :
1. Perangkat akan mengeluarkan signal interrupt ke CPU.
2. Prosesor menyelesaikan eksekusi instruksi yang sedang dilakukan sebelum memberikan responsnya terhadap interrupt.
3. Prosesor memeriksa interrupt, apakah ada atau tidak.
4. Sekarang prosesor perlu mempersiapkan pengontrolan transfer ke routine interrupt. Prosesor perlu menyimpan informasi. Informasi minimum yang diperlukan adalah (a) status prosesor, yang berisi register yang dipanggil program status word (PSW), dan (b) lokasi instruksi berikutnya yang akan dieksekusi, yang terdapat pada penghitung program. Informasi-informasi ini dapat ditaruh ke dalam stack pengontrol system.
5. Setelah itu prosesor dapat memuat penghitung program dengan lokasi entri dan program penanganan interrupt yang akan memberikan respon ke interrupt ini.
6. Penghitung program dan PSW yang berkaitan dengan program yang di interrupsi telah disimpan didalam stack system.
7. Setelah itu interrupt handler dapat menjalankan proses interrupt.
8. Apabila pengolahan interrupt telah selesai, nilai-nilai register yang tersimpan diambil kembali dari stack dan selanjutnya disimpan ke register.
9. Menyimpan kembali PSW dan nilai penghitung program dari stack.
Direct Memory Access
Kekurangan I/O Terprogram dan Interrupt-Driven I/O
Walaupun lebih efisien dibandingkan dengan I/O Terprogram yang sederhanan, interrupt-driven I/O masih memerlukan campur tangan CPU secara aktif untuk melakukan transfer data antara memori dengan modul I/O dan transfer data harus melalui lintasan via CPU. Jadi kedua bentuk I/O mengalami dua hal yang mengganggu :
1. Kelajuan transfer I/O dibatasi oleh kecepatan yang pada kecepatan itu CPU dapat menguji dan melayani perangkat.
2. CPU ditentukan oleh pengaturan transfer I/O; sejumlah instruksi harus dieksekusi bagi setiap transfer I/O nya.
Terdapat semacam trade-off antara kedua masalah ini. Misalkan suatu transfer blok data. Dengan menggunakan I/O terprogram sederhana, CPU didedikasikan untuk tugas I/O dan dapat memindahkan data dengan kelajuan yang agak lebih tinggi, dengan resiko tidak dapat mengerjakan tugas lainnya. I/O interrupt membebaskan CPU dengan mengobarkan kelajuan transfer I/O. walaupun begitu, kedua metode tersebut memiliki dampak yang buruk terhadap aktivitas CPU dan laju transfer I/O.
Ketika data yang bervolume besar akan dipindahkan, diperlukan teknik yang lebih efisien: direct memory access (DMA)
Fungsi DMA
DMA meliputi modul-modul tambahan pada bus system. Modul DMA mampu menirukan CPU, bahkan mengambil alih control system dari CPU. Teknik ini bekerja sebagai berikut. Pada saat CPU ingin membaca atau menulis blok data, CPU mengeluarkan perintah ke modul DMA, dengan mengirimkan ke modul DMA informasi berikut ini :
- Read atau write yang diminta.
- Alamat perangkat I/O yang dilibatkan.
- Lokasi awal dalam memori untuk membaca atau menulis.
- Jumlah word yang akan dibaca atau ditulis.
Kemudian CPU melanjutkan pekerjaan lainnya. CPU telah mendelegasikan operasi I/O ini kepada modul DMA, dan modul itu akan menjalankan tugasnya. Modul DMA memindahkan seluruh blok data, word per word, secara langsung ke memori atau dari memori, tanpa harus melalui CPU. Ketika pemindahan ini telah selesai, modul DMA akan mengirimkan signal interrupt ke CPU. Sehingga CPU hanya akan dilibatkan pada awal dan akhir pemindahan saja.
Jumlah siklus yang dibutuhkan dapat banyak dikurangi dengan mengintegrasikan antara modul DMA dengan fungsi-fungsi I/O. Terdapat sebuah lintasan antara modul DMA dan sebuah atau lebih modul I/O yang tidak melibatkan bus system. Sebenarnya logic DMA dapat merupakan bagian dari modul I/O atau merupakan bagian yang terpisah yang dapat mengontrol sebuah atau lebih modul I/O. Konsep ini dapat dilanjutkan dengan menghubungkan modul-modul I/O ke modul DMA dengan menggunakan sebuah bus I/O. Hal ini akan mengurangi jumlah interface I/O didalam modul DMA menjadi satu buaah dan akan memberikan kemudahan untuk pengembangan konfigurasi. Dalam keseluruhan kasus ini, bus system yang digunakan bersama oleh modul DMA dengan CPU dan memori dapat digunakan oleh modul DMA dengan CPU dan memori dapat digunakan oleh modul DMA hanya untuk pertukaran data dengan memori. Pertukaran data antara modul DMA dengan modul I/O akan terjadi di luar system bus.
Saluran I/O dan Prosesor
Evolusi Fungsi I/O
Dengan berkembangnya system computer, terdapat kecenderungan meningkatnya kompleksitas dan kecanggihan komponen-komponen. Tidak aada yang lebih nyata selain perkembangan dalam fungsi I/O. kita telah mengetahui bagian evolusi tersebut. Langkah-langkah evolusi ini dapat diikhtisarkan sebagai berikut :
1. CPU mengontrol peripheral secara langsung. Hal ini terlihat dari perangkat yang dikontrol oleh mikroprosesor yang sederhana.
2. Ditambahkannya sebuah pengontrol atau modul I/O. CPU menggunakan I/O terprogram tanpa menggunakan interrupt. Pada langkah ini, CPU menjadi sesuatu yang terpisah dari detail tertentu interface-interface perangkat eksternal.
3. Konfigurasinya sama seperti pada langkah 2, namun sekarang interrupt digunakan. CPU tidak memerlukan waktu untuk menunggu terbentuknya operasi I/O, yang berarti hal ini akan meningkatkan efisiensi.
4. Modul I/O diberi akses langsung ke memori melalui DMA. Sekarang modul I/O dapat memindahkan blok data ke memori atau dari memori tanpa melibatkan CPU, kecuali pada awal dan akhir pemindahan.
5. Modul I/O ditingkatkan kemampuannya menjadi sebuah prosesor yang memiliki kemampuan sendiri, yang menggunakan instruksi tertentu untuk I/O tertentu. CPU mengarahkan prosesor I/O untuk mengeksekusi suatu program I/O di dalam memori. Prosesor I/O mengambil dan mengeksekusi instruksi-instruksi ini tanpa adanya campur tangan CPU. Hal ini memungkinkan CPU untuk menentukan rangkaian aktivitas I/O dan hanya akan diinterrupsi bila seluruh rankaian aktivitas telah terbentuk.
6. Modul I/O memiliki memori lokalnya sendiri dan merupakan sebuah computer yang memiliki tugasnya sendiri. Dengan arsitektur seperti ini, perangkat I/O dalam jumlah yang banyak dapat dikontrol, dengan keterlibatan CPU yang minimal. Penggunaan arsitektur seperti itu adalah untuk mengontrol komunikasi dengan terminal yang interaktif. Prosesor I/O dapat menjalankan sebagian besar tugasnya yang melibatkan pengontrolan CPU.
Karakteristik Saluran I/O
Saluran I/O merepresentasikan pengembangan konsep DMA. Saluran I/O memiliki kemampuan untuk mengeksekusi instruksi I/O, yang memberikan control sepenuhnya terhadap operasi-operasi I/O. Instruksi-instruksi itu dapat disimpan di dalam memori utama untuk selanjutnya dapat dieksekusi oleh prosesor yang terdapat di dalam saluran I/O itu sendiri. Jadi, CPU akan memulai pemindahan I/O dengan menginstruksikan saluran I/O untuk mengeksekusi program di dalam memori. Program akan menentukan perangkat, daerah memori untuk menyimpan, prioritas dan aksi yang akan diambil bagi status error tertentu. Saluran I/O akan mengikuti instruksi-instruksi dan control-kontrol transfer data ini.
Terdapat dua jenis saluran I/O yang umum dipakai :
1. Selector Channel mengontrol sejumlah perangkat berkecepatan tinggi dan selalu di dedikasikan bagi transfer data dengan salah satu perangkat tersebut. Jadi, saluran I/O memilih sebuah perangkat dan akan mempengaruhi pemindahan data. Setiap perangkat atau perangkat dalam jumlah sedikit akan ditangani oleh sebuah controller, atau modul I/O yang mana lebih menyerupai modul I/O. Sehingga, saluran I/O menggantikan fungsi CPU dalam hal mengontrol controller-controller tersebut.
2. Multiplexor Channel menerima atau mentransmisikan secepat mungkin ke beberapa perangkat. Untuk perangkat yang berkecapatan tinggi, block multiplexor akan menyebarkan blok data yang berasal dari beberapa perangkat.
Interface Eksternal
Jenis Interface
Interface ke peripheral dari sebuah modul I/O harus disesuaikan dengan sifat dan operasi peripheral. Salah satu karakteristik utama interface adalah serial atau parallel. Pada interface parallel, terdapat sejumlah saluran yang terhubung ke modul I/O dan peripheral, dan sejumlah bit dipindahkan secara simultan, seperti halnya seluruh bit dari word dipindahkan secara simultan melalui bus data. Sedangkan pada interface serial, hanya terdapat saluran yang digunakan untuk mentransmisikan data dan bit-bit harus ditransmisikan satu per satu. Interface parallel umumnya digunakan untuk berkecepatan tinggi seperti pita dan disk. Interface serial umum digunakan untuk printer dan terminal.
Pada kedua jenis interface diatas, modul I/O harus membentuk dialog dengan peripheral. Secara umum, dialog untuk operasi penulisan adalah sebagai berikut :
1. Modul I/O mengirim signal control yang meminta izin untuk mengirim data.
2. Peripheral memberitahukan permintaan itu.
3. Modul I/O memindahkan data (satu word atau blok tergantung peripheral)
4. Peripheral memberitahukan penerimaan data.
Kunci operasi modul I/O adalah buffer internal yang dapat menyimpan data yang dilewatkan di antara peripheral dan komponen-komponen system lainnya. Buffer ini memungkinkan modul I/O untuk mengkompensasi perbedaan kecepatan antara bus system dengan saluran internalnya.
Konfigurasi Point-to-Point dan Multipoint
Koneksi antara modul I/O di dalam sebuah system computer dan perangkat eksternal dapat berbentuk point-to-point atau multipoint. Interface point-to-point memiliki saluran dedicated antara modul I/O dan perangkat eksternal. Pada system yang kecil (PC dan Workstation), umumnya link point-to-point meliputi link dengan keyboard, printer dan modem eksternal.
Yang berkembang menjadi semakin penting adalah interface eksternal multipoint, yang digunakan untuk mendukung perangkat penyimpan berukuran besar (drive disk dan pita) dan perangkat multimedia (CD-ROM, video, audio). Interface multipoint berada di bawah kendali bus-bus eksternal dan menunjukan jenis logic yang sama seperti bus-bus.
Small Computer System Interface (SCSI)
Sebuah contoh interface yang baik untuk perangkat peripheral eksternal adalah SCSI. Konfigurasi SCSI umumnya berkaitan dengan bus, walaupun pada kenyataannya perangkat-perangkat tersebut dihubungkan berupa daisy-chain. Perangkat SCSI memiliki dua buah konektor, konektor untuk input dan konektor untuk output. Seluruh perangkat dihubungkan, dan salah satu ujungnya dihubungkan dengan computer host. Seluruh perangkat berfungsi secara independent dan dapat bertukar data satu sam lainnya dan dengan system host. Misalnya sebuah hard disk dapat membuat back-up-nya sendiri ke tape drive tanpa melibatkan host prosesor. Data dipindahkan dalam bentuk paket-paket pesan.
Versi-versi SCSI
Spesifikasi SCSI yang orisinal, yang sekarang disebut SCSI-1 dibuat pada awal 1980-an. SCSI-1 memiliki 8 saluran data dan beroperasi pada kecepatan 5 MHz, atau laju data 5 MByte/detik. Sekarang SCSI-1 memungkinkan sampai tujuh perangkat untuk dihubungkan secara daisy-chain dan disambungkan ke system host.
Pada 1992, diperkenalkan peningkatan spesifikasi yang dikenal sebagai SCSI-2. Perubahan yang sangat penting adalah ekspansi saluran data optional menjadi 16 atau 32 dan peningkatan kecepatan menjadi 10 MHz. Hal ini menyebabkan laju data maksimum 20 atau 40 MByte/detik.
Penelitian yang sedang dilakukan saat ini adalah pembuatan spesifikasi SCSI-3 yang akan mendukung kecepatan yang jauh lebih tinggi.
Signal dan Fase
Seluruh pertukaran signal pada bus SCSI terjadi antara inisiator dan target. Umumnya system host merupakan inisiator dan peripheral controller sebagai target, namun beberapa perangkat dapat dianggap sebagai salah satu dari keduanya. Pada sembarang kasus, seluruh aktivitas pada bus terjadi dalam rangkaian fase. Fase-fase tersebut adalah :
- Bus Free : mengindikasikan bahwa tidak terdapat perangkat yang menggunakan bus dan bahwa bus siap digunakan.
- Arbitration : mengizinkan sebuah perangkat untuk mendapatkan control bus sehingga perangkat tersebut dapat mengawali atau melanjutkan proses I/O.
- Selection : mengizinkan sebuah inisiator memilih target untuk membentuk suatu fungsi seperti perintah write atau read.
- Reselection : mengizinkan target tersambung lagi dengan inisiator untuk melanjutkan operasi yang sebelumnya dimulai oleh inisiator namun dihentikan oleh target.
- Command : mengizinkan target meminta transfer data dari inisiator dari target (Data In) atau dari inisiator ke target (Data Out).
- Status : mengizinkan target meminta informasi status dikirimkan dari target ke inisiator.
- Message : mengizinkan target meminta transfer satu atau lebih pesan ke inisiator dari target (Message In) atu dari inisiator ke target (Message Out).
Sebuah feature penting SCSI adalah kemampuan reselection (pemilihan ulang). Bila sebuah perintah dikeluarkan yang membuttuhkan beberapa saat untuk selesai, maka target dapat melepaskan bus dan menghubungkan kembali dengan inisiator beberapa saat kemudian. Misalnya, sebuah host dapat mengeluarkan suatu perintah tanpa tergantung pada bus.
Interrupt atau
interupsi adalah proses dalam komputer untuk meminta dilayani
oleh mikroprosesor sesuai dengan tingkat prioritasnya yang telah diatur sedemikian
rupa oleh sistem hardware computer. CPU banyak melaksanakan routin untuk
melakukan pelayanan pemrosesan ataupun koordinasi kepada IC penunjang atau chipset
dan peripherals pada saat diperlukan.
Sehingga CPU dapat melakukan operasi dengan 2 cara yaitu :
1.
Operasi dengan polling
2.
Opreasi dengan interrupt
Operasi
dengan polling berarti CPU
selalu terus menerus menanyakan/ memantau ke tiap-tiap komponen penunjang satu
persatu meskipun komponen itu sedang tidak memerlukan pelayanan.
Sedangkan
operasi interrupt atau interupsi dilakukan oleh tiap-tiap komponen
kepada CPU bilamana memerlukan pelayanan pemrosesan, sehingga CPU tidak
terus-menerus menanyakan /memantau komponen itu. Setiap interupsi yang datang
di kontrol oleh interrupt controller di luar CPU. Dalam keadaan CPU terkena
interupsi, maka CPU untuk sesaat menghentikan kegiatan pelayanan utama dan
beralih melayani komponen yang menginterupsinya. Setelah selesai dilayani CPU
kembali melakukan pelayanan utamanya.
Cara
interupsi sangat meningkatkan effisiensi operasi CPU dan melakukan
tugasnya dengan cepat.
Interupsi
dapat dilakukan dengan cara hardware dan software, sehingga CPU dapat menerima
3 macam interupsi antara lain :
Interupsi
software (instruksi INT nH n=
bilangan 00H s/d FFH)
Non
Maskable Interrupt (Interupsi hardware dimana interupsi ini mutlak tidak dapat
dicegah karena berasal dari sistem board atau IC.
Maskable
Interrupt (berasal dari hardware melalui pin INTR) yang dapat ditutup atau
dicegah dengan instruksi CLI berasal dari interupsi perangkat lunak.
Interupsi
software terdiri dari 256 dan diberi nomor 00H hingga FFH. Alamat awal
masing-masing program pelayanan terdiri dari 4 byte, 2 byte untuk Code Segment
dan 2 byte untuk Instruction Pointer.
Dalam
pemrograman assembler kita dapat melakukan interupsi secara software dengan
perintah INT yang dapat dilihat dalam tabel interupsi.
Interrupt
Software dalam PC terbagi dua yaitu :
1.Interrupt
BIOS (Basic Input Output Sistem)
2.
Interrupt DOS (Disk Operating Sistem)
Interrupt
BIOS diwujudkan dalam bentuk
interupsi software berjumlah 32 dan akses pelayanannya tinggal memerintahkan
dengan instruksi INT nH asal parameternya diwajibkan telah terpenuhi dahulu.
INT nH terdiri dari 00H sampai 1FH yang disusun berurutan dan diberi servis number
(nomor pelayanan) tersendiri.
Interrupt DOS merupakan interupsi dari software Sistem Operasi terdiri
dari INT 20H untuk kembali ke DOS dan INT 21H untuk operasi
Input/Output.
Kejadian-kejadian sinkron yang merupakan tanggapan pemroses
terhadap kondisi-kondisi tertentu yang memerlukan perhatian. Sebuah setting
hardware yang menjalankan perintah-perintah dalam sistem komputer.
Interrupt secara harfiah dalam bahasa Indonesianya diartikan sebagai
selaan, menyela, atau menjegal, atau istilah kerennya disebut dengan interupsi.
Interrupt bisa diibaratkan dalam kehidupan sehari-hari sebagai suatu
proses berjalan, namun belum selesai proses tersebut melakukan tugasnya, sudah
dilaksanakan lagi proses lainnya.
Ibaratnya begini, ketika anda sedang melakukan suatu pekerjaan,
katakanlah membaca sebuah buku, belum selesai buku tersebut anda tamatkan, lalu
telepon anda berbunyi, sehingga anda melakukan percakapan terlebih dahulu
melalui telepon tersebut. Setelah pembicaraan selesai, anda melanjutkan membaca
buku tadi. menerima telepon di dalam kejadian tersebut disebut dengan menyela.
Begitu juga dengan proses yang terjadi pada komputer. Apabila sebuah komputer melakukan
prosesnya tanda ada gangguan, tentu komputer tersebut dapat menyelesaikan
pekerjaannya dengan serius khusus untuk satu pekerjaan yang sedang
dikerjakannya. Dalam kondisi demikian, komputer anda melakukan tugasnya yang
disebut dengan primitive batch processing. Pekerjaan seperti ini digunakan
oleh komputer pada komputer zaman awal-awal ditemukannya. Dimana komputer tidak
bisa mengerjakan beberapa program sekaligus dalam waktu bersamaan, sampai satu
pekerjaan selesai dikerjakan, maka baru dia bisa berpindah ke pekerjaan
lainnya.
Komputer terkini, memiliki kemampuan interrupt ini. Penulis
melakukan pengetikkan naskah ini sambil mendengarkan musik yang terpasang pada
notebook yang digunakan, tidak jarang komputer ini juga sambil terhubung dengan
internet untuk membuka halaman
web atau mengambil beberapa data yang
ada di internet.
Anda tentu juga tidak jarang mengalami hal dengan interrupt
ini, katakanlah, ketika mengetikkan SMS
ternyata ada telpon yang masuk, anda terima dulu telpon tersebut, lalu
setelahnya anda lanjutkan pengetikan SMS tadi.
Untuk memungkinkan terjadinya interrupt ini pada sistem
komputer, CPU memiliki suatu jalur khusus terhadap suatu chip pengatur
interrupt eksternal (bagian dari chipset), yang berisi database sederhana yang dikenal dengan interrupt vectors.
Ketika sebuah interrupt terjadi pada chip, maka CPU menyimpan informasi terakhir yang
dia kerjakan, berulah dia mengerjakan sesuai dengan informasi yang ada pada
interrupt vector tesebut. Interrupt vector ini sebenarnya hanya sebuah nama
pemanis yang berisi informasi tentang selaan yang terjadi, kalau dibelah lebih
dalam lagi, isinya adalah berupa tabel yang berisi angka-angka). Pada interrupt
vector inilah ditemukan kemana dan apa proses berikutnya yang harus
dilaksanakan oleh komputer. Ketika pekerjaan interrupt tadi selesai
dilaksanakan, maka komputer melakukan pelacakan kembali apa pekerjaan
sebelumnya yang sedang dilaksanakannya.
Prioritas dalam interrupt
Dalam penerimaan suatu interrupt ini, komputer membagi
interrupt tersebut dalam berbagai level, tergantung dari CPU yang digunakan. Misalnya pada
komputer yang digunakan untuk pekerjaan yang cukup membutuhkan konsentrasi dari
CPU, maka CPU tersebut memungkinkan untuk mengabaikan interrupt yang
prioritasnya rendah, katakanlah pengetikkan yang dilakukan oleh seorang user melalui keyboard, namun komputer tersebut akan
memberikan respon yang sangat cepat apabila terjadi gangguan pada memori yang digunakannya.
Interupsi terjadi bila suatu perangkat M/K ingin memberitahu
prosesor bahwa ia siap menerima perintah, output sudah dihasilkan, atau terjadi
error.
Penanganan
Interupsi
Ada
beberapa tahapan dalam penanganan interupsi:
- Controller mengirimkan sinyal interupsi melalui interrupt-request-line
- Sinyal dideteksi oleh prosesor
- Prosesor akan terlebih dahulu menyimpan informasi tentang keadaan state-nya (informasi tentang proses yang sedang dikerjakan)
- Prosesor mengidentifikasi penyebab interupsi dan mengakses tabel vektor interupsi untuk menentukan interrupt handler
- Transfer kontrol ke interrupt handler
- Setelah interupsi berhasil diatasi, prosesor akan kembali ke keadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang tadi sempat tertunda.
No comments:
Post a Comment