Algorithme de multiplication d'entiersLes algorithmes de multiplication permettent de calculer le résultat d'une multiplication. Graphiquement, il s'agit de transformer un rectangle multiplicateur × multiplicande en une ligne, en conservant le nombre d'éléments. Ce type de multiplication n'utilise que des additions et des multiplications ou des divisions par 2. Elle ne nécessite pas de connaître de table de multiplication (autre que la multiplication par 2).
Algorithme de multiplication de BoothL'algorithme de Booth a pour but de multiplier deux nombres binaires signés représentés en complément à deux, en supposant les opérations de décalage nettement moins onéreuses que les additions/soustractions. Cet algorithme a été inventé par Andrew Booth en 1950 alors qu'il effectuait des recherches en cristallographie. Soit à calculer 500×A ; 500 = 256+128+64+32+16+4 = 1111101002 . Mais 1 = 2-1 ; 3 = 4-1; 7=8-1; 127 = 128-1 etc. On peut donc remplacer un train d'additions binaires par une addition de tête et une soustraction de queue.
MultiplieurEn électronique analogique, un multiplieur est un circuit dont le signal de sortie est le produit de la valeur instantanée de ses signaux d'entrée. En électronique numérique, un multiplieur est un circuit électronique effectuant une multiplication. Des multiplieurs sont intégrés dans la plupart des processeurs actuels, tant pour réaliser des multiplications entre nombres entiers qu'entre nombres représentés en virgule flottante. En électronique analogique, un multiplieur est un circuit dont le signal de sortie est le produit de la valeur instantanée de ses signaux d'entrée.
Algorithme de KaratsubaEn informatique, l'algorithme de Karatsuba est un algorithme pour multiplier rapidement deux nombres de n chiffres avec une complexité temporelle en O(n) ≈ O(n) au lieu de O(n) pour la méthode naïve. Il a été développé par Anatolii Alexevich Karatsuba en 1960 et publié en 1962 . Pour multiplier deux nombres de n chiffres, la méthode naïve multiplie chaque chiffre du multiplicateur par chaque chiffre du multiplicande. Cela exige donc n produits de deux chiffres. Le temps de calcul est en O(n2).
Matrix multiplication algorithmBecause matrix multiplication is such a central operation in many numerical algorithms, much work has been invested in making matrix multiplication algorithms efficient. Applications of matrix multiplication in computational problems are found in many fields including scientific computing and pattern recognition and in seemingly unrelated problems such as counting the paths through a graph. Many different algorithms have been designed for multiplying matrices on different types of hardware, including parallel and distributed systems, where the computational work is spread over multiple processors (perhaps over a network).
Multiplicationthumb|La multiplication de 4 par 3 donne le même résultat que la multiplication de 3 par 4. La multiplication est l'une des quatre opérations de l'arithmétique élémentaire avec l'addition, la soustraction et la division. Cette opération est souvent notée avec la croix de multiplication « × », mais peut aussi être notée par d'autres symboles (par exemple le point médian « · ») ou par l'absence de symbole. Son résultat s'appelle le produit, les nombres que l'on multiplie sont les facteurs.
Complexité de la multiplication de matricesEn informatique théorique, la complexité de la multiplication de matrices est le nombre d'opérations requises pour l'opération de produit matriciel. Les algorithmes de multiplication de matrices constituent un sujet central dans les algorithmes théoriques et numériques en algèbre linéaire numérique et en optimisation, donc déterminer la complexité en temps du produit est d'une importance pratique. L'application directe de la définition mathématique de la multiplication de matrices donne un algorithme qui nécessite opérations sur le corps de base pour multiplier deux matrices d'ordre .
Multiplieur-accumulateurEn programmation, à l'origine en traitement numérique du signal, l'opération combinée multiply–accumulate (MAC) ou multiply-add (MAD) est une instruction-machine qui calcule le produit de deux nombres et agrège le résultat au contenu d'un accumulateur. Le circuit électronique qui réalise cette opération est appelé « multiplieur-accumulateur » ; l'opération elle-même est souvent abrégée en MAC ou « opération MAC.
Produit matricielLe produit matriciel désigne la multiplication de matrices, initialement appelé la « composition des tableaux ». Il s'agit de la façon la plus fréquente de multiplier des matrices entre elles. En algèbre linéaire, une matrice A de dimensions m lignes et n colonnes (matrice m×n) représente une application linéaire ƒ d'un espace de dimension n vers un espace de dimension m. Une matrice colonne V de n lignes est une matrice n×1, et représente un vecteur v d'un espace vectoriel de dimension n. Le produit A×V représente ƒ(v).
Technique de multiplication dite russeLa technique de multiplication dite russe consiste à diviser par 2 le multiplicateur (et ensuite les quotients obtenus), jusqu'à un quotient nul, et à noter les restes ; et à multiplier parallèlement le multiplicande par 2. On additionne alors les multiples obtenus du multiplicande correspondant aux restes non nuls. Cela revient en fait à écrire le multiplicateur en base 2 et à faire ensuite des multiplications par 2 et des additions. C'est donc une variante de la technique de la multiplication en Égypte antique, bien qu'elle ait pu être redécouverte indépendamment.
AdditionneurUn additionneur est un circuit logique permettant de réaliser une addition. Ce circuit est très présent dans les ordinateurs pour le calcul arithmétique mais également pour le calcul d'adresses, d'indice de tableau dans le processeur. On dénombre deux types d'additionneurs : parallèle (circuit combinatoire) et série (circuit séquentiel). Dans la classe des additionneurs parallèles, nous décrirons ici ceux à propagation de retenue et ceux à retenue anticipée.
Architecture ARMLes architectures ARM sont des architectures externes de type RISC 32 bits (ARMv1 à ARMv7) et 64 bits (ARMv8) développées par ARM Ltd depuis 1983 et introduites à partir de 1990 par Acorn Computers. L'architecture ARM est le fruit du travail de Sophie Wilson. Dotés d'une architecture relativement plus simple que d'autres familles de processeurs et faibles consommateurs d'électricité, les processeurs ARM sont aujourd'hui dominants dans le domaine de l'informatique embarquée, en particulier la téléphonie mobile et les tablettes.
Wallace treeA Wallace multiplier is a hardware implementation of a binary multiplier, a digital circuit that multiplies two integers. It uses a selection of full and half adders (the Wallace tree or Wallace reduction) to sum partial products in stages until two numbers are left. Wallace multipliers reduce as much as possible on each layer, whereas Dadda multipliers try to minimize the required number of gates by postponing the reduction to the upper layers. Wallace multipliers were devised by the Australian computer scientist Chris Wallace in 1964.
Field-programmable gate arrayA field-programmable gate array (FPGA) is an integrated circuit designed to be configured after manufacturing. The FPGA configuration is generally specified using a hardware description language (HDL), similar to that used for an application-specific integrated circuit (ASIC). Circuit diagrams were previously used to specify the configuration, but this is increasingly rare due to the advent of electronic design automation tools. FPGAs contain an array of programmable logic blocks, and a hierarchy of reconfigurable interconnects allowing blocks to be wired together.
Division algorithmA division algorithm is an algorithm which, given two integers N and D (respectively the numerator and the denominator), computes their quotient and/or remainder, the result of Euclidean division. Some are applied by hand, while others are employed by digital circuit designs and software. Division algorithms fall into two main categories: slow division and fast division. Slow division algorithms produce one digit of the final quotient per iteration. Examples of slow division include restoring, non-performing restoring, non-restoring, and SRT division.
Bit slicingBit slicing is a technique for constructing a processor from modules of processors of smaller bit width, for the purpose of increasing the word length; in theory to make an arbitrary n-bit central processing unit (CPU). Each of these component modules processes one bit field or "slice" of an operand. The grouped processing components would then have the capability to process the chosen full word-length of a given software design. Bit slicing more or less died out due to the advent of the microprocessor.
XOR gateXOR gate (sometimes EOR, or EXOR and pronounced as Exclusive OR) is a digital logic gate that gives a true (1 or HIGH) output when the number of true inputs is odd. An XOR gate implements an exclusive or () from mathematical logic; that is, a true output results if one, and only one, of the inputs to the gate is true. If both inputs are false (0/LOW) or both are true, a false output results. XOR represents the inequality function, i.e., the output is true if the inputs are not alike otherwise the output is false.
Architecture 16 bitsvignette|Le WDC W65C816S, un micro-processeur 16 bits En informatique, l’architecture est un type de structure d'ordinateur exploitant des mots (processeur, mémoire, bus) d'une taille de (soit deux octets). Un mot de peut stocker 2 valeurs différentes, soit . Un processeur peut donc adresser directement de mémoire. Au milieu des années 1960, les premiers ordinateurs commercialisés incluent le HP-2116 de HP, le PDP-11 de DEC et le Nova de Data General. Ils sont conçus et fabriqués à base de composants discrets et de ce fait relativement complexes et volumineux.
ResteEn mathématiques, le résultat d’une division est un quotient et un reste. Le reste est nul si le quotient des deux nombres de la division est exact, sinon ce quotient est approximatif. Une division est dite euclidienne quand son dividende, son diviseur et son quotient sont des nombres entiers naturels. Dans une division euclidienne, le produit du quotient et du diviseur plus le reste est égal au dividende, et le reste est un entier naturel strictement inférieur au diviseur.
Virgule flottantevignette|Comme la notation scientifique, le nombre à virgule flottante a une mantisse et un exposant. La virgule flottante est une méthode d'écriture de nombres fréquemment utilisée dans les ordinateurs, équivalente à la notation scientifique en numération binaire. Elle consiste à représenter un nombre par : un signe (égal à −1 ou 1) ; une mantisse (aussi appelée significande) ; et un exposant (entier relatif, généralement borné).