chapter 6 input/output - file.upi.edufile.upi.edu/direktori/fptk/jur._pend._teknik_elektro/... ·...

35
Chapter 6 Input/Output

Upload: dinhquynh

Post on 17-Mar-2019

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Chapter 6

Input/Output

Page 2: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Masalah-masalah

Input/Output

Periferal yang bervariasi

Pengiriman jumlah data yang berbeda

Dengan kecepatan yang berbeda

Dalam format yang berbeda

Semua periferal I/O berkecepatan lebih lambat dari CPU dan RAM

Memerlukan modul I/O

Page 3: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Modul Input/Output

Interface ke CPU dan memori

Melalui sistem bus atau perpindahan utama

Interface ke satu atau lebih periferal

Melalui link yang sesuai

Page 4: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Peralatan External

Terbaca manusia

Monitor, printer, keyboard

Terbaca mesin

Pengawasan dan kontrol

Sensor, aktuator, pita/disk magnetik

Komunikasi

Modem

Network Interface Card (NIC)

Page 5: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Fungsi Modul I/O Module

Kontrol dan timing

Mengkoordinasikan lalu lintas antara sumber daya internal dan perangkat external.

Komunikasi prosesor

Komuniksasi perangkat

Data Buffering

Deteksi kesalahan

Page 6: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Langkah-langkah kontrol transfer

data (external ke CPU) I/O

CPU meminta modul I/O untuk memeriksa status perangkat yang terhubung

Modul I/O menjawab status perangkat

Jika sedang on dan siap mengirim, CPU minta transfer data, dng perintah tertentu ke modul I/O

Modul I/O akan memperoleh unit data (mis 8 atau 16 bit) dari perangkat ext

Data akan ditransfer dari modul I/O ke prosesor

Page 7: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Diagram Blok Modul I/O

Data Register

Status/Control Register

External

Device

Interface

Logic

External

Device

Interface

Logic

Input

Output

Logic

Data

Lines

Address

Lines

Data

Lines

Data

Status

Control

Data

Status

Control

Systems Bus Interface External Device Interface

Page 8: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Teknik Input Output

I/O Terprogram

I/O Interrupt driven

Direct Memory Access (DMA)

Page 9: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

I/O Terprogram

Antara CPU dengan I/O saling menukarkan data

Status perangkat sensor

Perintah Read/write

Transfer data

Ketika CPU memberi perintah modul I/O, maka CPU menunggu modul I/O menyelesaikan operasinya

Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU

Page 10: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

I/O Terprogram - detail

CPU meminta I/O melakukan operasi

Modul I/O melakukan operasi

Modul I/O menetapkan bit status

CPU memeriksa bit status secara periodik

Modul I/O tidak melaporkannya ke CPU

Modul I/O tidak meng-interrupt CPU

CPU akan menunggu atau kembali lagi

Page 11: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Perintah-perintah I/O (1)

CPU dan alamat

Prosesor mengeluarkan alamat yang menspesifikasi modul I/O dan perangkat ext, serta perintah I/O

Perintah I/O

Ketika modul I/O dialamati oleh CPU, yaitu:

Control – mengaktifkan periferal dan memberi tahu apa yang harus dilakukan

e.g. unit pita magnetik yang diinstruksikan untuk menggulung ulang atau memajukan sebuahrekaman (perintah ini dikhususkan ke jenis perangkat periferalnya)

Page 12: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Perintah-perintah I/O (2)

Test – menguji berbagai macam kondisi status yg berhubungan dengan perangkat periferalnya

e.g. power? Error?

Read – modul I/O akan memperoleh data dari periferal dan menempatkannya pada buffer internal.

Write – modul I/O mengambil data dari bus data dan kemudian mentransmisikan data tersebut ke periferal

Page 13: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Pengalamatan perangkat I/O

Pada I/O terprogram, transfer data sangat mirip dengan akses memori

Setiap perangkat diberi kode pengenal yang unik

Perintah-perintah CPU terdiri dari kode pengenal (alamat)

Page 14: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Pemetaan I/O

Memori pemetaan I/O

Perangkat I/O dan memori berbagi sebuah ruang alamat

I/O terlihat mirip dengan memori read / write

Tidak ada perintah khusus untuk I/O

I/O terisolasi

Ruang alamat I/O terpisah dengan ruang alamat memori

Memerlukan pemilihan jalur I/O atau memori

Terdapat perintah khusus untuk I/O

Page 15: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

I/O Interrupt - Driven

CPU harus menunggu

Tidak ada pengecekan ulang perangkat I/O

Modul I/O akan melakukan interrupt bila siap

Page 16: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

I/O Interrupt - Driven

Operasi dasar

CPU memerintahkan read

Modul I/O mendapatkan data dari periferal dengan saat yang bersamaan CPU melakukan kerja yang lain

Modul I/O menginterrupt CPU

CPU meminta data

Modul I/O melakukan transfer data

Page 17: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

CPU (Prosesor)

Memerintahkan read

