Method of renaming registers in register file and microprocessor thereof -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer How to File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
     new ** File a Provisional Patent ** 
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
12/28/06 | 96 views | #20060294342 | Prev - Next | USPTO Class 712 | About this Page  712 rss/xml feed  monitor keywords

Method of renaming registers in register file and microprocessor thereof

USPTO Application #: 20060294342
Title: Method of renaming registers in register file and microprocessor thereof
Abstract: A microprocessor for processing instructions comprises multiple clusters for receiving the instructions, each of the clusters having a plurality of functional units for executing the instructions, multiple register sub-files each having multiple registers for storing data for executing the instructions, wherein each of the clusters is associated with corresponding one of the register sub-files so that an instruction dispatched to a cluster is executed by accessing registers in a register sub-file associated with the cluster to which the instruction is dispatched, a register-renaming unit for renaming target registers in an instruction with registers in a register sub-file associated with a cluster to which the instruction is dispatched, and issue-queue units each of which is associated with a corresponding one of the clusters, wherein an issue-queue unit holds instruction renamed by the register-renaming unit until the renamed instruction is issued to be executed in a cluster associated with the issue-queue unit. (end of abstract)
Agent: F. Chau & Associates, LLC - Woodbury, NY, US
Inventor: Mayan Moudgill
USPTO Applicaton #: 20060294342 - Class: 712001000 (USPTO)
Related Patent Categories: Electrical Computers And Digital Processing Systems: Processing Architectures And Instruction Processing (e.g., Processors), Processing Architecture
The Patent Description & Claims data below is from USPTO Patent Application 20060294342.
Brief Patent Description - Full Patent Description - Patent Application Claims  monitor keywords

CROSS REFERENCE TO RELATED UNITED STATES APPLICATIONS

[0001] This application is a continuation of, and claims priority from, U.S. patent application Ser. No. 10/087,880, filed on Mar. 4, 2004 of Mayan Moudgill, the contents of which are incorporated herein in their entirety.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to functional units and registers to process data in a microprocessor, and more particularly, to a microprocessor with clusters and register files which are associated with each other to enhance the efficiency of data process therein.

[0004] 2. Description of the Related Art

[0005] A microprocessor in an electronic system generally contains multiple functional units and multiple registers for the use of data process therein. Each functional unit executes instructions to write data into pertinent register(s) in a register file. Functional units may be any data computation units such as an arithmetic logic unit (ALU), an adder unit, a floating point unit, a load store unit, etc.

[0006] Since functional units in a microprocessor dispatch data to a register file in the same cycle, a register file should have the same number of write ports as that of the functional units to satisfy the "peak data write requirement", in which all the functional units generate data to be written into a register file in the same cycle. Thus, as the number of functional units in a microprocessor is increased, the number of write ports of a register file should be increased to satisfy the peak data write requirement.

[0007] Increase in the number of ports in a register file causes increase in the area required to implement the register file and also in the time required to access data in the register file. For example, in a data write mode, the number of write ports in a register file determines the number of data values (or, the amount of data) that can be simultaneously written into the register file.

[0008] Referring to FIG. 1, there is provided a block diagram illustrating a register file and functional units in a typical microprocessor. The microprocessor 10 may have "n" functional units FU.sub.1-FU.sub.n each of which can simultaneously produce data every cycle. In this case, to satisfy the peak data write requirement, the microprocessor 10 should have a register file 12 with the same number of write ports WP.sub.1-WP.sub.n as that of the functional units FU.sub.1-FU.sub.n, i.e., "n" write ports.

[0009] In case that it is required for a microprocessor to have more functional units, it is also required to increase the number of write ports of a register file in the microprocessor. Such an increase in the number of write ports affects size and speed of the microprocessor.

[0010] To overcome such problems in the conventional microprocessors, a register file in a microprocessor is designed to have fewer number of write ports than the number of functional units. In such processors, it is necessary to arbitrate the functional units for the write ports of the register file. In other words, an arbitration unit is required to manage data communication between the functional units and the write ports of a register file.

[0011] In an arbitration process, a functional unit should first send a request signal to an arbitration unit to write data into a register file. The arbitration unit receives all request signals from functional units and then grants certain functional units access to the write ports in accordance with an arbitration logic. Then, the functional units of which requests have been granted may proceed to write data into a register file, and other functional units of which requests have not been granted should request the access in the next cycle.

[0012] In a microprocessor adopting the arbitration technique, since each functional unit should send an access request and wait for the grant, it causes additional delay in data process of the microprocessor. For example, a cycle time for the microprocessor may be increased by a time period required for the arbitration process. Also, the arbitration process may affect performance of the microprocessor by forcing the functional units stall if there is no write port free.

