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