350 likes | 633 Views
Organisasi dan Arsitektur Komputer. Tim Jurusan. INTERKONEKSI BUS. Sesi 10. Outline. Outline. Outline. Tujuan Intruksional. Mampu menjelaskan fungsi dan piranti I/O. Mampu menyebutkan dan membedakan Mode transfer data pada I/O. I/O devices menjadikan komputer berguna bagi manusia.
E N D
OrganisasidanArsitekturKomputer Tim Jurusan INTERKONEKSI BUS Sesi 10
TujuanIntruksional • Mampu menjelaskan fungsi dan piranti I/O. • Mampu menyebutkan dan membedakan Mode transfer data pada I/O.
I/O devices menjadikankomputerbergunabagimanusia • Perangkat input mungkinlambatdanharusmemilikicarauntukmemberitahukomputerapabilasiapmemberikan data. • Perangkat output harusmemilikicarauntukmenolak data berikutnyaapabilabelumsiap.
Kategori • User interface devices. • Perangkat input mendeteksi adanya perubahan pada lingkungan • Perangkat output memberi perubahan pada lingkungan. • Mass storage devices. • Menyimpan data dalam kuantitas yang besar (disks). • Gateways and networks. • Komputer berkomunikasi satu sama lain.
Perbedaan seputar kelas-kelas I/O • Complexity of control: Sebuah printer membutuhkanantarmukakontrol yang relatifsederhana. Sebuah disk jauhlebihkompleks. • Unit of transfer: Data mungkindikirimkansebagaisuatualiran byte ataukarakterataudikirimkandalamblok yang berukuranbesar. • Data representation: Perangkat yang berbedamungkinmenggunakanskemapengkodean data (data-encoding) yang berbeda, termasukdidalamnyaperbedaandalamkodekarakterdan parity yang digunakan. • Error conditions: Sifatdari error, bagaimana error tersebutdilaporkan, konsekuensidari error, danrespons yang diberikanberbedadarisatuperangkatdenganperangkat yang lain.
I/O Module • Adalah interface atau central switch untukmengendalikansatuataulebih peripheral atauperangkat input output. • Konektormekanisberisifungsilogikuntukkomunikasiantara bus dan peripheral.
Mengapa modul I/O diperlukan ? • Periferal yang beragam dengan beragam metode operasi. • Speed periferal yang lebih lambat dibanding CPU. • Format data dan panjang word periferal pun beragam.
Arus Data I/O • Data rate • Merupakankecepatan transfer data dalamkomunikasi data digital. • Memungkinkanterjadinyaperbedaanbesarnyatingkatanpengiriman • data
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.
Teknik 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 menunggumodul I/O aktif. • Modul I/O beroperasi, menetapkan status sertatidakmenginterupsi CPU. • CPU memeriksa status periodik, sambilmenungguatau ‘pergidankembalinanti’.
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 - interrupt-driven • Contoh PC Bus • 80x86 memiliki satu interrupt line, sistem berbasis 8086 memakai 8259A interrupt controller yang memiliki 8 interrupt lines.
Teknik I/O - interrupt-driven • Runtutan events • 8259A menerimainterupsi. • 8259A memeriksaprioritas. • 8259A memberisinyal 8086 (membangkitkan INTR line). • CPU mengirimkanpesan Acknowledges. • 8259A menyimpan correct vector pada data bus. • CPU memprosesinterupsi.
Teknik I/O - DMA • Interrupt-driven & programmed I/O membutuhkan intervensi aktif CPU, transfer rate terbatas dan CPU terikat.
Teknik I/O - DMA • Modul tambahan pada bus. • DMA controller mengambil alih peran CPU. • 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 • Read/Write. • Memeriksa adres perangkat. • Mencari adres dan mengambil data untuk ditransfer. • CPU mengerjakan proses-proses lain. • DMA controller melakukan transfer data. • DMA controller mengirimkan interupsi jika selesai.
Teknik I/O - DMA • Cara lain, transfer cycle stealing • DMA controller mengambil alih siklus bus, kirim 1 word, dan tidak ada interupsi. • CPU tidak mengubah konteks,dan CPU suspended sebelum mengakses bus (misal sebelum operand / data fetch atau data write).
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.