chapter 6 input/output - file.upi.edufile.upi.edu/direktori/fptk/jur._pend._teknik_elektro/... ·...
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020305/5c8e3f3209d3f2a7638cc2f4/html5/thumbnails/35.jpg)
Foreground Reading
Check out Universal Serial Bus (USB)
Compare with other communication standards e.g. Ethernet