Cari Blog Ini

Senin, 26 Oktober 2020

Tugas 3 Individu Menjelaskan Data Transfer With A DMA Controller

Menjelaskan Data Transfer With A DMA  Controller

Gambar DMA
Pengertian Direct Memory Access (DMA)

Direct Memory Access adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfer blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor. Transfer DMA dilakukan oleh sirkuit kontrol yang merupakan bagian dari antar muka perangkat I/O. Istilah ini yang sering banyak kita ketahui adalah sebagai kontroler DMA. Kontroler DMA melakukan fungsi yang biasanya dilakukan oleh prosesor pada saat mengakses memori utama (yang sering disebut RAM). Untuk setiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang mengontrol tranfer data. Karena harus mentranfer sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori untuk wordyang berurutan dan mencatatjumlah transfer.

DMA (Direct Memory Access) adalah suatu hardware spesial (chip) yang dapat mengontrol aliran bit data antara memory (RAM) dan beberapa controller dari I/O devices tanpa memerlukan interferensi dari CPU secara terus menerus. (Mengakses dan mengontrol memori sistem tanpa interferensi CPU secara terus menerus).

Fungsi Direct Memory Access (DMA)

Fungsi dari DMA adalah CPU dapat melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral. Tanpa adanya DMA, CPU akan terus sibuk melakukan operasi baca tulis (transfer data) dan tidak dapat melakukan atau menyelesaikan instruksi yang lain. Dengan adanya DMA, CPU cukup mempersiapkan DMA chip dengan cara memberikan beberapa informasi seperti jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran d9ata tersebut, setelah itu DMA chip sendiri yang akan menyelesaikannya. DMA chip akan melakukan interupt, ketika pekerjaannya sudah selesai. Selama DMA chip melakukan tugasnya hingga munculnya interupt, CPU dapat menyelesaikan instruksi yang lainnya.

Metode kerja DMA (Direct Memory Acces) Pada dasarnya cara kerja DMA terkait erat dengan : DMA controller, Processor, Memory, I/Odevice.Adapun juga cara kerjanya sebagai berikut:

  • I/O Device terhubung dengan DMA controller memberikan instruksi yang harus di proses .
  • DMA controller mengirimkan pemberitahuan ke processor akan ada proses yang dihandle oleh DMA controller
  • Processor menginformasikan ke memory bahwa DMA akan mengakses memory untuk pemrosesan suatu instruksi
  • DMA Controller terhubung dengan memory dan akses alamat, data yang diperlukan
  • DMA controller mengirimkan hasil proses kembali ke I/O device
  • Jika proses selesai, DMA controller kembali melaporkan ke processor bahwa proses telah beres dilakukan. Menurut reverensi lain cara kerja DMA sebagai berikut:
  • CPU mengirimkan data data berikut ini ke DMA controller:
    1. Perintah read/write
    2. Alamat device yang akan diakses
    3. Alamat awal blok memori yang akan dibaca atau ditulis.
    4. Jumlah blok yang akan ditransfer.
    5. CPU klien mengeksekusi program lain.
    6. DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori tanpa
      melibatkan CPU)
    7. DMA controler mengirimkan interupt ke CPU jika telah selesai.
    8. DMA controler mengambil alih sistem bus sebanyak 1 siklus.
    9. DMA men-transfer satu word data
    10. Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlu menyimpan context
    11. CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA

Cycle Stealing pada DMA transfer

DMA controller mengambil alih bus sebanyak satu siklus.DMA mentransfer satu word dataPengambil alihan bus oleh DMA bukan interrupt –> CPU tidak perlu menyimpan contextCPU hanya tertunda (suspend) sesaat sebelum mengakses bis, yaitu sebelum operand atau data diambil atau data ditulisPengaruh terhadap CPU yaitu memperlambat CPU , tetapi masih lebih baik dari pada CPU terlibat langsung pada transfer data.

Konfigurasi pada DMA

Konfigurasi 1 (Single Bus) * Hanya menggunakan single bus * DMA dan modul I/O terpisah * Setiap transfer harus mengakses bus 2 kali : modul I/O ke DMA kemudian DMA ke memori * Lebih lambat CPU (tertunda 2 kali) Konfigurasi modul DMA

Konfigurasi 2 (Single Bus, Integrated DMA-I/O) * Hanya menggunakan single bus * Modul I/O terintegrasi * Satu DMA controller dapat menangani >1 modul I/O * Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori * CPU hanya tertunda satu kali (lebih baik dari konfigurasi 1) Konfigurasi Modul DMA

Konfigurasi 3 (IO Bus) * Digunakan bus I/O secara terpisah * Lebih hemat hardware◊Semua modul I/O cukup dilayani dengan sebuah DMA * Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori * CPU hanya tertunda (lebih baik dari konfigurasi 2) Konfigurasi Modul DMA.

