[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} |
---|
[329] | 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 |
---|
[324] | 51 | intéressant de voir ce que de tel IP peuvent apporter au monde de la conception de systÚmes embarqués. |
---|
[310] | 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 à |
---|
[316] | 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. |
---|
[310] | 57 | A l'opposé, dans COACH l'architecture matérielle est simple et quasiment fixée. |
---|
[316] | 58 | Le moyen d'accélération est le parallélisme à grain trÚs fin généré au sein |
---|
[310] | 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 |
---|
[317] | 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. |
---|
[310] | 64 | \item[Point 3 (\textit{lien entre HPC et SoC embarqué})]\mbox{} |
---|
| 65 | \\ %\note{X.1} |
---|
[324] | 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}).\\ |
---|
[310] | 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, |
---|
[324] | 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 |
---|
[310] | 77 | sur la figure~\ref{archi-hpc} (page~\pageref{archi-hpc}). |
---|
[324] | 78 | La façon dont l'application accélérée est générée fait l'objet de la |
---|
[310] | 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} |
---|
[324] | 84 | Dans l'état de l'art, nous nous sommes concentrés d'une part sur les outils |
---|
[310] | 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{}\\ |
---|
[324] | 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. |
---|
[310] | 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 |
---|
[324] | 135 | des briques existantes pour la plupart de ses composants et sur les |
---|
[310] | 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 |
---|
[320] | 139 | sur les trois plateformes cibles. |
---|
[310] | 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 |
---|
[324] | 146 | le standard IEEE 1685 IP-XACT (livrable \NOVERScsgImplementation), |
---|
[310] | 147 | d'une part en entrée pour faciliter la configuration de COACH sur d'autre plateforme |
---|
[324] | 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. |
---|
[310] | 150 | Les livrables {\NOVERStrtSpearde} et {\NOVERSmdsAppSpecification} démontrent cette |
---|
| 151 | possibilité. |
---|
[324] | 152 | \item[Utilisation de RTOS non industriels]\mbox{}\\ |
---|
| 153 | L'OS bien qu'indispensable n'est pas une piÚce maitresse du projet. |
---|
[310] | 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{}\\ |
---|
[324] | 163 | Xilinx ne fait plus partie du consortium. |
---|
[310] | 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{}\\ |
---|
[324] | 176 | Les experts n'ont pas précisé leurs pensées. Néanmoins, la répartition financiÚre a été complÚtement revue. |
---|
| 177 | |
---|
[310] | 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} |
---|
[324] | 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 | |
---|
[310] | 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} |
---|
[324] | 214 | Par rapport au projet 2010, nous avons réduit la surface du projet de 20\% en nous |
---|
[310] | 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 |
---|
[324] | 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. |
---|
[310] | 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 |
---|
[324] | 235 | différents patrons architecturaux de façon exacte, 2) d'implanter le |
---|
[310] | 236 | composant de communication (MWMR) pour les patrons architecturaux XILINX et ALTERA. |
---|
| 237 | Ces choix conduisaient à 4 implantations du composants de communication |
---|
[311] | 238 | (MWMR) (1 VHDL MWMR/\xilinxbus, 1 VHDL MWMR/AVALON, 1 SystemC |
---|
| 239 | MWMR/\xilinxbus et |
---|
[310] | 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 |
---|
[311] | 243 | utilisera les ponts VCI/\xilinxbus et VCI/AVALON qui sont nécessaires au HPC et |
---|
[310] | 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 |
---|
[324] | 256 | supporter la génération matérielle des architectures (VHDL synthétisable). |
---|
[310] | 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. |
---|
[324] | 261 | Ce n'est pas, et de loin, le plus irremplaçable, les modÚles VHDL du patron |
---|
[310] | 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: |
---|
[324] | 269 | \og faut il financer COACH pour donner une chance à SoCLib? {\fg} |
---|
[310] | 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 |
---|
[311] | 276 | SoCLib. Le projet prévoit le développement de pont VCI/AVALON et VCI/\xilinxbus ce qui |
---|
[324] | 277 | permettra l'utilisation des IP de XILINX et ALTERA dans le patron architectural |
---|
[310] | 278 | neutre. |
---|
| 279 | % |
---|
| 280 | \subsubsection{Pérennité/dissémination du projet} |
---|
| 281 | \label{perennite+dissemination} |
---|
[329] | 282 | |
---|
| 283 | |
---|
[310] | 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. |
---|