source: anr/section-etat-de-art.tex @ 382

Last change on this file since 382 was 382, checked in by coach, 13 years ago

ia: entree de donnees de Paul + Continental.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Revision HeadURL Id Date
File size: 15.7 KB
Line 
1% vim:set spell:
2% vim:spell spelllang=en:
3\anrdoc{\begin{itemize}
4\item Presenter un etat de l’art national et international, en dressant l’etat des
5      connaissances sur le sujet.
6\item Faire apparaître d’eventuelles contributions des partenaires de la proposition
7      de projet a cet etat de l’art.
8\item Faire apparaître d’eventuels resultats preliminaires.
9\item Inclure les references bibliographiques necessaires en annexe 7.1.
10\end{itemize}}
11
12%Our project covers several critical domains in system design in order
13%to achieve high performance computing. Starting from a high level description we aim
14%at generating automatically both hardware and software components of the system.
15
16\subsubsection{High Performance Computing}
17\label{soa:hpc}
18% Un marché bouffé par les archi GPGPU tel que le FERMI de NvidiaCUDA programming language
19The High-Performance Computing (HPC) world is composed of three main families of architectures:
20many-core, GPGPU (General Purpose computation on Graphics Unit Processing) and FPGA.
21Today, the first  two families are dominating the market by taking benefit
22of the strength and influence of mass-market leaders (Intel, Nvidia).
23%such as Intel for many-core CPU and Nvidia for GPGPU.
24In this market, FPGA architectures are emerging and very promising.
25By adapting architecture to the software, % (the opposite is done in the others families)
26FPGAs architectures enable better performance
27(typically an acceleration factor between 10 and 100)
28while using smaller size and less energy (and generating less heat).
29However, using FPGAs presents significant challenges~\cite{hpc06a}.
30First, the operating frequency of an FPGA is low compared to a high-end microprocessor.
31Second, % based on Amdahl law,
32 HPC/FPGA application performance is unusually sensitive
33to the implementation quality~\cite{hpc06b}.
34% Thus, the performance strongly relies on the detected parallelism.
35% (pour résumer les 2 derniers points)
36Finally, efficient design methodology are required in order to
37hide FPGA complexity and the underlying implantation subtleties to HPC users,
38so that they do not have to change their habits and can have equivalent design productivity
39than in others families~\cite{hpc07a}.
40
41%état de l'art FPGA
42HPC/FPGA hardware is only now emerging and in early commercial stages,
43but these techniques have not yet caught up.
44Industrial (Mitrionics~\cite{hpc08}, Gidel~\cite{hpc09}, Convey Computer~\cite{hpc10}) and academic (CHREC)
45researches on HPC-FPGA are mainly conducted in the USA.
46None of the approaches developed in these researches are fulfilling entirely the
47challenges described above. For example, Convey Computer proposes application-specific instruction
48set extension of x86 cores in an FPGA accelerator,
49but extension generation is not automated and requires hardware design skills.
50Mitrionics has an elegant solution based on a compute engine specifically
51developed for high-performance execution in FPGAs. Unfortunately, the design flow
52is based on a new programming language (mitrionC) implying important designer efforts and poor portability.
53% tool relying on operator libraries (XtremeData), 
54% Parle t-on de l'OPenFPGA consortium, dont le but est : "to accelerate the incorporation of reconfigurable computing technology in high-performance and enterprise applications" ?
55
56Thus, much effort is required to develop design tools that translate high level
57language programs to FPGA configurations.
58
59\subsubsection{System Synthesis}
60\label{soa:system:synthesis}
61Today, several solutions for system design are proposed and commercialized.
62The existing commercial or free tools do not
63cover the whole system synthesis process in a fully automatic way. Moreover,
64they are bound to a particular device family and to an IP library.
65The most commonly used are provided by \altera and \xilinx to promote their
66FPGA devices. These representative tools used to synthesize SoC on FPGA
67are introduced below.
68\\
69The \xilinx System Generator for DSP~\cite{system-generateur-for-dsp} is a
70plug-in to Simulink that enables designers to develop high-performance DSP
71systems for \xilinx FPGAs.
72Designers can specify and simulate a system using MATLAB and Simulink. The
73tool will then automatically generate synthesizable Hardware Description
74Language (HDL) code mapped to \xilinx pre-optimized algorithms.
75However, this tool targets only signal processing algorithms, \xilinx FPGAs and
76cannot handle a complete SoC. Thus, it is not really a system synthesis tool.
77\\
78In the opposite, SOPC Builder~\cite{spoc-builder} from \altera and \xilinx 
79Platform Studio XPS from \xilinx allow to describe a system, to synthesize it,
80to program it into a target FPGA and to upload a software application.
81Both SOPC Builder and XPS allow designers to select and parameterize components from
82an extensive drop-down list of IP cores (I/O core, DSP, processor,  bus core, ...)
83as well as to incorporate their own IP. Nevertheless, all the previously introduced tools
84do not provide any facilities to synthesize coprocessors and to simulate the platform
85at a high level (SystemC).
86A system designer must provide the synthesizable description of its own IP-cores
87interfaces it to the SoC bus.
88Design Space Exploration is thus limited and SystemC simulation is not possible
89either at transactional or at cycle accurate level.
90\\
91In addition, \xilinx System Generator, XPS and SOPC Builder are closed world
92since each one imposes their own IPs which are not interchangeable.
93Designers can then only generate a synthesized netlist, VHDL/Verilog simulation test
94bench and custom software library that reflect the hardware configuration.
95
96Consequently, a designer developing an embedded system needs to master four different
97design environments:
98\begin{enumerate}
99  \item a virtual prototyping environment (in SystemC) for system level exploration,
100  \item an architecture compiler to define the hardware architecture (Verilog/VHDL),
101  \item one or several third-party HLS tools for coprocessor synthesis (C to RTL),
102  \item and finally back-end synthesis tools for the bit-stream generation (RTL to bitstream).
103\end{enumerate}
104Furthermore, mixing these tools requires an important interfacing effort and this makes
105the design process very complex and achievable only by designers skilled in many domains.
106
107\subsubsection{High Level Synthesis}
108\label{soa:hls}
109High Level Synthesis translates a sequential algorithmic description and a
110set of constraints (area, power, frequency, ...) to a micro-architecture at
111Register Transfer Level (RTL).
112Several academic and commercial tools are today available. The most common
113tools are SPARK~\cite{spark04}, GAUT~\cite{gaut08}, UGH~\cite{ugh08} in the
114academic world and CATAPULTC~\cite{catapult-c}, PICO~\cite{pico} and
115CYNTHETIZER~\cite{cynthetizer} in the commercial world.  Despite their
116maturity, their usage is restrained by \cite{IEEEDT} \cite{CATRENE} \cite{HLSBOOK}:
117\begin{itemize}
118\item HLS tools are not integrated into an architecture and system exploration tool.
119Thus, a designer who needs to accelerate a software part of the system, must adapt it manually
120to the HLS input dialect and perform engineering work to exploit the synthesis result
121at the system level,
122\item Current HLS tools cannot target control AND data oriented applications,
123\item HLS tools take into account mainly a unique constraint while realistic design
124is multi-constrained.
125The power consumption constraint which is mandatory for embedded systems is not yet
126well handled or not handled at all by the HLS tools already available,
127\item The parallelism is limited to that present in the initial specification.
128To get more parallelism or to reduce the amount of required memory in the SoC, the user
129must re-write the algorithmic specification while there are techniques such as polyhedral
130transformations that can automate this process.
131\item While they support limited loop transformations like loop unrolling and loop
132pipelining, current HLS tools do not provide support for design space exploration, either
133through automatic loop transformations or for improving the memory mapping,
134\item Despite having the same input language (C/C++), they are sensitive to the style in
135which the algorithm is written. Consequently, engineering work is required to swap from
136a tool to another,
137\item They do not respect accurately the frequency constraint when they target an FPGA device.
138Their error is about 10 percent. This is annoying when the generated component is integrated
139in a SoC since it will slow down the whole system.
140\end{itemize}
141Regarding these limitations, it is necessary to create a new tool generation reducing the gap
142between the specification of an heterogeneous system and its hardware implementation \cite{HLSBOOK} \cite{IEEEDT}.
143
144\subsubsection{Application Specific Instruction Processors}
145\label{soa:asip}
146ASIP (Application-Specific Instruction-Set Processor) are programmable
147processors in which both the instruction set and the micro architecture have
148been tailored to a given application domain or to a
149specific application.  This specialization usually offers a good compromise
150between performance (w.r.t a pure software implementation on an embedded
151CPU) and flexibility (w.r.t an application specific hardware co-processor).
152In spite of their obvious advantages, using/designing ASIPs remains a
153difficult task, since it involves designing both a micro-architecture and a
154compiler for this architecture. Besides, to our knowledge, there is still
155no available open-source design flow for ASIP design even if such a tool
156 would be valuable in the
157context of a System Level design exploration tool.
158\par
159In this context, ASIP design based on Instruction Set Extensions (ISEs) has
160received a lot of interest~\cite{NIOS2}, as it makes micro-architecture synthesis
161more tractable \footnote{ISEs rely on a template micro-architecture in which
162only a small fraction of the architecture has to be specialized}, and help ASIP
163designers to focus on compilers, for which there are still many open
164problems\cite{ARC08}.
165This approach however has a severe weakness, since it also significantly reduces
166opportunities for achieving good speedups (most speedups remain between 1.5x and
1672.5x), since ISEs performance is generally limited by I/O constraints as
168they generally rely on the main CPU register file to access data.
169
170% (
171%automaticcaly extraction ISE candidates for application code \cite{CODES04},
172%performing efficient instruction selection and/or storage resource (register)
173%allocation \cite{FPGA08}). 
174To cope with this issue, recent approaches~\cite{DAC09,CODES08,TVLSI06} advocate the use of
175micro-architectural ISE models in which the coupling between the processor micro-architecture
176and the ISE component is tightened up so as to allow the ISE to overcome the register
177I/O limitations. However these approaches generally tackle the problem from a compiler/simulation
178point of view and do not address the problem of generating synthesizable representations for
179these models.
180
181We therefore strongly believe that there is a need for an open-framework which
182would allow researchers and system designers to :
183\begin{itemize}
184\item Explore the various level of interactions between the original CPU micro-architecture
185and its extension (for example through a Domain Specific Language targeted at micro-architecture
186specification and synthesis).
187\item Retarget the compiler instruction-selection pass
188(or prototype new passes) so as to be able to take advantage of this ISEs.
189\item Provide  a complete System-level Integration for using ASIP as SoC building blocks
190(integration with application specific blocks, MPSoc, etc.)
191\end{itemize}
192
193\subsubsection{Automatic Parallelization}
194\label{soa:automatic:parallelization}
195The problem of compiling sequential programs for parallel computers
196has been studied since the advent of the first parallel architectures
197in the 1970s. The basic approach consists in applying program transformations
198which exhibit or increase the potential parallelism, while guaranteeing
199the preservation of the program semantics. Most of these transformations
200just reorder the operations of the program; some of them modify its
201data structures. Dependences (exact or conservative) are checked to guarantee
202the legality of the transformation.
203
204This has lead to the invention of many loop transformations (loop fusion,
205loop splitting, loop skewing, loop interchange, loop unrolling, ...)
206which interact in a complicated way. More recently, it has been noticed
207that all of these are just changes of basis in the iteration domain of
208the program. This has lead to the introduction of the polyhedral model
209\cite{FP:96,DRV:2000}, in which the combination of two transformations is
210simply a matrix product.
211
212Since hardware is inherently parallel, finding parallelism in sequential
213programs in an important prerequisite for HLS. The large FPGA chips of
214today can accommodate much more parallelism than is available in basic blocks.
215The polyhedral model is the ideal tool for finding more parallelism in
216loops.
217
218As a side effect, it has been observed that the polyhedral model is a useful
219tool for many other optimization, like memory reduction and locality
220improvement. It should be noted
221that the polyhedral model \emph{stricto sensu} applies only to
222very regular programs. Its extension to more general programs is
223an active research subject.
224
225\subsubsection{SoC design flow automation using IP-XACT}
226\label{soa:ip-xact}
227% EV: Industrial IP integration flows based on IP-XACT standards: \cite{mds1}\\
228% EV: SPIRIT IP-XACT Controlled ESL Design Tool Applied to a Network-on-Chip Platform: \cite{mds2}\\
229% EV: SocKET design flow and Application on industrial use cases: \cite{socketflow}\\
230% IA: http://www.design-reuse.com/articles/19895/ip-xact-xml.html \cite{dandr}\\
231IP-XACT is an XML based open standard defined by the Accellera consortium.
232This non-profit organisation provides a unified set of high quality IP-XACT
233specifications for documenting IP using meta-data. This meta-data will be
234used for configuring, integrating, and verifying IP in advanced SoC design
235and interfacing tools using TGI (Tight Generator Interface is a software API)
236that can be used to access design meta-data descriptions of complete system designs.
237The specification for the schema is tailored to the requirements of the industry,
238and focused on enabling technologies for the efficient design of electronic
239systems from concept to production. The last IEEE 1685 release of IP-XACT incorporates
240both RTL and TLM (transaction level modelling) capabilities. Thus it can be used to
241package IP portfolios~\cite{dandr} and describe their assembly in complex hardware architectures.~\cite{mds1}~\cite{mds2} 
242These description files are the basis for tool interoperability and data exchange
243through a common structured data management\cite{socketflow}. Today more than two hundred companies
244are members of the consortium and the board is incorporating top actors
245(STM, NXP, TI, ARM, FREESCALE, LSI, Mentor, Synopsys and Cadence), ensuring the
246wide adoption by industry. Initiatives have already
247attempted to extend this standard
248to the AMS IPs packaging domain (MEDEA+ Beyond Dreams Project) and to Hardware Dependent
249Software layers (MEDEA+ SoftSoc project) and Accellera is reusing these results for
250further releases.
251\parlf
252In IP-XACT the flow automation and data consistency is ensured by generators, which
253are program modules that process IP-XACT XML data into something useful
254for the design. They are key portable mechanism for encapsulating specialist design
255knowledge and enable designers to deploy specialist knowledge in their design. It is
256always possible to create generators in order to link several design or analysis tools
257around a centric representation of meta-data in IP-XACT. This kind of XML schema for
258meta-data management is a good solution for the federation of heterogeneous design domains
259(models, tools, languages, methodologies, etc.).
260
Note: See TracBrowser for help on using the repository browser.