Jenis dan Struktur DMA Ada 2 jenis DMA

  1. Third – party DMA, untuk melakukan operasi trasnfer data menggunakan DMA controller yang ada pada metherboard.
  2. First – party DMA (busmastering DMA), untuk melakukan operasi trasnfer data dikerjakan oleh bagian logic di interface card. Struktur DMA (Direct Memory Access) – Trasnfer data dari buffer ke momori atau sebaliknya dilakukan per- karakter. – Dimana setiap kali trasnfer selalu ada interupt dari CPU sebelum dan sesudah trasnfer. – Dengan menggunakan DMA trasnfer data dapat dilakukan secara langsung oleh device controller per-blok tanpa ada campur tangan dari CPU. – CPU hanya memberikan interupt sebelum dan sesudah trasnfer setiap blok.

Jalur Transfer DMA

Ada 3 langkah dalam transfer DMA
1. Prosesor menyiapkan DMA prosesor Transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang akan menjadi sumber, tujuan data, dan banyaknya byte yang akan ditransfer.
2. Pengendali DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca data sampai seluruh blok sudah ditransfer.
3. Pengendali DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

Pada dasarnya, DMA mempunyai 2 metode untuk transfer data.
a. HALT atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan menstransfer semua blok data dari memori ke single burst atau sebaliknya,
b. CYCLE STEALING DMA pada metode ini mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosesor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus.

STRUKTUR DMA (Direct Memory Access)

  • Transfer data dari buffer ke memori atau sebaliknya dilakukan perkarakter
  • Dimana setiap kali transfer selalu ada interrup dari CPU sebelum dan sesudah transfer.
  • Jika waktu untuk mentranfer satu karakter sebesar 2 us dan sekali interrupt butuh 1ms , maka untuk mentransfer data dari memori ke buffer butuh 4 us per karakter.·
  • Dengan menggunakan DMA transfer data dapat dilakukan secara langsung oleh device controller per-blok tanpa ada campur tangan dari CPU.·
  •  CPU hanya memberikan interrupt sebelum dan sesudah transfer setiap blok.

Kelebihan Direct Memory Access (DMA)

Kelebihan menggunakan mode DMA sangat terasa pada sistem operasi multitasking seperti Windows, Linux, UNIX, dan sebagainya. Karena transfer data akan  menghemat resource processor sehingga processor dapat mengerjakan pekerjaan lain. Keuntungan lainnya adalah kecepatan transfer data dengan menggunakan mode DMA jauh lebih cepat bila dibandingkan dengan menggunakan mode PIO.

Kelemahan Direct Memory Access (DMA)

Tanpa DMA, diprogram menggunakan input / Output (PIO) mode untuk berkomunikasi dengan perangkat pinggiran, atau menggunakan / menyimpan instruksi dalam kasus multicore chips,CPU biasanya penuh diduduki untuk seluruh durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer, lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling belakang yg berbarengan operasi adalah penting. Dan aplikasi lain yang berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput memadai.

Hubungan DMA dengan Input dan Output

Hubungan antara CPU dengan main memory ataupun dengan alat-alat input atau output dilakukan dengan suatu jalur yang di sebut dengan bus. Hubungan antara CPU dengan main memory melalui jalur bus yang dilekatkan pada memory data register, memory address register dan control unit di CPU. Sedangkan bus yang menghubungkan CPU dengan alat-alat input/output tidak dilekatkan langsung ke alat-alat input/output tersebut, tapi dapat melalui suatu alat port atau DMA controller atau channel.

MENJELASKAN TRANSFER DATA MENGGUNAKAN DMA CONTROLLER

Gambar DMA

Penjelasan :
Selama transfer byte masukan blok, urutan berikut terjadi saat byte data dikirim dari antarmuka ke memori:

  1. Antarmuka mengirimkan DMA controller permintaan untuk layanan DMA.
  2. Permintaan bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor tebhe 8086 dan pengendali mendapatkan kontrol bus.
  3. Isi bus dikembalikan ke kontroler DMA dari pin HOLD Acknowledge (HLDA) (aktve High) pada mikroprosesor 8086.
  4.  Pengontrol DMA menempatkan isi register alamat ke alamat bus.
  5. Pengontrol mengirimkan antarmuka pengakuan DMA, yang memberi tahu antarmuka untuk menempatkan bus data (untuk keluarannya memberi sinyal antarmuka untuk mengunci data berikutnya yang ditempatkan di bus)
  6. Data dalam bentuk byte ditransfer ke lokasi memori yang ditunjukkan oleh  alamat bus.
  7. Interface mengaitkan data / memasang datanya. 
  8.  Permintaan bus dijatuhkan, pin HOLD menjadi rendah, dan pengendali melepaskan bus.
  9. Isi bus dari mikroprosesor 8086 menurun dan pin HLDA menjadi turun..Register alamat bertambah 1,Hitungan byte dikurangi 1.Jika jumlah byte tidak nol, kembali ke langkah 1, jika tidak hentikan.

Referensi

https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html

https://maulaniulfa.home.blog/2018/11/09/tugas-3-sistem-operasi/

https://hidayatullah1922.wordpress.com/dma-direct-memory-acces/

https://hansentan17.wordpress.com/2018/11/14/direct-memory-access-dma/

Tidak ada komentar:

Posting Komentar

                           TUGAS ETIKA PROFESI                                                                                   NIM     : 8...