Anda di halaman 1dari 11

TUGAS

PERANGKAT KERAS I/O (DMA)


“ ARSITEKTUR & ORGANISASI KOMPUTER ”

Disusun Oleh :
KELOMPOK : 1
• NAMA : Moh.Bilmy Maulidi
NIM : (2019520024)
• NAMA : Farhan Maulana
NIM : (2019520037)

TELAH DISETUJUI TANGGAL :


.............................. .............
DOSEN PENGAMPU

(Zainollah Effendy S.Kom, M.kom )

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS MADURA
2022
BAB I
PENDAHULUAN

1.1. Latar Belakang

Sistem komputer tidak akan berguna tanpa adanya peralatan input dan output. Operasi –
operasi I/O diperoleh melalui sejumlah perangkat eksternal yang menyediakan alat untuk
pertukaran data di antara lingkungan luar dan komputer. Mesin komputer akan memiliki nilai
apabila bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi
apabila tidak dapat berinteraksi dengan dunia luar. Ambil contoh saja, bagaimana kita bisa
menginstruksikan CPU untuk melakukan suatu operasi apabila tidak ada keyboard.
Bagaimana kita melihat hasil kerja system komputer bila tidak ada monitor. Keyboard dan
monitor tergolong dalam perangkat eksternal komputer.

Perangkat eksternal yang dihubungkan modul I/O seringkali disebut perangkat peripheral,
atau untuk mudahnya disebut peripheral. Sistem komputer tidak akan berguna tanpa adanya
peralatan input dan output. Operasi – operasi I/O diperoleh melalui sejumlah perangkat
eksternal yang menyediakan alat untuk pertukaran data di antara lingkungan luar dengan
komputer. Perangkat eksternal dihubungkan dengan komputer oleh suatu link dengan modul
I/O

1.2. Tujuan
Tujuan dari Maktul Arsitektur & Komputer antara lain:
1. Untuk mengetahui Teknik Buffer I/O
2. Jenis-Jenis Teknik Buffer I/O
3. Perangkat Keras I/O DMA
BAB II
DASAR TEORI

2.1. Pengertian dari buffering I/O


Buffering merupakan teknik untuk melembutkan lonjakan-lonjakan kebutuhan
pengaksesan I/O secara langsung. Buffering adalah cara untuk meningkatkan efisiensi
sistem operasi dan kinerja proses-proses.Buffering dilakukan untuk tiga buah alasan.

