Data streaming between peer subsystems of a computer system
First Claim
1. For a computer system--that contains a processor subsystem, a memory subsystem, peripheral devices, device control units controlling said peripheral devices in response to commands received from said processor subsystem, and a channel linking said device control units to said processor and memory subsystems, said channel having a peer communication feature enabling said control units to communicate directly with each other without intervention of said processor subsystem and without intermediate buffer storage in said memory subsystem of information being communicated between said control units--a mechanism for enabling one of said control units to direct processing of a data stream of arbitrary length, by a device controlled by said one control unit, in cooperation with first and second other said control units respectively controlling first and second other devices, said mechanism comprising:
- means in said one control unit for receiving setup command information defining;
(1) input and output buffer storage spaces in said memory subsystem that are to be managed by said one control unit in cooperation respectively with said first and second other control units;
(2) a notification protocol, defining signals to be directly transferred between said one control unit and said first and second other control units via said peer communication feature of said channel, said signals to be used by said control units for managing use of said input and output buffer storage spaces; and
(3) a process to be conducted, on a said data stream of arbitrary length in said input buffer storage space, by said device controlled by said one control unit, said data to be written to said input buffer storage space by said first other device, said process to produce result data to be written to said output buffer storage space for further handling by said second other device, and said process to be conducted to completion without interruption of said processor subsystem;
said input and output buffer storage spaces being characterized in that each has insufficient storage capacity to simultaneously store all of the data potentially contained in said data stream;
means in said one control unit responsive to said setup command information for preparing said one control unit and said device controlled by said one control unit to;
(1) perform said process defined by said command information on a said data stream to be conveyed through said input buffer storage space;
(2) forward data resulting from performance of said process to said second other device via said output buffer storage space; and
(3) manage usage of said input and output buffer storage space, in cooperation respectively with said first and second other control units, via said notification protocol and said peer communication feature of said channel; and
means in said one control unit, responsive to an initiating signal from said processor subsystem and to conditions established by said preparing means, for directing a streaming operation in which;
(1) said process is performed on data of said data stream forwarded through said input buffer storage space;
(2) data resulting from performance of said process is forwarded to said second other device via said output buffer storage space;
(3) transport of said data stream through said input buffer storage space, and transport of said resulting data through said output buffer storage space, are jointly managed by said one control unit and said first and second other control units using said notification protocol and said peer communication feature of said channel; and
(4) all of the foregoing functions are carried out to completion, i.e., until all of the data in the data stream has been processed and forwarded, without interruption of said processor subsystem.
1 Assignment
0 Petitions
Accused Products
Abstract
A data handling arrangement for a computer system, with particular application to multimedia systems, allows device adapters (control units) attached to the system to autonomously (without interrupting the system processor) control processing of a data stream of arbitrary length through memory buffers which are smaller than the stream. In this (stream processing) operation, data constituting the data stream flows through devices controlled by the adapter in succession, and is held in shared memory buffers as it passes between devices. The adapters are prepared for the stream processing operation by a system processor, indicate their preparation status to the processor, receive an initiating signal from the processor, and then proceed to direct the operation to completion without further assistance from the processor. In the operation, the adapters coordinate usage of the memory buffers by respective devices. Coordination is accomplished using a notification signalling protocol defined during preparation of the adapters.
149 Citations
21 Claims
-
1. For a computer system--that contains a processor subsystem, a memory subsystem, peripheral devices, device control units controlling said peripheral devices in response to commands received from said processor subsystem, and a channel linking said device control units to said processor and memory subsystems, said channel having a peer communication feature enabling said control units to communicate directly with each other without intervention of said processor subsystem and without intermediate buffer storage in said memory subsystem of information being communicated between said control units--a mechanism for enabling one of said control units to direct processing of a data stream of arbitrary length, by a device controlled by said one control unit, in cooperation with first and second other said control units respectively controlling first and second other devices, said mechanism comprising:
-
means in said one control unit for receiving setup command information defining;
(1) input and output buffer storage spaces in said memory subsystem that are to be managed by said one control unit in cooperation respectively with said first and second other control units;
(2) a notification protocol, defining signals to be directly transferred between said one control unit and said first and second other control units via said peer communication feature of said channel, said signals to be used by said control units for managing use of said input and output buffer storage spaces; and
(3) a process to be conducted, on a said data stream of arbitrary length in said input buffer storage space, by said device controlled by said one control unit, said data to be written to said input buffer storage space by said first other device, said process to produce result data to be written to said output buffer storage space for further handling by said second other device, and said process to be conducted to completion without interruption of said processor subsystem;
said input and output buffer storage spaces being characterized in that each has insufficient storage capacity to simultaneously store all of the data potentially contained in said data stream;means in said one control unit responsive to said setup command information for preparing said one control unit and said device controlled by said one control unit to;
(1) perform said process defined by said command information on a said data stream to be conveyed through said input buffer storage space;
(2) forward data resulting from performance of said process to said second other device via said output buffer storage space; and
(3) manage usage of said input and output buffer storage space, in cooperation respectively with said first and second other control units, via said notification protocol and said peer communication feature of said channel; andmeans in said one control unit, responsive to an initiating signal from said processor subsystem and to conditions established by said preparing means, for directing a streaming operation in which;
(1) said process is performed on data of said data stream forwarded through said input buffer storage space;
(2) data resulting from performance of said process is forwarded to said second other device via said output buffer storage space;
(3) transport of said data stream through said input buffer storage space, and transport of said resulting data through said output buffer storage space, are jointly managed by said one control unit and said first and second other control units using said notification protocol and said peer communication feature of said channel; and
(4) all of the foregoing functions are carried out to completion, i.e., until all of the data in the data stream has been processed and forwarded, without interruption of said processor subsystem. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. For use in a computer system, a streaming device adapter controlling a device performing operations requiring processing of arbitrarily long data streams, said adapter comprising:
-
means enabling said adapter to communicate directly with other device adapters through a channel of said computer system having a peer communication feature permitting such direct communication; means for receiving setup command information from said computer system defining;
(1) an output buffer store having dimensions chosen by said computer system;
(2) a source of data to be supplied sequentially to said device controlled by said adapter, said data constituting a data stream of arbitrary length;
(3) a process to be conducted by said device controlled by said adapter, on all of the data in said data stream, with data resulting from said process to be written into said output buffer for further process handling by another device controlled by another adapter; and
(4) a protocol for communications to be conducted between said adapter and said another adapter, during the performance of said process on said data stream, to coordinate the use of said output buffer by said device and said another device;
wherein the length of said data stream exceeds the capacity of said output buffer, requiring repeated use of said output buffer to convey portions of said resulting data to said another device through said output buffer, and wherein said protocol requires use of said direct communication feature of said channel to indicate when data in said output buffer is available for further process handling by said another device; andmeans responsive to an initiating signal issued by said computer system after said setup command information has been received by said receiving means, and to said setup command information, for directing said device controlled by said adapter to perform said process, and for using said protocol to notify said another adapter when data representing discrete portions of said data stream is available in said output buffer store;
said means responsive to an initiating signal causing said process to be performed continuously, until all of the data in said data stream has been processed, without intermediate interruption of or further instructions from said computer system. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system comprising:
-
a processor subsystem; a memory subsystem; a plurality of device adapters; a plurality of devices each controlled by one of said adapters; and an I/O channel linking said subsystems, said adapters, and said devices;
wherein;said channel includes a peer communication feature enabling said adapters to directly exchange control information without involvement of any of said subsystems; said processor subsystem includes means for concurrently preparing at least two of said adapters, and respective devices controlled by said at least two adapters, to autonomously process data in a data stream of arbitrary length without interrupting said processor subsystem until all of the data has been processed; said preparing means includes; means for furnishing said at least two adapters with information defining;
buffer storage spaces in said memory subsystem to be cooperatively managed by said adapters for forwarding the data in said data stream between devices controlled by said at least two adapters;
a process to be conducted by devices controlled by said at least two adapters on the data in said data stream; and
a communication protocol to be observed by said at least two adapters, via said peer communication feature of said channel, for indicating when said buffer storage spaces contain data that is available to be read and processed by said devices controlled by said at least two adapters;
said buffer storage spaces having insufficient storage capacity to simultaneously store all of the data in said data stream;means for receiving indications from said at least two adapters when said at least two adapters are respectively prepared for controlling processing of data in said data stream; and means for signaling said at least two adapters to begin controlling processing of said data stream; and said at least two adapters include means responsive to said signal to begin to control respective devices to process data in said data stream;
said adapters cooperating via said communication protocol to manage access to said buffer storage spaces and control processing of data in said data stream autonomously, without interrupting said processor subsystem, until all of the data in said data stream has been processed.
-
-
20. A computer system containing processor and memory subsystems, a channel linked to said subsystems, said channel having a peer communication feature, and plural device control units and data handling devices linked to said subsystems via said channel, said control units being able to intercommunicate directly with each other via said peer communication feature, wherein said system comprises:
-
a source of data representing a data stream of arbitrary length to be processed sequentially by a plurality of said devices; means in said processor subsystem for preparing at least two of said control units to control processing of said data stream by devices respectively controlled by said at least two control units;
said preparation including furnishing said control units with information defining variably sized and variably located data buffers in said memory subsystem that are to be shared by pairs of devices controlled by said at least two control units, said buffers being filled with data by one device of each pair and emptied by the other device of the respective pair, said buffers shared by any said pair of devices having insufficient capacity to store the entire data stream at one time;
said preparation further including indications by said at least two control units to said processor subsystem when respective control units are prepared to control processing of said data stream by respective devices, and issuance of an initiating signal from said processor subsystem to at least one of said at least two control units when all of said at least two control units have indicated their preparation; andmeans in said at least two control units, responsive to said initiating signal and information received during said preparation, for controlling respective devices to sequentially process all of the data in said data stream without interruption of said processor subsystem;
said at least two control units cooperating in pairs to control forwarding of data between devices controlled by each pair of units;
said means responsive to said initiating signal in each said pair of control units using said notification protocol to indicate when a buffer shared by a pair of devices controlled by the respective pair of units, contains data written by one device of the pair that is available for processing by the other device of the same pair.
-
-
21. A data handling system comprising:
-
processor and memory subsystems; at least two control units; at least two data handling devices respectively controlled by said at least two control units; and a channel linking said control units and devices to said processor and memory subsystems;
said channel having a peer communication feature allowing for said at least two control units to intercommunicate directly with each other without involvement of said processor subsystem; and
wherein;said processor subsystem includes means for setting up and initiating a data streaming operation, to be autonomously controlled by said at least two control units, in which;
a data stream of arbitrary length is to be handled in succession by said at least two devices, said data is to be passed to successive ones of said at least two devices through a shared memory buffer allocated by said processor subsystem, and said devices are each to perform a data transformation function selectively specified by said processor subsystem; andeach of said at least two control units includes means conditioned by said setting up and initiating means for directing the performance of said data streaming operation by a respective one of said at least two devices in an autonomous manner, requiring no interruption of said processor subsystem prior to completion of the operation, and in a manner which effectively isolates the respective device from conditions and events occurring external to that device;
said directing means including means for managing repeated use of said shared memory buffers allocated by said processor subsystem to supply data in said data stream to the respective device and carry transformed data in said data stream away from the respective device;
said repeated use being managed in coordination with other said at least two control units, via notification communications conveyed between said control units through said channel, and in a manner which isolates the respective device from buffer reuse events occurring as a result of said notification communications.
-
Specification