Kuliah 7
7
Input Output
Organisasi dan Arsitektur Komputer
Program Studi Teknik Informatika
Fakultas Teknik
Universitas Mataram
Apa yang dipelajari?
1. Definisi Modul I/O
2. Jenis-Jenis Device Eksternal (Peripheral)
3. Skema Perangkat Peripheral
4. Fungsi Modul I/O
5. Struktur Modul I/O
6. Teknik Input Output
7. Mapping I/O
2
Struktur Komputer
Peripherals Computer
Central Main
Processing Memory
Unit
Computer
Systems
Interconnection
Input
Output
Communication
lines
3
Struktur Komputer
Empat Komponen Utama :
1. CPU
2. Memori
3. Sistem Bus
4. Input/Output (I/O)
4
Pendahuluan
• Modul input output (I/O) merupakan elemen penting
dari sistem komputer disamping CPU dan memori.
• 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.
5
Pendahuluan
• Perangkat eksternal dihubungkan dengan
komputer oleh suatu link dengan modul I/O.
• Link digunakan untuk pertukaran kontrol, status,
dan data antara modul I/O dengan perangkat
eksternal.
• Perangkat eksternal yang dihubungkan modul I/O
sering kali disebut sebagai peripheral.
6
Peralatan Input Output
• Keyboard
• Mouse
• Monitor
• Printer
• Scanner
• Speaker
• Modem
• Harddisk
• dll
7
Apa itu Modul I/O?
• Merupakan peralatan antarmuka (interface) bagi
sistem bus dan mengontrol satu atau lebih
perangkat peripheral.
• Merupakan sebuah piranti yang berisi logika
dalam melakukan fungsi komunikasi antara
peripheral dan bus komputer.
8
Beberapa alasan mengapa peripheral tidak langsung
dihubungkan dengan bus sistem komputer
1. Bervariasinya metode operasi piranti peripheral
Tidak praktis apabila sistem komputer harus menangani
berbagai macam sistem operasi piranti peripheral tersebut.
2. Lambatnya kecepatan transfer data piranti peripheral
Umumnya kecepatan piranti peripheral lebih lambat dari pada
laju transfer data pada CPU maupun memori.
3. Format data dan panjang data yang berbeda
Format data dan panjang data pada piranti peripheral
seringkali berbeda dengan CPU, sehingga perlu modul untuk
menselaraskannya.
9
Data Rate Beberapa Device
10
Model Umum dari Suatu Modul I/O
11
Modul I/O
12
3 Kategori perangkat eksternal
(Peripheral)
• Human readable sarana komunikasi manusia dengan mesin
(komputer)
– Monitor, printer, keyboard
• Machine readable sarana komunikasi antara komputer dengan
device lain
– Harddisk, pita magnetik, sensor
• Communication sarana komunikasi komputer dengan komputer
lain (jarak jauh)
– Modem
– Network Interface Card (NIC)
13
Skema Suatu Perangkat Peripheral
14
Skema Suatu Perangkat Peripheral
• Sinyal kontrol:
– Menentukan apa yang harus dilakukan oleh device
• Misal: INPUT atau READ untuk menerima/membaca data
dan OUTPUT atau WRITE untuk mengirimkan data ke device
lain.
• Sinyal status:
– Untuk mengirimkan status dari device (ready atau
error).
15
Skema Suatu Perangkat Peripheral
• Jalur data:
– Saluran untuk mengirimkan/menerima deretan bit-bit ke/dari
modul I/O
• Control logic:
– Menentukan aktifitas dan status device eksternal
• Buffer:
– Untuk menampung data dari/ke modul I/O sementara waktu,
biasanya berukuran 8 hingga 16 bit
• Transducer:
– Mengubah bentuk data dari signal elektrik, mekanik, dll
menjadi data digital dan sebaliknya 16
Keyboard/Monitor
• Alat interaksi komputer dengan pengguna
(user) yang umum digunakan adalah
keyboard/monitor.
• User memberikan input melalui keyboard.
Kemudian input akan dikirimkan ke komputer
dan ditampilkan pada monitor.
17
Keyboard/Monitor
• Unit dasar pertukaran datanya adalah karakter.
• Setiap karakter berkaitan dengan suatu kode,
yang umumnya mempunyai panjang 7 atau 8
bit.
• Kode yang paling umum digunakan adalah kode
7 bit yang dikenal sebagai ASCII (American
Standard Code for Information Interchange).
18
19
Keyboard/Monitor
• Setiap karakter dalam kode ASCII diwakili oleh kode biner 7-bit yang
unik.
• Ketika sebuah tombol ditekan oleh user menghasilkan sinyal
listrik diinterpretasikan oleh transducer pada keyboard dan
diterjemahkan ke dalam pola bit kode ASCII tertentu Pola bit
ditransmisikan ke modul I/O pada komputer.
20
Keyboard/Monitor
Tombol Sinyal listrik
keyboard Menghasilkan diubah oleh
ditekan oleh sinyal listrik transducer yang
user ada di keyboard
Pola bit tersebut Menghasilkan
Data diproses ditransmisikan pola bit kode
oleh CPU ke modul I/O ASCII
pada komputer
21
Fungsi Modul I/O
1. Control dan timing
2. Komunikasi CPU (CPU Communication)
3. Komunikasi perangkat (device communication)
4. Data buffering
5. Deteksi error (error detection)
22
Control dan Timing
• Modul I/O berfungsi sebagai pengatur aliran data
antara resource internal (CPU, memori) dengan device
eksternal.
• Contoh prosedur transfer data dari Device CPU :
– CPU memeriksa status device melalui modul I/O
– Device memberikan statusnya melalui modul I/O
– Jika ready, CPU minta agar device mengirimkan data
– Modul I/O menerima data dari device
– Modul I/O mengirimkan data ke CPU
23
Komunikasi CPU
• Modul I/O berfungsi sebagai media komunikasi dari CPU
menuju device eksternal.
• Apa yang dilakukan modul I/O ?
– Men-decode perintah dari CPU
• Contoh perintah untuk harddisk: READ SECTOR, WRITE SECTOR, SEEK
track number, dan SCAN record ID
– Menjadi media untuk pertukaran data
– Melaporkan status device (status reporting)
• Misal: BUSY atau READY
– Memeriksa/men-decode alamat yang dikirimkan oleh CPU
(address recognition)
24
Komunikasi perangkat
• Modul I/O berfungsi sebagai media komunikasi
dari device eksternal menuju CPU
• Apa yang dilakukan modul I/O ?
– Meneruskan perintah/command dari CPU ke device
– Meneruskan status dari device ke CPU
– Meneruskan data dari device ke CPU
25
Data Buffering
• Modul I/O berfungsi sebagai penampung data sementara, baik
dari CPU/memori maupun dari peripheral.
• Mengapa data perlu di-buffer ?
– Kecepatan device sangat beragam
– Kecepatan device lebih lambat daripada kecepatan CPU
• Contoh:
– Data dari CPU:
• Langsung diletakkan di buffer
• Diberikan ke device sesuai dengan kecepatan (“daya serap”) device
– Data dari device:
• Dikumpulkan dulu di buffer
• Setelah periode tertentu baru dikirimkan ke CPU lebih efektif
26
Error Detection
• Modul I/O berfungsi sebagai pendeteksi kesalahan
yang ditimbulkan oleh device.
• Contoh kesalahan:
– Paper jam
– Bad sector
– Kertas habis
– Terjadi perubahan bit-bit data
• Contoh metode deteksi:
– Bit parity
27
Struktur Modul I/O
28
Struktur Modul I/O
• Modul dihubungkan dengan bagian-bagian komputer lainnya
melalui saluran sinyal (misalnya : saluran system bus).
• Data yang dipindahkan ke modul dan dari modul ditampung (di-
buffer-kan) dalam sebuah register data.
• Register status memberikan informasi status saat itu. Register
status dapat juga berfungsi sebagai register kontrol, untuk
menerima informasi kontrol secara detail dari CPU.
• Logic pada modul berinteraksi dengan CPU melalui sejumlah
saluran kontrol. Saluran kontrol ini digunakan CPU untuk
memberikan perintah ke modul I/O.
29
Teknik Input Output
1. Programmed I/O
2. Interrupt driven I/O
3. Direct Memory Access (DMA)
30
Programmed I/O
• I/O terjadi pada saat program yang di dalamnya
terdapat perintah I/O dieksekusi
• Eksekusi I/O terus menerus melibatkan prosesor.
31
Programmed I/O
• CPU terlibat langsung dalam mengendalikan I/O :
– Membaca status
– Menerima/mengirim perintah
– Transfer data
• Kelemahannya :
– Selama menunggu operasi I/O selesai, CPU tidak melakukan
apapun sehingga waktu CPU terbuang percuma.
– CPU harus selalu memeriksa status modul I/O.
– Kinerja sistem menjadi menurun.
32
Programmed I/O
CPU Modul I/O
• Mengirim perintah • Melaksanakan
ke modul I/O permintaan CPU
• Menunggu hingga • Men-set bit-bit
status
aktifitas modul I/O
selesai • Tidak berinisiatif
memberi laporan
• CPU memeriksa bit- status
bit status secara • Tidak
periodik menginterrupt CPU
33
Programmed I/O:
Perintah-Perintah I/O yang digunakan CPU
• Perintah Control
– Untuk mengaktifkan peripheral
– Untuk menyuruh peripheral melakukan sesuatu
– Misal: disk berputar, head bergerak, dsb.
• Perintah Test
– Untuk memeriksa status device
– Apakah ada tegangan?, Apakah terjadi gangguan?, dsb
• Perintah Read
– Untuk meminta data dari peripheral melalui modul I/O
– Misal : baca data dari harddisk
• Perintah Write
– Untuk memberikan data ke peripheral
– Misal : menulis data ke harddisk 34
Interrupt Driven I/O
• Modul I/O meng-interrupt CPU jika device telah
menyelesaikan pekerjaannya.
• Kelebihan :
– CPU tidak perlu menunggu operasi I/O selesai
sehingga CPU dapat mengerjakan program lain.
– CPU tidak perlu memeriksa status device terus
menerus.
35
Interrupt Driven I/O
CPU Modul I/O
• Mengirim perintah • Melaksanakan
ke I/O
permintaan CPU
• Mengerjakan
program berikutnya • Bila telah
• CPU memeriksa selesai/ada
status interrupt masalah kirim
• Baca data interrupt
• Simpan data ke
memori
36
Perbedaan Programmed I/O
dengan Interrupt Driven I/O
• Programmed I/O modul I/O tidak dapat
mengirimkan status peripheral ke CPU.
• Interrupt Driven I/O modul I/O dapat
mengirimkan status peripheral ke CPU sehingga
dapat mempercepat proses CPU.
37
Direct Memory Access (DMA)
• Mengapa DMA diperlukan?
• Karena programmed I/O dan interrupt driven I/O:
– Masih memerlukan keterlibatan CPU CPU menjadi
sibuk
– Transfer rate data terbatas
• DMA solusinya
38
Direct Memory Access (DMA)
• DMA merupakan sebuah prosesor khusus
(special purpose processor) yang berguna untuk
menghindari pembebanan CPU utama oleh
program I/O.
39
Fungsi DMA
• Digunakan modul khusus (hardware) yang terhubung ke
sistem bus.
• Fungsi modul DMA:
– Dapat menirukan sebagian fungsi prosesor.
– Dapat mengambil alih fungsi prosesor yang berhubungan
dengan transfer data.
• Kapan DMA bekerja?
– Saat prosesor sedang tidak menggunakan bus.
– Saat prosesor dipaksa berhenti sesaat (suspend) siklusnya
“dicuri” oleh DMA yang disebut cycle stealing.
40
Cara Kerja DMA
• CPU mengirimkan data-data berikut ini ke DMA
controller:
– Perintah Read/Write
– Alamat device yang akan diakses
– Alamat awal blok memori yang akan dibaca/ditulisi
– Jumlah blok data yang akan ditransfer
• CPU mengeksekusi program lain.
• DMA controller mengirimkan seluruh blok data
langsung ke memori (tanpa melibatkan CPU).
• DMA controller mengirim interrupt ke CPU jika telah
selesai. 41
Cycle Stealing Pada DMA Transfer
• DMA controller mengambil alih bus sebanyak satu siklus.
• DMA men-transfer satu word data.
• Pengambil alihan bus oleh DMA bukan interrupt.
CPU tidak perlu menyimpan context
• CPU hanya tertunda (suspend) sesaat (satu siklus) sebelum
mengakses bus.
– Yaitu sebelum operand atau data diambil atau data ditulis
• Apa pengaruhnya terhadap CPU ?
– Memperlambat CPU, tetapi masih lebih baik daripada CPU terlibat
langsung pada transfer data 42
Konfigurasi DMA
• Konfigurasi I
– 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
• CPU tertunda 2 kali lebih lambat
• Konfigurasi II
– Hanya menggunakan single bus
– DMA controller dan modul I/O terintegrasi
– Satu DMA controller dapat menangani lebih dari satu modul I/O
– Setiap transfer hanya perlu mengakses bus satu kali saja
• DMA ke memori
• CPU hanya tertunda satu kali lebih baik 43
Konfigurasi DMA
• Konfigurasi III
– Digunakan bus I/O secara terpisah
– Semua modul I/O cukup dilayani dengan sebuah DMA lebih
hemat hardware
– Setiap transfer hanya perlu mengakses bus satu kali saja
• DMA ke memori
• CPU hanya tertunda satu kali lebih baik
44
Konfigurasi DMA
Konfigurasi I
Konfigurasi II
Konfigurasi III
45
Jenis-Jenis Mapping I/O
1. Memory Mapped I/O
2. Isolated I/O
46
Jenis-Jenis Mapping I/O
1. Memory Mapped I/O
– Ruang alamat digunakan oleh memori dan I/O
bersama - sama Jumlah alamat untuk memori
berkurang.
– CPU memperlakukan I/O seperti memori biasa.
– Tidak ada perintah khusus bagi I/O (perintah yang
digunakan mirip dengan perintah untuk memori)
47
Jenis-Jenis Mapping I/O
2. Isolated I/O
– Memori dan I/O menggunakan ruang alamat yang
sama secara bergantian.
– Jumlah alamat untuk I/O sama banyak dengan alamat
untuk memori.
– Diperlukan select line untuk membedakan antara
memori dengan I/O.
– Diperlukan perintah khusus untuk I/O.
48
Terima Kasih
49