o Alasan pertama adalah untuk men-cope dengan kesalahan yang terjadi karena
perbedaan kecepatan antara produsen dengan konsumen dari sebuah stream data.
Sebagai contoh, sebuah file sedang diterima melalui modem dan ditujukan ke media
penyimpanan di hard disk. Kecepatan modem tersebut kira-kira hanyalah 1/1000
daripada hard disk. Jadi buffer dibuat di dalam memori utama untuk mengumpulkan
jumlah byte yang diterima dari modem. Ketika keseluruhan data di buffer sudah
sampai, buffer tersebut dapat ditulis ke disk dengan operasi tunggal. Karena
penulisan disk tidak terjadi dengan instan dan modem masih memerlukan tempat
untuk menyimpan data yang berdatangan, maka dipakai 2 buah buffer. Setelah
modem memenuhi buffer pertama, akan terjadi request untuk menulis di disk.
Modem kemudian mulai memenuhi buffer kedua sementara buffer pertama dipakai
untuk penulisan ke disk. Pada saat modem sudah memenuhi buffer kedua, penulisan
ke disk dari buffer pertama seharusnya sudah selesai, jadi modem akan berganti
kembali memenuhi buffer pertama dan buffer kedua dipakai untuk menulis. Metode
double buffering ini membuat pasangan ganda antara produsen dan konsumen
sekaligus mengurangi kebutuhan waktu di antara mereka.
o Alasan kedua dari buffering adalah untuk menyesuaikan device-device yang
mempunyai perbedaan dalam ukuran transfer data. Hal ini sangat umum terjadi pada
jaringan komputer, dimana buffer dipakai secara luas untuk fragmentasi dan
pengaturan kembali pesan-pesan yang diterima. Pada bagian pengirim, sebuah pesan
yang besar akan dipecah ke paket-paket kecil. Paket-paket tersebut dikirim melalui
jaringan, dan penerima akan meletakkan mereka di dalam buffer untuk disusun
kembali.
o Alasan ketiga untuk buffering adalah untuk mendukung copy semantics untuk aplikasi
I/O. Sebuah contoh akan menjelaskan apa arti dari copy semantics. Jika ada sebuah
aplikasi yang mempunyai buffer data yang ingin dituliskan ke disk. Aplikasi
tersebut akan memanggil sistem penulisan, menyediakan pointer ke buffer, dan
sebuah integer untuk menunjukkan ukuran bytes yang ingin ditulis. Setelah
pemanggilan tersebut, apakah yang akan terjadi jika aplikasi tersebut merubah isi
dari buffer, dengan copy semantics, keutuhan data yang ingin ditulis sama dengan
data waktu aplikasi ini memanggil sistem untuk menulis, tidak tergantung dengan
perubahan yang terjadi pada buffer. Sebuah cara sederhana untuk sistem operasi
untuk menjamin copy semantics adalah membiarkan sistem penulisan untuk
mengkopi data aplikasi ke dalam buffer kernel sebelum mengembalikan kontrol
kepada aplikasi. Jadi penulisan ke disk dilakukan pada buffer kernel, sehingga
perubahan yang terjadi pada buffer aplikasi tidak akan membawa dampak apa-apa.
Mengcopy data antara buffer kernel data aplikasi merupakan sesuatu yang umum
pada sistem operasi, kecuali overhead yang terjadi karena operasi ini karena clean
semantics. Kita dapat memperoleh efek yang sama yang lebih efisien dengan
memanfaatkan virtual-memori mapping dan proteksi copy-on-wire dengan pintar.

2.2. Jenis-Jenis Teknik Buffer I/O

Terdapat beragam cara buffering antara lain:

oSingle Buffering
Teknik ini merupakan buffering paling sederhana. Ketika proses pemakai memberikan
perintah I/O, sistem operasi menyediakan buffer bagian memori utama sistem untuk operasi.
Untuk peralatan berorientasi blok, transfer masukan dibuat ke buffer sistem. Ketika transfer
selesai, proses memeindahkan blok ke ruang pemakai dan segera meminta blok lain. Teknik
ini disebut reading ahead atau anticipated input. Teknik ini dilakukan dengan harapan bahwa
blok tersebut akan segera diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku.
Hanya akhir barisan pemrosesan maka blok yang dibaca tidak diperlukan. Pendekatan ini
umumnya meningkatkan kecepatan dibanding tanpa buffering.

Gambar di atas menunjukkan struktur data dari buffer dalam bentuk yang sederhana, yang
terdiri dari satu record per-block dan satu buffer per-berkas,dimana buffer ini berfungsi
mengisikan permintaan dari sebuah program. Struktur buffer ini berisi sebuah pointer pada
alamat awal & channel program untuk berkas.
Struktur dasar dari channel program untuk mengisi buffer:

o Tunggu instruksi READ dari program.


o Memberitahukan instruksi start I/O ke unit kontrol.
o Tunggu hingga buffer dikosongkan.
o Memberitahukan interupsi pada program sehingga dapat mulai membaca dari buffer.

Keunggulan :

Pendekatan in umumnya meningkatkan kecepatan dibanding tanpa buffering. Proses pemakai


dapat memproses blok data sementara blok berikutnya sedang dibaca. Sistem operasi dapat
menswap keluar proses karena operasi masukan berada di memori sistem bukan memori
proses pemakai.
Kelemahan :

o Merumitkan sistem operasi karena harus mencatat pemberian buffer-buffer sistem ke


