Accélération des opérateurs



Documents pareils
Logiciel de Base. I. Représentation des nombres

IFT2880 Organisation des ordinateurs et systèmes

Représentation des Nombres

Chapitre 10 Arithmétique réelle

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Informatique Générale

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Conversion d un entier. Méthode par soustraction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Codage d information. Codage d information : -Définition-

Licence Sciences et Technologies Examen janvier 2010

Bases de programmation. Cours 5. Structurer les données

MEMOIRES MAGNETIQUES A DISQUES RIGIDES

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

ALGORITHMIQUE ET PROGRAMMATION En C

Mathématiques appliquées à l informatique

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Probabilités sur un univers fini

Représentation d un nombre en machine, erreurs d arrondis

Architecture de l ordinateur

Cours Informatique 1. Monsieur SADOUNI Salheddine

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain

GPA770 Microélectronique appliquée Exercices série A

Organisation des Ordinateurs

Introduction à l étude des Corps Finis

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

V- Manipulations de nombres en binaire

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Glossaire des nombres

Les opérations binaires

Patentamt JEuropaisches. European Patent Office Numéro de publication: Office européen des brevets DEMANDE DE BREVET EUROPEEN

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Représentation d un entier en base b

La fonction exponentielle

Conception de Systèmes de Communications Numériques

Précision d un résultat et calculs d incertitudes

Transmission d informations sur le réseau électrique

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

IFT1215 Introduction aux systèmes informatiques

QUESTION 1 {2 points}

Exemple d implantation de fonction mathématique sur ST240

Feuille TD n 1 Exercices d algorithmique éléments de correction

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

LES TYPES DE DONNÉES DU LANGAGE PASCAL

avec des nombres entiers

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Algorithme. Table des matières

UE Programmation Impérative Licence 2ème Année

I- Définitions des signaux.

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

IV- Comment fonctionne un ordinateur?

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Algorithmique et Programmation, IMA

Compter à Babylone. L écriture des nombres

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

DOCM Solutions officielles = n 2 10.

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Une version javascript sera disponible directement dans le cours prochainement.

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Programmation C. Apprendre à développer des programmes simples dans le langage C

Réseaux grande distance

Chapitre 7. Récurrences

Puissances d un nombre relatif

MIS 102 Initiation à l Informatique

Architecture : Circuits numériques et éléments d architecture

Acquisition et conditionnement de l information Les capteurs

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application


Calcul scientifique précis et efficace sur le processeur CELL

ISO/CEI NORME INTERNATIONALE

Date : Note /20 : EVALUATION Nom : Prénom : Classe : Traitement sur mots

Chapitre VI - Méthodes de factorisation

ASR1 TD7 : Un microprocesseur RISC 16 bits

PROBABILITÉS CONDITIONNELLES

a) b)

Suites numériques 4. 1 Autres recettes pour calculer les limites

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Probabilités sur un univers fini

DM 1 : Montre Autoquartz ETA

L AUTOMATISME LE SIGNAL

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Transmission de données. A) Principaux éléments intervenant dans la transmission

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

EXERCICES DE REVISIONS MATHEMATIQUES CM2

CONFIGURATION DE L AUTOMATE SIEMENS

Parallélisme et Répartition

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Cours d initiation à la programmation en C++ Johann Cuenin

Microprocesseur + Logiciel

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Définitions. Numéro à préciser. (Durée : )

VIII- Circuits séquentiels. Mémoires

Transcription:

Accélération des opérateurs

Principe Tous les algorithmes que nous implémenterons en TP sur carte sont basés sur 4 opérations de base : Addition/Soustraction Multiplication Division MAC Accélérer l opérateur permet d accélérer le traitement global Pour les types entiers Pour les types réels

Plan Représentation des nombres I. 1. 2. Entiers Flottants Accélérations II. 1. Additionneur entier

I. Rappels

1. Nombres signés Quatre techniques de représentation : Signe et grandeur Complément à 1 Complément à 2 Avantage : A-B = A+!B+1 Par excédent

2. Nombres flottants IEEE 754 (1985)

a. Notation en virgule flottante Nombre flottant N en binaire : Un bit de signe s Un exposant e Une mantisse m N = ( 1) s m.2e Représentations équivalentes 0.0000101011.20 0.000000101011.2 2 1.01011.2 5

Forme normalisée 1.00100101 00100101 S Exp mantisse Normalisation: Le chiffre le plus significatif (non nul) est placé à l extrême gauche de la mantisse

La norme IEEE 754 Objectifs de la norme Représentation des nombres Procédures d arrondis Précision Traitement des exceptions Principe Toujours 1 avant la virgule (ce bit n est pas codé) 1<mantisse<2

Précision simple sur 32 bits (10**-38 à 10**38) S 1 bit Exp 8 bits mantisse 23 bits Précision double sur 64 bits (10**-308 à 10**308) S Exp mantisse 1 bit 11 bits 52 bits

Codage de l exposant L exposant n est pas représenté en complément à 2. Il est biaisé Biais = -127 exp codé = biais + exp réel Il est donc non signé

