Claims
- 1. A first bus unit, having master DMA capability, for coupling to a bus, which is coupled to a second bus unit which has only slave DMA capability, the first bus unit comprising:
- a processor which executes a plurality of processes, said processes requesting work from other processes on other bus units and serving work requests from other processes on other bus units, said work serving processes controlling the flow of work processing;
- a bus manager for insulating said processes from communication management, the bus manager of the first bus unit comprising:
- means for managing a storage area of the second bus unit;
- means for transferring information into the storage area of the second bus unit by using the master DMA capability of the first bus unit;
- means for generating a storage control block for identifying storage addresses of the second bus unit where the transferred information is stored; and
- means for transferring the storage control block to the second bus unit so the information is available to the second bus unit as though it had master DMA capability;
- means for processing a work request from the first bus unit to the second bus unit using the information made available to the second bus unit by said means for transferring the information, said information contained in the storage area of the second bus unit; and
- means for informing the first bus unit of any response to the work request.
- 2. A first bus unit, having master DMA capability for coupling to a bus, which is coupled to a second bus unit with only slave DMA capability and having a processing and storage, the first bus unit comprising:
- at least one processor which executes at least one process;
- a bus manager of the first bus unit comprising:
- means for generating a Storage Request bus message for requesting storage to manage in the second bus unit;
- means for managing a storage area of the second bus unit;
- means for transferring information into and out of the storage area of the second bus unit;
- means for generating a storage control block for identifying storage addresses of the storage in the second bus unit at which the transferred information is stored; and
- means for transferring the storage control block to the second bus unit for use by said second bus unit in accessing the transferred information.
- 3. The first bus unit of claim 2 wherein the means for generating the Storage Request bus message inserts an indication of a desired amount of storage in the message.
- 4. The first bus unit of claim 3 wherein the means for generating the Storage Request bus message further inserts an indication of a minimum length of contiguous storage desired in the message.
- 5. The bus unit of claim 4 wherein its bus manager further comprises:
- means for receiving a Storage List Available bus message from the second bus unit in response to the Storage Request bus message, said Storage List Available bus message indicating whether or not management of the requested storage was granted.
- 6. The bus unit of claim 5 wherein the Storage List Available bus message contains a field which indicates one of three conditions:
- a that storage was available;
- b that no storage was available; and
- c that storage was available but not in the amount requested.
- 7. The first bus unit of claim 6 wherein the Storage List Available bus message identifies a Storage List Control Block which contains at least one address of the storage of the second bus unit for which management was granted.
- 8. The first bus unit of claim 7 wherein its bus manager further comprises:
- means for transferring the Storage List Control Block from storage in the second bus unit to storage managed by the first bus unit's bus manager.
- 9. The first bus unit of claim 8 wherein its bus manager further comprises:
- means for generating a Storage List Complete bus unit message which identifies storage in the second bus unit which is no longer to be managed by the first bus unit's bus manager.
- 10. The first bus unit of claim 2 wherein its bus manager further comprises:
- means for receiving a Storage List Available bus message from the second bus unit in response to the Storage Request bus message, said Storage List Available bus message indicating whether or not management of the requested storage was granted.
- 11. The bus unit of claim 10 wherein the Storage List Available bus message contains a field which indicates one of three conditions:
- a that the requested amount of storage was available;
- b that no storage was available; and
- c that storage was available but not in the amount requested.
- 12. The first bus unit of claim 10 wherein the Storage List Available bus message identifies a Storage List Control Block which contains at least one address of the storage of the second bus unit for which management was granted.
- 13. The first bus unit of claim 12 wherein the first bus unit's bus manager further comprises:
- means for transferring the Storage List Control Block from storage in the second bus unit to storage managed by the first bus unit's bus manager.
- 14. The first bus unit of claim 2 wherein its bus manager further comprises:
- means for generating a Storage List Complete bus unit message which identifies storage in the second bus unit which is no longer to be managed by the first bus unit's bus manager.
- 15. The first bus unit of claim 14 wherein the first bus unit's bus manager further comprises:
- means for receiving a Return Storage List bus unit message which indicates that the second bus unit desires management of storage to be returned to it.
- 16. The first bus unit of claim 15 wherein the means for generating the Storage List Complete bus unit message includes in said message an indication of whether the second bus unit requested return of the storage.
- 17. A storage management mechanism in a multiprocessor computer system comprising:
- a first bus unit having a main storage, and having only a slave DMA capability;
- a second bus unit having a master DMA capability;
- a bus coupled to said first bus unit and said second bus unit;
- said second bus unit further comprising:
- means for managing at least a portion of the first bus unit main storage through the bus;
- means for requesting from the first bus unit a portion of the first bus unit storage to manage through the bus;
- means for returning management of at least a portion of said first bus unit main storage to said first bus unit;
- said first bus unit further comprising:
- means for receiving requests from the second bus unit to manage a portion of the first bus unit main storage;
- means for transferring management of a portion of the first bus unit main storage to the second bus unit;
- means for receiving a work request from said second bus unit; and
- means for performing a work request from said second bus unit which includes management of a portion of first bus unit storage after said second bus returns management of said storage to said first bus unit.
- 18. The storage management mechanism of claim 17 wherein the second bus unit means for requesting a portion of the first bus unit main storage to manage comprises a first bus message which specifies an amount of storage, and a length of buffers desired for managing through the bus.
- 19. The storage management mechanism of claim 18 wherein the first bus unit means for receiving requests from the second bus unit to manage a portion of the first bus unit main storage comprises a bus manager coupled to the bus, said bus manager managing portions of the first bus unit main storage.
- 20. The storage management mechanism of claim 19 wherein the first bus unit means for transferring management of a portion of the first bus unit main storage to the second bus unit comprises:
- a Storage List Control Block which has fields for indicating a starting address of at least one buffer in first bus unit main storage, and for indicating a length for each starting address; and
- a Storage List Available bus unit message for identifying the Storage List Control Block.
- 21. The storage management mechanism of claim 17 wherein the second bus unit means for requesting a portion of the first bus unit main storage to manage comprises a Storage Request bus unit message which specifies an amount of storage, and a length of buffers desired for managing through the I/O bus.
- 22. The storage management mechanism of claim 17 wherein the first bus unit means for receiving requests from the second bus unit to manage a portion of the first bus unit main storage comprises a bus manager coupled to the bus, said bus manager managing portions of the first bus unit main storage.
- 23. The storage management mechanism of claim 17 wherein the first bus unit means for transferring management of a portion of the first bus unit main storage to the second bus unit comprises:
- a Storage List Control Block which has fields for indicating a starting address of at least one buffer in first bus unit main storage, and for indicating a length for each starting address; and
- a Storage List Available bus unit message for identifying the Storage List Control Block.
- 24. The storage management mechanism of claim 23 wherein the second bus unit means for requesting a portion of the first bus unit main storage to manage comprises a Storage Request bus unit message which specifies an amount of storage, and a length of buffers desired for managing through the bus.
- 25. The storage management mechanism of claim 24 wherein the first bus unit means for transferring management of buffers in the first bus unit main storage to the second bus unit further comprises:
- means for verifying that each buffer identified in the Storage List Control Block is at least as long as the length specified in the Storage Request bus unit message.
- 26. A method of controlling data transfer associated with work in a server driven process to process communication computer system wherein a first bus unit has only slave DMA capability and a main storage, and a second bus unit has master DMA capability and a main storage, the method comprising the steps of:
- a generating a work request in a process running on the second bus unit;
- b generating a storage control block indicating storage locations in the first bus unit's main storage of the work request and its associated data;
- c transferring the work request, storage control block, and associated data to storage in the first bus unit which is managed by the second bus unit;
- d sending an indication of the work request to the first bus unit identifying the location of the storage control block;
- e transferring the work request, storage control block and associated data from the storage managed by the second bus unit to storage managed by the first bus unit; and
- f accessing the data as requested by the server process on the first bus unit which is acting on the work request.
- 27. The method of claim 26 and further comprising the step of:
- g notifying the second bus unit when step "e" has been completed so that the storage managed by the second bus unit may be used again by the second bus unit for transfer of further information without concern for overwriting information associated with a previous work request.
- 28. A storage management mechanism in a multiprocessor computer system comprising:
- a host processor having a main storage, and having only a slave DMA capability;
- an I/O controller having a main storage, and having a master DMA capability;
- an I/O bus coupled to said host processor and said I/O controller, the I/O bus facilitating communication between the host and I/O controller;
- said I/O controller further comprising:
- means for managing at least a portion of the host main storage through the I/O bus;
- means for requesting from the host a portion of the host main storage to manage through the I/O bus;
- means for transferring management of a portion of the host main storage through the I/O bus;
- means for writing information into host main storage;
- means for returning management of a portion of host main storage back to said host main processor;
- said host further comprising:
- means for receiving requests from the I/O controller to manage a portion of the host main storage;
- means for transferring management of a portion of the host main storage to the I/O controller;
- means for identifying the portion of the host main storage so transferred so that the host is aware that management responsibility has been transferred;
- means for receiving a work request from said I/O controller; and
- means for performing a work request from said I/O controller based upon information written into a portion of said host main storage by said I/O controller after management of said portion of host main storage has been returned to the host processor.
- 29. The storage management mechanism of claim 28 wherein the I/O controller means for requesting a portion of the host main storage to manage comprises a Storage Request bus unit message which specifies an amount of storage, and a length of buffers desired for managing through the I/O bus.
- 30. The storage management mechanism of claim 29 wherein the I/O controller means for transferring management of a buffer of the host main storage comprises a Storage List Complete bus unit message which contains an indication of whether or not control of a buffer is being returned.
- 31. The storage management mechanism of claim 30 wherein the Storage List Complete bus unit message identifies the storage for which management is returned if the message indicates that control of at least one buffer is being returned.
- 32. The storage management mechanism of claim 31 wherein the host means for receiving requests from the I/O controller to manage a portion of the host main storage comprises a bus manager coupled to the bus, said bus manager managing portions of the host main storage.
- 33. The storage management mechanism of claim 32 wherein the host means for transferring management of a portion of the host main storage to the I/O controller comprises:
- a Storage List Control Block which has fields for indicating a starting address of at least one buffer in host main storage, and for indicating a length for each starting address; and
- a Storage List Available bus unit message for identifying the Storage List Control Block.
- 34. The storage management mechanism of claim 28 wherein the I/O controller means for requesting a portion of the host main storage to manage comprises a Storage Request bus unit message which specifies an amount of storage, and a length of buffers desired for managing through the I/O bus.
- 35. The storage management mechanism of claim 28 wherein the I/O controller means for transferring management of a portion of the host main storage comprises a Storage List Complete bus unit message which contains an indication of whether or not management of a portion of storage is being returned.
- 36. The storage management mechanism of claim 35 wherein the Storage List Complete bus unit message identifies the storage for which management is returned if the message indicates that a portion is being returned.
- 37. The storage management mechanism of claim 28 wherein the host means for receiving requests from the I/O controller to manage a portion of the host main storage comprises a bus manager coupled to the bus, said bus manager managing portions of the host main storage.
- 38. The storage management mechanism of claim 28 wherein the host means for transferring management of a portion of the host main storage to the I/O controller comprises:
- a Storage List Control Block which has fields for indicating a starting address of at least one buffer in host main storage, and for indicating a length for each starting address; and
- a Storage List Available bus unit message for identifying the Storage List Control Block.
- 39. The storage management mechanism of claim 38 wherein the I/O controller means for requesting a portion of the host main storage to manage comprises a Storage Request bus unit message which specifies an amount of storage, and a length of buffers desired for managing through the I/O bus.
- 40. The storage management mechanism of claim 39 wherein the host means for transferring management of buffers in the host main storage to the I/O controller further comprises:
- means for verifying that each buffer identified in the Storage List Control Block is at least as long as the length specified in the Storage Request bus unit message.
- 41. A first bus unit, having master DMA capability, for coupling to a bus, which is coupled to a second bus unit with only slave DMA capability and having a processor and storage, the first bus unit comprising:
- at least one processor which executes at least one process;
- a bus manager of the first bus unit comprising:
- means for managing a storage area of the second bus unit;
- means for transferring information into and out of the storage area of the second bus unit;
- means for generating a storage control block for identifying storage addresses of the storage in the second bus unit at which the transferred information is stored;
- means for transferring the storage control block to the second bus unit for use by said second bus unit in accessing the transferred information; and
- the second bus comprising:
- means for receiving a request from said first bus unit;
- means for performing a request from said first bus unit using information transferred to the second bus unit by the first bus unit, said information accessed by use of the storage control block transferred from said first bus unit; and
- means for indicating a response to the work request of said first bus unit.
- 42. A bus management mechanism in a computer system comprising:
- a first bus unit attached to the bus, said first bus unit having master DMA capability and a first bus manager for insulating processes from communication management;
- a second bus unit attached to the bus, said second bus unit having slave DMA capability and a second bus manager for insulating processes from communication management;
- said first bus unit further comprising:
- means for the first bus manager to obtain a portion of memory in said second bus unit;
- means for the first bus manager to transfer a request into a portion of memory in the second bus unit;
- means for the first bus manager to transfer data necessary to perform a request into a portion of memory in the second bus unit;
- means for sending a message to start operating the request;
- said second bus unit further comprising:
- means for obtaining access to the request from the first bus unit and the data for performing the request which is located on the portion of memory in the second bus unit;
- means for performing the request; means for generating a message to the first bus unit indicating that the request has been completed resulting in a response; and
- means for placing the response in a portion of the memory of the second bus unit so that the first bus unit manager can obtain the response to the request.
CROSS REFERENCE TO RELATED APPLICATIONS
This is a continuation of co-pending application Ser. No. 07/524,121 filed on Apr. 20, 1990, abandoned. which is a continuation of the Applicant's prior copending application Ser. No. 122,296, filed Nov. 18, 1987, now abandoned.
US Referenced Citations (7)
Non-Patent Literature Citations (1)
Entry |
"REX:a remote execution protocol for object-oriented distributed applications" Dave Otway, Ed Oskiewicz, The Advanced Networked Systems Architecture Project. |
Continuations (2)
|
Number |
Date |
Country |
Parent |
524121 |
Apr 1990 |
|
Parent |
122296 |
Nov 1987 |
|