Opérateurs de Calcul en

Transcription

Opérateurs de Calcul en
Opérateurs de
Calcul en-ligne
Alain GUYOT
Concurrent Integrated Systems
TIMA
(33) 04 76 57 46 16
[email protected]
http://tima-cmp.imag.fr/~guyot/Cours/Arithmetique
Techniques de l'Informatique et de la Microélectronique
pour l'Architecture. Unité associée au C.N.R.S. n° B0706
Calcul en ligne 1
Opérateurs en ligne
entrées
reçues
en série
chiffre à
chiffre
horloge
ω
t
*
ω
*t
Exemples d'opérations en ligne
Addition
+
4372
5391
9763
de droite à gauche
Maximum
≥
sortie
transmise
en série
chiffre à
chiffre
1789
1790
1790
de gauche à droite
Calcul en ligne 2
Avantages des opérateurs en ligne
Avantage 1: parallélisme à grain fin (niveau du chiffre)
ω
t
ϕ
*
+
A
cos
*
A cos ωt + ϕ
chaque opérateur travaille simultanément
( 2 multiplieurs, 1 additionneur, 1 cosinus)
Calcul en ligne 3
Avantages (2)
Avantage 2: la transmission recouvre l'exécution
*
pas 3
communication
solution classique
séquentielle
store
A*B
compute
A*B
read B
read A
temps
pas 2
computation
store compute
A * B A * B read B
mémoire
pas 1
communication
read A
exemple: multiplication de deux grands entiers A et B
( Les grands entiers doivent être transmis en série)
solution en
ligne
parallèle
Calcul en ligne 4
Avantages (3)
Avantage 3: câblage
nombre
nombre
opérateur
standard
nombre
solution standard
chiffre chiffre
opérateur
en-ligne
chiffre
solution en-ligne
Calcul en ligne 5
Bonnes Nouvelles
Presque toutes les opérations habituelles
peuvent être calculées en ligne
Maximum
Sinus/cosinus
Addition
Tangente
Multiplication Valeur Absolue
Saturation
Logarithme
Division
Racine carrée Tri
Exponentielle
Scaling
Polynômes
Distance
Euclidienne
Opérations non calculables en ligne
Reste
Opérations modulaires
PGCD
Fonctions non continues
Arc sinus
Calcul en ligne 6
Opérations en série
NOTATION
En - tête
Standard
Poids faibles
addition
multiplication
division
maximum
racine carrée
X
X (1)
Standard
Poids forts
(1) Latence si on attend les poids forts
(2) Latence systématique
X
Redondante
Poids forts
X (2)
X (2)
X (2)
X
X (2)
Calcul en ligne 7
Comment mesurer les opérateurs en-ligne
période : inverse de la fréquence d'horloge
latence: nombre d'étages de registres entre entrée et sortie
(ou combinaison des poids des entrées moins le poids de la sortie)
La période peut être échangée contre de la latence
Quand des opérateurs sont mis en série:
période = max (périodes)
latence = Σ (latences) sur le chemin critique
(la latence peut devenir prédominante)
Calcul en ligne 8
Question: Quel est le rapport coût/performance
1 - Délai
opération
construction habituelle
en-ligne
usuelle optimisée
naïve
addition
n
log 2 n
1*
n
multiplication
n2
n**
log 2 n**
n
division
n2
n log 2 n
n***
n
racine carrée
n2
n log 2 n
n***
n
* Additionneur à retenue sauvegardée
** Arbre de Wallace
*** Division SRT (non Newton)
Calcul en ligne 9
Question: Quel est le rapport coût/performance
(2)
1 - Surface
opération
addition
standard en-ligne
n log2 n
1
multiplication
n2
n
division
n2
n
racine carrée
n2
n
a) add,sub,max,abs,tri,gain
b) mult,div,carré, racine
c) fonctions élémentaires
1
coût fixe
θ (n)
coût linéaire
2
β
n
+
n
α
coût quadratique
Calcul en ligne 10
Clefs
Toutes les opérations en ligne reposent sur
1- l'addition sans propagation de retenus
(c'est à dire la notation redondante)
2- l'addition en série poids forts en tête dérivée de la précédente
3- en registre d'"erreur" interne
Quelque opérations en lignes reposent également sur
un estimation de faible précision de certaine variable
(reste partiel, angle, etc ...)
Calcul en ligne 11
Notation binaire redondante BS
n-1
A=
ai 2i
Σ
i=0
a i ∈ {-1, 0 , 1}
In the Borrow-Save (B.S.) notation, each digit is coded by 2 bits
+a i coded on 2 bits +1 1 0
+0 0 0 or 1 1
a+i
a-i
-1 0 1
A number in redundant B.S. notation can be
seen as the difference of two positive numbers
n-1
A=
Σ
i=0
n-1
n-1
n-1
i=0
i=0
i=0
+2i
+- Ai
i
ai 2 = Σ ( a+
)
=
a
=
A
a
2
a
2
i
Σ
i- i
-Σ i
i
Calcul en ligne 12
Autres notations binaires redondantes
n-1
A = Σ ai 2i
Every digit is coded on 2 bits
i=0
unsigned Carry save notation
signed
a i ∈ {0, 1, 2, 3} coded as [1, 2 ]
a i ∈ {-1, 0 , 1} coded as [ sign, |value|]
sign+abs. value
Borrow save notation a i ∈ {-1, 0 , 1} coded as [+ , - ]
Borrow Save
a i ⇔- a i
is symmetrical
truncation = rounding
easy to change sign ( no
ai +
-
+ a
i
--
ai +
-
-B=B+1
)
+ - ai
-
Calcul en ligne 13
Cas particulier du (Borrow Save)
n-1
A = Σ ai 2i
i=0
1- a n-1 ∈ {-1, 0 }
2-
ai
3-
ai
∈ {-1, 1 }
∈ {-1, 0, 1}
a i ∈ {-1, 0 , 1}
a 0. . n-1 ∈ {0 , 1}
standard 2's complement
on-line functions
with the maximum number of zero
(average 2/3 zero 1/6 one 1/6 minus one)
forms 1 and 3 may require an extra digit
only odd numbers representable in form 2
form 3 is the canonic signed binary digit form
Calcul en ligne 14
Addition parallèle sans propagation de la
retenue
n-1
A=
Retenue
sortante
+
s6 -
Σ
i=0
i
n-1
ai 2 B =
Σ
i=0
n
i
bi 2
S=
Σ
i=0
a i ,b i ,s i ∈ {-1, 0 , 1}
a i 2i
a 5 b5
a 4 b4
a 3 b3
a 2 b2
a 1 b1
a 0 b0
+- +-
+- +-
+- +-
+- +-
+- +-
+- +-
+-+
+-
+-+
+-
+-+
+-
+-+
+-
+-+
+-
+-+
+-
--+
-+
--+
-+
--+
-+
--+
-+
--+
-+
--+
-+
+-
s5
+-
s4
+-
s3
+-
s2
+-
s1
retenue
entrante
+
-
+-
s0
Calcul en ligne 15
Addition en-ligne (addition de chiffres en série)
a i bi
remplir
compteur
s i+2
vider
a i bi
-+
-++
+-
s i+2
-+-+
-+
Procedure Addserie(ai, bi, si : SBD);
var counter: integer;
begin
counter := 2*counter + ai + bi ;
if counter > 2 then si := 1
{overflow}
else if counter < -2 then si := -1 {underflow}
else si := 0 ;
counter := counter - 4*si ;
end.
registres maître-esclave
Calcul en ligne 16
Addition d'une série de nombres avec résultat
en-ligne
S=
ΣAj 2
j
j = m-1
Sj = 2*S j-1+A j
-+-+
-++
+-
somme en-ligne
poids forte en-tête
n-1
Aj = Σ a ij 2i
a ij ∈ {-1, 0 , 1}
a4
a2
i=0
a3
a1
a0
++-+
+-
++-+
+-
++-+
+-
++-+
+-
++-+
+-
-+-+
-+-+
-+-+
-+-+
-+-+
zéros
0
registre d'erreur ou de récursion
Calcul en ligne 17
Multiplieur en ligne poids forts en-tête
n-1
A = Σ ai 2
i=0
i
n-1
B=
bi 2
Σ
i=0
horloge de transmission
(commune à tous opérateurs)
entrée en série des
opérandes A & B
sortie en série du
produit P=A*B
i
P=
n-1 n-1
a i bj 2
Σ
Σ
i=0 j=0
i+j
Feu
(début de l'opération)
Multiplieur en-ligne
poids forts en-tête
Calcul en ligne 18
Multiplication en ligne poids forts en tête (2)
n-1
A=
Σ
i=0
ai 2
i
n-1
B=
Σ
i=0
i
bi 2
P=
n -1 n -1
Σ
Σ
i=0 j=0
ai bj 2
a0
a 0 b3
a 0 b2
a 0 b1
a 0 b0
a1
a 1 b3
a 1 b2
a 1 b1
a 1 b0
a2
a 2 b3
a 2 b2
a 2 b1
a 2 b0
a3
a 3 b3
a 3 b2
a 3 b1
a 3 b0
b3
b2
b1
b0
i+j
Calcul en ligne 19
futur
présent
passé
Calcul en ligne 20
Multiplication en ligne poids forts en tête (3)
a3
b3
a2
b2
a1
b1
a0
b0
a 3 b3
a 2 b3
a 3 b2
a 2 b2
a 1 b3
a 3 b1
a 1 b2
a 2 b1
a 1 b1
a 0 b3
a 3 b0
a 0 b2
a 2 b0
a 0 b1
a 1 b0
a 0 b0
sequence of numbers summed up to give a sequence of digits
Calcul en ligne 21
Opérations à faire simultanément pour
la multiplication en-ligne (4)
1- Ranger les chiffres reçus dans les registres A & B
Aj ⇐ Aj-1 & aj Bj ⇐ Bj-1 & bj
2- Multiplier A et B par les chiffres reçus
Aj*bj , Bj-1*aj
⊗
3- Décaler et sortir le résultat partiel
Pj ⇐ 2 * Pj-1
4- Ajouter les produits partiels au résultat partiel
Pj ⇐ Pj + Aj*bj +Bj-1*aj
Calcul en ligne 22
Multiplication de 2 chiffres
As for bits, the product of two signed digits is one digit.
a
b
c
d
ab
cd
- +
+
+
e
-
f
e
e=ac+bd
f=ad+bc
f
Calcul en ligne 23
Multiplieur en-ligne poids forts en tête (5)
Serial Start
Multiplier A
D
Contrôle Bit
D
D
D
Serial
Multiplicande B
L
Mult
Serial
Adder
Serial
Produit
L
Mult
Parallel
Adder
D
L
Mult
L
Mult
Parallel
Adder
D
L
Mult
L
Mult
Parallel
Adder
Zéro
D
La latence vient du
sommateur en-ligne
Calcul en ligne 24
Multiplication et carré
a3
b3
a 3 b3
a2
b2
a 2 b3
a 3 b2
a1
b1
a 2 b2
a 1 b3
a 3 b1
a0
b0
a 1 b2
a 2 b1
0 3
a b
3 0
a b
a 0 b1
a 1 b0
a 22
b
a 11
b
a 00
b
a 3 b3
a 3 b3
a2
a 2 a3
a2 a2
a1 a3
a0
a0 b 0
multiply
a 33
b
a3 a3
a1
a 1 b1
a 0 b2
a 2 b0
a3
a1 a 2
a0 a3
a 1 a1
a0 a2
a0 a 1
a0 a0
square
a3
a 3 b3
a 3 b3
a2 b 3
a 3 b2
a 2 b2
a 2 b2
a 2 b2
a 2 b2
a 1 b3
a 3 b1
a 1 b2
2
a b1
a 0 b3
a 3 b0
a2
a 1 b1
a 1 b1
a1 b 1
a1 b 1
a 0 b2
a 2 b0
a 0 b1
a 1 b0
a1
a 0 b0
a 0 b0
a 0 b0
a 0 b0
a0
a3 a3
a3 a3
a2 a3
a2 a2
a2 a2
a1 a3
a 1 a2
a1 a1
a1 a1
a 0a
a 0a
a 0a
3
2
1
a0 a
0
a0 a 0
Calcul en ligne 25
Test en ligne de multiplieur en ligne poids forts
en tête
control
low contrability
and observability
observation
latchs (hold vectors)
digit by vector multiply
carry propagation free adder
recursion register
principle: exhaustive testing: no fault model
single fault : no masking
adder and recursion register to analyse the results
Calcul en ligne 26
Test en ligne de multiplieur en ligne poids forts
en tête (2)
GND 1
serial X
serial output
Final adder
Cout
2
r
+
-
+
Recursion register
+ -
adder
SP register X
SP register A
serial A
Three input parallel
GND
u
v
w
+
-
+
-
+
+-
+
- +
+
-
Rs
Cin
GND
Calcul en ligne 27
Test en ligne de multiplieur en ligne poids forts
en tête (3)
The 3-input carry-free adder is C-testable
ab
cd
+ - +
+ -
h'
i'
e f
- + - +
g'
+ + + - - +
- +
input vectors carries
abc de f gh i
g
h
i
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
Calcul en ligne 28
Test en ligne de multiplieur en ligne poids forts
en tête (4)
a b c de f gh
ab
ef
cd
+ - +
+ -
- + - +
gh
+ - +
+ -
- + - +
+ + + -
+ + + -
- - +
- +
- - +
- +
With a local feed-back loop,
more vectors are required
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
Calcul en ligne 29
Diviseur en-ligne
(poids forts en tête)
La division s'appuie sur la multiplication
en-ligne poids forts en tête
horloge de transmission
commune à tous les
opérateurs
entrée série du
dividende A et
du diviseur B
sortie série du
quotient Q = A÷ B
Feu
(début de l'opération)
Diviseur en-ligne poids
forts en tête
Calcul en ligne 30
Division en-ligne (2)
Principe
b
b
a
a÷b
q
- +
prédiction
du quotient
q
boucle de rétroaction
multiplieur
en-ligne
Quotient prédit
de façon que le
reste partiel
QJ * BJ - Aj →0
Calcul en ligne 31
Division en-ligne (3)
Pour assurer la stabilité (ou convergence) de l'algorithme, on doit
1- raccourcir la boucle de rétroaction
2- utiliser une partie du diviseur pour prédire le quotient
La multiplication est partiellement série/parallèle (4 chiffres)
partiellement série/série (en-ligne)
b
multiplieur
série/parallèle
a
Feu
q
EB
1
mult
+
Compteur
(erreur)
2
b
q
multiplieur en-ligne
sans l'additionneur
série
Départ
Calcul en ligne 32
Division en-ligne (4)
A chaque cycle le compteur de prédiction du quotient reçoit
- deux fois son ancienne valeur (connue)
- plus une valeur inconnue p (-4 ≤ p ≤ +4)
On rend le compteur petit en lui ajoutant ou soustrayant une
valeur inconnue EB (δ ≤ | EB | ≤ 2*δ -1) en comparant son
ancienne valeur à 2 seuils s+ et sLes seuils s+ et s- et δ doivent être faciles à comparer
compteur := 2*compteur - δ + p
valeurs
interdites
compteur := 2*compteur + p
0
s-
s+
pire cas
δ-p
Calcul en ligne 33
Division en-ligne (5)
compteur := 2*compteur + δ + 4
valeurs
interdites
4-δ
compteur := 2*compteur + 4
0
s-
pire cas
s+
valeurs
interdites
δ-4
2*(s+-1) + 4 ≤ δ - 4
2*s- + δ + 4 ≤ δ - 4
2*(s-+1) - 4 ≥ 4 - δ
2*s+ - δ - 4 ≥ 4 - δ
Calcul en ligne 34
Diviseur en-ligne (6)
Control Bit
D
D
D
D
Ha
Ha
Ha
D
D
D
D
Mult
Mult
Parallel
Adder
Mult
Parallel
Adder
Parallel
Adder
D
D
Mult
Start multiplying
Divider is ready
Ha
L
L
L
L
L
L
Mult
Mult
Mult
Mult
Mult
Mult
Parallel
Adder
D
Parallel
Adder
D
Parallel
Adder
D
Parallel
Adder
D
Zéro
Quotient prediction automaton
Calcul en ligne 35
Normaliseur en ligne
horloge de transmission
commune à tous les
opérateurs
serial inputs A
serial output
pseudo-normalized N
Feu
(clear σ)
Normaliseur
procedure normalize (a i, n i : SBD) ;
var σ : SBD ;
begin
σ:= 2 * σ+ ai;
if σ ≥ 2 then ni := 1
else if σ ≤ 2 then ni := -1
else ni := 0 ;
σ:= σ - 2 * ni;
end .
values of σ
1/0
1/1
1
0/1
1/0
0/0
0
1/0
0/1
1
1/0
1/1
Calcul en ligne 36
Détection de débordement
|A|<2
n
valeurs de σ
Force a n à 0
horloge de transmission
commune à tous les
opérateurs
Entrée série A
serial output
0 as 1st digit
débordement
1
1/1
Feu
Leading
digit
killer
1/0
0
1/0
1
X/X
0/0
1/1
débordement
Calcul en ligne 37
Maximum en-ligne de nombres redondants
horloge de transmission
commune à tous les
opérateurs
entrée série des
opérandes A & B
sortie série du
maximum M
Feu
(début de l'opération)
Maximum
(compteur
σ)
+2
A≤B
-1
-2
0
0
if σj-1 in {-1,0,+1}
then σj = 2* σj-1+(aj -bj) else σj= σj-1;
if σj > 0 then up = true;
if σj < 0 then up = false ;
if up then mj = aj else mj = b j ;
valeurs de σ
+1
11
+2
-1
+1
0
-0
A≥B
0,+1,+2
A>B
>1
prendre A
-1
+2
-2
prendre B
-2
1
-1
+1
0,-1,-2
<-1
A<B
Calcul en ligne 38
Racine carrée en-ligne de nombres redondants
horloge de transmission
commune à tous les
opérateurs
entrée série de
l'opérandes A
sortie série de la
racine R = A
Feu
(RAZ de
Racine
(compteur
σ)
r
a
- +
prédiction
de la racine
r
σ)
La racine carrée est
sensible à la parité
du rang du chiffre
le plus significatif
du radicande
quadrateur
en-ligne
si σ < 0 alors r i = 1
si σ = 0 alors r = 0
i
si σ > 0 alors r = -1
i
Calcul en ligne 39
Convertisseur analogique-numérique redondant
horloge de transmission
commune à tous les
opérateurs
Tension à convertir
Tension de référence
reste 0 := V in ;
si reste t ≥ ( Vref /2 ±
V in
Vref
Feu
(Échantillonnage Vin )
CAN
cyclique
redondant
B
Vin
Valeur
Vref
Vref /2) alors reste t+1 := 2*(reste t - Vref )
sinon si reste t ≤ - ( Vref /2 ±
sinon reste t+1 := 2*(reste t )
Vref /2) alors reste t+1 := 2*(reste t + Vref )
Calcul en ligne 40
Convertisseur analogique-numérique redondant
(2)
horloge
Vin
amplificateur
comparateurs
E/B
*2
échantillonneur
bloqueur
sommateur
reste t+1 = 2*reste t -bt *
bt {-1,0,+1}
Vref
≤s-
+
Σ
≥s+
Vref
-
+
0
Calcul en ligne 41
Convertisseur analogique-numérique redondant
(3)
(4)
φ
retardée
+
s
φ
b-
1,5pf
2
φ ÷
mux
s-
b+
mux
1
+
sortie b et b-
Vref
1
φ
1
1,5pf
3pf
φ
φ ∃φ 5 φ
2
1
2
φ
2
1
-
φ
2
φ
1
OTA
+
Vin
Feu
Feu
φ1 ∧ φ 2 = 0
Les phases
φ1 et φ2 ne se recouvrent pas
Calcul en ligne 42
Conversion "à la volée" du redondant
Concaténation de A et B (A, A-1)
m
S := A * 2 + B
n+1
si B ≥ 0 alors S := A & B
sinon S := (A-1) & B;
si (B-1) ≥ 0 alors (S-1) := A & (B-1)
sinon (S-1) := (A-1) & (B-1);
(B, B-1)
m+1
concaténateur d'entiers signés
n+m+1
(S, S-1)
( le bit de signe de B est omis dans la concaténation &)
q q-1 bits
1
01
0 0 00
-1 -1 11
-2 10
registre
n+1
(q,q-1)
2
concaténateur d'entiers signés
Calcul en ligne 43
Conversion "à la volée" du redondant (2)
premier
dernier
suite q0 q 1 q 2
qn
qi {-1,0,+1}
j
Qj =
Σ
i=0
pi2-i pi {0,1}
Q0 = q0 , Q0 -1 = q0
Qj - 2-j
Qj
j+1 bits
1
1
0
2-j-1
{
multiplexeur
{
qj+1 2-j-1
- 2-j-1 = - 2-j + 2-j-1
0
Qj+1
q0 ≠ 0
Qj+1 - 2-j-1
qj+1
qj+1
qj+1
qj+1
=1
≠0
≠0
=0
Calcul en ligne 44
Combinaisons d'opérateurs
en-ligne
Certains opérateurs en-ligne parallélisent implicitement
leur(s) opérande(s) ou leur résultat.
Cette propriété peut être exploitée pour construire des
opérateurs complexes avec
- un coût moindre
- une latence moindre ( mais une période supérieure)
Par exemple :
Opérateur
coût par
chiffre
latence
C=A2
76
3
S=A+B
0
2
R= A
76
1
126
1
D= A2 + B 2
Calcul en ligne 45
Classes d'opérateurs en-ligne
Opérateur
Abs/max/min 1
2
Add/Sous
S=A±B
Multiplication 3
P=A*B
Carré
2
C=A
Division
4
Q=A÷B
Racine carrée
R= A
Classement des
opérateurs en-ligne en
fonction de leur affinité
(possibilité de partage)
carré
Classe 3
addition
Classe 1
racine
Classe 4
Classe 3
Parties mises
en commun
Calcul en ligne 46
par
ser
par
ser
na
S
na
na
na
na
na
na
Q
na
Q
na
R
na
A,B
na
/
A,B
A
/
/
B
/
B
/
na
0
0
0
0
2
1
0
0
2
0
2
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
2
1
1
1
2
1
2
1
1
0
1
0
1
2
1
1
1
2
1
2
1
1
Recursion
register
Parallel inpuy
register
SP register
M
na
S
P
P
C
C
Q
Q
Q
Q
R
R
2-input
adder
ser
par
ser
ser
ser
⊗
vector/digit
multiply
Abs/max/min 1 / ser
Add/Sous
2 1 par
S=A±B
2 ser
Multiplication 3 1 par
P=A*B
2 ser
Carré
1 ser
2
C=A
2 par/ser
Division
4 1 par
Q=A÷B
2 par
3 ser
4 ser
Racine carrée
1 par
R= A
2 ser
résultat
en série
résultat
en parallèle
opérande
en parallèle
# classe
# variante
Opérateur
Opérandes
A et B
coût matériel de l'opérateur
en nombre de :
0
0
0
1
1
1
1
1
1
1
1
1
1
Calcul en ligne 47
Règles de combinaison d'opérateurs
Règle 1 : Deux opérateurs de classe 3 partageant la même entrée
peuvent partager le même SP-registre.
Règle 2 : Si la sortie d'un opérateur de classe 4 est reliée à l'entrée
d'un opérateur de classe 3 alors ils peuvent partager un SP-registre.
Règle 3 : Si les sorties d' opérateurs de classe 3 sont ajoutées (ou
soustraites) alors ils peuvent partager leur registre de récursion.
Le résultat de cette fusion est de classe 3.
Règle 4 : Si la sortie d'un opérateur de classe 3 est reliée à l'entrée
d'un opérateur de classe 4 ils peuvent partager leur registre de
Calcul en ligne 48
récursion.
Exemple 1: processeur Euclidien
2
Z= X +Y
Règles d'assemblage
des opérateurs
X
Y
2
Z=
B
+
A
()2
()2
+
règle 3
Z
règle 4
Y
A
B
Carrés des
deux autres
côtés
X
e
d
é use
r
r
Ca thén
po
y
l'h
Calcul en ligne 49
Norme Euclidienne en-ligne
Z = X2 + Y2
horloge de transmission
commune à tous les
opérateurs
entrée série des
coordonnées X et Y
sortie série de la norme
Z = X2 + Y2
feu
Processeur Euclidien en-ligne
poids
forts en tête
Calcul en ligne 50
Norme Euclidienne en-ligne (2)
Z = X 2 + Y 2 en-ligne
avec 32 chiffres de précision
Application des règles : gain 19%
Standard
Cells
3
Standard
Bitslices
Cells
16 Bitslices
⇒
16 Bitslices
Calcul en ligne 51
Norme Euclidienne en-ligne (3)
serial input X
X SP-register
y
j
x
j
∆
Z SP-register
adder
reg.
3 digits
*2
{-1, 0 , 1}
j
Carry propagation
free adder
2
Zi
0
-∆ Zi
2
w
t
j
*4
q, r
q, r
y
∆ Y2
∆ X2
j
w
z
j
>0
=0
<0
Y SP-register
{-1, 0 , 1}
x
j
carries
collector
serial input Y
2
2
∆ X j + Yj
s, g
Carry propagation
free adder
*2
0
Recursion Reg.
Calcul en ligne 52
Exemple 2: filtre de Kalman
avec Jin Zian MOU
β est le carré du facteur d'oubli.
Le circuit ci-contre n'est pas systolique,
il n'y a pas de retard horizontal. Il est
"pipeliné" au niveau du chiffre. Toutes les
entrées se font en série.
Description fonctionnelle de la cellule ronde
Xin
2
α5in
C
S
r
α9out
2
+X in
r' = r
C = r ÷ r'
S = Xin ÷ r'
αout = C . αin
r = β . r'
Description fonctionnelle de la cellule carrée
S
C
Xout
X31
X21
X11
X32
X22
X12
X33
X 23
X 13
X34
X24
X14
X35
X25
X15
Y3
Y2
Y1
r
r
r
r
r
r
r
r
r
r
r
r
r
1
r
C
S
r
α
r
C
S
C
S
α
r
C
S
α
r
C
S
α
Xin
C
ENST-Paris
S
Xout= (C*Xin -S*r)
r = β *(S*Xin - C*r)
r
C
S
r
multiply
e
Calcul en ligne 53
Filtre de Kalman (2)
cellule ronde
cellule carrée
Xin
C
S
1
x
2
C
x
x
4
x
2
Xout
+ 6
r
x 7
r2
delay 4
r'
÷
7
8
2
β6Η
r'
÷
C
Règle 1 sur 1 & 4
règle 3 sur 1,2,3,4,5 &
α in
x 9 S
6
α out
Règle 3 puis 4 sur 1,2,3 & 6
gain de 19%
règle 2 sur 3,4,7 & 8
gain de 20%
Règle 1 sur 1 & 2 puis 1 & 9
règle 2 sur 5,6 & 7 puis 6,8 & 9
gain de 21%
1
β
2
3
2
+ 2
delay
4
+ 2
β×
β
8
delay
() 1
r
5
()
2
() 6
S
5
x
+ 3
Xin
Xin
x
3
5
β r'
1
delay
1
7
/r'
r
x
2
8
α in
÷
β6ℵ
6
C
x 10
α out
x
9
S
Calcul en ligne 54
C
S
Xout
Xin
r
count
count
count
D
mult
Add
Add
Rec. Reg.
Add
β;Π
Rec. Reg.
Add
Add
SP- S Reg.
mult
SP-PP Delay Reg.
Rec. Reg.
mult
r'
r'
mult
mult
SP- Xin Reg.
mult
SP- C Reg.
Cellule carrée
Calcul en ligne 55
out
α
in
Head
Logic
Divider
α 
C
S
Head
Logic
Divider
Delay
Delay
C
S
X
in
r
count
Delay
count
r'
count
β
r'
mult
mult
mult
mult
mult
mult
Rec. Reg.
Reg.
Add
in
SP-Xin Reg.
SPα mult
Rec. Reg.
Add
mult
SP- C Reg.
Rec. Reg.
Add
mult
SPReg.
SP-Xin
S Reg.
Rec. Reg.
Add
SP- r' Reg.
Rec. Reg.
Add
SP-PP Delay Reg.
Add
SP- r Reg.
mult
SP- Xin Reg.
Cellule ronde
Calcul en ligne 56
Polynômieur en ligne
n
i
x
x
e = Σ i ! en-ligne
i=0
application des règles: gain 19%
Compteur
Compteur
Compteur
Compteur
+
SP 5
+
initialisation
+
initialisation
+
récursion
+
SP 4
+
initialisation
+
récursion
+
SP 3
+
initialisation
+
récursion
+
SP 2
récursion
+
initialisation
+
SP 1
initialisation
récursion
+
Compteur
a0 + x * ( a 1 + x * ( a2 + x * ( a 3 + x * ( a 4 + x * a 5 ) ) ) )
Calcul en ligne 57
Polynômieur en ligne (2)
n
i
x
x
e = Σ
en-ligne
i=0
i!
Règle : Si une constante est à ajouter à la sortie d'un opérateur
de type 3 ou à l'entrée d'un opérateur de type 4 alors
son coût est nul (initialisation du registre de récursion)
sa latence d'addition est nulle
a 0 + x * (a 1 + x * (a 2 + x * (a 3 + x * ( a 4 + x * a 5 ))))
latence 3
latence 3
latence 3
latence 3
latence 3
Latence indépendante du polynôme si ∃ k tq. ∀ n ≥ k
an+1x
an
≤
2- 3
Calcul en ligne 58
Papillon FFT en ligne
AI
récursion
YI = AI - BI cos ω - BR sin ω
cos ω SP-Reg
BR SP-Reg
récursion
AR
serial
adder
sin ω SP-Reg
sin ω
BR
XI = AI + BI cos ω + BR sin ω
BI SP-Reg
BI
cos ω
serial
adder
serial
adder
YR = AR + BR cos ω - BI sin ω
serial
adder
XR = AR + BR cos ω - BI sin ω
Calcul en ligne 59
Références
" Design of an on-line Euclidean Processor "
R. Bouraoui, A. Guyot and G. Walker
International Conference on Microelectronics 1992 (ICM'92), Monastir, Tunisia, Décembre 1992
" On-line approximation of real functions using polynomials "
A. Skaf, J.C. Bajard*, A. Guyot and J.M. Muller* (* LIP-ENS Lyon)
International Conference on Microelectronics 1992 (ICM'92), Monastir, Tunisia, Décembre 1992
" Design of an on-line Euclidean processor "
R. Bouraoui, A. Guyot and G. Walker
6 th International Conference on VLSI design, Bombay, India, Janvier 1993
" On-line operator for Euclidean distance "
R. Bouraoui, A. Guyot and G. Walker
EDAC-EUROASIC Conference, Paris, France, 22-25 Février 1993
" A VLSI Circuit for on-line polynomial computing: application to exponential,
trigonometric and hyperbolic functions "
A. Skaf, J.C. Bajard*, A. Guyot and J.M. Muller* (* LIP-ENS Lyon)
VLSI 93, Grenoble, France, Septembre 1993
" VLSI design of on-line add/multiply algorithms "
A. Skaf and A. Guyot
ICCD 93, Cambridge, Massasusett, USA, Octobre 1993
Calcul en ligne 60
" A VLSI implementation of Parallel Fast Fourier Transform "
A. Vacher, M. Benkhebbab, A. Guyot, T. Rousseau and A. Skaf
EDAC (European Design Automation Conference) , Paris, Février-Mars 1994
" Error-Speed trade-off for FFT VLSI "
A. Vacher and A. Guyot
26th IEEE Southeastern Symposium on System Theory, Athens, Ohio, Mars 1994
" A VLSI implementation of Fast Fourier Transform for Large Sample Number "
A. Vacher and A. Guyot
International Symposium on Signal Processing and Neural Network, Lille, Avril 1994
" Design for testability of an on-line multiplier "
H. Bederr*, M. Nicolaïdis* and A. Guyot (* Reliable Integrated System)
VLSI Test Symposium, Cherry Hill, New Jersey, Avril 1994
" SAGA: The first general purpose on-line arithmetic co-processor "
A. Skaf and A. Guyot
8 th International Conference on VLSI design (VLSI Design 95) New Delhi, India, Janvier 1995
" On-line Hardware Implementation for Complex Exponential and Logarithm "
A. Skaf, J.M. Muller* and A. Guyot (* LIP/ENSL Lyon)
20th European Solid-State CIRcuits Conference (ESSCIRC), Ulm, Germany, Septembre 1994
Calcul en ligne 61