Précision Pour un nombre total de bits constant, il faut faire un compromis entre rang et précision Si on augmente la taille de l exposant le rang augmente mais la précision diminue Ecart non constant entre les nombres 23 E 127 Résolution : N = 2.2 Par contre, la précision relative est constante 2 23 P= 2 23 1,2.10 7 1, F

Exemple Le nombre binaire suivant correspond à 1 10000001 01000000000000000000000 Exposant biaisé= 129 Exposant = 2 Partie fractionnaire = 0,01 en base 2 Soit 0,25 en base 10 ce qui donne une mantisse de 1,25 Soit N = -1,25.2^2 = -5

b. Modes d arrondis Au plus proche, Vers un nombre pair lorsque la valeur est à mi-chemin Vers 0 Vers +/- infini

c. Valeurs spéciales Il est possible de Diviser par 0 Calculer la racine carré d un nombre négatif Le résultat est +infini Le résultat est NaN (Not a Number), c est une configuration de bits de la norme Aucune gestion d exception n est nécessaire puisque x+nan, x/nan, x*nan = NaN 3e sorte de nombres speciaux : les nombres dénormalisés Lorsque un nombre n est inférieur à 1,0xEmin, on pourrait penser que n est forcé à 0 Dans la norme, ces nombres sont représentés en utilisant des mantisses inférieures à 0 Ceci est appelé sous-dépassement progressif puisque lorsqu ils sont inférieurs à Emin, les nombres perdent successivement leur bits significatifs et ne sont seulement représentés par zéro que quand tous sont perdus

Exemple En base 10 avec 4 chiffres significatifs x=1,234.10^emin x/10 = 0,123.10^Emin x/1000 = 0,001^Emin x/10000 = 0 Si y = 1,256.10^Emin alors le test d égalité entre x et y est fait par y-x==0? Dans des systèmes de forcage à 0, x-y=0 donc x=y Avec la norme x-y=0,02.10^emin, donc x!=y

Résumé Simple Simple étendue Double Double étendue P (bits significatifs 24 >=32 53 >=64 Emax 127 >=1023 1023 >=16383 Emin -126 <=-1022-1022 <=-16382 Excès de l exposant 127 1023 Exposant Partie Fractionnaire représente e=emin-1 (0) F=0 +/-0 e=emin-1 (0) F!=0 0,f.2^emin Emin<e<Emax 1<e<254-1,f.2^e e=emax+1 (255) F=0 +/-infini e=emax+1 (255) F!=0 NaN

II. Accélérations des opérateurs

1. Accélération de l additionneur entier L addition entière et la plus simple et la plus importante : Calcul de base des algos Incrémenter un compteur Calcul d adresses 3 méthodes d accélération Anticipation de retenue Saut de retenue Sélection de retenue

a1. Retenue anticipée Si = ai bi c i + a i bi c i + a i b i ci + ai bi ci Problème : il faut propager la retenue à travers tous les additionneurs, La sortie du Ne adder arrive avec N-1 temps de retard par rapport au 1er Donc l objectif est de n écrire ci que en fonction des entrées ai et bi ci = ai bi + bi ci 1 + ai ci 1 ci = g i 1 + pi 1ci 1

Propagation et génération Si gi-1 est vrai, alors ci est vrai, une retenue a été générée pi 1 = ai 1 + bi 1 Si pi-1 est vrai alors ci dépend de ci-1, la retenue est propagée On génère si les 2 entrées du ie adder sont à 1 g i 1 = ai 1bi 1 On propage si une des 2 entrées sont à 1 ci = Dans l équation précédente on remplace... + successivement ci par (gi-1 + pi-1.ci-1) g i 1 + pi 1 g i 2 + pi 1 pi 2 g i 3 + pi 1 pi 2... p1 g 0 + pi 1 pi 2... p1 p0 c0

Additionneur CLA Cet additionneur est référencé par Carry-Lookahead Adder (CLA) Il utilise 5 couches de logique : 1 pour p et g 2 pour les retenues 2 pour les sommes Comparaison aux 2n couches de l additionneur à propagation Mais sur n bits, la porte OU a une entrance (fanin) de n+1 ainsi que pour la porte ET la plus à droite Donc sa construction devient difficile quand n est grand Irrégulier Surface importante

Schéma du CLA G1 P1 G0 P0 C0 Gi-1 c2 c1 Pi-1 Gi-2 p1 G0 P0 C0 Pi-2 Gi-3 ci ci = g i 1 + pi 1 g i 2 + pi 1 pi 2 g i 3 +... + pi 1 pi 2... p1 g 0 + pi 1 pi 2... p1 p0 c0

a2. Construction par étapes Pour tout j tel que i<j, j+1<k On a les relations récursives suivantes Exemple : ck + 1 = Gik + Pik ci Gik = G j + 1,k + Pj + 1,k Gij Pik = Pij Pj + 1,k c1 = G01 + P01c0 G01 = g1 + p1 g 0 P01 = p1 p0

Exemple P03 et G03 Puisque Pii = pi Gii = gi P03 = P01 P23 = P00 P11 P22 P33 P03 = p0 p1 p2 p3 On remarque que G47 et P47 sont indépendant des entrées a[0..3] G03 = G23 + P23G01 = (G33 + P33G22 ) + ( P22 P33 )(G11 + P11G00 ) G03 = g 3 + p3 g 2 + p3 p2 g1 + p3 p2 p1 g 0 G47 = G67 + P67G45 = (G77 + P77G66 ) + ( P66 P77 )(G55 + P55G44 ) G47 = G77 + P77G66 + P66 P77G55 + P55 P66 P77G44 G03 = g 7 + p7 g 6 + p6 p7 g 5 + p5 p6 p7 g 4

Construction L additionneur est donc composé de 2 parties : La première calcule les différentes valeurs de P et G à partir des pi et gi selon les équations précédentes La seconde utilise ce valeurs de P et G pour calculer les retenues selon l équation précédente Structuration en arbre binaire

Structure d arbre binaire Première partie de l arbre à anticipation de haut en bas Cellule de type 1 : calcul des pi, gi Cellules de type 2 : combinaison des P et G gi=ai.bi pi=ai+bi Pi,k=Pij. Pj+1,k Gi,k=Gj+1,k+Pj+1,k.Gij

Chaque cellule doit connaître un couple (P,G) pour faire la conversion Deuxième partie de l arbre à anticipation de bas en haut

Additionneur complet : Combinaison des 2 arbres précédents de haut en bas, P et G de bas en haut, les retenues Combinaison des 2 arbres précédents de haut en bas, P et G de bas en haut, les retenues

Complexité de la structure Les bits passent à travers logn couches au lieu de 2n pour l additionneur à propagation Alors que l additionneur à propagation de retenue a n cellules, le CLA a 2n cellules, Au prix d un investissement en taille, il y a une amélioration énorme en vitesse Ce sera notre première conclusion : compromis performance/surface

Amélioration possible

b) Les additionneurs à saut de retenue Carry Skip Adder (!= CSA) À mi-chemin entre l adder à propagation et l adder à anticipation À la fois en vitesse et en coût En effet, dans les équations P et G, le calcul de P est beaucoup plus simple que celui de G (voir exemple P03 et G03) Un additionneur à saut de retenue ne calcul que les P

