CN102855123A - Software comprehensive method based on data frame driving - Google Patents

Software comprehensive method based on data frame driving Download PDF

Info

Publication number
CN102855123A
CN102855123A CN2012103943304A CN201210394330A CN102855123A CN 102855123 A CN102855123 A CN 102855123A CN 2012103943304 A CN2012103943304 A CN 2012103943304A CN 201210394330 A CN201210394330 A CN 201210394330A CN 102855123 A CN102855123 A CN 102855123A
Authority
CN
China
Prior art keywords
module
data
flow diagram
data flow
loop structure
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
CN2012103943304A
Other languages
Chinese (zh)
Other versions
CN102855123B (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201210394330.4A priority Critical patent/CN102855123B/en
Publication of CN102855123A publication Critical patent/CN102855123A/en
Application granted granted Critical
Publication of CN102855123B publication Critical patent/CN102855123B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention provides a software comprehensive method based on data frame driving. The method comprises the following steps of: packaging each circulation structure in a data stream graph into a module; building a module queue, and simplifying the data stream graph; sequentially taking out the modules from the head module, executing analysis, and acquiring a complete scheduling queue of an original data stream graph; and establishing an output data buffering region for each output port of each module in the scheduling queue, and automatically generating data stream graph codes. By utilizing the software comprehensive method, the problem that data generated by the upstream module is repeatedly used by the downstream module is solved, and the data stream graph codes can be automatically generated; and the software comprehensive method is very suitable for engineering practice.

Description

The software synthesis method that the based on data frame drives
Technical field
The invention belongs to the software synthesis field, concretely, relate to the software synthesis method that a kind of based on data frame drives.
Background technology
The equal based on data amount of software synthesis method of the prior art or Kahn process network and carry out, Kahn processes network (Kahn process networks, KPN) be a popular parallel computational model, it comprises one group of deterministic linear task process, carry out data interaction by the first in first out pipeline, explicitly has been expressed data dependence and the parallel organization of task.Described data volume and Kahn process network and all follow the data conservation principle, and namely the data volume of all modules generations is identical with the data volume that all modules consume.
But present stage, the data that produce of a up-stream module were reused by same downstream module, cause it not satisfy the data conservation principle, so data volume or Kahn process network and are not suitable for data that a up-stream module produces by the reusable situation of same downstream module.
Summary of the invention
The object of the invention is to overcome prior art and be not suitable for data that a up-stream module produces by the reusable situation of downstream module, the software synthesis method that provides a kind of based on data frame to drive, its data that are applicable to have module to produce on one can be reused by downstream module, address the aforementioned drawbacks.
The technical solution used in the present invention is as follows:
The software synthesis method that the based on data frame drives may further comprise the steps:
(1) analyze data flow diagram, wherein each loop structure is packaged into a module, the degree of depth of each module in the data flow diagram after determining to simplify;
(2) module is arranged in order from small to large according to the degree of depth, sets up a module formation, from module of head taking-up of this module formation;
(3) if this module is the loop structure package module, then carried out for (4) step; If the subsystem encapsulation module that this module is the user to be designed then jumped to for (5) step; If neither the loop structure package module, the subsystem encapsulation module of non-user's design then jumped to for (6) step again;
(4) obtain the full schedule formation of this loop structure by analysis, it is joined in the scheduling queue under this loop structure package module, and jumped to for (7) step;
(5) obtain the full schedule formation of the subsystem of this subsystem encapsulation module representative by analysis, and it is joined in the scheduling queue under this subsystem encapsulation module, and jumped to for (7) step;
(6) this module is joined in the affiliated scheduling queue of this module, and enter next step;
(7) take out next module, repeated for (3) step, until get the formation of sky module, just obtain the full schedule formation of the front data flow diagram of (1) described simplification of step;
(8) from this full schedule formation, take out successively from the beginning to the end a module, and its data are outputed to buffer zone, until get the full schedule formation of empty this data flow diagram, finish the emulation of data flow diagram;
(9) finish the generation of data flow diagram code.
In order there to be data fully to be reused by downstream module on making, the module degree of depth is the module data degree of depth described in the described step (1), determines according to the Frame driving relationship.
Further, specific implementation is as follows in the described step (4):
(4a) comprise " time-delay " module in this loop structure, break this loop structure from " time-delay " module;
(4b) since the analysis of (1) step, until obtain the full schedule formation of this loop structure;
The full schedule formation of this loop structure that (4c) will obtain joins in the affiliated scheduling queue of this loop structure package module.
Further, the main implementation of described step (9) is as follows:
(9a) represent the function of this functions of modules in the generated data flow graph, and be data buffer zone of output port establishment of each module;
(9b) according to the full schedule formation of this data flow diagram that obtains, take out successively from the beginning to the end module, and corresponding with it power function is write the afterbody of principal function current code;
(9c) after the full schedule formation of getting empty this data flow diagram, finish the generation of data flow diagram code.
In order to obtain the full schedule formation of this subsystem, in the described step (5), when analyzing this subsystem encapsulation module, subsystem data flow diagram to this subsystem encapsulation module is analyzed, be nested step (1)~(7), until obtain the full schedule formation of the subsystem of this subsystem encapsulation module representative, again it is joined in the scheduling queue under this subsystem encapsulation module, and jumped to for (7) step.
Compared with prior art, the present invention has following beneficial effect:
(1) the present invention adopts the software synthesis method that the based on data frame drives, effectively solved in the software synthesis, the data that up-stream module produces are reused the problem that does not satisfy data conservation theorem data flow diagram that is caused by same downstream module, do not satisfying under the data conditions of conservation, present stage the data that produce of a up-stream module can be reused by downstream module.
(2) degree of depth of module described in the present invention is the module data degree of depth, determine according to the Frame driving relationship, and the present invention also supports the code of the data flow diagram that the based on data frame drives automatically to generate, and makes by this method the present invention be particularly suitable for engineering and uses, and reliability is high.
(3) if the subsystem module that the module of taking out among the present invention designs for the user, the algorithm of the nested front of meeting is further analyzed this subsystem module, the step of continuous nested front before the full schedule formation of the subsystem that obtains this subsystem encapsulation module representative, the recycling of implementation algorithm, can shorten like this step of whole flow process, reduced calculated amount, made the subsystem module can be with analyzed its complete scheduling queue that obtains of speed faster.
(4) among the present invention after the full schedule formation that obtains this data flow diagram, take out a module at its head, and the data of module are outputed in the buffer zone, therefore when calling downstream module, just read a copy of up-stream module output data, the data in the up-stream module output buffer have not been deleted.Therefore the output data of up-stream module still can be reused by downstream module, until up-stream module is upgraded till the output data.
Description of drawings
Fig. 1 is the process flow diagram of scheduling queue acquisition algorithm in the embodiment of the invention.
Fig. 2 is the data flow diagram of Turbo code decoding in the embodiment of the invention.
Fig. 3 is the data flow diagram of loop structure among Fig. 2.
Fig. 4 is the data flow diagram after loop structure shown in Figure 3 is broken.
Embodiment
The invention will be further described below in conjunction with accompanying drawing and embodiment, and embodiments of the present invention include but not limited to following embodiment.
Embodiment
As shown in Figure 2, this figure is Turbo code decoding synoptic diagram, Turbo code can be constructed the long code with pseudo-random characteristics with two simple component codes by the pseudo random interleaver parallel cascade dexterously, and by softly enter at two/softly go out to carry out repeatedly iteration between (SISO) code translator and realized pseudorandom decoding.Performance is considerably beyond other coded system, so Fig. 2 also comprises SISO code translator 1 and SISO code translator 2, cooperatively interacts and realizes repeatedly iterative decoding.
" SISO code translator 1 " module, " interweaving " module, " SISO code translator 2 " module, " deinterleaving " module and loop structure of " time-delay " module composition among Fig. 2, and to be provided with iterations in " time-delay " module be 6.
Wherein this example obtains the scheduling queue of data flow diagram shown in Figure 2 and is:
" data source ";
" extraction of Turbo frame data ";
for(i=0;i<6;i++)
{
" SISO code translator 1 ";
" interweave ";
" SISO code translator 2 ";
" deinterleaving ";
" time-delay ";
}
" hard decision ";
" demonstration ";
The output data of " extraction of Turbo frame data " module have been reused 6 times.In simulation process, " SISO code translator 1 " module and the each iteration of " SISO code translator 2 " module all will be used the output data of " extraction of Turbo frame data " module.
Wherein this scheduling queue acquisition algorithm flow process as shown in Figure 1, its concrete steps are as follows:
The 1st step: check whether data flow diagram has loop structure.If have loop structure, it is packaged into the loop structure package module, otherwise carried out for the 2nd step.In this example, " SISO code translator 1 " module, " interweaving " module, " SISO code translator 2 ", " deinterleaving " module and " time-delay " module package are become 1 loop structure package module, be numbered loop structure package module 1.
The 2nd step
With the 1st step through encapsulation the loop structure package module and other module combinations that obtain, reduced data flow graph, and determine the data depth of each module according to the Frame driving relationship.According to the Frame driving relationship, if 1 module only has 1 up-stream module, and this up-stream module data depth is N, and then this module data degree of depth is N+1; If 1 module has a plurality of up-stream module, and data depth is N to the maximum in all up-stream module, then this module data degree of depth is N+1; If this module does not have up-stream module, then its data depth is 1.
Be arranged in order each module according to data depth order from small to large, set up a module formation, make the module degree of depth of formation front be less than or equal to all the time the thereafter data depth of face mould piece.In this example, the module in the module formation that obtains is followed successively by: " data source " module, " extraction of Turbo frame data " module, loop structure package module 1, " hard decision " module, " demonstration " module.Module in this module formation all belongs to the scheduling queue of data flow diagram shown in the accompanying drawing 2.
The 3rd step
Take out a module from the 2nd head that goes on foot the module formation that obtains, determine this module nature, wherein:
If this module is the loop structure package module, then carried out for the 4th step;
If this module is the subsystem encapsulation module that the user designs, then carried out for the 5th step;
If not above-mentioned two situations, then carried out for the 6th step.
The 4th step
The loop structure of this loop structure package module representative is comprised of " SISO code translator 1 " module, " interweaving " module, " SISO code translator 2 ", " deinterleaving " module and " time-delay " module, obtain the loop structure data flow diagram that formed by above-mentioned module, as shown in Figure 3.
" time-delay " module from Fig. 3 is broken this loop structure, the data flow diagram after obtaining as shown in Figure 4 loop structure and breaking.Since the 1st step, data flow diagram shown in Figure 4 is analyzed again, until obtain the full schedule formation of data flow diagram shown in Figure 4, and the scheduling queue that obtains joined in the scheduling queue under this loop structure package module.
Jumped to for the 7th step.
The 5th step
The subsystem encapsulation module that this module designs for the user, since the 1st step, subsystem data flow diagram to this subsystem encapsulation module representative of user design is analyzed, until obtain the full schedule formation of this subsystem data flow diagram, and the scheduling queue that obtains joined in the scheduling queue under this subsystem encapsulation module; This method is nesting allocation algorithm shown in Figure 1, namely repeated for the 1st~8 step, if take out again a sub-systems package module in the intermediate steps, nesting allocation algorithm shown in Figure 1 more then, analyze, until obtain the full schedule formation of subsystem data flow diagram always.
Jumped to for the 7th step.
The 6th step
This module is joined in the scheduling queue under this module.
Carry out next step.
The 7th step
Repeated for the 3rd step, until get the formation of sky module, namely take out all modules, obtain the full schedule formation of data flow diagram shown in the accompanying drawing 2.
Behind the scheduling queue that obtains data flow diagram shown in Figure 2, namely finished scheduling queue algorithm as shown in Figure 1 and obtained flow process.
The 8th step
According to the full schedule formation that obtains data flow diagram shown in Figure 2, take out a module from its head, call this module, and data are outputed in the buffer zone.
Therefore when calling downstream module, just read a copy of up-stream module output data, not with the deletion of the data in the up-stream module output buffer, upgraded till the output data until this up-stream module is called again.
The 9th step
Repeated for the 8th step, until get the full schedule formation of data flow diagram shown in the empty graph 2, finish the emulation of data flow diagram.
The 10th step
Generate the power function of each module in the data flow diagram shown in Figure 2, and be each data output buffer district of output port establishment of module.
The 11st step
According to the full schedule formation of the data flow diagram shown in Figure 2 that obtains, take out successively module from its head, and the with it power function of correspondence that the 10th step generated is write the afterbody of principal function current code.Until get the full schedule formation of data flow diagram shown in the empty graph 2, the automatic generation of completion code.
According to above-described embodiment, just can well realize the present invention.

Claims (5)

1. the software synthesis method of based on data frame driving is characterized in that, may further comprise the steps:
(1) analyze data flow diagram, wherein each loop structure is packaged into a module, the degree of depth of each module in the data flow diagram after determining to simplify;
(2) module is arranged in order from small to large according to the degree of depth, sets up a module formation, from module of head taking-up of this module formation;
(3) if this module is the loop structure package module, then carried out for (4) step; If the subsystem encapsulation module that this module is the user to be designed then jumped to for (5) step; If neither the loop structure package module, the subsystem encapsulation module of non-user's design then jumped to for (6) step again;
(4) obtain the full schedule formation of this loop structure by analysis, it is joined in the scheduling queue under this loop structure package module, and jumped to for (7) step;
(5) obtain the full schedule formation of the subsystem of this subsystem encapsulation module representative by analysis, and it is joined in the scheduling queue under this subsystem encapsulation module, and jumped to for (7) step;
(6) this module is joined in the affiliated scheduling queue of this module, and enter next step;
(7) take out next module, repeated for (3) step, until get the formation of sky module, just obtain the full schedule formation of the front data flow diagram of (1) described simplification of step;
(8) from this full schedule formation, take out successively from the beginning to the end a module, and its data are outputed to buffer zone, until get the full schedule formation of empty this data flow diagram, finish the emulation of data flow diagram;
(9) finish the generation of data flow diagram code.
2. the software synthesis method of based on data frame driving according to claim 1 is characterized in that the module degree of depth is the module data degree of depth described in the described step (1), determines according to the Frame driving relationship.
3. the software synthesis method of based on data frame driving according to claim 2 is characterized in that, specific implementation is as follows in the described step (4):
(4a) comprise " time-delay " module in this loop structure, break this loop structure from " time-delay " module;
(4b) since the analysis of (1) step, until obtain the full schedule formation of this loop structure;
The full schedule formation of this loop structure that (4c) will obtain joins in the affiliated scheduling queue of this loop structure package module.
4. the software synthesis method of based on data frame driving according to claim 3 is characterized in that, the main implementation of described step (9) is as follows:
(9a) represent the function of this functions of modules in the generated data flow graph, and be data buffer zone of output port establishment of each module;
(9b) according to the full schedule formation of this data flow diagram that obtains, take out successively from the beginning to the end module, and corresponding with it power function is write the afterbody of principal function current code;
(9c) after the full schedule formation of getting empty this data flow diagram, finish the generation of data flow diagram code.
5. the software synthesis method that drives of each described based on data frame according to claim 1~4, it is characterized in that, in the described step (5), when analyzing this subsystem encapsulation module, subsystem data flow diagram to this subsystem encapsulation module is analyzed, i.e. nested step (1)~(7) are until obtain the full schedule formation of the subsystem of this subsystem encapsulation module representative, again it is joined in the scheduling queue under this subsystem encapsulation module, and jumped to for (7) step.
CN201210394330.4A 2012-10-17 2012-10-17 Software comprehensive method based on data frame driving Expired - Fee Related CN102855123B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210394330.4A CN102855123B (en) 2012-10-17 2012-10-17 Software comprehensive method based on data frame driving

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210394330.4A CN102855123B (en) 2012-10-17 2012-10-17 Software comprehensive method based on data frame driving

Publications (2)

Publication Number Publication Date
CN102855123A true CN102855123A (en) 2013-01-02
CN102855123B CN102855123B (en) 2014-12-17

Family

ID=47401737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210394330.4A Expired - Fee Related CN102855123B (en) 2012-10-17 2012-10-17 Software comprehensive method based on data frame driving

Country Status (1)

Country Link
CN (1) CN102855123B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064819A (en) * 1993-12-08 2000-05-16 Imec Control flow and memory management optimization
US20060161909A1 (en) * 2005-01-20 2006-07-20 Raju Pandey Synthesizing a scalable and incrementally updatable system software infrastructure for sensor networks
CN101464799A (en) * 2009-01-16 2009-06-24 天津大学 MPI parallel programming system based on visual modeling and automatic skeleton code generation method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064819A (en) * 1993-12-08 2000-05-16 Imec Control flow and memory management optimization
US20060161909A1 (en) * 2005-01-20 2006-07-20 Raju Pandey Synthesizing a scalable and incrementally updatable system software infrastructure for sensor networks
CN101464799A (en) * 2009-01-16 2009-06-24 天津大学 MPI parallel programming system based on visual modeling and automatic skeleton code generation method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHUVRA S. BHATTACHARYYA等: "Scheduling Synchronous dataflow graphs for efficient looping", 《JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL,IMAGE AND VIDEO TECHNOLOGY》 *

Also Published As

Publication number Publication date
CN102855123B (en) 2014-12-17

Similar Documents

Publication Publication Date Title
CN104573063A (en) Data analysis method based on big data
CN103345580B (en) Based on the parallel CFD method of lattice Boltzmann method
CN106771962B (en) A kind of Fault of Integrated Circuits injection attacks analogy method based on partial scan
CN106911336B (en) High-speed parallel low-density parity check decoder with multi-core scheduling and decoding method thereof
CN102207904B (en) Device and method for being emulated to reconfigurable processor
CN103150440A (en) Simulation method of module-level circuit netlist
CN107798059B (en) NCO meteorological data structured storage method and device
CN103150228A (en) Synthesizable pseudorandom verification method and device for high-speed buffer memory
CN106250614A (en) It is applicable to the data processing method of FPGA platform electro-magnetic transient real-time simulation
CN112612219A (en) Joint simulation method based on model development
CN103970953B (en) Spacecraft solar wing dynamics rapid modeling method and system
CN110109658B (en) ROS code generator based on formalized model and code generation method
CN111461313A (en) Convolution neural network hardware accelerator based on lightweight network and calculation method thereof
CN102663190A (en) PPTL (propositional projection temporal logic) symbolic model checking method
CN102855123B (en) Software comprehensive method based on data frame driving
CN104267936A (en) Semantic tree based asynchronous dynamic push-down network reachability analysis method
Wainer et al. DEMES: a Discrete-Event methodology for Modeling and simulation of Embedded Systems
Dai et al. Tailoring software evolution process
CN103279328A (en) BlogRank algorithm parallelization processing construction method based on Haloop
CN103729180A (en) Method for quickly developing CUDA (compute unified device architecture) parallel programs
CN110765715A (en) GPU chip-oriented rendering output unit performance simulation method and platform
CN110166060A (en) Height is handled up pipeline-type polarization code BP decoder and its implementation
CN102855307A (en) Data reorganization method capable of reserving time sequence and video structuring system
CN107018095B (en) System and method for simulating exchange unit based on discrete event
Liu et al. Face Landmark Detection Based on Deep Learning Processor Unit on ZYNQ MPSoC

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141217

Termination date: 20151017

EXPY Termination of patent right or utility model