DASAR KOMPUTER Input/Output
Input/Output Memungkinkan komputer untuk berkomunikasi dengan perangkat lainnya. Perangkat I/O terhubung pada sistem komputer melalui modul I/O. Jumlah Perangkat I/O sangat banyak. Kecepatan transfer data perangkat I/O lebih lambat Format data yang digunakan antara berbagai perangkat I/O berbeda-beda
Printer & Keyboard
Modul I/O
Kategori Perangkat I/O Human readable berkomunikasi dengan user Ex : video, keyboard dll Machine Readable berkomunikasi dengan peralatan lainnya Ex : harddisk Communication berkomunikasi dengan peralatan lainnya secara remote Ex : modem
Fungsi Modul I/O Control dan Timing Koordinasi aliran data perangkat internal dengan perangkat eksternal Komunikasi dengan Processor Berkomunikasi dengan processor. Komunikasi dengan prosesor meliputi : Command Decoding : Data : Status Reporting : Address Recognition : Komunikasi dengan perangkat berkomunikasi dengan perangkat IO yang akan diakses Data Buffer Menampung data sementara. Deteksi Error melakukan deteksi error terhadap data yang diberikan oleh perangkat IO.
Struktur Modul I/O Modul IO memungkinkan prosesor berkomunikasi dengan perangkat IO secara sederhana. Modul IO menyembunyikan detail dari timing, format dan elektromekanik dari perangkat IO sehingga prosesor berkomunikasi dengan perangkat IO tanpa perlu memperhatikan hal-hal tersebut, tapi cukup memberikan perintah yang generik. Jenis modul i/o berdasarkan detail pemrosesan : IO channel / IO prosessor : tidak membutuhkan kontrol secara detil untuk melakukan operasi Input/Output. IO Controller / device controller: membutuhkan kontrol secara detil
Struktur Modul I/O
Metode Transfer Data Modul IO Programmed IO Interupt-driven IO Direct Memory Access (DMA)
Metode Transfer pada Modul I/O
Programmed IO Data dipertukarkan antara modul I/O dengan prosesor secara langsung. Selama proses transfer data, prosesor tidak melakukan aktifitas lain. Proses transfer: Prosesor meminta data kepada modul IO memberikan intruksi/command ke modul IO Modul IO akan meminta data pada perangkat yang diminta. Sementara modul meminta data pada perangkat IO, prosesor akan mengecek status modul dan menunggu sampai modul IO selesai meminta data. Prosesor membaca data jika perangkat telah siap, jika belum siap, maka prosesor menunggu. Prosesor menyimpan data Prosesor akan melakukan hal yang lainnya.
Perintah kepada Modul I/O Control : untuk mengaktifkan peralatan dan memberikan perintah yang akan dilaksanakan. Test : mengecek status dari perangkat IO. Read : membaca data dari perangkat input dan meletakkannya pada internal buffer. Write : menyimpan data dari data bus ke perangkat output
Pengalamatan I/O Banyak perangkat IO yang terhubung pada modul IO masing-masing perangkat IO yang terhubung tersebut memiliki identifier yang unik untuk membedakan antara 1 perangkat dengan perangkat lainnya.
Metode Pengalamatan I/O Memory mapped I/O Devices and memory share an address space I/O looks just like memory read/write No special commands for I/O Large selection of memory access commands available Isolated I/O Separate address spaces Need I/O or memory select lines Special commands for I/O Limited set
Interupt-Driven IO Permasalahan Programmed IO prosesor harus menunggu data selesai dikirim/diterima. Metode Interupt-driven IO. prosesor memberikan perintah untuk menerima/membaca data prosesor akan melakukan hal lain sementara modul IO mempersiapkan data yang diminta. Jika Modul IO siap untuk memberikan data yang diminta maka modul IO akan memberikan sinyal interupt. Prosesor mengalihkan pekerjaannya dan segera mengambil data yang telah dipersiapkan. Jika data yang dipersiapkan oleh modul IO telah dibaca dan diletakkan pada memory, prosesor akan melanjutkan pekerjaannya yang sempat terhenti.
Identifikasi perangkat pembangkit Interupt Cara prosesor menentukan perangkat memberikan sinyal interupt Multiple interupt line : PC Limits number of devices Software poll CPU asks each module in turn Slow Daisy Chain (hardware poll, vectored) Interrupt Acknowledge sent down a chain Module responsible places vector on bus CPU uses vector to identify handler routine Bus Master Module must claim the bus before it can raise interrupt e.g. PCI & SCSI
Prioritas Dalam metode Interupt Driven Prioritas Jika ada 2 perangkat yang meminta interupt, mana yang diprioritaskan. multiple line : line memiliki prioritas berbeda. Software polling : menggunakan urutan perangkat. Daisy chain : ditentukan berdasarkan posisi terdekat dengan bus.
Contoh - PC Bus 80x86 memiliki 1 interrupt 8086 systems menggunakan 1 8259A interrupt controller 8259A memiliki 8 interupt line
Urutan Kerja Interupt 8259A menerima menerima interupt 8259A menentukan prioritas 8259A memberikan sinyal ke 8086 (raises INTR line) CPU mengkonfirmasi 8259A menempatkan vector yang benar pada data bus CPU memproses interrupt
ISA Bus Interrupt System ISA bus menggabungkan penggunaan 2 8259A Terhubung via interrupt 2 Memberikan 15 lines 16 lines (1 untuk link) IRQ 9 digunakan untuk me- reroute segala sesuatu yang menggunakan IRQ 2 Backwards compatibility Tergabung dalam sebuah chip set
82C59A Interrupt Controller
Intel 82C55A Programmable Peripheral Interface
Keyboard/Display Interfaces to 82C55A
Direct Memory Access Programmed IO/Interupt-Driven IO butuh intervensi prosesor DMA digunakan untuk transfer data dalam ukuran yang besar. DMA merupakan module tambahan terhadap system bus memiliki kemampuan untuk meniru prosesor mengambil kendali dari prosesor. DMA menggunakan system bus untuk melakukan transfer data Hanya saat prosesor tidak menggunakan system bus memaksa prosesor menghentikan sementara aktifitas di system bus. Proses transfer data pada DMA : prosesor memberikan instruksi pada modul DMA. Prosesor akan melanjutkan pekerjaan yang lain sementara tugas untuk mentransfer data telah didelegasikan pada modul DMA. Modul DMA mentrasfer data langsung dari/ke memory tanpa melalui prosesor. Setelah modul DMA selesai melakukan transfer file, modul tersebut akan memberikan sinyal interupt pada prosesor.
Diagram Modul DMA
IO Channels dan IO Processor IO Channels memiliki prosesor sendiri dengan haknya sendiri tapi hanya memiliki instruksi yang dikhususkan untuk keperluan IO. IO Processor Module IO yang memiliki prosesor sendiri dan memory sendiri (layaknya komputer) tapi hanya bertugas untuk melakukan proses IO.
I/O Channel & Processor Meningkatkan kemampuan komputer prosesor tidak lagi mengurus proses IO. Merupakan pengembangan dari DMA. Prosessor tidak menjalankan instruksi untuk melakukan proses IO tapi IO Channel/IO Processor memiliki kemampuan untuk menjalankan instruksi yang akan membuat IO Channel/IO Processor memiliki kontrol penuh terhadap proses IO atas permintaan prosesor. Jenis IO channel/prosesor Selector : mengontrol 1 modul IO pada 1 waktu kecepatan tinggi Multiplexor : mengontrol banyak perangkat/modul IO pada 1 waktu.
I/O Channel & Processor