Multiprocessor Functional Decomposition for Software Parallelism
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional functional decomposition methods are vague in defining lower decomposition levels and lack constraints, leading to unconstrained complexity and failure to simplify design, particularly in handling software statements like goto, if-then-else, switch loops, and subroutine calls.
Innovation Solution
The multiprocessor functional decomposition (MPfd) model constrains each decomposition level to a single control structure and translates software designs into finite state machines (FSMs), enabling clearer software design and better integration with hardware by exposing all transitions and allowing for automatic detection and correction of incorrect structures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional functional decomposition methods are used to decompose algorithms into lower levels, then the decomposition can represent real-time aspects of the system, but the definition of control transformation is vague and does not include standard software statements such as goto, if-then-else, switch loops, and subroutine calls
Solution Approach 1:
The patent changes the parameters of control transformation by explicitly defining it to include standard software statements (goto, if-then-else, switch loops, subroutine calls) that were previously excluded. This parameter expansion allows the decomposition model to handle a broader range of software constructs while maintaining a systematic approach to real-time control representation.
2Ease of operation
If decomposition is performed from highest to lower levels without constraints as in the McCabe model, then the decomposition process can proceed freely, but the complexity is unconstrained and it is not clear when the decomposition should end
Solution Approach 1:
The patent implements feedback mechanisms by establishing clear termination criteria for the decomposition process. The model provides feedback signals that indicate when decomposition should continue versus when it should stop, preventing unlimited decomposition while maintaining operational freedom. This is achieved through defined constraints on control transformations and decomposition levels.
Solution Approach 2:
The patent introduces constraint parameters that limit the decomposition process. By defining specific rules for control transformations and decomposition depth, the model changes the parameters from completely free decomposition to constrained decomposition, making the process both operable and bounded.
3Productivity
If unconstrained decomposition is performed without simplification, then the decomposition process can proceed without restrictions, but it does not actually meet the criteria of mathematical functional decomposition and does not simplify the design
Solution Approach 1:
The patent replaces the mechanical approach of unrestricted decomposition with a systematic method based on mathematical functional decomposition criteria. By substituting the unconstrained mechanical process with a structured mathematical framework, the model achieves both simplification and rigor, ensuring that decomposition actually reduces design complexity rather than merely proceeding without restrictions.
Data Source
AI summary
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.


