ARSITEKTUR DAN ORGANISASI KOMPUTER
Aditya Wikan Mahastama
[email protected]
Pengaturan Transfer Data dan Modul Input-Output
2 UNIV KRISTEN DUTA WACANA – GENAP 1213 v2
Komunikasi Antar Komponen Komputer • Siapa, Apa dan Bagaimana? Program, Data
Memori (RAM)
Storage Data, Instruksi, Alamat
Program, Data, Alamat
Data, Instruksi, Alamat
Data, Instruksi, Alamat
CPU
External Devices Data, Interrupt (dari controller)
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 Program, Data
Memori (RAM)
Storage Data, Instruksi, Alamat
Program, Data, Alamat
Data, Instruksi, Alamat Data, Instruksi, Alamat
Data, Instruksi,
External Devices
Modul I/O (controller)
CPU Data, Interrupt
Data
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 D IK
TIN G I HU A T E
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 D IK
TIN G I HU A T E
Status Bit
Status bit diupdate oleh Modul I/O yang menangani periferal tersebut, dengan siklus:
Ready
Running
Accomplished
Waiting
Not accomplished
Error
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
R I P MAM N TAR E B E S
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
R I P MAM N TAR E B E S
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 Program, Data
Memori (RAM)
Storage Data, Instruksi, Alamat
Program, Data, Alamat
Data, Instruksi, Alamat
Data Instruksi, data alamat periferal
Instruksi, data alamat periferal, alamat memori
CPU
DMA Data, Interrupt
Data, Instruksi,
External Devices
Modul I/O 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
R I P MAM N TAR E B E S
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