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 pe r iphe r a l de vice 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 Use r in t e r fa ce de vice s. Perangkat input mendeteksi adanya perubahan pada lingkungan Perangkat output memberi perubahan pada lingkungan.
M a ss st or a ge de vice s. Menyimpan data dalam kuantitas yang besar (disks).
Ga t e w a ys a n d n e t w or k s. Komputer berkomunikasi satu sama lain.
Perbedaan seputar kelas-kelas I/O Com ple x it y of con t r ol: 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.
Arus Data I/O Device
Behavior
Partner
Data rate (kbytes/sec)
Keyboard
Input
human
0,01
Mouse
Input
human
0,02
Voice input
Input
human
0,02
Scanner
Input
human
200
Voice output
Output
human
0,6
Laser printer
Output
human
100
Graphic display
Output
human
30.000
CPU to frame buffer
Output
human
200
Network-termainal
Input or output
machine
0,05
Network-LAN
Input or output
machine
200
Optical disk
Storage
machine
500
Magnetic tape
Storage
machine
2.000
Magnetic disk
Storage
machine
2.000
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