Modul I/O dan DMA

advertisement
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
Download