Modul Input Output
Oleh : Agus Priyanto, M.Kom Oleh : Agus Priyanto, M.Kom
Tujuan Pembelajaran
Memahami komunikasi antar komponen dalam
komputer khususnya I/O
Memahami langkah Modul I/O dalam menerima
Memahami langkah Modul I/O dalam menerima
dan mengirim instruksi
Komunikasi Antar Komponen
Komputer
External Device
Untuk berkomunikasi (melakukan perpindahan
data) antara lingkungan luar komputer dengan
komputer itu sendiri, digunakan
external
device
device
External device yang terhubung ke sebuah
modul I/O disebut
periferal
• In computer hardware, a
peripheral device
is any device attached to a computer in order
to expand its functionality (basically input and
output devices together are known as
output devices together are known as
Kategori External Device
1. Human Readable
Untuk berkomunikasi dengan pengguna komputer
Contoh : monitor, printer, keyboard Contoh : monitor, printer, keyboard
2. Machine readable
Untuk berkomunikasi dengan sesama peralatan
3. Communication
Untuk berkomunikasi dengan device di tempat lain
Contoh : LAN card, modem Contoh : LAN card, modem
Tentang I/O
Input / Output
merupakan
komunikasi
dan
transfer
data antara periferal dengan CPU (dan
memory jika dengan DMA)
Banyak variasi periferal dengan metode
Banyak variasi periferal dengan metode
operasi yang bermacam-macam, diantaranya
• Kecepatan transfer data periferal kebanyakan lebih lambat, tetapi ada yang lebih cepat dari kecepatan memory dan
prosesor satu kecepatan bus saja tidak efisien
• Tiap periferal dapat memiliki format data dan panjang word
A measurement unit of a pack of
data sent at one time, in bits
E.g 16 bits, 32 bits, 64 bits and so
on…
Word ??
on…
Different for each bus system and
storage system
1
byte
= 8 bit
1
kilobyte
= 1.024
byte
1
megabyte
= 1.024
kilobyte
1
gigabyte
= 1.024
megabyte
Konversi Bit 1
gigabyte
= 1.024
megabyte
1
terabyte
= 1.024
gigabyte
1
petabyte
= 1.024
terabyte
Contoh Data Rate
Oleh karena itu dibutuhkan sebuah
modul
yang
bertugas sebagai :
1. Interface (penghubung/perantara) dari
periferal
ke
memory
dan
prosesor
melalui
periferal
ke
memory
dan
prosesor
melalui
system bus
2. Interface ke sesama
periferal
3. Penyelaras data
sebelum ditransfer melalui
system bus
Posisi Modul I/O
Kegunaan Modul I/O
1. Control dan Timing
Mensinkronisasikan kecepatan transfer dan
mengetahui status periferal
2. Komunikasi Periferal dengan Prosesor
Untuk mengirimkan data dan control
(perintah) dari prosesor ke periferal
3. Komunikasi antar periferal se-modul
4. Data Buffering
Penampung data sementara
Penampung data sementara
5. Deteksi Error
Yang terjadi pada periferal, dan
melaporkannya pada prosesor
Tiap periferal punya
status bit
yang
tercatat di dalam modul I/O yang
terhubung dengannya
Tipe status bit :
Status Bit
Tipe status bit :
Ready
: siap menerima instruksi
Wait
: sedang mengoperasikan
sebuah instruksi / sedang menunggu
hasil instruksi
Status bit
diupdate oleh Modul I/O yang
menangani periferal tersebut, dengan siklus :
Langkah operasi Modul I/O :
1. CPU
cek status
periferal pada modul I/O dengan
mengirimkan alamatnya
2. Jika status
ready
, CPU melakukan
request
untuk
operasi dengan mengirimkan
instruksi
yang
diinginkan
Detail Langkah Pengiriman Instruksi Modul I/O :
1. CPU mengirimkan alamat (address)
Untuk mengidentifikasi modul (dan device (periferal) jika ada >1 per modul)
2. CPU mengirimkan instruksi (command)
• Test - check status Ready, Running/Waiting atau Error • Read/Write Modul mentransfer data di buffer dari/ke
periferal
• Control - memberitahu modul apa yang mau dikerjakan oleh periferal Misal gerakkan head, putar disk
Kemampuan Lain Modul I/O
1. Menyembunyikan
properti-properti
periferal
terhadap CPU (tidak semua properti dapat
diketahui CPU)
2. Satu modul I/O mampu
mensupport
satu atau
lebih periferal
3. Mengontrol
fungsi periferal
sesuai perintah
CPU (tidak hanya mengirimkan data)
4. Menerapkan apa yang diinginkan sistem
4. Menerapkan apa yang diinginkan sistem
Skema Dasar Modul I/O
Register adalah memori sangat cepat
dengan ukuran sangat kecil yang tertanam pada beberapa komponen komputer. Ukurannya hanya beberapa bit saja, misal 128-bit. Digunakan untuk menyimpan instruksi, alamat dan tampungan
kalkulasi
Overview Register
Komponen komputer yang memiliki register di antaranya adalah CPU dan Modul I/O. Register dapat berfungsi sebagai memori buffer
(penampung sementara saat sinkronisasi) tetapi dapat saja ada buffer terpisah yang ukurannya lebih besar, tetapi lebih lambat
Teknik Pengendalian I/O
1. Programmed
2. Interrupt driven
1. Programmed I/O
CPU memiliki
kontrol langsung
terhadap
proses I/O
• Membaca status (ready, error dsb) • Membaca status (ready, error dsb)
• Memberi instruksi untuk menggerakkan periferal • Mentransfer data
CPU menunggu sampai modul I/O selesai
mengerjakan suatu operasi sebelum
Detail Proses :
1. CPU merequest untuk melakukan operasi I/O 2. Modul I/O melaksanakan operasi ke periferal
3. Modul I/O men-set bit status berisi hasil operasinya 3. Modul I/O men-set bit status berisi hasil operasinya 4. CPU mengecek status bits secara periodik (tiap
beberapa clock), kalau belum ada perubahan, tunggu Kalau ada, bereaksi
5. Berarti modul I/O tidak menginformasikan status secara langsung ke CPU
2. Interrupt Driven I/O
CPU tetap memiliki kontrol langsung seperti
pada Programmed I/O kecuali untuk
membaca status
membaca status
Modul I/O menginterrupt CPU ketika sudah
siap
atau terjadi perubahan
status
CPU
tidak
menunggu sampai sebuah operasi
selesai kerjakan
Setiap periferal atau komponen yang terhubung ke komputer, tidak bisa
mengirimkan data apapun atas kehendak sendiri
Hal ini menyulitkan proses I/O karena semua harus dipantau oleh CPU lewat modul I/O
Interrupt adalah sinyal yang dikirimkan
Overview Interrupt
Interrupt adalah sinyal yang dikirimkan oleh sebuah modul I/O untuk meminta perhatian CPU, supaya CPU membaca status sebuah periferal
Interrupt merupakan satu-satunya sinyal yang dapat diterima CPU tanpa
Detail Proses :
1. CPU merequest untuk melakukan operasi I/O 2. Modul I/O melaksanakan operasi ke periferal
3. Sementara itu CPU dapat melakukan kegiatan yang 3. Sementara itu CPU dapat melakukan kegiatan yang
lain (melaksanakan proses berikutnya) 4. Modul I/O menginterrupt CPU untuk
memberitahukan status hasil operasinya 5. CPU bereaksi atas status tersebut
3. Direct Memory Access (DMA)
Interrupt driven dan programmed I/O membutuhkan intervensi langsung CPU
Transfer rate menjadi terbatas, dan CPU menjadi
terikat pada modul I/O
terikat pada modul I/O
DMA dibuat untuk mengambil alih pengaturan I/O dari CPU
DMA Controller dapat merupakan controller terpisah dari Modul I/O (bisa berupa chip
terpisah pada motherboard), dan belum tentu terhubung langsung ke periferal
Detail Proses :
1. CPU memberi tahu DMA controller: • Apa instruksinya
• Alamat periferalnya
• Alamat awal blok memory, tempat data • Alamat awal blok memory, tempat data • Jumlah data yang akan ditransfer
2. CPU melanjutkan pekerjaan lainnya
3. DMA controller melaksanakan operasi
4. DMA controller mengirim interrupt ke CPU saat seluruh operasi selesai
DMA Transfer = Cycle Stealing
1. Dalam menjalankan pelimpahan tugas dari CPU, DMA diberi hak khusus sebagai satu-satunya
komponen yang dapat mengakses memori secara langsung tanpa melewati CPU
langsung tanpa melewati CPU
2. Untuk itu saat bertransfer dengan memori, DMA controller mengambil alih siklus bus kemudian
mentransfer satu word data, sehingga CPU
di-suspend sesaat sebelum mengakses bus, ketika bus dipakai DMA controller
3. Suspend memperlambat CPU tetapi tidak selambat
jika CPU sendiri yang melakukan transfer, karena CPU tidak berganti konteks (menerima interrupt atau membaca status dsb.)
Posisi Modul
Konfigurasi DMA -1
Single Bus, DMA controller terpisah dari Modul I/O Sekali transfer menggunakan bus dua kali Modul
I/O ke DMA kemudian DMA ke memory CPU disuspend dua kali
Ketika DMA controller menggunakan haknya untuk mengakses memori secara langsung, ia akan menggunakan seluruh atau sebagian dari arsitektur bus sistem guna menjangkau memori
Overview CPU Suspend
Saat itu terjadi, maka DMA akan
mengirimkan sinyal untuk memberi tahu bahwa CPU tidak boleh menggunakan
giliran bus, sehingga CPU harus menahan diri untuk tidak mengirimkan
instruksi/data lewat bus (memakai satu siklus bus)
Konfigurasi DMA -2
Single Bus, DMA controller terintegrasi dengan Single Bus, DMA controller terintegrasi dengan
Modul I/O
Controller dapat mensupport >1 periferal
Sekali transfer menggunakan bus satu kali DMA controller ke memory
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