System and method for assigning tags to instructions to control instruction execution
Abstract
Tag monitoring system for assigning tags to instructions. A memory unit stores instructions to be executed by an execution unit. Before execution an instruction fetch unit decodes the instructions. A register file stores the decoded instructions. A queue having a plurality of slots containing tags which are used for tagging the decoded instructions. A control unit assigns the tags to decoded instructions, monitors the completion of executed instructions, and advances the tags in the queue upon completion of an executed instruction. The register stores a given decoded instruction at an address location in the register file defined by the tag assigned to that instruction. The register file also contains a plurality of read address enable ports and corresponding read output ports. Each of the slots from the queue is coupled to a corresponding one of the read address enable ports. Thus, a a decoded instruction is read out of a read output port enabled by the tag assigned to that decoded instruction in program order.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A system for tracking instructions in a variable advance instruction window of a predetermined size, comprising: control logic that identifies an increment of advancement in the variable advance instruction window, requests an instruction source to send, to a register file, decoded instruction information for a set of instructions equal in number to said increment of advancement, and assigns a tag to each new instruction that enters the variable advance instruction window, wherein said tag comprises a unique address in said register file where said decoded instruction information is to be stored; and a recycling queue comprising a plurality of slots equal in number to the predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to the order of instructions in the variable advance instruction window.
2. The system of claim 1, wherein said tags in each of said plurality of slots of said recycling queue are used to output said decoded instruction information.
3. The system of claim 2, wherein said tags in each of said plurality of slots of said recycling queue are applied to read address ports of said register file to output said decoded instruction information, in program order, at corresponding read data ports of said register file.
4. The system of claim 1, wherein said decoded instruction information specifies functional unit requirements.
5. The system of claim 1, wherein said decoded instruction information specifies types of operations to be performed.
6. The system of claim 1, wherein said decoded instruction information specifies storage locations where instruction results are to be stored.
7. The system of claim 1, wherein said decoded instruction information specifies storage locations where instruction operands are stored.
8. A system for tracking instructions in a variable advance instruction window of a predetermined size, comprising: control logic that identifies an increment of advancement in the variable advance instruction window, requests an instruction source to send, to a register file, decoded instruction information for a set of instructions equal in number to said increment of advancement, and assigns a tag to each new instruction that enters the variable advance instruction window, wherein said tag comprises a unique address in said register file where said decoded instruction information is to be stored; and a recycling queue comprising a plurality of slots, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to the order of instructions in the variable advance instruction window, wherein said tags in said plurality of slots of said recycling queue are applied to read address ports of said register file to output said decoded instruction information, in program order, at corresponding read data ports of said register file.
9. The system of claim 8, wherein said recycling queue comprises a plurality of slots equal in number to the predetermined size of the instruction window.
10. The system of claim 8, wherein said decoded instruction information specifies functional unit requirements.
11. The system of claim 8, wherein said decoded instruction information specifies types of operations to be performed.
12. The system of claim 8, wherein said decoded instruction information specifies storage locations where instruction results are to be stored.
13. The system of claim 8, wherein said decoded instruction information specifies storage locations where instruction operands are stored.
14. A computer system, comprising: a memory unit for storing program instructions; a bus coupled to said memory for retrieving said program instructions; and a processor coupled to said bus, wherein said processor comprises a tag monitoring system for tracking instructions in a variable advance instruction window of a predetermined size, wherein said tag monitoring system comprises: control logic that identifies an increment of advancement in the variable advance instruction window, requests an instruction source to send, to a register file, decoded instruction information for a set of instructions equal in number to said increment of advancement, and assigns a tag to each new instruction that enters the variable advance instruction window, wherein said tag comprises a unique address in said register file where said decoded instruction information is to be stored; and a recycling queue comprising a plurality of slots equal in number to the predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to the order of instructions in the variable advance instruction window wherein said tags in said plurality of slots of said recycling queue are applied to read address ports of said register file to output said decoded instruction information, in program order, at corresponding read data ports of said register file.
15. A method for tracking instructions in a variable advance instruction window of a predetermined size, comprising the steps of: (a) assigning a tag to each new instruction that enters the variable advance instruction window, wherein said tag comprises a unique address within a register file; (b) storing decoded instruction information related to each instruction in said register file in a location specified by the tag assigned to that instruction; and (c) storing each tag in a slot of a recycling queue, said recycling queue comprising a number of slots equal to the predetermined size of the variable advance instruction window, wherein an order defined by a position of said tags in said recycling queue corresponds to the order of instructions in the variable advance instruction window.
16. The method of claim 15, further comprising the step of: (d) using said tags stored in said slots of said queue to output said decoded instruction information in program order.
17. The method of claim 16, wherein step (d) comprises the step of passing said tags stored in said slots of said recycling queue to a plurality of read address ports of said register file to cause said register file to output said decoded instruction information, in program order, at a plurality of read data ports of said register file.
18. The method of claim 15, wherein said step for storing the decoded instruction information comprises storing information specifying functional unit requirements.
19. The method of claim 15, wherein said step for storing the decoded instruction information comprises storing information specifying a type of operation to be performed.
20. The method of claim 15, wherein said step for storing the decoded instruction information comprises storing information specifying a storage location where instruction results are to be stored.
21. The method of claim 15, wherein said step for storing the decoded instruction information comprises storing information specifying a storage location where instruction operands are stored.
22. The computer system of claim 14, wherein said recycling queue comprises a plurality of slots equal in number to the predetermined size of the instruction window.
23. The computer system of claim 14, wherein said decoded instruction information specifies functional unit requirements.
24. The computer system of claim 14, wherein said decoded instruction information specifies types of operations to be performed.
25. The computer system of claim 14, wherein said decoded instruction information specifies storage locations where instruction results are to be stored.
26. The computer system of claim 14, wherein said decoded instruction information specifies storage locations where instruction operands are stored.
27. A computer system, comprising: a memory unit for storing program instructions; a bus coupled to said memory for retrieving said program instructions; and a processor coupled to said bus, wherein said processor comprises a tag monitoring system for tracking instructions in a variable advance instruction window of a predetermined size, wherein said tag monitoring system comprises: control logic that identifies an increment of advancement in the variable advance instruction window, requests an instruction source to send, to a register file, decoded instruction information for a set of instructions equal in number to said increment of advancement, and assigns a tag to each new instruction that enters the variable advance instruction window, wherein said tag comprises a unique address in said register file where said decoded instruction information is to be stored; and a recycling queue comprising a plurality of slots equal in number to the predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to the order of instructions in the variable advance instruction window.
28. The computer system of claim 27, wherein said tags in each of said plurality of slots of said recycling queue are used to output said decoded instruction information.
29. The computer system of claim 28, wherein said tags in each of said plurality of slots of said recycling queue are applied to read address ports of said register file to output said decoded instruction information, in program order, at corresponding read data ports of said register file.
30. The computer system of claim 27, wherein said decoded instruction information specifies functional unit requirements.
31. The computer system of claim 27, wherein said decoded instruction information specifies types of operations to be performed.
32. The computer system of claim 27, wherein said decoded instruction information specifies storage locations where instruction results are to be stored.
33. The computer system of claim 27, wherein said decoded instruction information specifies storage locations where instruction operands are stored.
34. A method for tracking instructions in a variable advance instruction window of a predetermined size, comprising the steps of: (a) assigning a tag to each new instruction that enters the variable advance instruction window, wherein said tag comprises a unique address within a register file; (b) storing decoded instruction information related to each instruction in said register file in a location specified by the tag assigned to that instruction; (c) storing each tag in a slot of a recycling queue, wherein an order defined by a position of said tags in said recycling queue corresponds to the order of instructions in the variable advance instruction window; and (d) applying said tags in said plurality of slots of said recycling queue to read address ports of said register file to output said decoded instruction information at corresponding read data ports of said register file.
35. The method of claim 34, wherein said step (c) comprises the step of storing each tag in a slot of a recycling queue, said recycling queue comprising a plurality of slots equal in number to the predetermined size of the instruction window.
36. The method of claim 15, wherein said step for storing the decoded instruction information comprises storing information specifying functional unit requirements.
37. The method of claim 34, wherein said step for storing the decoded instruction information comprises storing information specifying a type of operation to be performed.
38. The method of claim 34, wherein said step for storing the decoded instruction information comprises storing information specifying a storage location where instruction results are to be stored.
39. The method of claim 34, wherein said step for storing the decoded instruction information comprises storing information specifying a storage location where instruction operands are stored.
40. The method of claim 34, wherein said step (d) comprises the step of applying said tags to read address ports of said register file to output said decoded instruction information, in program order, at corresponding read data ports of said register file.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.