Claims
- 1. A method for implementing a variable advance instruction window that receives and stores instruction information from a source of instructions, the method comprising the steps of:
determining how many new instructions can be added to the instruction window; assigning a tag to each new instruction such that the tag of a particular instruction remains constant while it is in the window; storing information related to each instruction in a register file in locations specified by the tag assigned to that instruction, said register file comprising a plurality of registers, a plurality of read address ports equal to or less than the number of instructions in the window and a plurality of read data ports equal to or less than the number of instructions in the window; storing each tag in a slot of a queue, said queue comprising a number of slots equal to the number of instructions in the window and the tags are positioned in the same order in the queue as their corresponding instructions are positioned in the window and the tags in the queue advance in the same manner as their corresponding instructions advance in the window, said queue further comprising a slot output for each slot, each slot output permitting the tag in the corresponding slot to be accessed; accessing one of said slots via the corresponding slot output; and passing the tag stored in that slot to a particular one of said plurality of read address ports of the register file to cause the register file to output at a particular read data port corresponding to said particular read address port, the information related to the instruction in the window corresponding to that tag.
- 2. The method according to claim 1, further comprising the step of advancing said queue a number of slots equal to the number of new instructions determined to be added to the instruction window.
- 3. The method according to claim 1, wherein said step for storing the information comprises storing decoded instruction information.
- 4. The method according to claim 1, wherein said step for storing the information comprises storing a memory address of the instruction.
- 5. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying functional unit requirements.
- 6. The method according to claim 3, wherein said step for storing the decoded information comprises storing information specifying a type of operation to be performed.
- 7. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying a storage location where instruction operands are stored.
- 8. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying a storage location where instruction operands are stored.
- 9. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying a target address of an instruction.
- 10. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying immediate data to be used in an operation specified by the instruction.
- 11. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying functional unit requirements in a second register file.
- 12. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying a type of operation to be performed in a second register file.
- 13. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying a storage location where instruction results are to be stored in a second register file.
- 14. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing inform nation specifying a storage location where instruction operands are stored in a second register file.
- 15. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying a target address of a control flow instruction in a second register file.
- 16. The method according to claim 3, wherein said step for storing the decoded instruction information comprises storing information specifying immediate data to be used in an operation specified by an instruction in a second register file.
- 17. The method according to claim 3, further comprising the step of storing a valid bit for each tag in said queue, wherein valid bit is set if the instruction corresponding to the tag associated with the valid bit is valid.
- 18. The method according to claim 1, wherein said step for storing the information comprises storing instructions.
- 19. A system for implementing a variable advance instruction window, which receives and stores instruction information from a source of instructions, comprising:
control means for determining how many new instructions can be added to the instruction window and for assigning a tag to each new instruction such that the tag of a particular instruction remains constant while it is in the window; a register file, coupled to said control means, for storing information related to each instruction in locations, in said register file, specified by the tag assigned to that instruction, said register file comprising a plurality of registers forming said locations, a plurality of read address ports, and a plurality of read data ports; a recycling queue, coupled to said control means and said register file, having a plurality of slots, each of said slots containing a unique tag that corresponds to an address located in said register file, said recycling queue further comprising a slot output for each slot, each slot output permitting the tag in the corresponding slot to be accessed; wherein said control means accesses a specific one of said slots via the corresponding slot output, and wherein the tag stored in said specific slot is passed to a particular one of said plurality of read address ports of the register file to cause the register file to output at a particular read data port corresponding to said particular read address port, the information related to the instruction in the window corresponding to that tag.
- 20. The system according to claim 19, wherein said control means advances said tags in said recycling queue a number of slots equal to the number of new instructions added to the instruction window.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent application Ser. No. 09/574,251, filed May 19, 2000, now allowed, which is a continuation of U.S. patent application Ser. No. 09/252,655, filed Feb. 19, 1999, now U.S. Pat. No. 6,092,176, which is a continuation of application Ser. No. 08/811,237, filed Mar. 3, 1997, now U.S. Pat. No. 5,896,542, which is a continuation of application Ser. No. 08/224,328, filed Apr. 4, 1994, now U.S. Pat. No. 5,628,021, which is a continuation-in-part of application Ser. No. 07/999,648 filed Dec. 31,1992, now U.S. Pat. No. 5,604,912.
Continuations (4)
|
Number |
Date |
Country |
Parent |
09574251 |
May 2000 |
US |
Child |
10034252 |
Jan 2002 |
US |
Parent |
09252655 |
Feb 1999 |
US |
Child |
09574251 |
May 2000 |
US |
Parent |
08811237 |
Mar 1997 |
US |
Child |
09252655 |
Feb 1999 |
US |
Parent |
08224328 |
Apr 1994 |
US |
Child |
08811237 |
Mar 1997 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
07999648 |
Dec 1992 |
US |
Child |
08224328 |
Apr 1994 |
US |