Electrical computers and digital data processing systems: input/ – Input/output data processing – Direct memory accessing
Reexamination Certificate
2001-11-21
2004-08-03
Shin, Christopher B. (Department: 2182)
Electrical computers and digital data processing systems: input/
Input/output data processing
Direct memory accessing
C710S006000, C711S213000, C712S207000
Reexamination Certificate
active
06772237
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the field of computer systems. More particularly, the present invention relates to a circuit and method for fetching descriptors used in direct memory access data transfers.
2. Description of the Relevant Art
Traditionally, computer systems include subsystems which interface to one another. Communication may include data transfers between memory and an input/output (I/O) device. Data transfers may occur in several ways. For example, in programmed I/O type transfers, all data transfers between memory and I/O devices are completely controlled by the central processing unit (CPU), or more precisely, by a program executed by the CPU. In interrupt I/O type data transfers, all data transfers between memory and I/O devices are initiated by the I/O device through interrupts. In response to I/O interrupts, the CPU suspends whatever it is currently doing and attends to the needs of the I/O device.
A third type of data transfer is known as direct memory access (DMA) data transfer. DMA is a specialized process that transfers data between memory and an I/O device via a direct memory access controller (DMAC), while the CPU continues with other tasks. In other words, all data transfers between memory and the I/O device is accomplished without involving the CPU. The DMA approach speeds overall system speed and generally provides a more efficient way of moving data between the memory and the I/O device.
In DMA transfers, the CPU generates descriptors used by the DMA controllers for transferring data between memory and I/O devices. Descriptors are, in essence, commands to the DMA controllers to transfer data to and from memory. DMA descriptors typically contain fields that identify memory location where data is to be transferred, the number of bits at that memory location to be transferred, and a pointer to a subsequent DMA descriptor. The descriptors are generated by the CPU executing software and temporarily stored in memory. Prior to data transfer, the DMA controllers must retrieve the descriptors from memory. Upon receipt descriptors, DMA controllers initiate data transfer in accordance thereto.
SUMMARY OF THE INVENTION
The present invention relates to a circuit and method for prefetching direct memory access descriptors from memory of a computer system. The descriptors are generated by a central processing unit of the computer system executing one or more software applications. In essence, the descriptors are commands that define a data transfer operation between memory and an input/output device. Once the descriptors are generated by the executed software applications, the descriptors are stored in memory for subsequent retrieval by direct memory access controllers.
The present invention prefetches and stores descriptors for a plurality of contexts within a unified memory for subsequent access upon request by the direct memory access controllers. To this end, the method involves reading a plurality of first descriptors from the memory of the computer system. Each of the plurality of first descriptors identifies a first address in the memory where data is to be written via a corresponding first direct memory access controller. A plurality of second descriptors is also read from memory. Each of the plurality of second descriptors identifies a second address in the memory where data is to be read via a corresponding second direct memory access controller. The plurality of first descriptors and the plurality of second descriptors are stored within a unified descriptor memory for subsequent access by the corresponding first and second direct memory access controllers.
The plurality of first descriptors is fetched from memory and stored within the unified descriptor memory in response to the corresponding first direct memory access controller generating a request for one of the plurality of first descriptors. Similarly, the plurality of second descriptors are fetched from memory and stored within the unified descriptor memory in response to the corresponding second direct memory access controller generating a request for one of the plurality of second descriptors.
Subsequent to fetching and storing the plurality of first descriptors and the plurality of second descriptors into the unified descriptor memory, one of the first or second direct memory access controllers may generate an additional request for a descriptor. Upon generation of the additional request, the unified descriptor memory is first checked to determine whether the additionally requested descriptor is contained therein. If the additionally requested descriptor is not contained within the unified descriptor memory, then the additionally requested descriptor is fetched from memory along with a block of other descriptors, and stored within the unified descriptor memory. Subsequent thereto, the additionally requested descriptor is forwarded to the requesting direct memory access controller from the unified descriptor memory.
REFERENCES:
patent: 4783730 (1988-11-01), Fischer
patent: 5077664 (1991-12-01), Taniai et al.
patent: 5283883 (1994-02-01), Mishler
patent: 5448702 (1995-09-01), Garcia, Jr. et al.
patent: 5526511 (1996-06-01), Swenson et al.
patent: 5606665 (1997-02-01), Yang et al.
patent: 5644784 (1997-07-01), Peek
patent: 5655114 (1997-08-01), Taniai et al.
patent: 5713044 (1998-01-01), Gillespie et al.
patent: 5794073 (1998-08-01), Ramakrishnan et al.
patent: 5809334 (1998-09-01), Galdun et al.
patent: 5822616 (1998-10-01), Hirooka
patent: 5825774 (1998-10-01), Ready et al.
patent: 5828901 (1998-10-01), O'Toole et al.
patent: 5854911 (1998-12-01), Watkins
patent: 5870627 (1999-02-01), O'Toole et al.
patent: 5905912 (1999-05-01), Story et al.
patent: 5931920 (1999-08-01), Ghaffari et al.
patent: 5978866 (1999-11-01), Nain
patent: 6012106 (2000-01-01), Schumann et al.
patent: 6012120 (2000-01-01), Duncan et al.
patent: 6049842 (2000-04-01), Garrett et al.
patent: 6065100 (2000-05-01), Schafer et al.
patent: 6108722 (2000-08-01), Troeller et al.
patent: 6134625 (2000-10-01), Abramson
patent: 6145016 (2000-11-01), Lai et al.
patent: 6163820 (2000-12-01), Garrett et al.
patent: 6166724 (2000-12-01), Paquette et al.
patent: 6199124 (2001-03-01), Ramakrishnan et al.
patent: 6202107 (2001-03-01), Collier
patent: 6212593 (2001-04-01), Pham et al.
patent: 6275877 (2001-08-01), Duda
patent: 6324597 (2001-11-01), Collier
patent: 6347344 (2002-02-01), Baker et al.
Patent Abstract of Japan, Pub No. 06096007, Pub Date: Apr. 8, 1994.
International Search Report, App. No. PCT/US99/26790, mailed Mar. 31, 2000.
Promoters of the 1394 HCI: “1397-4 Open Host Controller Interface Specification,” Release 1.00, Oct. 20, 1997, Copyright 1996, 1997; pp. ii-xiv; 1-170.
Promoters of the 1394 Open HCI; “1394 Open Host Controller Interface Specification,” Release 1.00, Oct. 20, 1997; Copyright © 1996, 1997; pp. ii-xiv; 1-170.
Patent Abstract of Japan, Pub. No. 06096007, Pub. Date: Apr. 8, 1994.
International Search Report, App. No. PCT/US99/26790, mailed: Mar. 31, 2000.
Kivlin B. Noäl
Shin Christopher B.
LandOfFree
Host controller interface descriptor fetching unit does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Host controller interface descriptor fetching unit, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Host controller interface descriptor fetching unit will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3355890