Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
298 words
In a computer system comprising a central processing unit (CPU), memory, and input/output (I/O) storage devices, an apparatus for performing direct memory access (DMA) to the I/O devices comprising: an I/O controller for performing DMA operations, said I/O controller comprising controller logic and a first channel control block (CCB) register, said first CCB register storing a channel control block (CCB) identifying DMA transfer parameters which specify an operation to be performed by the I/O controller, said controller logic performing operations in accordance with the CCB, said CCB comprising a chain status bit, which, when set, indicates to the controller logic that a subsequent operation is to be performed as specified by another channel control block, said first CCB register initially storing a first CCB; an I/O storage device external to the I/O controller comprising and storing at least one subsequent CCB to be processed subsequent to the first CCB; and a chip control status block coupled to the controller logic, said chip control status block comprising an external memory address pointer which specifies an address, in the I/O storage device external to the I/O controller, of a next CCB to be processed, said external memory address pointer being incremented after each access to a CCB in the I/O storage device external to the I/O controller to point to a next CCB to be processed; said I/O controller reading a CCB from the I/O storage device external to the I/O controller at the address specified by the external memory address pointer, storing that CCB in said first CCB register and performing operations in accordance with the CCB stored in the first CCB register; whereby the I/O controller performs a chain of operations specified by a chain of CCBs without increasing an amount of memory required in the I/O controller.
Claim 2
Dependent Claim
298 words
In a computer system comprising a central processing unit (CPU), memory, and input/output (I/O) storage devices, an apparatus for performing direct memory access (DMA) to the I/O devices comprising: an I/O controller for performing DMA operations, said I/O controller comprising controller logic and a first channel control block (CCB) register, said first CCB register storing a channel control block (CCB) identifying DMA transfer parameters which specify an operation to be performed by the I/O controller, said controller logic performing operations in accordance with the CCB, said CCB comprising a chain status bit, which, when set, indicates to the controller logic that a subsequent operation is to be performed as specified by another channel control block, said first CCB register initially storing a first CCB; an I/O storage device external to the I/O controller comprising and storing at least one subsequent CCB to be processed subsequent to the first CCB; and a chip control status block coupled to the controller logic, said chip control status block comprising an external memory address pointer which specifies an address, in the I/O storage device external to the I/O controller, of a next CCB to be processed, said external memory address pointer being incremented after each access to a CCB in the I/O storage device external to the I/O controller to point to a next CCB to be processed; said I/O controller reading a CCB from the I/O storage device external to the I/O controller at the address specified by the external memory address pointer, storing that CCB in said first CCB register and performing operations in accordance with the CCB stored in the first CCB register; whereby the I/O controller performs a chain of operations specified by a chain of CCBs without increasing an amount of memory required in the I/O controller.
Claim 3
Dependent Claim
139 words
The apparatus as set forth in claim 1, wherein, said I/O controller further comprises a second CCB register and said chip control status block further comprises a CCB register status bit to identify one of said first and second CCB registers as a CCB register currently being accessed; and said I/O controller, upon detection that the chain status bit in the CCB stored in the CCB register currently being accessed, retrieves the next CCB from the I/O storage device external to the I/O controller and stores that CCB in the other of the first and second CCB registers identified by the CCB register status bit as the CCB register not currently being accessed, and updates the CCB register status bit such that the other CCB register will subsequently be accessed; whereby double buffering of the CCB registers is performed.
Claim 4
Dependent Claim
106 words
The apparatus as set forth in claim 1 wherein said external memory address pointer specifies the address of a first subsequent CCB stored in the I/O storage device external to the I/O controller, said apparatus further comprising a CCB counter register which maintains a count of the number of CCBs processed, said CCB counter register incremented as each CCB is processed, the address of the next CCB in the I/O storage device external to the I/O controller determined from the address of the first subsequent CCB and the CCB counter register whereby the address of the next CCB is incremented by incrementing the CCB counter register.
Claim 5
Dependent Claim
27 words
The apparatus as set forth in claim 1, wherein after the last CCB is processed, the I/O controller restores the first CCB in the first CCB register.
Claim 6
Dependent Claim
55 words
The apparatus as set forth in claim 4, wherein the first CCB is stored at a predetermined location in the I/O storage device and the first CCB is read from the predetermined location in the I/O storage device and written into the first CCB register to restore the first CCB in the first CCB register.
Claim 7
Dependent Claim
45 words
The apparatus as set forth in claim 4 further comprising an initialize status bit, said initialize status bit checked at the beginning of a DMA operation wherein, if the initialize status bit is not set, the first CCB is restored in the first CCB register.
Claim 8
Dependent Claim
250 words
In a computer system comprising a central processing unit (CPU), memory, input/output I/O storage devices, and an I/O controller for performing direct memory access (DMA) operations with respect to the I/O storage devices, a method for performing direct memory access (DMA) to the I/O storage devices comprising: providing a first channel control block (CCB) register in the I/O controller, said first CCB register storing a first CCB identifying DMA transfer parameters which specify an operation to be performed by the I/O controller; providing a chain status bit in the CCB, which when set, indicates to the I/O controller that another CCB is to be subsequently processed; providing an external memory address pointer which specifies an address, in an I/O storage device external to the I/O controller, of a subsequent CCB to be processed; performing operations specified by the CCB stored in the first CCB register; reading the chain status bit; if the chain status bit is set, upon completion of performing operations, retrieving a next CCB from the I/O storage device external to the I/O controller at the address specified by the external memory pointer; storing the next CCB in the first CCB register; incrementing the address in the external memory address pointer to point to a next CCB in the I/O storage device external to the I/O controller to be processed; and processing the next CCB stored in the first CCB register; whereby chaining of CCBs is achieved without increasing an amount of memory required in the I/O controller.
Claim 9
Dependent Claim
250 words
In a computer system comprising a central processing unit (CPU), memory, input/output I/O storage devices, and an I/O controller for performing direct memory access (DMA) operations with respect to the I/O storage devices, a method for performing direct memory access (DMA) to the I/O storage devices comprising: providing a first channel control block (CCB) register in the I/O controller, said first CCB register storing a first CCB identifying DMA transfer parameters which specify an operation to be performed by the I/O controller; providing a chain status bit in the CCB, which when set, indicates to the I/O controller that another CCB is to be subsequently processed; providing an external memory address pointer which specifies an address, in an I/O storage device external to the I/O controller, of a subsequent CCB to be processed; performing operations specified by the CCB stored in the first CCB register; reading the chain status bit; if the chain status bit is set, upon completion of performing operations, retrieving a next CCB from the I/O storage device external to the I/O controller at the address specified by the external memory pointer; storing the next CCB in the first CCB register; incrementing the address in the external memory address pointer to point to a next CCB in the I/O storage device external to the I/O controller to be processed; and processing the next CCB stored in the first CCB register; whereby chaining of CCBs is achieved without increasing an amount of memory required in the I/O controller.
Claim 10
Dependent Claim
195 words
The method as set forth in claim 7, further comprising the steps of: providing a second CCB register in the I/O controller; providing a CCB register status bit to identify one of said first and second CCB registers as a CCB register containing a CCB currently being processed by the I/O controller; performing operations specified by the CCB located in the CCB register containing a CCB currently being processed; said step of storing the next CCB stores the next CCB in the other of said first and second CCB registers not currently being identified by the CCB register status bit; toggling the CCB register status bit to point to the CCB register not currently being identified by the CCB register status bit; whereby the CCB located in the CCB register not currently being identified by the CCB register status bit is processed after processing the CCB in the CCB register containing a CCB currently being processed and double buffering is performed by alternately storing subsequent CCBs in the first CCB register and the second CCB register and toggling the CCB register status bit to point to the CCB register containing a CCB currently being processed.
Claim 11
Dependent Claim
29 words
The method as set forth in claim 7, further comprising the step of restoring the first CCB processed in the first CCB register after processing of the last CCB.
Claim 12
Dependent Claim
67 words
The method as set forth in claim 9, wherein the step of restoring the first CCB comprises the steps of: initially storing the first CCB at a predetermined location in the I/O storage device external to the I/O controller; reading the first CCB from the predetermined location in the I/O storage device external to the I/O controller; and writing the first CCB in the first CCB register.