proses pemakai.
o Logika swapping juga dipengaruhi. Jika operasi I/O melibatkan disk
untuk swapping, maka membuat antrian penulisan ke disk yang sama yang
digunakan untuk swap out proses. Untuk menswap proses dan melepas memori
utama tidak dapat dimulai sampai operasi I/O selesai, dimana waktu swapping ke
disk tidak bagus untuk dilaksanaka Buffering keluaran serupa buffering masukan.
Ketika data transmisi, data lebih dulu dikopi dari ruang pemakai ke buffer sistem.
Proses pengirim menjadi bebas untuk melanjutkan eksekusi berikutnya atau di swap
ke disk jika perlu.Untuk perangkat berorientasi aliran karakter.

Single buffering dapat diterapkan dengan dua mode, yaitu :

o Mode line at a time.


Cocok untuk terminal mode gulung (scroll terminal atau dumb terminal). Masukan pemakai
adalah satu baris per waktu dengan enter menandai akhir baris. Keluaran terminal juga
serupa, yaitu satu baris per waktu.

Contoh mode ini adalah printer. Buffer digunakan untuk menyimpan satu baris tunggal.
Proses pemakai ditunda selama masukan, menunggu kedatangan satu baris seluruhnya. Untuk
keluaran, proses pemakai menempatkan satu baris keluaran pada buffer dan melanjutkan
pemrosesan. Proses tidak perlu suspend kecuali bila baris kedua dikirim sebelum buffer
dikosongkan.

o Mode byte at a time.


Operasi ini cocok untuk terminal mode form, dimana tiap ketikan adalah penting dan untuk
peripheral lain seperti sensor dan pengendali.

o Double Buffering
Untuk mengurangi kemungkinan dari program menunggu, maka double buffer dapat
digunakan. Dua dari tempat buffer yang ada, hanya satu yang ditetapkan untuk berkas.
Ide dasar dari double buffering adalah jika consumer mengosongkan salah satu buffer, maka
producer dapat mengisikan ke dalam buffer yang lain, pada saat buffer pertama sudah
kosong, maka buffer yang kedua harus dalam keadaan penuh. Kemudian consumer dapat
mengkosongkan buffer yang kedua, pada saat producer mengisi buffer yang pertama,
demikian seterusnya.
Peningkatan atas single buffering dapat dibuat dengan mempunyai dua buffer sistem untuk
operasi. Proses dapat transfer ke (atau dari) satu buffer sementara sistem operasi
mengosongkan (atau mengisi) buffer lain. Double buffering menjamin proses tidak akan
menunggu operasi I/O. Peningkatan atas single buffering diperoleh, namun harus dibayar
dengan kompleksitas yang meningkat.

Double buffering mempunyai 2 mode alternatif, yaitu :

o Mode line at a time.


Proses pemakai tidak perlu ditunda untuk I/O kecuali proses secepatnya mengosongkan
buffer ganda.

o Mode byte at a time.


Buffer ganda tidak memberi keunggulan berarti atas buffer tunggal. Double buffering
mengikuti model producer-consumer.

o Circular Buffering
Sebuah skema dari buffer ganda seharusnya mulus keluar dari alur data diantara device I/O
dan proses. Buffering ganda dapat tidak mencukupi  jika proses melakukan operasi I/O yang
berurutan dengan cepat. Masalah ini dapat dihindari dengan menggunakan lebih dari dua
buffer. Ketika lebih dari dua buffer yang digunakan, kumpulan buffer itu sendiri yang diacu
sebagai sirkular buffer.dengan masing-masing buffer tunggal menjadi satu unit buffer
sirkular.

o Utilitas dari Buffering


