发明名称 Parallelism from functional decomposition
摘要 A system and method for performing functional decomposition of a software design to generate a computer-executable finite state machine. Initially, the software design is received in a form wherein functions in the software design are repetitively decomposed into (1) data and control transformations. Included between the functions are control flow indicators which have transformation-selection conditions associated therewith. The data transformations and the control transformations are translated into states in the finite state machine. The transformation-selection conditions associated with the control transformations are translated into state transitions in the finite state machine.
申请公布号 US8959494(B2) 申请公布日期 2015.02.17
申请号 US201213425136 申请日期 2012.03.20
申请人 Massively Parallel Technologies Inc. 发明人 Howard Kevin D.
分类号 G06F9/45 主分类号 G06F9/45
代理机构 Lathrop & Gage LLP 代理人 Lathrop & Gage LLP
主权项 1. A method for performing functional decomposition of a software design to generate a computer-executable finite state machine, the method comprising: decomposing functions in the software design into data transformations and control transformations repetitively until each of the decomposed data transformations consists of a respective linear code block; wherein the data transformations accept and generate data, and the control transformations evaluate conditions and send and receive control indications to and from associated instances of the data transformations; converting the software design to a graphical diagram including a plurality of graphical symbols interconnected to hierarchically represent the data transformations and the control transformations in the software design, wherein: a first type of the graphical symbols comprise bubble symbols indicating functional decomposition elements within the software design, and a second type of the graphical symbols comprise control flow indicators between the functions, which indicators have transformation-selection conditions associated therewith; andthe bubble symbols include control bubbles and process bubbles, wherein the control bubbles indicate the control transformations, and the process bubbles indicate the data transformations; translating the data transformations and the control transformations into states in the finite state machine, wherein, at a given decomposition level, the first state is one of the control transformations and subsequent states each comprise a decomposed said linear code block with no control structure; translating the transformation-selection conditions associated with the control transformations into state transitions in the finite state machine; wherein the translating steps are performed by a computer system; and generating the finite state machine by performing steps comprising: comparing successive decomposition levels to determine if lower-level process bubbles are associated or un-associated, wherein the process bubbles are associated if one of the control bubbles links together a pair of the process bubbles, otherwise the process bubbles are unassociated,wherein for each of the lower level process bubbles that are associated: (i) the single control bubble that associates the process bubbles of level x forms the first state on the finite state machine of level (x+1), (ii) each of the control bubbles at level x is translated into a state transition vector of the finite state machine of level (x+1); and (iii) each of the process bubbles of the next lower decomposition level is translated into a state of the of the finite state machine of level (x+1);if any of the process bubbles of level x are unassociated, then: (i) decomposing any non-recursively defined process bubble into a decomposed process bubble of level (x+1); and (ii) wherein decomposition is complete when a level (x+1) decomposition consists of un-associated process bubbles.
地址 Boulder CO US