Input/Output
Permasalahan
Input/Output
•
Jenis
Perangkat I/O bermacam-macam, hal ini mengakibatkan
—
Adanya
perbedaan jumlah pengiriman data
—
Perbedaan
kecepatan pengiriman data
—
Perbedaan
format data
•
Semua
perangkat I/O lebih lambat dibandingkan CPU dan RAM
•
Membutuhkan
modul I/O
Modul
Input/Output
•
Berfungsi
sebagai
—
Interface
terhadap CPU and Memory
—
Interface
terhadap satu atau lebih periferal
Model Umum Modul I/O
Pengelompokan
Peralatan External
•
Human
readable, perangkat yang dapat dengan mudah dibaca manusia
—
Screen,
printer, keyboard
•
Machine
readable, perangkat yang dapat dibaca hanya oleh mesin
—
Monitoring
and control
•
Communication,
perangkat untuk kebutuhan komunikasi data.
—
Modem
—
Network
Interface Card (NIC)
Block Diagram
dari Peralatan External
Fungsi
Modul I/O
•
Pengendalian
dan pewaktuan
•
Komunikasi
dengan CPU
•
Komunikasi
dengan peralatan
•
Penampungan
Data
•
Pendeteksian
kesalahan (Error Detection)
Langkah
pengaksesan I/O
•
CPU
meminta modul I/O untuk memeriksa status perangkat yang terhubung
•
Modul
I/O memberikan jawaban tentang status perangkat
•
Bila
keadaan perangkat “siap”, maka CPU meminta pemindahan data
•
Modul
I/O menerima data dari peralatan/device
•
Modul
I/O memindahkan data ke CPU
Diagram
Modul I/O
Komunikasi
dengan CPU
•
Command
Decoding,
menterjemahkan perintah CPU
•
Data, mempertukarkan data
antara CPU dengan modul I/O melalui bus data
•
Status
Reporting,
melaporkan status yang terjadi para peralatan I/O, misal error dan ready
•
Address
recognition,
Teknik-teknik
Input Output
•
Programmed
•
Interrupt
driven
•
Direct
Memory Access (DMA)
Tiga Teknik untuk memasukkan sebuah blok data
Programmed
I/O
•
CPU
mengontrol I/O secara menyeluruh
—
Mendeteksi
status
—
Memberikan
perintah Read/write
—
Memindahkan
data
•
CPU
menunggu modul I/O menyelesaikan operation-nya
•
Membuang
waktu CPU secara percuma
Programmed
I/O – detail
•
CPU
meminta I/O untuk beroperasi
•
Modul
I/O melakukan operasi
•
Modul
I/O mengatur nilai bit status
•
CPU
memeriksa bit status secara periodik
•
Modul
I/O tidak memberitahukan statusnya kepada CPU secara langsung
•
Modul
I/O tidak menginterupsi CPU
•
CPU
mungkin nunggu atau akan kembali ke proses setelah beberapa saat.
Perintah-perintah I/O
•
CPU
mengeluarkan address yang akan diakses.
—
Identifies
module (& device if >1 per module)
•
CPU
mengeluarkan perintah.
—
Control
- telling module what to do
–
e.g.
spin up disk
—
Test
- check status
–
e.g.
power? Error?
—
Read/Write
–
Module
transfers data via buffer from/to device
Addressing
I/O Devices
•
Under
programmed I/O data transfer is very like memory access (CPU viewpoint)
•
Each
device given unique identifier
•
CPU
commands contain identifier (address)
Pemetaan
I/O (I/O Mapping)
•
Memory mapped I/O
—
Devices
and memory share an address space
—
I/O
looks just like memory read/write
—
No
special commands for I/O
–
Large
selection of memory access commands available
•
Isolated I/O
—
Separate
address spaces
—
Need
I/O or memory select lines
—
Special
commands for I/O
—
Limited
set
Interrupt
Driven I/O
•
Untuk
mengatasi waktu tunggu CPU
•
CPU
tidak perlu berulang kali memeriksa status perangkat/device
•
Modul
I/O akan memberikan interupsi ke CPU manakala peralatan telah siap.
Operasi
Dasar Interrupt Driven I/O
•
CPU
memberikan perintah baca/read
•
Modul
I/O mengambil data dari peripheral sementara itu CPU tidak bekerja
•
Modul
I/O memberikan interupsi kepada CPU
•
CPU
meminta data
•
Modul
I/O mentransfer data
Simple Interrupt Processing
Interupt
Driven dipandang dari CPU
•
Mengeluarkan
perintah baca/read
•
Lakukan
pekerjaan yang lain
•
Periksa
adakah interupsi pada setiap akhir siklus instruction
•
Bila
ada interupsi :
—
Save
context (registers)
—
Process
interrupt
–
Fetch
data & store
Direct
Memory Access
•
Interrupt driven and programmed I/O membutuhkan
intervensi CPU secara active
—
Transfer rate is limited
•
Bagaimana untuk transfer data dalam jumlah besar ?
—
DMA is the answer
Fungsi DMA
•
DMA adalah modul-modul tambahan pada bus system
•
Modul DMA mampu menirukan CPU, bahkan mengambil alih
kontrol CPU terkait dengan pengaksesan data.
Typical DMA Module Diagram
DMA Operation
•
Informasi dari CPU yang diberikan kepada DMA
controller :
—
Perintah Read/Write
—
Alamat Peralatan (Device address)
—
Alamat awal dari blok memori untuk data
—
Jumlah data yang akan dipindahkan
•
CPU melakukan pekerjaan lainya
•
DMA controller
akan melakukan aktifitas pemindahan
•
DMA controller akan memberikan interupsi tatkala tugas
dia selesai
DMA Transfer Cycle Stealing
•
DMA Transfer Cycle Stealing adalah proses pengambil
alihan system bus oleh DMA controller untuk proses pemindahan data.
•
Pemindahan data dilakukan secara satu word
•
Tidak terjadi interupsi, sehingga CPU tidak melakukan
switch context
•
CPU ditahan sesaat sebelum dia mengakses bus
—
i.e. before an operand or data fetch or a data write
•
Aktifitas ini memperlambat kerja CPU namun tidak
selambat bila CPU sendiri yang melakukan transfer data.
DMA Configurations (1)
•
Single Bus, Detached DMA controller
•
Each transfer uses bus twice
—
I/O to DMA then DMA to memory
•
CPU is suspended twice
DMA Configurations (2)
•
Single Bus, Integrated DMA controller
•
Controller may support >1 device
•
Each transfer uses bus once
—
DMA to memory
•
CPU is suspended once
DMA Configurations (3)
•
Separate I/O Bus
•
Bus supports all DMA enabled devices
•
Each transfer uses bus once
—
DMA to memory
•
CPU is suspended once
Saluran I/O
•
Perangkat I/O makin lama makin canggih
•
CPU memerintahkan
I/O controller untuk melakukan transfer data
•
I/O controller melakukan transfer data secara tuntas
•
Meningkatkan kecepatan sistem
—
Mengurangi beban kerja CPU
—
Kerja prosesor menjadi lebih cepat
Arsitektur Saluran I/O
Antarmuka Eksternal
•
Interface paralel
•
Interface Serial
Ke system bus Ke Pheriferal Ke System Bus Ke Pheriferal
Konfigurasi Modul IO
•
Konfigurasi antara modul IO di dalam sebuah sistem komputer
dan perangkat eksternal dapat berbentuk :
—
point to point
–
Contoh : keyboard, printer, modem eksternal
—
multi point
–
Contoh : CD ROM, video, audio
Small Computer System Interface (SCSI
•
Dipopulerkan oleh Macintosh tahun 1984
•
SCSI merupakan interface standar untuk CD-ROM,
peralatan audio, dan perangkat penyimpan eksternal berukuran besar.
•
SCSI menggunakan interface paralel dengan 6,16,32 atau
64 saluran data.
•
Memiliki dua konektor ; input dan output.
•
Seluruh perangkat berfungsi secara independen.
•
Signal dan Fase
•
Pertukaran signal pada bus SCSI terjadi antara
inisiator dan target.
•
Aktifitas pada bus SCSI terjadi dalam rangkaian
fase-fase sebagai berikut :
•
Bus free
•
Arbitration
•
Selection
•
Reselection
•
Command
•
Data
•
Status
•
Message
•
Signal dan Fase
•
Pertukaran
signal pada bus SCSI terjadi antara inisiator dan target.
•
Aktifitas pada bus SCSI terjadi dalam rangkaian
fase-fase sebagai berikut :
•
Bus free : mengindikasikan bahwa tidak terdapat
perangkat yang menggunakan bus dan bus siap digunakan
•
Arbitration : Mengizinkan sebuah perangkat untuk
mendapatkan kontrol bus sehingga perangkat tersebut dapat mengawali atau
melanjutkan proses IO
•
Selection : Mengizinkan sebuah inisiator memilih
target untuk membentuk suatu fungsi seperti perintah Read/Write
•
Reselection : Mengizinkan traget tersambung lagi
dengan inisiator untuk melanjutkan operasi yang sebelumnya dimulai oleh
inisiator namun dihentikan oleh target.
•
Command
•
Data
•
Status
•
Message
IEEE
1394 FireWire
•
High
performance serial bus
•
Fast
•
Low
cost
•
Easy
to implement
•
Also
being used in digital cameras, VCRs and TV
FireWire
Configuration
•
Daisy
chain
•
Up
to 63 devices on single port
—
Really
64 of which one is the interface itself
•
Up
to 1022 buses can be connected with bridges
•
Automatic
configuration
•
No
bus terminators
•
May
be tree structure
Simple FireWire Configuration
FireWire
3 Layer Stack
•
Physical
—
Transmission
medium, electrical and signaling characteristics
•
Link
—
Transmission
of data in packets
•
Transaction
—
Request-response
protocol
FireWire Protocol Stack
FireWire
- Physical Layer
•
Data rates from 25 to
400Mbps
•
Two forms of
arbitration
—
Based
on tree structure
—
Root
acts as arbiter
—
First
come first served
—
Natural
priority controls simultaneous requests
–
i.e.
who is nearest to root
—
Fair
arbitration
—
Urgent
arbitration
FireWire
- Link Layer
•
Two transmission types
—
Asynchronous
–
Variable
amount of data and several bytes of transaction data transferred as a packet
–
To
explicit address
–
Acknowledgement
returned
—
Isochronous
–
Variable
amount of data in sequence of fixed size packets at regular intervals
–
Simplified
addressing
–
No
acknowledgement
FireWire
Subactions