Minggu, 27 November 2016

DMA

2.1 Pengertian DMA (Direct Memory Access)
Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfes 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 transfer data. Karena harus mentransfer sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori untuk word yang berurutan dan mencatat jumlah transfer.


Sekalipun kontroler DMA dapat mentransfer data tanpa intervensi dari prosesor, operasinya tetap berada dibawah kontrol program yang dieksekusi oleh prosesor. Untuk menginisiasi transfer suatu blok word, prosesor mengirim alamat awal, jumlah word dalam blok, dan arah transfer. Pada saat seluruh blok telah ditransfer, kontroler tersebut memberitahu prosesor dengan memunculkan sinyal interupt. Pada saat transfer DMA terjadi, program yang meminta transfer tersebut berhenti bekerja dan prosesor dapat digunakan untuk mengeksekusi program lain. Setelah transfer DMA selesai, prosesor dapat kembali ke program yang meminta transfer tersebut.


Operasi I/O selalu dilakukan oleh OS sebagai respon terhadap request dari program aplikasi. OS juga bertanggung jawab untuk menunda eksekusi satu program dan memulai eksekusi program lain. Sehingga, untuk operasi I/O yang melibatkan DMA, OS menetapkan program yang meminta transfer tsb pada keadaan blocked, menginisiasi operasi DMA, dan memulai eksekusi program lain. Pada saat transfer selesai, kontroler DMA memberitahu prosesor dengan mengirim interupt request. Sebagai responnya, OS menetapkan program yang ditunda ke keadaan runnable sehingga dapat dipilih oleh scheduler untuk melanjutkan eksekusi.


DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). 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 transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.


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).
Description: C:\KAMPUS\UMITRA\ORKOM\Tugas 1\DAT\PICT DMA\2014-11-01_000055.png

2.2 Jenis-Jenis DMA (Direct Memory Access)
Ada 2 jenis DMA, yaitu:
a.                   Third−party DMA, untuk melakukan operasi transfer data menggunakan DMA controller yang ada pada motherboard.
b.                  First−party DMA (busmastering DMA). Untuk melakukan operasi transfer data dikerjakan oleh bagian logic di interface card.


2.3  Struktur DMA (Direct Memory Access)
·         Transfer data dari buffer ke memori atau sebaliknya dilakukan per-karakter.
·         dimana setiap kali transfer selalu ada interruptdari CPU sebelum dan sesudah transfer.
·         Jika waktu untuk mentransfer satu karakter sebesar 2 µs dan sekali interrupt butuh 1ms, maka untuk mentransfer data dari memori kebuffer butuh 4 µs per karakter.
·         Dengan menggunakan DMA transfer data dapatdilakukan secara langsung oleh device controller per-blok tanpa ada campur tangan dari CPU.
·         CPU hanya memberikan interrupt sebelum dansesudah transfer setiap blok.

2.4 Fungsi DMA (Direct Memory Access)
Fungsi dari DMA sendiri adalah agar 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 data 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.
DMA chip atau DMA controller sangat beragam tergantung dari teknologi yang ditanamkan padanya, untuk menjelaskan cara kerjanya akan digunakan jenis yang paling sederhana, yaitu DMA chip yang menangani sebuah transfer setiap waktunya. Berikut ini cara kerjanya:
Pertama, CPU akan memprogram atau mengeset DMA chip dengan mengatur registerinya, agar DMA chip mengetahui apa saja yang perlu ditransfer dan kemana informasi tersebut perlu ditransfer. Selain itu CPU juga akan memberikan command atau perintah pada disk controller untuk membaca data dari disk dan menuliskannya pada internal buffer, serta melakukan checksum untuk memastikan tidak adanya error yang terjadi ketika membaca dan menuliskan data dari disk menuju internal buffer. Bila tidak ada terjadi error maka DMA chip dapat  memulai untuk melakukan transfer. DMA chip akan melakukan request kepada disk controller untuk melakukan transfer data menuju main memory (RAM). Selama melakukan transfer menuju memory akan terjadi bus cycle, dan setiap kali selesai menuliskan data pada memory, disk controller akan mengirim suatu sinyal (acknowledgement signal) pada DMA chip.
Kemudian DMA chip akan menaikkan alamat memory untuk digunakan dan melakukan pengurangan pada counter bit data. Proses dari DMA chip melakukan request sampai disk controller mengirimkan sinyal kembali pada DMA chip akan terus berlangsung hingga counter mencapai 0. Ketika counter mencapai 0, maka DMA chip akan melakukan interupt dan memberitahukan pada CPU bahwa proses transfer sudah selesai. Semua transfer data dan sinyal ini dikirimkan melalui suatu bus yang menghubungkan CPU, DMA chip (controller), Disk controller dan main memory. Berikut ini gambar untuk mempermudah penjelasan:

2.5 Metode Kerja DMA (Direct Memory Access)


Ada Beberapa Metode DMA dalam mentrasfer data :
a.                   Metode yang sangat baku dan sederhana disebut HALT, atau Burst  Mode DMA, karena pengendali DMA memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih dalam prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.

b.      Metode kedua, mengikutsertakan pengendali DMA 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 pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka
Pada dasarnya cara kerja DMA terkait erat dengan : DMA controller, Processor,  Memory, I/Odevice. Adapun juga cara kerjanya sebagai berikut:
1.      I/O Device terhubung dengan DMA controller memberikan instruksi yang harus di proses
2.      DMA controller mengirimkan pemberitahuan ke processor akan ada proses yang dihandle oleh DMA controller
3.      Processor menginformasikan ke memory bahwa DMA akan mengakses memory untuk pemrosesan suatu instruksi
4.      DMA Controller terhubung dengan memory dan akses alamat, data yang diperlukan
5.      DMA controller mengirimkan hasil proses kembali ke I/O device
6.      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: Perintah read/write Alamat device yang akan diakses Alamat awal blok memori yang akan dibaca/ditulis Jumlah blok data yang akan ditransfer
·         CPU mengeksekusi program lain
·         DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori(tanpa melibatkan CPU)
·         DMA controller mengirim interrupt ke CPU jika telah selesai.
Dapat disimpulkan Prinsip sederhanya : DMA controller mengambil alih kerja processor dalam memproses instruksi yang masuk melalui I/O device. Processor cukup mendapatkan laporan saja bahwa akan ada tugas yang dihandle oleh DMA controller, dan setelah beres, tinggal nunggu laporan ” tugas beres”

(Gambar : Blog Diagram DMA)
2.6 Transfer DMA (Direct Memory Access)
Ada 3 langkah dalam transfer DMA :
a.                   Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
b.                  Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
c.                   Pengendali DMA meng-interupsi prosesor  dimana selanjutnya akan ditentukan tindakan berikutnya.

2.7 Implementasi DMA
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 disebutDirect Virtual-Memory Address atau DVMA. Keuntungan dari DVMA adalah dapat mendukung transfer antara dua memori mapped device tanpa intervensi CPU.

2.8 Konfigurasi modul DMA
a.                   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)

b.      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)

c.       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)



2.9 Proses Handshaking pada DMA
Proses handshaking antara pengendali DMA dan pengendali perangkat dilakukan melalui sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Pengendali perangkat mengirimkan sinyal melalui DMA-request ketika akan mentransfer data sebanyak satu word. Hal ini kemudian akan mengakibatkan pengendali DMA memasukkan alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA-acknowledge. Setelah sinyal melalui kabel DMA-acknowledgediterima, pengendali perangkat mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request.
Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat pengendali DMA 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 pengendali DMA meningkatkan performa sistem secara keseluruhan.

