banner

CEX.io

orkom

Sistem komputer
Tiga komponen utama :
CPU,
Memori (primer dan sekunder)
Peralatan masukan/keluaran (I/O devices) seperti printer, monitor, keyboard, mouse,dan modem

Latar Belakang I/O
Input / Output: bagaimana menangani komunikasi dan transfer data antara periferal dengan CPU dan memory
Periferal? Apakah itu periferal?
In computer hardware, a per ipheral device is any device attached to a computer in order to expand its functionality (basically input and output devices together are known as peripherals).

Latar Belakang I/O
Banyak variasi periferal dengan metode operasi yang bermacam-macam, diantaranya:
Kecepatan transfer data antar periferal tidak sama, ada yang cepat, ada yang lambat
satu kecepatan bus saja tidak efisien.
Tiap periferal kadang memiliki standar format data dan panjang word masing-masing
Perangkat input mungkin lambat dan harus memiliki cara untuk memberitahu komputer apabila siap memberikan data.
Perangkat output harus memiliki cara untuk menolak data berikutnya apabila belum siap.

Mengapa dibutuhkan I/O?
Oleh karena itu dibutuhkan modul I/O yang bertugas sebagai:
Interface (penghubung/perantara) ke memory dan prosesor Interface ke sesama periferal
Bertugas menyelaraskan data sebelum ditransfer melalui system bus

Modul I/O
Merupakan peralatan antarmuka
(interface) bagi sistem bus atau
switch sentral dan mengontrol satu
atau lebih perangkat peripheral.
Tidak hanya sekedar modul
penghubung, tetapi sebuah piranti
yang berisi logika dalam melakukan
fungsi komunikasi antara peripheral
dan bus komputer

Kategori
User inter face devices.
Perangkat input mendeteksi adanya perubahan
pada lingkungan
Perangkat output memberi perubahan pada
lingkungan.
Mass storage devices.
Menyimpan data dalam kuantitas yang besar
(disks).
Gatew ays and netw orks.
Komputer berkomunikasi satu sama lain.

Perbedaan seputar kelas-kelas I/O
Complexity of cont rol: Sebuah printer membutuhkan
antar muka kontrol yang relatif sederhana. Sebuah disk
jauh lebih kompleks.
Unit of transfer: Data mungkin dikirimkan sebagai
suatu aliran byte atau karakter atau dikirimkan dalam
blok yang berukuran besar.
Data representation: Perangkat yang berbeda
mungkin menggunakan skema pengkodean data (dataencoding)
yang berbeda, termasuk di dalamnya
perbedaan dalam kode karakter dan parity yang
digunakan.
Error conditions: Sifat dari error, bagaimana error
tersebut dilaporkan, konsekuensi dari error, dan respons
yang diberikan berbeda dari satu perangkat dengan
perangkat yang lain.



Fungsi modul I/O
Pengendali & pengaturan waktu
(control & timing).
Komunikasi dengan CPU.
Komunikasi dengan perangkat.
Penyimpanan data sementara (data
buffering).
Pendeteksi kesalahan.

Control & timing input data
CPU meminta modul memeriksa
status perangkat.
Bila perangkat siap mengirim, CPU
mengirim perintah pemindahan.
Modul menerima data dari perangkat.
Data dipindahkan dari modul ke CPU.

Komunikasi dengan CPU
Command decoding, signal perintah
dari CPU ke control bus.
Pertukaran data antara CPU dengan
modul melalui data bus.
Status reporting, CPU perlu status
modul [busy atau ready].
Address recognition, modul I/O perlu
tahu address unik setiap periferal.

Komunikasi dengan perangkat
Perintah dari CPU, status, dan data.

Kemampuan Lain Modul I/O
Menyembunyikan properti-properti periferal
terhadap CPU (tidak semua properti dapat
diketahui CPU)
Satu modul I/O mampu mensupport satu
atau lebih periferal
Mengontrol fungsi periferal sesuai perintah
CPU (tidak hanya mengirimkan data)
Menerapkan apa yang diinginkan sistem
operasi terhadap periferal
mis. Unix menganggap semuanya sbg file

Cara Kerja Modul I/O (misal: baca)
CPU meminta status periferal pada modul
I/O
Modul I/O cek ke periferal dan
mengirimkan statusnya (dalam bentuk
status bit)
Jika status ready, CPU melakukan request
untuk transfer data
Modul I/O menarik data dari periferal
Modul I/O menyelaraskan data seperlunya
Modul I/O mentransfer data ke CPU lewat
bus

Status Bits
Ready: periferal siap untuk digunakan
Wait: periferal sedang bekerja
Error: perintah yang diberikan gagal
dikerjakan.

Teknik Pengaturan Input/Output
Programmed (Teknik I/O
Terprogram)
Interrupt-driven
Direct memory access (DMA)
IOP/C

Teknik I/O Terprogram
Teknik
CPU mengontrol I/O [status, perintah
R/W, transfer data].
CPU menunggu modul I/O aktif.
Modul I/O beroperasi, menetapkan
status serta tidak menginterupsi CPU.
CPU memeriksa status periodik, sambil
menunggu atau pergi dan kembali
nanti .

Teknik I/O Terprogram
Perintah
Control
Status condition test
Read [data dari periferal]
Write [data transmisi ke periferal]

Teknik I/O Terprogram
Pengadresan perangkat IO
(CPU viewpoint). Data ditransfer seperti
akses memori
Tiap perangkat mendapat unique
identifier.
Perintah CPU berisi identifier (adres).

