CN104050027B - The dynamic chek point setting based on rearrangement buffer area is rebuild for renaming table - Google Patents

The dynamic chek point setting based on rearrangement buffer area is rebuild for renaming table Download PDF

Info

Publication number
CN104050027B
CN104050027B CN201410097569.4A CN201410097569A CN104050027B CN 104050027 B CN104050027 B CN 104050027B CN 201410097569 A CN201410097569 A CN 201410097569A CN 104050027 B CN104050027 B CN 104050027B
Authority
CN
China
Prior art keywords
renaming
rob
data
checkpoint
cpt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410097569.4A
Other languages
Chinese (zh)
Other versions
CN104050027A (en
Inventor
R.伊恩加
P.桑萨纳克里什南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/831,488 external-priority patent/US9448799B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN104050027A publication Critical patent/CN104050027A/en
Application granted granted Critical
Publication of CN104050027B publication Critical patent/CN104050027B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

It is a kind of reduction due to stopping assembly line to rebuild renaming table caused by the time punish out-of-order CPU, device and method.Microprocessor may include the assembly line with decoder, allocator and at least one execution unit.Rename table storage renaming data, and checkpoint table(CPT)Store the renaming data received from allocator.Rearrangement buffer area(ROB)ROB data are stored, and there is the dynamic mapping relationship with CPT.If such as removing renaming table due to misprediction, at least partially through the renaming data being stored in CPT are concurrently replicated, collaboration is walked on ROB and is moved, to rebuild renaming table.

Description

The dynamic chek point setting based on rearrangement buffer area is rebuild for renaming table
Technical field
This disclosure relates to semiconductor equipment, and relate more specifically to the microprocessor of the operation of controlling electronic devices, with And the electronic equipment using such microprocessor.
Background technique
Microprocessor, also referred to as central processing unit(CPU), worked and executing instruction.Some instructions cause point Fulcrum, at branch point, can choose an execution route rather than another.If microprocessor is made about which item will be selected The correct predictive prediction in path, and first carry out the instruction along the path in advance, then microprocessor can have increased speed. Such CPU is referred to as random ordering CPU.However, when there are mispredictions(misprediction)When, speed advantage is reduced, and is needed Restore.
The challenge of out-of-order CPU is such as write after write(Write After Write, WAW)And writeafterread(Write After Read, WAR)Risk.It can be ordered again to avoid these risks, register renaming in tracking by register renaming It is realized with the help of the renaming table of the source and destination register of name.
However, remaining issues is the branch instruction that whenever all there is misprediction, therefore whole removings of having to (flush)Rename table.Because since branch can be by Out-of-order execution, it is thus possible to exist more early than the branch instruction of misprediction Wait resignation(retire)Instruction, so removing is problem.These renaming information more early instructed must be reconstructed into weight It names in table.
Therefore, which manifests themselves as delay.During reconstruction process, renaming logic must make the front end of assembly line Stop(stall)Send the new instruction for renaming.This stopping causes to postpone, and is equivalent to punish branch misprediction It penalizes.The punishment, which depends not only on, rebuilds the waiting time, additionally depends on the depth for redirecting the front end of waiting time and assembly line Degree.
In order to reduce this stopping, it has been proposed that Checkpointing(check-pointing)Scheme, prior to assigning Grade, a part as renaming assembly line.In these schemes, traditionally each branch instruction opens new checkpoint window Mouthful.This method very wasting space, because of the checkpoint of the running branch allowed in its needs and machine as many.
Summary of the invention
This description provides microprocessor, is integrated with the equipment of microprocessor and overcomes the example of problem of the prior art.
In one embodiment, microprocessor includes the stream with decoder, allocator and at least one execution unit Waterline.Rename table storage renaming data, and checkpoint table(CPT)Store the renaming data received from allocator. Rearrangement buffer area(ROB)ROB data are stored, and there is the dynamic mapping relationship with CPT.If such as due to misprediction And remove renaming table, then at least partially through the renaming data being stored in CPT are concomitantly replicated, cooperate in ROB Upper step moves (walking the ROB), to rebuild the renaming table.
Compared with the existing technology the advantages of be reduce due to stopping assembly line to rebuild renaming table caused by when Between punish.Another advantage results from the fact, that is, CPT is in after allocator, and successful reconstitution renaming is greatly decreased Checkpoint number needed for table.The present invention causes higher than pre-assignment Checkpointing scheme in terms of space, power and timing The embodiment of effect.
According to the following detailed description carried out with reference to attached drawing, these and other feature and advantage of this specification will become more Add it is clear that in the accompanying drawings:
Detailed description of the invention
Fig. 1 is the figure of the component for the microprocessor made according to example embodiment.
Fig. 2A and Fig. 2 B is for illustrating dynamic relationship according to the embodiment, showing the different operation of component in Fig. 1 The figure of scene.
Fig. 3 A is block diagram when showing the microprocessor normal operating made according to example embodiment.
Fig. 3 B is the figure for showing the microprocessor for Fig. 3 A that the renaming table after normal operating is removed, and the removing is Detect the result of the misprediction executed instruction.
Fig. 3 C is the figure for showing the microprocessor for Fig. 3 B that renaming table is reconstructed after being removed.
Fig. 4 is the relative timing arteries and veins for showing the renaming table of the renaming table according to the embodiment for being used to rebuild such as Fig. 3 C The timing diagram of punching.
Fig. 5 is figure of the present invention without the component of Fig. 3 C of the first example scene of generation benefit.
Fig. 6 is the figure of the component of Fig. 3 C for the second example scene that the present invention generates benefit.
Fig. 7 is the figure of the component of Fig. 3 C for the third example scene that the present invention generates maximum benefit.
Fig. 8 is the block diagram for illustrating the system including microprocessor according to example embodiment.
Fig. 9 is the flow chart for illustrating method according to example embodiment.
Specific embodiment
As already mentioned, this description is about microprocessor, device and method.Embodiment is more fully described now.
Fig. 1 is the figure of the component for the microprocessor 110 made according to example embodiment.Microprocessor 110 includes for connecing Instruction is received, and for the decoder 120 by these instruction decodings for miniature operation, miniature operation is also referred to as microoperation (micro-op).
Microprocessor 110 further includes one or more execution units for executing microoperation.In Fig. 1, shows three and hold Row unit, i.e. execution unit-A151, execution unit-B152 and execution unit-C153, but the quantity of unit as example and It is shown as limitation.
Decoder 120 and unit 151,152,153 are the parts of so-called assembly line, and the assembly line includes additional group Part.One such component is allocator 140, is provided for microoperation being finally assigned to execution unit.In showing for Fig. 1 In example, one be assigned in three schedulers first, i.e. scheduler-A141, scheduler-B142 and scheduler-C143.Scheduling Device transmits microoperation to execution unit 151,152,153.These execution units are from physical register file(Physical Register File, PRF)Reading source(source), and then execute microoperation.It will be appreciated by those skilled in the art that above It is only a sample architecture of the part of assembly line, and different frameworks are possible.
Microprocessor 110 extraly includes the renamer 130 that microoperation is received from decoder 120.Renamer 130 Renaming data are generated according to microoperation.
In addition, microprocessor 110 includes renaming table 136.The storage of table 136 is renamed according to arrow 135 from renamer 130 received renaming data.
Microprocessor 110 further includes rearrangement buffer area("ROB")160.ROB160 has not separately shown in Fig. 1 ROB entry.As will be seen in detail in later, ROB160 includes retirement pointer(Retire Pointer)With removing pointer (Flush Pointer), each of described pointer be directed toward ROB entry in variable entry.ROB160 can be circulation Or it is acyclic.ROB entry is used to store the ROB data 162 generated from microoperation.In some embodiments, each ROB entry A microoperation is stored, although can store more microoperations in single ROB entry.ROB data 162 include rebuilding to order again It is preferably corresponding with the renaming data being stored in renaming table 136 to rebuild renaming data 182 for name data 182.In Fig. 1 Embodiment in, from allocator 140 receive ROB data 162.
Microprocessor 110 further includes at least one checkpoint table(Check-point table, CPT)170.CPT170 with It is equally wide to rename table 136.CPT170 has CPT entry not separately shown in Fig. 1.In CPT entry and renaming table 136 Entry is as many, it means that CPT is deep as renaming table 136.The number of CPT entry defines CPT depth.CPT entry is used In the version for the checkpoint for being stored in the renaming data stored in renaming table 136(check-pointed version)180.The version 180 for renaming the checkpoint of data can be any version that can generate renaming data This or its can be identical with renaming data because it is stored in checkpoint table 170, in this case its The referred to as renaming data 180 of checkpoint.In the embodiment in figure 1, renaming data are received from allocator 140 The version 180 of checkpoint.
As will be described in more detail, the checkpoint ROB window is mapped to CPT according to dynamic relationship 187, wherein being based on The ROB entry that retirement pointer is directed toward defines the checkpoint ROB window.Because retirement pointer is typically different in different time direction ROB entry, therefore relationship 187 is variable.Therefore, when new microoperation is assigned in ROB entry, if the microoperation has Purposefully, then the CPT entry selected is also updated using the destination renaming information of the microoperation.
As previously mentioned, renaming table 136 can be removed, the weight being stored in renaming table can be removed by more precisely referring to Name data.In the embodiment in figure 1, microprocessor 110 further includes that branch executes logic 157.Logic 157 can be as described above Misprediction is detected when executing microoperation, misprediction is shown by label 190.It can be removed in response to detecting misprediction 190 Rename table 136.
If removing renaming table 136, can be rebuild.In order to rebuild, microprocessor 110 can also include can To store the resignation table 138 of the data of resignation checkpoint.As the initial part of reconstruction, can be incited somebody to action according to arrow 139 The data of resignation checkpoint copy to renaming table 136.
In addition, other than the initial replication from resignation table, the renaming data removed can be from two in order to rebuild Data source is restored to renaming table 136.Firstly, the version 180 of the checkpoint of renaming data can be used as on a large scale It imports(mass importation)Renaming table 136 is copied to from CPT170 according to arrow 175.As solved later within this document It releases, if the aspect of dynamic relationship 187 allows, the extensive importing is realized by concurrently duplication.Secondly, ROB data Reconstruction renaming data 182 in 162 at least partly can copy to renaming table 136 from ROB160 according to arrow 165, It is further referred to as " to walk and move on ROB(walking ROB)" process.
It there is presently provided implementation details.Fig. 2A and 2B shows the ROB260 that can be replaced in the microprocessor 110 of Fig. 1 And CPT270.It will be understood that can with agree with via arrow 175 concurrently replicate rather than the duplication of arrow 165 is to saving processing The viewpoint of device time, make size to ROB260 and CPT270 and its between emic selection.
In this example, ROB260 has 96 ROB entries, is named as from 0 to 95.ROB260 can have any number ROB entry.In addition, the checkpoint ROB window is defined as one group of ROB entry.Described group can be and can be optimize Any number.In the case where 48 ROB entries, for described group, the good number of effect is the depth of about ROB Size half.As from it hereafter will be understood that, it is enough that the ROB checkpoint window more much bigger than best size is not capable of calling CPT Time to generate extraordinary effect, and if the checkpoint ROB window is more much smaller than best size, can call CPT sufficient The enough time, but without enough renaming data.As will be seen below, in both cases, if described group big Small off-target size is too far, then it is more than the required time to will lead to the time that step shifting is spent on ROB for it.
In Figures 2 A and 2 B, the different scenes for having removed renaming table therebetween show ROB260 and CPT270.Certainly, often The secondary checkpoint ROB window will be across different groups of 48 ROB entries.Also, work as in different time by removing renaming table not When defining with event, ROB rebuilds window will usually have different number of ROB entry every time.
More specifically, in fig. 2, the checkpoint ROB window is defined as since the retirement pointer at ROB entry 20, and And until ROB entry 67.Also, it is fixed because an entry after entry 56 is the entry 57 being directed toward by removing pointer Justice rebuilds window 263A, i.e. ROB entry 20-56 comprising the ROB of 37 ROB entries.These 37 ROB entry storages include rebuilding Rename the ROB data 262A including data 282A.The renaming data 280A of CPT270 storage checkpoint.
In addition, in fig. 2b, the checkpoint ROB window is defined as since the retirement pointer at ROB entry 40, and straight To ROB entry 87.Also, ROB of the definition only comprising 27 ROB entries rebuilds window 263B, i.e. ROB entry 40-66.These 27 ROB data 262B of a ROB entry storage including rebuilding and renaming data 282B.CPT270 stores checkpoint Rename data 280B.
Dynamic relationship 287 is ROB, and is more specifically the checkpoint ROB window, how to be mapped to the mode of CPT.Institute Mapping is stated sometimes referred to as to be associated with.Since the checkpoint ROB window is that the ROB entry being directed toward based on retirement pointer is defined, so Relationship 287 is variation, therefore relationship 287 is referred to as dynamic.In fact, defining ROB at different locations in Fig. 2A and 2B Checkpoint window.
In order to rebuild, there are such selections, that is, element-specific will be stored the ROB entry or storage of the element-specific The CPT270 of the element-specific is restored to renaming table.If allowing to replicate from CPT, which will faster.
Dynamic relationship 287 is partly controlled other than rebuilding from ROB260, if will be rebuild from CPT270 or from CPT270 is reconstructed into any degree.In fact, the duplication from CPT270 occurs if the aspect of relationship 287 additionally allows for.Slightly The example when allowed is described within this document afterwards.
Continuous use Fig. 3 A, 3B, 3C are now to describe the example event of the example microprocessor 310 made according to embodiment Sequence.Microprocessor 310 includes decoder 320, renamer 330, renaming table 336, resignation table 338, allocator 340, adjusts Spend device 341,342,343, PRF350, execution unit 351,352,353, branch execute logic 357 and ROB360, all can be with As described in above with reference to the similar assembly in Fig. 1.ROB360 stores the ROB data 362 similar with ROB data 162. ROB data 362 include that the reconstruction similar with renaming data 182 are rebuild renames data 382.
In addition, microprocessor 310 includes with the CPT370 with the dynamic relationship of ROB360.CPT370 and ROB360 can be with With dynamic relationship identical with the relationship 187 of Fig. 1,2A, 2B.CPT370 stores the weight of checkpoint according to dynamic relationship Name data 380.
In Fig. 3 A, 310 normal operating of microprocessor.Instruction is received in decoder 320 by assembly line, and is executing list It is executed at member 351,352,353.
In Fig. 3 B, as detected misprediction as indicating label 390.As a result, such as by the removing of 392 instruction of annotation Rename table 336.
In Fig. 3 C, as rebuild renaming table 336 by 393 instruction of annotation.As a result, as by 391 instruction of annotation, Exist in the front end of assembly line and stops.
Reconstruction occurs as described below:Firstly, replicating resignation checkpoint from resignation table 338 according to arrow 339.Then, lead to It crosses usually from two not homologous data and rebuilds.If the aspect of applicable dynamic relationship allows, according to arrow 375 Copy check point renames data 380.Also, renaming number is rebuild by walking in-migration duplication on ROB360 according to arrow 365 According to 382.However, in some specific situations, a possibility as will be seen that in example scene below, in the two sources It does not work.
Microprocessor 310 also typically includes unshowned clock.The clock output defines the pulse of clock cycle.Clock Period is the good way for measuring advantages of the present invention.Example will now be described.
Fig. 4 is the timing diagram for showing the relative timing pulse of the renaming table for rebuilding in such as Fig. 3 C.Clock cycle 412 include the group 415 in N number of period, is shown here as single pulse.Digital N will be described in further detail later.
Fig. 4 illustrates the generation and subsequent punishment for detecting misprediction.Pulse 492 and the removing weight according to annotation 392 Name table 336 corresponding.Extended stop pulse (stalling pulse) 491 be stopped according to the assembly line of annotation 391 Time is corresponding;The duration of pulse 491 punishes with the time to misprediction and subsequent microprocessor performance decline is related. In 415 the two of pulse 491 and periodic groups, if N is big, punish larger.Pulse 493A and pulse 493B instruction and annotation The beginning and end of 393 corresponding reconstructions.
In general, the renaming period 436 includes a)For replicating the period 439, b of resignation checkpoint according to operation 339) Period 475 and c for concurrently being replicated according to arrow 375 from CPT)It is up to N number of for walking shifting on ROB according to arrow 365 The group 465 in period.Similar with periodic groups 415, the period 465 is shown as signal period, and in fact both value N.In Fig. 4 In the local repeat arrows 339,375 and 365 that can enhance the association of reader icon.
However, particularly in, it includes some in these renaming periods 436 for not being every time.Including which and do not include Which the problem of, is depending on the scene that defines at the time of detecting misprediction and therefore removing renaming table.It is now literary herein Concrete operations scene is presented with reference to Fig. 4 in part.
Firstly, in order to understand scene, it is recognized that ROB rebuilds window and is defined when removing renaming table.As existed above It is had been observed that in Fig. 2A and Fig. 2 B, ROB, which rebuilds window, to be had since retirement pointer and in the previous entry for removing pointer The ROB entry of end.The ROB entry that ROB is rebuild in window defines which data needs to be restored to renaming table, by from CPT Concurrently duplication, or pass through on ROB walk move.In any case, the slave ROB for rebuilding renaming data copies to renaming The part of table is all rebuild in window in ROB.
Scene the difference is that:When removing renaming table every time, ROB, which rebuilds window, will usually cover ROB entry Different sets.Therefore, different scenes explore the depth relative to the previously mentioned checkpoint ROB window, and how ROB rebuilds window With different size.This aspect in following example scene, which also will be determined whether, allows CPT table concurrently to be copied to renaming table, Or alternatively identical content will be replicated by walking in-migration on ROB.
The example of various such scenes is explored now.It is similar with shown in Fig. 2A, 2B for these scenes, it is assumed that Use ROB360 and CPT370.In addition, by for the checkpoint ROB(CP)Window and the bracket instruction shown in CPT370, also answer With the dynamic relationship 587 similar with relationship 287.
Fig. 5 is for not from the figure of the component of Fig. 3 C of the first benefited example scene of the present invention.In ROB360, checkpoint Window terminates since the ROB entry 20 being directed toward by retirement pointer and in ROB entry 67.In addition, indicated by an arrow, ROB It is since the ROB entry 20 being directed toward by retirement pointer and small in the ROB entry 57 than being directed toward by removing pointer to rebuild window 563 One ROB entry 56 terminates.The ROB data 562 that ROB is rebuild in window 563 include rebuilding renaming data 582, will be passed through From the concurrently duplication of CPT370 or directly by being restored to renaming table 336 and ROB360 is walked and moved.
In this example, it is smaller than the checkpoint ROB window to rebuild window 563 by ROB.Therefore, it will remove ROB entry 57-67's Content, and the renaming data 580 for the checkpoint being therefore stored in CPT370 will be not as the portion of reconstruction process Divide and be copied in renaming table, this is because renaming table 336 must be copied to entire CPT370.This is why by The renaming data 580 of Checkpointing are shown as being crossed out.Therefore, according to note 5 67, in whole ROB entry 20-56 Rebuilding renaming data 582 will be resumed according to arrow 565, that is, be moved by walking on ROB360.
In other words, the CPT of Fig. 5 cannot be used for rebuilding, and therefore the present invention is excellent without providing in the scene of Fig. 5 Point.For Fig. 5 scene referring briefly to Fig. 4, renaming the period 475 will be included, and numerical value of N value is up to m, and wherein m is The maximum number for the step that can be moved on ROB360 under such a scenario.The duration of stop pulse 491 relative to Duration in the absence of the present invention is not reduced.For remaining exemplary scene, situation is not in this way.
Fig. 6 is the figure for the component of Fig. 3 C of the second example scene.In ROB360, checkpoint window is from by retirement pointer The ROB entry 20 of direction starts and terminates in ROB entry 67.In addition, the ROB in ROB360, which rebuilds window 663, crosses over ROB item Mesh 20-76.In this example, ROB rebuilds window 663 greater than the checkpoint ROB window.It is rebuild in window 663 in ROB, ROB data 662 include reconstruction renaming the data portion 682A and 682B that be restored to renaming table 336.It will be understood that by the checkpoint ROB window The boundary of mouth causes reconstruction renaming data in ROB360 to be divided into part 682A and 682B.In fact, ROB entry 20-67 reflects It is mapped to the renaming data portion 680 for the checkpoint being stored in CPT370, and ROB entry 68-76 does not map To CPT370.
The renaming data portion 680 of checkpoint is available, and according to annotation 677, will be according to arrow 675 It restores it.Therefore, it will not need to rebuild renaming data portion 682A, and be illustrated as being crossed out.However, part 682B cannot carry out efficient replication via CPT, and according to annotation 667, be moved by walking on ROB360, will be extensive according to arrow 665 Reconstruction in multiple ROB entry 68-76 renames data portion 682B.It, can be single according to the recovery of arrow 675 with reference to Fig. 4 Occur in clock pulses 475.N will be still greater than 0, but be less than m, and due to the present invention, by reduce stop pulse 491 it is lasting when Between.It will be observed that the reconstruction in the scene of reconstruction ratio Fig. 5 in the scene of Fig. 6 needs to replicate more data, but due to this hair It is bright, need less time.
Fig. 7 is the figure for the component of Fig. 3 C of third example scene.In ROB360, checkpoint window is from by retirement pointer The ROB entry 20 of direction starts and terminates in ROB entry 67.In addition, ROB, which rebuilds window 763, crosses over ROB entry 20-67.? In the example, it is identical with the checkpoint ROB window that ROB rebuilds window 763.This is statistically to be sent out really with some frequency Raw special circumstances.ROB data 762 include rebuilding renaming data 782.
The renaming data 780 of checkpoint are available, and according to annotation 777, will according to arrow 775 by its Restore.In addition, shifting will not be walked on ROB360 in this scenario according to annotation 767;Do not rebuild renaming data will by from ROB360 copies to renaming table 336.Therefore, it will not need to rebuild renaming data 782, and be illustrated as crossing out.Ginseng Fig. 4 is examined, can be occurred in single clock pulses 475 according to the recovery of arrow 775.N will be equal to 0, and will be not present pulse 415,465 group.Due to the present invention, the duration of stop pulse 491 will be minimized.
With reference to Fig. 8, electronic equipment includes the system 800 to work together with semiconductor equipment according to example embodiment.System System 800 can be used in personal digital assistant(PDA), laptop computer, mobile computer, web plate, radio telephone, honeycomb Phone, digital music player, wired or wireless electronic equipment or including at least in complex electronic equipment both wherein.System System 800 may include the input/output of the controller 810, such as keypad, keyboard, display that are communicated with one another by bus 850 Equipment 820, memory 830 and interface 840.Controller 810 may include at least one the micro- place being for example made into according to embodiment Manage device, digital signal processor or microcontroller etc..Memory 830 can be configured as what storage will be used by controller 810 Instruction and/or the user data that can be accessed via I/O equipment.Electronic equipment 800, which can be used, to be configured as passing to communication network It send data or receives the interface 840 of data from communication network.The transmission can connect via electric wire, such as via cable or USB Mouthful.Alternatively, communication network can be wireless, and interface 840 can be it is wireless, and including such as antenna and nothing Line transceiver etc..Electronic system 800 can use in the communication interface standard of communication system, and the communication system is such as CDMA, GSM, NADC, E-TDMA, WCDMA, CDMA2000, Wi-Fi, Muni Wi-Fi, bluetooth, DECT, Wireless USB, Flash- OFDM, IEEE802.20, GPRS, iBurst, WiBro, WiMAX, advanced WiMAX, UMTS-TDD, HSPA, EVDO, advanced LTE With MMDS etc..
Fig. 9 shows the flow chart 900 for describing method according to the embodiment.The method of flow chart 900 can also pass through The embodiment of above-described such as microprocessor and electronic equipment is realized.
According to operation 910, instruction is decoded as microoperation.According to next operation 920, renaming number is generated according to microoperation According to.According to next operation 930, renaming data are stored in renaming table.
According to next operation 940, the version for renaming the checkpoint of data is stored in CPT.According to another behaviour Make 950, is stored in ROB from the ROB data that microoperation generates.If it is required, then ROB data include that can be used for finally The reconstruction for rebuilding renaming table renames data.ROB maintains the dynamic relationship with CPT.According to operation 960, microoperation is executed.
According to next operation 970, it is determined whether removed renaming table;In other words, if removed from renaming table Rename data.Restart if not, executing from operation 910 above.In some embodiments, as described above in response to inspection It measures misprediction and removes renaming table.
If having removed renaming table, according to next operation 980, renaming data are restored to renaming table;Change sentence It talks about, rebuilds renaming table.Operation 980 includes the one or both in operation 982 and 984.It is heavy when removing for operation 980 When naming table, the ROB of ROB entry, which rebuilds window, can become defined;It, will be by by operation 982, or by operation 984 The exactly ROB for being restored to renaming table rebuilds the reconstruction renaming data of these ROB entries in window.
The version of the checkpoint of data will be renamed if the relationship of operation 950 allows according to operation 982 Renaming table is copied to from CPT.In some embodiments, so duplication renames being set for data in a single clock cycle The version of checkpoint.
According to operation 984, renaming data will be rebuild from ROB and copy to renaming table.Preferably, not for operation 982 Any residue of covering carries out such duplication, and is carried out by walking in-migration on ROB.
Above, the sequence of operation is not limited to the content shown, and is possible according to different embodiment different orders. In addition, in some embodiments it is possible to add new operation, or can modify or delete individual operations.
Those skilled in the art will realize the present invention in view of this description by as a whole to understand.It include details To provide comprehensive understanding.In other instances, well known aspect is not described, so as not to can unnecessarily obscure the present invention.
This description includes one or more examples, but it does not limit and how can realize the present invention.In fact, of the invention Example or embodiment can be realized according to the content of description, or can differently be realized, and can also be existing with other or not Carry out technology to realize in combination.
Appended claims, which define, is considered as the certain of novel and non-obvious element, feature and step or operation Combination and sub-portfolio.The additional right of combination and sub-portfolio as other can be presented in this file or associated documents to want It asks.

