1 | %\def\t{\\\hspace*{.5em}} |
---|
2 | \def\t{\\{$\bullet$}~} |
---|
3 | \def\sectionPpageP#1{section~\ref{#1} (page~\pageref{#1})\xspace} |
---|
4 | \def\sectionVpage#1{section~\ref{#1}, page~\pageref{#1}\xspace} |
---|
5 | % |
---|
6 | Le projet a été soumis en 2010 au programme ARPEGE. |
---|
7 | Dans la premiÚre section, nous présentons nos réponses aux suggestions et |
---|
8 | remarques des experts en suivant l'ordre du dossier d'évaluation qui nous a été |
---|
9 | retourné. La seconde section, quant à elle, synthétise nos réponses par rapport |
---|
10 | aux principales faiblesses qui ont été relevée pour la précédente version de la |
---|
11 | proposition. |
---|
12 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
13 | \subsection{Réponses séquentielles} |
---|
14 | % |
---|
15 | \subsubsection{Pertinence de la proposition au regard de l'appel à projet} |
---|
16 | Pas de faiblesse signalée. |
---|
17 | \subsubsection{Qualité scientifique et technique de la proposition} |
---|
18 | \begin{description} |
---|
19 | \item[Point 1 (\textit{non prise en compte des outils existants})]\mbox{} |
---|
20 | \t%\note{O.1} |
---|
21 | Pour la synthÚse de bas niveau sur FPGA, nous utiliserons intensivement |
---|
22 | les environnements industriels QUARTUS \& ISE. |
---|
23 | \t%\note{O.2} |
---|
24 | Pour la synthÚse de systÚme, on pourrait effectivement utiliser des outils |
---|
25 | tels que SOP C builder, mais ceux-ci ne permettent pas de faire de prototypage |
---|
26 | et ne sont pas libres et trop spécifiques à une famille d'IPs propriétaire. |
---|
27 | Nous avons donc choisi DSX/SoCLib, car il est open source, et c'est celui que |
---|
28 | nous maitrisons le plus et nous savons déjà que son moteur couvre une |
---|
29 | grande partie des besoins de COACH Ã ce niveau. |
---|
30 | \t\note{INT} |
---|
31 | Enfin COACH ne vise pas les flots de conception de systÚmes complexes tels |
---|
32 | que SOCKET, TOPCASED, SPEAR-DE. |
---|
33 | COACH se positionne en effet comme une sous-partie de ces flots complets et |
---|
34 | doit être considéré comme un point tool. Cependant, dans la nouvelle |
---|
35 | version de la proposition, nous avons |
---|
36 | \textit{ajouté à COACH ce qui est nécessaire pour qu'il puisse |
---|
37 | être intégré dans de tels environnements de conception: |
---|
38 | configuration et description des SoC générés en IP-XACT}. |
---|
39 | Les livrables {\NOVERStrtSpearde} et {\NOVERSmdsAppSpecification} démontrent cette |
---|
40 | possibilité. |
---|
41 | \item[Point 2 (\textit{pas de dimension recherche})]\mbox{} |
---|
42 | \\ La dimension recherche est présente à différents niveaux de ce projet. |
---|
43 | \t%\note{R.1} |
---|
44 | Tout d'abord, le fait de synthétiser la même description de haut niveau soit par HLS |
---|
45 | soit par ASIP, est à notre connaissance non encore réalisé à ce jour. |
---|
46 | \t%\note{R.2} |
---|
47 | De plus, l'utilisation de transformations polyédriques dans des outils de HLS |
---|
48 | opérationnels n'est pas courant. |
---|
49 | \t%\note{R.3} |
---|
50 | Les IPs courantes du marché sont des composants matériels certes génériques mais à configuration/paramétrisation limitées. COACH permettra au contraire de concevoir des IPs qui constitueront de véritables sous-systÚmes à fonctionnalités complexes et trÚs paramétrables (hardware + software), il sera |
---|
51 | intéressant de voir ce que de tel IP peuvent apporter au monde de la conception de systÚmes embarqués. |
---|
52 | \t%\note{R.4} |
---|
53 | Les outils de conception de SoC actuels ont soit une approche matérielle |
---|
54 | (sans limite sur les choix architecturaux), soit massivement parallÚle à |
---|
55 | gros grain (MPSoC à mémoire cohérente). Il en résulte des systÚmes trÚs complexes nécessitant des spécialistes en |
---|
56 | matériel (approche matérielle) ou en programmation parallÚle. |
---|
57 | A l'opposé, dans COACH l'architecture matérielle est simple et quasiment fixée. |
---|
58 | Le moyen d'accélération est le parallélisme à grain trÚs fin généré au sein |
---|
59 | des coprocesseurs par HLS. Il en résulte que des développeurs de logiciel |
---|
60 | standard pourront utiliser COACH. \\ |
---|
61 | La démonstration de la pertinence ou de la non pertinence de ces choix est |
---|
62 | Ã notre avis l'axe de recherche principal du projet car il impactera les orientations |
---|
63 | technologiques liées à l'exploitation des plateformes matérielles de demain. |
---|
64 | \item[Point 3 (\textit{lien entre HPC et SoC embarqué})]\mbox{} |
---|
65 | \\ %\note{X.1} |
---|
66 | Le terme HPC est employé dans de nombreux contextes et il est difficile de s'entendre sur sa définition exacte. Dans notre proposition, le terme HPC est |
---|
67 | défini section~\ref{HPC:definition} (page~\pageref{HPC:definition}); il |
---|
68 | s'agit bien d'une sur-couche du module de conception de SoC |
---|
69 | comme illustré sur la figure~\ref{coach-flow} (page~\pageref{coach-flow}).\\ |
---|
70 | BriÚvement notre HPC consiste à accélérer une application existante qui |
---|
71 | tourne sur un PC. Ceci est fait par: |
---|
72 | 1) l'isolation de moteur de calcul de l'application, |
---|
73 | 2) l'implantation de ce moteur dans un SoC, |
---|
74 | 3) l'ajout d'une carte FPGA sur le bus PCI/E du PC. Le FPGA intÚgrera le SoC.\\ |
---|
75 | La façon dont COACH aide l'utilisateur à isoler le moteur de calcul de l'application |
---|
76 | est expliquée dans la section~\ref{HPC:howto} (page~\pageref{HPC:howto}) et |
---|
77 | sur la figure~\ref{archi-hpc} (page~\pageref{archi-hpc}). |
---|
78 | La façon dont l'application accélérée est générée fait l'objet de la |
---|
79 | figure~\ref{coach-flow} (page~\pageref{coach-flow}). |
---|
80 | \item[Autres]\mbox{} |
---|
81 | \begin{description} |
---|
82 | \item[Ãtat de l'art incomplet]\mbox{} |
---|
83 | \\ %\note{EA} |
---|
84 | Dans l'état de l'art, nous nous sommes concentrés d'une part sur les outils |
---|
85 | de même niveau que COACH, |
---|
86 | le HPC (\sectionVpage{soa:hpc}) et |
---|
87 | la synthÚse de systÚme (\sectionVpage{soa:system:synthesis}) |
---|
88 | et d'autre part sur les technologies utilisées, |
---|
89 | la HLS (\sectionVpage{soa:hls}), |
---|
90 | l'ASIP (\sectionVpage{soa:asip}), |
---|
91 | et la parallélisation automatique |
---|
92 | (\sectionVpage{soa:automatic:parallelization}). |
---|
93 | \\ %\note{EA} |
---|
94 | Nous avions fait l'impasse sur les outils de plus haut niveau de |
---|
95 | conception de SoC, ceux-ci n'étant pas directement le sujet de COACH. |
---|
96 | Nous avons ajouté le chapitre |
---|
97 | \og SoC design flow automation using IP-XACT{\fg} |
---|
98 | (\sectionPpageP{soa:ip-xact}) pour palier ce manque. |
---|
99 | \\ %\note{EA} |
---|
100 | Nous sommes conscients que cet état de l'art est loin d'être complet |
---|
101 | mais à notre décharge, il y a le nombre limité de pages et la grande |
---|
102 | variété de domaines abordés dans ce projet. |
---|
103 | \item[Articulation avec SoCLib]\mbox{}\\ |
---|
104 | Voir la note de marge \seenote{SL1} dans la section \ref{coach+soclib} ci-dessous. |
---|
105 | \item[Pérennité à long terme du logiciel]\mbox{}\\ |
---|
106 | Voir la section \ref{perennite+dissemination} ci-dessous. |
---|
107 | \item[Mauvais positionnement du projet]\mbox{}\\ |
---|
108 | Concernant la remarque sur un positionnement du projet |
---|
109 | en \og plateforme {\fg} plutÃŽt qu'en \og recherche industrielle \fg, |
---|
110 | nous avons considéré que l'effort devait être concentré sur les aspects |
---|
111 | techniques innovants plutÃŽt que sur leur mise en application dans un nombre important de flots. En |
---|
112 | effet, dans la nouvelle mouture, nous utilisons les résultats des projets SoCket et Topcased, avec compatibilité IP-XACT, assurant ainsi une généricité pour l'intégration dans de nombreux flots de production, sans pour autant multiplier à outrance les expérimentations dans le cadre du projet. Ainsi la taille du projet nous permet de rester en positionnement \og recherche industrielle \fg. |
---|
113 | \end{description} |
---|
114 | \end{description} |
---|
115 | % |
---|
116 | \subsubsection{Qualité de la construction de la proposition} |
---|
117 | \begin{description} |
---|
118 | \item[Manque un industriel pour assurer la pérennité]\mbox{}\\ |
---|
119 | \note{IND1} |
---|
120 | Il était mentionné qu'il fallait un industriel pour assurer |
---|
121 | la pérennité et la dissémination du projet. \mds est entré dans |
---|
122 | le consortium pour assurer ce rÃŽle.\\ |
---|
123 | Voyez aussi la section \ref{perennite+dissemination} ci-dessous |
---|
124 | pour plus d'information. |
---|
125 | \item[Trop ambitieux]\mbox{}\\ |
---|
126 | Voir la section \ref{trop:ambitieux} ci-dessous. |
---|
127 | \end{description} |
---|
128 | % |
---|
129 | \subsubsection{Impact global du projet} |
---|
130 | \begin{description} |
---|
131 | \item[Volonté de tout refaire]\mbox{}\\ |
---|
132 | \note{REF} |
---|
133 | Les experts mentionnent \og une volonté de tout refaire {\fg}. Il est dommage |
---|
134 | qu'ils n'aient pas explicité leurs pensées. En effet le projet s'appuie sur |
---|
135 | des briques existantes pour la plupart de ses composants et sur les |
---|
136 | environnements QUARTUS \& ISE pour la synthÚse de bas niveau.\\ |
---|
137 | Les seuls composants manquants sont les composants matériels de |
---|
138 | communication mais ils sont incontournables pour la réalisation du projet |
---|
139 | sur les trois plateformes cibles. |
---|
140 | \item[Trop gros travail de développement]\mbox{}\\ |
---|
141 | Voir la section \ref{trop:ambitieux} ci-dessous. |
---|
142 | \item[Absence d'utilisation de standard]\mbox{}\\ |
---|
143 | \note{STD} |
---|
144 | En effet, le projet n'utilisait pas le standard IP-XACT des flots de |
---|
145 | conception de SoC. Ceci a été corrigé dans cette soumission en introduisant |
---|
146 | le standard IEEE 1685 IP-XACT (livrable \NOVERScsgImplementation), |
---|
147 | d'une part en entrée pour faciliter la configuration de COACH sur d'autre plateforme |
---|
148 | et d'autre part en ajoutant une sortie au format IP-XACT des SoC générés pour |
---|
149 | leur intégration comme sous-systÚme dans les flots de conception de SoC. |
---|
150 | Les livrables {\NOVERStrtSpearde} et {\NOVERSmdsAppSpecification} démontrent cette |
---|
151 | possibilité. |
---|
152 | \item[Utilisation de RTOS non industriels]\mbox{}\\ |
---|
153 | L'OS bien qu'indispensable n'est pas une piÚce maitresse du projet. |
---|
154 | En effet, on doit pouvoir passer facilement à un autre OS si ce |
---|
155 | dernier supporte les thread POSIX. |
---|
156 | \item[Le projet est trop basé sur les composants SoCLib]\mbox{}\\ |
---|
157 | Voir la note de marge \seenote{SL2} dans la section \ref{coach+soclib} ci-dessous. |
---|
158 | \end{description} |
---|
159 | % |
---|
160 | \subsubsection{Qualité du consortium} |
---|
161 | \begin{description} |
---|
162 | \item[Xilinx n'a pas une part assez active]\mbox{}\\ |
---|
163 | Xilinx ne fait plus partie du consortium. |
---|
164 | \item[Manque un industriel pour assurer la pérennité]\mbox{}\\ |
---|
165 | \note{IND2} |
---|
166 | Les experts suggÚrent la société \mds. \mds est entré dans le |
---|
167 | consortium pour remplir ce rÃŽle. |
---|
168 | \item[Pas de vision pour intégrer COACH dans un flot de conception |
---|
169 | industriel]\mbox{}\\ |
---|
170 | Voir les notes de marge \seenote{INT} et \seenote{STD} ci-dessus. |
---|
171 | \end{description} |
---|
172 | % |
---|
173 | \subsubsection{Moyens humains et financiers} |
---|
174 | \begin{description} |
---|
175 | \item[Incongruités de quelques demandes financiÚres]\mbox{}\\ |
---|
176 | Les experts n'ont pas précisé leurs pensées. Néanmoins, la répartition financiÚre a été complÚtement revue. |
---|
177 | |
---|
178 | \item[Déséquilibre entre l'ampleur du développement et les moyens]\mbox{}\\ |
---|
179 | Voir la section \ref{trop:ambitieux} ci-dessous. |
---|
180 | \item[Doute sur la possibilité d'intégrer l'ensemble des outils existants en |
---|
181 | un tout cohérent]\mbox{}\\ |
---|
182 | \note{DOU} |
---|
183 | Un rÎle principal de \mds tant que chef de file sera d'assurer la coordination de maniÚre professionnelle de ce projet. |
---|
184 | |
---|
185 | \end{description} |
---|
186 | % |
---|
187 | \subsubsection{Avis Général} |
---|
188 | \begin{description} |
---|
189 | \item[Déséquilibre entre l'ampleur du développement et les moyens]\mbox{}\\ |
---|
190 | Voir la section \ref{trop:ambitieux} ci-dessous. |
---|
191 | \item[Doute sur la possibilité d'intégrer l'ensemble des outils existants en |
---|
192 | un tout cohérent]\mbox{}\\ |
---|
193 | Voir la note de marge \seenote{DOU} au-dessus. |
---|
194 | \item[\parbox{\linewidth}{COACH étant une continuation de SoCLib, |
---|
195 | SoCLib n'étant pas une réussite industrielle $\Longrightarrow$ |
---|
196 | faut-il financer COACH pour donner une chance à SoCLib?}]\mbox{}\\ |
---|
197 | Voir la note de marge \seenote{SL3} dans la section \ref{coach+soclib} ci-dessous. |
---|
198 | \item[Manque un industriel pour assurer la pérennité]\mbox{}\\ |
---|
199 | Voir les notes de marge \seenote{IND1} et \seenote{IND2} au-dessus. |
---|
200 | \item[Justifier le positionnement comme une continuité de SoCLib]\mbox{}\\ |
---|
201 | La section \ref{coach+soclib} ci-dessous montre que COACH n'est pas une |
---|
202 | continuité de SoCLib et cette justification est donc sans objet. |
---|
203 | \item[Absence de considération pour les outils/standard industriels]\mbox{}\\ |
---|
204 | Voir les notes de marge \seenote{INT} et \seenote{STD} au-dessus. |
---|
205 | \item[Volonté de tout refaire]\mbox{}\\ |
---|
206 | Voir la note de marge \seenote{REF} au-dessus. |
---|
207 | \end{description} |
---|
208 | % |
---|
209 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
210 | \subsection{SynthÚse} |
---|
211 | % |
---|
212 | \subsubsection{Projet trop ambitieux} |
---|
213 | \label{trop:ambitieux} |
---|
214 | Par rapport au projet 2010, nous avons réduit la surface du projet de 20\% en nous |
---|
215 | concentrant sur le cÅur de COACH. Les principales réductions sont: |
---|
216 | \begin{itemize} |
---|
217 | \item Suppression d'un OS:\\ |
---|
218 | Dans la proposition 2010, nous avions choisi 2 OS (Mutekh et DNA) pour |
---|
219 | montrer que COACH était indépendant de l'OS. |
---|
220 | L'OS bien qu'indispensable n'est pas une piÚce maitresse du projet. |
---|
221 | En effet, on doit pouvoir passer facilement à un autre OS si ce |
---|
222 | dernier supporte les thread POSIX.\\ |
---|
223 | \textit{Nous avons Îté l'OS Mutekh}. Ceci diminue les développements systÚme |
---|
224 | de moitié. |
---|
225 | \item Suppression de la reconfiguration dynamique:\\ |
---|
226 | Dans la proposition 2010, la tâche~6 (PC/FPGA communication middleware) |
---|
227 | contenait une partie importante qui consistait à partager le FPGA entre |
---|
228 | plusieurs applications et charger dynamiquement certaine de ses parties |
---|
229 | en fonction des applications qui tournent sur le PC.\\ |
---|
230 | \textit{Nous avons Îté la reconfiguration dynamique}. Ceci diminue de 30 à |
---|
231 | 40 \% les développements de la tâche~6 et enlÚve quelques homme mois dans la |
---|
232 | tache~3 (System generation). |
---|
233 | \item Diminution des développements materiels:\\ |
---|
234 | Dans la proposition 2010, nous avions projeté 1) de prototyper les SoC des |
---|
235 | différents patrons architecturaux de façon exacte, 2) d'implanter le |
---|
236 | composant de communication (MWMR) pour les patrons architecturaux XILINX et ALTERA. |
---|
237 | Ces choix conduisaient à 4 implantations du composants de communication |
---|
238 | (MWMR) (1 VHDL MWMR/\xilinxbus, 1 VHDL MWMR/AVALON, 1 SystemC |
---|
239 | MWMR/\xilinxbus et |
---|
240 | 1 SystemC MWMR/AVALON) et probablement à quelques autres modules SystemC.\\ |
---|
241 | \textit{Nous avons Îté ces développements}. |
---|
242 | En effet pour l'implantation matériel des patrons architecturaux, on |
---|
243 | utilisera les ponts VCI/\xilinxbus et VCI/AVALON qui sont nécessaires au HPC et |
---|
244 | pour le prototypage, on se limitera au patron architectural neutre. |
---|
245 | \end{itemize} |
---|
246 | % |
---|
247 | \subsubsection{Projet \& SoCLib} |
---|
248 | \label{coach+soclib} |
---|
249 | {$\bullet$}\note{SL1} |
---|
250 | Dans l'évaluation de la soumission 2010, les experts se posent plusieurs |
---|
251 | questions sur les liens entre le projet COACH et le projet ANR SoCLib. |
---|
252 | Pour répondre à ces questions listons les composants de SoCLib utilisés dans COACH: |
---|
253 | \begin{itemize} |
---|
254 | \item Les descriptions SystemC de 6 composants sur environ 70. |
---|
255 | \item L'explorateur de l'espace de conception DSX qui devra être étendu pour |
---|
256 | supporter la génération matérielle des architectures (VHDL synthétisable). |
---|
257 | \item Un OS sur cinq. |
---|
258 | \end{itemize} |
---|
259 | Cette liste montre clairement que SoCLib n'est qu'un composant logiciel parmi |
---|
260 | la dizaine d'autres sur les quels COACH s'appuie. |
---|
261 | Ce n'est pas, et de loin, le plus irremplaçable, les modÚles VHDL du patron |
---|
262 | architectural neutre comme les outils de synthÚse seraient bien plus difficiles |
---|
263 | Ã refaire et GCC comme les environnements QUARTUS et ISE sont absolument |
---|
264 | indispensables. |
---|
265 | \t\note{SL2} |
---|
266 | On ne peut donc pas dire que COACH est trop basé sur SoCLIB. |
---|
267 | \t\note{SL3} |
---|
268 | A la question posée par les experts: |
---|
269 | \og faut il financer COACH pour donner une chance à SoCLib? {\fg} |
---|
270 | La réponse est que financer COACH n'influencera pas la vie de SoCLib, |
---|
271 | les 2 projets n'étant pas assez corrélés. |
---|
272 | D'ailleurs COACH pourrait trÚs bien survivre à une mort de SoCLib en maintenant |
---|
273 | les quelques composants SoCLib qu'il utilise. |
---|
274 | \t\note{SL4} |
---|
275 | Enfin une réserve concerne l'utilisation du bus VCI jugé obsolÚte via les composants |
---|
276 | SoCLib. Le projet prévoit le développement de pont VCI/AVALON et VCI/\xilinxbus ce qui |
---|
277 | permettra l'utilisation des IP de XILINX et ALTERA dans le patron architectural |
---|
278 | neutre. |
---|
279 | % |
---|
280 | \subsubsection{Pérennité/dissémination du projet} |
---|
281 | \label{perennite+dissemination} |
---|
282 | Lâarrivée de la société Magillem Design Services dans le consortium permettra de |
---|
283 | répondre aux problÚmes liés à la pérennité et la dissémination des résultats du |
---|
284 | projets. Le rÃŽle de ce nouveau partenaire sera dâorienter les choix afin de |
---|
285 | pouvoir anticiper les besoins des futurs utilisateurs industriels de COACH. |
---|
286 | Deux versions de lâoutil seront développées: |
---|
287 | \begin{itemize} |
---|
288 | \item une version libre qui sans bénéficier de lâenvironnement complet |
---|
289 | intégrée à Magillem (sous Eclipse), intÚgrera des moteurs en entrée et en |
---|
290 | sortie pour assurer la compatibilité du code généré avec un flot standard |
---|
291 | IP-XACT, |
---|
292 | \item une version complÚte à vocation commerciale qui pourra être |
---|
293 | personnalisée en fonctions des besoins spécifiques des futurs clients. |
---|
294 | \end{itemize} |
---|
295 | La société Magillem détient une expertise dans les flots de production |
---|
296 | des SoC car depuis plusieurs années elle a réussi avec succÚs à assister les |
---|
297 | leaders de ce domaine (STM, NXP, TI, Qualcomm, etc.) dans leur migration vers le |
---|
298 | standard IEEE 1685 IP-XACT. |
---|
299 | Ainsi sa présence assure que les outils développés dans COACH seront en |
---|
300 | adéquation avec les besoins correspondant à ce type de clientÚle. |
---|
301 | Magillem a également dans sa clientÚle des systémiers utilisateurs de FPGA |
---|
302 | (Thales, Astrium, ESA, etc.) dont les besoins sont différents qui seront |
---|
303 | considérés comme les cibles privilégiés du projet. |
---|
304 | % |
---|
305 | \subsubsection{Projet trop académique} |
---|
306 | \label{trop:academique} |
---|
307 | Le projet a été jugé trop académique. Ceci est un peu corrigé par l'arrivée de |
---|
308 | \mds mais l'essentiel du développement reste à la charge des partenaires |
---|
309 | académiques. |
---|
310 | Ceci s'explique par l'historique du projet qui est né de l'initiative des |
---|
311 | partenaires académiques. |
---|