Programmed I / O, Interrupt & Direct Memory Access (DMA)

Programmed I / O

Ketika perangkat I/O menangani permintaan, perangkat men-set bit status di regiser status perangkat. Pemroses harus selalu memeriksa register status perangkat secara periodik dan melakukan tindakan berdasarkan status yang dibaca.

Perangkat lunak pengendali perangkat (driver) di pemroses harus mentransfer data ke/dari pengendali.

Driver harus berisi kumpulan instruksi di tiga kategori, yaitu:

  1. Pengendalian
    Instruksi pengendalian untuk mengaktifkan perangkat eksternal dan memberitahu apa yang perlu dilakukan perangkat. Contoh, unit tape magnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke rekor berikutnya.
  2. Pengujian
    Instruksi pengujian untuk memeriksa kondisi status berkaitan dengan perangkat masukkan/keluaran.
  3. Pembacaan/penulisan
    Instruksi membaca/menulis untuk transfer data antara register pemroses dan perangkat eksternal.

Programed I/O (PIO) mengacu pada transfer data yang diprakarsai oleh CPU di bawah sopir kontrol perangkat lunak untuk register akses atau memori pada sebuah perangkat.

CPU mengeluarkan perintah kemudian menunggu I/O operasi akan selesai. Seperti CPU lebih cepat daripada modul I/O, masalah dengan program I/O adalah bahwa CPU harus menunggu dengan waktu yang lama untuk I/O modul siap baik untuk penerimaan atau transmisi data. CPU, sambil menunggu, berulang kali harus memeriksa status modul I/O, dan proses ini dikenal sebagai Polling. Akibatnya, tingkat kinerja seluruh sistem rusak parah.

Programed I/O pada dasarnya bekerja dengan cara ini:

  1. Permintaan CPU I/O operasi
  2. I/O modul melakukan operasi
  3. I/O modul menetapkan status bit
  4. CPU memeriksa Status bit secara berkala
  5. I/O modul tidak memberitahu CPU secara langsung
  6. I/O modul tidak mengganggu CPU
  7. CPU mungkin menunggu atau kembali lagi nanti

Kelemahan

Cara ini sangat tidak efisien karena banyak pemborosan waktu pemroses untuk menunggui kejadian perangkat keras dan/atau menunggui selesainya operasi yang dilakukan perangkat masukkan/keluaran.

Interrupt

Isu-isu CPU memberi perintah ke modul I/O kemudian hasil kerja normal sampai terganggu oleh perangkat I/O pada saat penyelesaian pekerjaannya.

Untuk masukan, perangkat mengganggu CPU ketika data baru telah tiba dan siap untuk diambil oleh prosesor sistem. Tindakan yang sebenarnya untuk melakukan tergantung pada apakah perangkat menggunakan I/O port, pemetaan memori.

Untuk output, perangkat memberikan interupsi baik bila siap untuk menerima data baru atau untuk mengakui transfer data yang berhasil. Perangkat memori-dipetakan dan DMA-mampu biasanya menghasilkan interupsi untuk memberitahu sistem mereka dilakukan dengan buffer.

Meskipun Interrupt sifatnya mengurangi CPU harus menunggu perangkat, tetapi masih tidak efisien pada transfer data dalam jumlah besar karena CPU harus mentransfer data kata per kata antara I/O modul dan memori.

Di bawah ini adalah operasi dasar Interrupt:

  1. Masalah CPU membaca perintah
  2. I/O modul mendapat data dari perangkat sementara CPU melakukan pekerjaan lain
  3. I/O modul menginterupsi CPU
  4. Permintaan CPU Data
  5. I/O transfer data modul

Keunggulan

Pemroses tidak disibukkan menunggui dan menjagai seluruh operasi perangkat masukkan/keluaran untuk memeriksa status perangkat. Kinerja lebih baik dibandingkan dengan teknik masukkan/keluaran terprogram.

Direct Memory Access (DMA)

Direct Memory Access (DMA) berarti hibah CPU I/O otoritas modul untuk membaca dari atau menulis ke memori tanpa keterlibatan. Modul DMA mengontrol pertukaran data antara memori utama dan I/O device. Karena perangkat DMA dapat mentransfer data secara langsung ke dan dari memori, daripada menggunakan CPU sebagai perantara, dan dengan demikian dapat mengurangi kemacetan di bus. CPU hanya terlibat di awal dan akhir transfer dan terputus setelah seluruh blok ditransfer.

Direct Memory Access membutuhkan hardware khusus yang disebut DMA controller (DMAC) yang mengelola transfer data dan mengadili akses ke sistem bus. Kontroler diprogram dengan sumber dan tujuan pointer (di mana untuk membaca / menulis data), counter untuk melacak jumlah byte yang ditransfer, dan pengaturan, termasuk I/O dan memori jenis, interupsi dan menyatakan untuk siklus CPU.

Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA Controller dengan mengirim informasi berikut:

  • Perintah penulisan/pembacaan
  • Alamat perangakat masukkan/keluaran
  • Awal lokasi memori yang ditulis/dibaca
  • Jumlah word(byte) yang ditulis/dibaca

DMA meningkatkan sistem ketepatan dengan memungkinkan CPU untuk melakukan tugas-tugas sementara transfer sistem DMA data melalui sistem dan memori bus. Desain hardware rumit karena DMA controller harus diintegrasikan ke dalam sistem, dan sistem harus memungkinkan DMA controller untuk menjadi master bus. Siklus mencuri juga mungkin diperlukan untuk memungkinkan CPU dan DMA controller untuk berbagi penggunaan bus memory.

Keunggulan

  1. Penghematan waktu pemroses
  2. Peningkatan kinerja masukkan/keluaran

Referensi :

  1. http://www.louiewong.com/archives/137
  2. http://faculty.washington.edu/lcrum/Archives/TCSS372AF06/Slides11_01.ppt
  3. Bambang Hariyanto, Sistem Operasi terbitan Informatika.