CN103500100B - Intelligent assembling developing tool - Google Patents

Intelligent assembling developing tool Download PDF

Info

Publication number
CN103500100B
CN103500100B CN201310466206.9A CN201310466206A CN103500100B CN 103500100 B CN103500100 B CN 103500100B CN 201310466206 A CN201310466206 A CN 201310466206A CN 103500100 B CN103500100 B CN 103500100B
Authority
CN
China
Prior art keywords
iasm
instruction
file
assembly
gui
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.)
Expired - Fee Related
Application number
CN201310466206.9A
Other languages
Chinese (zh)
Other versions
CN103500100A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201310466206.9A priority Critical patent/CN103500100B/en
Publication of CN103500100A publication Critical patent/CN103500100A/en
Application granted granted Critical
Publication of CN103500100B publication Critical patent/CN103500100B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

The invention relates to the field of developing tools, and discloses an intelligent assembling developing tool which comprises an assembling file storage unit (IASM-File), a data analysis engine unit (IASM-Engine) and a graphical operation interface (IASM-GUI). The intelligent assembling developing tool has the advantages that the intelligent assembling developing tool is quite easy to use, the requirements for a VLIW assembling programmer are reduced, developing experience accumulation is supported in the development process, the tool is also quite efficient, the main programming process can be completed by clicking a mouse, the input quantity of a keyboard is greatly reduced, the VLIW programming is easier and more rapid, and mistakes are not easily made.

Description