Buffering merupakan teknis mulus yang berfungsi dalam permintaan I/O. Namun, dalam
jumlah buffering yang akan memungkinkan sebuah device I/O untuk tetap dalam bentuk
sebuah prses yang tak hingga ketika permintaan rata-rata dari proses lebih besar daripada
device I/O dapat dilayani. Namun, dalam sebuah lingkungan multiprogramming, ketika
terdapat sebuah variasi dari aktivitas I/O dan sebuah variasi dari proses aktivitas untuk
layanan, buffering merupakan satu pool yang dapat meningkatakan efisiensi sistem operasi
dan kinerja proses individual.
2.3. PERANGKAT KERAS I/O DMA

DMA adalah sebuah prosesor khusus (special purpose processor) yang berguna
untuk menghindari pembebanan CPU utama oleh program I/O (PIO).

Transfer DMA
o Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command
block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk
ke tujuan/ destinasi transfer, dan jumlah byte yang ditransfer, ke memori. CPU
kemudian menuliskan alamat command block ini ke DMA controller, sehingga DMA
controller dapat kemudian mengoperasikan bus memori secara langsung dengan
menempatkan alamat-alamat pada bus tersebut untuk melakukan transfer tanpa
bantuan CPU. Tiga langkah dalam transfer DMA:
o Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari device,
operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data,
dan banyaknya byte yang di transfer.
o DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis
dan membaca data), sampai seluruh blok sudah di transfer.
o DMA controller meng-interupsi prosesor, dimana selanjutnya akan ditentukan
tindakan berikutnya.
o Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data.
Metode yang pertama adalah metode yang sangat baku dan simple disebut HALT,
atau Burst Mode DMA, karena DMA controller memegang kontrol dari sistem bus
dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi
transfer masih dalam progres, sistem mikroprosessor di-set idle, tidak melakukan
instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada
pada kebanyakan komputer.
o Metode yang kedua, mengikut-sertakan DMA controller untuk memegang kontrol
dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana
mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem
bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih
kompleks untuk diimplementasikan dibandingkan HALT DMA, karena DMA
controller harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus
terbuka.

DMA CONTROLLER
Handshaking
o Proses handshaking antara DMA controller dan device controller dilakukan melalui
sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Device controller
mengirimkan sinyal melalui DMA-request ketika akan mentransfer data sebanyak
satu word. Hal ini kemudian akan mengakibatkan DMA controller memasukkan
alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan sinyal
melalui kabel DMA-acknowledge. Setelah sinyal melalui kabel DMA-acknowledge
diterima, device controller mengirimkan data yang dimaksud dan mematikan sinyal
pada DMA-request.
o Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat DMA
controller mengambil alih memori, CPU sementara tidak dapat mengakses memori
(dihalangi), walau pun masih dapat mengaksees data pada cache primer dan sekunder.
Hal ini disebut cycle stealing, yang walau pun memperlambat komputasi CPU, tidak
menurunkan kinerja karena memindahkan pekerjaan data transfer ke DMA controller
meningkatkan performa sistem secara keseluruhan.

Cara-cara Implementasi DMA


o Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses
DMA , sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui
tahap "penerjemahan" dari alamat memori virtual menjadi alamat memori fisik, hal ini
disebut direct virtual-memory address atau DVMA.
o Keuntungan dari DVMA adalah dapat mendukung transfer antara dua memory
mapped device tanpa intervensi CPU.
BAB III
PENUTUP

3.1 Kesimpulan
➢ Flashdisk Merupakan alat penyimpanan eksternal yang sudah sangat baik dalam
proses penyimpanan suatu data
➢ Dalam perkembangan teknologi pada flashdisk sangatlah siknigikan sehingga
Falsdisk dapat berkembang dengan baik
➢ Fitur yang di gunakan pada flashdisk sangatlah mudah di gunakan sehingga user tidak
sulit untuk menyimpan data.

3.2 Saran
Kami selaku penyusun menyadari masih jauh dari sempurna dan tentunya masih banyak
kekurangan dalam pembuatan tugas ini. Hal ini disebabkan karena masih terbatasnya
kemampuan kami.

BAB IV
DAFTAR PUSTAKA

Anda mungkin juga menyukai