Source: http://www.google.com/patents/US20080243464?ie=ISO-8859-1
Timestamp: 2014-08-23 04:45:48
Document Index: 716640308

Matched Legal Cases: ['art 71', 'art 72', 'art 81', 'art 82', 'art 91', 'art 92']

Patent US20080243464 - Method of transactional simulation of a generic communication node model ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign in<nobr>Advanced Patent Search</nobr>PatentsA method of transactional simulation of a generic communication node model is proposed. The method includes steps, performed at each simulation step corresponding to transaction start events and transaction end events, including: calculating a remaining quantity of data to be transmitted for each transaction...http://www.google.com/patents/US20080243464?utm_source=gb-gplus-sharePatent US20080243464 - Method of transactional simulation of a generic communication node model, and the corresponding computer program product and storage meansAdvanced Patent SearchPublication numberUS20080243464 A1Publication typeApplicationApplication numberUS 12/059,310Publication dateOct 2, 2008Filing dateMar 31, 2008Priority dateMar 30, 2007Also published asUS7925490Publication number059310, 12059310, US 2008/0243464 A1, US 2008/243464 A1, US 20080243464 A1, US 20080243464A1, US 2008243464 A1, US 2008243464A1, US-A1-20080243464, US-A1-2008243464, US2008/0243464A1, US2008/243464A1, US20080243464 A1, US20080243464A1, US2008243464 A1, US2008243464A1InventorsJean-Paul CalvezOriginal AssigneeCofluent DesignExport CitationBiBTeX, EndNote, RefManReferenced by (1), Classifications (4), Legal Events (2) External Links: USPTO, USPTO Assignment, EspacenetMethod of transactional simulation of a generic communication node model, and the corresponding computer program product and storage meansUS 20080243464 A1Abstract A method of transactional simulation of a generic communication node model is proposed. The method includes steps, performed at each simulation step corresponding to transaction start events and transaction end events, including: calculating a remaining quantity of data to be transmitted for each transaction not completed in a list of current transactions; if the simulation step corresponds to the start of a new transaction, calculating a quantity of data to be transmitted for the new transaction and adding the new transaction to the list of current transaction; if the simulation step corresponds to the end of the transaction, removing the transaction from the list of current transactions; allocating throughputs to the current transactions, according to a predetermined node sharing policy; calculating a duration up to the closest end time of one of the current transactions; and assigning a wait for the duration before generation of the next transaction end event.
1. Method for transactional simulation of a generic communication node model included in a complex system model, said generic node model managing transactions between constituents of said complex system model, wherein said method comprises the following steps, performed at each simulation step corresponding to an event belonging to the group of events comprising transaction starts and transactions ends:
calculating a remaining quantity of data to be transmitted for each uncompleted transaction present in a list of current transactions; if said simulation step corresponds to the start of a new transaction, calculating a quantity of data to be transmitted for the new transaction and adding the new transaction to the list of current transactions; if said simulation step corresponds to the end of a transaction, removing the transaction from the list of current transactions; allocating throughputs to the current transaction, according to a predetermined policy of sharing the node; calculating a duration TpsRk up to the closest end time of one of the current transactions: TpsRk=MIN(TpsRi), with TpsRi=Qri/Di, TpsRi being the duration up to the time of end of a current transaction i, Qri the quantity of data remaining for the transaction i and Di the throughput allocated to the transaction i; assigning a wait for said duration TpsRk before the generation of the next end of transaction event. 2. Method according to claim 1, wherein the step of allocating throughputs to the current transactions comprises a direct throughput allocation step.
allocation to the current transactions, according to said predetermined node sharing policy, percentages of a maximum throughput MaxThroughput of the generic node model; calculating the throughputs allocated to the current transactions by applying the following formula: Di=MaxThroughput*Ri, with Ri the percentage of the maximum throughput allocated to the transaction i. 4. Method according to claim 1, wherein the predetermined node sharing policy belongs to the group comprising:
a policy of allocation by egalitarian interleaving, such that all the values Di are equal to MaxThroughput/N, with MaxThroughput the maximum throughput of the generic node model and N the number of current transactions; a policy of allocation by priority, such that: Di=MaxThroughput for the transaction i with the highest priority, and: Di=0 for the other transactions; an allocation policy of the a �first in first out� type, such that: Di=MaxThroughput for the oldest transaction, and: Di=0 for the other transactions; an allocation policy of a quality of service type, such that each transaction i is associated with a priority Pi and a requested throughput RequestedThroughput_i, and, in order of decreasing priority, each transaction i is allocated its requested throughput or the remaining throughput if it is less that its requested throughput. 5. Method according to claim 1, wherein said group of events also comprises modifications to a maximum throughput MaxThroughput of the generic node model.
7. Computer program product recorded on a medium that can be read by computer, said computer program product comprising program code instructions for execution, when said program is executed on a computer, of a method for transactional simulation of a generic communication node model included in a complex system model, said generic node model managing transactions between constituents of said complex system model, wherein said method comprises the following steps, performed at each simulation step corresponding to an event belonging to the group of events comprising transaction starts and transactions ends:
calculating a remaining quantity of data to be transmitted for each uncompleted transaction present in a list of current transactions; if said simulation step corresponds to the start of a new transaction, calculating a quantity of data to be transmitted for the new transaction and adding the new transaction to the list of current transactions; if said simulation step corresponds to the end of a transaction, removing the transaction from the list of current transactions; allocating throughputs to the current transaction, according to a predetermined policy of sharing the node; calculating a duration TpsRk up to the closest end time of one of the current transactions: TpsRk=MIN(TpsRi), with TpsRi=Qri/Di, TpsRi being the duration up to the time of end of a current transaction i, Qri the quantity of data remaining for the transaction i and Di the throughput allocated to the transaction i; assigning a wait for said duration TpsRk before the generation of the next end of transaction event. 8. Storage medium able to be read by a computer, storing a set of instructions executable by said computer in order to implement a method for transactional simulation of a generic communication node model included in a complex system model, said generic node model managing transactions between constituents of said complex system model, wherein said method comprises the following steps, performed at each simulation step corresponding to an event belonging to the group of events comprising transaction starts and transactions ends:
calculating a remaining quantity of data to be transmitted for each uncompleted transaction present in a list of current transactions; if said simulation step corresponds to the start of a new transaction, calculating a quantity of data to be transmitted for the new transaction and adding the new transaction to the list of current transactions; if said simulation step corresponds to the end of a transaction, removing the transaction from the list of current transactions; allocating throughputs to the current transaction, according to a predetermined policy of sharing the node; calculating a duration TpsRk up to the closest end time of one of the current transactions: TpsRk=MIN(TpsRi), with TpsRi=Qri/Di, TpsRi being the duration up to the time of end of a current transaction i, Qri the quantity of data remaining for the transaction i and Di the throughput allocated to the transaction i; assigning a wait for said duration TpsRk before the generation of the next end of transaction event. 9. Storage medium of claim 8, wherein the storage medium is at least partially removable.
10. Storage medium of claim 9, wherein the storage medium is totally removable. Description
In electronic and computer systems, the complex systems are implemented by assembling hardware components: standard processors (or CPUs, for �central processing units�), microprocessors (or MCUs, for �microcontroller units�), signal processing processors (or DSPs, for �digital signal processors�), application specific integrated circuits (or ASICs, for �application-specific integrated circuits�), programmable logic arrays (in particular pre-diffused programmable arrays (or FPGAs, for �field programmable gate arrays�) and memories, thus constituting the hardware platform of the system. They have added to this hardware platform a set of software developed for each software processor (CPU, MCU, DSP), as well as the configuration of the hardware processors (ASICs, FPGAs). All these constituents (hardware and software) once integrated (trend towards systems on silicon��system-on-chip�) constitute a complex system whose detailed behaviour it is almost impossible to predict, along with certain properties, such as their performance.
The prediction of the properties of such systems in terms of functionalities and performance in the general sense generally results in the simulation of abstract models best representing the complex electronic systems able to mix hardware processors (FPGAs, ASICs) and software processors (CPUs, MCUs, DSPs). The very nature of current electronic systems and those of the future, which result from the integration of real-time software executed on one or more processors themselves coupled with a complex and very varied hardware environment, results in having to have available effective and high-performance modelling techniques to verify and validate the solutions as effectively and as soon as possible during their design. For this reason, the modelling technologies with a view to simulation are very critical for the industry of computer aided electronic design (or EDA, for �electronic design automation�).
In order to illustrates the interest of techniques of simulating a generic communication node model, we will consider, in relation to FIG. 1, a simple electronic system architecture composed of two processors, Proc1 and Proc2, and a common memory 1, interconnected by a bus 2. A set of tasks is executed by each processor (tasks T1 and T2 for the processor Proc1, tasks T3 and T4 for the processor Proc2). More specific hardware functions such as a direct memory access module (DMA, for �Direct Memory Access�) can also exist (module DMA1 for the processor Proc2). The hardware tasks and/or functions exchange data with each other or with the memory by means of the bus. Thus the bus is a critical shared resource that must be managed according to an access policy. The performance properties of the complete system are then very dependent on the behaviour of the bus.
FIG. 3 a illustrates the �transactional� level (or TA, for �Transaction Accurate�), which is the most abstract level. Each exchange is modelled by an atomic transaction. Thus, transaction Tr1 being underway, transaction Tr2 must await the end of transaction Tr1 in order to have the bus available.
The majority of current solutions for simulating electronic systems including hardware and software come within the category of virtual platforms (first known technique). A virtual platform is a simulation model in which the processors are represented by behavioural models based on the instructions of these processors (or ISS, for �Instruction-Set Simulator�), and the buses, the interconnection networks and the memories are modelled by precise models at the exchange cycle or clock cycle. These models make it possible to have simulation results whose precision is around 95% and 99% with respect to the corresponding real solution. The simulation performance is then situated between 100 K instructions and 5 M instructions according to the technique. The performance is better for BA models but also require the use of ISS models.
Transactional simulation (second known technique) is progressively being used, in particular from the standardisation of TLM (�Transaction Level Monitoring�), by the OSCI group (Open SystemC Initiative). The transactional simulation known at the present time (hereinafter referred to as �conventional transactional simulation�) considers that each transaction is atomic and therefore does not consider the sharing of a resource such as a bus during simultaneous transactions. The inventor of the present application has no knowledge of existing transactional simulation solutions ensuring the sharing of a bus or interconnection network during simultaneous transactions.
1. General Principle of the Disclosure Obtaining precise results by a transactional simulation requires precisely calculating the start and end of exchange times for each transaction in the model. It is therefore a case, at each event of the simulation (event simulation used), of determining precisely solely the future moments useful for the model.
The original technique of the disclosure is based on a simple method of calculating useful future moments of the communication node. This method stems from an analogy made between the transfer of data by a node (cf FIG. 4 b) and the flow of water from tanks through valves (cf FIG. 4 a).
TpsR1=Q12/D1−Q12/(MaxThroughput*R1)
TpsR2=Q2/D2−Q2/(MaxThroughput*R2)
2. Illustrated Detailed Description In the remainder of the description, an example of use of the method according to the disclosure in a new version of the CoFluent Studio Tools� is presented. The various models are shown in accordance with the notations and semantics described in the notations of the MCSE methodology. The algorithms are given for various node access policies.
2.1 Creation of the Architectural Model The graphics editor of CoFluent Studio serves to capture the functional models (also called application models) consisting of communicating and competing �functions� having their own behaviour and inputs-outputs.
interfaces �Ch0OutInterface�, �Ch1OutInterface� and �Node0InInterface� in the processor Pro0; interfaces �Node0InInterface� and �Node0OutInterface� in the processor Pro1. The node Node0 is her configured as a bus having a throughput of 100 Mbytes/second. The channel Channel0 transfers data of 10000 bytes (that is to say a transaction with a duration of 100 μs on the node Node0). The channel Channel1 transfers 100 bytes (that is to say 1 μs on the node Node0) and the channel Channel2 transfers data of 1000 bytes (that is to say a transaction with a duration of 10 μs on the node Node0).
2.2 Results and Solutions for the Policy of Sharing by Egalitarian Interleaving FIG. 7 illustrates a policy of node sharing by egalitarian interleaving, presenting at the top part 71 an example of a sequence diagram and at the bottom part 72 a graphical representation of the node sharing.
// phase P3 - calculation of the values AllocatedThroughput for all the
2.3 Results and Solution for the Priority Sharing Policy FIG. 8 illustrates a priority node sharing policy, presenting at the top part 81 an example of a sequence diagram and at the bottom part 82 a graphical representation of the sharing of the node.
pTransactionList - > ClassifybyPriority( );// order the list by priority
pTransactionList- > AllocatedThroughput − GetAvailableThroughput( );
pTransactionList − pTransactionList- > Next;
while (pTransactionList! = NULL) {
pTransactionList- > AllocatedThroughput = 0.0;
2.4 Results and Solution for the Sharing Policy of the QoS Type FIG. 9 illustrates a node sharing policy in the case of a QoS policy, presenting at the top part 91 an example of a sequence diagram and at the bottom part 92 a graphical representation of the node sharing.
Channel0 = > Priority = 8, Throughput = 70 Mbytes/s
Channel1 = > Priority = 15, Throughput = 40 Mbytes/s
Channel2 = > Priority = 10, Throughput = 50 Mbytes/s
As the bus is programmed not to use all its bandwidth (70 Mbytes/s), the transaction with the lowest priority ends later, around 200 μs. The distribution of the throughput according to the priority should be noted between times D3 and F3. Indeed, 10 Mbytes/s remains for Channel0.
the current transactions double RequestedThroughout - 0.0;
plist - pTransactionList;
BeginList - plist;
2.5 Programming of the Sharing Policy by the User Phase P3 is made programmable (overloaded in the object sense) by the use of the following method. This method is then executed in replacement for the algorithms given above.
Referenced byCiting PatentFiling datePublication dateApplicantTitleUS8204732 *May 1, 2009Jun 19, 2012The Mathworks, Inc.Modeling communication interfaces for multiprocessor systems* Cited by examinerClassifications U.S. Classification703/17International ClassificationG06F17/50Cooperative ClassificationH04L41/145European ClassificationH04L41/14BLegal EventsDateCodeEventDescriptionDec 14, 2011ASAssignmentOwner name: INTEL CORPORATION, CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:COFLUENT DESIGN;REEL/FRAME:027386/0006Effective date: 20110830May 27, 2008ASAssignmentOwner name: COFLUENT DESIGN, FRANCEFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CALVEZ, JEAN-PAUL;REEL/FRAME:021004/0397Effective date: 20080411RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google