Claims (21)

1. a kind of microprocessor, including:
Table is renamed, is used to store renaming data;
Allocator;
Checkpoint table CPT is used to store the renaming data received from the allocator, wherein if removing described heavy Table is named, then rebuilds renaming table using the renaming data being stored in the CPT, and
Resequence buffer area ROB, with ROB entry and the variable bar purpose retirement pointer being directed toward in ROB entry, and its The group of middle ROB entry is defined as the checkpoint ROB window,
The checkpoint ROB window is mapped to the CPT according to dynamic relationship, wherein the ROB being directed toward based on the retirement pointer Entry defines the checkpoint ROB window, and
If the aspect of the dynamic relationship allows, rebuild using only the renaming data being stored in the CPT described heavy Name table.
2. microprocessor as described in claim 1, wherein
The renaming table is rebuild using only the renaming data being stored in the CPT.
3. microprocessor as described in claim 1, further includes:
Branch executes logic, is used to detect misprediction, and
Wherein in response to detecting misprediction, the renaming table is removed.
4. microprocessor as described in claim 1, further includes:
Clock is used to export the pulse for defining the clock cycle, and
Wherein the renaming table is rebuild in the single clock cycle in the clock cycle.
5. a kind of microprocessor, including:
Decoder is used to instruction decoding be microoperation;
Execution unit is used to execute the microoperation;
Renamer is used to generate renaming data according to the microoperation;
Table is renamed, is used for described heavy to store in such a way that the renaming data can be removed from the renaming table Name data;
Checkpoint table CPT is used to store the version of the checkpoint of the renaming data;And
Resequence buffer area ROB, has ROB entry and direction for storing the ROB data generated from the microoperation Variable bar purpose retirement pointer in the ROB entry, the ROB data include rebuilding renaming data, the ROB entry Group is defined as the checkpoint ROB window, and the checkpoint ROB window is mapped to the CPT according to dynamic relationship, wherein being based on institute The ROB entry for stating retirement pointer direction defines the checkpoint ROB window,
Wherein if removing the renaming data being stored in the renaming table from the renaming table, the removing The renaming table can be restored to by following operation by renaming data:
If the aspect of dynamic relationship allows, the version of the checkpoint of the renaming data is answered from the CPT The renaming table is made, and
Reconstruction renaming data in ROB reconstruction window are at least partly copied into the renaming table from the ROB.
6. microprocessor as claimed in claim 5, further includes:
Allocator is used to assign the microoperation to the execution unit, and
Wherein the CPT receives the version of the checkpoint of the renaming data from the allocator.
7. microprocessor as claimed in claim 5, further includes:
Branch executes logic, is used to detect misprediction when executing the microoperation, and
Wherein in response to detecting misprediction, the renaming data are removed from the renaming table.
8. microprocessor as claimed in claim 5, further includes:
Clock is used to export the pulse for defining the clock cycle, and
Wherein by the version of the checkpoint of the renaming data in the single clock cycle in the clock cycle The renaming table is copied to from the checkpoint table.
9. a kind of method for microprocessor, including:
It is microoperation by instruction decoding;
Execute the microoperation;
Renaming data are generated according to the microoperation;
The renaming data are stored in renaming table in such a way that the renaming data can be removed from renaming table In;
The version of the checkpoint of the renaming data is stored in the checkpoint table CPT with depth;And
The ROB data generated from the microoperation, the ROB data packet are stored in the ROB entry of rearrangement buffer area ROB Reconstruction renaming data are included, the retirement pointer of ROB is directed toward the variable entry in the ROB entry, and the group of the ROB entry is determined Justice is the checkpoint ROB window, and the checkpoint ROB window is mapped to the CPT according to dynamic relationship, wherein being based on the resignation The ROB entry that pointer is directed toward defines the checkpoint ROB window, and
If removing the renaming data being stored in the renaming table from the renaming table, the life again of the removing Name data are restored to the renaming table by following operation:
If the aspect of dynamic relationship allows, the version of the checkpoint of the renaming data is answered from the CPT The renaming table is made, and
Reconstruction renaming data are at least partly copied into the renaming table from the ROB.
10. method as claimed in claim 9, wherein
The microoperation is received via allocator from decoder to be used to execute, and
The CPT receives the version of the checkpoint of the renaming data from the allocator.
11. method as claimed in claim 9, further includes:
Misprediction is detected when executing the microoperation, and
Wherein in response to detecting misprediction, the renaming data are removed from the renaming table.
12. method as claimed in claim 9, wherein
Pulse be define the output of clock cycle, and
By the version of the checkpoint of the renaming data in the single clock cycle in the clock cycle The renaming table is copied to from the checkpoint table.
13. a kind of microprocessor, including:
Renamer is used to generate renaming data according to microoperation;
Table is renamed, is used to store the renaming data;
Resequence buffer area ROB, is used to store the ROB data generated from the microoperation, and the ROB data include rebuilding Rename data;And
Checkpoint table CPT is used to store the version of the checkpoint of the renaming data in multiple checkpoint entries This, wherein each checkpoint entry is dynamically associated with to the corresponding ROB entry number in the continuous value sequence in ROB, wherein described Checkpoint table is that the ROB entry number being directed toward when checkpoint event occurs based on retirement pointer is dynamically determined,
Wherein if removing the renaming data being stored in the renaming table from the renaming table, pass through following behaviour Make the renaming data of the recovery removing:
If dynamically associating permission, the version of the checkpoint of the renaming data is copied into institute from the CPT Renaming table is stated,
But if the data removed completely by CPT restore, not by it is described rebuild renaming data any part from The ROB copies to the renaming table.
14. microprocessor as claimed in claim 13, further includes:
Allocator is used to assign the microoperation to execution unit, and
Wherein the CPT receives the version of the checkpoint of the renaming data from the allocator.
15. microprocessor as claimed in claim 13, further includes:
Branch executes logic, is used in the execution of the microoperation detect misprediction, and
Wherein the renaming table is rebuild in response to detecting misprediction.
16. microprocessor as claimed in claim 13, further includes:
Clock is used to export the pulse for defining the clock cycle, and
By the version of the checkpoint of the renaming data from institute in the single clock cycle in the clock cycle It states checkpoint table and copies to the renaming table.
17. a kind of electronic equipment, including:
Bus;
Interface is configured as transmitting data to the communication network for being connected to the bus or receives number from the communication network According to;
I/O equipment is connected to the bus;
Memory is connected to the bus, and be configured as storage via the addressable user data of the I/O equipment or Instruction;And
Controller is connected to the bus, and is configured with described instruction, and the controller includes that at least one is micro- Processor, the microprocessor include:
Table is renamed, is used to store renaming data;
Allocator;And
Checkpoint table CPT is used to store the renaming data received from the allocator, wherein if removing described heavy Table is named, then rebuilds renaming table using the renaming data being stored in the CPT, and
Resequence buffer area ROB, with ROB entry and the variable bar purpose retirement pointer being directed toward in ROB entry, and its The group of middle ROB entry is defined as the checkpoint ROB window,
The checkpoint ROB window is mapped to the CPT according to dynamic relationship, wherein the ROB being directed toward based on the retirement pointer Entry defines the checkpoint ROB window, and
If the aspect of the dynamic relationship allows, rebuild using only the renaming data being stored in the CPT described Rename table.
18. equipment as claimed in claim 17, wherein
The interface is wireless, and the communication network is wireless.
19. equipment as claimed in claim 17, wherein
The renaming table is rebuild using only the renaming data being stored in the CPT.
20. equipment as claimed in claim 17, further includes,
Branch executes logic, is used to detect misprediction, and
Wherein in response to detecting misprediction, the renaming table is removed.
21. equipment as claimed in claim 17, further includes:
Clock is used to export the pulse for defining the clock cycle, and
Wherein the renaming table is rebuild in the single clock cycle in the clock cycle.
CN201410097569.4A 2013-03-14 2014-03-14 The dynamic chek point setting based on rearrangement buffer area is rebuild for renaming table Active CN104050027B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/831,488 US9448799B2 (en) 2013-03-14 2013-03-14 Reorder-buffer-based dynamic checkpointing for rename table rebuilding
US13/831,488 2013-03-14

