390 likes | 1.17k Views
Direct Memory Access (DMA). Pertemuan XI. CPU. Bus sistem. Modul I/O. Modul I/O. Modul I/O. Modul I/O. Link ke periferal. Printer. Disk. Keyboard. Monitor. Pengantar. Pengantar. Fungsi atau persyaratan bagi modul I/O:
E N D
Direct Memory Access (DMA) PertemuanXI
CPU Bus sistem Modul I/O Modul I/O Modul I/O Modul I/O Link ke periferal Printer Disk Keyboard Monitor Pengantar
Pengantar • Fungsi atau persyaratan bagi modul I/O: • Control dan timing koordinasi arus lalu lintas antara sumberdaya internal (memori dan sistem bus) dan eksternal • Komunikasi CPU: command decoding, data yang dipertukarkan, status report terhadap periferal (BUSY/ READY), address recognition • Komunikasi perangkat: perintah, informasi status & data • Data buffering: mengatasi perbedaan kecepatan I/O dan memori • Deteksi error: contoh even parity, odd parity
Pengantar • Cara dasar dalam memasukkan/ mengeluarkan data ke/dari I/O: • I/O terprogram (programmed I/O) paling lambat dibanding cara yang lain digunakan pada mikroprosesor lama • Interrupt driven I/O • Direct Memory Access (DMA) digunakan pada sistem yang sudah maju cara yang cepat untuk melakukan transfer data
Pengantar • Dengan I/O terprogram: CPU mengeluarkan perintah ke modul I/O, maka CPU harus menunggu sampai operasi I/O selesai. Apabila kecepatan CPU lebih cepat dibandingkan dengan modul I/O terjadi pemborosan waktu • Dengan interrupt driven I/O: CPU mengeluarkan perintah I/O, dilanjutkan dengan mengeksekusi perintah-perintah lainnya, dan diinterupsi oleh I/O apabila instruksi telah selesai dilaksanakan • Dengan DMA: memori dan I/O bertukar data langsung tanpa melibatkan CPU secara langsung
Beri perintah baca ke modul I/O Beri perintah baca ke modul I/O CPU I/O Kerjakan lainnya Beri perintah baca ke modul I/O CPU DMA Kerjakan lainnya CPU I/O Baca status dari modul I/O Baca status dari modul I/O interpret I/O CPU Baca status dari modul I/O interpret DMA CPU I/O CPU Not Ready Cek status Cek status Instruksi selanjutnya Kondisi Error Kondisi Error Ready Ready Baca word dari modul I/O Baca word dari modul I/O I/O CPU I/O CPU Tulis word ke memori Tulis word ke memori CPU memori CPU memori Selesai ? Selesai ? Tidak Tidak Ya Ya Instruksi selanjutnya Instruksi selanjutnya (a) Programmed I/O (b) Interrupt-driven I/O (c) Direct Memory Access Pengantar
Menggunakan instruksi-instruksi dalam memindahkan data dari atau ke CPU • Transfer data dengan pengaturan waktu yang tepat • I/O terprogram bekerja atas dasar • Pengaturan dengan pewaktu (sinkron) dan • Prosedur jabat tangan/ handshaking (asinkron) lebih sering digunakan karena lebih sederhana
Masukan Terprogram • Memperlihatkan sebuah CPU yang dihubungkan dengan port 10H, 11H, dan 12H • Bit 6 dari port 10H dihubungkan ke masukan START dan piranti periferal, dan bit 7 dari port 11H disambungkan dengan keluaran STATUS • Piranti perferal dapat mengirimkan data ke CPU melalui port input 12H
Masukan Terprogram • CPU siap memasukkan sebuah kata, bit START tinggi akan dimasukkan ke periferal • Jika piranti siap dengan bit yang akan dipindahkan, periferal mengirim bit STATUS tinggi ke port 11H • Setelah bit STATUS bernilai tinggi, maka CPU segera memasukkan 1 byte data
Masukan Terprogram • Contoh: Program untuk memasukkan data 256 byte dan menyimpannya pada alamat 2000H – 20FFH
Contoh Keluaran • Memperlihatkan sebuah CPU yang dihubungkan dengan port-port berjabat tangan 10H dan 11H. • CPU dihubungkan dengan port kemuaran 12H • Prosedur operasi keluaran sbb: • CPU telah siap, data akan ditempatkan pada port 12H • CPU mengirimkan bit START untuk menunjukkan bahwa data yang sah sedang menunggu pemindahannya • Sesudah menerma data, piranti periferal mengirimkan bit STATUS tinggi kepada CPU
Contoh Keluaran • Program untuk mengeluarkan 256 byte dari lokasi memori 2000H – 20FFH
Interrupt Driven I/O • Masalah yang dijumpai pada I/O terprogram: CPU harus menunggu modul I/O yang diinginkan agar siap untuk menerima maupun mengirim data dalam waktu yang relatif lama • Saat menunggu CPU menanyakan berulang-ulang status modul I/O kinerja turun dengan tajam • Alternatif: CPU mengeluarkan perintah I/O ke modul dan mengerjakan tugas lainnya. Modul akan menginterrupt CPU untuk meminta layanan apabila modul telah siap untuk bertukar data dengan CPU. Kemudian CPU akan mengeksekusi pengiriman data dan dilanjutkan dengan menyelesaikan proses sebelumnya
Interrupt Driven I/O (pada prosesor 8085) • Proses: • Piranti periferal mempunyai suatu byte yang siap ditransfer, alat itu memasukkan bit tinggi ke masukan RST 5.5 • Sesudah memasukkan isi PC ke tumpukan, CPU mencabang ke lokasi 002CH ditemukan alamat awal subrutin yang digunakan untuk memasukkan 1 byte data dari piranti periferal ke memori
Interrupt Driven I/O (pada prosesor 8085) • Setelah byte tersimpan, CPU mengirimkan bit ACKNOWLEDGE kepada piranti periferal untuk memberitahukan kepada periferal agar menyiapkan byte berikutnya yang hendak ditransfer • CPU kembali ke program utama • Keuntungan: CPU tidak perlu menunggu periferal untuk mempersiapkan data
Prioritas Interupsi • Bila interupsi yang aktif pada waktu yang sama melebihi satu, maka 8085 akan melayaninya sesuai dengan urutan prioritasnya
Kekurangan I/O terprogram dan Interrupt driven I/O • Interrupt driven I/O masih memerlukan campur tangan CPU secara aktif untuk melakukan transfer antara memori dengan modul I/O, dan transfer data harus melalui CPU • Kedua jenis transfer memiliki keterbatasan • Laju transfer I/O dibatasi oleh kecepatan yang pada kecepatan itu CPU dapat menguji dan melayani perangkat • CPU ditentukan oleh pengaturan transfer I/O sejumlah eksekusi harus dieksekusi bagi setiap transfer I/O-nya
Fungsi DMA • DMA meliputi modul-modul tambahan pada sistem bus • Modul DMA mampu menirukan CPU, dan mengambil alih kontrol sistem dari CPU • Pada saat CPU ingin membaca atau menulis blok data, CPU mengeluarkan perintah ke modul DMA, dengan mengirimkan ke modul DMA informasi berikut: • Read/ write yang diminta • Alamat perangkat I/O yang dilibatkan • Lokasi awal dalam memori untuk read/ write • Jumlah word yang akan dibaca/tulis
Fungsi DMA • Kemudian CPU melanjutkan pekerjaan lainnya • CPU mendelegasikan operasi I/O kepada modul DMA, dan modul DMA akan menjalankan tugasnya • Modul DMA memindahkan seluruh blok data secara langsung tanpa melalui CPU • Saat pemindahan data selesai, modul DMA akan mengirimkan sinyal interrupt ke CPU CPU hanya terlibat pada awal dan akhir pemindahan data saja
Transfer DMA pada Prosesor 8085 • Sinyal-sinyal HOLD dan HLDA digunakan dalam operasi-operasi DMA • Jika pengendali DMA telah siap mengambil alih kendali, pengendali DMA akan mengirimkan sinyal HOLD tinggi ke prosesor 8085 • Prosesor 8085 membuat high impedance bus alamat, bus data, dan bus kendalinya • Mikroprosesor akan mengirimkan sinyal HLDA tinggi (Hold Acknowledge) yang menunjukkan bahwa 8085 menyerahkan kendali • Pengendali DMA melakukan transfer data dengan kecepatan tinggi dan kemudian kendali diserahkan kembali kepada 8085 dengan pengiriman sinyal HOLD rendah
Interrupt • Permintaan interupt CPU dipicu oleh I/O device • Interrupt handler menerima interrupt • Maskable interupt untuk membatalkan atau menunda beberapa interupt • Interrupt vector untuk mengirimkan interrupt ke handler yang benar. • Berdasarkan prioritas • Beberapa unmaskable • Mekanisme interrupt juga digunakakan untuk exception
Direct Memory Access (DMA) • Digunakan untuk menghindari diprogramnya I/O untuk pergerakan data yang besar • Membutuhkan DMA controller • Dilakukan bypass CPU untuk transfer data secara langsung antara I/O device dan memori