Intelligence compilation developing instrument
Technical field
The present invention relates to developing instrument field, particularly relate to a kind of intelligence compilation developing instrument.
Background technology
Processor based on VLIW framework, especially DSP, it is possible to perform various mathematics fortune with high stable accuracy Calculate, make the ideal solution processing application in real time.Add motility that its programmability brings and can expand Malleability, makes VLIW technology be widely adopted in numerous applications such as base band, communication, high resolution image, DAB.
Having multiple functional unit in VLIW framework, each functional unit all can individually perform an instruction, therefore at one Can there is a plurality of instruction perform the machine cycle simultaneously, here it is instruction level parallelism (ILP).VLIW framework is mainly come by ILP Promote its calculated performance.The ILP of VLIW is completed by software, and therefore software determines a VLIW system operationally true Performance.The most fully excavate out the ILP in software, become based on the mission critical in VLIW framework applications.
Excavating the ILP in software, the compiler currently mainly relying on VLIW completes, therefore can design a enough Clever compiler, becomes a huge challenge.But owing to application scenarios varies, and it is difficult to obtain from high-level language Enough information, the intelligence not so VLIW compiler generally seems, therefore in some crucial process, it has to resort to hands The mode of dynamic compilation, excavates out the calculated performance of vliw processor further.
Relative to compiler, the program after manual assembly code optimizing, execution efficiency often can obtain and significantly promote, The most even can promote several times.But, to start manually to write VLIW assembly program and be not an easy thing, it Require that programmer not only wants the framework of profound understanding vliw processor, also very familiar to the assembly instruction of the most hundreds of. And, it is commonly known that manually writing VLIW assembly program is an arduousness, time-consuming and hold blundering task.Additionally, text shape Formula V LIW assembly program the most directly perceived so that the maintenance to it is the most extremely difficult.Accordingly, it would be desirable to new method and apparatus makes VLIW compilation exploitation is more prone to, efficiently, can safeguard and minimizing makes mistakes.
Summary of the invention
In order to solve the problems of the prior art, the invention provides a kind of intelligence compilation developing instrument, solve at present The problem of assemble programming difficulty under VLIW architecture processor.
The invention provides a kind of intelligence compilation developing instrument, including assembling file memory element IASM-File, data are divided Analysis engine unit IASM-Engine and graphical operation interface IASM-GUI;Described assembling file memory element IASM-File is deposited Dependency between storage assembly code and instruction and the state change information of depositor, and support to converge by the way of template file The Development of Modular of programming;It is provided with supported processor platform inside described data analysis engine unit IASM-Engine Instruction set data base, analysis and rule that programming operation carries out various bottom check, and feed back various mistake or resource limit; The content of described assembling file memory element is shown and/or operates by described graphical operation interface IASM-GUI;Described Need not third party is opened when working together with third party's development environment that intelligence compilation developing instrument is relevant to each vliw processor Hair ring border is modified, IASM-Engine automatically generate textual form and can be by the compilation of third party's development environment identification File, assembling file is added to and in engineering is compiled this engineering and debugs by third party's development environment.
As a further improvement on the present invention, described assembling file memory element IASM-File storage assembly code and Dependency between instruction and the state change information of depositor.
As a further improvement on the present invention, the function between described graphical operation interface IASM-GUI mark assembly instruction Dependency the relation between idsplay order and its register operand directly perceived, and by the way of template file, support assembly program Development of Modular.Called function dependency refers to one group of assembly instruction and jointly realizes a functional objective.
As a further improvement on the present invention, described graphical operation interface IASM-GUI is provided with sliding-rolling region, institute State the integrality of sliding-rolling region display assembly program and realize location.
As a further improvement on the present invention, described assembling file memory element IASM-File storage pilot process record Information is to promote the readability of program.
As a further improvement on the present invention, described graphical operation interface IASM-GUI is provided with dominant reminding module, institute State dominant reminding module according to the suggestion of input information automatic programming by prompting and designated command.
As a further improvement on the present invention, described graphical operation interface IASM-GUI is provided with movement, replicates and exchange Operation module, described movement, duplication and swap operation module are carried out directly by described data analysis engine unit IASM-Engine The Code Edit of sightization and the editor of content of registers.
As a further improvement on the present invention, described graphical operation interface IASM-GUI is provided with the packet pipe of functional unit Reason module is to reduce the requirement to display device.
As a further improvement on the present invention, IASM is collected by described data analysis engine unit IASM-Engine automatically File is automatically converted to the standard compendium file of certain VLIW target platform and generates by following two mode, a kind of for generation one Individual brand-new target assembling file;Another for being inserted into a pair spy in target assembling file by the assembly code content of generation Between fixed labelling point, and keep other content constant.
As a further improvement on the present invention, described graphical operation interface IASM-GUI is provided with Unit pattern, Reg pattern Showing pattern with Edit pattern three kinds, Unit pattern only shows the functional unit state in each cycle;Described Reg pattern only shows The buffer status in each cycle;Edit pattern shows functional unit and the buffer status in each cycle simultaneously, and can be directly perceived Demonstrate the dependency between assembly instruction and its register operand, under this pattern also have special editor's cycle, energy Demonstrating each side information of this cycle assembly instruction in the way of the most detailed, main programming operation is by this editor's week Phase completes.
As a further improvement on the present invention, described graphical operation interface IASM-GUI can show simultaneously assembly program and Relevant high level language program code, and show the corresponding relation between assembly instruction and high level language program code.
The invention has the beneficial effects as follows: this intelligence compilation developing instrument is very easy to left-hand seat, reduce journey that VLIW is collected The requirement of sequence person, and support that the development Experience in development process accumulates;Meanwhile, this instrument is the most efficient, and main is programmed Cheng Junke is completed by the selection of mouse, greatly reduces the input quantity of keyboard, not only makes VLIW programming more easily quick, And be not easy to make mistakes.
[accompanying drawing explanation]
Fig. 1 illustrates general VLIW software development flow;
Fig. 2 explanation with the addition of the VLIW software development flow of IASM system;
Fig. 3 illustrates the block architecture diagram of IASM system;
Fig. 4 is the brief example of a VLIW core internal structure;
Fig. 5 illustrates the ADD instruction different syntax formats in each functional unit in TI C6000 instruction set;
Fig. 6 illustrates the key definition of IASM-File in the way of false code;
Fig. 7 illustrates the key definition in IASM-File to a machine cycle in the way of false code;
Fig. 8 illustrates the key definition in IASM-File to a functional unit in the way of false code;
Fig. 9 illustrates the key definition in IASM-File to certain period register state in the way of false code;
Figure 10 illustrates how to be saved in IASM-File related development and the design documentation of VLIW assembly program;
Figure 11 illustrates how to open and edit the related development being saved in IASM-File and design documentation;
Figure 12 illustrates that IASM-File is shown by IASM-GUI with Unit pattern;
Figure 13 illustrates that IASM-File is shown by IASM-GUI with Reg pattern;
Figure 14 illustrates that IASM-File is shown by IASM-GUI with Edit pattern;
Figure 15 illustrates the display mode in Ghost type cycle;
Figure 16 illustrates the basic function of special scroll bar;
Figure 17 illustrates the management to contents of program of the special scroll bar;
Figure 18 illustrates to instruct an embodiment of selection window;
Figure 19 illustrates to instruct the instruction detailed data display mode in selection window;
Figure 20 illustrates under Edit pattern an exemplary of assembly instruction detailed view in editor's cycle;
Figure 21 illustrates how to edit an assembly instruction;
Figure 22 illustrates how to edit the register operand of an assembly instruction;
Figure 23 illustrates how to be the destination register variable naming of an assembly instruction;
Figure 24 illustrates the release operation of an assembly instruction input register operand;
Figure 25 illustrates an adoptable pattern of annotated information of assembly instruction;
Figure 26 illustrates the multirow display pattern of assembly instruction;
Figure 27 functions unit is grouped and succinctly shows pattern;
Figure 28 illustrates the mobile operation of undefined instruction of IASM system;
Figure 29 illustrates the undefined instruction copy function of IASM system;
Figure 30 illustrates IASM system undefined instruction swap operation;
Figure 31 illustrates how occurring abnormal assembly instruction to point out;
Figure 32 illustrates how to determine the input register parameter of common IASM program;
Figure 33 illustrates how to determine the input register parameter of template IASM program;
Figure 34 illustrates how to insert template IASM-File;
Figure 35 illustrates how to be inserted in another IASM-File an instruction;
Figure 36 has illustrated the state after the insertion of template IASM-File;
Figure 37 illustrates how IASM system cooperates with third party's development environment in one embodiment;
Figure 38 illustrates that IASM the most quickly navigates to the assembly instruction needing to revise in the above-described embodiment;
During Figure 39 illustrates how IASM system is integrated into third party's development environment in another embodiment.
[detailed description of the invention]
The present invention is further described for explanation and detailed description of the invention below in conjunction with the accompanying drawings.
The invention discloses a kind of intelligence compilation developing instrument, be particularly suited for the processor of VLIW framework.This intelligence Compilation developing instrument (IASM) contains new assembling file memory element (IASM-File), a data analysis engine Unit (IASM-Engine), a patterned user interface (IASM-GUI).This intelligence compilation developing instrument is by service Device, PC are run, and are different from traditional text assembling file, and this new assembling file memory element is for VLIW framework It is designed, readability and the maintainability of VLIW assembly program is greatly improved.Additionally, the exploitation of its also support module, Large-scale VLIW assembly program exploitation is made to become easy.The finger of supported processor platform is contained inside data analysis engine Order collection data base, analysis and rule that programming operation can carry out various bottom check, provide various mistakes to programmer in time Or the feedback of resource limit, and preferably program suggestion, help programmer to improve the instruction level parallelism (ILP) of program.It Not only reduce development difficulty, also ensure development quality, and can be automatically converted into by IASM-File can be by each processor platform The standard compendium file identified.This device also comprises a user-friendly developing instrument, it by the content of IASM-File to scheme The mode of shape presents, and allows programmer to operate in mode directly perceived, efficient, makes VLIW assembly program develop this Originally arduous, the most time-consuming work becomes light and efficient.Major design these three in terms of be will be further illustrated subsequently, and How the present invention carries out integrated with third party's development environment.
The main contents of IASM-File be with the machine cycle be ultimate unit tissue assembly code, each machine cycle Comprise this cycle all functional units and the state of depositor.Each functional unit all can comprise an assembly instruction, and protect Deposit the dependency between this assembly instruction and its register operand.Functionally relevant assembly instruction can be arranged to belong to same One code module, with same color, IASM-GUI will show that these instruct.
IASM-File can comprise the code of the higher-level language code that this assembly program is corresponding, such as C or C++.Separately Outward, moreover it is possible in the way of binary data, comprise other relevant exploitation design documentations.So, this VLIW assembly program is correlated with All the elements are maintained in a unique file, and management gets up to be more prone to.
Every assembly instruction all supports the pattern of annotated information enriched, and in addition to can adding the annotation of text and picture, also can refer to This assembly instruction fixed and the corresponding relation of correlative code in complete high-level language programs.After being provided with this corresponding relation, once User have selected this assembly instruction, and IASM-GUI will be highlighted correlative code in special high-level language window.
In a kind of special Ghost cycle defined in IASM-File, its data form and common cycle are completely the same, But the generation of target platform assembling file will not be had any impact.Optimize under sights at some, especially height optimization Loop body code, this Ghost cycle maintains the integrity that assembly program is semantic.
IASM-File has two types, common IASM-File and template IASM-File.Template IASM-File allows The most clearly start to write assembly program in the case of input parameter, and easily its content can be inserted into another In IASM-File.Template IASM-File provides support to modular compilation exploitation so that large-scale VLIW assembly program Exploitation becomes easy.Additionally, template IASM-File also can improve assembly code reuse rate.
Instruction set and the data of VLIW framework relevant information of supported processor platform are contained inside IASM-Engine Storehouse, can carry out data analysis and the rule inspection of various intelligence based on these data bases to programming operation, and in time to programmer Feedback.VLIW assemble programming is the most difficult, firstly because multiple functional unit works simultaneously, and each functional unit has Different function definition.Programmer not only skillfully to grasp the function of every instruction, it will also be appreciated that it can be operated in those lists Unit, the syntax format that even same instruction performs on different function units is likely to difference.Secondly, the execution time of instruction The most different, some instruction needs the extra cycle to complete operation, and these extra cycles are commonly referred to as postponing groove.Cause This is during programming, and programmer also needs to focus at any time that cycle and can obtain the data of needs.Furthermore, here also May there be tens of the resource limit conditions relevant to VLIW framework.All of these factors taken together is added together, and causes manually writing VLIW assembly program becomes an arduousness, time-consuming and hold blundering task.
IASM-Engine can be when inputting an instruction, and according to current target processor platform, Automatic sieve selects this list Instruction and syntax format thereof that unit is available select for programmer.
When editing an assembly instruction, each operand of this instruction can be analyzed by IASM-Engine, only row Go out available content.When it is not available when programmer needs some operand, can easily acknowledge that this is what is former Because of cause, thus make corresponding adjustment.For edit operation each time, IASM-Engine can check corresponding rule, If violating certain rule, programmer can be fed back in time.
IASM-Engine also can provide some programming suggestions according to input, to help to improve the execution efficiency of assembly program. Such as programmer has write instruction A and B successively, and has an instruction C can complete the above two function, IASM-here simultaneously Engine can provide the suggestion substituting A and B with instruction C in time.
IASM assembling file can be automatically converted to certain VLIW target by one of following two mode and put down by IASM-Engine The standard compendium file of platform: first, generates a brand-new target assembling file;Second, the assembly code content of generation is inserted Enter in target assembling file between a pair specific labelling point, and keep other guide constant.
IASM-GUI is a user-friendly pattern development instrument, and display and operation for VLIW compilation are carried out The design of many innovations.The mode that the content of IASM-File is graphically changed is presented by IASM-GUI, and allow programmer with Intuitively, efficient mode operate, make VLIW assembly program develop arduous, the time-consuming work of this script and become light and high Effect.
VLIW assembly program is shown by IASM-GUI with the patterned way of two-dimensional grid, and this display mode is very Reflect the framework of vliw processor intuitively.Further, assembly program, programmer are observed the most from different angles Can switch between following three display mode at any time.
Unit pattern only shows the functional unit state in each cycle.Under the display pattern that this is succinct, programmer energy Intuitively arrive the ILP of VLIW assembly program, i.e. which unit and write instruction, and which unit still leaves unused.
Reg pattern only shows the buffer status in each cycle.Programmer can it can be clearly seen that whole in such a mode The use state of register file, thus preferably plan the distribution of depositor.
Edit pattern shows functional unit and the buffer status in each cycle simultaneously, and can demonstrate that compilation refers to intuitively Dependency between order and its register operand.Special editor's cycle is also had under this pattern, can be with the most detailed side Formula demonstrates each side information of this cycle assembly instruction, and main programming operation is all to complete in this special cycle.
Each functional unit having write assembly instruction can be endowed a spy according to the code module belonging to this instruction Determining color, each depositor comprising valid data also can be endowed a color, and its color produces this depositor exactly and becomes The color of the assembly instruction of amount.Every the assembly instruction newly write all can be given the color of current code module automatically.These face Color makes between call instruction and instruction, and the relation between instruction and depositor is very clear.
For the special Ghost type cycle, IASM-GUI can the most normally show this periodic content, cover the most thereon Cover one layer of translucent particular color.So programmer just can distinguish Ghost cycle and common cycle the most intuitively.
IASM-GUI devises a kind of special scroll bar for VLIW assembly program, relative to common scroll bar, it The cycle wanting to check can be more quickly navigated to, and the integrality of assembly program can be very visually known.
The when of needing to write an assembly instruction, IASM-GUI can eject an instruction selection window, according to current Processor platform and the functional unit of selection, simultaneously with text and the form of functional schematic, demonstrate available instruction list. After have selected certain instruction, this window can show the details of this instruction further, including the grammer that this instruction is available Format list.Once have selected certain concrete instruction syntax form, IASM-GUI can automatically switch to Edit pattern, in order to continues Continue the editor of this instruction.Further, it is also possible to the use experience of recording instruction, first use instantly in instruction selection window To same instruct time, the development Experience of record can present automatically, it is to avoid repeatedly makes same mistake.
During one assembly instruction of editor, its all input operands are all completed by selection, and IASM-GUI can root According to different input operand types, it is provided that different selection modes.All selected contents listed, are all through IASM- Engine screening.This edit mode not only operates the most quick, and does not haves mistake.
During one assembly instruction of editor, the only possible input through keyboard that needs, it is simply that grasp for this output register instructed Count and take a variable name.
IASM-GUI has a high-level language display window, the senior language that VLIW assembly program is corresponding can be shown wherein Speech code, the convenient understanding to assembly code, can reduce the scrappy annotation to assembly instruction in a large number.
When needs are an assembly instruction interpolation annotation when, IASM-GUI can eject an annotation editing dialog frame. By this dialog box, text annotation can be inputted, select a picture as annotation, or by arrange and higher-level language code The corresponding relation of block annotates.Abundant pattern of annotated information ensure that readability and the maintainability of VLIW assembly program.
In IASM-GUI, can replicate easily, move assembly instruction, it is also possible to be exchanged with each other two assembly instructions Position.When carrying out these operations, IASM-GUI can point out out the alternate location that this operation is available.
Due to all functional units in IASM-GUI in a row one cycle of Concurrent Display, it sometimes appear that display The situation that resolution is inadequate.IASM-GUI employs following unique way to solve this problem: first, is divided by functional unit Group, is only shown currently pay close attention to one group of unit by normal mode, and other unit are shown by compact way.Second, work as remittance When the length of volume instruction exceedes setting value, split into multirow and show.3rd, show at the whole IASM-GUI except scroll bar Show in interface, all can move whole gui program, even if therefore some interface exists by the way of pressing left mouse button dragging Outside viewing area, it is possible to control easily.
The assembly instruction of one template IASM-File can be inserted in current IASM-File by IASM-GUI easily.Insert When entering template IASM-File, IASM-GUI can eject the forms of an indicating template IASM-File content.User have selected one After the instruction that bar is to be inserted, current IASM-File interface can be automatically switched to, and identify the insertable candidate bit of this instruction Put.After user is inserted into certain position candidate this instruction, IASM-GUI can automatically switch back into template IASM-File forms, And identify the instruction being inserted into.The most repeatedly, until after all instructions of template IASM-File are inserted into, automatically closing Close its window.
This intelligence compilation developing instrument (IASM) can carry out integrated with third party's development environment easily.An embodiment party In case, IASM system works alone, and the assembling file for certain concrete vliw processor platform automatically generated adds It is added in the engineering of third party's development environment.If pinpointed the problems during the debugging of third party's development environment, need Revise accordingly under IASM environment.IASM-GUI takes a kind of special method and carrys out the finger of quick location finding mistake Order, i.e. makes false command in third party's development environment and arbitrarily revises and preserve, when switching back into IASM environment, and IASM- GUI can be automatically positioned this assembly instruction, waits the amendment of programmer.
In another embodiment, by the whole IASM system integration to third party's development environment, therefore VLIW collects The writing of program, compile, debug and all carry out under same environment.
In order to describe this patent, employ the VLIW framework of TI company C6000 series processors and some letters of instruction set Breath, and refer to the code in part TI company IMGLIB storehouse.
Fig. 1 is general VLIW software development flow, and it describes between each SDK and input, output Relation.Wherein the effect of assembler 10 is the object module that assembly language source file is converted to machine language.Assembler defeated Entering can be the assembling file 12 that automatically generates of C compiler 11, it is also possible to be the assembling file 13 manually write by programmer.But Due to traditional manual VLIW assembly program exploitation be one very time-consuming, and easily makeing mistakes of task, if therefore the fewest Number system bottom or the especially sensitive program of performance are to develop by the mode of manually compilation.
Fig. 2 is the VLIW software development flow that with the addition of IASM system.Programmer is at the image conversion environment of IASM-GUI 21 Under develop VLIW assembly program in mode directly perceived, efficient, contents of program is saved in the assembling file 22 of IASM form. The assembling file of IASM form can be automatically converted to be known by target processor platform assembler 20 by IASM-Engine 23 Other standard compendium file 24.
Fig. 3 is the system block diagram of IASM intelligence compilation developing instrument.IASM system 30 is main by a special definition 34, data analysis engine unit IASM-Engine 32 of IASM assembling file memory element and a patterned user Interface I ASM-GUI 31 3 part forms.The instruction set of supported target processor platform is contained inside IASM-Engine With the data base 33 of Schema information, this data base is data analysis and the basis of rule inspection that IASM carries out intelligence.If Need to support a new processor platform, it is only necessary in IASM-Engine, add the data base of correspondence.Programmer 37 By the assembling file 35 of IASM-GUI operation IASM form, and can by the exploitation relevant to assembly program and design documentation 38 with Binary form is integrated in IASM assembling file, makes project management convenient.Any needs when, IASM- IASM assembling file can be automatically converted to the standard compendium file 36 of target platform by Engine by one of following two mode: First, generate a brand-new target assembling file;Second, the assembly code content of generation is inserted in target assembling file Between a pair specific labelling point.
In order to be best understood from the benefit that IASM intelligence compilation developing instrument brings, it is necessary to briefly introduce VLIW frame Structure, and analyze the main cause manually writing VLIW assembly program so difficulty at present.Fig. 4 describes a typical VLIW process The internal structure of device 40, it is mainly made up of a register file 41 and multiple functional unit.Each functional unit is at one Machine cycle can perform an instruction, and the most whole processor can be performed in parallel a plurality of instruction a cycle.These Functional unit is not equal, and each functional unit is designed to perform the groundwork in terms of certain, such as, functional unit 42 and 43 mainly perform arithmetical logic calculates, and 44 mainly perform multiplication calculates, and 45 are mainly responsible between register file and internal memory Data move.Outside major function, different types of unit may all achieve again the function of some basic operation, such as merit Arithmetical operation can be can carry out by unit 42,43,45.Therefore VLIW assemble programming person is without the merit needing to be grasped every instruction Can, also to know the functional unit that every instruction can perform.
For an assembly instruction that can perform on multiple functional units, it performs in correlation function Concrete syntax form be likely to difference.Fig. 5 is ADD instruction grammer lattice in different function units in TI C6000 instruction set Formula.So programmer is in addition to remembeing that those instructions can perform at those functional units, in addition it is also necessary to remember in certain merit On energy unit, this instruction has the syntax format that those are concrete, which in turns increases the difficulty writing VLIW assembly program.
It addition, also have many restrictive conditions relevant to VLIW framework so that situation more complicates.Some instructs needs The extra cycle completes operation, and these extra cycles are commonly referred to as postponing groove, and therefore programmer also needs to pay close attention at any time The data of needs can be obtained in that cycle;Some instruction once performs to need to take certain function list in multiple machine cycles Unit, can not perform other instructions during this period on the unit, and this is called functional unit and postpones;The resource of register file is also Very limited amount of, and in one cycle all may be restricted, if can not be intuitively to the reading of certain depositor and the number of times write Understanding the state of register file, the distribution of register resources will be extremely difficult;Vliw processor typically has the most tens of The resource limit condition of bar.All of these factors taken together is added together, and causing manually writing VLIW assembly program becomes arduousness, a consumption Time and hold blundering task, unless it is absolutely necessary, most developers will not attempt easily.
In order to reduce the difficulty of VLIW assemble programming, the present invention proposes a kind of new assembling file memory element.This IASM assembling file memory element not only saves assembly code best suiting the form of VLIW framework, the most detailed Carefully have recorded mutual relation and the state change of each operand of assembly instruction.IASM-Engine combines the instruction set number that it is internal According to storehouse, intellectual analysis and rule that IASM assembling file can carry out various bottom check, to help developer to be programmed choosing Select, feed back various mistake or restricted information, and offer preferably programs suggestion.One is described below with the form of false code Key component in the embodiment of IASM-File.
Fig. 6 is the key definition in this IASM-File.Parameter platform point out this IASM-File for concrete place Reason device platform.Parameter iasmMode explanation current file is common IASM-File or template IASM-File.Parameter asmFile Point out the title of the target platform standard compendium file automatically generated based on current IASM-File.The main contents of IASM-File For the assembly code being ultimate unit tissue with the machine cycle, i.e. the list cycleList, Cycle_s of Cycle_s type determines Justice illustrates subsequently.The management of parameter symbolsList is defined in this assembling file and the various symbols quoted.Parameter cCode can It is used for preserving the higher-level language code that this assembly program is corresponding, such as c program code, understands assembly program with help.Parameter ImageList deposits the picture adding in IASM-File, and they are annotated to.Parameter documentList is with binary system The mode of data preserves the various exploitation design documentations adding in IASM-File, needs are checked and edit when, IASM System can automatically be called third party's program and open them.
Fig. 7 is to a machine cycle, the i.e. key definition of Cycle_s in IASM-File.Parameter cycleMode is root The period type defined according to concrete processor platform, the cycle of Ghost type is also to be specified by it.Parameter label is current The symbolic address of period definition, it represents current period Article 1 instruction address in internal memory.Main contents in Cycle_s It is functional unit and the buffer status of current period.Array regs of Reg_s type saves all depositors in current week The state of phase.Array units of Unit_s type saves all functional units state at current period, can in these unit An assembly instruction code can be comprised, it is also possible to for sky.
Fig. 8 is to a functional unit, the i.e. key definition of Unit_s in IASM-File.Parameter unitMode is pointed out to work as The pattern of front unit and various state.The index of distribution when parameter unitId is to input a new instruction in current functional unit Number, it is all unique in whole IASM-File, and is set up dependence between assembly instruction and depositor important Foundation.Parameter color points out the Show Color instructing in active cell on IASM-GUI.Parameter instruction is with text Form saves the assembly instruction code in active cell.Parameter syntax saves the concrete syntax lattice that present instruction uses Formula.Parameter operands saves the details of each operand of present instruction.Additionally, what every assembly instruction was also supported to enrich Pattern of annotated information, parameter commentText preserves the notes content of textual form, and parameter commentImage can be present instruction Show that a pictures can be shown by highlighted in special higher-level language code window as annotation, parameter commentCode The mode showing related content is that current assembly instruction annotates.
Fig. 9 is the key definition in IASM-File to Reg_s, and it represents a depositor in certain machine cycle State.Parameter regMode points out this depositor mode of operation at current period, as started determining of a new register variable Justice, the content being also to maintain phase the last week is constant.If this depositor starts determining of a new register variable from current period Justice, parameter unitId is used to refer to produce the index of the functional unit of this register variable, and parameter regName is used for saving as this The variable name that register variable takes.
Figure 10 illustrates how to be saved in IASM-File related development and the design documentation of VLIW assembly program.Assume Current assembly program has a design documentation, a test report document and a relevant reference material document.Through opening After the selection operation of originator, these documents are saved in its inside in the way of binary data by IASM-File 100, i.e. set Meter document 101 is saved in the inner space 102 of IASM-File, and test report 103 is saved in inner space 104, reference material literary composition Shelves 105 are saved in inner space 106.So code and relevant design document of this assembly program just saves as an entirety, pipe Reason is got up convenient.
Figure 11 illustrates how to open and edit the related development being saved in IASM-File and design documentation.When needs are grasped When making document, IASM-GUI can eject a document selective listing dialog box 110.After have selected certain document, IASM- File 111 can generate a temporary file 113 according to the binary data 112 of its document preserved, and call correspondence Third party's program opens this temporary file.If relevant documentation is modified, IASM-File can reload phase before preserving Close document, it is ensured that the concordance of its content.
It is described below how IASM-File shows intuitively in IASM-GUI and operate efficiently.IASM-GUI Showing VLIW assembly program with the patterned way of two-dimensional grid, this display mode reflects VLIW the most intuitively The framework of processor.Further, observe assembly program the most from different angles, IASM-GUI can by Unit, IASM-File content is shown by Reg, Edit Three models.
Figure 12 is IASM-GUI with the display to IASM-File of the Unit pattern.Under this scheme, each cycle is only shown Functional unit state, all functional units in the cycle are displayed side by side in a row.Write the function of assembly code Unit has a background colour, as in figure, instruction A, B, C, D, G have an identical background colour, instruction E, F, H, K, M have identical background colour, instruction I, J, L, N to have identical background colour.Identical background colour represents that these refer to Order functionally has dependency, makes VLIW assembler code seem very clear.IASM-File saves developer The system background color arranged, the assembly instruction newly write can be set to current system background colour.The background colour of instruction is at any time Can be changed easily.Under the display pattern that this is succinct, programmer can intuitively arrive VLIW assembly program ILP, i.e. which unit have write instruction, and which unit still leaves unused.
Figure 13 is IASM-GUI with the display to IASM-File of the Reg pattern.Under this scheme, each cycle is only shown Buffer status, all depositors in the cycle are displayed side by side in a row.Valid data in depositor have multiple Source, such as: the parameter come in by function passes;The specific use depositor that runtime environment is reserved, such as stack pointer;And The output register of assembly instruction.Owing to part assembly instruction can not complete operation, therefore these instructions a machine cycle The cycle of coming into force of output register depends on that it postpones groove quantity, and the delay groove of the assembly instruction in the such as n-th cycle is 3, then The data of this instruction output register could be used in the n+1+3 cycle.Each depositor with virtual value has a back of the body Scenery, if the Data Source of this depositor is in certain assembly instruction, then its background colour and the background color of this assembly instruction Keep consistent.So developer just can clearly know that the Data Source in depositor is in that function code module.In programming During, if a depositor will not re-use after being used by certain instruction developer's clear and definite knowing, Ke Yi This depositor is discharged, as the variable valA in R3 depositor in Figure 13 was defined, in week in the cycle 1 when editing that instruction It is released after phase 2 makes to be finished.Release operation makes the state of register file become apparent from, at the encoding operation of subsequent cycle In, programmer just readily appreciates which depositor is available.Writing the VLIW compilation journey that some are large-scale or degree of parallelism is high During sequence, it is more likely that occur that register resources uses the situation of conflict, if the detailed of register file can not be grasped intuitively State, register resources distribution would is that a difficult job.
Figure 14 is IASM-GUI with the display to IASM-File of the Edit pattern.Under this scheme, show each week simultaneously The functional unit of phase and buffer status, and the relation between assembly instruction and its register operand can be demonstrated intuitively. The primary operational of assemble programming is all carried out under Edit pattern, and foregoing Unit and Reg pattern is more convenient Program is analyzed by developer.In a real-time proposals of Edit pattern shown in Figure 14, IASM-File display interface is by four Part composition.Being shown that special editor's cycle at interface zone line, main assemble programming is all to compile at this The cycle of collecting completes.Editor's cycle, by the buffer status 142 in this cycle, instructs input register relation viewing area 143, converges Compile instruction detailed data to show and editing area 144, and instruction output register relation viewing area 145 4 major part composition.144 Instruction in region show in more detail type and the content of its each operand, and this will be described in detail below.In 143 regions Meeting line 146 represents the relation between assembly instruction input operand and input register variable, equally in 145 regions Also the relation between assembly instruction output function number and output register variable can be represented with line 147.Different function units Line use different color, gem-pure giving expression to instruct relation between depositor.In editor cycle viewing area Editor's cycle shown above before the content in several cycles, such as 0 in Figure 14 and 1 cycle.Each cycle shows simultaneously Its buffer status 140 and functional unit state 141, and buffer status shows on functional unit state.Editor Article one, during assembly instruction, can in one's respective area by mouse be its select input register operand.Show in editor's cycle equally Show below region, the content in several cycles after showing editor's cycle by similar mode, and mouse can also be passed through For being specified its output register operand by edit instruction.Bottom at interface zone, it is shown that the depositor in output cycle State 148.This output cycle is alternatively, it can be the return period of function, it is also possible to be to be specified by programmer Any period.The meaning of display output period register state is to help programmer inspection to return at programming jump or function Before, if set relevant content of registers.
Under Edit or Unit pattern, by the double-click of certain functional unit, carriage return or directly input instruction name Operation all can trigger the editor of this unit assembly instruction.IASM-GUI can will be set to by the operating function unit place cycle automatically In editor's cycle, lock this functional unit simultaneously.If being currently Unit pattern, IASM-GUI then can be first switch to Edit mould Formula, then performs aforesaid operations.
Figure 15 is the display mode in Ghost type cycle under Edit pattern.For the special Ghost type cycle, such as figure In cycle 2 and 3 in 15, IASM-GUI can the most normally show this periodic content, cover one layer of translucent spy the most thereon Determine color.So programmer just can distinguish Ghost cycle and common cycle the most intuitively.Ghost under Reg pattern and Edit pattern The display mode in cycle is also similar.
No matter under that display pattern, IASM-GUI is only able to display the content in limited several cycle, it is therefore desirable to one Individual scroll bar controls to show content.Figure 16 is exactly to devise a kind of special rolling for VLIW assembly program in IASM-GUI Bar, relative to common scroll bar, it can more quickly navigate to the cycle wanting to check, and can very be visually known remittance The integrality of programming.The background of this special scroll bar 160 is also a two-dimensional grid, and its every a line represents a week Phase, and columns is consistent with the functional unit number holding in current processor platform.Each fritter on scroll bar represents one Functional unit, simply size is much smaller.If having write an assembly instruction in certain functional unit, corresponding fritter will Demonstrating the color that this instruction is corresponding, therefore the background of this scroll bar is exactly a snap view of assembly program, developer It is easy to recognize the ILP situation of whole program by it.On scroll bar Background, cover a square frame 161, use In pointing out under present mode the periodic regime of display in interface.Scroll bar is pressed left button dragging and can change showing in interface Show content, and a display box 162 can be ejected during dragging temporarily, demonstrate cursor position pair with large print The all issues answered.
Figure 17 illustrates this special scroll bar management system 170 to contents of program.In the ordinary course of things, scroll bar is with soon Demonstrate the overall condition of assembly program according to view 172, the square frame 173 on scroll bar identifies the indication range in main interface 171.But owing to the fritter on scroll bar has fixed dimension, therefore when assembly program is bigger, its snap view is also only The part in whole program can be shown, in Figure 17 in SnapBeginCycle to SnapEndCycle periodic regime Hold.In this case, as long as pressing right mouse button on scroll bar, this scroll bar can be switched to complete period pattern 174, i.e. exists The rhythmic state of current IASM-File is shown with less block size, now on scroll bar on the Background of scroll bar Square frame 175 represents periodic regime corresponding under snapshot mode.Right mouse button down state is kept to drag, it is possible to change fast According to the indication range under view mode.Once unclamping right mouse button, this scroll bar can automatically switch back into snapshot mode, and developer is just Can further by press left mouse button drag navigate to certain cycle.So, developer at most has only to twice mouse behaviour Make just to navigate to certain cycle, simultaneously because whole operating process is all based on image information intuitively, therefore this scroll bar Operation more efficient.
Traditional VLIW assemble programming mode mainly directly uses input through keyboard assembly instruction in a text editor, And in intelligence compilation developing instrument disclosed by the invention, programming operation mainly selects behaviour by the mouse under graphic interface Make.Particularly, it is simply that select assembly instruction and the concrete syntax needed at the functional unit needing input instruction Form, then selects to instruct the content of each operand further.In order to improve VLIW assemble programming efficiency and reduce development difficulty, IASM system has all been done for the links in programming and has been designed targetedly, below as the editing process of an assembly instruction These designs are illustrated.
IASM-File is shown by the mode that IASM-GUI graphically changes, and therefore which programmer knows the most intuitively Functional unit can be used for writing new assembly instruction.An empty functional unit starts to write instruction and has three kinds of modes: This functional unit of double mouse click;After choosing this functional unit, keyboard presses carriage return;For skilled developer, this merit also can be chosen Input through keyboard instruction name can be used after unit.After triggering the editing process of an assembly instruction, IASM-GUI can automatic spring one Individual instruction selection window.
Figure 18 illustrates an embodiment of this assembly instruction selection window, it is characterised in that: can be according to the class of instruction Type selects instruction;Can be according to the sequencing selection instruction of input instruction name;Can select in being the most recently used instruction list Instruction;Every instruction can demonstrate instruction name and the functional schematic of textual form simultaneously;Selected instruction can enter one Step demonstrates its syntax format list and other details;The phase being chosen instruction can be recorded in a notes editing machine Close development Experience;The all the elements presented in this instruction selection window are all screened through IASM-Engine, thus without going out The selection of existing mistake.
An instruction name input editing device 182 is had, if programmer inputs instruction wherein in instruction selection window 180 Name, can list available instruction name by alphabet sequence, simultaneously in instruction schematic diagram viewing area 184 in instruction viewing area 183 Functional schematic with same order display dependent instruction.If the content of 182 is empty, show in instruction viewing area 183 Then for available instruction type, in 184, show the functional schematic of all instructions in current Selective type simultaneously.If compiled Journey person presses and uses instruction button 181 recently, and in 184, display is then the assembly instruction used in this IASM-File Functional schematic, most recently used instruction come foremost.If programmer have selected instruction name in 183, or in 184 Have selected the functional schematic of instruction, such as 185, then can demonstrate the syntax format that this instruction is available in grammer viewing area 187, And in instruction details viewing area 186, show other details of this instruction.For the assembly instruction chosen, Ke Yi Recording the development Experience that this instruction is relevant in one notes editing machine 188, use this to instruct when next time, that records opens The experience of sending out will present in 186, it is to avoid repeatedly makes mistakes in same place.
The content of the instruction details viewing area in instruction selection window is relevant to concrete vliw processor platform, figure 19 is an embodiment for TI company C6000 series processors.Row's merit is had in instruction details viewing area 190 Energy unit button 191, its quantity and functional unit definition and current processor platform one_to_one corresponding.Correspondence below 191 Position 193 demonstrates the executable functional unit of this instruction.State shown in figure is programmer and triggers at functional unit .S1 Instruction edit operation, therefore the S1 button 192 in 191 is in down state, point out out simultaneously L1, S1, D1, D2, S2, L2 this Six functional units all support this instruction.It addition, programmer can also learn the delay groove quantity of this instruction in viewing area 194, The functional unit delay period number of this instruction is learnt in viewing area 195.
After determining and being currently entered instruction each side information, developer by select in grammer viewing area certain concrete Syntax format, the editor to instruction operands can be started.After the syntax format of instruction selects, IASM-GUI can hide automatically Instruction selection window, is switched to IASM-File Edit and shows pattern, and the input instruction functions place cycle is set to work as In the pre-editing cycle, locking this functional unit is editing mode, and shows this instruction with detailed view.
Every assembly instruction has a detailed view display mode, and IASM system supports individually designed every assembly instruction Detailed view, demonstrate function and the feature of instruction with intuitive way.But owing to general VLIW instruction concentrates great majority The syntax format of instruction has similarity, therefore from the point of view of practicality, and the detailed view that great majority are instructed by IASM-GUI Use similar general display mode, only individually designed to small part special instruction detailed view.Shown in Figure 20 one implements Scheme is the general display mode of the assembly instruction detailed view for TI company C6000 instruction set design.This detailed view 200 are made up of five parts: the top 200 is the source operand 201 of present instruction, and the instruction shown in figure has two source operations Number, the content of one of them sint type source operand is variables A 4_src1 in depositor A4, another xsint type source The content of operand is variables A 6_src2 in depositor A6;The execution condition that left-hand component is present instruction in the middle of 200 202, as this instruction just can perform in the case of genuine in PSW variables A 1_Cond;Right-hand component in the middle of 200 is The operation 203 that present instruction performs, if this instruction is the ADD instruction performing add operation;Major part bottom 200 is mesh Operand 204, present instruction shown in figure has the destination operand of a sint type, and its content is the change in depositor A8 Amount A8_dst;The right bottom 200 is the note 2 05 of present instruction.
Figure 21 illustrates how to edit an assembly instruction.In the detailed view 210 of assembly instruction, click with left mouse button The type declaration frame of certain operand, can trigger the edit operation of this operand, such as: the type of mouse-click source operand is said Bright frame 211, triggers the selection operation of this operand, and the content of selection shows in corresponding region 212;Click condition box 213 to trigger The selection of instruction execution condition;Click the type declaration frame 214 of destination operand, trigger the edit operation of destination operand;Single Hitting annotation edit box 215, IASM-GUI ejects annotation edit box, for the notes content that present instruction editor is abundant.
For each operation of programmer, IASM-Engine can carry out data analysis and the rule of intelligence at bottom Check, it is ensured that provide only correct content, and feed back in time after programmer has carried out the operation of mistake.For different Operand type, IASM-GUI devises different edit modes, improves programming efficiency as much as possible.Presented hereinafter part is at this The edit mode realized in individual embodiment.
Figure 22 illustrates how the register operand that edit assemble instructs.Register operand is modal operand class Type, the source operand of an assembly instruction is different with the editing process of destination operand.For source operand, when programmer is clicked After the source operand type frame 221 of present instruction 220, only need to select one in the buffer status row in editor's cycle and post Storage, such as 223, can complete operation.IASM-Engine ensure that programmer can only choose the depositor change with virtual value Amount, such as valA, valB, valC and valD in figure, and can not choose dummy register a and b.In the selection process, can be with one Bar line 222 identifies the current selection of user.For destination operand, when programmer clicks the purpose operation of present instruction After number type frame 224, IASM-GUI can identify optional mesh in the buffer status row of the next cycle in editor's cycle Depositor, such as c, d and e in figure.In the selection process, the current selection of user can be identified with a line 225.Once Have selected certain destination register, such as 226, IASM-GUI can eject the destination register variable naming shown in a similar Figure 23 Dialog box 230.This dialog box identifies the type 231 of destination operand, and the current depositor 232 selected.Work as programmer After having taken variable name for current destination register in variable naming frame 233, the volume of destination register operand can be completed Volume.Destination register variable naming for instruction is optional, but this can increase the readability of assembly instruction.
For other kinds of operand, such as constant, label, execution condition etc., IASM-GUI can eject an editor Dialog box, lists the available content screened by IASM-Engine, developer selects or input.
As can be seen here, the whole editing process of assembly instruction operates based on the selection of programmer, and the content selected is all It is to screen through IASM-Engine, provides with intuitive way.The VLIW assemble programming mode of this new image conversion, no Development efficiency is only greatly improved, also ensures program correctness.
IASM-File supports that the release to assembly instruction input register operand operates, and this optionally operates permissible The register file state allowing VLIW assembly program becomes apparent from.Figure 24 illustrates an assembly instruction input register operand Release operation.By in the detailed view 240 of edit instruction, be close to source operand and conditional operation number type declaration frame have right The release frame answered, such as dark parts in figure.Left mouse button clicks certain release frame, such as 241, will discharge the depositor of correspondence Operand 242, therefore from the beginning of next cycle, will be unable to obtain the content of register variable A1_Cond.Again click 241, Just can cancel the release to 242 operands, variables A 1_Cond will return to the state before release.
IASM-File improves one of readable and maintainable important channel of VLIW assembly program, there is provided abundant Pattern of annotated information.In the VLIW assembly program of traditional text mode, it is only every assembly instruction and adds a line annotation word, Add assembly code and the difference on former high-level language programs execution sequence after optimization so that the reading valency of these notes contents Value reduces further.In IASM assembly program, every assembly instruction has three kinds of patterns of annotated information: word, picture and with complete Corresponding relation between whole higher-level language code.The combination of these three mode so that the annotation of VLIW assembly program is really provided with Use value.
In the main interface of IASM-GUI, there is a special higher-level language code window, can be used for preserving and converge with VLIW The high-level language programs that programming is corresponding.Owing to not being directly to write VLIW assembly program, but optimizing During the partial code of computation-intensive is converted to assembly program, therefore can see the high-level language that compilation is corresponding at any time Program, the understanding to VLIW assembly code is helpful.In an embodiment of IASM-GUI, devising one can be automatic The high-level language window of extension display, can automatically switch to extend display pattern, now with relatively great Qu when cursor enters this window Territory shows, facilitates checking and operating of programmer.After cursor leaves high-level language window, this window can automatically switch again Return normal displaying mode.
Figure 25 illustrates the various patterns of annotated information of an assembly instruction.For the instruction in IASM-File 250 Instruction D 251, when programmer chooses this instruction: if this instruction is provided with textual annotation content, then at this Corresponding word content is shown with a text box 253 below instruction;If this instruction is provided with picture annotation content, then according to figure Chip size selects a suitable direction around this instruction, shows corresponding image content with a picture box 253;If this refers to Order is provided with and the corresponding relation of correlative code in high-level language programs, then be highlighted in higher-level language code window 254 Correlative code 255.
Although IASM-GUI more conforms to the construction characteristic of vliw processor to the display mode of IASM-File, but due to It needs to be displayed side by side multiple functional unit or the content of whole register file in a row, it is therefore possible to show beyond some Show the indication range of device.Present invention uses following this problem that is designed to deal with: first, the multirow of assembly code shows.As Shown in Figure 26, in order to reduce the display width of functional unit, IASM-GUI can take properly according to the code length of assembly instruction Display pattern.If length is long, in place assembly code can be split as multirow and show;Second, function Unit is grouped and simplifies display pattern, as shown in figure 27.Functional unit in VLIW framework often can be fixed according to its function Justice is grouped, and when the code write on one of which functional unit, typically can pay close attention to very much the content in other groups. Therefore IASM-GUI the most completely shows the content in current working unit group, and shows other instructions organized with simplifying mode, as Only show its instruction name and most basic state.By operating efficiently, such as a double-click, can be by a function simplifying display Unit group, is switched to completely show pattern;3rd, remain left button and drag the operation of this most convenient to drag whole interface. In the interface of IASM-GUI, in addition to scroll bar, press left mouse button anywhere, all can drag whole interface, because of Even if the display content of this IASM-File is beyond the displayable range of display, also programming operation will not be caused big shadow Ring.
In the programming process of VLIW compilation, in order to improve the ILP of program, it is often necessary to the instruction to having write is adjusted Whole.But the instruction in VLIW assembly program adjusts can not the content of text of simple move, it is necessary to consideration each side Situation, such as the functional unit support to instruction, the source of instruction input operand, subsequent instructions is to being adjusted instructing output function Quoting of number, etc..Therefore IASM-GUI define assembly instruction movement, copy, the edit operation such as exchange, in order to directly perceived, Adjust the content of IASM-File efficiently.
Figure 28 illustrates the mobile operation of undefined instruction of IASM system, i.e. an assembly instruction from a functional unit Moving to another functional unit, the position at the original place of this instruction will become an empty functional unit.If needing mobile The position of instruction G, after programmer selects this instruction and presses corresponding shortcut, this can be referred to by IASM-Engine Order is analyzed, and selects the alternate location that can be moved.First, IASM-Engine determines based on corresponding instruction set data base The executable functional unit of this instruction, such as the Unit B in figure and Unit C.Secondly, IASM-Engine is according to the institute of this instruction Input register operand is had to determine the start cycle that it can be moved.Assume had two input registers to operate by move Number, is respectively derived from the instruction A in the cycle 3 and instruction C in cycle 4, then by near instruction That instruction of G determines the start cycle of movement, i.e. cycle 5.Then, IASM-Engine refers to by mobile according to subsequent instructions Make output register operand quotes situation, determines the end period that it can be moved.Assume the instruction in cycle 10 M refer to the output register of instruction G, and is closest to its instruction, then instruction M place cycle The previous cycle be the end period that instruction G can be moved, i.e. the cycle 9.Finally, IASM-GUI is according to function list Unit and the restrictive condition in cycle, represent what it can be moved with the background color identical with instruction G on interface A-e in alternate location, i.e. figure.Now, programmer has only to click on any one alternate location therein with left mouse button, the completeest Become the mobile operation of instruction G.
Figure 29 illustrates the undefined instruction copy function of IASM system, and the content i.e. keeping copy source is constant, and it is removed All the elements outside destination operand copy another functional unit to.If needing to copy the content of instruction G, After programmer selects this instruction and presses corresponding shortcut, this instruction can be analyzed by IASM-Engine, selects and can be copied The alternate location of shellfish.IASM-Engine with method same as above determine the executable functional unit of instruction G and The start cycle that can be copied, simply need not determine end period, all cycles after instruction G are considered all It is available.IASM-GUI represents, with the background color identical with instruction G, the alternative position that it can be copied equally Put, i.e. a-g in figure.Now, programmer has only to click on any one alternate location therein with left mouse button, can be The content of instruction G copies to this functional unit.
Figure 30 illustrates that IASM system undefined instruction swap operation, i.e. two assembly instructions are exchanged with each other they places Functional unit.If needing to exchange the content of instruction G, programmer selects this instruction and presses corresponding shortcut After, this instruction can be analyzed by IASM-Engine, selects the alternate location that can be exchanged.IASM-Engine uses and instruction moves Dynamic identical method determines every mobile restrictive condition exchanging alternative instruction, only when two instructions meet following condition, They just can be exchanged with each other: first, and these two assembly instructions are all on the executable functional unit of the other side;Second, these two fingers Cycle after order is mobile is all in the range of its cycle limits.IASM-GUI identifies the alternative instruction that can be exchanged on interface, Programmer only need to click on any one alternate location therein with left mouse button, can realize the exchange of these two instructions.
Figure 31 illustrates how occurring abnormal assembly instruction to point out.Assume that programmer is wanted to delete Instruction E, and the destination register operand of instruction E is used by instruction H, K, N, then delete Division operation will cause these instruction errors.After providing relevant warning, if programmer still adheres to deletion action, IASM-GUI This operation can be performed, identify those in-problem instructions simultaneously, as covered a fork before dependent instruction.These promptings Information can exist always, until programmer has carried out correct amendment to dependent instruction.
IASM-File is divided into common IASM-File and template IASM-File two types.Remittance in template IASM-File Compile code can be easily inserted in other IASM-File.The present invention proposition to template IASM-File so that large-scale VLIW The exploitation of assembly program becomes easy, and the reuse of code of VLIW compilation can be substantially improved.Template IASM-File allows not to be had Start to write assembly code in the case of having clear and definite function input, therefore can the assembly program that large-scale is divided into multiple Functional module, each developer is absorbed in one of them module, finally can be easily by integrated for the code of these height optimizations Together.If all can use in multiple VLIW Compilation function it addition, predict certain partial code, can first use template IASM- The mode of File develops this partial code, is then applied in other functions.
It is the same that assembly code in template IASM-File writes mode with common IASM-File, maximum between them Difference be the determination mode of input register parameter.Figure 32 illustrates how to determine the input register ginseng of common IASM program Number.Common IASM-File corresponding to one can invoked VLIW assembly program, therefore its input parameter is to be adjusted by function With transmission come in.As shown in figure 32, the input register parameter in the cycle 0 is corresponding to the relevant parameter in function declaration.Figure 33 illustrate how to determine the input register parameter of template IASM program.The input register parameter of template IASM is to have programmer Manually specify, such as src1, src2 and len in Figure 33.Once specifying register parameters, follow-up instruction just can be it As operand, and can programming during add the most at any time.
Figure 34 illustrates how to insert template IASM-File.A template is inserted in current IASM-File 340 The content of IASM-File, first passes through IASM-GUI and selects template IASM-File to be inserted into, then can eject one temporarily The individual window 341 showing template IASM-File content.The instruction having had been inserted in template IASM-File, as Templet A and templet B, can be identified.Insert an instruction, such as templet C, first double-click it, then Template IASM window 341 can be hidden, as shown in figure 35 temporarily.IASM-Engine can analyze instruction templet C at bottom The alternate location that can be inserted into, such as the a-d in Figure 35, then programmer has only to double-click certain alternate location, can complete this The insertion of instruction.After completing the insertion of an instruction, IASM-Engine can check that all instructions of this template IASM-File are No it is all inserted into complete, if it did not, IASM-GUI can demonstrate template IASM window again, waits that programmer continues with follow-up Instruction.The most repeatedly, until all instructions in this template IASM are inserted into.Figure 36 is this template IASM-File and inserts After state.Programmer can specify the background colour being inserted into instruction, and it can keep the face in template IASM-File Color, it is possible to use be inserted into the current system color of IASM-File.
The major function of this intelligence compilation developing instrument disclosed in patent of the present invention is to develop VLIW compilation journey efficiently Sequence, it need the third party development environment relevant to each vliw processor together with work, complete whole development process.At Figure 37 In a described real-time proposals, third party's development environment is without doing any change, and can realize with this IASM system is collaborative Work.In this embodiment, programmer uses IASM development environment 370, the side graphically changed in IASM-File 371 Formula exploitation VLIW assembly program.IASM-Engine based on 371 automatically generate textual form can be by third party's development environment 372 The assembling file 373 identified.Third party's development environment adds to 373 in its engineering, just can be compiled it and debug.
In this embodiment, it is desirable to developer is complete under IASM development environment to all modifications of assembly program Become, then regenerate the corresponding assembling file of textual form, be compiled and debug.On stream, the two environment Under switching may be relatively frequent, IASM is a kind of method of this specialized designs so that switch back into from third party's development environment During IASM environment, can quickly navigate to need the assembly instruction of amendment.Figure 38 illustrates this method.Assume to develop third party During debugging under environment, find an assembly instruction 380 needing amendment.Developer now has only to appoint this instruction The amendment of meaning, then preserves this file.When switching back into IASM development environment, IASM-Engine can automatically analyze out this and refer to Making cycle and the functional unit at place, lock this instruction 381 in editor's cycle of Edit display pattern, the person of awaiting development repaiies Change.
In another embodiment described in Figure 39, whole IASM system 392 is integrated into third party's development environment 390 In, it is used for replacing traditional approach, shows and operate assembling file 391.Now, developer is possible not only at same development environment Under the mode graphically changed develop VLIW assembly program, it is also possible to be directly compiled in this most intuitively environment and adjust Examination.
Above content is to combine concrete preferred implementation further description made for the present invention, it is impossible to assert Being embodied as of the present invention is confined to these explanations.For general technical staff of the technical field of the invention, On the premise of present inventive concept, it is also possible to make some simple deduction or replace, all should be considered as belonging to the present invention's Protection domain.

