- Type
- Handout
- Course
- CS501 Advance Computer Architecture
- Size
- PDF 13.8 MB
- Updated
- 23 Oct 2026
You get 3 free files a day on the website. Add the Chrome extensionSign in with the extension for 30 a day.
Preview text
Text from pages 1, 2, 3 of 165. Download the file for all 165 pages.
Vincent P. Heuring & Harry F. Jordan Chapter 8 Computer Systems Design and Architecture 8.1, 8.2
Summary
Introduction to I/O Subsystems Major Components of an I/O Subsystems
I/O Buses
Introduction to I/O Subsystems
This module is about the computer/s input and output. As we have seen in the case of memory subsystems, that when we use the terms 1 read2 and 1write2, then these terms are from the CPU/s point of view. Similarly, when we use the terms 1input2 and 1output2 then these are also from the CPU/s point of view. It means that when we are talking about an input cycle, then the CPU is receiving data from a peripheral device and the peripheral device is providing data. Similarly, when we talk about an output cycle then the CPU is sending data to a peripheral device and the peripheral device is receiving data. I/O Subsystems are similar to memory subsystems in many aspects. For example, both exchange bits or bytes. This transfer is usually controlled by the CPU. The CPU sends address information to the memory and the I/O subsystems. Then these subsystems decode the address and decide which device should be involved in the transfer. Finally the appropriate data is exchanged between the CPU and the memory or the I/O device. Memory and I/O subsystems differ in the following ways:
- Wider range of data transfer speed:
I/O devices can be very slow such as a keyboard in which case the interval between two successive bytes (or keystrokes) can be in seconds. On the other extreme, I/O devices can be very fast such as a disk drive sending data to the CPU or a stream of packets arriving over a network, in which case the interval between two successive bytes can be in microseconds or even nanoseconds. While I/O devices can have such a wide range of data transfer speed compared to the CPU/s speed, the case of memory devices is not so. Even if a memory device is slow compared to the CPU, the CPU/s speed can be made compatible by inserting wait states in the bus cycle.
- Asynchronous activity:
Memory subsystems are almost always synchronous. This means that most memory transfers are governed by the CPU/s clock. Generally this is not the case with I/O subsystems. Additional signals, called handshaking signals, are needed to take care of asynchronous I/O transfers.
- Larger degradation in data quality:
Data transferred by I/O subsystems can carry more noise. As an example, telephone line noise can become part of the data transferred by a modem. Errors caused by media defects on hard drives can corrupt the data. This implies that effective error detection and correction techniques must be used with I/O subsystems.
- Mechanical nature of many I/O devices:
Many I/O devices or a large portion of I/O devices use mechanical parts which inherently have a high failure rate. In case an I/O device fails, interruptions in data transfer will occur, reducing the throughput. As an example, if a printer runs out of paper, then additional bytes cannot be sent to it. The CPU/s data should be buffered (or kept in a temporary place) till the paper is supplied to the printer, otherwise the CPU will not be able to do anything else during this time. To deal with these differences, special software programs called device drivers are made a part of the operating system. In most cases, device drivers are written in assembly language. You would recall that in case of memory subsystems, each location uses a unique address from the CPU/s address space. This is generally not the case with I/O devices. In most cases, a group or block of contiguous addresses is assigned to an I/O device, and data is exchanged bytebybyte. Internal buffers (memory) within the device store this data if needed. In the past, people have paid a lot of attention to improve the CPU/s performance, as a result of which the performance improvement of I/O subsystems was ignored. (I/O subsystems were even called the 1orphans2 of computer architecture by some people). Perhaps, many benchmark programs and metrics that were developed to evaluate computer systems focused on the CPU or the memory performance only. Performance of I/O subsystems is as important as that of the CPU or the memory, especially in today/s world. For example, the transaction processing systems used in airline reservation systems or the automated teller machines in banks have a very heavy I/O traffic, requiring improved I/O performance. To illustrate this point, look at the following example. Suppose that a certain program takes 200 seconds of elapsed time to execute. Out of these 200 seconds, 180 seconds is the CPU time and the rest is I/O time. If the CPU performance improves by 40% every year for the next seven years because of developments in technology, but the I/O performance stays the same, let us look at the following table, which shows the situation at the end of each year. Remember that Elapsed time = CPU time + I/O time. This gives us the I/O time = 200 F 180 = 20 seconds at the beginning, which is 10 % of the elapsed time.
10 % 13.42 % 17.85 % 23.25 % 29.85 % 37.03 % 45.45 % 54.05 %
It can be easily seen that over seven years, the I/O time will become more than 50 % of the total time under these conditions. Therefore, the improvement of I/O performance is as important as the improvement of CPU performance. I/O performance will also be discussed in detail in a later section.
Major components of an I/O
subsystem
I/O subsystems have two major parts: The I/O interface, which is the electronic circuitry that connects the CPU to the I/O device. Peripherals, which are the devices used to communicate with the CPU, for example, the keyboard, the monitor, etc.
A Computer Interface is a piece of hardware whose primary purpose is to connect together any of the following types of computer elements in such a way that the signal levels and the timing requirements of the elements are matched by the interface. Those elements are: The processor unit The memory subsystem(s) Peripheral (or I/O) devices The buses (also called "links") In other words, an interface is an electronic circuit that matches the requirements of the two subsystems between which it is connected. An interface that can be used to connect the microcomputer bus to peripheral devices is called an I/O Port. I/O ports serve the following three purposes:
Related CS501 files
All CS501 files →- CS501 Final Term Solved File 5 by Team Hadi Final term PDF 2.9 MB
- CS501 Quiz 3 by Sunrise Zeeshan Quiz PDF 4.7 MB
- CS501 Highlighted Handouts Set 2 by Masters Highlighted PDF 19.7 MB
- CS501 Highlighted Handouts by VU Topper RM Highlighted PDF 13 MB
- CS501 Handouts Lectures 1-45 Handout PDF 5.6 MB
- CS501 Final Term Highlighted Handouts Set 2 by Masters Highlighted PDF 4.4 MB
Get more out of VUBuddy, for free
- Unlimited downloads
- The explanation behind every MCQ answer
- Study offline on slow data
- 30 downloads a day instead of 3
- Sign in and buy Pro Semester here
One Pro Semester membership works in both the extension and the app.