2.10 Keuntungan menggunakan DMA:
·         Dapat dilihat pada operasi multiasking seperti UNIX.
·         Transfer data dengan mode DMA akan menghemat sumberdaya CPU sehingga CPU dapat melakukan pekerjaan yang lain.
·         Sedangkan pada DOS (yang merupakan operasi single-tasking) harus menunggu sampai proses selesai terlebih dahulu baru kemudian bisa menjalankan proses berikutnya


Input/Output Interface

SISTEM INPUT/OUTPUT (I/O)



I/O Sistem Operasi
I/O System merupakan bagian untuk menangani inputan dan outputan dari DCS. Inputan dan outputan tersebut bisa analog atau digital. Inputan/outputan digital seperti sinyal-sinyal ON/OFF atau Start/Stop. Kebanyakan dari pengukuran proses dan outputan terkontrol merupakan jenis analog.
Pengertian Input
Input adalah semua data dan perintah yang dimasukkan ke dalam memori komputer untuk selanjutnya diproses lebih lanjut oleh prosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan user atau pengguna memasukkan data ke dalam komputer, atau bisa juga disebut sebagai unit luar yang digunakan untuk memasukkan data dari luar ke dalam mikroprosesor.
Pengertian Output
Output adalah data yang telah diproses menjadi bentuk yang dapat digunakan. Artinya komputer memproses data-data yang diinputkan menjadi sebuah informasi. Yang disebut sebagai perangkat output adalah semua komponen piranti keras yang menyampaikan informasi kepada orang-orang yang menggunakannya.
I/O system terdiri dari beberapa bagain penting yaitu:
a.    I/O Hardware
b.    Application I/O Interface
c.    Kernel I/O Subsystem
d.    I/O Requests to Hardware Operations
e.    Streams
f.    Performance
A. I/O Hardware
   Secara umum, I/O Hardware terdapat beberapa jenis seperti device penyimpanan
   (disk,tape),    
   transmission device (network card, modem), dan human-interface device (screen, keyboard,mouse).         Device tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki device akan digunakan oleh     direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/ shared direct access), dan controller  (host adapter).
·                     Port adalah koneksi yang digunakan oleh device untuk berkomunikasi dengan mesin.
·                     Bus adalah koneksi yang menghubungkan beberapa device menggunakan kabel-kabel.
·                     Controller adalah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan device.
B. Application I/O Interface
   Merupakan suatu mekanisme untuk mempermudah pengaksesan, sehingga sistem operasi melakukan standarisasi cara pengaksesan peralatan I/O.
   Interface aplikasi I/O melibatkan abstraksi, enkapsulasi, dan software layering. Device driver mengenkapsulasi tiap-tiap peralatan I/O ke dalam masing-masing 1 kelas yang umum (interface standar). Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan  perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada  kernel. Karena hal ini, subsistem I/O dapat bersifat independen dari hardware.
C. Kernel I/O subsystems
   Kernel menyediakan banyak service yang berhubungan dengan I/O. Pada bagian ini, kita akan mendeskripsikan beberapa service yang disediakan oleh kernel I/O subsystem, dan kita akan membahas bagaimana caranya membuat infrastruktur hardware dan device-driver. Service yang akan kita bahas adalah I/O scheduling, buffering, caching, pooling, reservasi device, error handling.

D. I/O Requests to Hardware Operations
   Salah satu contohnya adalah:
a. Ilustrasi membuka sebuah
–  Device mana tempat file yang akan dibuka
–  Menerjemahkan _nama_ ke dalam device yang dimaksud
–  Membaca secara fisik file yang hendak dibuka
–  Data sudah siap untuk diakses
–  Mengembalikan kontrol pada proses
b.Ilustrasi lain pada waktu boot
   Sistem mula-mula meminta bus piranti keras untuk menentukan device apa yang ada.
 E.Streams
   I/O stream adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data (dua arah).Biasa digunakan dalam network protocol dan menggunakan  message passingdalam men-transferdata Stream terdiri atas : 
