Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK... · aI/O...

35
Chapter 6 Input/Output

Transcript of Chapter 6 Input/Output - file.upi.edufile.upi.edu/Direktori/FPTK/JUR._PEND._TEKNIK... · aI/O...

Chapter 6Input/Output

Masalah-masalah I t/O t tInput/Output

Periferal yang bervariasiPengiriman jumlah data yang berbedaDengan kecepatan yang berbedaDalam format yang berbeda

Sem a pe ife al I/O be kecepatan lebih lambatSemua periferal I/O berkecepatan lebih lambat dari CPU dan RAMMemerlukan modul I/OMemerlukan modul I/O

Modul Input/OutputModul Input/Output

Interface ke CPU dan memoriMelalui sistem bus atau perpindahan utama

Interface ke satu atau lebih periferalMelalui link yang sesuai

Peralatan External Peralatan External

Terbaca manusiaMonitor, printer, keyboard

Terbaca mesinPengawasan dan kontrolS kt t it /di k tikSensor, aktuator, pita/disk magnetik

KomunikasiM dModemNetwork Interface Card (NIC)

Fungsi Modul I/O Module Fungsi Modul I/O Module

Kontrol dan timingMengkoordinasikan lalu lintas antara sumber daya internal dan perangkat externalinternal dan perangkat external.

Komunikasi prosesor Kom niksasi pe angkatKomuniksasi perangkatData BufferingD t k i k l hDeteksi kesalahan

Langkah-langkah kontrol transfer d t ( t l k CPU) I/O data (external ke CPU) I/O

CPU meminta modul I/O untuk memeriksa status perangkat yang terhubungModul I/O menjawab status perangkatJika sedang on dan siap mengirim, CPU minta t f d t d i t h t t t k d l I/Otransfer data, dng perintah tertentu ke modul I/OModul I/O akan memperoleh unit data (mis 8 atau 16 bit) d i k t t16 bit) dari perangkat extData akan ditransfer dari modul I/O ke prosesor

Diagram Blok Modul I/O Diagram Blok Modul I/O

Systems Bus Interface l i f

Data RegisterExternalDeviceData

Data

Systems Bus Interface External Device Interface

a a eg s e

Status/Control Register

DeviceInterfaceLogic

DataLines Status

Control

Inp tAddress

ExternalDeviceInterface

InputOutputLogic

Lines

DataLi

Data

StatusInterfaceLogicLines Control

Teknik Input Output Teknik Input Output

I/O TerprogramI/O Interrupt drivenDirect Memory Access (DMA)

I/O TerprogramI/O Terprogram

Antara CPU dengan I/O saling menukarkan dataStatus perangkat sensor Perintah Read/write Transfer data

Ketika CPU membe i pe intah mod l I/O makaKetika CPU memberi perintah modul I/O, maka CPU menunggu modul I/O menyelesaikan operasinyaoperasinyaJika CPU lebih cepat dari modul I/O, maka membuang waktu CPUmembuang waktu CPU

I/O Terprogram detailI/O Terprogram - detail

CPU meminta I/O melakukan operasiModul I/O melakukan operasi/ pModul I/O menetapkan bit statusCPU memeriksa bit status secara periodikCPU memeriksa bit status secara periodikModul I/O tidak melaporkannya ke CPUModul I/O tidak meng-interrupt CPUCPU akan menunggu atau kembali lagi gg g

Perintah perintah I/O (1)Perintah-perintah I/O (1)

CPU dan alamatProsesor mengeluarkan alamat yang menspesifikasi modul I/O dan perangkat ext serta perintah I/Omodul I/O dan perangkat ext, serta perintah I/O

Perintah I/OKetika modul I/O dialamati oleh CPU yaitu:Ketika modul I/O dialamati oleh CPU, yaitu:Control – mengaktifkan periferal dan memberi tahu apa yang harus dilakukan p y g⌧e.g. unit pita magnetik yang diinstruksikan untuk

menggulung ulang atau memajukan sebuahrekaman (perintah ini dikhususkan ke jenis perangkat periferalnya)(p j p g p y )

Perintah perintah I/O (2)Perintah-perintah I/O (2)

Test – menguji berbagai macam kondisi status yg berhubungan dengan perangkat periferalnya⌧e g power? Error?⌧e.g. power? Error?

Read – modul I/O akan memperoleh data dari if l d k d b ff i lperiferal dan menempatkannya pada buffer internal.

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

Pengalamatan perangkat I/OPengalamatan 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)( )

Pemetaan I/OPemetaan I/O

Memori pemetaan I/OPerangkat I/O dan memori berbagi sebuah ruang alamatI/O terlihat mirip dengan memori read / writeI/O terlihat mirip dengan memori read / writeTidak ada perintah khusus untuk I/O

I/O t i l iI/O terisolasiRuang alamat I/O terpisah dengan ruang alamat memoriMemerlukan pemilihan jalur I/O atau memoriTerdapat perintah khusus untuk I/O

I/O Interrupt Driven I/O Interrupt - Driven

CPU harus menungguCPU harus menunggu Tidak ada pengecekan ulang perangkat I/OM d l I/O k l k k i t t bil iModul I/O akan melakukan interrupt bila siap