Claims (10)

1. an intelligence compilation developing instrument, it is characterised in that: include assembling file memory element IASM-File, data analysis Engine unit IASM-Engine and graphical operation interface IASM-GUI;Described assembling file memory element IASM-File stores Dependency between assembly code and instruction and the state change information of depositor, and by the way of template file, support compilation The Development of Modular of program;The finger of supported processor platform it is provided with inside described data analysis engine unit IASM-Engine Order collection data base, analysis and rule that programming operation carries out various bottom check, and feed back various mistake or resource limit;Institute State graphical operation interface IASM-GUI the content of described assembling file memory element is shown and/or operated;Described intelligence Need not when working together with third party's development environment that the developing instrument that can collect is relevant to each vliw processor third party is developed Environment is modified, IASM-Engine automatically generate textual form and can by third party's development environment identification compilation literary composition Part, assembling file is added to and in engineering is compiled this engineering and debugs by third party's development environment.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described graphical operation interface IASM-GUI Functional dependency between mark assembly instruction the relation between idsplay order and its register operand directly perceived.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described graphical operation interface IASM-GUI It is provided with sliding-rolling region, the integrality of described sliding-rolling region display assembly program realization quickly location.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described assembling file memory element IASM- File storage pilot process record information is to promote the readability of program.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described graphical operation interface IASM-GUI Being provided with dominant reminding module, described dominant reminding module is according to input information automatic programming by prompting suggestion.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described graphical operation interface IASM-GUI Being provided with mobile, duplication and swap operation module, described movement, duplication and swap operation module pass through described data analysis engine list Unit's Code Edit of intuitively changing of IASM-Engine and/or the editor of content of registers.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described graphical operation interface IASM-GUI It is provided with the grouping management module of functional unit to reduce the requirement to display device.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described data analysis engine unit IASM- IASM assembling file is automatically converted to the standard compendium file of certain VLIW target platform and by following two by Engine automatically Mode generates, a kind of for generating a brand-new target assembling file;Another is the assembly code content generated to be inserted In target assembling file between a pair specific labelling point, and keep other content constant.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described graphical operation interface IASM-GUI Being provided with Unit pattern, Reg pattern and three kinds of display patterns of Edit pattern, Unit pattern only shows the functional unit shape in each cycle State;Described Reg pattern only shows the buffer status in each cycle;Edit pattern show simultaneously each cycle functional unit and Buffer status, and the dependency between assembly instruction and its register operand can be demonstrated intuitively, also have one under this pattern In individual special editor's cycle, demonstrating each side information of this cycle assembly instruction, main programming operation is edited by this Cycle completes.
Intelligence compilation developing instrument the most according to claim 1, it is characterised in that: described graphical operation interface IASM- GUI can show assembly program and relevant high level language program code simultaneously, and shows assembly instruction and high-level language programs generation Corresponding relation between Ma.
CN201310466206.9A 2013-10-09 2013-10-09 Intelligent assembling developing tool Expired - Fee Related CN103500100B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310466206.9A CN103500100B (en) 2013-10-09 2013-10-09 Intelligent assembling developing tool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310466206.9A CN103500100B (en) 2013-10-09 2013-10-09 Intelligent assembling developing tool

