Rabu, 02 Juli 2014

Unit Masukan dan Keluaran

Sistem  komputer  memiliki  tiga  komponen utama, yaitu :  CPU, memori  (primer  dan
sekunder), dan peralatan masukan/keluaran (I/O  devices)  seperti  printer, monitor, keyboard,
mouse, dan modem. Beberapa bab sebelumnya telah membahas CPU dan memori, sekarang akan kita jelaskan tentang peralatan atau modul I/O pada bab ini. 
            Modul I/O merupakan peralatan antarmuka (interface) bagi sistem bus atau switch sentral dan mengontrol  satu atau lebih perangkat  peripheral. Modul  I/O  tidak  hanya  sekedar  modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus komputer. 
            
Ada  beberapa  alasan kenapa  piranti  – piranti  tidak  langsung  dihubungkan dengan bus sistem komputer, yaitu :
•  Bervariasinya  metode  operasi  piranti  peripheral, sehingga  tidak praktis apabila sistem
komputer herus menangani berbagai macam sisem operasi piranti peripheral tersebut. 
• Kecepatan transfer data piranti peripheral umumnya lebih lambat dari pada laju transfer data pada CPU maupun memori. 
• Format data dan panjang data pada piranti peripheral seringkali berbeda dengan CPU,
sehingga perlu modul untuk menselaraskannya. 
Dari beberapa alasan diatas, modul I/O memiliki dua buah fungsi utama, yaitu : 
1. Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem. 
2. Sebagai  piranti  antarmuka  dengan peralatan peripheral lainnya dengan menggunakan
link data tertentu. 


6.1 Sistem Masukan & Keluaran Komputer
Bagaimana  modul  I/O  dapat  menjalankan tugasnya, yaitu menjembatani  CPU  dan
memori  dengan dunia  luar  merupakan hal  yang  terpenting  untuk  kita  ketahui. Inti  mempelajari
sistem I/O suatu komputer adalah mengetahui fungsi dan struktur modul I/O. Perhatikan gambar 6.1 yang menyajikan model generik modul I/O.  



6.1.1 Fungsi 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 dalam menjalankan tugas bagi modul I/O dapat dibagi menjadi beberapa katagori, yaitu:
• Kontrol dan pewaktuan. 
• Komunikasi CPU. 
• Komunikasi perangkat eksternal. 
• Pem-buffer-an data. 
• Deteksi kesalahan. 
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 berikut ini : 
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. Adapun fungsi komunikasi antara CPU dan modul I/O meliputi proses – proses berikut :

•  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. 
Data, pertukaran data antara CPU dan modul I/O melalui bus data. 
•   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). 
•  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. 
Pada  sisi  modul  I/O  ke  perangkat  peripheral  juga  terdapat  komunikasi  yang  meliputi
komunikasi data, kontrol maupun status. Perhatikan gambar 6.2 berikut.  

             
             Fungsi  selanjutnya  adalah 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  lebihlambat dari kecepatan CPU maupun media penyimpan. 
             Fungsi  terakhir  adalah deteksi  kesalahan. 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.  

6.1.2 Struktur Modul I/O
Terdapat berbagai macam modul I/O seiring perkembangan komputer itu sendiri,
contoh yang  sederhana  dan fleksibel  adalah Intel  8255A  yang  sering  disebut  PPI
(Programmable  Peripheral  Interface). Bagaimanapun kompleksitas  suatu modul  I/O,
terdapat kemiripan struktur, seperti terlihat pada gambar 6.3.



Antarmuka modul I/O ke CPU melalui bus sistem komputer terdapat tiga saluran, yaitu saluran
data, saluran alamat  dan saluran kontrol. Bagian terpenting  adalah blok  logika  I/O  yang
berhubungan dengan semua  peralatan antarmuka  peripheral, terdapat  fungsi  pengaturan dan
switching pada blok ini. 

6.2.1 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. 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. 


6.2.2 Interrupt – Driven I/O
            Teknik  interrupt  – driven I/O  memungkinkan proses  tidak  membuang  – buang  waktu. Prosesnya  adalah CPU  mengeluarkan perintah I/O  pada  modul  I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O telah selesai menjalankan instruksi yang diberikan padanya akan melakukan interupsi pada CPU bahwa tugasnya telah selesai. 
             Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari  memori  maupun pelaksanaan isi  perintah tersebut. Terdapat  selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU. 
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal
read. Kemudian modul  I/O  melaksanakan perintah pembacaan dari  peripheral  dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui  saluran kontrol. Kemudian modul  menunggu datanya  diminta  CPU. Saat  permintaanterjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya. Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut :
1. Perangkat I/O akan mengirimkan sinyal interupsi ke CPU. 
2. CPU menyelesaikan operasi yang sedang dijalankannya kemudian merespon interupsi. 
3. CPU  memeriksa  interupsi  tersebut, kalau valid maka  CPU  akan mengirimkan sinyal
acknowledgment ke perangkat I/O untuk menghentikan interupsinya. 
4. CPU  mempersiapkan pengontrolan transfer  ke  routine  interupsi. Hal  yang  dilakukan  adalahmenyimpan informasi yang diperlukan untuk melanjutkan operasi yang tadi dijalankan sebelum adanya interupsi. Informasi yang diperlukan berupa:
a. Status prosesor, berisi register yang dipanggil PSW (program status word). 
b. Lokasi intruksi berikutnya yang akan dieksekusi. 
    Informasi tersebut kemudian disimpan dalam stack pengontrol sistem. 
5. Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke stack
pengontrol  bersama  informasi  PSW. Selanjutnya  mempersiapkan PC  untuk  penanganan
interupsi. 
6. Selanjutnya CPU memproses interupsi sempai selesai. 
7. Apabila  pengolahan interupsi  selasai, CPU  akan memanggil  kembali  informasi  yang  telah
disimpan pada stack pengontrol untuk meneruskan operasi sebelum interupsi. 
    Terdapat  bermacam  teknik  yang  digunakan CPU  dalam  menangani  program  interupsi ini, diantaranya :
Multiple Interrupt Lines
Software poll
Daisy Chain
Arbitrasi bus
Teknik  yang  paling  sederhana adalah menggunakan saluran interupsi berjumlah banyak
(Multiple  Interrupt  Lines)  antara  CPU  dan modul  – modul  I/O. Namun tidak  praktis  untuk
menggunakan sejumlah saluran bus  atau pin CPU  ke  seluruh saluran interupsi  modul  – modul
I/O. 
Alternatif  lainnya  adalah menggunakan    software  poll. Prosesnya, apabila  CPU
mengetahui adanya sebuah interupsi, maka CPU akan menuju ke routine layanan interupsi yang
tugasnya melakukan poll seluruh modul I/O untuk menentukan modul yang melakukan interupsi.
Kerugian software  poll  adalah memerlukan waktu yang  lama  karena  harus  mengidentifikasi
seluruh modul untuk mengetahui modul I/O yang melakukan interupsi. 
           Teknik yang lebih efisien adalah daisy chain, yang menggunakan hardware poll. Seluruh modul  I/O  tersambung  dalam  saluran interupsi  CPU  secara  melingkar  (chain). Apabila  ada permintaan interupsi, maka  CPU  akan menjalankan sinyal  acknowledge  yang  berjalan pada saluran interupsi sampai menjumpai modul I/O yang mengirimkan interupsi. 
Teknik  berikutnya  adalah arbitrasi  bus. Dalam  metode  ini, pertama  – tama  modul  I/O
memperoleh kontrol bus sebelum modul ini menggunakan saluran permintaan interupsi. Dengandemikian hanya akan terdapat sebuah modul I/O yang dapat melakukan interupsi. 

Pengontrol Interrupt Intel 8259A
             Intel  mengeluarkan chips  8259A  yang  dikonfigurasikan sebagai  interrupt  arbiter  pada mikroprosesor Intel 8086. Intel 8259A melakukan manajemen interupsi modul - modul I/O yang tersambung  padanya. Chips  ini  dapat  diprogram  untuk  menentukan prioritas  modul  I/O  yang lebih dulu ditangani  CPU  apabila  ada  permintaan interupsi  yang  bersamaan. Gambar  6.4 menggambarkan pemakaian pengontrol  interupsi  8259A. Berikut  mode  – mode  interupsi  yang mungkin terjadi :
  • Fully Nested: permintaan interupsi dengan prioritas mulai 0 (IR0) hingga 7(IR7). 
  •  Rotating:  bila  sebuah modul  telah dilayani  interupsinya  akan menempati  prioritas terendah. 
  •  Special Mask: prioritas diprogram untuk modul I/O tertentu secara spesial. 


Programmable Peripheral Interface Intel 8255A
           Contoh modul  I/O  yang  menggunakan I/O  terprogram  dan interrupt  driven I/O  adalah Intel  8255A  Programmable  Peripheral  Interface  (PPI). Intel  8255A  dirancang  untuk  keperluan
mikroprosesor 8086. Gambar 6.5 menunjukkan blok diagram Intel 8255A dan pin layout-nya.



           Bagian kanan dari  blok  diagram  Intel  8255A  adalah 24 saluran antarmuka  luar, terdiri atas 8 bit port A, 8 bit port B, 4 bit port CA dan 4 bit port CB. Saluran tersebut dapat diprogram dari  mikroprosesor  8086 dengan menggunakan register  kontrol  untuk  menentukan bermacam  – macam mode operasi dan konfigurasinya. Bagian kiri blok diagram merupakan interface internal dengan mikroprosesor 8086. Saluran ini terdiri atas 8 bus data dua arah (D0 – D7), bus alamat, dan bus kontrol yang terdiri atas saluran CHIP SELECT, READ, WRITE, dan RESET. 
Pengaturan mode  operasi  pada  register  kontrol  dilakukan oleh mikroprosesor., Pada
Mode 0, ketiga port berfungsi sebagai tiga port I/O 8 bit. Pada mode lain dapat port A dan port B sebagai port I/O 8 bit, sedangkan port C sebagai pengontrol saluran port A dan B. 
              PPI  Intel  8255A  dapat  diprogram  untuk  mengontrol  berbagai  peripheral  sederhana. Gambar 6.6 memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan display.  



6.2.3 Direct Memory Access (DMA)
Teknik  yang  dijelaskan sebelumnya  yaitu I/O  terprogram  dan Interrupt-Driven I/O
memiliki  kelemahan, yaitu proses  yang  terjadi  pada  modul  I/O  masih melibatkan CPU  secara
langsung. Hal ini berimplikasi pada :
• Kelajuan transfer I/O yang tergantung pada kecepatan operasi CPU. 
• Kerja CPU terganggu karena adanya interupsi secara langsung. 
Bertolak dari kelemahan di atas, apalagi untuk menangani transfer data bervolume besar
dikembangkan teknik yang lebih baik, dikenal dengan Direct Memory Access (DMA). 
           Prinsip kerja  DMA  adalah CPU  akan mendelegasikan kerja  I/O  kepada  DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses  saja. Dengan demikian CPU  dapat  menjalankan proses  lainnya  tanpa  banyak  terganggu dengan interupsi. Blok diagram modul DMA terlihat pada gambar 6.7 berikut :


Dalam  melaksanakan transfer  data  secara  mandiri, DMA  memerlukan pengambilalihan
kontrol bus dari CPU. Untuk itu DMA akan menggunakan bus bila CPU tidak menggunakannya
atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus. Teknik terakhir lebih
umum digunakan, sering disebut cycle-stealing, karena modul DMA mengambil alih siklus bus.
Penghentian sementara  penggunaan bus  bukanlah bentuk  interupsi, melainkan hanyalah
penghentian proses sesaat yang berimplikasi hanya pada kelambatan eksekusi CPU saja. Terdapat
tiga buah konfigurasi modul DMA seperti yang terlihat pada gambar 6.8. 


6.3 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 ada monitor. Keyboard dan monitor tergolang dalam perangkat eksternal komputer. 
Perangkat eksternal atau lebih umum disebut peripheral  tersambung dalam sistem CPU
melalui  perangat  pengendalinya, yaitu modul  I/O  seperti  telah dijelaskan sebelumnya. Lihat
kembali gambar 6.2. Secara umum perangkat eksternal diklasifikasikan menjadi 3 katagori:
•   Human Readable, yaitu perangkat  yang  berhubungan dengan manusia  sebagai
pengguna  komputer. Contohnya:  monitor, keyboard, mouse, printer, joystick, disk
drive. 
•  Machine  readable, yaitu perangkat  yang  berhubungan dengan peralatan. Biasanya
berupa modul sensor dan tranduser untuk monitoring dan kontrol suatu peralatan atau
sistem. 
•  Communication, yatu perangkat  yang  berhubungan dengan komunikasi  jarak  jauh.
Misalnya: NIC dan modem. 
Pengklasifikasian juga bisa berdasarkan arah datanya, yaitu perangkat output, perangkat
input  dan kombinasi  output-input. Contoh perangkat  output:  monitor, proyektor  dan printer.
Perangkat input misalnya: keyboard, mouse, joystick, scanner, mark reader, bar code reader. 







Tidak ada komentar:

Posting Komentar