Computer Organization & Architecture Lecture #19 Input/Output The computer system’s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of controlling interaction with the outside world and to provide the operating system with the information it needs to manage I/O activity effectively. There are three principal I/O techniques: programmed I/O, in which I/O occurs under he direct and continuous control of the program requesting the I/O operation; interrupt-driven I/O, in which a program issues an I/O command and then continues to execute, until it is interrupted by the I/O hardware to signal the end of the I/O operations; and direct memory access (DMA), in which a specialized I/O processor takes over control of an I/O operation to move a large block of data. Two important examples of external I/O interfaces are FireWire and Infiniband. Peripherals and the System Bus • There are a wide variety of peripherals each with varying methods of operation o Impractical to for the processor to accommodate all • Data transfer rates are often slower than the processor and/or memory o Impractical to use the high-speed system bus to communicate directly • Data transfer rates may be faster than that of the processor and/or memory o This mismatch may lead to inefficiencies if improperly managed • Peripheral often use different data formats and word lengths Purpose of I/O Modules • Interface to the processor and memory via the system bus or control switch • Interface to one or more peripheral devicesExternal Devices External device categories • Human readable: communicate with the computer user – CRT • Machine readable: communicate with equipment – disk drive or tape drive • Communication: communicate with remote devices – may be human readable or machine readable The External Device – I/O Module • Control signals: determine the function that will be performed • Data: set of bits to be sent of received • Status signals: indicate the state of the device • Control logic: controls the device’s operations • Transducer: converts data from electrical to other forms of energy • Buffer: temporarily holds data being transferred Keyboard/Monitor • Most common means of computer/user interaction • Keyboard provides input that is transmitted to the computer • Monitor displays data provided by the computer • The character is the basic unit of exchange • Each character is associated with a 7 or 8 bit codeDisk Drive • Contains electronics for exchanging data, control, and status signals with an I/O module • Contains electronics for controlling the disk read/write mechanism • Fixed-head disk – transducer converts between magnetic patterns on the disk surface and bits in the buffer • Moving-head disk – must move the disk arm rapidly across the surface I/O Modules Module Function • Control and timing • Processor communication • Device communication • Data buffering • Error detection I/O control steps • Processor checks I/O module for external device status • I/O module returns status • If device ready, processor gives I/O module command to request data transfer • I/O module gets a unit of data from device • Data transferred from the I/O module to the processor Processor communication • Command decoding: I/O module accepts commands from the processor sent as signals on the control bus • Data: data exchanged between the processor and I/O module over the data bus • Status reporting: common status signals BUSY and READY are used because peripherals are slow • Address recognition: I/O module must recognize a unique address for each peripheral that it controlsI/O module communication • Device communication: commands, status information, and data • Data buffering: data comes from main memory in rapid burst and must be buffered by the I/O module and then sent to the device at the device’s rate • Error detection: responsible for reporting errors to the processor Typical I/O Device Data Rates I/O Module Structure Block Diagram of an I/O Module• Module connects to the computer through a set of signal lines – system bus • Data transferred to and from the module are buffered with data registers • Status provided through status registers – may also act as control registers • Module logic interacts with processor via a set of control signal lines • Processor uses control signal lines to issue commands to the I/O module • Module must recognize and generate addresses for devices it controls • Module contains logic for device interfaces to the devices it controls • I/O module functions allow the processor to view devices is a simple-minded way • I/O module may hide device details from the processor so the processor only functions in terms of simple read and write operations – timing, formats, etc… • I/O module may leave much of the work of controlling a device visible to the processor – rewind a tape, etc… I/O channel or I/O processor • I/O module that takes on most of the detailed processing burden • Used on mainframe computers I/O controller of device controller • Primitive I/O module that requires detailed control • Used on microcomputers Programmed I/O Overview of Programmed I/O • Processor executes an I/O instruction by issuing command to appropriate I/O module • I/O module performs the requested action and then sets the appropriate bits in the I/O status register – I/O module takes not further action to alert the processor – it does not interrupt the processor • The processor periodically checks the status of the I/O module until it determines that the operation is completeI/O Commands The processor issues an address, specifying I/O module and device, and an I/O command. The commands are: • Control: activate a peripheral and tell it what to do • Test: test various status conditions associated with an I/O module and its peripherals • Read: causes the I/O module to obtain an item of data from the peripheral and place it into an internal register • Write: causes the I/O module to take a unit of data from the data bus and transmit it to the peripheral Three Techniques for Input of a Block of Data I/O Instructions Processor views I/O operations in a similar manner as memory operations Each device is given a unique
View Full Document