Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output data buffering
Reexamination Certificate
2000-09-01
2001-12-25
Lee, Thomas (Department: 2182)
Electrical computers and digital data processing systems: input/
Input/output data processing
Input/output data buffering
C709S241000, C710S035000
Reexamination Certificate
active
06334162
ABSTRACT:
BACKGROUND
Field of the Invention
Advances in the design and fabrication of microprocessors in the past few years have resulted in a dramatic increase in processor speeds. In fact average speeds have increased more than four fold in the last decade alone. At the same time peripheral input/output busses have remained substantially constant. For example, the Industry Standard Architecture (ISA) bus operates at 8 MHz while many microprocessors operate in the 100-200 MHz range.
As the discrepancy in speed increases, it has become unfeasible to directly connect the I/O bus to the microprocessor. PC developers have solved this problem by providing “bridge modules” which disconnect the microprocessor/memory from the I/O bus. While this greatly improves the performance of the microprocessor when it is working from memory or cache, it typically does so at the expense of the microprocessor I/O bus interface. In the current PC environment it is typical for a microprocessor to wait 100 or more processor cycles for each I/O bus access.
Under these conditions the amount of time the microprocessor spends handling devices attached to the I/O bus can significantly impact the microprocessor's performance. Many high speed peripheral devices, such as disk drives and network controllers, are designed to be bus masters which allows these devices direct memory access (DMA). This removes the burden of data movement to the peripheral from the microprocessor resulting in an improvement in the utilization of the microprocessor bandwidth. However, microprocessor communication with peripheral devices still remains a major area for improvement.
A critical factor in the performance of today's computer systems is “I/O throughput”. This refers to the ability of a computer system to quickly and efficiently move data between main memory and I/O devices.
FIG. 1
illustrates an environment in which the invention operates. High performance I/O devices generally operate as masters on the system bus for moving data from and to main memory. As bus masters, the I/O devices arbitrate for use of the system bus and directly write data to and read data from main memory. Operation of the I/O device is controlled by “device driver” software executing on the computer's main processor. The device driver monitors and controls the I/O devices by reading and writing their I/O registers across the system bus.
Improved I/O throughput can be achieved by making efficient use of the system bus. Improvements in efficiency appear possible in three areas:
1. reduce the number of register I/O write and read operations;
2. reduce I/O device data transfer overhead such as headers and control blocks; and,
3. utilize burst mode transfer capabilities.
SUMMARY OF THE INVENTION
The invention contemplates a method for transferring data between non-contiguous buffers in the memory and an I/O device. The driver defines a descriptor queue (DQ) in the memory having a base address (DescrBase) and an n descriptor capacity (DescrCount). At initialization the DescrBase, the DescrCount and a third value DescrCurrent, which at initialization equals the value of the DescrBase, are stored in the I/O device. The driver builds one or more descriptors in the DQ, each corresponding to a different one of the data buffers queued for transfer to the I/O device, the descriptors include at least the starting address of the buffer and a byte count. The number of descriptors built is stored in an enqueue (DescrEnq) register in the I/O device.
The I/O device examines the DescrEnq value for a non-zero condition and fetches a number of descriptors from the DQ corresponding to the DescrEnq value starting at the address specified by the DescrCurrent value and increments the DescrCurrent value and decrements the DescrEnq value each time a descriptor is fetched. The descriptors are used to read the memory and transfer the data read across the system bus for transmission.
REFERENCES:
patent: 4473880 (1984-09-01), Budde et al.
patent: 4888691 (1989-12-01), George et al.
patent: 4905184 (1990-02-01), Giridhar et al.
patent: 5050066 (1991-09-01), Myers et al.
patent: 5459839 (1995-10-01), Swarts et al.
patent: 5488724 (1996-01-01), Firoozmand
patent: 5566352 (1996-10-01), Wishneusky
patent: 5708779 (1998-01-01), Graziano et al.
patent: 5717952 (1998-02-01), Christiansen et al.
patent: 5781749 (1998-07-01), Quere
patent: 5828901 (1998-10-01), O'Toole et al.
patent: 5870627 (1999-02-01), O'Toole et al.
IBM Technical Disclosure Bulletin, V34 #5 10/91 “Creating Reference History for Optical Via Dismount Delay”.
IBM Technical Disclosure Bulletin V36 #1 01/93 “Asynchronous/Queued I/O Processor Architecture”.
Garrett Henry Michael
Holland William G.
Logan Joseph Franklin
McDonald Joseph Gerald
Stacy John Kenneth
Cockburn Joscelyn G.
International Business Machines - Corporation
Lee Thomas
Park Ilwoo
LandOfFree
Efficient data transfer mechanism for input/out devices... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Efficient data transfer mechanism for input/out devices..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Efficient data transfer mechanism for input/out devices... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2590590