[0013] Another example of a conventional approach in this area can be found in "The Multi-cluster Architecture: Reducing Cycle Time Through Partitioning" by K. I. Frakas et al., pp. 149-159, MICRO-30, December 1997. In this reference, architected registers are partitioned for the purpose of decoupling clusters and reducing read and write ports of a register file. In this technique, data read and write operation can be performed only between particular register files and functional units associated with each other. This technique is described below with reference to FIG. 2.

[0014] In FIG. 2, the first and second functional units FU.sub.1, FU.sub.2 are associated with the first and second register files RF.sub.1, RF.sub.2, respectively. The first register file RF.sub.1 has architected registers r.sub.0-r.sub.15, and the second register file RF.sub.2 has architected registers r.sub.16-r.sub.31. The first functional unit FU.sub.1 has efficient access to the architected registers r.sub.0-r.sub.15 in the first register file RF.sub.1, and the second functional unit FU.sub.2 has efficient access to the architected registers r.sub.16-r.sub.31 in the second register file RF.sub.2. For example, the efficient access may be accomplished when instruction "r.sub.7.rarw.r.sub.11+r.sub.12" is dispatched to the first functional unit FU.sub.1, and instruction "r.sub.17.rarw.r.sub.23+r.sub.31" is dispatched to the second functional unit FU.sub.2.

[0015] However, this technique has drawbacks in case of instructions such as instruction "r.sub.7.rarw.r.sub.11+r.sub.31" which is dispatched to the first functional unit FU.sub.1. In this case, to obtain the contents of the architected register r.sub.31, the first functional unit FU.sub.1 should have access to the second register file RF.sub.2. The access path between the first functional unit FU.sub.1 and the second register file RF.sub.2 is so slow that performance of the microprocessor may be severely retarded.

[0016] Another problem in the microprocessor in FIG. 2 is that computation of the microprocessor may be distributed unevenly. In other words, if the program being executed in the microprocessor uses mostly architected registers r.sub.0-r.sub.15 of the first register file RF.sub.1, the computation for the program is not evenly distributed and the registers r.sub.16-r.sub.31 in the second register file RF.sub.2 are not utilized.

[0017] Therefore, a need exists for a microprocessor having less number of write ports in a register file than the number of functional units, while having no problems such as performance delay or degradation caused by the arbitration process, data access through the slow paths, the uneven distribution of computation, etc.

OBJECTS AND SUMMARY OF THE INVENTION

[0018] It is an object of the present invention to provide a microprocessor having less number of write ports in a register file than the number of functional units in the microprocessor.

[0019] It is another object of the present invention to provide a method of designing a microprocessor with register files and functional units which satisfy the "peak data write requirement", while the register files have less number of write ports than the number of functional units.

[0020] To accomplish the above and other objects of the present invention, there is provided a microprocessor for processing instructions, comprising a plurality of clusters for receiving the instructions, each of the clusters having a plurality of functional units for executing the instructions; and a plurality of register sub-files each having a plurality of registers for storing data for executing the instructions, wherein each of the clusters is associated with corresponding one of the register sub-files so that an instruction dispatched to a cluster is executed by accessing registers in a register sub-file associated with the cluster to which the instruction is dispatched. Each of the register sub-files preferably has one write port to which a corresponding cluster sends data to be written into registers in a register sub-file associated with the corresponding cluster, and the register sub-files each have a same number of registers.

[0021] The microprocessor may also include a register-renaming unit for renaming target registers in an instruction with registers in a register sub-file associated with a cluster to which the instruction is dispatched. The register-renaming unit identifies a register to be used to store a value named by a target register in the instruction. The microprocessor may also include issue-queue units each of which is associated with a corresponding one of the clusters and an instruction dispatch mechanism for determining which of the clusters each instruction is dispatched to. An issue-queue unit holds instruction renamed by the register-renaming unit until the renamed instruction is issued to be executed in a cluster associated with the issue-queue unit, and the instruction dispatch mechanism controls the issue-queue units to determine which of the instructions need to be executed.

Continue reading...
Full patent description for Method of renaming registers in register file and microprocessor thereof

Brief Patent Description - Full Patent Description - Patent Application Claims
Click on the above for other options relating to this Method of renaming registers in register file and microprocessor thereof patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Method of renaming registers in register file and microprocessor thereof or other areas of interest.
###


Previous Patent Application:
Shared translation look-aside buffer and method
Next Patent Application:
Realtime compression of microprocessor execution history
Industry Class:
Electrical computers and digital processing systems: processing architectures and instruction processing (e.g., processors)

###

FreshPatents.com Support
Thank you for viewing the Method of renaming registers in register file and microprocessor thereof patent info.
IP-related news and info


Results in 0.78375 seconds


Other interesting Feshpatents.com categories:
Qualcomm , Schering-Plough , Schlumberger , Seagate , Siemens , Texas Instruments ,