33
ARSITEKTUR DAN ORGANISASI KOMPUTER Aditya Wikan Mahastama [email protected] UNIV KRISTEN DUTA WACANA – GENAP 1213 v2 2 Pengaturan Transfer Data dan Modul Input-Output

Modul I/O dan DMA

  • Upload
    vankhue

  • View
    223

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Modul I/O dan DMA

ARSITEKTUR DAN ORGANISASI KOMPUTER

Aditya Wikan [email protected]

UNIV KRISTEN DUTA WACANA – GENAP 1213 v2

2

Pengaturan Transfer Data

dan Modul Input-Output

Page 2: Modul I/O dan DMA

• Siapa, Apa dan Bagaimana?

Komunikasi Antar Komponen Komputer

Memori (RAM)Memori (RAM)

CPUCPU

StorageStorage

External

Devices

External

Devices

Program, Data

Program, Data,

AlamatData, Instruksi, Alamat

Data, Instruksi, Alamat

Data, Interrupt (dari controller)

Data, Instruksi, Alamat

Page 3: Modul I/O dan DMA

• 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).

External Device

Page 4: Modul I/O dan DMA

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

Page 5: Modul I/O dan DMA

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

Page 6: Modul I/O dan DMA

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

Page 7: Modul I/O dan DMA

Contoh data rate I/O:

Page 8: Modul I/O dan DMA

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

Oleh karena itu dibutuhkan sebuah modul yang

bertugas sebagai:

Page 9: Modul I/O dan DMA

Topologi modul I/O secara sederhana:

Page 10: Modul I/O dan DMA

Posisi Modul I/O

Memori (RAM)Memori (RAM)

CPUCPU

StorageStorage

External

Devices

External

Devices

Program, Data

Program, Data,

AlamatData, Instruksi, Alamat

Data, Instruksi,

Alamat

Data,

Interrupt

Data, Instruksi, Alamat

Modul I/O

(controller)

Modul I/O

(controller)

Data, Instruksi,

Data

Page 11: Modul I/O dan DMA

• 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

Guna Modul I/O

Page 12: Modul I/O dan DMA

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.

PEN TIN G

D IKETA

HUI

Page 13: Modul I/O dan DMA

Status BitPEN TIN G

D IKETA

HUI

Status bit diupdate oleh Modul I/O yang

menangani periferal tersebut, dengan siklus:

Ready Waiting ErrorRunning Not accomplished

Accomplished

Page 14: Modul I/O dan DMA

• 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

• Modul I/O mentransfer data ke CPU

Langkah operasi Modul I/O

Page 15: Modul I/O dan DMA

• 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 maudikerjakan oleh periferal

• Misal gerakkan head, putar disk

Detail Langkah Pengiriman Instruksi Modul I/O

Page 16: Modul I/O dan DMA

• 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

Kemampuan Lain Modul I/O

Page 17: Modul I/O dan DMA

Skema Dasar Modul I/O

Page 18: Modul I/O dan DMA

• 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?MA

MPIR

SEB EN TAR

Page 19: Modul I/O dan DMA

• Programmed

• Interrupt driven

• Direct Memory Access (DMA)

Teknik Pengendalian I/O

Page 20: Modul I/O dan 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

mengirimkan instruksi berikutnya

Programmed I/O

Page 21: Modul I/O dan DMA

• CPU merequest untuk melakukan operasi I/O

• Modul I/O melaksanakan operasi ke periferal

• Modul I/O men-set bit status � berisi hasiloperasinya

• CPU mengecek status bits secara periodik (tiapbeberapa clock), kalau belum ada perubahan, tunggu. Kalau ada, bereaksi

• Berarti modul I/O tidak menginformasikanstatus secara langsung ke CPU

• Modul I/O tidak bisa menginterrupt CPU

Programmed I/O – Detail proses

Page 22: Modul I/O dan DMA

• CPU tetap memiliki kontrol langsung seperti padaProgrammed I/O kecuali untuk membaca status

• Modul I/O menginterrupt CPU ketika sudah siapatau terjadi perubahan status

• CPU tidak menunggu sampai sebuah operasiselesai kerjakan

Kelebihan:

• Meniadakan waktu tunggu CPU

Interrupt Driven I/O

Page 23: Modul I/O dan DMA

• 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?MA

MPIR

SEB EN TAR

Page 24: Modul I/O dan DMA

• 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 I/O – Detail proses

Page 25: Modul I/O dan DMA

• 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

Page 26: Modul I/O dan DMA

• 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

Direct Memory Access – Detail proses

Page 27: Modul I/O dan DMA

• 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.)

DMA Transfer = Cycle Stealing

Page 28: Modul I/O dan DMA

Direct Memory Access

Memori (RAM)Memori (RAM)

CPUCPU

StorageStorage

External

Devices

External

Devices

Program, Data

Program,

Data,

Alamat

Data,

Instruksi,

Alamat

Instruksi, data

alamat periferal,

alamat memori

Data,

Interrupt

Data, Instruksi, Alamat

Modul I/OModul I/O

Data, Instruksi,

Data

DMA

Data,

Interrupt

Instruksi, data

alamat periferal

Data

Page 29: Modul I/O dan DMA

• 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

Konfigurasi DMA (1)

Page 30: Modul I/O dan DMA

• 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?MA

MPIR

SEB EN TAR

Page 31: Modul I/O dan DMA

• Single Bus, DMA controller terintegrasi denganModul I/O

• Controller dapat mensupport >1 periferal

• Sekali transfer menggunakan bus satu kali

– DMA controller ke memory

• CPU disuspend satu kali

Konfigurasi DMA (2)

Page 32: Modul I/O dan DMA

• 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

Konfigurasi DMA (3)

Page 33: Modul I/O dan DMA

• Topik Berikutnya: Program dan Interrupt

Demikian Materi Hari Ini