Publications (2)

Publication Number Publication Date
CN104050027A CN104050027A (en) 2014-09-17
CN104050027B true CN104050027B (en) 2018-11-27

Family

ID=51419101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410097569.4A Active CN104050027B (en) 2013-03-14 2014-03-14 The dynamic chek point setting based on rearrangement buffer area is rebuild for renaming table

Country Status (4)

Country Link
JP (1) JP6399772B2 (en)
KR (1) KR102010317B1 (en)
CN (1) CN104050027B (en)
DE (1) DE102014103183A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448800B2 (en) * 2013-03-14 2016-09-20 Samsung Electronics Co., Ltd. Reorder-buffer-based static checkpointing for rename table rebuilding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
CN100485607C (en) * 2004-12-28 2009-05-06 英特尔公司 Advance execution method and system in a central processing unit
CN102171650A (en) * 2008-11-24 2011-08-31 英特尔公司 Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996025705A1 (en) * 1995-02-14 1996-08-22 Fujitsu Limited Structure and method for high-performance speculative execution processor providing special features
JP2000285082A (en) * 1999-03-31 2000-10-13 Toshiba Corp Central processing unit and compiling method
US6742112B1 (en) * 1999-12-29 2004-05-25 Intel Corporation Lookahead register value tracking
US6629233B1 (en) * 2000-02-17 2003-09-30 International Business Machines Corporation Secondary reorder buffer microprocessor
US20070043934A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Early misprediction recovery through periodic checkpoints
US7747841B2 (en) * 2005-09-26 2010-06-29 Cornell Research Foundation, Inc. Method and apparatus for early load retirement in a processor system
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
US9052890B2 (en) * 2010-09-25 2015-06-09 Intel Corporation Execute at commit state update instructions, apparatus, methods, and systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
CN100485607C (en) * 2004-12-28 2009-05-06 英特尔公司 Advance execution method and system in a central processing unit
CN102171650A (en) * 2008-11-24 2011-08-31 英特尔公司 Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution

Also Published As

Publication number Publication date
DE102014103183A8 (en) 2014-11-13
JP6399772B2 (en) 2018-10-03
KR20140113305A (en) 2014-09-24
DE102014103183A1 (en) 2014-09-18
KR102010317B1 (en) 2019-08-13
JP2014179096A (en) 2014-09-25
CN104050027A (en) 2014-09-17

Similar Documents

Publication Publication Date Title
CN104881494B (en) The methods, devices and systems synchronous with Redis server progress data
US8694647B2 (en) Read-only operations processing in a paxos replication system
TW446912B (en) Methods and apparatus for reordering load operations in a computer processing system
JP5988444B2 (en) Method for testing an optimized binary module, computer for testing the optimized binary module, and computer program therefor
EP3267308B1 (en) Application loading method and device
CN104050132B (en) The static check point setting based on rearrangement buffering area is rebuild for renaming table
TW200403588A (en) Suspending execution of a thread in a multi-threaded processor
JP2012520504A (en) A programming model for synchronizing the browser cache across devices and web services
CA2821522A1 (en) Method for checkpointing and restoring program state
US9910733B2 (en) Transaction completion in a synchronous replication environment
WO2013048420A1 (en) Bi-directional copying of register content into shadow registers
US20130339689A1 (en) Later stage read port reduction
US20200174766A1 (en) Methods, Apparatuses and Computer Program Products for Improving Productivity for Building Applications
KR20150040662A (en) Method and Apparatus for instruction scheduling using software pipelining
CN104050027B (en) The dynamic chek point setting based on rearrangement buffer area is rebuild for renaming table
JP2011197803A (en) Program execution control method
US20130007525A1 (en) Test architecture based on intelligent test sequence
JP2012141887A (en) Information processing device, information processing method, and program
de Oliveira et al. On using adversary simulators to evaluate global fixed-priority and FPZL scheduling of multiprocessors
CN103309691A (en) Information processing equipment and quick startup method thereof
US11822967B2 (en) Task distribution method for minimizing preemption between tasks and apparatus for performing the same
JP2010102446A (en) Automatic software test device
CN117785398A (en) Distributed task scheduling method and device, electronic equipment and storage medium
JPWO2009044635A1 (en) Data processing apparatus and method
CN113778742A (en) Program execution method, program processing method, and related apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant