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