US5355485A
Expired / Lapsed
US
⏱️ 0.0 years remaining
First processor for dividing long argument data into packets and storing total packet count and packets in shared buffer for subsequent execution by second processor
Assignee: Texas Instruments Inc
•
Filing: 1993-03-03
•
Granted: 1994-10-11
•
Expires: 2013-03-03
Abstract
Abstract A method is provided for adding extended functions to a multiprocessor system, specifically, functions that may be called from programming running on a first processor and executed by a second processor. The function may have an argument that requires a large amount of argument data. Each extended function is associated with a special entry point command, which is in turn, associated with a communications routine that handles the transfer of the large argument data from the first processor to the second processor in bursts.
Inventors
- 👤 Michael A. Denio
- 👤 James G. Littleton
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-05 21:03
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3877; G06F9/3879; G06F15/00; G06F15/16; G06F15/163; G06F15/17; G06F9/44; G06F9/448; G06F9/4482; G06F9/4484; G06F9/4486
Claims Analysis
Total Claims: 16
Claim 1
Independent Claim
503 words
A method of using a multiprocessor computer system having a first processor for calling extended functions, a second processor for executing extended functions and a communications buffer of a predetermined data size for communications between the first and second processors, said communications buffer implemented as a shared address space accessible by both the first and second processor, each said extended function having at least one argument specifying data that is greater in size than the predetermined data size of the communications buffer, said method comprising the steps of: calling one of said extended functions from a main program running on the first processor; dividing the argument data corresponding to said called extended function into a plurality of data packets of predetermined packet size corresponding to said called extended function, said predetermined packet size permitting a plurality of said data packets to be simultaneously stored within the communications buffer; executing a first communications routine running on the first processor via a first entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of argument data to be sent to the second processor for said called extended function, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if a number of said data packets written into the communications buffer minus a number of said data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; reading said extended function identifier and said data packet count from the communications buffer by the second processor; executing a second communications routine running on the second processor, the step of executing said second communications routine including sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor.
Claim 2
Independent Claim
503 words
A method of using a multiprocessor computer system having a first processor for calling extended functions, a second processor for executing extended functions and a communications buffer of a predetermined data size for communications between the first and second processors, said communications buffer implemented as a shared address space accessible by both the first and second processor, each said extended function having at least one argument specifying data that is greater in size than the predetermined data size of the communications buffer, said method comprising the steps of: calling one of said extended functions from a main program running on the first processor; dividing the argument data corresponding to said called extended function into a plurality of data packets of predetermined packet size corresponding to said called extended function, said predetermined packet size permitting a plurality of said data packets to be simultaneously stored within the communications buffer; executing a first communications routine running on the first processor via a first entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of argument data to be sent to the second processor for said called extended function, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if a number of said data packets written into the communications buffer minus a number of said data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; reading said extended function identifier and said data packet count from the communications buffer by the second processor; executing a second communications routine running on the second processor, the step of executing said second communications routine including sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor.
Claim 3
Dependent Claim
52 words
The method as claimed in claim 1, wherein the first processor includes a memory for storing arguments of extended functions and wherein: said first entry point command includes an indication of said data packet count, said predetermined packet size and an indication of a location of the argument data within the memory.
Claim 4
Dependent Claim
17 words
The method as claimed in claim 1, wherein: the extended function identifier consists of a command number.
Claim 5
Independent Claim
576 words
A method of using a multiprocessor computer system having a first processor for calling extended functions, a second processor for executing extended functions and a communications buffer of a predetermined data size for communications between the first and second processors, said communications buffer implemented as a shared address space accessible by both the first and second processor, each extended function having at least one first argument specifying data that is greater in size than the predetermined data size of the communications buffer and at least one second argument specifying data required for performing that extended function that is smaller in size than the predetermined data size of the communications buffer, said method comprising the steps of: calling an extended function from a main program running on the first processor; dividing the first argument data corresponding to said called extended function into a plurality of data packets of predetermined packet size corresponding to said called extended function, said predetermined packet size permitting a plurality of said data packets to be simultaneously stored within the communications buffer; executing a first communications routine running on the first processor via a first entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function identifier and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of said first argument data to be sent to the second processor for said called extended function, writing the second argument data into the communications buffer, determining if the second argument data has been read from the communications buffer, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if a number of said data packets written into the communications buffer minus a number of said data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; reading said extended function identifier and said data packet count from the communications buffer by the second processor; executing a second communications routine running on the second processor, the step of executing said second communications routine including reading the second argument data from the communications buffer, indicating the second argument data has been read from the communications buffer, sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor.
Claim 6
Independent Claim
576 words
A method of using a multiprocessor computer system having a first processor for calling extended functions, a second processor for executing extended functions and a communications buffer of a predetermined data size for communications between the first and second processors, said communications buffer implemented as a shared address space accessible by both the first and second processor, each extended function having at least one first argument specifying data that is greater in size than the predetermined data size of the communications buffer and at least one second argument specifying data required for performing that extended function that is smaller in size than the predetermined data size of the communications buffer, said method comprising the steps of: calling an extended function from a main program running on the first processor; dividing the first argument data corresponding to said called extended function into a plurality of data packets of predetermined packet size corresponding to said called extended function, said predetermined packet size permitting a plurality of said data packets to be simultaneously stored within the communications buffer; executing a first communications routine running on the first processor via a first entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function identifier and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of said first argument data to be sent to the second processor for said called extended function, writing the second argument data into the communications buffer, determining if the second argument data has been read from the communications buffer, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if a number of said data packets written into the communications buffer minus a number of said data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; reading said extended function identifier and said data packet count from the communications buffer by the second processor; executing a second communications routine running on the second processor, the step of executing said second communications routine including reading the second argument data from the communications buffer, indicating the second argument data has been read from the communications buffer, sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor.
Claim 7
Dependent Claim
53 words
The method as claimed in claim 4, wherein the first processor includes a memory for storing arguments of extended functions and wherein: said first entry point command includes an indication of said data packet count, said predetermined packet size and an indication of a location of the first argument data within the memory.
Claim 8
Dependent Claim
41 words
The method as claimed in claim 4, wherein the first processor includes a memory for storing arguments of extended functions and wherein: said first entry point command includes an indication of a number of said second arguments, and each second argument.
Claim 9
Dependent Claim
65 words
The method as claimed in claim 4, wherein the first processor includes a memory for storing arguments of extended functions and wherein: said first entry point command includes an indication of said data packet count, said predetermined packet size, an indication of a location of the first argument data within the memory, an indication of a number of said second arguments, and each second argument.
Claim 10
Dependent Claim
17 words
The method as claimed in claim 4, wherein: the extended function identifier consists of a command number.
Claim 11
Independent Claim
999 words
A method of using a multiprocessor computer system having a first processor for calling extended functions, a second processor for executing extended functions and a communications buffer of a predetermined data size for communications between the first and second processors, said communications buffer implemented as a shared address space accessible by both the first and second processor, each extended function being one of (1) a first type extended function having at least one argument specifying data that is greater in size than the predetermined data size of the communications buffer, and (2) a second type extended function having at least one first argument specifying data that is greater in size than the predetermined data size of the communications buffer and at least one second argument specifying data required for performing that extended function that is smaller in size than the predetermined data size of the communications buffer, said method comprising the steps of: calling an extended function from a main program running on the first processor; dividing the first argument data corresponding to said called extended function into a plurality of data packets of predetermined packet size corresponding to said called extended function, said predetermined packet size permitting a plurality of said data packets to be simultaneously stored within the communications buffer; if said extended function is a first type extended function, executing a first communications routine running on the first processor via a first entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function identifier and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of said argument data to be sent to the second processor for said called extended function, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if a number of said data packets written into the communications buffer minus a number of said data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; if said extended function is a second type extended function, executing the first communications routine running on the first processor via a second entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function identifier and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of said first argument data to be sent to the second processor for said called extended function, writing the second argument data into the communications buffer, determining if the second argument data has been read from the communications buffer, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if the number of data packets written into the communications buffer minus the number of data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; reading said extended function identifier and said data packet count from the communications buffer by the second processor; if said extended function identifier indicates said extended function is the first type extended function, executing a second communications routine running on the second processor, the step of executing said second communications routine including sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor; if said extended function identifier indicates said extended function is the second type extended function, executing a second communications routine running on the second processor, the step of executing said second communications routine including reading second argument data from the communications buffer, indicating the second argument data has been read from the communications buffer, sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor.
Claim 12
Independent Claim
999 words
A method of using a multiprocessor computer system having a first processor for calling extended functions, a second processor for executing extended functions and a communications buffer of a predetermined data size for communications between the first and second processors, said communications buffer implemented as a shared address space accessible by both the first and second processor, each extended function being one of (1) a first type extended function having at least one argument specifying data that is greater in size than the predetermined data size of the communications buffer, and (2) a second type extended function having at least one first argument specifying data that is greater in size than the predetermined data size of the communications buffer and at least one second argument specifying data required for performing that extended function that is smaller in size than the predetermined data size of the communications buffer, said method comprising the steps of: calling an extended function from a main program running on the first processor; dividing the first argument data corresponding to said called extended function into a plurality of data packets of predetermined packet size corresponding to said called extended function, said predetermined packet size permitting a plurality of said data packets to be simultaneously stored within the communications buffer; if said extended function is a first type extended function, executing a first communications routine running on the first processor via a first entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function identifier and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of said argument data to be sent to the second processor for said called extended function, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if a number of said data packets written into the communications buffer minus a number of said data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; if said extended function is a second type extended function, executing the first communications routine running on the first processor via a second entry point command corresponding to said called extended function, the step of executing said first communications routine including writing an extended function identifier and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of said first argument data to be sent to the second processor for said called extended function, writing the second argument data into the communications buffer, determining if the second argument data has been read from the communications buffer, sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if the number of data packets written into the communications buffer minus the number of data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer; reading said extended function identifier and said data packet count from the communications buffer by the second processor; if said extended function identifier indicates said extended function is the first type extended function, executing a second communications routine running on the second processor, the step of executing said second communications routine including sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor; if said extended function identifier indicates said extended function is the second type extended function, executing a second communications routine running on the second processor, the step of executing said second communications routine including reading second argument data from the communications buffer, indicating the second argument data has been read from the communications buffer, sequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count; if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, and if it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor.
Claim 13
Dependent Claim
60 words
The method as claimed in claim 9, wherein the first processor includes a memory for storing arguments of extended functions and wherein: said first entry point command includes an indication of a number of said plurality of packets of said data packet count, said predetermined packet size and an indication of a location of the argument data within the memory.
Claim 14
Dependent Claim
41 words
The method as claimed in claim 9, wherein the first processor includes a memory for storing arguments of extended functions and wherein: said first entry point command includes an indication of a number of said second arguments, and each second argument.
Claim 15
Dependent Claim
65 words
The method as claimed in claim 9, wherein the first processor includes a memory for storing arguments of extended functions and wherein: said first entry point command includes an indication of said data packet count said predetermined packet size, an indication of a location of the first argument data within the memory, an indication of a number of said second arguments, and each second argument.
Claim 16
Dependent Claim
17 words
The method as claimed in claim 9, wherein: the extended function identifier consists of a command number.
References Cited (Backward Citations)
US4374428A
Cited
US4445176A
Cited
US4414624A
Cited
US4486854A
Cited
US4500960A
Cited
US4539637A
Cited
US4530051A
Cited
US4564901A
Cited
US4567562A
Cited
US4646231A
Cited
US4882674A
Cited
US4649473A
Cited
US5056003A
Cited
US4829475A
Cited
US4777588A
Cited
US4825354A
Cited
US4920483A
Cited
US4727537A
Cited
US4851988A
Cited
US4914570A
Cited
US4768150A
Cited
US4849877A
Cited
US5062040A
Cited
US4901231A
Cited
US4864543A
Cited
US4839866A
Cited
US4873625A
Cited
US4815039A
Cited
US4933901A
Cited
US5159686A
Cited
US5132964A
Cited
US5210874A
Cited
US4891788A
Cited
US4949255A
Cited
US5124909A
Cited
US5073852A
Cited
US5146593A
Cited
US5218699A
Cited
US5261095A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1997-10-10 | 1998-04-11 | 1998-10-11 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2001-10-10 | 2002-04-11 | 2002-10-11 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2005-10-10 | 2006-04-11 | 2006-10-11 | $7700.00 | Window Closed / Lapsed |