Direct Memory Access (DMA) dalam Arsitektur Komputer

Coba Instrumen Kami Untuk Menghilangkan Masalah





Untuk mengeksekusi program komputer, dibutuhkan kerja sinkron lebih dari satu komponen komputer. Sebagai contoh, Prosesor - menyediakan informasi kontrol yang diperlukan, alamat… dll, bus - untuk mentransfer informasi dan data ke dan dari memori ke perangkat I / O… dll. Faktor yang menarik dari sistem ini adalah caranya menangani transfer informasi antara prosesor, memori, dan perangkat I / O. Biasanya, prosesor mengontrol semua proses transfer data, langsung dari memulai transfer ke penyimpanan data di tujuan. Ini menambah beban pada prosesor dan sebagian besar waktu tetap dalam kondisi ideal, sehingga menurunkan efisiensi sistem. Untuk mempercepat transfer data antara perangkat I / O dan memori, pengontrol DMA bertindak sebagai master stasiun. Pengontrol DMA mentransfer data dengan intervensi minimal dari prosesor.

Apa itu Pengontrol DMA?

Istilah DMA adalah singkatan dari akses memori langsung. Perangkat keras yang digunakan untuk akses memori langsung disebut pengontrol DMA. DMA pengontrol adalah unit kontrol , bagian dari perangkat I / O sirkuit antarmuka , yang dapat mentransfer blok data antara perangkat I / O dan memori utama dengan intervensi minimal dari prosesor.




Diagram Pengontrol DMA dalam Arsitektur Komputer

Pengontrol DMA menyediakan antarmuka antara bus dan perangkat input-output. Meskipun mentransfer data tanpa campur tangan prosesor, itu dikendalikan oleh prosesor. Prosesor memulai pengontrol DMA dengan mengirimkan alamat awal, Jumlah kata dalam blok data dan arah transfer data. Yaitu. dari perangkat I / O ke memori atau dari memori utama ke perangkat I / O. Lebih dari satu perangkat eksternal dapat dihubungkan ke pengontrol DMA.

DMA dalam Arsitektur Komputer

DMA dalam Arsitektur Komputer



Pengontrol DMA berisi unit alamat, untuk menghasilkan alamat dan memilih perangkat I / O untuk transfer. Ini juga berisi unit kontrol dan jumlah data untuk menghitung jumlah blok yang ditransfer dan menunjukkan arah transfer data. Ketika transfer selesai, DMA memberi tahu prosesor dengan menaikkan interupsi. Diagram blok khas dari pengontrol DMA ditunjukkan pada gambar di bawah ini.

Diagram Blok Khas Pengontrol DMA

Diagram Blok Khas Pengontrol DMA

Cara Kerja Pengontrol DMA

Pengontrol DMA harus berbagi bus dengan prosesor untuk melakukan transfer data. Perangkat yang menahan bus pada waktu tertentu disebut bus master. Ketika transfer dari perangkat I / O ke memori atau sebaliknya harus dilakukan, prosesor menghentikan eksekusi program saat ini, program counter, memindahkan data melalui stack kemudian mengirimkan sinyal pilih DMA ke pengontrol DMA melalui bus alamat.

Jika pengontrol DMA bebas, pengontrol ini meminta kontrol bus dari prosesor dengan menaikkan sinyal permintaan bus. Prosesor memberikan bus ke pengontrol dengan menaikkan sinyal bus grant, sekarang pengontrol DMA adalah master bus. Prosesor memulai pengontrol DMA dengan mengirimkan alamat memori, jumlah blok data yang akan ditransfer dan arah transfer data. Setelah menetapkan tugas transfer data ke pengontrol DMA, alih-alih menunggu idealnya sampai transfer data selesai, prosesor melanjutkan eksekusi program setelah mengambil instruksi dari tumpukan.


Transfer Data Dengan DMA Di Komputer Dengan DMA

Transfer Data di Komputer Dengan DMA Controller

Pengontrol DMA sekarang memiliki kendali penuh atas bus dan dapat berinteraksi langsung dengan memori dan perangkat I / O yang tidak bergantung pada CPU. Itu membuat transfer data sesuai dengan instruksi kontrol yang diterima oleh prosesor. Setelah transfer data selesai, ia menonaktifkan sinyal permintaan bus dan CPU menonaktifkan sinyal hibah bus sehingga memindahkan kontrol bus ke CPU.

Ketika perangkat I / O ingin memulai transfer, maka ia mengirimkan sinyal permintaan DMA ke pengontrol DMA, yang mana pengontrol mengakui jika bebas. Kemudian pengontrol meminta prosesor untuk bus, menaikkan sinyal permintaan bus. Setelah menerima sinyal bus grant itu mentransfer data dari perangkat. Untuk n pengontrol DMA yang disalurkan n jumlah perangkat eksternal dapat dihubungkan.

DMA mentransfer data dalam tiga mode yang meliputi berikut ini.

untuk) Mode rentetan : Dalam mode ini DMA menyerahkan bus ke CPU hanya setelah menyelesaikan transfer data secara keseluruhan. Sedangkan jika CPU membutuhkan bus maka harus tetap ideal dan menunggu transfer data.

