Teknik komunikasi I/O terbagi 3 yaitu:
1. Programmed I/O
Pada saat prosesor mengeksikusi sebuah program dan menjumpai instruksi yang berkaitan dengan modul I/O, prosesor akan mengeksekusi instruksi yang berkaitan ke modul I/O yang bersangkutan. Pada programmed I/O, modul I/O yang bersangkutan akan melakukan aksi yang diminta dan menyetel bit yang sesuai di dalam register status I/O. Secara khusus modul I/O tidak menginterupsi prosesor. Jadi pemeriksaan status modul I/O secara periodik samapai operasi selesai adalah tanggung jawab prosesor. Software I/O ditulis sedemikian rupa sehingga prosesor mengeksekusi instruksi-instruksi yang memberinya control langsung terhadap operasi I/O.
Set instruksi meliputi instruksi I/O dengan katefori:
a. Perintah control
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.
b. Perintah test
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
c. Perintah read
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
d. Perintah write
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.
2. Interrupt-driven I/O
Cara kerja teknik interupsi di sisi modul I/O adalah prosesor menerbitkan perintah I/O ke modul dan melanjutkan pekerjaan lainnya. Setelah itu, setelah itu modul I/O akan menginterupsi prosesor untuk meminta layanan saat modul itu telah siap saling bertukar data dengan prosesor.
Interupt-driven I/O lebih efisien jika dibandingkan dengan programmed I/O karena CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak akan membuang waktu. Akan tetapi, interrupt-driven I/O masih menghabiskan waktu prosesor, karena setiap word data yang berangkat dari memori ke modul I/O atau sebaliknya harus melalui prosesor.
Programmed I/O dan interrupt-driven I/O memiliki kelemahan yaitu masih memerlukan intervensi aktif prosesor dalam memindahkan data. Dengan demikian, kedua bentuk I/O tersebut tidak dapat menghindar dari dua kesulitan sebagai berikut:
a. Kecepatan transfer I/O dibatasi oleh kecepatan prosesor dalam memeriksa dan melayani perangkat,
b. Prosesor terikat oleh kegiatan transfer I/O.
Sejumlah instruksi harus dieksekusi bagi setiap perpindahanI/O. Apabila terdapat data yang bervolume besar, maka diperlukan sebuah teknik yang lebih efisien yaitu Direct Memory Access (DMA).
3. Direct Memory Access (DMA)
Cara kerja teknik DMA adalah CPU akan mendelegasikan kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi. Keunggulan DMA adalah penghematan waktu pemrosesan dan peningkatan kinerja I/O.
Pada saat akan membaca atau menulis suatu blok data, prosesor mengeluarkan perintah ke modul DMA dengan cara mengirimkan informasi seperti berikut:
1. Programmed I/O
Pada saat prosesor mengeksikusi sebuah program dan menjumpai instruksi yang berkaitan dengan modul I/O, prosesor akan mengeksekusi instruksi yang berkaitan ke modul I/O yang bersangkutan. Pada programmed I/O, modul I/O yang bersangkutan akan melakukan aksi yang diminta dan menyetel bit yang sesuai di dalam register status I/O. Secara khusus modul I/O tidak menginterupsi prosesor. Jadi pemeriksaan status modul I/O secara periodik samapai operasi selesai adalah tanggung jawab prosesor. Software I/O ditulis sedemikian rupa sehingga prosesor mengeksekusi instruksi-instruksi yang memberinya control langsung terhadap operasi I/O.
Set instruksi meliputi instruksi I/O dengan katefori:
a. Perintah control
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.
b. Perintah test
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
c. Perintah read
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
d. Perintah write
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.
2. Interrupt-driven I/O
Cara kerja teknik interupsi di sisi modul I/O adalah prosesor menerbitkan perintah I/O ke modul dan melanjutkan pekerjaan lainnya. Setelah itu, setelah itu modul I/O akan menginterupsi prosesor untuk meminta layanan saat modul itu telah siap saling bertukar data dengan prosesor.
Interupt-driven I/O lebih efisien jika dibandingkan dengan programmed I/O karena CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak akan membuang waktu. Akan tetapi, interrupt-driven I/O masih menghabiskan waktu prosesor, karena setiap word data yang berangkat dari memori ke modul I/O atau sebaliknya harus melalui prosesor.
Programmed I/O dan interrupt-driven I/O memiliki kelemahan yaitu masih memerlukan intervensi aktif prosesor dalam memindahkan data. Dengan demikian, kedua bentuk I/O tersebut tidak dapat menghindar dari dua kesulitan sebagai berikut:
a. Kecepatan transfer I/O dibatasi oleh kecepatan prosesor dalam memeriksa dan melayani perangkat,
b. Prosesor terikat oleh kegiatan transfer I/O.
Sejumlah instruksi harus dieksekusi bagi setiap perpindahanI/O. Apabila terdapat data yang bervolume besar, maka diperlukan sebuah teknik yang lebih efisien yaitu Direct Memory Access (DMA).
3. Direct Memory Access (DMA)
Cara kerja teknik DMA adalah CPU akan mendelegasikan kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi. Keunggulan DMA adalah penghematan waktu pemrosesan dan peningkatan kinerja I/O.
Pada saat akan membaca atau menulis suatu blok data, prosesor mengeluarkan perintah ke modul DMA dengan cara mengirimkan informasi seperti berikut:
- Apakah read atau write yang diminta.
- Alamat perangkat I/O yang terlibat.
- Lokasi awal dalam memori yang akan dibaca atau ditulis.
- Jumlah word yang akan dibaca atau ditulis.
Tidak ada komentar:
Posting Komentar