I/O Interrupt - Driven Operasi dasarOperasi dasar

CPU memerintahkan readModul I/O mendapatkan data dari periferal dengan saat yang bersamaan CPU melakukan kerja yang lainM d l I/O i t t CPUModul I/O menginterrupt CPUCPU meminta dataModul I/O melakukan transfer data

CPU (Prosesor)CPU (Prosesor)

Memerintahkan readMelakukan kerja yang lainCek untuk interrupt disetiap akhir putaran instruksiDilakukan interrupt, jika:

Menyimpan data (register)Proses interrupt⌧Mendapatkan data & menyimpannya

Lihat catatan tentang OSLihat catatan tentang OS

Masalah PerancanganMasalah Perancangan

Bagaimana mengidentifikasi modul melakukan interrupt?Bagaimana menangani multiple interrupt?

Identifikasi Modul Interupsi (1)(1)

Jalur yang berbeda untuk setiap modulJalur yang berbeda untuk setiap modulPoll Software Daisy Chain atau Hardware pollDaisy Chain atau Hardware pollBus Master

Module must claim the bus before it can raiseModule must claim the bus before it can raise interrupte.g. PCI & SCSI

Multiple InterruptsMultiple Interrupts

Setiap jalur interrupt mempunyai prioritasJalur prioritas utama bisa melakukan interrupt jalur yang berprioritas lebih rendahJika

Example PC BusExample - PC Bus

80x86 mempunyai satu jalur interrupt Sistem 8086 menggunakan sebuah 8259A interrupt controller8259A mempunyai 8 jalur interrupt

PC Interrupt LayoutPC Interrupt Layout

80868259A

IRQ0

INTR

QIRQ1IRQ2IRQ3 INTRIRQ3IRQ4IRQ5IRQ6IRQ7

Rangkaian kejadianRangkaian kejadian

8259A menerima interrupt8259A menentukan prioritas8259A 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

Foreground ReadingForeground Reading

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

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

Direct Memory Access(Ak i l )(Akses memori langsung)

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

f /O b dKecepatan Transfer I/O terbatas. Dimana dengan kecepatan itu prosesor dapat menguji dan melayani perangkatp gCPU ditentukan oleh pengaturan transfer I/O

DMA is the answer, jika data yang akan , j y gdipindahkan sangat besar

Fungsi DMA Fungsi DMA

Modul tambahan pada bus sistem

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

Operasi DMA Operasi DMA

CPU mengirim perintah ke DMA :Read/WriteAlamat perangkatPenempatan awal memori Jumlah data (word) yang akan ditransfer

CPU melanjutkan pekerjaan lainCPU melanjutkan pekerjaan lainDMA controller akan memindahkan data tanpa melalui CPUDMA t ll t l h l i i i i l i t iDMA controller setelah selesai mengirim sinyal interupsi ke CPU CPU hanya terlibat di awal dan akhir transfer

Pencurian siklus DMA TransferDMA Transfer

DMA controller mengambil alih bus sistem untuk sebuah siklus dari CPUMengirim satu word dataTidak ada interrupt (terhadap CPU)CPU menghentikan operasi untuk sementara

i.e. sebelum sebuah instruksi atau mengambil data ata men lis dataatau menulis data

Pandangan lainPandangan lain

Apa akibat dari cache memori mempunyai DMAHitung: berapa banyak bus sistem yang bisa digunakan

DMA Configurations (1)DMA Configurations (1)

CPU DMAController

I/ODevice

I/ODevice

Main Memory

Single Bus, DMA controller terpisahSetiap transfer menggunakan bus dua kali

I/O ke DMA kemudian DMA ke memory

CPU terhenti kerjanya dua kali

DMA Configurations (2)DMA Configurations (2)

CPU DMAController

Main Memory

DMAController

I/ODevice

I/ODevice

I/ODevice

Single Bus, Integrated DMA controllerController bisa menangani >1 perangkatSetiap transfer mengunakan bus satu kali

DMA ke memory

CPU terhenti kerjanya satu kali

DMA Configurations (3)DMA Configurations (3)

CPU DMAController

Main Memory

Pemisahan bus I/O

I/ODevice

I/ODevice

I/ODevice

I/ODevice

Pemisahan bus I/OBus mendukung semua perangkat DMA Setiap transfer menggunakan bus satu kaliSetiap transfer menggunakan bus satu kali

DMA ke memory

CPU terhenti kerjanya satu kaliCPU terhenti kerjanya satu kali

I/O ChannelsI/O Channels

Perangkat I/O semakin rumite.g. 3D graphics cards

CPU memerintahkan I/O controller melakukan transferI/O ll l k k fI/O controller melakukan semua transferKinerja

Beban kerja CPU berkurangKinerja keseluruhan meningkat

Interfacing (antar muka)Interfacing (antar muka)

Menghubungkan beberapa perangkat menjadi satuSerial atau paralel?Diperuntukkan processor/memory/buses?

E.g. SCSI, FireWire, Infiniband

Foreground ReadingForeground Reading

Check out Universal Serial Bus (USB)Compare with other communication standards e.g. Ethernet