INPUT/OUTPUT
Fungsi :
Memindahkan informasi antara CPU atau memori
utama dengan
dunia luar
I/O terdiri :
- Piranti l/O
(peripheral)
- Pengendali I/O
(device controller)
- Perangkat
lunak
Proses transfer
informasi antara CPU dengan sebuah
peripheral :
- Memilih I/O
dan mengujinya.
-
Menginisialisasi transfer dan mengkoordinasikan
pengaturan waktu
operasi I/O.
- Mentransfer
informasi.
- Menghentikan
proses transfer.
Klasifikasi
piranti I/O terdiri 3 kelompok:
- Kelompok yang
memasukkan informasi (input), contoh :
keyboard, ADC,
scanner
- Kelompok yang
rnenampilkan informasi (output),
contoh : VDU
(monitor), printer
- Kelompok yang
melayani input dan output, contoh :
Floppy disk
Pengaksesan I/O
terdiri dari 2 cara :
1. Memory mapped
I/O
Piranti I/O
dihubungkan sebagai lokasi memori virtual
dimana port I/O
tergantung memori utama.
Karakteristik:
- Port I/O
dihubungkan ke bus alamat.
- Piranti input
sebagai bagian memori yang
memberikan data
ke bus data. Piranti output sebagai
bagian memori
yang memiliki data yang tersimpan di
dalamnya.
- Port I/O
menempati lokasi tertentu pada ruang alamat
dan diakses
seolah-olah adalah lokasi memori.
2. I/O mapped
I/O (I/O isolated)
Piranti I/O
dihubungkan sebagai lokasi terpisah dengan
lokasi memori,
dimana port I/O tidak tergantung pada
memori utama.
Karakteristik:
- Port I/O tidak
tergantung memori utama.
- Transfer
informasi dilakukan di bawah kendali sinyal
kontrol yang
menggunakan instruksi INPUT dan
OUTPUT.
- Operasi I/O
tergantung sinyal kendali dari CPU.
- lnstruksi I/O
mengaktifkan baris kendali read/write
pada port I/O,
sedangkan instruksi memori akan
mengaktifkan
baris kendali read/write pada memori.
- Ruang memori
dan ruang alamat I/O menyatu,
sehingga dapat
memiliki alamat yang sama.
Kelebihan dan
kekurangan:
- I/O mapped I/O
Iebih cepat dan efisien, karena lokasi
I/O terpisah
dengan lokasi memori.
- I/O mapped I/O
mempunyai keterbatasan jumlah
instruksi yang
dapat digunakan untuk operasi I/O.
Operasi I/O
terbagi menjadi 3 metode :
1. I/O
terprogram
Metode di mana
CPU mengendalikan operasi I/O secara
keseluruhan
dengan menjalankan serangkaian instruksi
I/O dengan
sebuah program.
Karakteristik:
- Program
tersebut digunakan untuk memulai,
mengarahkan dan
menghentikan operasi-operasi I/O.
- Membutuhkan
sejumlah perangkat keras (register)
yaitu:
• Register
status, berisi status piranti I/O dan data
yang akan
dikirimkan.
• Register
buffer, menyimpan data sementara
sampai CPU siap
menerimanya
• Pointer
buffer, menunjuk ke lokasi memori di mana
sebuah karakter
harus ditulis atau dan mana
karakter
tersebut harus dibaca.
• Counter data,
tempat penyimpanan jumlah karakter
dan akan
berkurang nilainya jika karakter
ditransfer.
- Membutuhan
waktu proses yang lama dan tidak
efesien dalarn
pemanfaatan CPU.
2. I/O interupsi
Metode di mana
CPU akan bereaksi ketika suatu piranti
mengeluarkan
permintaan untuk pelayanan.
Karakteristik:
- Lebih efisien
dalam pemanfaatan CPU, karena tidak
harus menguji
status dari piranti.
- Interupsi
dapat berasal dari piranti I/O, interupsi
perangkat keras
misalnya : timer, memori, power
supply, dan
Interupsi perangkat lunak misalnya :
overflow,
opcode/data yang ilegal, pembagian
dengan nol.
Ada 2 jenis
interupsi:
1. lnterupsi
maskable
Interupsi yang
dapat didisable (dimatikan) untuk
sementara dengan
sebuah instruksi disable interupsi
khusus.
2. Interupsi
nonmaskable
Interupsi yang
tidak dapat didisable dengan instruksi
perangkat lunak.
Dalam sistem
komputer terdapat lebih dari satu piranti
yang memerlukan
pelayanan interupsi, dapat digunakan
metode:
- Polling/polled
interupt
Berdasarkan
urutan prioritas yang telah ditentukan
sebelum piranti
memerlukan interupsi.
Misal: piranti A
dan B mempunyai urutan prioritas A
lebih Iebih dulu
dari B, maka jika A dan B secara
bersamaan
memerlukan pelayanan interupsi, maka
piranti A akan
didahulukan.
- Vector
Interupt
Peralatan yang
berinterupsi diidentifikasikan secara
Iangsung dan
dihubungkan routine pelayanan vector
interupt.
INTR = Sinyal
yang dikeluarkan oleh peralatan.
INTA = Sinyal
kendali yang digunakan CPU untuk
menyiapkan
pelayanan interupt
Cara yang biasa
digunakan dengan metode daisy chain
dan encoder
prioritas
3. Direct Memory
Access (DMA)
Metode transfer
data secara langsung antara memori
dengan piranti
tanpa pengawasan dan pengendalian CPU.
• Skema transfer
blok DMA dual port
CPU dan DMA
controller mengakses memori utama
melalui MAR dan
MBR dengan menggunakan
sebuah memori
utama dual port (2 port).
Port I ---->
melayani CPU
Port II ---->
melayani DMA controller
• Skema transfer
blok DMA cycle stealing (pencurian
siklus)
Hanya memerlukan
sebuah memori port tunggal di
mana CPU dan
piranti I/O beradu cepat pada basis
asinkron,
prioritas utama akan diberikan pada piranti
I/O.
Interfacing
Adalah peralatan
yang digunakan untuk menghubungkan
suatu
piranti dengan CPU melalui bus.