1303194011 IT-43-01 I/O dan Bus Fungsi utama I/O adalah untuk menjembatani CPU dan memori dengan satu atau beberapa peripheral yang merupakan device eksternal yang terhubung dengan I/O. Terdapat beberapa jenis peripheral : – Human readable sarana komunikasi manusia dengan mesin (komputer) – Machine readable sarana komunikasi antara komputer dengan device lain – Screen, printer, keyboard Harddisk, sensor, aktuator, dll Communication sarana komunikasi komputer dengan komputer lain Modem Network Interface Card (NIC) Teknik Input Output (1) Programmed I/O – I/O terjadi pada saat program yang di dalamnya terdapat perintah I/O dieksekusi – Eksekusi I/O terus menerus melibatkan prosesor (2) Interrupt driven I/O – I/O terjadi pada saat perintah I/O dieksekusi – Sesudah perintah I/O dieksekusi CPU melanjutkan eksekusi perintah lainnya tidak terlibat terus menerus – CPU berperan lagi jika sudah ada interrupt dari device (modul I/O) (3) Direct Memory Access (DMA) – Transfer data ditangani oleh sebuah prosesor I/O khusus 1. Programmed I/O Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan 1303194011 IT-43-01 padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan. Terdapat 4 klasifikasi perintah I/O yaitu : a. Control = Perintah ini digunkan untuk mengaktivasi perangkat peripheral b. Test = Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. c. Read = Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. d. Write = Perintah ini CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut. 2. Teknik Identifikasi Interrupt (1) Digunakan banyak jalur interrupt Satu modul satu jalur (-) Tidak praktis karena harus menyediakan sejumlah jalur khusus (-) Jumlah device yang dapat dipasang terbatas (2) Software poll (polling) (-) Lambat karena harus memeriksa modul I/O satu persatu Mekanisme: Jika CPU mendeteksi adanya interrupt CPU menanyakan ke setiap modul I/O untuk mengetahui asal interrupt (polling) Misal dengan mengirimkan signal TESTI/O Modul pengirim interrupt akan menjawab signal tersebut (3) Daisy chain/hardware poll (vectored) Digunakan satu jalur interrupt yang menghubungkan setiap modul I/O Modul satu dengan modul lainnya terhubung secara serial Mekanisme: Modul I/O mengirimkan interrupt melalui jalur interrupt bersama CPU mendeteksi adanya interrupt mengirimkan signal ke sebuah modul I/O Signal akan diestafetkan dari satu modul ke modul lainnya Hanya modul yang mengirimkan interrupt yang akan memberi jawaban Jawaban berupa word (vector) yang ditaruh di jalur data. Isi word = alamat modul I/O atau identitas unik lainnya Vector digunakan sebagai pointer untuk menunjuk langsung ke device sumber interrupt sebelum menjalankan interrupt handler disebut vectored interrupt 1303194011 IT-43-01 (4) Bus Arbitration (vectored) Pengiriman interrupt dilakukan bila modul I/O telah ‘menguasai’ (master) bus Mekanisme: Modul I/O mengirimkan permintaan untuk menggunakan bus Arbiter memberi kesempatan kepada I/O modul hanya satu modul dalam satu saat Modul I/O mengirimkan interrupt CPU mendeteksi adanya interrupt dan memberi respons melalui jalur acknowledge Modul I/O mengirimkan word (vector) ke jalur data 3. DMA Fungsi 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 disebut cycle stealing Cara Kerja 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 (per satu word) langsung ke memori (tanpa melibatkan CPU) DMA controller mengirim interrupt ke CPU jika telah selesai 1303194011 IT-43-01 Bus merupakan saluran komunikasi yang menghubungkan 2 device atau lebih , biasanya bersifat broadcast dimana data tersebar ke seluruh device yang terhubung dengan Bus. Terdapat 3 struktur Bus : 1. Bus Data : Membawa data antara bagian utama komputer menggunaakn jalur data. Jumlah jalur data yang digunakan disebut Lebar Bus. Semakin lebar bus data maka performa semakin baik. 2. Bus Alamat : Mengidentifikasi asal dan tujuan data. Misal : CPU dapat membaca data yang ada di memori jika alamat data tersebut telah ditentukan. Lebar bus menentukan ukuran maksimum memori yang dapat digunakan 3. Bus Kontrol : Mengatur pengaksesan dan penggunaan jalur data dan alamat.Contoh sinyal control yang diberikan antara lain memory read, memory write, I/O read and write, Bus Request, Interupt Request, Clock Signal, Reset dll. 1. Tipe BUS Dedicated – Jalur data dan jalur alamat terpisah dan penggunaannya tetap/tidak berubahubah – Tipe bus yang banyak digunakan Multiplexed – Jalur bus digunakan untuk mengirimkan alamat dan data secara bergantian – Digunakan control line: address valid atau data valid – Kelebihan: jumlah jalur lebih sedikit hemat tempat hemat biaya Kerugian: – Penanganan lebih kompleks/rumit – Performansi berkurang: alamat dan data harus bergantian (tidak dapat paralel) 2. Bus Arbitration Dengan kata lain pengaturan Bus karena dalam suatu saat hanya boleh ada satu modul yang menggunakan bus. Terdapat 2 jenis bus arbitration yakni (1). Centralized dimana sebuah modul atau hardware bertugas menjadi control pusat dan mengontrol bus 1303194011 IT-43-01 dan hanya satu misanyla bagian dari CPU, (2).Distributed yang tidak memiliki control pusat, setiap modul dapat mengkontol bus sesuai control logic yang ada . 3. Timing Terjadinya event berdasarkan clock dan timing bertugas untuk mengatur tempo atau keceptan bus yang berbentuk seperti gambar dibawah ini : Terdapat 2 jenis timing yakni (1) Synchronus Timing yang terdiri dari sepasang bit 1&0 dimana semua device yang ada mengikuti clock, biasanya terjadi di ujung awal clock dan (2) Asynchronus Timing dimana event selanjutnya tidak bergantung berdasarkan clock melainkan berdasarkan event sebelumnya. – Synchronous: (+) Implementasi mudah (+) Pengujian mudah (-) Kurang fleksibel (clock rate tetap device dengan clock rate lebih tinggi tidak meningkatkan performansi sistem) – Asynchronous: (+) Lebih fleksibel device model lama (kecepatan rendah) dapat digunakan bersama-sama dengan device berkecepatan lebih tinggi 4. Lebar Bus Terbagi 2 yakni (1)Lebar Data dan (2)Lebar Address (1.) Lebar Data disimpan dalam satu frame dan dinyatakan dalam satuan bit. (2.) Lebar Address ditentukan dalam ukuran meory (bytes) yang mempunyai persamaan 2x dimana x merupakan panjang address. 1303194011 IT-43-01 5. Tipe Transfer -> terdapat bermacam macam tipe transfer antara lain read, write, read after write, read modify write, block dan lain lain.