Commit 4dfca2c81adc4a2b8480d3d34f4a3b299f65260e

Authored by Arthur HUGEAT
1 parent c17cf5a2e6
Exists in master

merge jmf + ajout discours sur le choix des coeff et sur le modéle utilisé.

Showing 1 changed file with 148 additions and 118 deletions Inline Diff

ifcs2018_proceeding.tex
\documentclass[a4paper,conference]{IEEEtran/IEEEtran} 1 1 \documentclass[a4paper,conference]{IEEEtran/IEEEtran}
\usepackage{graphicx,color,hyperref} 2 2 \usepackage{graphicx,color,hyperref}
\usepackage{amsfonts} 3 3 \usepackage{amsfonts}
\usepackage{amsthm} 4 4 \usepackage{amsthm}
\usepackage{amssymb} 5 5 \usepackage{amssymb}
\usepackage{amsmath} 6 6 \usepackage{amsmath}
\usepackage{url} 7 7 \usepackage{url}
\usepackage[normalem]{ulem} 8 8 \usepackage[normalem]{ulem}
\graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} 9 9 \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}}
% correct bad hyphenation here 10 10 % correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor} 11 11 \hyphenation{op-tical net-works semi-conduc-tor}
\textheight=26cm 12 12 \textheight=26cm
\setlength{\footskip}{30pt} 13 13 \setlength{\footskip}{30pt}
\pagenumbering{gobble} 14 14 \pagenumbering{gobble}
\begin{document} 15 15 \begin{document}
\title{Filter optimization for real time digital processing of radiofrequency signals: application 16 16 \title{Filter optimization for real time digital processing of radiofrequency signals: application
to oscillator metrology} 17 17 to oscillator metrology}
18 18
\author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, 19 19 \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2},
G. Goavec-M\'erou\IEEEauthorrefmark{1}, 20 20 G. Goavec-M\'erou\IEEEauthorrefmark{1},
P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M. Friedt\IEEEauthorrefmark{1}} 21 21 P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M. Friedt\IEEEauthorrefmark{1}}
\IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } 22 22 \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France }
\IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ 23 23 \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\
Email: \{pyb2,jmfriedt\}@femto-st.fr} 24 24 Email: \{pyb2,jmfriedt\}@femto-st.fr}
} 25 25 }
\maketitle 26 26 \maketitle
\thispagestyle{plain} 27 27 \thispagestyle{plain}
\pagestyle{plain} 28 28 \pagestyle{plain}
\newtheorem{definition}{Definition} 29 29 \newtheorem{definition}{Definition}
30 30
\begin{abstract} 31 31 \begin{abstract}
Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to 32 32 Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to
radiofrequency signal processing. Applied to oscillator characterization in the context 33 33 radiofrequency signal processing. Applied to oscillator characterization in the context
of ultrastable clocks, stringent filtering requirements are defined by spurious signal or 34 34 of ultrastable clocks, stringent filtering requirements are defined by spurious signal or
noise rejection needs. Since real time radiofrequency processing must be performed in a 35 35 noise rejection needs. Since real time radiofrequency processing must be performed in a
Field Programmable Array to meet timing constraints, we investigate optimization strategies 36 36 Field Programmable Array to meet timing constraints, we investigate optimization strategies
to design filters meeting rejection characteristics while limiting the hardware resources 37 37 to design filters meeting rejection characteristics while limiting the hardware resources
required and keeping timing constraints within the targeted measurement bandwidths. 38 38 required and keeping timing constraints within the targeted measurement bandwidths.
\end{abstract} 39 39 \end{abstract}
40 40
\begin{IEEEkeywords} 41 41 \begin{IEEEkeywords}
Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter 42 42 Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter
\end{IEEEkeywords} 43 43 \end{IEEEkeywords}
44 44
\section{Digital signal processing of ultrastable clock signals} 45 45 \section{Digital signal processing of ultrastable clock signals}
46 46
Analog oscillator phase noise characteristics are classically performed by downconverting 47 47 Analog oscillator phase noise characteristics are classically performed by downconverting
the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, 48 48 the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband,
followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In 49 49 followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In
a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by 50 50 a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by
multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. 51 51 multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}.
52 52
\begin{figure}[h!tb] 53 53 \begin{figure}[h!tb]
\begin{center} 54 54 \begin{center}
\includegraphics[width=.8\linewidth]{images/schema} 55 55 \includegraphics[width=.8\linewidth]{images/schema}
\end{center} 56 56 \end{center}
\caption{Fully digital oscillator phase noise characterization: the Device Under Test 57 57 \caption{Fully digital oscillator phase noise characterization: the Device Under Test
(DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and 58 58 (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and
downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals 59 59 downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals
and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite 60 60 and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite
Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays 61 61 Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays
the spectral characteristics of the phase fluctuations.} 62 62 the spectral characteristics of the phase fluctuations.}
\label{schema} 63 63 \label{schema}
\end{figure} 64 64 \end{figure}
65 65
As with the analog mixer, 66 66 As with the analog mixer,
the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as 67 67 the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as
well as the generation of the frequency sum signal in addition to the frequency difference. 68 68 well as the generation of the frequency sum signal in addition to the frequency difference.
These unwanted spectral characteristics must be rejected before decimating the data stream 69 69 These unwanted spectral characteristics must be rejected before decimating the data stream
for the phase noise spectral characterization. The characteristics introduced between the 70 70 for the phase noise spectral characterization. The characteristics introduced between the
downconverter 71 71 downconverter
and the decimation processing blocks are core characteristics of an oscillator characterization 72 72 and the decimation processing blocks are core characteristics of an oscillator characterization
system, and must reject out-of-band signals below the targeted phase noise -- typically in the 73 73 system, and must reject out-of-band signals below the targeted phase noise -- typically in the
sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will 74 74 sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will
use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency 75 75 use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency
datastream: optimizing the performance of the filter while reducing the needed resources is 76 76 datastream: optimizing the performance of the filter while reducing the needed resources is
hence tackled in a systematic approach using optimization techniques. Most significantly, we 77 77 hence tackled in a systematic approach using optimization techniques. Most significantly, we
tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with 78 78 tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with
tunable number of coefficients and tunable number of bits representing the coefficients and the 79 79 tunable number of coefficients and tunable number of bits representing the coefficients and the
data being processed. 80 80 data being processed.
81 81
\section{Finite impulse response filter} 82 82 \section{Finite impulse response filter}
83 83
We select FIR filter for their unconditional stability and ease of design. A FIR filter is defined 84 84 We select FIR filter for their unconditional stability and ease of design. A FIR filter is defined
by a set of weights $b_k$ applied to the inputs $x_k$ through a convolution to generate the 85 85 by a set of weights $b_k$ applied to the inputs $x_k$ through a convolution to generate the
outputs $y_k$ 86 86 outputs $y_k$
$$y_n=\sum_{k=0}^N b_k x_{n-k}$$ 87 87 $$y_n=\sum_{k=0}^N b_k x_{n-k}$$
88 88
As opposed to an implementation on a general purpose processor in which word size is defined by the 89 89 As opposed to an implementation on a general purpose processor in which word size is defined by the
processor architecture, implementing such a filter on an FPGA offer more degrees of freedom since 90 90 processor architecture, implementing such a filter on an FPGA offer more degrees of freedom since
not only the coefficient values and number of taps must be defined, but also the number of bits 91 91 not only the coefficient values and number of taps must be defined, but also the number of bits
defining the coefficients and the sample size. For this reason, and because we consider pipeline 92 92 defining the coefficients and the sample size. For this reason, and because we consider pipeline
processing (as opposed to First-In, First-Out memory batch processing) of radiofrequency 93 93 processing (as opposed to First-In, First-Out memory batch processing) of radiofrequency
signals, High Level Synthesis (HLS) languages \cite{kasbah2008multigrid} are not considered but 94 94 signals, High Level Synthesis (HLS) languages \cite{kasbah2008multigrid} are not considered but
the problem is tackled at the Very-high-speed-integrated-circuit Hardware Description Language (VHDL). 95 95 the problem is tackled at the Very-high-speed-integrated-circuit Hardware Description Language (VHDL).
Since latency is not an issue in a openloop phase noise characterization instrument, the large 96 96 Since latency is not an issue in a openloop phase noise characterization instrument, the large
numbre of taps in the FIR, as opposed to the shorter Infinite Impulse Response (IIR) filter, 97 97 numbre of taps in the FIR, as opposed to the shorter Infinite Impulse Response (IIR) filter,
is not considered as an issue as would be in a closed loop system. 98 98 is not considered as an issue as would be in a closed loop system.
99 99
The coefficients are classically expressed as floating point values. However, this binary 100 100 The coefficients are classically expressed as floating point values. However, this binary
number representation is not efficient for fast arithmetic computation by an FPGA. Instead, 101 101 number representation is not efficient for fast arithmetic computation by an FPGA. Instead,
we select to quantify these floating point values into integer values. This quantization 102 102 we select to quantify these floating point values into integer values. This quantization
will result in some precision loss. 103 103 will result in some precision loss.
104 104
%As illustrated in Fig. \ref{float_vs_int}, we see that we aren't 105 105 %As illustrated in Fig. \ref{float_vs_int}, we see that we aren't
%need too coefficients or too sample size. If we have lot of coefficients but a small sample size, 106 106 %need too coefficients or too sample size. If we have lot of coefficients but a small sample size,
%the first and last are equal to zero. But if we have too sample size for few coefficients that not improve the quality. 107 107 %the first and last are equal to zero. But if we have too sample size for few coefficients that not improve the quality.
108 108
% JMF je ne comprends pas la derniere phrase ci-dessus ni la figure ci dessous 109 109 % JMF je ne comprends pas la derniere phrase ci-dessus ni la figure ci dessous
110 % AH en gros je voulais dire que prendre trop peu de bit avec trop de coeff, ça induit ta figure (bien mieux faite que moi)
111 % et que l'inverse trop de bit sur pas assez de coeff on ne gagne rien, je vais essayer de la reformuler
112
%\begin{figure}[h!tb] 110 113 %\begin{figure}[h!tb]
%\includegraphics[width=\linewidth]{images/float-vs-integer.pdf} 111 114 %\includegraphics[width=\linewidth]{images/float-vs-integer.pdf}
%\caption{Impact of the quantization resolution of the coefficients} 112 115 %\caption{Impact of the quantization resolution of the coefficients}
%\label{float_vs_int} 113 116 %\label{float_vs_int}
%\end{figure} 114 117 %\end{figure}
115 118
The tradeoff between quantization resolution and number of coefficients when considering 116 119 The tradeoff between quantization resolution and number of coefficients when considering
integer operations is not trivial. As an illustration of the issue related to the 117 120 integer operations is not trivial. As an illustration of the issue related to the
relation between number of fiter taps and quantization, Fig. \ref{float_vs_int} exhibits 118 121 relation between number of fiter taps and quantization, Fig. \ref{float_vs_int} exhibits
a 128-coefficient FIR bandpass filter designed using floating point numbers (blue). Upon 119 122 a 128-coefficient FIR bandpass filter designed using floating point numbers (blue). Upon
quantization on 6~bit integers, 60 of the 128~coefficients in the beginning and end of the 120 123 quantization on 6~bit integers, 60 of the 128~coefficients in the beginning and end of the
taps become null, making the large number of coefficients irrelevant and allowing to save 121 124 taps become null, making the large number of coefficients irrelevant and allowing to save
processing resource by shrinking the filter length. This tradeoff aimed at minimizing resources 122 125 processing resource by shrinking the filter length. This tradeoff aimed at minimizing resources
to reach a given rejection level, or maximizing out of band rejection for a given computational 123 126 to reach a given rejection level, or maximizing out of band rejection for a given computational
resource, will drive the investigation on cascading filters designed with varying tap resolution 124 127 resource, will drive the investigation on cascading filters designed with varying tap resolution
and tap length, as will be shown in the next section. 125 128 and tap length, as will be shown in the next section.
126 129
\begin{figure}[h!tb] 127 130 \begin{figure}[h!tb]
\includegraphics[width=\linewidth]{images/demo_filtre} 128 131 \includegraphics[width=\linewidth]{images/demo_filtre}
\caption{Impact of the quantization resolution of the coefficients: the quantization is 129 132 \caption{Impact of the quantization resolution of the coefficients: the quantization is
set to 6~bits, setting the 30~first and 30~last coefficients out of the initial 128~band-pass 130 133 set to 6~bits, setting the 30~first and 30~last coefficients out of the initial 128~band-pass
filter coefficients to 0.} 131 134 filter coefficients to 0.}
\label{float_vs_int} 132 135 \label{float_vs_int}
\end{figure} 133 136 \end{figure}
134 137
\section{Filter optimization} 135 138 \section{Filter optimization}
136 139
A basic approach for implementing the FIR filter is to compute the transfer function of 137 140 A basic approach for implementing the FIR filter is to compute the transfer function of
a monolithic filter: this single filter defines all coefficients with the same resolution 138 141 a monolithic filter: this single filter defines all coefficients with the same resolution
(number of bits) and processes data represented with their own resolution. Meeting the 139 142 (number of bits) and processes data represented with their own resolution. Meeting the
filter shape requires a large number of coefficients, limited by resources of the FPGA since 140 143 filter shape requires a large number of coefficients, limited by resources of the FPGA since
this filter must process data stream at the radiofrequency sampling rate after the mixer. 141 144 this filter must process data stream at the radiofrequency sampling rate after the mixer.
142 145
An optimization problem \cite{leung2004handbook} aims at improving one or many 143 146 An optimization problem \cite{leung2004handbook} aims at improving one or many
performance criteria within a constrained resource environment. Amongst the tools 144 147 performance criteria within a constrained resource environment. Amongst the tools
developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to 145 148 developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to
provide a formal definition of the stated problem and search for an optimal use of available 146 149 provide a formal definition of the stated problem and search for an optimal use of available
resources \cite{yu2007design, kodek1980design}. 147 150 resources \cite{yu2007design, kodek1980design}.
148 151
The degrees of freedom when addressing the problem of replacing the single monolithic 149 152 The degrees of freedom when addressing the problem of replacing the single monolithic
FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, 150 153 FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$,
the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing 151 154 the number of bits $C_i$ representing the coefficients and the number of bits $D_i$ representing
the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, 152 155 the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage,
the optimization of the complete processing chain within a constrained resource environment is not 153 156 the optimization of the complete processing chain within a constrained resource environment is not
trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is 154 157 trivial. The resource occupation of a FIR filter is considered as $D_i+C_i \times N_i)$ which is
the number of bits needed in a worst case condition to represent the output of the FIR. 155 158 the number of bits needed in a worst case condition to represent the output of the FIR.
159 Unfortunately this representation is not sufficient to represent the real occupation inside FPGA.
160 In fact the FPGA have some BRAM block on which the coefficients are stored and each BRAM are not
161 share between different filters. Moreover the multiplication need Digital Signal Processor to be
162 perform. Those DSP are in limited quantity so in the future we shall to consider this.
156 163
164 At the moment our model can be express like this :
165 \begin{align}
166 \begin{cases}
167 \mathcal{R}_i &= \mathcal{F}(N_i, C_i)\\
168 \mathcal{A}_i &= N_i * C_i + D_i\\
169 \Delta_i &= \Delta _{i-1} + \mathcal{P}_i
170 \end{cases}
171 \label{model-FIR}
172 \end{align}
173 To explain the system \ref{model-FIR}, $\mathcal{R}_i$ represent the rejection of depending on $N_i$ and $C_i$, $\mathcal{A}$
174 is just theoretical occupation and $\Delta_i$ is the total rejection for the current stage $i$. At this moment
175 we are not able to express the function $\mathcal{F}$ so we are run some simulations to determine the rejection noise depending
176 on $N_i$ and $C_i$. But to choose the right filter we must define clearly the rejection criterion. If we take incorrect criterion
177 the linear program will produce a wrong solution. So we define a criterion to avoid ripple on baseband and just keep
178 the maximum of rejection (see the figure \ref{rejection-shape}). Thank to this system, we can able to design our linear program.
179
\begin{figure}[h!tb] 157 180 \begin{figure}[h!tb]
181 \begin{center}
182 \includegraphics[width=.5\linewidth]{schema2}
183 \caption{Shape of rejection}
184 \label{rejection-shape}
185 \end{center}
186 \end{figure}
187
188 \begin{figure}[h!tb]
\includegraphics[width=\linewidth]{images/noise-rejection.pdf} 158 189 \includegraphics[width=\linewidth]{images/noise-rejection.pdf}
\caption{Rejection as a function of number of coefficients and number of bits} 159 190 \caption{Rejection as a function of number of coefficients and number of bits}
\label{noise-rejection} 160 191 \label{noise-rejection}
\end{figure} 161 192 \end{figure}
162 193
The objective function maximizes the noise rejection while keeping resource occupation below 163 194 The objective function maximizes the noise rejection ($\max(\Delta_{i_{\max}})$) while keeping resource occupation below
a user-defined threshold. The MILP solver is allowed to choose the number of successive 164 195 a user-defined threshold. The MILP solver is allowed to choose the number of successive
filters, within an upper bound. The last problem is to model the noise rejection. Since filter 165 196 filters, within an upper bound. The last problem is to model the noise rejection. Since filter
noise rejection capability is not modeled with linear equation, a look-up-table is generated 166 197 noise rejection capability is not modeled with linear equation, a look-up-table is generated
for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each 167 198 for multiple filter configurations in which the $C_i$, $D_i$ and $N_i$ parameters are varied: for each
one of these conditions, the low-pass filter rejection defined as the mean power between 168 199 one of these conditions, the low-pass filter rejection defined as the mean power between
half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response 169 200 half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response
of the digital filter (Fig. \ref{noise-rejection}). 170 201 of the digital filter (Fig. \ref{noise-rejection}).
171 202
Linear program formalism for solving the problem is well documented: an objective function is 172 203 Linear program formalism for solving the problem is well documented: an objective function is
defined which is linearly dependent on the parameters to be optimized. Constraints are expressed 173 204 defined which is linearly dependent on the parameters to be optimized. Constraints are expressed
as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. 174 205 as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}.
175 206
The MILP solver provides a solution to the problem by selecting a series of small FIR with 176 207 The MILP solver provides a solution to the problem by selecting a series of small FIR with
increasing number of bits representing data and coefficients as well as an increasing number 177 208 increasing number of bits representing data and coefficients as well as an increasing number
of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the 178 209 of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the
performance comparison between one solution and a monolithic FIR when selecting a cutoff 179 210 performance comparison between one solution and a monolithic FIR when selecting a cutoff
frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the 180 211 frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the
same space usage are provided as selected by the MILP solver. The FIR cascade provides improved 181 212 same space usage are provided as selected by the MILP solver. The FIR cascade provides improved
rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to 182 213 rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to
be tuned or compensated for. 183 214 be tuned or compensated for.
184 215
\begin{figure}[h!tb] 185 216 \begin{figure}[h!tb]
% \includegraphics[width=\linewidth]{images/compare-fir.pdf} 186 217 % \includegraphics[width=\linewidth]{images/compare-fir.pdf}
\includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} 187 218 \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf}
\caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR 188 219 \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR
with a cutoff frequency set at half the Nyquist frequency.} 189 220 with a cutoff frequency set at half the Nyquist frequency.}
\label{compare-fir} 190 221 \label{compare-fir}
\end{figure} 191 222 \end{figure}
192 223
The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. 193 224 The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}.
194 225
\begin{table}[h!tb] 195 226 \begin{table}[h!tb]
\caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade 196 227 \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade
identified as optimal by the MILP solver within a finite resource criterion. The last line refers 197 228 identified as optimal by the MILP solver within a finite resource criterion. The last line refers
to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean 198 229 to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean
value from 0.6 to 1 Nyquist frequency.} 199 230 value from 0.6 to 1 Nyquist frequency.}
\begin{center} 200 231 \begin{center}
\begin{tabular}{|c|cccc|}\hline 201 232 \begin{tabular}{|c|cccc|}\hline
FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline 202 233 FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline
1 (monolithic) & 1 & 4064 & 40 & -72 \\ 203 234 1 (monolithic) & 1 & 4064 & 40 & -72 \\
5 & 5 & 12332 & 0 & -217 \\ 204 235 5 & 5 & 12332 & 0 & -217 \\
10 & 10 & 12717 & 0 & -251 \\\hline\hline 205 236 10 & 10 & 12717 & 0 & -251 \\\hline\hline
Zynq 7010 & 60 & 17600 & 80 & \\\hline 206 237 Zynq 7010 & 60 & 17600 & 80 & \\\hline
\end{tabular} 207 238 \end{tabular}
\end{center} 208 239 \end{center}
%\vspace{-0.7cm} 209 240 %\vspace{-0.7cm}
\label{t1} 210 241 \label{t1}
\end{table} 211 242 \end{table}
212 243
\section{Filter coefficient selection} 213 244 \section{Filter coefficient selection}
214 245
The coefficients of a single monolithic filter are computed as the impulse response 215 246 The coefficients of a single monolithic filter are computed as the impulse response
of the filter transfer function, and practically approximated by a multitude of methods 216 247 of the filter transfer function, and practically approximated by a multitude of methods
including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing 217 248 including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing
(Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by 218 249 (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by
selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} 219 250 selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2}
illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better 220 251 illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better
rejection than {\tt firls}: since the linear solver increases the number of coefficients along 221 252 rejection than {\tt firls}: since the linear solver increases the number of coefficients along
the processing chain, the type of selected filter also changes depending on the number of coefficients 222 253 the processing chain, the type of selected filter also changes depending on the number of coefficients
and evolves along the processing chain. 223 254 and evolves along the processing chain.
224 255
\begin{figure}[h!tb] 225 256 \begin{figure}[h!tb]
\includegraphics[width=\linewidth]{images/fir1-vs-firls} 226 257 \includegraphics[width=\linewidth]{images/fir1-vs-firls}
\caption{Evolution of the rejection capability of least-square optimized filters and Hamming 227 258 \caption{Evolution of the rejection capability of least-square optimized filters and Hamming
FIR filters as a function of the number of coefficients, for floating point numbers and 8-bit 228 259 FIR filters as a function of the number of coefficients, for floating point numbers and 8-bit
encoded integers.} 229 260 encoded integers.}
\label{2} 230 261 \label{2}
\end{figure} 231 262 \end{figure}
232 263
\section{Conclusion} 233 264 \section{Conclusion}
234 265
We address the optimization problem of designing a low-pass filter chain in a Field Programmable Gate 235 266 We address the optimization problem of designing a low-pass filter chain in a Field Programmable Gate
Array for improved noise rejection within constrained resource occupation, as needed for 236 267 Array for improved noise rejection within constrained resource occupation, as needed for
real time processing of radiofrequency signal when characterizing spectral phase noise 237 268 real time processing of radiofrequency signal when characterizing spectral phase noise
characteristics of stable oscillators. The flexibility of the digital approach makes the result 238 269 characteristics of stable oscillators. The flexibility of the digital approach makes the result
best suited for closing the loop and using the measurement output in a feedback loop for 239 270 best suited for closing the loop and using the measurement output in a feedback loop for
controlling clocks, e.g. in a quartz-stabilized high performance clock whose long term behavior 240 271 controlling clocks, e.g. in a quartz-stabilized high performance clock whose long term behavior
is controlled by non-piezoelectric resonator (sapphire resonator, microwave or optical 241 272 is controlled by non-piezoelectric resonator (sapphire resonator, microwave or optical
atomic transition). 242 273 atomic transition).
243 274
\section*{Acknowledgement} 244 275 \section*{Acknowledgement}
245 276
This work is supported by the ANR Programme d'Investissement d'Avenir in 246 277 This work is supported by the ANR Programme d'Investissement d'Avenir in
progress at the Time and Frequency Departments of the FEMTO-ST Institute 247 278 progress at the Time and Frequency Departments of the FEMTO-ST Institute
(Oscillator IMP, First-TF and Refimeve+), and by R\'egion de Franche-Comt\'e. 248 279 (Oscillator IMP, First-TF and Refimeve+), and by R\'egion de Franche-Comt\'e.
The authors would like to thank E. Rubiola, F. Vernotte, G. Cabodevila for support and 249 280 The authors would like to thank E. Rubiola, F. Vernotte, G. Cabodevila for support and
fruitful discussions. 250 281 fruitful discussions.
251 282
252 283
XXX 253 284 XXX
254 285
\subsubsection{Contraintes} 255 286 \subsubsection{Contraintes}
256 287
Dans les r\'ef\'erences \cite{zhuo2007scalable, olariu1993computing, pan1999improved}, les auteurs 257 288 Dans les r\'ef\'erences \cite{zhuo2007scalable, olariu1993computing, pan1999improved}, les auteurs
proposent tous des optimisations hardware uniquement. Cependant ces articles sont focalis\'es sur des optimisations mat\'erielles 258 289 proposent tous des optimisations hardware uniquement. Cependant ces articles sont focalis\'es sur des optimisations mat\'erielles
or notre objectif est de trouver une formalisation math\'ematique d'un FPGA. 259 290 or notre objectif est de trouver une formalisation math\'ematique d'un FPGA.
260 291
Une dernière approche que nous avons \'etudi\'ee est l'utilisation de \emph{skeletons}. D. Crookes et A. Benkrid 261 292 Une dernière approche que nous avons \'etudi\'ee est l'utilisation de \emph{skeletons}. D. Crookes et A. Benkrid
ont beaucoup parl\'e de cette m\'ethode dans leur articles \cite{crookes1998environment, crookes2000design, benkrid2002towards}. 262 293 ont beaucoup parl\'e de cette m\'ethode dans leur articles \cite{crookes1998environment, crookes2000design, benkrid2002towards}.
L'id\'ee essentielle est qu'ils r\'ealisent des composants très optimis\'es et param\'etrables. Ainsi lorsqu'ils 263 294 L'id\'ee essentielle est qu'ils r\'ealisent des composants très optimis\'es et param\'etrables. Ainsi lorsqu'ils
veulent faire un d\'eveloppement, ils utilisent les blocs d\'ejà faits. 264 295 veulent faire un d\'eveloppement, ils utilisent les blocs d\'ejà faits.
265 296
Ces blocs repr\'esentent une \'etape de calcul (une d\'ecimation, un filtrage, une modulation, une 266 297 Ces blocs repr\'esentent une \'etape de calcul (une d\'ecimation, un filtrage, une modulation, une
d\'emodulation etc...). En prenant le cas du FIR, on rend param\'etrables les valeurs des coefficients 267 298 d\'emodulation etc...). En prenant le cas du FIR, on rend param\'etrables les valeurs des coefficients
utilis\'es pour le produit de convolutions ainsi que leur nombre. Le facteur de d\'ecimation est 268 299 utilis\'es pour le produit de convolutions ainsi que leur nombre. Le facteur de d\'ecimation est
lui aussi param\'etrable. 269 300 lui aussi param\'etrable.
270 301
On gagne ainsi beaucoup de temps de d\'eveloppement car on r\'eutilise des composants d\'ejà \'eprouv\'es et optimis\'es. 271 302 On gagne ainsi beaucoup de temps de d\'eveloppement car on r\'eutilise des composants d\'ejà \'eprouv\'es et optimis\'es.
De plus, au fil des projets, on constitue une bibliothèque de composants nous 272 303 De plus, au fil des projets, on constitue une bibliothèque de composants nous
permettant de faire une chaine complète très simplement. 273 304 permettant de faire une chaine complète très simplement.
274 305
K. Benkrid, S. Belkacemi et A. Benkrid dans leur article\cite{hide} caract\'erisent 275 306 K. Benkrid, S. Belkacemi et A. Benkrid dans leur article\cite{hide} caract\'erisent
ces blocs en Prolog pour faire un langage descriptif permettant d'assembler les blocs de manière 276 307 ces blocs en Prolog pour faire un langage descriptif permettant d'assembler les blocs de manière
optimale. En partant de cette description, ils arrivent à g\'en\'erer directement le code VHDL. 277 308 optimale. En partant de cette description, ils arrivent à g\'en\'erer directement le code VHDL.
278 309
\begin{itemize} 279 310 \begin{itemize}
\item la latence du bloc repr\'esente, en coups d'horloge, le temps entre l'entr\'ee de la donn\'ee 280 311 \item la latence du bloc repr\'esente, en coups d'horloge, le temps entre l'entr\'ee de la donn\'ee
et le temps où la même donn\'ee ressort du bloc. 281 312 et le temps où la même donn\'ee ressort du bloc.
\item l'acceptance repr\'esente le nombre de donn\'ees par coup d'horloge que le bloc est capable 282 313 \item l'acceptance repr\'esente le nombre de donn\'ees par coup d'horloge que le bloc est capable
de traiter. 283 314 de traiter.
\item la sortance repr\'esente le nombre de donn\'ees qui sortent par coup d'horloge. 284 315 \item la sortance repr\'esente le nombre de donn\'ees qui sortent par coup d'horloge.
\end{itemize} 285 316 \end{itemize}
286 317
Gr\^ace à cela, le logiciel est capable de donner une impl\'ementation optimale d'un problème qu'on lui 287 318 Gr\^ace à cela, le logiciel est capable de donner une impl\'ementation optimale d'un problème qu'on lui
soumet. Le problème ne se d\'efinit pas uniquement par un r\'esultat attendu mais aussi par des 288 319 soumet. Le problème ne se d\'efinit pas uniquement par un r\'esultat attendu mais aussi par des
contraintes de d\'ebit et/ou de pr\'ecision. 289 320 contraintes de d\'ebit et/ou de pr\'ecision.
290 321
Dans une second temps, nous nous sommes aussi int\'eress\'es à des articles d'ordonnancement. 291 322 Dans une second temps, nous nous sommes aussi int\'eress\'es à des articles d'ordonnancement.
Nous avons notamment lu des documents parlant des cas des micro-usines. 292 323 Nous avons notamment lu des documents parlant des cas des micro-usines.
293 324
Les micro-usines ressemblent un peu à des FPGA dans le sens où on connait à l'avance les 294 325 Les micro-usines ressemblent un peu à des FPGA dans le sens où on connait à l'avance les
t\^aches à effectuer et leurs caract\'eristiques. Nous allons donc nous inspirer 295 326 t\^aches à effectuer et leurs caract\'eristiques. Nous allons donc nous inspirer
de leur modèle pour essayer de construire le notre. 296 327 de leur modèle pour essayer de construire le notre.
297 328
Dans sa thèse A. Dobrila \cite{these-alex} traite d'un problème de tol\'erance aux pannes 298 329 Dans sa thèse A. Dobrila \cite{these-alex} traite d'un problème de tol\'erance aux pannes
dans le contextes des mirco-usines. Mais les FPGA ne sont pas concern\'es dans la mesure 299 330 dans le contextes des mirco-usines. Mais les FPGA ne sont pas concern\'es dans la mesure
où si le composant tombe en panne, tout le traitement est paralys\'e. Cette thèse nous a n\'eanmoins 300 331 où si le composant tombe en panne, tout le traitement est paralys\'e. Cette thèse nous a n\'eanmoins
permis d'avoir un exemple de formalisation de problème. 301 332 permis d'avoir un exemple de formalisation de problème.
302 333
Pour finir nous avons lu la thèse de M. Coqblin \cite{these-mathias} qui elle aussi traite du sujet 303 334 Pour finir nous avons lu la thèse de M. Coqblin \cite{these-mathias} qui elle aussi traite du sujet
des micro-usines. Le travail de M. Coqblin porte surtout sur une chaine de traitement 304 335 des micro-usines. Le travail de M. Coqblin porte surtout sur une chaine de traitement
reconfigurable, il tient compte dans ses travaux du surcoût engendr\'e par la reconfiguration d'une machine. 305 336 reconfigurable, il tient compte dans ses travaux du surcoût engendr\'e par la reconfiguration d'une machine.
Cela n'est pas tout à fait exploitable dans notre contexte puisqu'une 306 337 Cela n'est pas tout à fait exploitable dans notre contexte puisqu'une
puce FPGA d\'es qu'elle est programm\'ee n'a pas la possibilit\'e de reconfigurer une partie de sa chaine de 307 338 puce FPGA d\'es qu'elle est programm\'ee n'a pas la possibilit\'e de reconfigurer une partie de sa chaine de
traitement. Là encore, nous avions un exemple de formalisation d'un problème. 308 339 traitement. Là encore, nous avions un exemple de formalisation d'un problème.
309 340
Pour conclure, nous avons vu deux approches li\'ees à deux domaines diff\'erents. La première est le 310 341 Pour conclure, nous avons vu deux approches li\'ees à deux domaines diff\'erents. La première est le
point de vue \'electronique qui se focalise principalement sur des optimisations mat\'erielles ou algorithmiques. 311 342 point de vue \'electronique qui se focalise principalement sur des optimisations mat\'erielles ou algorithmiques.
La seconde est le point de vue informatique : les modèles sont très g\'en\'eriques et ne sont pas 312 343 La seconde est le point de vue informatique : les modèles sont très g\'en\'eriques et ne sont pas
adapt\'es au cas des FPGA. La suite de ce rapport se concentrera donc sur la recherche d'un compromis 313 344 adapt\'es au cas des FPGA. La suite de ce rapport se concentrera donc sur la recherche d'un compromis
entre ces deux points de vue. 314 345 entre ces deux points de vue.
315 346
\section{Contexte d'ordonnancement} 316 347 \section{Contexte d'ordonnancement}
Dans cette partie, nous donnerons des d\'efinitions de termes rattach\'es au domaine de l'ordonnancement 317 348 Dans cette partie, nous donnerons des d\'efinitions de termes rattach\'es au domaine de l'ordonnancement
et nous verrons que le sujet trait\'e se rapproche beaucoup d'un problème d'ordonnancement. De ce fait 318 349 et nous verrons que le sujet trait\'e se rapproche beaucoup d'un problème d'ordonnancement. De ce fait
nous pourrons aller plus loin que les travaux vus pr\'ec\'edemment et nous tenterons des approches d'ordonnancement 319 350 nous pourrons aller plus loin que les travaux vus pr\'ec\'edemment et nous tenterons des approches d'ordonnancement
et d'optimisation. 320 351 et d'optimisation.
321 352
\subsection{D\'efinition du vocabulaire} 322 353 \subsection{D\'efinition du vocabulaire}
Avant tout, il faut d\'efinir ce qu'est un problème d'optimisation. Il y a deux d\'efinitions 323 354 Avant tout, il faut d\'efinir ce qu'est un problème d'optimisation. Il y a deux d\'efinitions
importantes à donner. La première est propos\'ee par Legrand et Robert dans leur livre \cite{def1-ordo} : 324 355 importantes à donner. La première est propos\'ee par Legrand et Robert dans leur livre \cite{def1-ordo} :
\begin{definition} 325 356 \begin{definition}
\label{def-ordo1} 326 357 \label{def-ordo1}
Un ordonnancement d'un système de t\^aches $G\ =\ (V,\ E,\ w)$ est une fonction $\sigma$ : 327 358 Un ordonnancement d'un système de t\^aches $G\ =\ (V,\ E,\ w)$ est une fonction $\sigma$ :
$V \rightarrow \mathbb{N}$ telle que $\sigma(u) + w(u) \leq \sigma(v)$ pour toute arête $(u,\ v) \in E$. 328 359 $V \rightarrow \mathbb{N}$ telle que $\sigma(u) + w(u) \leq \sigma(v)$ pour toute arête $(u,\ v) \in E$.
\end{definition} 329 360 \end{definition}
330 361
Dit plus simplement, l'ensemble $V$ repr\'esente les t\^aches à ex\'ecuter, l'ensemble $E$ repr\'esente les d\'ependances 331 362 Dit plus simplement, l'ensemble $V$ repr\'esente les t\^aches à ex\'ecuter, l'ensemble $E$ repr\'esente les d\'ependances
des t\^aches et $w$ les temps d'ex\'ecution de la t\^ache. La fonction $\sigma$ donne donc l'heure de d\'ebut de 332 363 des t\^aches et $w$ les temps d'ex\'ecution de la t\^ache. La fonction $\sigma$ donne donc l'heure de d\'ebut de
chacune des t\^aches. La d\'efinition dit que si une t\^ache $v$ d\'epend d'une t\^ache $u$ alors 333 364 chacune des t\^aches. La d\'efinition dit que si une t\^ache $v$ d\'epend d'une t\^ache $u$ alors
la date de d\'ebut de $v$ sera plus grande ou \'egale au d\'ebut de l'ex\'ecution de la t\^ache $u$ plus son 334 365 la date de d\'ebut de $v$ sera plus grande ou \'egale au d\'ebut de l'ex\'ecution de la t\^ache $u$ plus son
temps d'ex\'ecution. 335 366 temps d'ex\'ecution.
336 367
Une autre d\'efinition importante qui est propos\'ee par Leung et al. \cite{def2-ordo} est : 337 368 Une autre d\'efinition importante qui est propos\'ee par Leung et al. \cite{def2-ordo} est :
\begin{definition} 338 369 \begin{definition}
\label{def-ordo2} 339 370 \label{def-ordo2}
L'ordonnancement traite de l'allocation de ressources rares à des activit\'es avec 340 371 L'ordonnancement traite de l'allocation de ressources rares à des activit\'es avec
l'objectif d'optimiser un ou plusieurs critères de performance. 341 372 l'objectif d'optimiser un ou plusieurs critères de performance.
\end{definition} 342 373 \end{definition}
343 374
Cette d\'efinition est plus g\'en\'erique mais elle nous int\'eresse d'avantage que la d\'efinition \ref{def-ordo1}. 344 375 Cette d\'efinition est plus g\'en\'erique mais elle nous int\'eresse d'avantage que la d\'efinition \ref{def-ordo1}.
En effet, la partie qui nous int\'eresse dans cette première d\'efinition est le respect de la pr\'ec\'edance des t\^aches. 345 376 En effet, la partie qui nous int\'eresse dans cette première d\'efinition est le respect de la pr\'ec\'edance des t\^aches.
Dans les faits les dates de d\'ebut ne nous int\'eressent pas r\'eellement. 346 377 Dans les faits les dates de d\'ebut ne nous int\'eressent pas r\'eellement.
347 378
En revanche la d\'efinition \ref{def-ordo2} sera au c\oe{}ur du projet. Pour se convaincre de cela, 348 379 En revanche la d\'efinition \ref{def-ordo2} sera au c\oe{}ur du projet. Pour se convaincre de cela,
il nous faut d'abord d\'efinir quel est le type de problème d'ordonnancement qu'on traite et quelles 349 380 il nous faut d'abord d\'efinir quel est le type de problème d'ordonnancement qu'on traite et quelles
sont les m\'ethodes qu'on peut appliquer. 350 381 sont les m\'ethodes qu'on peut appliquer.
351 382
Les problèmes d'ordonnancement peuvent être class\'es en diff\'erentes cat\'egories : 352 383 Les problèmes d'ordonnancement peuvent être class\'es en diff\'erentes cat\'egories :
\begin{itemize} 353 384 \begin{itemize}
\item T\^aches ind\'ependantes : dans cette cat\'egorie de problèmes, les t\^aches sont complètement ind\'ependantes 354 385 \item T\^aches ind\'ependantes : dans cette cat\'egorie de problèmes, les t\^aches sont complètement ind\'ependantes
les unes des autres. Dans notre cas, ce n'est pas le plus adapt\'e. 355 386 les unes des autres. Dans notre cas, ce n'est pas le plus adapt\'e.
\item Graphe de t\^aches : la d\'efinition \ref{def-ordo1} d\'ecrit cette cat\'egorie. La plupart du temps, 356 387 \item Graphe de t\^aches : la d\'efinition \ref{def-ordo1} d\'ecrit cette cat\'egorie. La plupart du temps,
les t\^aches sont repr\'esent\'ees par une DAG. Cette cat\'egorie est très proche de notre cas puisque nous devons \'egalement ex\'ecuter 357 388 les t\^aches sont repr\'esent\'ees par une DAG. Cette cat\'egorie est très proche de notre cas puisque nous devons \'egalement ex\'ecuter
des t\^aches qui ont un certain nombre de d\'ependances. On pourra même dire que dans certain cas, 358 389 des t\^aches qui ont un certain nombre de d\'ependances. On pourra même dire que dans certain cas,
on a des anti-arbres, c'est à dire que nous avons une multitude de t\^aches d'entr\'ees qui convergent vers une 359 390 on a des anti-arbres, c'est à dire que nous avons une multitude de t\^aches d'entr\'ees qui convergent vers une
t\^ache de fin. 360 391 t\^ache de fin.
\item Workflow : cette cat\'egorie est une sous cat\'egorie des graphes de t\^aches dans le sens où 361 392 \item Workflow : cette cat\'egorie est une sous cat\'egorie des graphes de t\^aches dans le sens où
il s'agit d'un graphe de t\^aches r\'ep\'et\'e de nombreuses de fois. C'est exactement ce type de problème 362 393 il s'agit d'un graphe de t\^aches r\'ep\'et\'e de nombreuses de fois. C'est exactement ce type de problème
que nous traitons ici. 363 394 que nous traitons ici.
\end{itemize} 364 395 \end{itemize}
365 396
Bien entendu, cette liste n'est pas exhaustive et il existe de nombreuses autres classifications et sous-classifications 366 397 Bien entendu, cette liste n'est pas exhaustive et il existe de nombreuses autres classifications et sous-classifications
de ces problèmes. Nous n'avons parl\'e ici que des cat\'egories les plus communes. 367 398 de ces problèmes. Nous n'avons parl\'e ici que des cat\'egories les plus communes.
368 399
Un autre point à d\'efinir, est le critère d'optimisation. Il y a là encore un grand nombre de 369 400 Un autre point à d\'efinir, est le critère d'optimisation. Il y a là encore un grand nombre de
critères possibles. Nous allons donc parler des principaux : 370 401 critères possibles. Nous allons donc parler des principaux :
\begin{itemize} 371 402 \begin{itemize}
\item Temps de compl\'etion total (ou Makespan en anglais) : ce critère est l'un des critères d'optimisation 372 403 \item Temps de compl\'etion total (ou Makespan en anglais) : ce critère est l'un des critères d'optimisation
les plus courant. Il s'agit donc de minimiser la date de fin de la dernière t\^ache de l'ensemble des 373 404 les plus courant. Il s'agit donc de minimiser la date de fin de la dernière t\^ache de l'ensemble des
t\^aches à ex\'ecuter. L'enjeu de cette optimisation est donc de trouver l'ordonnancement optimal permettant 374 405 t\^aches à ex\'ecuter. L'enjeu de cette optimisation est donc de trouver l'ordonnancement optimal permettant
la fin d'ex\'ecution au plus tôt. 375 406 la fin d'ex\'ecution au plus tôt.
\item Somme des temps d'ex\'ecution (Flowtime en anglais) : il s'agit de faire la somme des temps d'ex\'ecution de toutes les t\^aches 376 407 \item Somme des temps d'ex\'ecution (Flowtime en anglais) : il s'agit de faire la somme des temps d'ex\'ecution de toutes les t\^aches
et d'optimiser ce r\'esultat. 377 408 et d'optimiser ce r\'esultat.
\item Le d\'ebit : ce critère quant à lui, vise à augmenter au maximum le d\'ebit de traitement des donn\'ees. 378 409 \item Le d\'ebit : ce critère quant à lui, vise à augmenter au maximum le d\'ebit de traitement des donn\'ees.
\end{itemize} 379 410 \end{itemize}
380 411
En plus de cela, on peut avoir besoin de plusieurs critères d'optimisation. Il s'agit dans ce cas d'une optimisation 381 412 En plus de cela, on peut avoir besoin de plusieurs critères d'optimisation. Il s'agit dans ce cas d'une optimisation
multi-critères. Bien entendu, cela complexifie d'autant plus le problème car la solution la plus optimale pour un 382 413 multi-critères. Bien entendu, cela complexifie d'autant plus le problème car la solution la plus optimale pour un
des critères peut être très mauvaise pour un autre critère. De ce cas, il s'agira de trouver une solution qui permet 383 414 des critères peut être très mauvaise pour un autre critère. De ce cas, il s'agira de trouver une solution qui permet
de faire le meilleur compromis entre tous les critères. 384 415 de faire le meilleur compromis entre tous les critères.
385 416
386 417
\subsection{Formalisation du problème} 387 418 \subsection{Formalisation du problème}
\label{formalisation} 388 419 \label{formalisation}
Maintenant que nous avons donn\'e le vocabulaire li\'e à l'ordonnancement, nous allons pouvoir essayer caract\'eriser 389 420 Maintenant que nous avons donn\'e le vocabulaire li\'e à l'ordonnancement, nous allons pouvoir essayer caract\'eriser
formellement notre problème. En effet, nous allons reprendre les contraintes \'enonc\'ees dans la sections \ref{def-contraintes} 390 421 formellement notre problème. En effet, nous allons reprendre les contraintes \'enonc\'ees dans la sections \ref{def-contraintes}
et nous essayerons de les formaliser le plus finement possible. 391 422 et nous essayerons de les formaliser le plus finement possible.
392 423
Comme nous l'avons dit, une t\^ache est un bloc de traitement. Chaque t\^ache $i$ dispose d'un ensemble de paramètres 393 424 Comme nous l'avons dit, une t\^ache est un bloc de traitement. Chaque t\^ache $i$ dispose d'un ensemble de paramètres
que nous nommerons $\mathcal{P}_{i}$. Cet ensemble $\mathcal{P}_i$ est propre à chaque t\^ache et il variera d'une 394 425 que nous nommerons $\mathcal{P}_{i}$. Cet ensemble $\mathcal{P}_i$ est propre à chaque t\^ache et il variera d'une
t\^ache à l'autre. Nous reviendrons plus tard sur les paramètres qui peuvent composer cet ensemble. 395 426 t\^ache à l'autre. Nous reviendrons plus tard sur les paramètres qui peuvent composer cet ensemble.
396 427
Outre cet ensemble $\mathcal{P}_i$, chaque t\^ache dispose de paramètres communs : 397 428 Outre cet ensemble $\mathcal{P}_i$, chaque t\^ache dispose de paramètres communs :
\begin{itemize} 398 429 \begin{itemize}
\item Dur\'ee de la t\^ache : Comme nous l'avons dit auparavant, dans le cadre d'un FPGA le temps est compt\'e en nombre de coup d'horloge. 399 430 \item Dur\'ee de la t\^ache : Comme nous l'avons dit auparavant, dans le cadre d'un FPGA le temps est compt\'e en nombre de coup d'horloge.
En outre, les blocs sont toujours sollicit\'es, certains même sont capables de lire et de renvoyer une r\'esultat à chaque coups d'horloge. 400 431 En outre, les blocs sont toujours sollicit\'es, certains même sont capables de lire et de renvoyer une r\'esultat à chaque coups d'horloge.
Donc la dur\'ee d'une t\^ache ne peut être le laps de temps entre l'entr\'ee d'une donn\'ee et la sortie d'une autre. Nous d\'efinirons la 401 432 Donc la dur\'ee d'une t\^ache ne peut être le laps de temps entre l'entr\'ee d'une donn\'ee et la sortie d'une autre. Nous d\'efinirons la
dur\'ee comme le temps de traitement d'une donn\'ee, c'est à dire la diff\'erence de temps entre la date de sortie d'une donn\'ee 402 433 dur\'ee comme le temps de traitement d'une donn\'ee, c'est à dire la diff\'erence de temps entre la date de sortie d'une donn\'ee
et de sa date d'entr\'ee. Nous nommerons cette dur\'ee $\delta_i$. % Je devrais la nomm\'ee w comme dans la def2 403 434 et de sa date d'entr\'ee. Nous nommerons cette dur\'ee $\delta_i$. % Je devrais la nomm\'ee w comme dans la def2
\item La pr\'ecision : La pr\'ecision d'une donn\'ee est le nombre de bits significatifs qu'elle compte. En effet, au fil des traitements 404 435 \item La pr\'ecision : La pr\'ecision d'une donn\'ee est le nombre de bits significatifs qu'elle compte. En effet, au fil des traitements
les pr\'ecisions peuvent varier. On nomme donc la pr\'ecision d'entr\'ee d'une t\^ache $i$ comme $\pi_i^-$ et la pr\'ecision en sortie $\pi_i^+$. 405 436 les pr\'ecisions peuvent varier. On nomme donc la pr\'ecision d'entr\'ee d'une t\^ache $i$ comme $\pi_i^-$ et la pr\'ecision en sortie $\pi_i^+$.
\item La fr\'equence du flux en entr\'ee (ou sortie) : Cette fr\'equence repr\'esente la fr\'equence des donn\'ees qui arrivent (resp. sortent). 406 437 \item La fr\'equence du flux en entr\'ee (ou sortie) : Cette fr\'equence repr\'esente la fr\'equence des donn\'ees qui arrivent (resp. sortent).
Selon les t\^aches, les fr\'equences varieront. En effet, certains blocs ralentissent le flux c'est pourquoi on distingue la fr\'equence du 407 438 Selon les t\^aches, les fr\'equences varieront. En effet, certains blocs ralentissent le flux c'est pourquoi on distingue la fr\'equence du
flux en entr\'ee et la fr\'equence en sortie. Nous nommerons donc la fr\'equence du flux en entr\'ee $f_i^-$ et la fr\'equence en sortie $f_i^+$. 408 439 flux en entr\'ee et la fr\'equence en sortie. Nous nommerons donc la fr\'equence du flux en entr\'ee $f_i^-$ et la fr\'equence en sortie $f_i^+$.
\item La quantit\'e de donn\'ees en entr\'ee (ou en sortie) : Il s'agit de la quantit\'e de donn\'ees que le bloc s'attend à traiter (resp. 409 440 \item La quantit\'e de donn\'ees en entr\'ee (ou en sortie) : Il s'agit de la quantit\'e de donn\'ees que le bloc s'attend à traiter (resp.
est capable de produire). Les t\^aches peuvent avoir à traiter des gros volumes de donn\'ees et n'en ressortir qu'une partie. Cette 410 441 est capable de produire). Les t\^aches peuvent avoir à traiter des gros volumes de donn\'ees et n'en ressortir qu'une partie. Cette
fois encore, il nous faut donc diff\'erencier l'entr\'ee et la sortie. Nous nommerons donc la quantit\'e de donn\'ees entrantes $q_i^-$ 411 442 fois encore, il nous faut donc diff\'erencier l'entr\'ee et la sortie. Nous nommerons donc la quantit\'e de donn\'ees entrantes $q_i^-$
et la quantit\'e de donn\'ees sortantes $q_i^+$ pour une t\^ache $i$. 412 443 et la quantit\'e de donn\'ees sortantes $q_i^+$ pour une t\^ache $i$.
\item Le d\'ebit d'entr\'ee (ou de sortie) : Ce paramètre correspond au d\'ebit de donn\'ees que la t\^ache est capable de traiter ou qu'elle 413 444 \item Le d\'ebit d'entr\'ee (ou de sortie) : Ce paramètre correspond au d\'ebit de donn\'ees que la t\^ache est capable de traiter ou qu'elle
fournit en sortie. Il s'agit simplement de l'expression des deux pr\'ec\'edents paramètres. Nous d\'efinirons donc la d\'ebit entrant de la 414 445 fournit en sortie. Il s'agit simplement de l'expression des deux pr\'ec\'edents paramètres. Nous d\'efinirons donc la d\'ebit entrant de la
t\^ache $i$ comme $d_i^-\ =\ q_i^-\ *\ f_i^-$ et le d\'ebit sortant comme $d_i^+\ =\ q_i^+\ *\ f_i^+$. 415 446 t\^ache $i$ comme $d_i^-\ =\ q_i^-\ *\ f_i^-$ et le d\'ebit sortant comme $d_i^+\ =\ q_i^+\ *\ f_i^+$.
\item La taille de la t\^ache : La taille dans les FPGA \'etant limit\'ee, ce paramètre exprime donc la place qu'occupe la t\^ache au sein du bloc. 416 447 \item La taille de la t\^ache : La taille dans les FPGA \'etant limit\'ee, ce paramètre exprime donc la place qu'occupe la t\^ache au sein du bloc.
Nous nommerons $\mathcal{A}_i$ cette taille. 417 448 Nous nommerons $\mathcal{A}_i$ cette taille.
\item Les pr\'ed\'ecesseurs et successeurs d'une t\^ache : cela nous permet de connaître les t\^aches requises pour pouvoir traiter 418 449 \item Les pr\'ed\'ecesseurs et successeurs d'une t\^ache : cela nous permet de connaître les t\^aches requises pour pouvoir traiter
la t\^ache $i$ ainsi que les t\^aches qui en d\'ependent. Ces ensemble sont not\'es $\Gamma _i ^-$ et $ \Gamma _i ^+$ \\ 419 450 la t\^ache $i$ ainsi que les t\^aches qui en d\'ependent. Ces ensemble sont not\'es $\Gamma _i ^-$ et $ \Gamma _i ^+$ \\
%TODO Est-ce vraiment un paramètre ? 420 451 %TODO Est-ce vraiment un paramètre ?
\end{itemize} 421 452 \end{itemize}
422 453
Ces diff\'erents paramètres communs sont fortement li\'es aux \'el\'ements de $\mathcal{P}_i$. Voici quelques exemples de relations 423 454 Ces diff\'erents paramètres communs sont fortement li\'es aux \'el\'ements de $\mathcal{P}_i$. Voici quelques exemples de relations
que nous avons identifi\'ees : 424 455 que nous avons identifi\'ees :
\begin{itemize} 425 456 \begin{itemize}
\item $ \delta _i ^+ \ = \ \mathcal{F}_{\delta}(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+,\ \mathcal{P}_i) $ donne le temps d'ex\'ecution 426 457 \item $ \delta _i ^+ \ = \ \mathcal{F}_{\delta}(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+,\ \mathcal{P}_i) $ donne le temps d'ex\'ecution
de la t\^ache en fonction de la pr\'ecision voulue, du d\'ebit et des paramètres internes. 427 458 de la t\^ache en fonction de la pr\'ecision voulue, du d\'ebit et des paramètres internes.
\item $ \pi _i ^+ \ = \ \mathcal{F}_{p}(\pi_i^-,\ \mathcal{P}_i) $, la fonction $F_p$ donne la pr\'ecision en sortie selon la pr\'ecision de d\'epart 428 459 \item $ \pi _i ^+ \ = \ \mathcal{F}_{p}(\pi_i^-,\ \mathcal{P}_i) $, la fonction $F_p$ donne la pr\'ecision en sortie selon la pr\'ecision de d\'epart
et les paramètres internes de la t\^ache. 429 460 et les paramètres internes de la t\^ache.
\item $d_i^+\ =\ \mathcal{F}_d(d_i^-, \mathcal{P}_i)$, la fonction $F_d$ donne le d\'ebit sortant de la t\^ache en fonction du d\'ebit 430 461 \item $d_i^+\ =\ \mathcal{F}_d(d_i^-, \mathcal{P}_i)$, la fonction $F_d$ donne le d\'ebit sortant de la t\^ache en fonction du d\'ebit
sortant et des variables internes de la t\^ache. 431 462 sortant et des variables internes de la t\^ache.
\item $A_i^+\ =\ \mathcal{F}_A(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+, \mathcal{P}_i)$ 432 463 \item $A_i^+\ =\ \mathcal{F}_A(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+, \mathcal{P}_i)$
\end{itemize} 433 464 \end{itemize}
Pour le moment, nous ne sommes pas capables de donner une d\'efinition g\'en\'erale de ces fonctions. Mais en revanche, 434 465 Pour le moment, nous ne sommes pas capables de donner une d\'efinition g\'en\'erale de ces fonctions. Mais en revanche,
sur quelques exemples simples (cf. \ref{def-contraintes}), nous parvenons à donner une \'evaluation de ces fonctions. 435 466 sur quelques exemples simples (cf. \ref{def-contraintes}), nous parvenons à donner une \'evaluation de ces fonctions.
436 467
Maintenant que nous avons donn\'e toutes les notations utiles, nous allons \'enoncer des contraintes relatives à notre problème. Soit 437 468 Maintenant que nous avons donn\'e toutes les notations utiles, nous allons \'enoncer des contraintes relatives à notre problème. Soit
un DGA $G(V,\ E)$, on a pour toutes arêtes $(i, j)\ \in\ E$ les in\'equations suivantes : 438 469 un DGA $G(V,\ E)$, on a pour toutes arêtes $(i, j)\ \in\ E$ les in\'equations suivantes :
439 470
\paragraph{Contrainte de pr\'ecision :} 440 471 \paragraph{Contrainte de pr\'ecision :}
Cette in\'equation traduit la contrainte de pr\'ecision d'une t\^ache à l'autre : 441 472 Cette in\'equation traduit la contrainte de pr\'ecision d'une t\^ache à l'autre :
\begin{align*} 442 473 \begin{align*}
\pi _i ^+ \geq \pi _j ^- 443 474 \pi _i ^+ \geq \pi _j ^-
\end{align*} 444 475 \end{align*}
445 476
\paragraph{Contrainte de d\'ebit :} 446 477 \paragraph{Contrainte de d\'ebit :}
Cette in\'equation traduit la contrainte de d\'ebit d'une t\^ache à l'autre : 447 478 Cette in\'equation traduit la contrainte de d\'ebit d'une t\^ache à l'autre :
\begin{align*} 448 479 \begin{align*}
d _i ^+ = q _j ^- * (f_i + (1 / s_j) ) & \text{ où } s_j \text{ est une valeur positive de temporisation de la t\^ache} 449 480 d _i ^+ = q _j ^- * (f_i + (1 / s_j) ) & \text{ où } s_j \text{ est une valeur positive de temporisation de la t\^ache}
\end{align*} 450 481 \end{align*}
451 482
\paragraph{Contrainte de synchronisation :} 452 483 \paragraph{Contrainte de synchronisation :}
Il s'agit de la contrainte qui impose que si à un moment du traitement, le DAG se s\'epare en plusieurs branches parallèles 453 484 Il s'agit de la contrainte qui impose que si à un moment du traitement, le DAG se s\'epare en plusieurs branches parallèles
et qu'elles se rejoignent plus tard, la somme des latences sur chacune des branches soit la même. 454 485 et qu'elles se rejoignent plus tard, la somme des latences sur chacune des branches soit la même.
Plus formellement, s'il existe plusieurs chemins disjoints, partant de la t\^ache $s$ et allant à la t\^ache de $f$ alors : 455 486 Plus formellement, s'il existe plusieurs chemins disjoints, partant de la t\^ache $s$ et allant à la t\^ache de $f$ alors :
\begin{align*} 456 487 \begin{align*}
\forall \text{ chemin } \mathcal{C}1(s, .., f), 457 488 \forall \text{ chemin } \mathcal{C}1(s, .., f),
\forall \text{ chemin } \mathcal{C}2(s, .., f) 458 489 \forall \text{ chemin } \mathcal{C}2(s, .., f)
\text{ tel que } \mathcal{C}1 \neq \mathcal{C}2 459 490 \text{ tel que } \mathcal{C}1 \neq \mathcal{C}2
\Rightarrow 460 491 \Rightarrow
\sum _{i} ^{i \in \mathcal{C}1} \delta_i = \sum _{i} ^{i \in \mathcal{C}2} \delta_i 461 492 \sum _{i} ^{i \in \mathcal{C}1} \delta_i = \sum _{i} ^{i \in \mathcal{C}2} \delta_i
\end{align*} 462 493 \end{align*}
463 494
\paragraph{Contrainte de place :} 464 495 \paragraph{Contrainte de place :}
Cette in\'equation traduit la contrainte de place dans le FPGA. La taille max de la puce FPGA est nomm\'e $\mathcal{A}_{FPGA}$ : 465 496 Cette in\'equation traduit la contrainte de place dans le FPGA. La taille max de la puce FPGA est nomm\'e $\mathcal{A}_{FPGA}$ :
\begin{align*} 466 497 \begin{align*}
\sum ^{\text{t\^ache } i} \mathcal{A}_i \leq \mathcal{A}_{FPGA} 467 498 \sum ^{\text{t\^ache } i} \mathcal{A}_i \leq \mathcal{A}_{FPGA}
\end{align*} 468 499 \end{align*}
469 500
\subsection{Exemples de mod\'elisation} 470 501 \subsection{Exemples de mod\'elisation}
\label{exemples-modeles} 471 502 \label{exemples-modeles}
Nous allons maintenant prendre quelques blocs de traitement simples afin d'illustrer au mieux notre modèle. 472 503 Nous allons maintenant prendre quelques blocs de traitement simples afin d'illustrer au mieux notre modèle.
Pour tous nos exemple, nous prendrons un d\'ebit en entr\'ee de 200 Mo/s avec une pr\'ecision de 16 bit. 473 504 Pour tous nos exemple, nous prendrons un d\'ebit en entr\'ee de 200 Mo/s avec une pr\'ecision de 16 bit.
474 505
Prenons tout d'abord l'exemple d'un bloc de d\'ecimation. Le but de ce bloc est de ralentir le flux en ne gardant 475 506 Prenons tout d'abord l'exemple d'un bloc de d\'ecimation. Le but de ce bloc est de ralentir le flux en ne gardant
que certaines donn\'ees à intervalle r\'egulier. Cet intervalle est appel\'e le facteur de d\'ecimation, on le notera $N$. 476 507 que certaines donn\'ees à intervalle r\'egulier. Cet intervalle est appel\'e le facteur de d\'ecimation, on le notera $N$.
477 508
Donc d'après notre mod\'elisation : 478 509 Donc d'après notre mod\'elisation :
\begin{itemize} 479 510 \begin{itemize}
\item $N \in \mathcal{P}_i$ 480 511 \item $N \in \mathcal{P}_i$
%TODO N ou 1 ? 481 512 %TODO N ou 1 ?
\item $\delta _i = N\ c.h.$ (coup d'horloge) 482 513 \item $\delta _i = N\ c.h.$ (coup d'horloge)
\item $\pi _i ^+ = \pi _i ^- = 16 bits$ 483 514 \item $\pi _i ^+ = \pi _i ^- = 16 bits$
\item $f _i ^+ = f _i ^-$ 484 515 \item $f _i ^+ = f _i ^-$
\item $q _i ^+ = q _i ^- / N$ 485 516 \item $q _i ^+ = q _i ^- / N$
\item $d _i ^+ = q _i ^- / N / f _i ^-$ 486 517 \item $d _i ^+ = q _i ^- / N / f _i ^-$
\item $\Gamma _i ^+ = \Gamma _i ^- = 1$\\ 487 518 \item $\Gamma _i ^+ = \Gamma _i ^- = 1$\\
%TODO Je ne sais pas trouver la taille... 488 519 %TODO Je ne sais pas trouver la taille...
\end{itemize} 489 520 \end{itemize}
490 521
Un autre exemple int\'eressant que l'on peut donner, c'est le cas des spliters. Il s'agit la aussi d'un bloc très 491 522 Un autre exemple int\'eressant que l'on peut donner, c'est le cas des spliters. Il s'agit la aussi d'un bloc très
simple qui permet de dupliquer un flux. On peut donc donner un nombre de sorties à cr\'eer, on note ce paramètre 492 523 simple qui permet de dupliquer un flux. On peut donc donner un nombre de sorties à cr\'eer, on note ce paramètre
%TODO pas très inspir\'e... 493 524 %TODO pas très inspir\'e...
$X$. Voici ce que donne notre mod\'elisation : 494 525 $X$. Voici ce que donne notre mod\'elisation :
\begin{itemize} 495 526 \begin{itemize}
\item $X \in \mathcal{P}_i$ 496 527 \item $X \in \mathcal{P}_i$
\item $\delta _i = 1\ c.h.$ 497 528 \item $\delta _i = 1\ c.h.$
\item $\pi _i ^+ = \pi _i ^- = 16 bits$ 498 529 \item $\pi _i ^+ = \pi _i ^- = 16 bits$
\item $f _i ^+ = f _i ^-$ 499 530 \item $f _i ^+ = f _i ^-$
\item $q _i ^+ = q _i ^-$ 500 531 \item $q _i ^+ = q _i ^-$
\item $d _i ^+ = d _i ^-$ 501 532 \item $d _i ^+ = d _i ^-$
\item $\Gamma _i ^- = 1$ 502 533 \item $\Gamma _i ^- = 1$
\item $\Gamma _i ^+ = X$\\ 503 534 \item $\Gamma _i ^+ = X$\\
\end{itemize} 504 535 \end{itemize}
505 536
L'exemple suivant traite du cas du shifter. Il s'agit d'un bloc qui a pour but de diminuer le nombre de bits des 506 537 L'exemple suivant traite du cas du shifter. Il s'agit d'un bloc qui a pour but de diminuer le nombre de bits des
donn\'ees afin d'acc\'el\'erer les traitement sur les blocs suivants. On peut donc donner le nombre de bits à shifter, 507 538 donn\'ees afin d'acc\'el\'erer les traitement sur les blocs suivants. On peut donc donner le nombre de bits à shifter,
on note ce paramètre $S$. Voici ce que donne notre mod\'elisation : 508 539 on note ce paramètre $S$. Voici ce que donne notre mod\'elisation :
\begin{itemize} 509 540 \begin{itemize}
\item $S \in \mathcal{P}_i$ 510 541 \item $S \in \mathcal{P}_i$
\item $\delta _i = 1\ c.h.$ 511 542 \item $\delta _i = 1\ c.h.$
\item $\pi _i ^+ = \pi _i ^- - S$ 512 543 \item $\pi _i ^+ = \pi _i ^- - S$
\item $f _i ^+ = f _i ^-$ 513 544 \item $f _i ^+ = f _i ^-$
\item $q _i ^+ = q _i ^-$ 514 545 \item $q _i ^+ = q _i ^-$
\item $d _i ^+ = d _i ^-$ 515 546 \item $d _i ^+ = d _i ^-$
\item $\Gamma _i ^+ = \Gamma _i ^- = 1$\\ 516 547 \item $\Gamma _i ^+ = \Gamma _i ^- = 1$\\
\end{itemize} 517 548 \end{itemize}
518 549
Nous allons traiter un dernier exemple un peu plus complexe, le cas d'un filtre d\'ecimateur (ou FIR). Ce bloc 519 550 Nous allons traiter un dernier exemple un peu plus complexe, le cas d'un filtre d\'ecimateur (ou FIR). Ce bloc
est compos\'e de beaucoup de paramètres internes. On peut d\'efinir un nombre d'\'etages $E$, qui repr\'esente le nombre 520 551 est compos\'e de beaucoup de paramètres internes. On peut d\'efinir un nombre d'\'etages $E$, qui repr\'esente le nombre
d'it\'erations à faire avant d'arrêter le traitement. Afin d'effectuer son filtrage, on doit donner au bloc un ensemble 521 552 d'it\'erations à faire avant d'arrêter le traitement. Afin d'effectuer son filtrage, on doit donner au bloc un ensemble
de coefficients $C$ et par cons\'equent ces coefficients ont leur propre pr\'ecision $\pi _C$. Pour finir, le dernier 522 553 de coefficients $C$ et par cons\'equent ces coefficients ont leur propre pr\'ecision $\pi _C$. Pour finir, le dernier
paramètre à donner est le facteur de d\'ecimation $N$. Si on applique notre mod\'elisation, on peut obtenir cela : 523 554 paramètre à donner est le facteur de d\'ecimation $N$. Si on applique notre mod\'elisation, on peut obtenir cela :
\begin{itemize} 524 555 \begin{itemize}
\item $E \in \mathcal{P}_i$ 525 556 \item $E \in \mathcal{P}_i$
\item $C \in \mathcal{P}_i$ 526 557 \item $C \in \mathcal{P}_i$
\item $\pi _C \in \mathcal{P}_i$ 527 558 \item $\pi _C \in \mathcal{P}_i$
\item $N \in \mathcal{P}_i$ 528 559 \item $N \in \mathcal{P}_i$
\item $\delta _i = E * |C| * q_i^-\ c.h.$ %Trop simpliste 529 560 \item $\delta _i = E * |C| * q_i^-\ c.h.$ %Trop simpliste
\item $\pi _i ^+ = \pi _i ^- * \pi _C$ 530 561 \item $\pi _i ^+ = \pi _i ^- * \pi _C$
\item $f _i ^+ = f _i ^-$ 531 562 \item $f _i ^+ = f _i ^-$
\item $q _i ^+ = q _i ^- / N$ 532 563 \item $q _i ^+ = q _i ^- / N$
\item $d _i ^+ = q _i ^- / N / f _i ^-$ 533 564 \item $d _i ^+ = q _i ^- / N / f _i ^-$
\item $\Gamma _i ^+ = \Gamma _i ^- = 1$\\ 534 565 \item $\Gamma _i ^+ = \Gamma _i ^- = 1$\\
\end{itemize} 535 566 \end{itemize}
536 567
Ces exemples ne sont que des modèles provisoires; pour s'assurer de leur performance, il faudra les 537 568 Ces exemples ne sont que des modèles provisoires; pour s'assurer de leur performance, il faudra les
confronter à des simulations. 538 569 confronter à des simulations.
539 570
540 571
Bien que les articles sur les skeletons, \cite{gwen-cogen}, \cite{skeleton} et \cite{hide}, nous aient donn\'e des indices sur une possible 541 572 Bien que les articles sur les skeletons, \cite{gwen-cogen}, \cite{skeleton} et \cite{hide}, nous aient donn\'e des indices sur une possible
mod\'elisation, ils \'etaient encore trop focalis\'es sur l'optimisation spatiale des blocs. Nous nous sommes donc inspir\'es de ces travaux 542 573 mod\'elisation, ils \'etaient encore trop focalis\'es sur l'optimisation spatiale des blocs. Nous nous sommes donc inspir\'es de ces travaux
pour proposer notre modèle, en faisant abstraction des optimisations bas niveau. 543 574 pour proposer notre modèle, en faisant abstraction des optimisations bas niveau.
544 575
\bibliographystyle{IEEEtran} 545 576 \bibliographystyle{IEEEtran}
\bibliography{references,biblio} 546 577 \bibliography{references,biblio}
\end{document} 547 578 \end{document}
548 579
549