Publications (2)

Publication Number Publication Date
CN103500100A CN103500100A (en) 2014-01-08
CN103500100B true CN103500100B (en) 2017-01-11

Family

ID=49865315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310466206.9A Expired - Fee Related CN103500100B (en) 2013-10-09 2013-10-09 Intelligent assembling developing tool

Country Status (1)

Country Link
CN (1) CN103500100B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897104B (en) * 2015-12-21 2020-04-07 宁波弘讯科技股份有限公司 Program editing platform and program editing method
CN106997285A (en) * 2016-09-20 2017-08-01 遨博(北京)智能科技有限公司 A kind of method and device of control machine people

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038396A (en) * 1997-10-29 2000-03-14 Fujitsu Limited Compiling apparatus and method for a VLIW system computer and a recording medium for storing compile execution programs
CN101876916A (en) * 2010-06-13 2010-11-03 北京红旗胜利科技发展有限责任公司 Development method and device for assembly language program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1196018A (en) * 1997-09-22 1999-04-09 Fujitsu Ltd Compiling device, its method and computer-readable recording medium recording compiling execution program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038396A (en) * 1997-10-29 2000-03-14 Fujitsu Limited Compiling apparatus and method for a VLIW system computer and a recording medium for storing compile execution programs
CN101876916A (en) * 2010-06-13 2010-11-03 北京红旗胜利科技发展有限责任公司 Development method and device for assembly language program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
X86汇编程序可视调试虚拟机的设计与实现;苏庆 等;《计算机工程与设计》;20120716;第33卷(第7期);第2858-2863页 *
智能化的汇编语言集成开发环境;刘跃华 等;《计算技术与自动化》;20070915;第26卷(第3期);第114-117页 *
汇编语言集成开发环境与智能上机辅导系统的开发;韩中元 等;《黑龙江工程学院学报(自然科学版)》;20050325;第19卷(第1期);第34-36页 *

