Senin, 11 Juni 2012

Input/Output


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

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | JCPenney Coupons