190 likes | 541 Views
I/O Devices. Connected to the Backplane bus Hard disk controllers Graphics adapters Serial I/O Sound Cards Virtual Reality Helmet Gloves Quake controller. I/O Performance. I/O Bandwidth How much data can we move from A to B/time unit How many I/O operations can we perform/time unit
E N D
I/O Devices • Connected to the Backplane bus • Hard disk controllers • Graphics adapters • Serial I/O • Sound Cards • Virtual Reality • Helmet • Gloves • Quake controller
I/O Performance • I/O Bandwidth • How much data can we move from A to B/time unit • How many I/O operations can we perform/time unit • Latency per access • Low long do we have to wait to get access • Response time • The total time to perform a task
Disk I/O Performance • Supercomputer Benchmarks • Batch jobs • Large files • Throughput of data • Transaction Processing • I/O Rate • Many small accesses • File System • MakeDir, Copy, ScanDir, ReadAll, Make
Types of I/O Devices • Behavior • Input, Output, Storage • Partner • Human/Machine • Data Rate • Human • Keyboard, 10b/sec • Voice, 100kb/sec • Hard Disk • 10Mb/sec
Hard disk 1-10 inches • 2-20 Platters • 3600-7400 RPM • 1-10 Inch Diameter • 500-2000 tracks/surface • 32-128 sectors/track • Cylinder • All tracks at one position 2-20 Sectors Track
Hard Disk • Average Seek Time (average time to move a track) • 8-12 ms • Does not consider locality • Rotational Latency • 4-8 ms • Often dominates over Seek Time • Start reading to ring-buffer when track reached • Transfer Rate • 2-10 Mb/sec 30 31 32 1 2 3 …
Other Properties • Storage Size 500Mb-10Gb • Cylinder 0, Boot Block • Partition Information • Usually a Physical Disk is devided into Smaller Partitions • File System Information • File System • The “data structure” for storing files and folders • Usually Hierarchical • Folders, sub folders and files • File types, (program/data-format) and protection bits
SCSI/EIDE I/O Bus • SCSI • General purpose interface for HDs, Scanners, Streamers, etc • Both synchronous/asynchronous operation • 5Mb/sec (standard SCSI higher for wide and ultra-wide) • 7 Devices/Bus Mastering/Self Selection Arbitration • EIDE • HDs and HD like devices (CR-ROMs etc) • Synchronous • 5Mb/sec • 2 Devices on each controller • HD controller on Interface
Networks • RS-232, copper wire 19.2kbit/sec • Serial Point to Point Protocol (ppp) • LAN (Local Area Network), coaxial 100Mbit/sec • Ethernet 10Mbit/sec • Package 128-1530 bytes • Actually a bus with collision detection • Long Haul Network, fiber 1Gbit/sec • ARPANET (US government) became INTERNET • Packet Switched Networks
Network File System • Mounting Devices over the Network (usually LAN) • Local and Network devices transparent to User • Network Server - Local Client (a protocol) • Needs support by the OS • Local TCP stack, handles streams of I/O • Network Server forwards these streams • “Samba Server” makes Unix devices available to PCs
Graphics Adapters • Each pixel uses a bit array (1-24bits) • 1280*1024*24bits/pixel needs approximately 4Mb Red Green Blue Yellow White 8 + 8 + 8 =24bits/pixel
Graphics Adapter Design • Needs to update the Screen 60-100 times/sec (frames) • At 80Hz*4Mb=320Mb/sec Huge Throughput • We use special VRAM (Video RAM) • Shifts out bits to DAC at this high rate • Usually contain a Graphics Accelerator, which • Move and Copy Blocks of data in local VRAM • Perform operations, like AND/EXOR (bit mask) • Functions Line, Polygon Fill • “3D” functions like: • Polygon Shading, Texture Mapping etc.
Video Application Example • A system for real-time video recording/playback • A Frame Grabber, records video to HD • A Graphics Adapter displays video from HD • 640*480*8bits/pixel (256 colors) • 300kb/frame recording or playback • We do NOT want CPU in data path
Approach 1 • The Frame Grabber records one Frame (300kb) to local buffer • Frame Grabber gives interrupt • The OS sets up a DMA transfer from FG to RAM • The DMA gives interrupt • The OS sets up a DMA transfer to HD • The DMA gives interrupt • The HD gives interrupt, data written to disk • At 25 frames/sec (TV quality) this gives • 2 (first to RAM then to HD) * 300 * 25 = 15Mb/sec Hmm, no Good! A lot bus activity, too high HD throughput (and this is for just recording)
Approach 2 • Put MPEG-2 hardware compression on the Frame Grabber, now only 30kb/frame • Frame Grabber gives interrupt • The OS sets up a DMA transfer from FG to HD • The DMA gives interrupt • The HD gives interrupt, data written to disk • At 25 frames/sec (still TV quality) this gives • 30 * 25 = 750kb/sec • Simultaneous record/playback gives • 1.5 Mb HD throughput, which is possible but still quite high • A lot of activity on the SCSI bus
Approach 3 • Frame Grabber • MPEG-2 hardware compression, now only 30kb/frame • Graphics Adapter, that can display MPEG-2 frames • SCSI bus to local HD for video storage • Interrupt each frame recorded, or finished playback sequence • Best solution! Almost no bus PC bus activity • You get what you pay for, this one will cost you $$$$
High Fidelity Audio • PCM 44.1 kHz 16bits Stereo (WAV/AIFF) • 96 db signal/noice ratio 16 bit signed integer Left 16 bit signed integer Right
Sound Cards • Wave-Table playback • 16 bit (Stereo at 44.1 kHz) • 32 voices • 5.6 Mb/sec (quite high bandwidth) WaveTable ROM/RAM Signal Processor Audio MIX DA/Filter ...
Audio I/O • In/Out • Data Buffers • DMA Channel • IRQ (Interrupt number) 2 IRQ for full duplex operation • 350kb/sec throughput on bus, OK In Buffer DSP Filter/Ad Audio In Out Buffer DA/Filter Audio Out