b) Mode Mencuri Siklus : Dalam mode ini, DMA memberikan kendali bus ke CPU setelah transfer setiap byte. Itu terus-menerus mengeluarkan permintaan untuk kontrol bus, melakukan transfer satu byte dan mengembalikan bus. Dengan ini CPU tidak perlu menunggu lama jika membutuhkan bus untuk tugas dengan prioritas lebih tinggi.

c) Mode Transparan: Di sini, DMA mentransfer data hanya ketika CPU menjalankan instruksi yang tidak memerlukan penggunaan bus.

8237 DMA Controller

  • 8237 memiliki 4 saluran I / O disertai dengan fleksibilitas penambahan jumlah saluran.
  • Setiap saluran dapat diprogram secara individual dan memiliki alamat 64k dan kemampuan data.
  • Blok kontrol waktu, blok kontrol perintah Program, Blok Encoder Prioritas adalah tiga blok utama 8237A.
  • Sinyal pengaturan waktu internal dan kontrol eksternal digerakkan oleh blok kontrol waktu.
  • Berbagai perintah yang diberikan oleh mikroprosesor ke DMA didekodekan oleh blok kontrol perintah program.
  • Saluran mana yang harus diberi prioritas tertinggi ditentukan oleh prioritas blok pembuat enkode .
    8237A memiliki 27 register internal.

8237A beroperasi dalam dua siklus- Siklus ideal dan siklus aktif, di mana setiap siklus berisi 7 status terpisah yang masing-masing terdiri dari satu periode clock.

S0- Keadaan pertama, di mana pengontrol telah meminta bus dan menunggu pengakuan dari prosesor.

S1, S2, S3, S4 disebut sebagai status kerja 8237A tempat transfer data yang sebenarnya terjadi. Jika lebih banyak waktu diperlukan untuk status tunggu transfer, SW ditambahkan di antara status ini.

Untuk transfer memori-ke-memori, baca-dari-memori dan transfer tulis-ke-memori harus dilakukan. Delapan negara bagian diperlukan untuk transfer tunggal. Empat status pertama dengan subskrip S11, S12, S13, S14 melakukan transfer baca-dari-memori dan empat S21, S22, S23, S24 berikutnya adalah untuk transfer tulis ke memori.

DMA masuk ke kondisi ideal ketika tidak ada saluran yang meminta layanan dan melakukan status SI. SI adalah keadaan tidak aktif di mana DMA tidak aktif sampai menerima permintaan. Dalam kondisi ini, DMA berada dalam kondisi program dimana prosesor dapat memprogram DMA.

Ketika DMA berada dalam kondisi ideal dan tidak mendapatkan permintaan saluran lebih lanjut, ia mengeluarkan sinyal HRQ ke prosesor dan masuk ke status Aktif di mana ia dapat memulai transfer data baik dengan mode burst, mode mencuri siklus, atau mode transparan.

8237 PinDiagram

Diagram 8237 Pin

8257 DMA Controller

Saat dipasangkan dengan satu perangkat port Intel 8212 I / O, pengontrol DMA 8257 membentuk 4 saluran lengkap Pengontrol DMA . Setelah menerima permintaan transfer, pengontrol 8257-

  • Memperoleh kontrol atas bus sistem dari prosesor.
  • Periferal yang terhubung ke saluran prioritas tertinggi diakui.
  • Bit yang paling tidak signifikan dari alamat memori dipindahkan ke baris alamat A0-A7 dari bus sistem.
  • Yang paling signifikan 8 bit alamat memori didorong ke 8212 I / O port melalui jalur data.
  • Menghasilkan sinyal kontrol yang sesuai untuk transfer data antara periferal dan lokasi memori yang dialamatkan.
  • Ketika jumlah byte yang ditentukan ditransfer, pengontrol memberi tahu akhir transfer CPU dengan mengaktifkan output terminal count (TC).

Untuk setiap saluran 8257 berisi dua Register 16-bit - 1) Register alamat DMA dan 2) Register jumlah terminal, yang harus diinisialisasi sebelum saluran diaktifkan. Alamat lokasi memori pertama yang akan diakses dimuat dalam register alamat DMA. Urutan bawah 14 bit dari nilai yang dimuat dalam register penghitungan terminal menunjukkan jumlah siklus DMA dikurangi satu sebelum aktivasi output penghitungan Terminal. Jenis operasi untuk saluran ditunjukkan oleh dua bit paling signifikan dari register jumlah Terminal.

Diagram 8257 Pin

Diagram 8257 Pin

Keuntungan dan Kerugian Pengontrol DMA

Keuntungan dan kerugian dari pengontrol DMA meliputi yang berikut ini.

Keuntungan

  • DMA mempercepat operasi memori dengan melewati keterlibatan CPU.
  • Beban kerja berlebih pada CPU berkurang.
  • Untuk setiap transfer, hanya diperlukan beberapa siklus clock

Kekurangan

  • Masalah koherensi cache dapat dilihat ketika DMA digunakan untuk transfer data.
  • Meningkatkan harga sistem.

DMA ( Akses Memori Langsung ) Pengontrol digunakan dalam kartu grafis, kartu jaringan, kartu suara, dll. DMA juga digunakan untuk transfer intra-chip dalam prosesor multi-core. Mengoperasikan dalam salah satu dari tiga modenya, DMA dapat sangat mengurangi beban prosesor. Dalam mode DMA manakah Anda pernah bekerja? Manakah dari mode yang Anda anggap lebih efektif?