source: anr/section-project-description.tex @ 292

Last change on this file since 292 was 289, checked in by coach, 14 years ago

Changed to adapt the document to the ANR 2011 call.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Revision HeadURL Id Date
File size: 8.4 KB
RevLine 
[289]1\anrdoc{%
2Presentez le programme scientifique et justifiez la decomposition en taches du
3programme de travail en coherence avec les objectifs poursuivis.\\
4Utilisez un diagramme pour presenter les liens entre les differentes taches (organigramme technique)\\
5Les taches representent les grandes phases du projet. Elles sont en nombre
6limite.\\
7Le cas echeant (programmes exigeant la pluridisciplinarite), demontrer
8l'articulation entre les disciplines scientifiques.\\
9N'oubliez pas les activites et actions correspondant à la dissemination et à la valorisation.}
10
11
12\begin{figure}\leavevmode\center
13\includegraphics[width=.8\linewidth]{architecture-csg}
14\caption{\label{archi-csg} Software architecture for digital system generation}
15%\end{figure}\begin{figure}\leavevmode\center
16\mbox{}\vspace*{1ex}\\
17\includegraphics[width=1.0\linewidth]{architecture-hls}
18\caption{\label{archi-hls} Software architecture of hardware accellerator synthesis}
19%\end{figure}\begin{figure}\leavevmode\center
20\mbox{}\vspace*{1ex}\\
21\includegraphics[width=.8\linewidth]{architecture-hpc}
22\caption{\label{archi-hpc} Performance analysis of a HPC partitionning}
23\end{figure}
24%
25Figures~\ref{archi-csg}, \ref{archi-hls} and \ref{archi-hpc}
26summarize the software architecture of the COACH framework we will develop.
27In figures, the dotted boxes are the softwares or formats that COACH
28has to provide and to support.
29\parlf
30For the system generation presented in figure~\ref{archi-csg}, the conductor
31is the tool \verb!CSG! (COACH System Generator). Its inputs are a process
32network describing the target application and the synthesis parameters.
33The main parameters are the target hardware architectural template
34with its instantiation parameters, the hardware/software mapping of the
35tasks, the FPGA device and design constraints.
36\verb+CSG+ thus requires an architectural template library, an operating system
37library, two system hardware component (CPU, memories, BUS...) libraries
38(one for synthesis, one for simulation).
39For generating the coprocessor of a task mapped as hardware, \verb+CSG+
40controls the HAS tools described below.
41From these inputs \verb!CSG! can generate the entire system (both software and
42hardware) either \ADDED{ as an IP under IP-XACT to integrate the SoC in larger
43design or}
44as a SystemC simulator (cycle accurate and/or TLM) to prototype and explore quickly the
45design space or as a bitstream\footnote{COACH generates synthesizable VHDL, and
46launch the \xilinx or \altera RTL synthesis tools.} directly downloadable on the
47FPGA device\footnote{Additional partial bitstreams are generated in case of
48 dynamic partial reconfiguration}.
49 \begin{ADDEDENV}
50 \\
51 Furthermore the architecture template and hardware component libraries will be described
52 under the IP-XACT specification to make easilier the configuration of \verb+CSG+ to other
53 architecture or the enhancement of existing template with IP.
54 \end{ADDEDENV}%
55\parlf
56The software architecture for HAS is presented in figure~\ref{archi-hls}.
57The input is a single task of the process network. The HAS tools do not work
58directly on the C++ task description but on an internal format called
59\xcoach generated by a plugin into the GNU C compiler (GCC).
60This will allow on the one hand to insure that all the tools will
61accept the same C++ description and on the other hand make possible
62their chaining. The front-end tools read a \xcoach description and generate
63a new \xcoach description that exibits more parallelism or implement
64specific instructions for ASIP. The back-end tools read an \xcoach
65description and generate an \xcoachplus description. This is an \xcoach
66description annotated with hardware information (scheduling, binding) required by
67the VHDL and systemC drivers.
68Furthermore, the back-end tools uses a macro-cell library (functional and memory
69unit).
70\parlf
71In addition to digital system design, HPC requires a supplementary
72partitioning step presented in figure~\ref{archi-hpc}. The designer
73splits the initial application (tag 1) in two parts: one still on the PC and the
74other running in a FPGA plugged on the PCI/X PC bus. The two parts exchange data
75through communication primitives (tag 2) implemented in a library.
76To evaluate the relevance of the partitioning, the designer can build a
77simulator. Once the partitioning is validated, the design of the FPGA part
78is done through \verb!CSG! (figure~\ref{archi-csg}).
79\parlf
80The project is split into 8 tasks numbered from 1 to 8. They are described
81in short below and in detail in section \ref{task-description}.
82\begin{description}
83\item[Task-1: \textit{Project management}]
84    This task relates to the monitoring of the COACH project.
85\item[Task-2: \textit{\Backbone}] This task tackles the fundamental points of the
86        project such as the defintion of the COACH inputs and outputs,
87    the internal formats (i.e. \xcoach and \xcoachplus) and their associated tools,
88        the architectural templates and the design flow.
89\item[Task-3: \textit{System generation}] This task addresses the prototyping and
90    the generation of digital system. Apart from HAS that belongs to task 3
91    and 4, its components are those presented figure~\ref{archi-csg}
92    (e.g.  \verb!CSG!, operating systems).
93\item[Task-4: \textit{HAS front-end}] This task mainly focusses on four functionalities:
94    optimization of the memory usage, parallelism enhancement through loop
95    transformations, coarse grain parallelization and ASIP generation.
96\item[Task-5: \textit{HAS back-end}] This task groups two functionalities:
97    High-Level Synthesis of data dominated description and HLS of control
98    dominated description.
99    This task contains also the development of a frequency adaptator
100    that will allow the coprocessors to respect the processor and the bus
101    frequency.
102\item[Task-6: \textit{PC/FPGA communication middleware}]
103    This task pools the features dedicated to HPC. These are mainly the
104    validation of the partitioning (see figure~\ref{archi-hpc}), the sytem drivers for
105    both PC and FPGA-SoC sides, the hardware communication components and
106        the support for dynamic partial reconfiguration.
107\item[Task-7: \textit{Industrial demonstrators}]
108    This task groups the demonstrators of the COACH project.
109    Most of them are industrial applications that will be developped within
110    the COACH framework.
111    Others consist in integrating the COACH framework as a driver of
112    industrial proprietary design tools.
113\item[Task 8: \textit{Dissemination}]
114    This task concerns the diffusion of the project results.
115    It mainly consists of the production of 4 COACH releases (\verb!T0+12!, \verb!T0+18!,
116    \verb!T0+24! and \verb!T0+36!), the publication of a tutorial and user manuals on a WEB site, the publication
117        of research papers in international journals and conferences and the organization of workshops and tutorials in
118        international conferences.
119\end{description}
120%
121\begin{figure}\leavevmode\center
122%\includegraphics[width=.4\linewidth]{dependence-task}
123\includegraphics[width=0.70\linewidth]{dependence-task-h}
124\caption{\label{dependence-task}Task dependencies}
125\end{figure}
126Figure~\ref{dependence-task} presents the tasks dependencies.
127"$T_N \longrightarrow T_M$" means that $T_N$ impacts the $T_M$.
128The more bold the arrow, the more important is the impact.
129The graph shows:
130\begin{itemize}
131\item Even though $T4$ and $T5$ functionalities are complementary,
132their developments are independent (thanks to the \xcoach internal format).
133\item $T3$ slightly depends on $T4$ and $T5$. Indeed, $T3$ may work
134without $T4$ and $T5$ if targeted digital systems do not include hardware
135accelerators.
136\item $T3$ strongly impacts $T6$ but $T3$ does not depend at all on
137$T6$. Hence demonstrators ($T7$) of embedded system would not be impacted if
138$T6$ would fail. 
139\item $T2$ drives all the tasks ($T3$, $T4$, $T5$, $T6$) and is at the heart of
140the COACH project.
141\item The demonstrators developped in $T7$, of course strongly depend on the achievements
142of the previous tasks ($T2$, $T3$, $T4$, $T5$, $T6$).
143\item $T8$ and $T1$ depend on and impact all the other tasks.
144\end{itemize}
145This organisation offers enough robustness to insure the success of the
146project except for the specification task $T2$.
147The only critical task in this chart is $T2$. \label{xcoach-problem}
148However, the partners met
14912 times (a one-day meeting per month) during the last year: 10 meetings to exchange and work on scientific
150and technical aspects and 2 meetings to prepare the project proposal. This gives us a high degree of confidence
151that $T2$ will be completed in time.
Note: See TracBrowser for help on using the repository browser.