Akses Memori Langsung (DMA) dalam Senibina Komputer

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Untuk pelaksanaan program komputer, ia memerlukan kerja segerak lebih dari satu komponen komputer. Sebagai contoh, Pemproses - memberikan maklumat kawalan yang diperlukan, alamat ... dll, bas - untuk memindahkan maklumat dan data ke dan dari memori ke peranti I / O ... dll. Faktor yang menarik dari sistem ini adalah cara mengendalikan pemindahan maklumat di antara pemproses, memori dan peranti I / O. Biasanya, pemproses mengawal semua proses pemindahan data, langsung dari memulakan pemindahan ke penyimpanan data di tempat tujuan. Ini menambahkan beban pada pemproses dan selalunya ia berada dalam keadaan ideal, sehingga menurunkan kecekapan sistem. Untuk mempercepat pemindahan data antara peranti I / O dan memori, pengawal DMA bertindak sebagai induk stesen. Pengawal DMA memindahkan data dengan campur tangan pemproses yang minimum.

Apa itu Pengawal DMA?

Istilah DMA bermaksud akses memori langsung. Peranti perkakasan yang digunakan untuk akses memori langsung disebut pengawal DMA. DMA pengawal adalah unit kawalan , sebahagian daripada peranti I / O litar antara muka , yang dapat memindahkan blok data antara peranti I / O dan memori utama dengan campur tangan minimum dari pemproses.




Diagram Pengawal DMA dalam Senibina Komputer

Pengawal DMA menyediakan antara muka antara bas dan peranti input-output. Walaupun ia memindahkan data tanpa campur tangan pemproses, ia dikendalikan oleh pemproses. Pemproses memulakan pengawal DMA dengan mengirimkan alamat permulaan, Jumlah kata dalam blok data dan arah pemindahan data .i.e. dari peranti I / O ke memori atau dari memori utama ke peranti I / O. Lebih daripada satu peranti luaran boleh disambungkan ke pengawal DMA.

DMA dalam Senibina Komputer

DMA dalam Senibina Komputer



Pengawal DMA mengandungi unit alamat, untuk menghasilkan alamat dan memilih peranti I / O untuk dipindahkan. Ini juga berisi unit kontrol dan jumlah data untuk menjaga jumlah bilangan blok yang dipindahkan dan menunjukkan arah pemindahan data. Apabila pemindahan selesai, DMA memberitahu pemproses dengan menimbulkan gangguan. Gambarajah blok khas pengawal DMA ditunjukkan dalam gambar di bawah.

Diagram Blok Khas Pengawal DMA

Diagram Blok Khas Pengawal DMA

Bekerja DMA Controller

Pengawal DMA harus berkongsi bas dengan pemproses untuk melakukan pemindahan data. Peranti yang menahan bas pada waktu tertentu disebut master bus. Apabila pemindahan dari peranti I / O ke memori atau ayat naib harus dilakukan, pemproses menghentikan pelaksanaan program semasa, kenaikan program yang pembilang, memindahkan data ke atas timbunan kemudian menghantar isyarat pilihan DMA ke pengawal DMA melalui bas alamat.

Sekiranya pengawal DMA percuma, ia meminta kawalan bas dari pemproses dengan menaikkan isyarat permintaan bas. Pemproses memberikan bas kepada pengawal dengan menaikkan isyarat pemberian bas, kini pengawal DMA adalah ketua bas. Pemproses memulakan pengawal DMA dengan mengirimkan alamat memori, jumlah blok data yang akan dipindahkan dan arah pemindahan data. Setelah memberikan tugas pemindahan data ke pengawal DMA, bukannya menunggu dengan ideal hingga selesai pemindahan data, pemproses meneruskan pelaksanaan program setelah mengambil petunjuk dari timbunan.


Pemindahan Data Oleh DMA Dalam Komputer Oleh DMA

Pemindahan Data dalam Komputer Oleh DMA Controller

Pengawal DMA kini mempunyai kawalan penuh bas dan boleh berinteraksi secara langsung dengan memori dan peranti I / O yang tidak bergantung pada CPU. Ia membuat pemindahan data mengikut arahan kawalan yang diterima oleh pemproses. Setelah selesai pemindahan data, ia mematikan isyarat permintaan bus dan CPU mematikan isyarat pemberian bas sehingga memindahkan kawalan bas ke CPU.

Apabila peranti I / O ingin memulakan pemindahan, ia akan menghantar isyarat permintaan DMA ke pengawal DMA, yang mana pengawal mengakui jika ia bebas. Kemudian pengawal meminta pemproses untuk bas, menaikkan isyarat permintaan bas. Setelah menerima isyarat pemberian bas, ia akan memindahkan data dari peranti. Untuk pengawal DMA yang disalurkan n bilangan peranti luaran boleh disambungkan.

DMA memindahkan data dalam tiga mod yang merangkumi yang berikut.

ke) Mod Burst : Dalam mod ini DMA menyerahkan bas ke CPU hanya setelah selesai pemindahan data keseluruhan. Sementara itu, jika CPU memerlukan bas, ia harus tetap ideal dan menunggu pemindahan data.

