Mikroprosesor - 8257 DMA Controller
DMA adalah singkatan dari Direct Memory Access. Ini dirancang oleh Intel untuk mentransfer data dengan kecepatan tercepat. Ini memungkinkan perangkat untuk mentransfer data secara langsung ke / dari memori tanpa gangguan apa pun dari CPU.
Dengan menggunakan pengontrol DMA, perangkat meminta CPU untuk menyimpan datanya, alamat, dan bus kontrolnya, sehingga perangkat bebas untuk mentransfer data secara langsung ke / dari memori. Transfer data DMA dimulai hanya setelah menerima sinyal HLDA dari CPU.
Bagaimana Operasi DMA Dilakukan?
Berikut adalah urutan operasi yang dilakukan oleh DMA -
Awalnya, ketika perangkat harus mengirim data antara perangkat dan memori, perangkat harus mengirim permintaan DMA (DRQ) ke pengontrol DMA.
Pengontrol DMA mengirimkan permintaan Hold (HRQ) ke CPU dan menunggu CPU untuk menegaskan HLDA.
Kemudian mikroprosesor melakukan tri-state semua bus data, bus alamat, dan bus kontrol. CPU meninggalkan kendali atas bus dan mengakui permintaan HOLD melalui sinyal HLDA.
Sekarang CPU dalam status HOLD dan pengontrol DMA harus mengelola operasi melalui bus antara CPU, memori, dan perangkat I / O.
Fitur 8257
Berikut adalah daftar dari beberapa fitur utama dari 8257 -
Ini memiliki empat saluran yang dapat digunakan lebih dari empat perangkat I / O.
Setiap saluran memiliki alamat 16-bit dan penghitung 14-bit.
Setiap saluran dapat mentransfer data hingga 64kb.
Setiap saluran dapat diprogram secara independen.
Setiap saluran dapat melakukan transfer baca, transfer tulis, dan verifikasi operasi transfer.
Ini menghasilkan sinyal MARK ke perangkat periferal bahwa 128 byte telah ditransfer.
Ini membutuhkan jam fase tunggal.
Frekuensinya berkisar dari 250Hz hingga 3MHz.
Ini beroperasi dalam 2 mode, yaitu, Master mode dan Slave mode.
8257 Arsitektur
Gambar berikut menunjukkan arsitektur 8257 -
8257 Deskripsi Pin
Gambar berikut menunjukkan diagram pin dari pengontrol 8257 DMA -
DRQ 0 −DRQ3
Ini adalah empat input permintaan DMA saluran individu, yang digunakan oleh perangkat periferal untuk menggunakan layanan DMA. Jika mode prioritas tetap dipilih, maka DRQ 0 memiliki prioritas tertinggi dan DRQ 3 memiliki prioritas terendah di antara keduanya.
DACK o - DACK 3
Ini adalah garis pengakuan DMA rendah aktif, yang memperbarui perangkat yang meminta tentang status permintaan mereka oleh CPU. Garis ini juga dapat bertindak sebagai garis strobo untuk perangkat yang meminta.
D o - D 7
Ini adalah jalur data dua arah yang digunakan untuk menghubungkan bus sistem dengan bus data internal pengontrol DMA. Dalam mode Slave, ia membawa kata-kata perintah ke 8257 dan kata status dari 8257. Dalam mode master, baris-baris ini digunakan untuk mengirim byte yang lebih tinggi dari alamat yang dihasilkan ke latch. Alamat ini selanjutnya dikunci menggunakan sinyal ADSTB.
IOR
Ini adalah jalur input tri-state dua arah aktif-rendah, yang digunakan oleh CPU untuk membaca register internal 8257 dalam mode Slave. Dalam mode master, digunakan untuk membaca data dari perangkat periferal selama siklus penulisan memori.
IOW
Ini adalah jalur tri-state dua arah rendah aktif, yang digunakan untuk memuat konten bus data ke register mode 8-bit atau byte atas / bawah dari register alamat DMA 16-bit atau register jumlah terminal. Dalam mode master, ini digunakan untuk memuat data ke perangkat periferal selama siklus baca memori DMA.
CLK
Ini adalah sinyal frekuensi clock yang diperlukan untuk operasi internal 8257.
SETEL ULANG
Sinyal ini digunakan untuk RESET pengontrol DMA dengan menonaktifkan semua saluran DMA.
A o - A 3
Ini adalah empat baris alamat yang paling tidak signifikan. Dalam mode slave, mereka bertindak sebagai input, yang memilih salah satu register untuk dibaca atau ditulis. Dalam mode master, mereka adalah empat baris output alamat memori yang paling tidak signifikan yang dihasilkan oleh 8257.
CS
Ini adalah jalur pilih chip aktif-rendah. Dalam mode Slave, ini memungkinkan operasi baca / tulis ke / dari 8257. Dalam mode master, ini menonaktifkan operasi baca / tulis ke / dari 8257.
A 4 - A 7
Ini adalah gigitan yang lebih tinggi dari alamat byte bawah yang dihasilkan oleh DMA dalam mode master.
SIAP
Ini adalah sinyal input asinkron tinggi aktif, yang membuat DMA siap dengan memasukkan status tunggu.
HRQ
Sinyal ini digunakan untuk menerima sinyal permintaan tahan dari perangkat keluaran. Dalam mode slave, ini terhubung dengan jalur input DRQ 8257. Dalam mode Master, ini terhubung dengan input HOLD dari CPU.
HLDA
Ini adalah sinyal pengakuan tahan yang menunjukkan pengontrol DMA bahwa bus telah diberikan ke periferal yang meminta oleh CPU ketika disetel ke 1.
MEMR
Ini adalah sinyal baca memori rendah, yang digunakan untuk membaca data dari lokasi memori yang dialamatkan selama siklus baca DMA.
MEMW
Ini adalah sinyal tiga status aktif-rendah yang digunakan untuk menulis data ke lokasi memori yang dialamatkan selama operasi tulis DMA.
ADST
Sinyal ini digunakan untuk mengubah byte yang lebih tinggi dari alamat memori yang dihasilkan oleh pengontrol DMA menjadi kait.
AEN
Sinyal ini digunakan untuk menonaktifkan bus alamat / bus data.
TC
Ini adalah singkatan dari 'Terminal Count', yang menunjukkan siklus DMA saat ini ke perangkat periferal saat ini.
MENANDAI
Tanda itu akan diaktifkan setelah setiap 128 siklus atau kelipatan integral dari awal. Ini menunjukkan siklus DMA saat ini adalah siklus ke-128 sejak output MARK sebelumnya ke perangkat periferal yang dipilih.
V cc
Ini adalah sinyal daya yang diperlukan untuk pengoperasian rangkaian.