·                     sebuah stream head yang merupakan antarmuka dengan user process,
·                     sebuah driver end yang mengontrol device,
·                     dan nol atau lebih stream modules 
F.Performance
   Faktor utama dalam performa sistem :  
·                     Permintaan CPU untuk menjalankan device driver, kode kernel I/O
·                     Keadaan/state untuk melayani interrupt 
·                     Copy data
·                     Network traffic khususnya pada beban kinerja 

CONTOH ALAT INPUT/OUTPUT 

*INPUT
Keyboard




Keyboard digunakan untuk memberikan masukan (input) ke dalam komputer, dimana masukan (input) tersebut dapat berupa data atau perintah yang dimasukkan dengan cara mengetikkannya langsung pada keyboard.

Mouse


Pada dasarnya, penunjuk (pointer) yang dikenal dengan sebutan “Mouse” dapat digerakkan kemana saja berdasarkan arah gerakan bola kecil yang terdapat dalam mouse.

Scanner


Scanner digunakan untuk melakukan proses scanning dari suatu gambar, dimana hasil dari proses ini akan disimpan pada komputer sehingga dapat diolah lebih lanjut sesuai dengan keinginan kita. Scanner ini sangat berguna dalam proses design yang memerlukan banyak gambar untuk kemudian diolah sesuai dengan kepentingan design.
 Kamera digital

Kamera digital adalah peranti yang menangkap gambar secara elektronis, dan menyimpannya dalam memori bukan di atas film.
Light pen

Light pen adalah pointer elektronik yang digunakan untuk modifikasi dan men-design gambar dengan screen (monitor).  
*OUTPUT
Beberapa contoh serta penjelasan Perlengkapan Output,sbb :
·                     Hard-copy device,yaitu alat yang digunakan untuk mencetak tulisan dan image pada media keras seperti kertas atau film. Merupakan alat keluaran yg digunakan untuk mencetak tulisan, grafik atau gambar pada media pencetak. Alat hard copy device yang umum dipergunakan adalah printer. Jenis-jenis printer meliputi dot matrix, inkjet printer dan laser. Selain itu juga dikenal Plotter, alat cetak yang mempunyai kemampuan mencetak grafik atau gambar dengan baik, biasanya menggunakan pen plotter.
·                     Soft-copy device,yaitu alat yang digunakan untuk menampilkan tulisan dan image pada media lunak yang berupa sinyal elektronik.
Contoh :
·                                             Printer : Output device yang berfungsi mencetak data (Dokumen, Picture, web page dll)

·                                             Monitor : Output device yang berfungsi menampilkan data-data dari CPU.

·                                             Projector : Sama halnya monitor, projector berfungsi menampilkan data-data dari CPU, badanya adalah ukuran keluaran projector jauh lebih besar dari monitor.

·                                             Speaker : Alat keluaran untuk device yang berupa suara.

PERANGKAT EKSTERNAL
  
            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 sistem komputer bila tidak adamonitor.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
Link digunakan untuk pertukaran kontrol, status, dan data antara modul I/O sering kali disebut sebagai perangkat peripheral, atau untuk mudahnya disebut peripheral.
Klasifikasi
Secara umum perangkat eksternal diklasifikasikan menjadi 3 katagori :
1. Human Readable
    yaitu perangkat yang berhubungan dengan manusia sebagai pengguna komputer.
    Cocok untuk berkomunikasi dengan pengguna komputer.
    Contohnya: monitor, keyboard, mouse, printer, joystick, disk drive.
2. Machine readable
    yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor
    dan tranduser untuk monitoring dan kontrol suatu peralatan atausistem.
    cocok untuk berkomunikasi dengan peralatan.
3. Communication
   yatu perangkat yang berhubungan dengan komunikasi jarak jauh.Misalnya: NIC dan
   modem. cocok untuk berkomunikasi dengan perangkat jarak jauh.
Interface ke modul I/O adalah dalam bentuk signal-signal control, status dan data.

