EP0527622A2
Expired / Lapsed
EP
⏱️ 0.0 years remaining
Formula processor
Assignee: Lotus Development Corp
•
Filing: 1992-08-10
•
Granted: —
•
Expires: 2012-08-10
Abstract
Abstract A formula processor is described which computes results for a group of formulas in which at least one formula uses the result of another formula. The formula processor receives the formulas from a host and returns computed results for the formulas to the host for storage in a main memory. After the formula processor computes a result for a formula, it stores this result in a cache memory. Thereafter, the formula processor can retrieve the result stored in the cache memory and use the retrieved result to compute a subsequent formula.
Inventors
- 👤 David Reed
- 👤 Alfred M. Blanchette
Bibliographic Details
Application Number
—
Jurisdiction
EP
Data Source
google_patents
Last Synchronized
2026-11-08 14:43
CPC Classifications
G; G06; G06F; G06F17/00; G06F17/10; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3877
Claims Analysis
Total Claims: 29
Claim 1
Independent Claim
179 words
A formula processor which computes results for a plurality of formulas, wherein at least one formula identifies and uses the result of another formula, comprising an interface which receives said formulas from a host and returns computed results for said formulas to said host for storage in a main memory, a computation element which computes said results by performing operations in response to formulas received by said interface, a cache memory which stores the result of a formula and an identification to be used by other formulas in identifying said formula, and a cache manager which, after computation of a result for a first formula by said computation element, stores said result and an identification for said first formula in said cache memory; wherein as part of computing a result for a second formula which identifies said first formula, said cache manager retrieves the result of said first formula from said cache memory using an identification supplied by said second formula, and then uses the retrieved result of said first formula in computing a result for said second formula.
Claim 2
Dependent Claim
92 words
The formula processor of claim 1 wherein said cache memory contains a plurality of entries, each capable of storing an identification of and result for a previously-computed formula, if said cache memory is not full, said cache manager stores the result of a formula computed by said computation element in said cache memory by using unused entries, and otherwise if said cache memory is full, said cache manager stores the result of a formula computed by said computation element in said cache memory by replacing the result stored in a selected entry.
Claim 3
Dependent Claim
49 words
The formula processor of claim 2 wherein if a formula being computed by said computation element uses the result of a previously-computed formula which is not stored in said cache memory, said cache manager signals said host to retrieve the result of said previously-computed formula from said main memory.
Claim 4
Dependent Claim
53 words
The formula processor of claim 2 wherein said cache manager stores information indicating the order in which each result was stored in said cache memory entries, and when said cache manager replaces the result stored in a selected entry, the selected entry contains the result which was least recently stored in said cache.
Claim 5
Dependent Claim
56 words
The formula processor of claim 2 wherein said cache manager stores information indicating the order in which the results in said entries were used by said computation element, and when said cache manager replaces the result stored in a selected entry, the selected entry contains the result which was least recently used by said computation element.
Claim 6
Dependent Claim
81 words
The formula processor of claim 1 or 2, wherein said host topologically sorts said formulas before transmitting said formulas to said formula processor, such that each formula which uses the result of a second formula is received by said formula processor after said second formula, and dependency information, indicating whether the result of at least one said formula is used by subsequent formulas, is generated by said host during said topological sort and transmitted to said formula processor with said formulas.
Claim 7
Dependent Claim
45 words
The formula processor of claim 6, wherein if said dependency information indicates that the result of a given formula computed by said computation element is not used by subsequent formulas, said cache manager does not store the result of said formula in said cache memory.
Claim 8
Dependent Claim
143 words
The formula processor of claim 7, wherein said dependency information indicates the number of subsequent formulas which use the result of at least one said formula, and if said cache memory is full and if said dependency information indicates that the result of said given formula is used by fewer subsequent formulas than any result stored in said cache memory, said cache manager does not store the result of said given formula in said cache memory, and if said cache memory is full and if said dependency information indicates that the result of said given formula is used by more subsequent formulas than a result stored in said cache memory, said cache memory stores the result of said given formula in said cache memory in place of the result in said cache memory which is used by the fewest number of subsequent formulas.
Claim 9
Independent Claim
82 words
A method of organizing a plurality of formulas in which at least one formula identifies and uses the result of another formula, comprising topologically sorting said formulas from an initial order to a final order, such that any given formula which uses the result of a second formula is placed in a predetermined position in said final order relative to said second formula, and generating dependency information indicating whether the result of one of said formulas is used by any other formulas.
Claim 10
Dependent Claim
16 words
The method of claim 9 wherein said dependency information is generated for all of said formulas.
Claim 11
Dependent Claim
23 words
The method of claim 9 wherein said dependency information indicates the number of subsequent formulas which use the result of one said formula.
Claim 12
Dependent Claim
23 words
The method of claim 9 wherein said dependency information identifies one or more subsequent formulas which use the result of one said formula.
Claim 13
Dependent Claim
138 words
A formula processor which computes a result for a formula received from a host and returns the computed result to said host, said formula describing one or more operands and one or more operations to be performed on the values of said operands, comprising a computation element which is capable of performing a predetermined set of supported operations on operands received from said host; wherein prior to each operation described by said formula, said computation element determines whether said operation is one of said supported operations, and if said operation is one of said supported operations, said computation element performs said operation on the operands described by said formula, if said operation is not one of said supported operations, said computation element communicates an indication to said host that said operation is not supported by said computation element.
Claim 14
Dependent Claim
48 words
The formula processor of claim 13 wherein after said computation element communicates an indication that an operation is not supported by said computation element, said host transmits, to said formula processor, a description of one or more other operations which achieve a computation equivalent to said unsupported operation.
Claim 15
Dependent Claim
30 words
The formula processor of claim 13 wherein after said computation element communicates an indication that an operation is not supported by said computation element, said host performs said unsupported operation.
Claim 16
Dependent Claim
67 words
The formula processor of claim 13 wherein after said computation element communicates an indication that an operation is not supported by said computation element, if a computation equivalent to said unsupported operation can be performed by said formula processor, said host transmits a description of one or more other operations to said formula processor which achieve said equivalent computation, or otherwise, said host performs said unsupported operation.
Claim 17
Dependent Claim
98 words
The formula processor of claim 13 wherein said formula processor computes results for a plurality of formulas in which at least one formula identifies and uses the result of another formula, and further comprising a cache manager which stores the result of a first formula in a cache memory after computation by said computation element; wherein if a second formula uses the result of said first formula, said cache manager retrieves the result of said first formula from said cache memory such that said computation element uses said retrieved result in computing a result for said second formula.
Claim 18
Dependent Claim
134 words
The formula processor of claim 13 wherein said host stores said computed result in a main memory, and at least one operand described by said formula includes a pointer indicating that a value for said operand must be retrieved, further comprising an operand storage memory having a plurality of entries for storing said operands, said entries capable of storing operand values and pointers, one or more operands described by said formula being stored in said operand storage memory upon receipt of said formula, wherein prior to an operation on an operand stored in said operand storage memory, said computation element determines whether a value or a pointer is stored in said entry, and if a pointer is stored in said entry, said formula processor retrieves a value for said operand prior to said operation.
Claim 19
Dependent Claim
118 words
The formula processor of claim 18 wherein said host transmits multiple formulas to said formula processor, at least one of the operands for one of said formulas including a pointer indicating that the result of another formula must be retrieved, and further comprising a cache manager which stores the result of a first formula in a cache memory after computation by said computation element; wherein if a second formula includes a pointer indicating that the result of said first formula must be retrieved, said cache manager retrieves the result of said first formula from said cache memory and stores said retrieved result in said operand storage memory, and said pointer is not stored in said operand storage memory.
Claim 20
Dependent Claim
151 words
A formula processor which computes a result for a formula, said formula describing one or more operands and one or more operations to be performed on the values of said operands, comprising an interface circuit which receives a formula from a host microprocessor as a sequence of tokens describing operands or operations, and communicates the computed result to said host microprocessor for storage in a main memory, a token interpreter circuit which interprets tokens received by said interface circuit, and forwards the operands or operations described by said tokens, said token interpreter interpreting said tokens while subsequent tokens are being received by said interface circuit, an operand storage memory having a plurality of entries for storing operands forwarded by said token interpreter circuit, and a computation circuit which computes said result by performing the operations forwarded by said token interpreter on operands stored in the entries of said operand storage memory.
Claim 21
Dependent Claim
94 words
The formula processor of claim 21 wherein at least one said operand of said formula includes a pointer indicating that a value for said operand must be retrieved, the entries of said operand storage memory are capable of storing operand values and pointers, and prior to an operation on an operand stored in said operand storage memory, said computation circuit determines whether a value or a pointer is stored in said entry, and if a pointer is stored in said entry, said formula processor retrieves a value for said operand prior to said operation.
Claim 22
Dependent Claim
53 words
The formula processor of claim 21 wherein said pointer indicates one or more locations in said main memory where one or more values may be found, and said formula processor retrieves a value for said operand by signaling said host microprocessor to retrieve the values from said indicated locations in said main memory.
Claim 23
Dependent Claim
113 words
The formula processor of claim 21 wherein said host microprocessor transmits multiple formulas to said formula processor, at least one of the operands for one of said formulas including a pointer indicating that the result of another formula must be retrieved, and further comprising a cache manager which stores the result of a first formula in a cache memory after computation by said computation circuit; wherein if a second formula includes a pointer indicating that the result of said first formula must be retrieved, said cache manager retrieves the result of said first formula from said cache memory and stores said retrieved result in said operand storage memory in place of said pointer.
Claim 24
Dependent Claim
54 words
The formula processor of claim 21 wherein each entry of said operand storage memory contains a type section which indicates whether said entry contains a value or a pointer, and said computation circuit reads said type section to determine whether a value or pointer is stored in an entry of said operand storage memory.
Claim 25
Dependent Claim
31 words
The formula processor of claim 1, 9, 13, or 20 wherein said host is a microprocessor running a software program, said formula processor is an integrated circuit coupled to said microprocessor.
Claim 26
Dependent Claim
115 words
The formula processor of claim 25 wherein said formula processor is plug-compatible with a coprocessor which is compatible with said host microprocessor, said formula processor is coupled to a port of said microprocessor which is used by said host microprocessor to communicate with said coprocessor, said formula processor is responsive to coprocessor commands used by said host microprocessor to communicate with said coprocessor, and performs, in response to said coprocessor commands, functions equivalent to those performed by said coprocessor in response to said coprocessor commands, and said formula processor is responsive to formula commands not used by said host microprocessor to communicate with said coprocessor, and performs, in response to said formula commands, formula calculations.
Claim 27
Dependent Claim
80 words
The formula processor of claim 26 adapted to perform formula calculations and coprocessor functions simultaneously, further comprising state storage for storing the operative state of said formula processor, wherein after responding to a formula command, prior to responding to a coprocessor command said formula processor saves state information in said state storage, and after responding to a coprocessor command, prior to responding to a formula command said formula processor resets its state by reading state information from said state storage.
Claim 28
Dependent Claim
35 words
The formula processor of claim 1, 9, 13, or 20 wherein said host is a software program running on a programmable circuit, and said formula processor is a software program running on a programmable circuit.
Claim 29
Dependent Claim
27 words
The formula processor of claim 1, 9, 13, or 20 wherein said computation element performs numeric, logical, or string operations on values in said operand storage memory.
References Cited (Backward Citations)
No citation records indexed.
USPTO Annuity & Maintenance Windows
Maintenance schedule is calculated for granted US utility patents.