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 PDF

Info

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
Application number
CN201610370406.8A
Other languages
Chinese (zh)
Other versions
CN106020922B (en
Inventor
胡勇华
黄文体
李国辉
邱亚琼
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.)
Hunan University of Science and Technology
Original Assignee
Hunan University of Science and Technology
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
Application filed by Hunan University of Science and Technology filed Critical Hunan University of Science and Technology
Priority to CN201610370406.8A priority Critical patent/CN106020922B/en
Publication of CN106020922A publication Critical patent/CN106020922A/en
Application granted granted Critical
Publication of CN106020922B publication Critical patent/CN106020922B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

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

The instruction dispatching method of idle beat is filled with the bag that performs of jump target basic block
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.
CN201610370406.8A 2016-05-30 2016-05-30 The instruction dispatching method of idle beat is filled with the execution packet of jump target basic block Active CN106020922B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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