CN106020922A - Instruction dispatching method for executing packet padding idle rhythms by means of skip target basic blocks - Google Patents
Instruction dispatching method for executing packet padding idle rhythms by means of skip target basic blocks Download PDFInfo
- Publication number
- CN106020922A CN106020922A CN201610370406.8A CN201610370406A CN106020922A CN 106020922 A CN106020922 A CN 106020922A CN 201610370406 A CN201610370406 A CN 201610370406A CN 106020922 A CN106020922 A CN 106020922A
- Authority
- CN
- China
- Prior art keywords
- bag
- basic block
- instruction
- beat
- perform
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Disclosed is an instruction dispatching method for executing packet padding idle rhythms by means of skip target basic blocks. The instruction dispatching method comprises the following steps that 1, a code flow graph is searched for a target basic block pair related to the operation for executing packet padding idle rhythms through spanning basic block selection; 2, predecessor execution packet determination is performed on instruction execution packets inside the skip target basic blocks, other instructions relied by various instructions inside the execution packets are determined, the execution packets where the relied instructions are located and the positions of the execution packets are determined, and the rhythms corresponding to the earliest executable time of the execution packets are determined according to the dependency among the instructions; 3, according to the positional relation between the idle rhythms inside the basic blocks and the rhythms corresponding to the earliest executable time of the various instruction executable packets, the earliest padding time corresponding to the various instruction execution packets is worked out, the execution packets are moved to the corresponding idle rhythms are moved, so that padding is completed.
Description
Technical field
The present invention relates to the compiling optimization method of code, towards vliw processor hardware bottom layer
The filling technique field of idle beat in unconditional jump instruction delay groove and basic block, especially
The instruction dispatching method of idle beat filled by the bag that performs relating to a kind of jump target basic block.
Background technology
In compilation process, after completing basic block scheduling, still may deposit in basic block
At some idle beats, these idle beats include two parts: 1) between instructing and instructing
Data dependence relation and instruction perform the idle beat that time delay is caused;2) after branch instruction not
The delay groove filled by effective instruction.
Branch dispatches and refers to two pieces thing: after 1) filling branch instruction with useful instruction
Postpone groove;2) hiding being in is compared between instruction and the instruction carrying out branch according to comparative result
Delay.Due to the present invention is directed unconditional jump instruction delay groove and basic block adjust
The filling problem of the idle beat after degree, so being not related to compare instruction and rely on comparative result
Conditional branch instructions between delay and the Problems of Optimal Dispatch of conditional branch instructions itself.
For different architectures, the realization of branch makes a big difference, but mostly with many
Individual delay groove.The most effectively fill these postpone grooves be improve code degree of parallelism to be considered
One of major issue.Postpone groove to fill with useful instruction or nop instruction, but the latter is real
Border is idle running.In the basic block terminated with this branch instruction can be used when filling Tapped Delay groove
The instruction in portion.First check for whether the dependence DAG of this basic block has any leafy node energy
Enough it is put in the delay groove of its last item branch instruction.This instruction must is fulfilled for following bar
Part: 1) it must be replaceable with branch instruction, i.e. it can not be to determine branch condition
Instruction, can not be that value or the branch of the depositor changing branch address calculating use is used
The instruction of any other resource (such as condition code field);2) itself is not branch instruction.
If there is some instructions inside the basic block terminated with this branch instruction can fill this point
The delay groove of Zhi Zhiling, the instruction selecting be a bat that time delay;But without only
Need the instruction of a bat, select to postpone minimum instruction.
When processing a branch instruction, the target basic block of this branch can be paid close attention to tight simultaneously
Then its successor basic blocks.If current basic block does not has can be placed in Tapped Delay groove
Instruction, next step is structure branch target basic block and the DAG of this basic block below it,
And attempt finding out that instruction occurred simultaneously as the root of DAG;If can not find this
Instruction, the most just finds the instruction meeting condition in target basic block.
Above-mentioned postpones the superscale that groove fill method is only applicable to have single Tapped Delay groove
Architecture.For there is the vliw processor of multiple Tapped Delay groove, it is impossible to preferably
Each delay groove and other idle beat of branch instruction is filled on ground.Therefore, this side
This kind of processor can not preferably be improved in the basic block terminated with unconditional branch instructions by method
The execution efficiency of instruction, it is difficult to give full play to the performance of hardware.
Summary of the invention
For solving the problem that above-mentioned prior art exists, it is an object of the invention to provide with redirecting
The instruction dispatching method of idle beat filled by the bag that performs of target basic block, dispatches for basic block
The execution packet sequence obtained, uses the execution bag in unconditional jump target basic block further
Fill the idle beat in this sequence.The method of the present invention is by reasonably in target basic block
The unconditional jump instruction selecting the execution bag with effective instruction to fill current basic block is prolonged
Idle beat in slow groove and basic block so that when performing the idle running in basic block instruction process
Between reduce, simultaneously reduce branch target basic block the execution time, reach improve code perform effect
The purpose of rate.
For reaching above-mentioned purpose, the technical scheme is that
The instruction dispatching method of idle beat is filled with the bag that performs of jump target basic block, including
Following steps:
Step one, finds out in code flow graph and carries out selecting to perform the bag filling free time across basic block
The target basic block pair that beat operation is relevant;
Step 2, performs bag and carries out forerunner and perform bag and sentence the instruction in jump target basic block
Other instructions fixed, that in i.e. judging this execution bag, each instruction is relied on, are i.e. relied on instructing place
Execution bag and position, and according to instruction between dependence determine holding of this execution bag
The beat that row earliest time is corresponding;
Step 3, performs bag according to each instruction and can perform beat corresponding to earliest time with basic
The position relationship of idle beat in block, calculates each instruction and performs that bag is each self-corresponding fills
The early time, mobile these perform bag and arrive at corresponding idle beat, complete to fill.
Further, in described step one, process corresponding to this method is to have been completed base
This block dispatching and define each basic block perform to carry out on the basis of packet sequence;Therefore, exist
Initial time, the instruction in basic block be dispatched to perform in packet sequence each perform bag
In;
Further, determine in step one that the process of basic block pair includes following basic procedure:
1) the basic block B1 containing unconditional jump instruction is found, and available free beat in B1;
2) the jump target basic block B2 of jump instruction in B1 is found, and in requiring B2
First performs not comprise jump instruction in bag;
3) judging that whether B1 is unique forerunner's basic block of B2, whether B2 is the unique of B1
Successor basic blocks;If condition meets, then it represents that be found that and can carry out filling free time joint across basic block
A pair basic block clapped;
Further, the forerunner performing to wrap in step 2 in target basic block performs bag and judges concrete
For:
If instruction I2 could must perform after instruction I1 has performed, then I1 is called I2
Forerunner instruction.If I2 is in performing bag E2, I1 in performing bag E1, then claims E1
Forerunner for E2 performs bag, i.e. E2 must perform after E1.The master of this determination processing
The method is wanted to be:
1) judge that each instruction in target basic block performs whether bag has forerunner to perform bag;
2) if there is forerunner to perform bag, then perform bag respectively instructs with forerunner by this execution bag
Between data dependence relation, calculate the performed earliest time of this execution bag, then according to holding
The beat that the performed earliest time of row bag is corresponding determines with the position relationship of free time beat in B1
Current filled with the earliest time performing bag;
3) if there is not forerunner to perform bag, then this execution bag can be plugged into first in B1
Idle beat.
Further, in described step 3, filled with the earliest time performing bag determines method bag
Include herein below:
1) determine in B1 available free beat position in basic block;
2) bag is performed for certain in jump target basic block, perform bag completing its forerunner
Judge, obtain after it can perform earliest time, it is judged that it can fill the joint that earliest time is corresponding
Clap three kinds of situations of time-division to process: if it can perform earliest time first idle joint in basic block
Before bat, then can fill earliest time is first idle beat;If it can perform earliest time
In basic block between first idle beat and last idle beat, then can fill the earliest
Time is first idle beat after this execution bag can perform earliest time;If it can perform
Earliest time is in basic block after last idle beat, and the most currently performing bag cannot use
Fill.
Relative to prior art, the invention have the benefit that
The execution bag using unconditional jump target basic block of the present invention is empty in filling basic block
The method of not busy beat considers code and still there may be portion after having carried out basic block scheduling
Divide the problem that can fill idle beat.Unconditional jump target can be used basic by this method
Performing in block is wrapped simultaneously idle to other in unconditional jump instruction delay groove and basic block
Beat is filled with.Carry out performing packet scheduling across basic block and really add the scheduling of instruction
Territory, provides more chance improving code to scheduling.
Accompanying drawing explanation
Fig. 1 is the process of the performed earliest time calculating target basic block certain execution bag interior
Figure.
In figure, T instructs necessary time delay between inst for instruction I and forerunner;P is for comprising
Forerunner instructs the beat number performing bag place of inst, first P performing bag in basic block
Value is 1.A plurality of forerunner may be had to instruct, it is possible that have many owing to performing an instruction in bag
The value of individual T+P, it is maximum in those T+P values corresponding to this instruction for can performing earliest time
That value.When every instruction calculating during certain performs bag in target basic block can be performed the earliest
Between, i.e. find out the maximum T+P value of every instruction in this execution bag;Maximum of which that can
The value performing earliest time T+P is exactly the performed earliest time of this execution bag.
Fig. 2 is to select to perform bag to fill the state transition graph of idle beat, calculates target basic block
Interior perform bag the earliest can the State Transferring of filling time.
Each state according to this figure and conversion each other can realize one and determine limited
State automata judge in target basic block each perform bag the earliest can the filling time.Wherein
B1 is unique forerunner of B2, and B2 is the most follow-up of B1.Br instruction represents unconditional and jumps
Turn instruction.Other are described as follows:
1) ETime represents the beat number at performed an earliest time place performing bag;
2) FTime is the beat number at filled with an earliest time place performing bag;
3) P [n] is the sequence of available free beat in basic block;
4) beat number of first idle beat in P [1] is basic block;
5) i-th free time beat in P [i] is basic block;
6) EP is to perform bag to perform the beat at earliest time ETime place;
7) FP is to perform bag to fill the beat at earliest time FTime place;
Detailed description of the invention
With detailed description of the invention, technical solution of the present invention is done the most below in conjunction with the accompanying drawings
Describe:
As shown in Figure 1, 2, the choosing implementing specifically to include wrapping with execution successively of the inventive method
Select the structure of the data structure relevant with filling process, top-level flow controls, searching can be across base
This block fill the basic block of idle beat, the forerunner that performs bag is judged, calculate perform bag can
Perform earliest time, calculate filled with earliest time, filling idle beat, the deletion performing to wrap
The parts such as filled with the execution bag in target basic block.This method can use any program design language
Speech is embodied as.Detailed description of the invention is described below as a example by object oriented language.
In object oriented language program, data and relevant functional module are all encapsulated in apoplexy due to endogenous wind.
The implementation content that the method for the present invention relates to can with one perform packet scheduling class wrapper, will to across
Basic block carries out performing global data needed for the packet scheduling data member as this type of.Due to this
Invention is the filling problem of idle beat in pertaining only to basic block, so, for completing basic block
The essential information of the instruction in the basic block of scheduling and these basic blocks, it is assumed that they are the most saved
(forerunner of basic block and follow-up is wherein contained among basic block class object and instruction class object
Information, the execution packet sequence in basic block, the dependence of each instruction instructs and is relied on instruction letter
Breath);For instruction template information, it is assumed that they are saved in the object of instruction template class;Right
Essential information in architecture, it is assumed that they have been saved in architecture class object.It
Can be accessed by pointer or global variable name.So, it is embodied as following
In, pertain only to fill the instruction direct phase of system of selection with this unconditional jump situation instruction delay groove
The content closed.
1 data structure construction
In order to perform bag to substantially in realizing the use unconditional jump target basic block of the present invention
The method that idle beat in block is filled with, needs the support of related data structures.Except hardware
Outside structural information and instruction set information, other key data structure and being described as follows:
1) idle beat list.Idle beat list be used for describing basic block in all of free time
Some status informations of beat.It is that a subscript is from 1 one-dimension array started, array element
Number be the number of idle beat in basic block;Element value therein is that each idle beat is at base
Execution packet number corresponding in the execution packet sequence of this block.Such as: the 3rd in a basic block
It is idle beat that bat, the 5th bat and the 8th are clapped, then a [1]=3, a [2]=5, a [3]=8;
2) it is relied on performing bag set.One performs bag and may comprise a plurality of instruction, and these refer to
Order relied on other instruction places perform bag be referred to as this execution bag be relied on perform bag.One
What individual execution was wrapped is relied on performing bag may have multiple, wherein belongs to unconditional jump instruction place
Those of basic block perform bag composition and are relied on performing bag set;
3) it is relied on instruction set.Every the instruction corresponding one in bag is performed in target basic block
Individual it is relied on instruction set.Perform in bag in instruction in these set and target basic block
Instruction exist data dependence relation be relied on instruction;
4) each shape performing to wrap the deterministic finite automation that can fill earliest time is calculated
Enumerating of state;
5) assistance data that each execution bag is required for: perform the performed earliest time of bag;
Perform bag and can perform the numbering of beat corresponding to earliest time, perform when filling the earliest of bag
Between, perform bag and can fill the numbering of beat corresponding to earliest time.
2 top-level flow control
Top layer controls process and has the following steps:
(1) a pair basic block that can carry out filling across basic block free time beat is searched.Basic block
B1 and B2 is the basic block pair meeting schedulable condition, and B1 is forerunner's basic block of B2, B2
It is the successor basic blocks of B1, if finding such a pair basic block, by below step pair
They process;
(2) each bag that performs performed unconditional jump target basic block in packet sequence is carried out
Forerunner performs bag and judges, finds out all being relied on and performs to wrap and put into be relied on performing bag set
In.
(3) all instructions in being wrapped by execution and its be relied on the data dependence between instruction
Relation, calculates current the performed earliest time performing bag.
(4) save idle with in basic block for beat corresponding for the performed earliest time performing bag
Bat carries out interval and compares, and determines filled with the earliest time performing bag.
(5) the execution bag that can fill is filled in corresponding idle beat, simultaneously in target
The execution packet sequence of basic block is deleted this to fill and perform bag.
3 search a pair basic block meeting schedulable condition
The 1st step processed in corresponding 5.2 joint steps of this part.Code flow graph is searched
Such a pair basic block to carry out filling idle beat across basic block to them, need to meet with
Lower condition:
1) basic block B1 is with unconditional jump order fulfillment;
2) basic block B1 has unique successor basic blocks B2, B2 to have unique forerunner basic block B1;
3) available free beat in basic block B1;
4) branch instruction is not comprised in first execution bag of basic block B2.
Specifically comprise the following steps that
1) being that basic block arranges two sign variable flag and target, they indicate currently respectively
Whether whether basic block comprise unconditional jump instruction and be the target basic block meeting condition.Root
According to each basic block in the traversal basic block set of basic block label, basic block is carried out following
Process in steps;
2) making flag is "false", and target is "false", and each in traversal basic block performs bag
In the instruction of each bar, include without bar if current basic block performs to there is any one in packet sequence
The execution bag of part jump instruction, and current basic block exists at least one empty perform bag, then
Flag is made to be "true" value and terminate traversal.Following two situation is divided to process:
(1) all instructions in all execution bags in current basic block have all traveled through it
After, if flag value is still "false", then the next basic block of and then current basic block is entered
Row above-mentioned steps 2) process;
(2) when flag is "true", according to the target in unconditional jump instruction operands
Basic block label finds target basic block;
3) if target basic block has unique forerunner, then owning during traversal first performs bag
Instruction, if not comprising branch instruction in this execution bag, then making target is "true", otherwise
Target is still "false", is also "false" with flag in season;Now represent that this basic block is to discontented
Foot condition.Then the next basic block of and then forerunner's basic block is carried out above-mentioned steps 2)
Process 1;
6), when flag and target is "true" simultaneously, represents and have found a pair base meeting condition
This block.
4 forerunners performing bag perform bag and judge
If instruction I2 could must perform after instruction I1 has performed, then I1 is called I2
Forerunner instruction, i.e. I1 be I2 be relied on instruction, I2 be I1 dependence instruction.If
I2 is in performing bag E2, and I1 is in performing bag E1, then E1 is called that the forerunner of E2 performs bag,
I.e. E2 must perform after E1.
Carrying out perform bag forerunner performing bag judgement is the performed earliest time calculating and performing bag
Preparation.Article one, being relied on instruction and may have a plurality of of instruction, it is meant that performs bag
Forerunner performs bag may be had multiple, and this instruction is respectively relied on prolonging between instruction with corresponding
The most all may be different.Now according to each instruction performed in bag corresponding be relied on instruct it
Between time delay find this execution can start in wrapping in basic block perform earliest time pair
The beat answered.Calculate the processing procedure of the performed earliest time performing bag as shown in Figure 1.
The forerunner performing bag performs specifically comprising the following steps that of bag judgement
1) if target basic block has branch instruction, then traversal branch instruction before each
Individual perform bag in each instruction, otherwise traversal target basic block execution packet sequence in each
Individual each the instruction performed in bag;Each instruction is carried out following all step process;
2) find present instruction each is relied on instruction, and puts into and be relied on instruction set
In.If being relied in instruction set existing and belonging to the instruction in target basic block B2, then wrap
Idle beat in forerunner basic block B1 can not be filled with by the bag that performs containing present instruction,
Otherwise continue below step to process;
3) the current each instruction being relied in instruction set performing the interior present instruction of bag of traversal,
The execution being relied on instruction is determined by the instruction template info class object of every instruction correspondence
Cycle T;
4) joint being relied on performing bag correspondence being respectively relied on instructing place of present instruction is determined
Clap numbering P;
5) calculate all values being relied on T+P corresponding to instruction of present instruction, the most currently refer to
The performed earliest time of order is the beat that the value of that maximum T+P is corresponding;
6) current other instructions performed in bag are carried out 3), 4), 5) step process, really
Settled before perform bag in every instruction performed earliest time, maximum of which that can perform
Earliest time is exactly current the performed earliest time performing bag.
5 obtain filled with the earliest time performing bag
The inventive method is determined by state finite automaton and finds can fill in basic block
The execution bag of idle beat, State Transferring relation is shown in accompanying drawing 2.Obtain and perform filling of bag
Early the step of time FTime is as follows:
1) idle beat list is updated.Traversal basic block B1 instruction performs the institute in packet sequence
Perform bag, perform bag if free, i.e. the beat at this execution bag place is idle beat;Will
The beat number that these idle beats are corresponding is sequentially stored in idle beat list.
2) each instruction that the instruction of traversal target basic block performs in packet sequence performs bag, to respectively
Perform bag carry out below step 3) process.
3) current execution bag is carried out forerunner and perform bag judgement.Performing the earliest of bag will be performed
The joint that beat number corresponding for time ETime is corresponding with the idle beat in idle beat list
Clapping numbering and carry out interval relation analysis, analysis process divides following several situation to process:
(1) if current execution bag does not exist it is relied on performing bag, then currently performs filling out of bag
Filling earliest time FTime is beat number a [1] that first idle beat is corresponding in basic block.
Copy to, in the execution bag that this sky node is corresponding, then delete by all instructions currently performing bag
The current node performing bag place in bag chained list is performed in target basic block.Carry out step 1) place
Reason updates idle beat list.
(2) if current the performed earliest time ETime of bag that performs is less than or equal to idle beat
The value of first element a [1] in list, then current filled with the earliest time performing bag
The beat corresponding for FTime beat corresponding to first element a [1] in idle beat list.
The all information currently performing bag are copied in this sky node, then in delete target basic block
Perform the current node performing bag place in bag chained list.Carry out step 1) process renewal free time joint
Clap list.
(3) if current the performed earliest time ETime of bag that performs is more than idle beat list
In the value of first element a [1], less than or equal to last element in idle beat list
The value of a [n], then the current beat corresponding for filled with earliest time FTime performing bag is idle
In beat list, the value of first its element can perform earliest time more than or equal to this execution bag
Beat corresponding to that element a [i].The all information currently performing bag are copied to this sky joint
In point, then in delete target basic block, perform the current node performing bag place in bag chained list.
Carry out step 1) process the idle beat list of renewal.
(4) if current the performed earliest time ETime of bag that performs is more than idle beat list
In the value of last element a [n], the most currently perform bag and can not be used for filling idle beat.
4) take the next bag that performs and carry out above-mentioned 2), 3) step process, until get containing
The all execution bags performed in bag or target basic block of branch instruction have all processed.
Subordinate list 1 target basic block performs bag and can fill earliest time FTime catalog.Its
In, (a [i] is that in idle beat set, the value of first its element can be held more than or equal to this execution bag
The beat represented by that element of row earliest time, a [1] is first free time in basic block
Beat, a [n] is last idle beat, and n is the number of idle beat.)
Content in subordinate list 1 is to obtain to perform the result after bag can fill earliest time, performs bag
Filled with earliest time only have these several possibilities shown in table
The above, the only detailed description of the invention of the present invention, but protection scope of the present invention is also
It is not limited to this, any change expected without creative work or replacement, all should contain
Within protection scope of the present invention.Therefore, protection scope of the present invention should be with claims
The protection domain limited is as the criterion.
Claims (5)
1. fill the instruction dispatching method of idle beat with the bag that performs of jump target basic block, it is characterised in that comprise the steps:
Step one, finds out in code flow graph and carries out selecting to perform the target basic block pair that the idle beat operation of bag filling is relevant across basic block;
Step 2, instruction execution bag in jump target basic block is carried out forerunner and performs bag judgement, other instructions that in i.e. judging this execution bag, each instruction is relied on, i.e. it is relied on instructing the execution bag at place and position thereof, and determines, according to the dependence between instruction, the beat that the performed earliest time of this execution bag is corresponding;
Step 3, perform bag according to each instruction and can perform beat corresponding to earliest time and the position relationship of free time beat in basic block, calculate each instruction and perform to wrap each self-corresponding earliest time of filling, at these execution bags mobile to corresponding idle beat, complete to fill.
Method the most according to claim 1, it is characterised in that in described step one, process corresponding to this method be have been completed basic block dispatch and define each basic block perform packet sequence on the basis of carry out;Therefore, in the instruction in initial time, basic block has been dispatched to each execution bag performing in packet sequence.
Method the most according to claim 1, it is characterised in that determine in step one that the process of basic block includes following basic procedure:
1) the basic block B1 containing unconditional jump instruction is found, and available free beat in B1;
2) find the jump target basic block B2 of jump instruction in B1, and require that first performs not comprise jump instruction in bag in B2;
3) judging that whether B1 is unique forerunner's basic block of B2, whether B2 is unique successor basic blocks of B1;If condition meets, then it represents that be found that a pair basic block that can carry out filling idle beat across basic block.
Method the most according to claim 1, it is characterised in that step 2 performs in target basic block the forerunner of bag perform bag judge particularly as follows:
If instruction I2 could must perform after instruction I1 has performed, then I1 is called forerunner's instruction of I2.If I2 is in performing bag E2, I1 is in performing bag E1, then E1 is called that the forerunner of E2 performs bag, i.e. E2 must perform after E1.The main method of this determination processing is:
1) judge that each instruction in target basic block performs whether bag has forerunner to perform bag;
2) if there is forerunner to perform bag, then wrapped by this execution and forerunner performs the data dependence relation between respectively instructing in bag, calculate the performed earliest time of this execution bag, then determine current filled with the earliest time performing bag according to the beat that the performed earliest time performing bag is corresponding with the position relationship of free time beat in B1;
3) if there is not forerunner to perform bag, then this execution bag can be plugged into first idle beat in B1.
Method the most according to claim 1, it is characterised in that in described step 3, filled with the earliest time performing bag determines that method includes herein below:
1) determine in B1 available free beat position in basic block;
2) bag is performed for certain in jump target basic block, perform bag and judge completing its forerunner, obtain after it can perform earliest time, judge that it can be filled three kinds of situations of beat time-division corresponding to earliest time and process: if it can perform earliest time in basic block before first idle beat, then can fill earliest time is first idle beat;If it can perform earliest time in basic block between first idle beat and last idle beat, then can fill earliest time is first idle beat after this execution bag can perform earliest time;, the most currently perform bag and be not available to fill after last idle beat if it can perform earliest time in basic block.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610370406.8A CN106020922B (en) | 2016-05-30 | 2016-05-30 | The instruction dispatching method of idle beat is filled with the execution packet of jump target basic block |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610370406.8A CN106020922B (en) | 2016-05-30 | 2016-05-30 | The instruction dispatching method of idle beat is filled with the execution packet of jump target basic block |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020922A true CN106020922A (en) | 2016-10-12 |
CN106020922B CN106020922B (en) | 2019-01-08 |
Family
ID=57092387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610370406.8A Active CN106020922B (en) | 2016-05-30 | 2016-05-30 | The instruction dispatching method of idle beat is filled with the execution packet of jump target basic block |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106020922B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721924A (en) * | 2021-09-02 | 2021-11-30 | 中国人民解放军国防科技大学 | Fine-grained variable activity analysis method and system in multi-beat instruction |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120900A1 (en) * | 2001-12-20 | 2003-06-26 | Stotzer Eric J. | Apparatus and method for a software pipeline loop procedure in a digital signal processor |
CN101694627A (en) * | 2009-10-23 | 2010-04-14 | 天津大学 | Compiler system based on TCore configurable processor |
CN101923492A (en) * | 2010-08-11 | 2010-12-22 | 上海交通大学 | Method for executing dynamic allocation command on embedded heterogeneous multi-core |
CN103150196A (en) * | 2013-02-07 | 2013-06-12 | 浙江大学 | Code Cache management method in dynamic binary translation |
CN104699466A (en) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Multi-element heuristic instruction selecting method for VLIW system structure |
CN105430486A (en) * | 2015-11-27 | 2016-03-23 | 北京小鸟听听科技有限公司 | Method and device for playing audio or video |
-
2016
- 2016-05-30 CN CN201610370406.8A patent/CN106020922B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120900A1 (en) * | 2001-12-20 | 2003-06-26 | Stotzer Eric J. | Apparatus and method for a software pipeline loop procedure in a digital signal processor |
CN101694627A (en) * | 2009-10-23 | 2010-04-14 | 天津大学 | Compiler system based on TCore configurable processor |
CN101923492A (en) * | 2010-08-11 | 2010-12-22 | 上海交通大学 | Method for executing dynamic allocation command on embedded heterogeneous multi-core |
CN103150196A (en) * | 2013-02-07 | 2013-06-12 | 浙江大学 | Code Cache management method in dynamic binary translation |
CN104699466A (en) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Multi-element heuristic instruction selecting method for VLIW system structure |
CN105430486A (en) * | 2015-11-27 | 2016-03-23 | 北京小鸟听听科技有限公司 | Method and device for playing audio or video |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721924A (en) * | 2021-09-02 | 2021-11-30 | 中国人民解放军国防科技大学 | Fine-grained variable activity analysis method and system in multi-beat instruction |
Also Published As
Publication number | Publication date |
---|---|
CN106020922B (en) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Iannucci et al. | Multithreaded computer architecture: A summary of the state of the art | |
Kudlur et al. | Orchestrating the execution of stream programs on multicore platforms | |
CN102129390B (en) | Task scheduling system of on-chip multi-core computing platform and method for task parallelization | |
CN101963918B (en) | Method for realizing virtual execution environment of central processing unit (CPU)/graphics processing unit (GPU) heterogeneous platform | |
CN103645930B (en) | Assembly level is across the construction method of file Scheduling Framework | |
US20140173575A1 (en) | Processors and compiling methods for processors | |
JP2002508102A (en) | Methods for compiling high-level programming languages | |
CN104965761A (en) | Flow program multi-granularity division and scheduling method based on GPU/CPU hybrid architecture | |
JP2009524866A (en) | System and method for parallel execution of programs | |
CN107992344A (en) | One kind association's journey implementation method and device | |
CN113157318B (en) | GPDSP assembly transplanting optimization method and system based on countdown buffering | |
CN102289362A (en) | Segmented symbolic execution device and working method thereof | |
Harel et al. | Relaxing synchronization constraints in behavioral programs | |
Bashford et al. | Constraint driven code selection for fixed-point DSPs | |
CN109791492A (en) | Assembly line association tree query optimizer and scheduler | |
CN102880449B (en) | Method and system for scheduling delay slot in very-long instruction word structure | |
US20060174227A1 (en) | Tool for processing software programs using modified live-ness definition | |
CN106020922A (en) | Instruction dispatching method for executing packet padding idle rhythms by means of skip target basic blocks | |
CN103617049B (en) | code moving method based on complementary predicate | |
Tang et al. | Automatically partitioning threads for multithreaded architectures | |
CN103530471A (en) | Method for analyzing critical path based on simulator | |
Aleta et al. | Instruction replication for clustered microarchitectures | |
Kifli et al. | A unified scheduling model for high-level synthesis and code generation | |
US11694129B2 (en) | Parallel solution generation | |
César et al. | Modeling pipeline applications in poetries |
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 |