ARSITEKTUR DAN ORGANISASI KOMPUTER Aditya Wikan Mahastama mahas@ukdw.ac.id Pengaturan Transfer Data dan Modul Input-Output 2 UNIV KRISTEN DUTA WACANA GENAP 1213 v2
Komunikasi Antar Komponen Komputer Siapa, Apa dan Bagaimana? Memori (RAM) Program, Data Data, Instruksi, Alamat Storage Program, Data, Alamat Data, Instruksi, Alamat CPU Data, Instruksi, Alamat Data, Interrupt (dari controller) External Devices
External Device Untuk berkomunikasi (melakukan perpindahan data) antara lingkungan luar komputer dengan komputer itu sendiri, digunakan external device External device yang terhubung ke sebuah modul I/O disebut periferal. In computer hardware, a peripheral device is any device attached to a computer in order to expand its functionality (basically input and output devices together are known as peripherals).
Kategori External Device Human readable: untuk berkomunikasi dengan pengguna komputer. Contoh: monitor, printer, keyboard. Machine readable: untuk berkomunikasi dengan sesama peralatan. Contoh: hard disk, sensor, aktuator. Communication: untuk berkomunikasi dengan device di tempat lain. Contoh: LAN card, modem
Latar Belakang: tentang I/O Input / Output: komunikasi dan transfer data antara periferal dengan CPU (dan memory jika dengan DMA) Banyak variasi periferal dengan metode operasi yang bermacam-macam, diantaranya: Kecepatan transfer data periferal kebanyakan lebih lambat, tetapi ada yang lebih cepat dari kecepatan memory dan prosesor satu kecepatan bus saja tidak efisien. Tiap periferal dapat memiliki format data dan panjang word yang berbeda-beda
Word? A measurement unit of a pack of data sent at one time, in bits E.g 16 bits, 32 bits, 64 bits and so on Different for each bus system and storage system
Contoh data rate I/O:
Oleh karena itu dibutuhkan sebuah modul yang bertugas sebagai: Interface (penghubung/perantara) dari periferal ke memory dan prosesor melalui system bus Interface ke sesama periferal Penyelaras data sebelum ditransfer melalui system bus Modul Input / Output
Topologi modul I/O secara sederhana:
Posisi Modul I/O Memori (RAM) Program, Data Data, Instruksi, Alamat Storage Program, Data, Alamat Data, Instruksi, Alamat CPU Data, Instruksi, Alamat Data, Interrupt Modul I/O (controller) Data, Instruksi, Data External Devices
Guna Modul I/O Control dan Timing: mensinkronisasikan kecepatan transfer dan mengetahui status periferal Komunikasi Periferal dengan Prosesor: untuk mengirimkan data dan control (perintah) dari prosesor ke periferal Komunikasi antar periferal se-modul Data Buffering (penampung data sementara) Deteksi Error yang terjadi pada periferal, dan melaporkannya pada prosesor
PEN TIN G D IK ETAHUI Status Bit Tiap periferal punya status bit yang tercatat di dalam modul I/O yang terhubung dengannya. Tipe status bit: Ready: siap menerima instruksi Wait: sedang mengoperasikan sebuah instruksi / sedang menunggu hasil instruksi Error: sedang dalam kondisi salah
PEN TIN G D IK ETAHUI Status Bit Status bit diupdate oleh Modul I/O yang menangani periferal tersebut, dengan siklus: Running Not accomplished Ready Waiting Error Accomplished
Langkah operasi Modul I/O CPU cek status periferal pada modul I/O dengan mengirimkan alamatnya Jika status ready, CPU melakukan request untuk operasi dengan mengirimkan instruksi yang diinginkan. Modul I/O akan mengerjakan instruksi tersebut. Misal instruksi adalah baca data, selanjutnya: Modul I/O menarik data dari periferal
Detail Langkah Pengiriman Instruksi Modul I/O CPU mengirimkan alamat (address) Untuk mengidentifikasi modul (dan device (periferal) jika ada >1 per modul) CPU mengirimkan instruksi (command) Test - check status Ready, Running/Waiting atau Error Read/Write Modul mentransfer data di buffer dari/ke periferal Control - memberitahu modul apa yang mau dikerjakan oleh periferal Misal gerakkan head, putar disk
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
Skema Dasar Modul I/O
MAMPIR SEB EN TAR Apa Itu Register? Register adalah memori sangat cepat dengan ukuran sangat kecil yang tertanam pada beberapa komponen komputer. Ukurannya hanya beberapa bit saja, misal 128-bit. Digunakan untuk menyimpan instruksi, alamat dan tampungan kalkulasi. Komponen komputer yang memiliki register di antaranya adalah CPU dan Modul I/O. Register dapat berfungsi sebagai memori buffer (penampung sementara saat sinkronisasi) tetapi dapat saja ada buffer terpisah yang ukurannya lebih besar, tetapi lebih lambat.
Teknik Pengendalian I/O Programmed Interrupt driven Direct Memory Access (DMA)
Programmed I/O CPU memiliki kontrol langsung terhadap proses I/O Membaca status (ready, error dsb) Memberi instruksi untuk menggerakkan periferal Mentransfer data CPU menunggu sampai modul I/O selesai mengerjakan suatu operasi sebelum mengirimkan instruksi berikutnya
Programmed I/O Detail proses CPU merequest untuk melakukan operasi I/O Modul I/O melaksanakan operasi ke periferal Modul I/O men-set bit status berisi hasil operasinya CPU mengecek status bits secara periodik (tiap beberapa clock), kalau belum ada perubahan, tunggu. Kalau ada, bereaksi Berarti modul I/O tidak menginformasikan status secara langsung ke CPU Modul I/O tidak bisa menginterrupt CPU
Interrupt Driven I/O CPU tetap memiliki kontrol langsung seperti pada Programmed I/O kecuali untuk membaca status Modul I/O menginterrupt CPU ketika sudah siap atau terjadi perubahan status CPU tidak menunggu sampai sebuah operasi selesai kerjakan Kelebihan: Meniadakan waktu tunggu CPU
MAMPIR SEB EN TAR Apa Itu Interrupt? Setiap periferal atau komponen yang terhubung ke komputer, tidak bisa mengirimkan data apapun atas kehendak sendiri Hal ini menyulitkan proses I/O karena semua harus dipantau oleh CPU lewat modul I/O Interrupt adalah sinyal yang dikirimkan oleh sebuah modul I/O untuk meminta perhatian CPU, supaya CPU membaca status sebuah periferal Interrupt adalah satu-satunya sinyal yang dapat diterima CPU tanpa sekehendaknya
Interrupt Driven I/O Detail proses CPU merequest untuk melakukan operasi I/O Modul I/O melaksanakan operasi ke periferal Sementara itu CPU dapat melakukan kegiatan yang lain (melaksanakan proses berikutnya) Modul I/O menginterrupt CPU untuk memberitahukan status hasil operasinya CPU bereaksi atas status tersebut
Direct Memory Access Interrupt driven dan programmed I/O membutuhkan intervensi langsung CPU Transfer rate menjadi terbatas, dan CPU menjadi terikat pada modul I/O DMA dibuat untuk mengambil alih pengaturan I/O dari CPU DMA Controller dapat merupakan controller terpisah dari Modul I/O (bisa berupa chip terpisah pada motherboard), dan belum tentu terhubung langsung ke periferal
Direct Memory Access Detail proses CPU memberi tahu DMA controller: Apa instruksinya Alamat periferalnya Alamat awal blok memory, tempat data Jumlah data yang akan ditransfer CPU melanjutkan pekerjaan lainnya DMA controller melaksanakan operasi DMA controller mengirim interrupt ke CPU saat seluruh operasi selesai
DMA Transfer = Cycle Stealing Dalam menjalankan pelimpahan tugas dari CPU, DMA diberi hak khusus sebagai satu-satunya komponen yang dapat mengakses memori secara langsung tanpa melewati CPU Untuk itu saat bertransfer dengan memori, DMA controller mengambil alih siklus bus kemudian mentransfer satu word data, sehingga CPU di-suspend sesaat sebelum mengakses bus, ketika bus dipakai DMA controller Suspend memperlambat CPU tetapi tidak selambat jika CPU sendiri yang melakukan transfer, karena CPU tidak berganti konteks (menerima interrupt atau membaca status dsb.)
Direct Memory Access Memori (RAM) Program, Data Data, Instruksi, Alamat Storage Program, Data, Alamat Data, Instruksi, Alamat Data CPU Instruksi, data alamat periferal, alamat memori DMA Instruksi, data alamat periferal Modul I/O Data, Instruksi, External Devices Data, Interrupt Data, Interrupt Data
Konfigurasi DMA (1) Single Bus, DMA controller terpisah dari Modul I/O Sekali transfer menggunakan bus dua kali Modul I/O ke DMA kemudian DMA ke memory CPU disuspend dua kali
MAMPIR SEB EN TAR Apa Itu CPU Suspend? Ketika DMA controller menggunakan haknya untuk mengakses memori secara langsung, ia akan menggunakan seluruh atau sebagian dari arsitektur bus sistem guna menjangkau memori Saat itu terjadi, maka DMA akan mengirimkan sinyal untuk memberi tahu bahwa CPU tidak boleh menggunakan giliran bus, sehingga CPU harus menahan diri untuk tidak mengirimkan instruksi/data lewat bus (memakai satu siklus bus)
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
Demikian Materi Hari Ini Topik Berikutnya: Program dan Interrupt