Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
314 words
A process for scheduling the order of instructions of a compiled program for use in a pipelined architecture processor to minimize pipeline breaks comprising the steps of: A) establishing an instruction buffer for receiving representations of new instructions to be processed with respect to representations of instructions already residing therein; B) if any instructions remain to be processed, calling a new instruction; else, conclude the process; C) establishing, for such new instruction to be processed, attribute fields providing information thereon with respect to its usage of memory and registers; D) logically comparing the attribute fields of the new instruction with the attribute fields of the instructions then represented in the buffer to identify the presence of any conflicts; E) if no conflicts are identified in step D), proceeding to step F); F) sending the oldest instruction represented in the buffer to an object module, pushing the representation of the new instruction into the buffer; G) returning to step B); H) if conflicts are identified in step D), proceeding to step I); I) designating the most recent instruction already in the buffer as I m , a candidate to be moved to an earlier position in the buffer; J) systematically comparing the attribute fields of I m with the attribute fields of a selected one, I n , of the instructions represented in the buffer which holds an earlier position in the buffer than I m to determine if the positions in the buffer of I m and I n can be safely exchanged; K) if I m and I n can be safely exchanged, effecting the exchange and returning to step J) to determine if I m can be moved yet earlier in the buffer; and L) if I m and I n cannot be safely exchanged or if no instructions remain in the buffer for designation as I n, proceeding to step F).
Claim 2
Dependent Claim
78 words
The process of Claim 1 in which step C) is accomplished by accessing the contents of an instruction attribute table which contains an encoded description of the manner in which addressing can be carried out, which registers are used, the manner in which registers are used, which registers are modified and the manner in which registers are modified for each instruction in the repertoire of a given computer processor for which the scheduling process is to be applied.
Claim 3
Dependent Claim
88 words
The process of Claim 1 in which, intermediate step G) and step B), there is included the following steps: M) determining if the new instruction just pushed into the buffer is a transfer of control; N) if the determination in step M) is that the new instruction is a transfer of control, flushing the buffer to the object module and then proceeding to step B); and O) if the determination in step M) is that the new instruction is not a transfer of control, proceeding to step B).
Claim 4
Dependent Claim
88 words
The process of Claim 2 in which, intermediate step G) and step B), there is included the following steps: M) determining if the new instruction just pushed into the buffer is a transfer of control; N) if the determination in step M) is that the new instruction is a transfer of control, flushing the buffer to the object module and then proceeding to step B); and O) if the determination in step M) is that the new instruction is not a transfer of control, proceeding to step B).
Claim 5
Dependent Claim
25 words
The process of Claim 3 in which, during step N) a destination label is generated for reentry into the process at an appropriate later time.
Claim 6
Dependent Claim
25 words
The process of Claim 4 in which, during step N) a destination label is generated for reentry into the process at an appropriate later time.