Teknik I/O - interrupt-driven
Dikendalikan interupsi
CPU mengirim perintah I/O ke modul,
kemudian mengerjakan proses lainnya.
Modul I/O akan menginterupsi CPU
minta layanan bila perintah selesai
dikerjakan.
CPU melayani interupsi dan setelah
selesai melanjutkan kembali proses yang
sedang dikerjakan sebelum diinterupsi.

Teknik I/O - interrupt-driven
CPU view-point
Mengirimkan perintah baca/tulis dan
mengerjakan proses lain.
Memeriksa interupsi pada akhir tiap
instruction cycle.
Jika diinterupsi akan melakukan save
context (registers)dan process interrupt
(Fetch data & store).

Teknik I/O - interrupt-driven
Masalah Desain:
Bagaimana mengidentifikasi modul
mengirim interupsi ?
Bagaimana menangani multiple
interrupts ?

Teknik I/O - interrupt-driven
Identifikasi interupsi modul dengan cara:
Satu saluran/modul.
Software poll, CPU memeriksa modul bergiliran.
Daisy Chain / Hardware poll
Interrupt Acknowledge dikirimkan pada chain.
Module yang melakukan interupsi mengirimkan
vector pada bus.
CPU menggunakan vector to untuk
mengidentifikasi handler routine.

Teknik I/O - DMA
Interrupt-driven & programmed I/O
membutuhkan intervensi langsung
CPU, transfer rate terbatas dan CPU
menjadi terikat pada modul I/O.

Teknik I/O - DMA
Modul tambahan (HW) pada bus.
DMA controller mengambil alih peran CPU.
DMA Controller berbentuk sebuah hardware
tambahan pada bus, tapi belum tentu
terhubung langsung ke periferal
DMA (bus mastering) ~ teknik
implementasi beberapa komponen untuk
transfer data langsung ke dan dari memori
tanpa lewat CPU.
DMA mengurangi CPU overhead karena
mekanisme transfer data tidak butuh
pengawasan CPU.

Teknik I/O - DMA
Cara Kerja standar
CPU memerintahkan DMA controller untuk
Akan melakukan apa? (Read/Write?)
Memeriksa addres perangkat.
Mencari addres dan mengambil data untuk
ditransfer.
CPU mengerjakan proses-proses lain.
DMA controller melakukan operasi transfer data.
DMA controller mengirimkan interupsi ke CPU
jika selesai.

Apa yang dilakukan DMA?
DMA Transfer : Cycle Stealing
DMA controller mengambil alih siklus bus
Kemudian mentransfer satu word data
CPU disuspend sesaat sebelum mengakses
bus, ketika bus dipakai DMA controller
Memperlambat CPU tetapi tidak selambat
jika CPU sendiri yang melakukan transfer
Karena: CPU tidak berganti konteks
(menerima interrupt atau membaca status
dsb.)

Teknik I/O IOP/C
Evolusi fungsi I/O
Semula CPU langsung mengendalikan periferal.
Kemudian ada penambahan modul I/O
terprogram, sebagai pengendali.
Selanjutnya penambahan modul I/O interrupt
driven, sebagai pengendali.
Modul I/O akses langsung ke memori melalui
DMA.
Kemampuan modul I/O ditingkatkan jadi
prosesor, dan tidak tergantung CPU. Modul I/O
memiliki memori lokal.

Konfigurasi DMA (1)
Single Bus, DMA controller terpisah
dariModul I/O
Sekali transfer menggunakan bus dua kali
Modul I/O ke DMA kemudian DMA ke
memory
CPU disuspend dua kali

Konfigurasi DMA (2)
Single Bus, DMA controller terintegrasi
dengan Modul I/O
Controller dapat mensupport >1 periferal
Sekali transfer menggunakan bus satu kali
DMA controller ke memory
CPU disuspend satu kali

Konfigurasi DMA (3)
Memiliki I/O Bus tersendiri
Bus mensupport semua periferal yang bisa
DMA
Sekali transfer menggunakan bus satu kali
DMA controller ke memory
CPU disuspend satu kali

Teknik I/O IOP/C
Evolusi fungsi I/O
Semula CPU langsung mengendalikan periferal.
Kemudian ada penambahan modul I/O
terprogram, sebagai pengendali.
Selanjutnya penambahan modul I/O interrupt
driven, sebagai pengendali.
Modul I/O akses langsung ke memori melalui
DMA.
Kemampuan modul I/O ditingkatkan jadi
prosesor, dan tidak tergantung CPU. Modul I/O
memiliki memori lokal.

Teknik I/O IOP/C
IO Processor
Adalah prosesor yang terpisah dari CPU dan
dirancang untuk menangani proses input/output
Sinkron dengan clock sistem dan prosesor utama.
Akan menerima kontrol awal dari prosesor utama
pada saat instruksi input-output dibaca dari
memori. Pada saat I/O prosesor mengendalikan
proses input output, prosesor utama tetap pada
kondisi two-state waiting loop sampai instruksi
input-output dikerjakan di mana kemudian kontrol
dikembalikan ke prosesor utama.

Apa saja perintah I/O?
CPU memberikan alamat (address)
Untuk mengidentifikasi modul (dan device
(periferal) jika ada >1 per modul)
CPU memberikan perintah (command)
Control - memberitahu modul apa yang mau
dikerjakan oleh periferal
Misal gerakkan head, putar disk
Test - check status
Misal apakah periferal dalam kondisi power on,
dan bagaimana statusnya
Read/Write
Modul mentransfer data di buffer dari/ke periferal