CH07 Input/Output Input/Output Problems • • • • • • • • Wide variety of peripherals External Devices I/O Modules Programmed I/O Interrupt-Driven I/O Direct Memory Access I/O Channels and Processor The External Interface: SCSI and FireWire 4Delivering different amounts of data 4At different speeds 4In different formats • All slower than CPU and RAM • Need I/O modules TECH CH06 Computer Science Input/Output Module Generic Model of an I/O Module • Interface to CPU and Memory • Interface to one or more peripherals • GENERIC MODEL OF I/O DIAGRAM 6.1 External Devices I/O Module Function • Human readable • • • • • 4Screen, printer, keyboard • Machine readable 4Monitoring and control • Communication 4Modem 4Network Interface Card (NIC) Control & Timing CPU Communication Device Communication Data Buffering Error Detection 1 I/O Steps • • • • • • CPU checks I/O module device status I/O module returns status If ready, CPU requests data transfer I/O module gets data from device I/O module transfers data to CPU Variations for output, DMA, etc. I/O Module Diagram Systems Bus Interface External Device Interface Data Register Data Lines Status/Control Register Address Lines Data Lines Input Output Logic I/O Module Decisions Input Output Techniques • • • • • Programmed • Interrupt driven • Direct Memory Access (DMA) Hide or reveal device properties to CPU Support multiple or single device Control device functions or leave for CPU Also O/S decisions External Device Interface Logic External Device Interface Logic Data Status Control Data Status Control 4e.g. Unix treats everything it can as a file Three I/O Techniques Programmed I/O • CPU has direct control over I/O 4Sensing status 4Read/write commands 4Transferring data • CPU waits for I/O module to complete operation • Wastes CPU time 2 Programmed I/O - detail I/O Commands • • • • • • • • CPU issues address CPU requests I/O operation I/O module performs operation I/O module sets status bits CPU checks status bits periodically I/O module does not inform CPU directly I/O module does not interrupt CPU CPU may wait or come back later 4Identifies module (& device if >1 per module) • CPU issues command 4Control - telling module what to do f e.g. spin up disk 4Test - check status f e.g. power? Error? 4Read/Write f Module transfers data via buffer from/to device Addressing I/O Devices I/O Mapping • Memory mapped I/O • Under programmed I/O data transfer is very like memory access (CPU viewpoint) • Each device given unique identifier • CPU commands contain identifier (address) 4Devices and memory share an address space 4I/O looks just like memory read/write 4No special commands for I/O f Large selection of memory access commands available • Isolated I/O 4Separate address spaces 4Need I/O or memory select lines 4Special commands for I/O f Limited set Interrupt Driven I/O Simple Interrupt Processing • Overcomes CPU waiting • No repeated CPU checking of device • I/O module interrupts when ready 3 Interrupt Driven I/O Basic Operation • CPU issues read command • I/O module gets data from peripheral whilst CPU does other work • I/O module interrupts CPU • CPU requests data • I/O module transfers data CPU Viewpoint • • • • Issue read command Do other work Check for interrupt at end of each instruction cycle If interrupted:4Save context (registers) 4Process interrupt f Fetch data & store • See Operating Systems notes Design Issues // Identifying Interrupting Module (1) • How do you identify the module issuing the interrupt? • How do you deal with multiple interrupts? • Different line for each module 4i.e. an interrupt handler being interrupted 4PC 4Limits number of devices • Software poll 4CPU asks each module in turn 4Slow Identifying Interrupting Module (2) Multiple Interrupts • Daisy Chain or Hardware poll • Each interrupt line has a priority • Higher priority lines can interrupt lower priority lines • If bus mastering only current master can interrupt 4Interrupt Acknowledge sent down a chain 4Module responsible places vector on bus 4CPU uses vector to identify handler routine • Bus Master 4Module must claim the bus before it can raise interrupt 4e.g. PCI & SCSI 4 Example - PC Bus Sequence of Events • • • • • • • 80x86 has one interrupt line • 8086 based systems use one 8259A interrupt controller • 8259A has 8 interrupt lines PC Interrupt Layout 8259A accepts interrupts 8259A determines priority 8259A signals 8086 (raises INTR line) CPU Acknowledges 8259A puts correct vector on data bus CPU processes interrupt ISA Bus Interrupt System 8259A 8086 • ISA bus chains two 8259As together • Link is via interrupt 2 • Gives 15 lines CPU • IRQ 9 is used to re-route anything trying to use IRQ 2 416 lines less one for link IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 4Backwards compatibility INTR • Incorporated in chip set I/O Module ISA Interrupt Layout Foreground Reading // • http://www.pcguide.com/ref/mbsys/res/irq/func.htm (IRQ 2) 8259A IRQ0 (8) IRQ1 (9) IRQ2 (10) IRQ3 (11) IRQ4 (12) IRQ5 (13) IRQ6 (14) IRQ7 (15) 8259A IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 80x86 • In fact look at http://www.pcguide.com/ INTR 5 Direct Memory Access DMA Function • Interrupt driven and programmed I/O require active CPU intervention • Additional Module (hardware) on bus • DMA controller takes over from CPU for I/O 4Transfer rate is limited 4CPU is tied up • DMA is the answer DMA Transfer Cycle Stealing DMA Operation • CPU tells DMA controller:- • DMA controller takes over bus for a cycle • Transfer of one word of data • Not an interrupt 4Read/Write 4Device address 4Starting address of memory block for data 4Amount of data to be transferred 4CPU does not switch context • CPU suspended just before it accesses bus • CPU carries on with other work • DMA controller deals with transfer • DMA controller sends interrupt when finished 4i.e. before an operand or data fetch or a data write • Slows down CPU but not as much as CPU doing transfer DMA Configurations (1) DMA Configurations (2) CPU CPU DMA Controller I/O Device I/O Device • Single Bus, Detached DMA controller • Each transfer uses bus twice 4I/O to DMA then DMA to memory • CPU is suspended twice Main Memory DMA Controller I/O Device I/O Device DMA Controller Main Memory I/O Device • Single Bus, Integrated DMA controller • Controller may support >1 device • Each transfer uses bus once 4DMA to memory • CPU is suspended once 6 DMA Configurations (3) I/O Channels • I/O devices getting more sophisticated 4e.g. 3D graphics cards DMA Controller CPU I/O Device I/O Device • Separate I/O Bus • Bus supports all DMA enabled devices • Each transfer uses bus once I/O Device Main Memory I/O Device • CPU instructs I/O controller to do transfer • I/O controller does entire transfer • Improves speed 4Takes load off CPU 4Dedicated processor is faster 4DMA to memory • CPU is suspended once 6.7 External Interfacing Small Computer Systems Interface (SCSI) • • • • • • • • • • • • Connecting external devices together Bit of wire? Parallel interface; e.g. parallel port, SCSI Serial interface; e.g. serial port, FireWire Point-to-point; e.g. keyboard, modem, display Multipoint; SCSI, FireWire, USB, (Bus) Parallel interface 8, 16, 32 bit data lines Daisy chained; host7~d0~d1~…d6~T Drive 7 has highest priority Devices are independent Devices can communicate with each other as well as host Configuring SCSI SCSI - 1 • Bus must be terminated at each end • • • • • 4Usually one end is host adapter 4Plug in terminator or switch(es) • SCSI Id must be set 4Jumpers or switches 4Unique on chain 40 (zero) for boot device 4Higher number is higher priority in arbitration Early 1980s 8 bit 5MHz Data rate 5MBytes.s-1 Seven devices 4Eight including host interface 7 SCSI - 2 SCSI Signaling (1) • • • • • Between initiator and target 1991 16 and 32 bit 10MHz Data rate 20 or 40 Mbytes.s-1 • (Check out Ultra/Wide SCSI) 4Usually host & device • • • • Bus free? (c.f. Ethernet) Arbitration - take control of bus (c.f. PCI) Select target Reselection 4Allows reconnection after suspension 4e.g. if request takes time to execute, bus can be released SCSI Signaling (2) • • • • Command - target requesting from initiator Data request Status request Message request (both ways) SCSI Timing Diagram SCSI Bus Phases Reset Bus free Arbitration (Re)Selection Command, Data, Status, Message SCSI Read e.g. (transfer data from target to initiator) • (1) Arbitration 4Each device asserts BSY and one of data lines (0,1,2,…7 highest), highest priority wins 4 Winner is the initiator • (2) Selection phase 4Initiator asserts SEL, its own ID, target ID 4Initiator negates BSY 4Target recognizes its ID, it assets the BSY 4Initiator release the data bus and negates SEL 8 SCSI Read e.g. cont… SCSI Read e.g. cont… • (3) Command phase • (4) Data phase 4Target asserts C/D, then asserts REQ 4Initiator places first byte of the command and asserts ACK 4Target reads the command, then negates REQ 4Initiator then negates ACK 4(this first command contains operation code and how many bytes remain to be transferred.) 4Use the same REQ and ACK handshaking to transfer the remaining bytes. 4(in this e.g. the command is a Read; transfer data from target to initiator 4After interpreted the command, target negate C/D (means data bus contains data), it asserts I/O (means direction of transfer is target to initiator) 4Target places the first byte of data on the bus, asserts the REQ 4Initiator reads the byte and asserts ACK 4The remaining data transfer using REQ and ACK handshaking SCSI Read e.g. cont… IEEE 1394 FireWire // • (5) Status phase • • • • • • 4Target asserts C/D, and remains asserting I/O 4Use REQ and ACK handshaking to transfer successfully transfer, (no problem) • (6) Message Phase 4Target asserts MSG, places “Command Complete” message on the bus, use REQ and ACK 4Target received ACK from initiator, then release all bus signals and negates BSY 4(Done!) High performance serial bus Fast Low cost Easy to implement Also being used in digital cameras, VCRs and TV Sony call this bus I-link. FireWire Configuration FireWire 3 Layer Stack • Daisy chain • Up to 63 devices on single port • Physical 4Really 64 of which one is the interface itself • • • • • Up to 1022 buses can be connected with bridges May be tree structure Hot plugging Automatic configuration No bus terminators 4Transmission medium, electrical and signaling characteristics • Link 4Transmission of data in packets • Transaction 4Request-response protocol 9 FireWire - Physical Layer FireWire - Link Layer • Data rates from 25 to 400Mbps • Two forms of arbitration • Transmission of data in the from of packets • Two transmission types 4Based on tree structure 4Root acts as arbiter 4First come first served 4Natural priority controls simultaneous requests f i.e. who is nearest to root 4Fair arbitration (time for using bus by fairness intervals) 4Urgent arbitration (urgent device may use up to 75% of the bus time) 4Asynchronous f Variable amount of data and several bytes of transaction data transferred as a packet f To explicit address f Acknowledgement returned 4Isochronous f Variable amount of data in sequence of fixed size packets at regular intervals f Simplified addressing f No acknowledgement FireWire – Transaction Layer Foreground Reading • Define a request-response protocol that hides the lower-layer details of FireWire from applications • E.g. TCP/IP • Check out Universal Serial Bus (USB) • Compare with other communication standards e.g. Ethernet Exercises • • • • Check up on-line slide show on: www.laTech.edu/~choi Read CH 6 Do Problems: 43.1 44.2 & 4.9 45.1 • Due BY Email to: choi@laTech.edu • Due by Wednesday 10