Also Published As

Publication number Publication date
CN103500100A (en) 2014-01-08

Similar Documents

Publication Publication Date Title
US10514998B2 (en) Diagnostic tool and method for efficient software development
US8522196B1 (en) Traceability in a modeling environment
Ratzer et al. CPN tools for editing, simulating, and analysing coloured Petri nets
US8887138B2 (en) Debugging in a dataflow programming environment
US11294645B2 (en) Visual virtual programming machine for real-time interactive creation, playback, execution, inspection and manipulation of programming elements
US8145992B2 (en) Validation assisted document conversion design
JPH09258971A (en) Icon programming device
Bellamy et al. Using CogTool to model programming tasks
Strüber et al. A tool environment for managing families of model transformation rules
Pereira et al. Web based IOPT Petri net Editor with an extensible plugin architecture to support generic net operations
Beyer et al. Verification-aided debugging: An interactive web-service for exploring error witnesses
CN103500100B (en) Intelligent assembling developing tool
KR20130053714A (en) Method of program development using visual programming language and computer readable medium thereof
Dumas et al. Robotic Process Mining.
Ngo et al. Applying static analysis for automated extraction of database interactions in web applications
US20160062738A1 (en) Methods and Apparatuses for Interactive Computer Programming
Wechselberg et al. Augmenting state models with data flow
CN112181399A (en) Method for generating front-end code based on data analysis construction model
Amendola et al. Testing in ASP: Revisited language and programming environment
Alshanqiti et al. Visual contract extractor: a tool for reverse engineering visual contracts using dynamic analysis
Kosower et al. Flowgen: Flowchart-based documentation framework for c++
CN101923466B (en) Access method of decorator mode order
Kacsuk et al. The GRED graphical editor for the GRADE parallel program development environment
Weidmann et al. Human-in-the-Loop Large-Scale Model Transformations with the VICToRy Debugger.
Iwata et al. Generation of an operation learning support system by log analysis

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170111

Termination date: 20191009

CF01 Termination of patent right due to non-payment of annual fee