Melakukan kerja yang lain

Cek untuk interrupt disetiap akhir putaran instruksi

Dilakukan interrupt, jika:

Menyimpan data (register)

Proses interrupt

Mendapatkan data & menyimpannya

Lihat catatan tentang OS

Page 18: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Masalah Perancangan

Bagaimana mengidentifikasi modul melakukan interrupt?

Bagaimana menangani multiple interrupt?

Page 19: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Identifikasi Modul Interupsi

(1)

Jalur yang berbeda untuk setiap modul

Poll Software

Daisy Chain atau Hardware poll

Bus Master

Module must claim the bus before it can raise interrupt

e.g. PCI & SCSI

Page 20: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Multiple Interrupts

Setiap jalur interrupt mempunyai prioritas

Jalur prioritas utama bisa melakukan interrupt jalur yang berprioritas lebih rendah

Jika

Page 21: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Example - PC Bus

80x86 mempunyai satu jalur interrupt

Sistem 8086 menggunakan sebuah 8259A interrupt controller

8259A mempunyai 8 jalur interrupt

Page 22: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

PC Interrupt Layout

8086

INTR

8259A

IRQ0

IRQ1

IRQ2

IRQ3

IRQ4

IRQ5

IRQ6

IRQ7

Page 23: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Rangkaian kejadian

8259A menerima interrupt

8259A menentukan prioritas

8259A memberi sinyal ke CPU (peningkatan jalur INTR)

CPU melakukan Acknowledges (jalur INTA)

8259A menempatkan informasi vector yang sesuai pada bus data

CPU melakukan proses interrupt

Page 24: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Foreground Reading

http://www.pcguide.com/ref/mbsys/res/irq/func.htm

In fact look at http://www.pcguide.com/

Page 25: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Direct Memory Access

(Akses memori langsung)

I/O terprogram dan I/O Interrupt driven memiliki kelemahan

Kecepatan Transfer I/O terbatas. Dimana dengan kecepatan itu prosesor dapat menguji dan melayani perangkat

CPU ditentukan oleh pengaturan transfer I/O

DMA is the answer, jika data yang akan dipindahkan sangat besar

Page 26: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Fungsi DMA

Modul tambahan pada bus sistem

Modul DMA dapat menirukankan CPU dan mengambil alih kontrol sistem dari CPU

Page 27: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Operasi DMA

CPU mengirim perintah ke DMA :Read/Write

Alamat perangkat

Penempatan awal memori

Jumlah data (word) yang akan ditransfer

CPU melanjutkan pekerjaan lain

DMA controller akan memindahkan data tanpa melalui CPU

DMA controller setelah selesai mengirim sinyal interupsi ke CPU

CPU hanya terlibat di awal dan akhir transfer

Page 28: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Pencurian siklus

DMA Transfer

DMA controller mengambil alih bus sistem untuk sebuah siklus dari CPU

Mengirim satu word data

Tidak ada interrupt (terhadap CPU)

CPU menghentikan operasi untuk sementara

i.e. sebelum sebuah instruksi atau mengambil data atau menulis data

Page 29: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Pandangan lain

Apa akibat dari cache memori mempunyai DMA

Hitung: berapa banyak bus sistem yang bisa digunakan

Page 30: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

DMA Configurations (1)

Single Bus, DMA controller terpisah

Setiap transfer menggunakan bus dua kali

I/O ke DMA kemudian DMA ke memory

CPU terhenti kerjanya dua kali

CPUDMA

Controller

I/O

Device

I/O

Device

Main

Memory

Page 31: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

DMA Configurations (2)

Single Bus, Integrated DMA controller

Controller bisa menangani >1 perangkat

Setiap transfer mengunakan bus satu kali

DMA ke memory

CPU terhenti kerjanya satu kali

CPUDMA

Controller

I/O

Device

I/O

Device

Main

Memory

DMA

Controller

I/O

Device

Page 32: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

DMA Configurations (3)

Pemisahan bus I/O

Bus mendukung semua perangkat DMA

Setiap transfer menggunakan bus satu kali

DMA ke memory

CPU terhenti kerjanya satu kali

CPU DMA

Controller

I/O

Device

I/O

Device

Main

Memory

I/O

Device

I/O

Device

Page 33: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

I/O Channels

Perangkat I/O semakin rumit

e.g. 3D graphics cards

CPU memerintahkan I/O controller melakukan transfer

I/O controller melakukan semua transfer

Kinerja

Beban kerja CPU berkurang

Kinerja keseluruhan meningkat

Page 34: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Interfacing (antar muka)

Menghubungkan beberapa perangkat menjadi satu

Serial atau paralel?

Diperuntukkan processor/memory/buses?

E.g. SCSI, FireWire, Infiniband

Page 35: Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK_ELEKTRO/... · Jika CPU lebih cepat dari modul I/O, maka membuang waktu CPU. I/O Terprogram - detail

Foreground Reading

Check out Universal Serial Bus (USB)

Compare with other communication standards e.g. Ethernet