ARSITEKTUR DAN ORGANISASI KOMPUTER
Aditya Wikan Mahastama
mahas@ukdw.ac.id
UNIV KRISTEN DUTA WACANA – GENAP 1213 v2
2
• Siapa, Apa dan Bagaimana?
Komunikasi Antar Komponen Komputer
Memori (RAM)
Alamat Data, Instruksi, Alamat
Data, Instruksi, Alamat
• 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,
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.
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…
Modul Input / Output
• Interface (penghubung/perantara) dari periferal ke memory dan prosesor melalui system bus
• Interface ke sesama periferal
• Penyelaras data sebelum ditransfer melalui system bus
Posisi Modul I/O
Alamat Data, Instruksi, Alamat
Data, Instruksi, Alamat
Data, Interrupt
Data, Instruksi, Alamat
Modul I/O (controller)
Modul I/O (controller)
Data, Instruksi,
• 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
Tipe status bit:
• Ready: siap menerima instruksi
• Wait: sedang mengoperasikan sebuah instruksi / sedang menunggu hasil instruksi
• Error: sedang dalam kondisi salah
Status Bit
Tiap periferal punya status bit yang tercatat di dalam modul I/O yang terhubung dengannya.
PENT
ING
DIKETA
Status Bit
PENT
ING
DIKETA
HUI
Status bit diupdate oleh Modul I/O yang
menangani periferal tersebut, dengan siklus:
Ready Running Waiting Not accomplished Error
• 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
•
•
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
• 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
• 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.
Apa Itu Register?
MAMPIR
SEBE
•
Programmed
•
Interrupt driven
•
Direct Memory Access (DMA)
• 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
• 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
• 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:
• 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
Apa Itu Interrupt?
MAMPIR
SEBE
• 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
•
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
•
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
• 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
alamat periferal,alamat memori
Data, Interrupt
Data, Instruksi, Alamat
Modul I/O
Modul I/O
Data, Instruksi,
•
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
• 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)
Apa Itu CPU Suspend?
MAMPIR
SEBE
• 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
• 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
• Topik Berikutnya: Program dan Interrupt