US20030046044A1 - Method for modeling and processing asynchronous functional specification for system level architecture synthesis - Google Patents

Method for modeling and processing asynchronous functional specification for system level architecture synthesis Download PDF

Info

Publication number
US20030046044A1
US20030046044A1 US09/947,250 US94725001A US2003046044A1 US 20030046044 A1 US20030046044 A1 US 20030046044A1 US 94725001 A US94725001 A US 94725001A US 2003046044 A1 US2003046044 A1 US 2003046044A1
Authority
US
United States
Prior art keywords
task
data
control connections
deterministic
specified
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
US09/947,250
Other versions
US7076417B2 (en
Inventor
Rajiv Jain
Alan Su
Chaitali Biswas
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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Priority to US09/947,250 priority Critical patent/US7076417B2/en
Assigned to AGILENT TECHNOLOGIES, INC. reassignment AGILENT TECHNOLOGIES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BISWAS, CHAITALI, JAIN, RAJIV, SU, ALAN PEISHENG
Priority to GB0220591A priority patent/GB2381905B/en
Publication of US20030046044A1 publication Critical patent/US20030046044A1/en
Application granted granted Critical
Publication of US7076417B2 publication Critical patent/US7076417B2/en
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation

Definitions

  • the invention pertains to a method for use in connection with an architecture synthesis engine which is disposed to generate and explore alternative system architectures for executing the functional specification of a system in the form of a task graph. More particularly, the invention pertains to a method of the above type of selectively processing or preparing a task graph to serve as a suitable input to the architecture synthesis engine. Even more particularly, the invention pertains to a method of the above type which substantially models and processes asynchronous behavior in the input functional specification.
  • a computer system typically has a large number and diversity of hardware and software resources which may be employed to execute or complete a particular functional specification.
  • An example of a functional specification known as a task graph would be the set of tasks which must be carried out in order to operate a cellular phone for wireless communication.
  • a task graph would be the set of tasks which must be carried out in order to operate a cellular phone for wireless communication.
  • many different combinations of hardware and software resources are available to execute a particular task specification, including combinations of only hardware resources, of only software resources, and mixtures of both types of resources.
  • the number of workable combinations may be quite large, some resource combinations are more useful than others, and some resource combinations may have undesirable characteristics or unintended consequences.
  • the comparative merits of different resource combinations are generally determined by timing or other constraints imposed upon implementation of a set of tasks.
  • architecture space exploration is the process of mapping a task specification to a set of resources and time schedules, wherein the set of tasks in the specification may be represented as a graph of interrelated processes and communications, hereinafter referred to as a task graph.
  • the set of resources comprises objects such as software, memory elements, special application specific integrated circuits (ASICs) and processors.
  • ASICs application specific integrated circuits
  • Each solution provided by the mapping process has a corresponding architecture, that incorporates a particular combination of resource components and assigns respective tasks to the resource components, and also schedules the timing of task completion.
  • efforts were made to automate the process of selecting a suitable distribution of resources to define an architecture within the universe of possible architecture solutions known as the design space.
  • Architecture synthesis algorithms were developed for the process.
  • a computing system configured in accordance with an architecture synthesis algorithm to receive a task graph and a set of resource components as inputs, and which implements the algorithm to generate and explore alternative architectures, may be referred to as an architecture synthesis engine.
  • RNCs employ statistical methods to asynchronously regulate bandwidth allocations, signal power and regulate cell size or macro diversity.
  • SDFG synchronous data flow graph
  • Embodiments of the present invention are generally directed to a method for modeling a computer system and for preparing or processing its functional specification or task graph containing instances of asynchronous behavior to serve as an input to an architecture synthesis engine.
  • the exemplary methods may include generating an initial first task graph from the specification, the first task graph comprising a number of executable tasks with selected connections therebetween, some of the connections comprising data connections and other connections comprising control connections.
  • the method further may comprise identifying all of the control connections from the input task graph to enable the architecture synthesis engine to process the deterministic activity of the system and subsequently account for the structural and temporal overheads incurred due to the asynchronous elements.
  • Each of the connections represents the flow of information from an initiator task to a receptor task and may be a channel for either data or control information.
  • a given control connection may be activated by the initiator task to pre-empt or regulate the ongoing data flow related activity of the corresponding receptor task.
  • Each of the connections of a task graph preferably has an associated average activation rate, which usefully is 1.0 for each data connection, and is a value between 0.0 and 1.0 for each control connection.
  • FIG. 1 is a schematic diagram of a task graph containing various data and control associations between the activities of a target system for which an architecture is to be synthesized.
  • FIGS. 2 - 4 are schematic diagrams respectively illustrating rules to be used in constructing the task graph of FIG. 1.
  • FIG. 5 is a schematic diagram illustrating a violation of the rules to be used in constructing the task graph of FIG. 1.
  • FIG. 6 shows a simplified system which may be used to implement an embodiment of the invention.
  • Task graph 10 that is generated from a functional specification describing the overall behavior of a specified algorithm.
  • Task graph 10 comprises a number of tasks 12 , which are interconnected by directed data connections 14 and controllable connections 16 , described hereinafter in further detail.
  • Each task 12 has a granularity of a function.
  • the function can be, for example, filters, decoders, processors, data storage/retrieval, cache, memory means, graphics ability, communication means, real-time processing, or substantially any other needed function(s) required by a computer system.
  • each task 12 can be executed on either a software component or a hardware component.
  • Respective data connections 14 depicted as solid lines, represent the flow of data information from initiator tasks to corresponding receptor tasks.
  • Respective control connections 16 depicted as dashed or broken lines, represent the flow of control information.
  • task graph 10 is constructed in accordance with a set of rules, particularly in regard to placement of respective connections between tasks, to define or identify some tasks to be deterministic and other tasks to be non-deterministic.
  • the rules have been selected so that each control connection of task graph 10 can be marked to provide an annotated task graph. That is, a task graph is provided with indicia identifying the respective control connections. The annotated task graph may then be applied to an architecture synthesis engine.
  • the control connection indicia is provided to the scheduler or scheduling component of the engine, whereupon the scheduler disregards or ignores all control connections.
  • the disregarding of the control connections action by the scheduler enables the exemplary architecture synthesis engine to operate in accordance with conventional deterministic scheduling techniques. Moreover, the annotated task graph retains information regarding asynchronous behavior, as described below in connection with average activation rates. The control connection information and asynchronous behavior information is made available at a later time during architecture construction and evaluation within the architecture synthesis engine.
  • FIG. 2 there is shown a task T 2 disposed to receive input data from both tasks T 1 and T 1 ′, through respective corresponding data connections 14 a and 14 b .
  • FIG. 2 illustrates one of the rules referred to above, that is, in order for a task to execute, all the input data connections thereto must have valid data. Accordingly, when both T 1 and T 1 ′ supply data to task T 2 , task T 2 executes and produces data which is input to a task T 3 , through a further data connection 14 c .
  • Task T 2 is thus a receptor task with respect to tasks T 1 and T 1 ′, and is an initiator or source task with respect to task T 3 .
  • FIG. 3 illustrates a second exemplary rule of the above set, wherein a task T 2 ′ has only input control connections 16 a and 16 b , from tasks TX and TX′ respectively.
  • a task that has only control connections as inputs is a non-deterministic task.
  • a non-deterministic task cannot be a source or an initiator task for a data connection which is directed to a deterministic task.
  • T 2 ′ is a non-deterministic task and cannot provide input data to a task T 3 ′.
  • Task T 2 ′ can only be connected to task T 3 ′ by means of a control connection 16 c .
  • Non-deterministic tasks are treated as overheads during the execution of a task graph.
  • a task may have both data and control connections at its inputs.
  • FIG. 4 shows data connection 14 a extending from initiator task T 1 to receptor task T 2 , and further shows a control connection 16 d extending from task TX to task T 2 .
  • a control connection may or may not be active at the time that receptor task T 2 executes, a control connection being active when control information is being transmitted through it. If control connection 16 d in FIG. 4 is inactive when valid data is sent to task T 2 through the data connection 14 a , task T 2 will execute and produce output data. The output data is transferred to task T 3 through data connection 14 c . However, activation of the control connection 16 d shown in FIG. 4 causes the task T 2 to execute without producing any output data
  • FIG. 5 depicts an arrangement that is prohibited by the rules.
  • FIG. 5 shows a data connection 14 d directed from task TA to task TB and further shows data connection 14 e directed from task TC to task TB.
  • the only input connection shown to task TA is a control connection 16 e .
  • task TA is non-deterministic, since the only input thereto is a control connection.
  • data connection 14 d directed from task TA to task TB is invalid.
  • non-deterministic tasks are treated as overhead during execution of a task graph such as task graph 10 .
  • an average activation rate is determined for every connection in the task graph, where average activation rate is defined to be the probability of the connection having valid data each time the entire task graph is executed.
  • An average activation rate of 1.0 implies the connection is a data connection. If the average activation rate is between 0.0 and 1.0 (exclusive), then the connection is a control connection.
  • Average activation rate values for respective task graph connections are inserted when the task graph is constructed by a designer or user. These values are retained in the annotated task graph when it is generated.
  • the annotated task graph when applied to the architecture synthesis engine for use in generating respective architectures, eliminates all dependencies due to control connections, and also makes the overheads due to the asynchronous operation available for use during architecture evaluation.
  • An exemplary architecture synthesis engine in accordance with the present invention utilizes a microprocessor based device, such as computer device 20 shown in FIG. 6, and a related data storage apparatus 18 .
  • the combination of the microprocessor device 20 and storage apparatus 18 can also be used to implement an exemplary embodiment of the present invention, wherein instructions stored in the storage apparatus 18 direct the microprocessor to generate an annotated task graph as described above.
  • the initial task graph 10 is derived from multiple functional specifications, rather than from just a single specification.

Abstract

A method is disclosed for modeling and processing an asynchronous functional specification to provide an input to an architecture synthesis engine. The method includes the step of generating an initial task graph from the specification, the task graph having a number of executable tasks. Selected data and control connections are established between respective tasks in accordance with a specified set of rules to define some of the tasks to be deterministic, and other of the tasks to be non-deterministic. Each of the control connections is then marked, to provide an annotated task graph for use as an input to the architecture synthesis engine, the annotated task graph enabling the engine to employ specified scheduling techniques.

Description

    BACKGROUND OF THE INVENTION
  • 1. Technical Field of the Invention [0001]
  • The invention pertains to a method for use in connection with an architecture synthesis engine which is disposed to generate and explore alternative system architectures for executing the functional specification of a system in the form of a task graph. More particularly, the invention pertains to a method of the above type of selectively processing or preparing a task graph to serve as a suitable input to the architecture synthesis engine. Even more particularly, the invention pertains to a method of the above type which substantially models and processes asynchronous behavior in the input functional specification. [0002]
  • 2. Description of Related Art [0003]
  • As is well known in the art, a computer system typically has a large number and diversity of hardware and software resources which may be employed to execute or complete a particular functional specification. An example of a functional specification known as a task graph would be the set of tasks which must be carried out in order to operate a cellular phone for wireless communication. Generally, many different combinations of hardware and software resources are available to execute a particular task specification, including combinations of only hardware resources, of only software resources, and mixtures of both types of resources. However, while the number of workable combinations may be quite large, some resource combinations are more useful than others, and some resource combinations may have undesirable characteristics or unintended consequences. The comparative merits of different resource combinations are generally determined by timing or other constraints imposed upon implementation of a set of tasks. [0004]
  • As is further known in the art, architecture space exploration is the process of mapping a task specification to a set of resources and time schedules, wherein the set of tasks in the specification may be represented as a graph of interrelated processes and communications, hereinafter referred to as a task graph. The set of resources comprises objects such as software, memory elements, special application specific integrated circuits (ASICs) and processors. Each solution provided by the mapping process has a corresponding architecture, that incorporates a particular combination of resource components and assigns respective tasks to the resource components, and also schedules the timing of task completion. In the past, efforts were made to automate the process of selecting a suitable distribution of resources to define an architecture within the universe of possible architecture solutions known as the design space. Architecture synthesis algorithms were developed for the process. Some of these efforts are described, for example, in “Research Strategies for Architecture Synthesis and Partitioning of Real-Time Systems,” Jakob Axelsson, IDA Technical Report, 1996. A computing system configured in accordance with an architecture synthesis algorithm to receive a task graph and a set of resource components as inputs, and which implements the algorithm to generate and explore alternative architectures, may be referred to as an architecture synthesis engine. [0005]
  • The modeling of algorithms for architectural design space exploration, as described above, must consider asynchronous behavior during execution of the algorithm. Algorithms are usually synchronous and deterministic in that for a given set of data, an algorithm follows exactly the same events in the same order (i.e., the execution is predictable and repeatable). Asynchronous behavior in a system occurs when the behavior of the system is unpredictable or unrepeatable. An example of asynchronous behavior is demonstrated by a radio network controller (RNC) in a wireless communication system. The RNC is responsible for the control of radio resources by constantly monitoring bandwidth demand and availability, signal propagation efficiency, and ultimately for the load and congestion of its dominion of cells. The network environment resulting from user location, activity, and signal propagation conditions at any given time is random, hence unpredictable, and user-driven, hence unrepeatable. RNCs employ statistical methods to asynchronously regulate bandwidth allocations, signal power and regulate cell size or macro diversity. [0006]
  • Current architecture synthesis algorithms do not consider execution of asynchronous behavior. A non-deterministic execution of asynchronous behavior makes it difficult to model using a synchronous data flow graph (SDFG). In SDFG predictable and deterministic signals are required to compute the order of execution of every task in order to make sure the graph is viable, that is, that the graph can execute without deadlock or infinite buffer. Accordingly, what is needed is a technique for identifying asynchronous dependencies, and using such information to derive a task graph which is suitable for deterministic scheduling. [0007]
  • SUMMARY OF THE INVENTION
  • Embodiments of the present invention are generally directed to a method for modeling a computer system and for preparing or processing its functional specification or task graph containing instances of asynchronous behavior to serve as an input to an architecture synthesis engine. The exemplary methods may include generating an initial first task graph from the specification, the first task graph comprising a number of executable tasks with selected connections therebetween, some of the connections comprising data connections and other connections comprising control connections. The method further may comprise identifying all of the control connections from the input task graph to enable the architecture synthesis engine to process the deterministic activity of the system and subsequently account for the structural and temporal overheads incurred due to the asynchronous elements. Each of the connections represents the flow of information from an initiator task to a receptor task and may be a channel for either data or control information. A given control connection may be activated by the initiator task to pre-empt or regulate the ongoing data flow related activity of the corresponding receptor task. Each of the connections of a task graph preferably has an associated average activation rate, which usefully is 1.0 for each data connection, and is a value between 0.0 and 1.0 for each control connection. [0008]
  • By providing the invention described above, prior to a computer architecture synthesis phase, an algorithm is proposed, for the parsing of a task graph to identify and account for asynchronous dependencies before the derivation of an annotated version of task graph which is suitable for deterministic scheduling techniques employed by the architecture synthesis engine. Moreover, the invention retains information regarding asynchronous behavior separately and accounts for the same during architecture construction and evaluation within the engine. These and other benefits and advantages of the invention will become more readily apparent from the ensuing specification taken together with the accompanying drawings.[0009]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The disclosed invention will be described with reference to the accompanying drawings, which show important sample embodiments of the invention and which are incorporated in the specification hereof by reference, wherein: [0010]
  • FIG. 1 is a schematic diagram of a task graph containing various data and control associations between the activities of a target system for which an architecture is to be synthesized. [0011]
  • FIGS. [0012] 2-4 are schematic diagrams respectively illustrating rules to be used in constructing the task graph of FIG. 1.
  • FIG. 5 is a schematic diagram illustrating a violation of the rules to be used in constructing the task graph of FIG. 1. [0013]
  • FIG. 6 shows a simplified system which may be used to implement an embodiment of the invention.[0014]
  • DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS OF THE INVENTION
  • Referring to FIG. 1, there is shown a [0015] task graph 10 that is generated from a functional specification describing the overall behavior of a specified algorithm. Task graph 10 comprises a number of tasks 12, which are interconnected by directed data connections 14 and controllable connections 16, described hereinafter in further detail. Each task 12 has a granularity of a function. The function can be, for example, filters, decoders, processors, data storage/retrieval, cache, memory means, graphics ability, communication means, real-time processing, or substantially any other needed function(s) required by a computer system. Also, each task 12 can be executed on either a software component or a hardware component. Respective data connections 14, depicted as solid lines, represent the flow of data information from initiator tasks to corresponding receptor tasks. Respective control connections 16, depicted as dashed or broken lines, represent the flow of control information.
  • It is emphasized that [0016] task graph 10 is constructed in accordance with a set of rules, particularly in regard to placement of respective connections between tasks, to define or identify some tasks to be deterministic and other tasks to be non-deterministic. In accordance with embodiments of the invention, the rules have been selected so that each control connection of task graph 10 can be marked to provide an annotated task graph. That is, a task graph is provided with indicia identifying the respective control connections. The annotated task graph may then be applied to an architecture synthesis engine. The control connection indicia is provided to the scheduler or scheduling component of the engine, whereupon the scheduler disregards or ignores all control connections. The disregarding of the control connections action by the scheduler enables the exemplary architecture synthesis engine to operate in accordance with conventional deterministic scheduling techniques. Moreover, the annotated task graph retains information regarding asynchronous behavior, as described below in connection with average activation rates. The control connection information and asynchronous behavior information is made available at a later time during architecture construction and evaluation within the architecture synthesis engine.
  • Referring to FIG. 2, there is shown a task T[0017] 2 disposed to receive input data from both tasks T1 and T1′, through respective corresponding data connections 14 a and 14 b. FIG. 2 illustrates one of the rules referred to above, that is, in order for a task to execute, all the input data connections thereto must have valid data. Accordingly, when both T1 and T1′ supply data to task T2, task T2 executes and produces data which is input to a task T3, through a further data connection 14 c. Task T2 is thus a receptor task with respect to tasks T1 and T1′, and is an initiator or source task with respect to task T3.
  • FIG. 3 illustrates a second exemplary rule of the above set, wherein a task T[0018] 2′ has only input control connections 16 a and 16 b, from tasks TX and TX′ respectively. A task that has only control connections as inputs is a non-deterministic task. Moreover, a non-deterministic task cannot be a source or an initiator task for a data connection which is directed to a deterministic task. Thus, T2′ is a non-deterministic task and cannot provide input data to a task T3′. Task T2′ can only be connected to task T3′ by means of a control connection 16 c. Non-deterministic tasks are treated as overheads during the execution of a task graph.
  • A task may have both data and control connections at its inputs. To illustrate a further rule, FIG. 4 shows [0019] data connection 14 a extending from initiator task T1 to receptor task T2, and further shows a control connection 16 d extending from task TX to task T2. A control connection may or may not be active at the time that receptor task T2 executes, a control connection being active when control information is being transmitted through it. If control connection 16 d in FIG. 4 is inactive when valid data is sent to task T2 through the data connection 14 a, task T2 will execute and produce output data. The output data is transferred to task T3 through data connection 14 c. However, activation of the control connection 16 d shown in FIG. 4 causes the task T2 to execute without producing any output data
  • To further illustrate the rules for constructing [0020] task graph 10, FIG. 5 depicts an arrangement that is prohibited by the rules. FIG. 5 shows a data connection 14 d directed from task TA to task TB and further shows data connection 14 e directed from task TC to task TB. However, the only input connection shown to task TA is a control connection 16 e. Accordingly, as stated above in connection with FIG. 3, task TA is non-deterministic, since the only input thereto is a control connection. Also, since task TA is non-deterministic, data connection 14 d directed from task TA to task TB is invalid.
  • As stated above, non-deterministic tasks are treated as overhead during execution of a task graph such as [0021] task graph 10. In an embodiment of the invention an average activation rate is determined for every connection in the task graph, where average activation rate is defined to be the probability of the connection having valid data each time the entire task graph is executed. An average activation rate of 1.0 implies the connection is a data connection. If the average activation rate is between 0.0 and 1.0 (exclusive), then the connection is a control connection. Average activation rate values for respective task graph connections are inserted when the task graph is constructed by a designer or user. These values are retained in the annotated task graph when it is generated. Thus, the annotated task graph, when applied to the architecture synthesis engine for use in generating respective architectures, eliminates all dependencies due to control connections, and also makes the overheads due to the asynchronous operation available for use during architecture evaluation.
  • An exemplary architecture synthesis engine in accordance with the present invention utilizes a microprocessor based device, such as [0022] computer device 20 shown in FIG. 6, and a related data storage apparatus 18. The combination of the microprocessor device 20 and storage apparatus 18 can also be used to implement an exemplary embodiment of the present invention, wherein instructions stored in the storage apparatus 18 direct the microprocessor to generate an annotated task graph as described above. In a modification of the invention, the initial task graph 10 is derived from multiple functional specifications, rather than from just a single specification.
  • Many other modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the disclosed concept, the invention may be practiced otherwise than as has been specifically described. [0023]

Claims (24)

We claim:
1. A method for modeling and processing an asynchronous functional specification to provide an input to an architecture synthesis engine in a computer system, said method comprising:
generating an initial task graph from said specification, said initial task graph comprising a number of executable tasks;
establishing selected data and control connections between respective tasks in accordance with a specified set of rules to define some of said tasks to be deterministic, and other of said tasks to be non-deterministic; and
marking each of said control connections to provide an annotated task graph for use as an input to said architecture synthesis engine.
2. The method of claim 1 wherein information identifying each of said marked control connections of said annotated task graph is employed to direct a scheduling component of said architecture synthesis engine to disregard each of said control connections when said engine is operated to process said annotated task graph.
3. The method of claim 2 wherein each of said data and control connections represents the flow of data and control information, respectively, from a specified initiator task to a specified receptor task.
4. The method of claim 3 wherein said set of rules defines a task to be non-deterministic when all input connections to said specified task are control connections.
5. The method of claim 3 wherein said set of rules prohibits a data connection which is directed from a non-deterministic task to a deterministic task.
6. The method of claim 3 wherein said set of rules allows a specified task to have both data and control connections as inputs, and requires the specified task to execute without producing any output data when one of said input control connections is activated.
7. The method of claim 1 wherein each of said data and control connections has an associated average activation rate.
8. The method of claim 7 wherein said average activation rates are provided to said architecture synthesis engine for use during architecture construction and evaluation.
9. The method of claim 7 wherein the average activation rate for each of said data connections is 1.0 and the average activation rate for each of said control connections is between 0.0 and 1.0.
10. The method of claim 1 wherein the respective tasks are selectively disposed for execution on hardware components or software components.
11. The method of claim 1 wherein said initial task graph is generated from multiple specifications.
12. The method of claim 1 wherein:
said annotated task graph enables said engine to employ specific deterministic scheduling techniques.
13. An article of manufacture for modeling and processing an asynchronous functional specification to provide an input to an architecture synthesis engine in a computer system, said article of manufacture comprising:
a computer readable medium;
a plurality of instructions wherein at least a portion of said plurality of instructions are storable in said computer readable medium, and further wherein said plurality of instructions are configured to cause a processor to:
generate an initial task graph from said specification, said initial task graph comprising a number of executable tasks;
establish selected data and control connections between respective tasks in accordance with a specified set of rules to define some of said tasks to be deterministic, and other of said tasks to be non-deterministic; and
mark each of said control connections to provide an annotated task graph for use as an input to said architecture synthesis engine, wherein said annotated task graph enables said engine to employ specified deterministic scheduling techniques.
14. The article of manufacture of claim 13 wherein information identifying each of said marked control connections of said annotated task graph is employed to direct a scheduling component of said architecture synthesis engine to disregard each of said control connections when said engine is operated to process said annotated task graph.
15. The article of manufacture of claim 14 wherein each of said data and control connections represents the flow of data and control information, respectively, from a specified initiator task to a specified receptor task.
16. The article of manufacture of claim 15 wherein said set of rules defines a task to be non-deterministic when all input connections to said specified task are control connections.
17. The article of manufacture of claim 15 wherein said set of rules prohibits a data connection which is directed from a non-deterministic task to a deterministic task.
18. The article of manufacture of claim 15 wherein said set of rules allows a specified task to have both data and control connections as inputs, and requires the specified task to execute without producing any output data when one of said input control connections is activated.
19. The article of manufacture of claim 15 wherein said set of rules requires each input data connection to a specified task to carry valid data in order for said specified task to execute.
20. The article of manufacture of claim 13 wherein each of said data and control connections has an associated average activation rate.
21. The article of manufacture of claim 20 wherein said average activation rates are provided to said architecture synthesis engine for use during architecture construction and evaluation
22. The article of manufacture of claim 20 wherein the average activation rate for each of said data connections is 1.0 and the average activation rate for each of said control connections is between 0.0 and 1.0.
23. The article of manufacture of claim 13 wherein the respective tasks are disposed for execution on hardware components or software components, selectively.
24. The article of manufacture of claim 13 wherein said initial task graph is generated from multiple specifications.
US09/947,250 2001-09-05 2001-09-05 Method for modeling and processing asynchronous functional specification for system level architecture synthesis Expired - Fee Related US7076417B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US09/947,250 US7076417B2 (en) 2001-09-05 2001-09-05 Method for modeling and processing asynchronous functional specification for system level architecture synthesis
GB0220591A GB2381905B (en) 2001-09-05 2002-09-04 A method for modeling and processing asynchronous functional specification for system level architecture synthesis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/947,250 US7076417B2 (en) 2001-09-05 2001-09-05 Method for modeling and processing asynchronous functional specification for system level architecture synthesis

Publications (2)

Publication Number Publication Date
US20030046044A1 true US20030046044A1 (en) 2003-03-06
US7076417B2 US7076417B2 (en) 2006-07-11

Family

ID=25485822

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/947,250 Expired - Fee Related US7076417B2 (en) 2001-09-05 2001-09-05 Method for modeling and processing asynchronous functional specification for system level architecture synthesis

Country Status (2)

Country Link
US (1) US7076417B2 (en)
GB (1) GB2381905B (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102615A1 (en) * 2003-11-12 2005-05-12 Manuel Roman Method and apparatus for composing software
US20060067348A1 (en) * 2004-09-30 2006-03-30 Sanjeev Jain System and method for efficient memory access of queue control data structures
US20060140203A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain System and method for packet queuing
US20060143373A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain Processor having content addressable memory for block-based queue structures
US20060155959A1 (en) * 2004-12-21 2006-07-13 Sanjeev Jain Method and apparatus to provide efficient communication between processing elements in a processor unit
US20090319885A1 (en) * 2008-06-23 2009-12-24 Brian Scott Amento Collaborative annotation of multimedia content
US20090319884A1 (en) * 2008-06-23 2009-12-24 Brian Scott Amento Annotation based navigation of multimedia content
US20120034944A1 (en) * 2006-11-20 2012-02-09 Telcom Ventures, L.L.C. Wireless communications apparatus and methods employing opportunistic frequency band use
US8789060B1 (en) * 2007-12-27 2014-07-22 Cadence Design Systems, Inc. Deterministic, parallel execution with overlapping regions
US20150249580A1 (en) * 2014-03-03 2015-09-03 Korcett Holdings, Inc. System and method for providing uncapped internet bandwidth

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748440B1 (en) * 1999-05-12 2004-06-08 Microsoft Corporation Flow of streaming data through multiple processing modules
US7496912B2 (en) * 2004-02-27 2009-02-24 International Business Machines Corporation Methods and arrangements for ordering changes in computing systems
US7747985B2 (en) * 2005-03-18 2010-06-29 Microsoft Corporation Conformance testing of multi-threaded and distributed software systems
US7500149B2 (en) * 2005-03-31 2009-03-03 Microsoft Corporation Generating finite state machines for software systems with asynchronous callbacks
US7665072B2 (en) 2005-04-21 2010-02-16 Microsoft Corporation Generating test cases for software with complex preconditions
FR2911980A1 (en) * 2007-01-30 2008-08-01 Thales Sa METHOD FOR DESIGNING A SYSTEM COMPRISING MATERIAL COMPONENTS AND SOFTWARE
US9317640B2 (en) * 2008-05-16 2016-04-19 Hewlett Packard Enterprise Development Lp System and method for the electronic design of collaborative and validated architectures
US8255349B2 (en) * 2008-06-10 2012-08-28 Hewlett-Packard Development Company, L.P. Automated design of computer system architecture
US9753960B1 (en) * 2013-03-20 2017-09-05 Amdocs Software Systems Limited System, method, and computer program for dynamically generating a visual representation of a subset of a graph for display, based on search criteria

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493505A (en) * 1993-10-28 1996-02-20 Nec Usa, Inc. Initializable asynchronous circuit design
US5615127A (en) * 1994-11-30 1997-03-25 International Business Machines Corporation Parallel execution of a complex task partitioned into a plurality of entities
US5787009A (en) * 1996-02-20 1998-07-28 Altera Corporation Methods for allocating circuit design portions among physical circuit portions
US5870588A (en) * 1995-10-23 1999-02-09 Interuniversitair Micro-Elektronica Centrum(Imec Vzw) Design environment and a design method for hardware/software co-design
US5926632A (en) * 1996-04-11 1999-07-20 Matsushita Electric Industrial Co., Ltd. Circuit partitioning method, circuit partitioning apparatus, and computer-readable recording medium having thereon circuit partitioning program
US6086628A (en) * 1998-02-17 2000-07-11 Lucent Technologies Inc. Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems
US6097886A (en) * 1998-02-17 2000-08-01 Lucent Technologies Inc. Cluster-based hardware-software co-synthesis of heterogeneous distributed embedded systems
US6110220A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Concurrent hardware-software co-synthesis of hard real-time aperiodic and periodic specifications of embedded system architectures
US6112023A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems
US6117180A (en) * 1997-02-24 2000-09-12 Lucent Technologies Inc. Hardware-software co-synthesis of heterogeneous distributed embedded systems for low overhead fault tolerance
US6178542B1 (en) * 1997-02-24 2001-01-23 Lucent Technologies Inc. Hardware-software co-synthesis of embedded system architectures using quality of architecture metrics
US6289488B1 (en) * 1997-02-24 2001-09-11 Lucent Technologies Inc. Hardware-software co-synthesis of hierarchical heterogeneous distributed embedded systems
US6415384B1 (en) * 1998-10-30 2002-07-02 Lucent Technologies Inc. Hardware/software co-synthesis of dynamically reconfigurable embedded systems
US6597664B1 (en) * 1999-08-19 2003-07-22 Massachusetts Institute Of Technology Digital circuit synthesis system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60033531D1 (en) 1999-08-19 2007-04-05 Massachusetts Inst Technology SYNTHESIS OF A SYNCHRONOUS CIRCUIT USING AN ASYNCHRONOUS SPECIFICATION

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493505A (en) * 1993-10-28 1996-02-20 Nec Usa, Inc. Initializable asynchronous circuit design
US5615127A (en) * 1994-11-30 1997-03-25 International Business Machines Corporation Parallel execution of a complex task partitioned into a plurality of entities
US5748489A (en) * 1994-11-30 1998-05-05 International Business Machines Corporation Parallel execution of a complex task partitioned into a plurality of entities
US5870588A (en) * 1995-10-23 1999-02-09 Interuniversitair Micro-Elektronica Centrum(Imec Vzw) Design environment and a design method for hardware/software co-design
US5787009A (en) * 1996-02-20 1998-07-28 Altera Corporation Methods for allocating circuit design portions among physical circuit portions
US6045252A (en) * 1996-02-20 2000-04-04 Altera Corporation Methods for allocating circuit design portions among physical circuit portions
US5926632A (en) * 1996-04-11 1999-07-20 Matsushita Electric Industrial Co., Ltd. Circuit partitioning method, circuit partitioning apparatus, and computer-readable recording medium having thereon circuit partitioning program
US6178542B1 (en) * 1997-02-24 2001-01-23 Lucent Technologies Inc. Hardware-software co-synthesis of embedded system architectures using quality of architecture metrics
US6110220A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Concurrent hardware-software co-synthesis of hard real-time aperiodic and periodic specifications of embedded system architectures
US6112023A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems
US6117180A (en) * 1997-02-24 2000-09-12 Lucent Technologies Inc. Hardware-software co-synthesis of heterogeneous distributed embedded systems for low overhead fault tolerance
US6289488B1 (en) * 1997-02-24 2001-09-11 Lucent Technologies Inc. Hardware-software co-synthesis of hierarchical heterogeneous distributed embedded systems
US6097886A (en) * 1998-02-17 2000-08-01 Lucent Technologies Inc. Cluster-based hardware-software co-synthesis of heterogeneous distributed embedded systems
US6086628A (en) * 1998-02-17 2000-07-11 Lucent Technologies Inc. Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems
US6415384B1 (en) * 1998-10-30 2002-07-02 Lucent Technologies Inc. Hardware/software co-synthesis of dynamically reconfigurable embedded systems
US6597664B1 (en) * 1999-08-19 2003-07-22 Massachusetts Institute Of Technology Digital circuit synthesis system

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102615A1 (en) * 2003-11-12 2005-05-12 Manuel Roman Method and apparatus for composing software
US7526771B2 (en) * 2003-11-12 2009-04-28 Ntt Docomo, Inc. Method and apparatus for configuring an application while the application is running
US20060067348A1 (en) * 2004-09-30 2006-03-30 Sanjeev Jain System and method for efficient memory access of queue control data structures
US20060155959A1 (en) * 2004-12-21 2006-07-13 Sanjeev Jain Method and apparatus to provide efficient communication between processing elements in a processor unit
US20060140203A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain System and method for packet queuing
US20060143373A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain Processor having content addressable memory for block-based queue structures
US20120034944A1 (en) * 2006-11-20 2012-02-09 Telcom Ventures, L.L.C. Wireless communications apparatus and methods employing opportunistic frequency band use
US8789060B1 (en) * 2007-12-27 2014-07-22 Cadence Design Systems, Inc. Deterministic, parallel execution with overlapping regions
US20090319885A1 (en) * 2008-06-23 2009-12-24 Brian Scott Amento Collaborative annotation of multimedia content
US20090319884A1 (en) * 2008-06-23 2009-12-24 Brian Scott Amento Annotation based navigation of multimedia content
US10248931B2 (en) 2008-06-23 2019-04-02 At&T Intellectual Property I, L.P. Collaborative annotation of multimedia content
US20150249580A1 (en) * 2014-03-03 2015-09-03 Korcett Holdings, Inc. System and method for providing uncapped internet bandwidth

Also Published As

Publication number Publication date
GB0220591D0 (en) 2002-10-16
GB2381905B (en) 2005-07-20
US7076417B2 (en) 2006-07-11
GB2381905A (en) 2003-05-14

Similar Documents

Publication Publication Date Title
US7076417B2 (en) Method for modeling and processing asynchronous functional specification for system level architecture synthesis
Cao et al. Exploring renewable-adaptive computation offloading for hierarchical QoS optimization in fog computing
Elgendy et al. An efficient and secured framework for mobile cloud computing
US8543993B2 (en) Compiler, compile method, and processor core control method and processor
Jensen Asynchronous decentralized realtime computer systems
Ferscha et al. Estimating rollback overhead for optimism control in Time Warp
CN112905339B (en) Task scheduling execution method, device and system
Duong et al. A framework for dynamic resource provisioning and adaptation in iaas clouds
Zhang et al. A decomposition-based approach to optimization of TTP-based distributed embedded systems
Pop et al. Schedulability-driven frame packing for multicluster distributed embedded systems
CN111597035B (en) Simulation engine time propulsion method and system based on multithreading
KR101674324B1 (en) Task scheduling device and method for real-time control applications
Vorapojpisut Model-based design of IoT/WSN nodes: Device driver implementation
US20050240926A1 (en) Process scheduling system and method
CN110018906B (en) Scheduling method, server and scheduling system
CN114036769A (en) Avionics system physical architecture-oriented function deployment scheme generation method and device
Som et al. Strategies for predictability in real-time data-flow architectures
CN112083912A (en) Intermediate result processing method, device, equipment and storage medium for service arrangement
Lee et al. A general resource framework for real-time systems
CN110442442A (en) Nuclear power plant DCS platform engineering teacher's station software safeguards network communication method
Grudenic et al. Modeling and verification of MPI based distributed software
Ben Romdhanne et al. Coordinator-master-worker model for efficient large scale network simulation
Praphamontripong et al. An analytical approach to performance analysis of an asynchronous web server
Liu et al. An improvement on acceleration of distributed SMT solving
Chen et al. Research on client/server communication mechanism in autosar system

Legal Events

Date Code Title Description
AS Assignment

Owner name: AGILENT TECHNOLOGIES, INC., COLORADO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JAIN, RAJIV;SU, ALAN PEISHENG;BISWAS, CHAITALI;REEL/FRAME:012070/0528

Effective date: 20010827

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20100711