Frama-C-discuss mailing list archives
This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Frama-c-discuss] Worst case path computation
- Subject: [Frama-c-discuss] Worst case path computation
- From: sylvain.nahas at googlemail.com (sylvain nahas)
- Date: Mon, 10 Oct 2011 14:50:08 +0200
- In-reply-to: <CAOH62Jji2hdhq0AsLcz4T1GjLJ=TjnYEZpRRxFDbOV0bFz5jVQ@mail.gmail.com>
- References: <CAFaEDLCyERTXG2eUUewW73YM3gSCfYeaEdsSTw4e93RzzTMynw@mail.gmail.com> <CAOH62Jji2hdhq0AsLcz4T1GjLJ=TjnYEZpRRxFDbOV0bFz5jVQ@mail.gmail.com>
Hi Pascal, thank you for reacting so swiftly! First, I'd like to say this question is relative to a very concrete problem of a project I am working on: being able to statically estimate the maximal execution time an embedded software will take in a given configuration, to verify it is able to hold it's real time requirement, and if not, of how much we are off. The chipset producer does not provide a tool to do that, so I am studying the possibility to implement it with open-source software. > Since you are interested in this question, I do not need to tell you > that it is difficult to work only at the source level for worst case > execution time verification. One obviously needs information from the result of the compilation, since concrete execution time can only be computed at the assembly instruction level. Let me explain what I have in mind as a possible solution architecture. I would very much appreciate your feedback on it. 1. Be able to link disassembles binaries with original source code, so that each instruction in the C source can be joined to the one or several corresponding assembly instructions (When using GNU tools, objdump can do that in a parsable form). 2. Generates a parsable list of the C instructions executed in worst case 3. Join both set of information so that to generate the set of assembly instructions executed in WCEP. 4. Compute the WCE Time by using the information from the processor/board architecture (processor cycles per instruction, working frequency of the processor) (1) can be done by "objdump" when using GNU toolchain. (2) is where where Frama-C could enter the play. (3) and (4) could be done by ad-hoc scripts, architecture dependant IYO, does that make sense? > Please read: > http://blog.frama-c.com/index.php?post/2011/10/10/Execution-path-dependencies Allow me some time to digest it :) > Using -experimental-path-deps -deps, you can obtain a list of > memory locations that influence the execution path of your function. > > but because it doesn't account for the various levels of > data caches). One can nonetherless _measure_ the cost of cache-misses, and use it as a base for estimating worst-case computation. In this peculiar case, the processor is a very simple 16 bits processor whose architecture does not contain caches, so as far as I can tell execution time per assembly instruction is deterministic. > This is probably not going to be satisfactory as such, but I hope > it gives an idea of what Frama-C can offer. Looks better than I first thought. It seems you already put some thought on this use-case? Do you find it generally interesting for Frama-C? In any case, it seems that there is currently no open-source software that have this capacity. Unless I have overlooked something? Thanks, Sylvain
- Follow-Ups:
- [Frama-c-discuss] Worst case path computation
- From: nicolas.ayache at gmail.com (Nicolas Ayache)
- [Frama-c-discuss] Worst case path computation
- References:
- [Frama-c-discuss] Worst case path computation
- From: sylvain.nahas at googlemail.com (sylvain nahas)
- [Frama-c-discuss] Worst case path computation
- From: pascal.cuoq at gmail.com (Pascal Cuoq)
- [Frama-c-discuss] Worst case path computation
- Prev by Date: [Frama-c-discuss] Frama-C Nitrogen-20111001
- Next by Date: [Frama-c-discuss] Worst case path computation
- Previous by thread: [Frama-c-discuss] Worst case path computation
- Next by thread: [Frama-c-discuss] Worst case path computation
- Index(es):