Additionneur à saut de retenue sur 20 bits où chaque bloc a 4 bits 2 couches de logiques par nombre d entrées pour ci (AND puis OR) Si la retenue sortante du bloc précédent et le signal P du bloc courant sont vrais, Alors la retenue saute le bloc et attaque le suivant! Remarque : le découpage en blocs de 4 est ici un choix, d autres sont possibles!

Vitesse de propagation (n,k) S il faut 1 unité de temps pour traverser 2 couches de logiques Il faut k unités pour traverser un bloc de taille k Et 1 unité de temps pour sauter un bloc Pour le chemin le plus long pour un additionneur n bits k pour le premier bloc (c0) n/k 2 pour sauter les blocs intérmédiaires K pour le dernier bloc (cn) Soit pour (20,4), t= 4 + (20/4-2) + 4 = 11 unités de temps

Additionneur à sélection de retenue Principe : 2 additions sont effectuées en parallèle L une en supposant que la retenue d entrée vaut 0, L autre qu elle vaut 1 Quand la retenue véritable est connue, la somme correcte (qui est précalculée) est simplement sélectionnée.

Exemple (8, 4) pendant que la somme des 4 bits de poids faible est calculée, les bits de poids fort sont calculés 2 fois en parallèle

Propriétés Par rapport à la propagation simple, L additionneur à sélection est 2 fois plus rapide Pour un surcoût de 50% en surface Au lieu d être divisé en 2, il pourrait être divisé en 4, pour limiter la taille le fanout de la retenue à l entrée des mux et accroître les perfs.

ci = (ab) + (ab + a + b).ci 1 c = ab 0 i ci1 = ab + a + b ci = ci0 + ci1.ci 1

Résumé Les chiffres fournies sont pour un paramétrage optimal de (n,k) temps Surface Propagatio n simple O(n) O(n) Retenue anticipée O(log n) O(nlog n) Saut de retenue O(sqrt n) O(n) Sélection de retenue O(sqrt n) O(n)

2. Multiplication / Division

Mul / Div Des algorithmes triviaux basés sur les décalages peuvent être implémentés mais ils ne fournissent qu un bit par cycle

MUL DIV

Division SRT P=A/B+R S il y a k zéro au début de B quand il est exprimé sur n bits, décaler à gauche tous les registres de k bits. Le MSB sera alors 0 et le suivant 1 Pour i = 0 à n-1 faire : Si les 3 bits MSB de P sont égaux, mettre qi à 0 et décaler (P, A) d une position à gauche

Comparatifs de circuits

Comparatif MIPS R3010 Weitek 3364 TI 8847 Temps de cycle (ns) 40 50 30 Taille (mm²) 74,1 95,2 100,7 Transistors 75 000 165 000 180 000 Broches 84 168 207 Puissance (watts) 3,5 1,5 1,5 Cycles/add 2 2 2 Cycles/mul 5 2 3 Cycles/div 19 17 11 Cycles/sqrt - 30 14

TI8847

MIPS R3010

Weitek 3364