b) Mod Mencuri Kitaran : Dalam mod ini, DMA memberikan kawalan bas ke CPU setelah pemindahan setiap bait. Ia secara berterusan mengeluarkan permintaan untuk kawalan bas, membuat pemindahan satu bait dan mengembalikan bas. Dengan CPU ini tidak perlu menunggu lama jika memerlukan bas untuk tugas prioriti yang lebih tinggi.

c) Mod Telus: Di sini, DMA memindahkan data hanya ketika CPU melaksanakan arahan yang tidak memerlukan penggunaan bas.

8237 Pengawal DMA

  • 8237 mempunyai 4 saluran I / O bersama dengan fleksibiliti untuk menambah bilangan saluran.
  • Setiap saluran boleh diprogramkan secara individu dan mempunyai kemampuan 64k alamat dan data.
  • Blok kawalan masa, blok kawalan arahan Program, Blok Pengekod Prioriti adalah tiga blok utama 8237A.
  • Isyarat masa dan kawalan luaran didorong oleh blok kawalan masa.
  • Pelbagai arahan yang diberikan oleh mikroprosesor ke DMA disahkod oleh blok kawalan arahan program.
  • Saluran mana yang harus diberi keutamaan tertinggi ditentukan oleh keutamaan blok pengekod .
    8237A mempunyai 27 daftar dalaman.

8237A beroperasi dalam dua kitaran- Kitaran ideal dan kitaran aktif, di mana setiap kitaran mengandungi 7 keadaan berasingan yang terdiri daripada satu masa satu jam.

S0- Keadaan pertama, di mana pengawal telah meminta bas dan menunggu pengakuan dari pemproses.

S1, S2, S3, S4 disebut keadaan kerja 8237A di mana pemindahan data sebenarnya berlaku. Sekiranya lebih banyak masa diperlukan untuk pemindahan, tunggu tunggu SW ditambahkan antara negeri ini.

Untuk pemindahan memori ke memori, baca-dari-memori dan pindah-ke-memori harus dilakukan. Lapan negeri diperlukan untuk pemindahan tunggal. Empat keadaan pertama dengan subskrip S11, S12, S13, S14 melakukan pemindahan baca-dari-memori dan empat S21, S22, S23, S24 seterusnya adalah untuk pemindahan tulis-ke-memori.

DMA berada dalam keadaan ideal apabila tidak ada saluran yang meminta perkhidmatan dan melakukan keadaan SI. SI adalah keadaan tidak aktif di mana DMA tidak aktif sehingga ia menerima permintaan. Dalam keadaan ini, DMA berada dalam keadaan program di mana pemproses dapat memprogramkan DMA.

Apabila DMA berada dalam keadaan ideal dan tidak mendapat permintaan saluran lebih jauh, ia mengeluarkan isyarat HRQ ke pemproses dan memasuki keadaan Aktif di mana ia dapat memulakan pemindahan data sama ada dengan mod burst, mod mencuri kitaran atau mod telus.

8237 PinDiagram

Rajah 8237 Pin

8257 DMA Pengawal

Apabila dipasangkan dengan peranti port I / O Intel 8212 tunggal, pengawal DMA 8257 membentuk 4 saluran yang lengkap Pengawal DMA . Setelah menerima permintaan pemindahan 8257 pengawal-

  • Memperoleh kawalan sistem bas dari pemproses.
  • Periferal yang disambungkan ke saluran keutamaan tertinggi diakui.
  • Bit memori yang paling tidak penting dipindahkan ke garis alamat A0-A7 dari bus sistem.
  • Yang paling ketara 8 bit dari alamat memori dipacu ke port 8212 I / O melalui garis data.
  • Menghasilkan isyarat kawalan yang sesuai untuk pemindahan data antara periferal dan lokasi memori yang dialamatkan.
  • Apabila bilangan bait yang ditentukan dipindahkan, pengawal memberitahu pemindahan akhir CPU dengan mengaktifkan output kiraan terminal (TC).

Untuk setiap saluran 8257 mengandungi dua Daftar 16-bit - 1) Daftar alamat DMA dan 2) Daftar kiraan terminal, yang harus diinisialisasi sebelum saluran diaktifkan. Alamat lokasi memori pertama yang akan diakses dimuatkan dalam daftar alamat DMA. Urutan bawah 14 bit dari nilai yang dimuat dalam daftar kiraan terminal menunjukkan bilangan kitaran DMA tolak satu sebelum pengaktifan output Kiraan terminal. Jenis operasi untuk saluran ditunjukkan oleh dua bit yang paling signifikan dari daftar kiraan Terminal.

Rajah 8257 Pin

Rajah 8257 Pin

Kelebihan dan Kekurangan DMA Controller

Kelebihan dan kekurangan pengawal DMA merangkumi yang berikut.

Kelebihan

  • DMA mempercepat operasi memori dengan melewati penglibatan CPU.
  • Beban kerja pada CPU berkurang.
  • Untuk setiap pemindahan, hanya beberapa bilangan pusingan jam yang diperlukan

Kekurangan

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

DMA ( Akses Memori Langsung ) Pengawal digunakan dalam kad grafik, kad rangkaian, kad suara dan lain-lain ... DMA juga digunakan untuk pemindahan intra-cip dalam pemproses multi-teras. Beroperasi dalam salah satu daripada tiga modnya, DMA dapat mengurangkan beban pemproses. Di antara mod DMA mana yang pernah anda gunakan? Mod yang manakah yang anda anggap lebih berkesan?