MODUL-MODUL I/O




        Modul I/O adalah suatu komponen dalam sistem komputer yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU. Dalam mewujudkan hal ini, diperlukan antarmuka internal dengan komputer (CPU dan memori utama) dan antarmuka dengan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan.

Fungsi Modul I/O
·                     Control & Timing
Fungsi kontrol dan pewaktuan (control & timing) merupakan hal yang penting untuk
mensinkronkan kerja masing – masing komponen penyusun komputer. Dalam sekali waktu CPU berkomunikasi dengan satu atau lebih perangkat dengan pola tidak menentu dan kecepatan transfer komunikasi data yang beragam, baik dengan perangkat internal seperti register – register, memori utama, memori sekunder, perangkat peripheral. Proses tersebut bisa berjalan apabila ada fungsi  kontrol  dan  pewaktuan  yang  mengatur  sistem  secara  keseluruhan.
Contoh kontrol pemindahan data dari peripheral ke CPU melalui sebuah modul I/O dapat meliputi langkah-langkah penanganan I/O sbb :
1.     Permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O.
2.     Modul I/O memberi jawaban atas permintaan CPU.
3.     Apabila  perangkat  eksternal  telah  siap  untuk  transfer  data,  maka  CPU  akan mengirimkan perintah ke modul I/O.
4.     Modul I/O akan menerima paket data dengan panjang tertentu dari peripheral.
5.     Selanjutnya data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan   kecepatan transfer oleh modul I/O sehingga paket – paket data dapat diterima CPU dengan baik.
Transfer data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih.
·                     Komunikasi CPU
Adapun fungsi komunikasi antara CPU dan modul I/O meliputi proses – proses berikut :
1.     Command Decoding, yaitu modul I/O menerima perintah – perintah dari CPU yang dikirimkan sebagai sinyal bagi bus kontrol. Misalnya, sebuah modul I/O untuk disk dapat menerima perintah: Read sector, Scan record ID, Format disk.
2.     Data, pertukaran data antara CPU dan modul I/O melalui bus data.
3.     Status  Reporting,  yaitu  pelaporan  kondisi  status  modul  I/O  maupun  perangkat peripheral, umumnya berupa status kondisi Busy atau Ready. Juga status bermacam macam kondisi kesalahan (error).
4.     Address  Recognition,  bahwa  peralatan  atau  komponen  penyusun  komputer  dapat dihubungi atau dipanggil maka harus memiliki alamat yang unik, begitu pula pada perangkat peripheral, sehingga setiap modul I/O harus mengetahui alamat peripheral yang dikontrolnya.
·                      Komunikasi Perangkat (device communication)
Meliputi perintah, informasi status dan data.
·                     Data Buffering
Tujuan  utama  buffering  adalah  mendapatkan penyesuaian data sehubungan perbedaan laju transfer data dari perangkat peripheral dengan kecepatan pengolahan pada CPU. Umumnya laju transfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun media penyimpan.
·                     Deteksi Error
Apabila pada perangkat peripheral terdapat masalah sehingga proses tidak dapat dijalankan, maka modul I/O akan melaporkan kesalahan tersebut. Misal informasi kesalahan pada peripheral printer seperti: kertas tergulung, pinta habis, kertas habis, dan lain – lain. Teknik yang umum untuk deteksi kesalahan adalah penggunaan bit paritas.


I/O TERPROGRAM

            Pada I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat. Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan.
Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat klasifikasi perintah I/O, yaitu:
1. Perintah control.
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang
diperintahkan padanya.
2. Perintah test.
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan
peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap
digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi
kesalahannya.
3. Perintah read.
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer
internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data
maupun kecepatan transfernya.
4. Perintah write.
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari
bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.
Dalam teknik I/O terprogram, terdapat dua macam inplementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated I/O. Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory-mapped I/O adalah efisien dalam pemrograman, namun memakan banyak ruang memori alamat.
Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O.