Error correction codeIn computing, telecommunication, information theory, and coding theory, forward error correction (FEC) or channel coding is a technique used for controlling errors in data transmission over unreliable or noisy communication channels. The central idea is that the sender encodes the message in a redundant way, most often by using an error correction code or error correcting code (ECC). The redundancy allows the receiver not only to detect errors that may occur anywhere in the message, but often to correct a limited number of errors.
Concatenated error correction codeIn coding theory, concatenated codes form a class of error-correcting codes that are derived by combining an inner code and an outer code. They were conceived in 1966 by Dave Forney as a solution to the problem of finding a code that has both exponentially decreasing error probability with increasing block length and polynomial-time decoding complexity. Concatenated codes became widely used in space communications in the 1970s.
Code de HammingUn code de Hamming est un code correcteur linéaire. Il permet la détection et la correction automatique d'une erreur si elle ne porte que sur une lettre du message. Un code de Hamming est parfait : pour une longueur de code donnée il n'existe pas d'autre code plus compact ayant la même capacité de correction. En ce sens son rendement est maximal. Il existe une famille de codes de Hamming ; le plus célèbre et le plus simple après le code de répétition binaire de dimension trois et de longueur un est sans doute le code binaire de paramètres [7,4,3].
Théorie des codesEn théorie de l'information, la théorie des codes traite des codes et de leurs propriétés et de leurs aptitudes à servir sur différents canaux de communication. On distingue deux modèles de communication : avec et sans bruit. Sans bruit, le codage de source suffit à la communication. Avec bruit, la communication est possible avec les codes correcteurs. En définissant l'information de façon mathématique, l'étape fondatrice de la théorie des codes a été franchie par Claude Shannon.
Cache hierarchyCache hierarchy, or multi-level caches, refers to a memory architecture that uses a hierarchy of memory stores based on varying access speeds to cache data. Highly requested data is cached in high-speed access memory stores, allowing swifter access by central processing unit (CPU) cores. Cache hierarchy is a form and part of memory hierarchy and can be considered a form of tiered storage. This design was intended to allow CPU cores to process faster despite the memory latency of main memory access.
Perturbation par une particule isoléeUne perturbation par une particule isolée (PPI) (en anglais : Single event upset) est un changement d'état provoqué par une seule particule ionisante (ions, électrons, photons ...) frappant un nœud sensible dans un dispositif microélectronique, comme dans un microprocesseur, une mémoire à semi-conducteur, ou transistors de puissance. Le changement d'état est le résultat de la charge libre créée par ionisation dans ou à proximité d'un nœud important d'un élément logique (par exemple dans un "bit" de mémoire).
Mémoire cacheUne mémoire cache ou antémémoire est, en informatique, une mémoire qui enregistre temporairement des copies de données provenant d'une source, afin de diminuer le temps d'un accès ultérieur (en lecture) d'un matériel informatique (en général, un processeur) à ces données. Le principe du cache est également utilisable en écriture, et existe alors en trois modes possibles : write-through, write-back et write-around.
Hiérarchie de mémoireDans un ordinateur, le processeur accède aux instructions du programme à exécuter ainsi qu'aux données nécessaires à son exécution depuis la mémoire. Il existe une hiérarchie des mémoires informatiques : les plus rapides sont les plus coûteuses, donc en nombre limité, et placées le plus près du processeur (les registres font partie intégrante du processeur). Les plus lentes sont les moins coûteuses et sont éloignées du processeur. Le matériel et le système d'exploitation sont responsables du déplacement des objets le long de cette hiérarchie.
Architecture 32 bitsEn informatique, on parle d’une architecture lorsque les mots manipulés par le processeur ont une largeur de , ce qui leur permet de varier entre les valeurs 0 et pour un mot non signé (c'est-à-dire un mot non doté d'un signe mathématique positif ou négatif), et entre et pour un mot signé. Lorsque le mot de sert à coder l’adresse d’un élément, il peut adresser une mémoire de taille (2). Donc un système d'exploitation de ne pourra pas utiliser plus de de RAM.
Cache de processeurUn cache de processeur est une antémémoire matérielle utilisée par l'unité centrale de traitement (CPU) d'un ordinateur pour réduire le coût moyen (temps ou énergie) de l’accès aux données de la mémoire principale. Un cache de processeur est une mémoire plus petite et plus rapide, située au plus près d'une unité centrale de traitement (ou d'un cœur de microprocesseur), qui stocke des copies des données à partir d'emplacements de la mémoire principale qui sont fréquemment utilisés avant leurs transmissions aux registres du processeur.
Système embarquéUn système embarqué est un système électronique et informatique autonome, souvent temps réel, spécialisé dans une tâche précise. Le terme désigne aussi bien le matériel informatique que le logiciel utilisé. Ses ressources sont généralement limitées spatialement (encombrement réduit) et énergétiquement (consommation restreinte). L'un des premiers systèmes modernes embarqués reconnaissables a été le Apollo Guidance Computer en 1967, le système de guidage de la mission lunaire Apollo, développé par Charles Stark Draper du Massachusetts Institute of Technology.
Fabrication des dispositifs à semi-conducteursthumb|upright=1.5|Évolution de la finesse de gravure des processeurs entre 1970 et 2017 La fabrication des dispositifs à semi-conducteur englobe les différentes opérations permettant l'élaboration de composants électroniques basés sur des matériaux semi-conducteurs. Entrent dans cette catégorie de composants à semi-conducteur, les composants discrets qui n'ont qu'une seule fonction comme les diodes et les transistors, et les circuits intégrés plus complexes, intégrant plusieurs composants, jusqu'à des milliards, dans le même boîtier.
Loi de Moorevignette|upright=1.8|Croissance du nombre de transistors dans les microprocesseurs Intel par rapport à la loi de Moore. En vert, un doublement tous les . Les lois de Moore sont des lois empiriques qui ont trait à l'évolution de la puissance de calcul des ordinateurs et de la complexité du matériel informatique. La première de ces lois est émise par le docteur Gordon E. Moore en 1965, lorsque celui-ci postule sur une poursuite du doublement de la complexité des semi-conducteurs tous les ans à coût constant.
IA-32IA-32 (short for "Intel Architecture, 32-bit", commonly called i386) is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the 80386 microprocessor in 1985. IA-32 is the first incarnation of x86 that supports 32-bit computing; as a result, the "IA-32" term may be used as a metonym to refer to all x86 versions that support 32-bit computing. Within various programming language directives, IA-32 is still sometimes referred to as the "i386" architecture.
Processeur 64 bitsthumb|Un processeur AMD. Un processeur est un processeur dont la largeur des registres est de sur les nombres entiers. Les processeurs ne peuvent normalement pas adresser plus de () de mémoire centrale, tandis que les processeurs peuvent en adresser (). C'est pourquoi dès qu'il y a plus de de RAM sur une machine, la mémoire au-delà de ce seuil ne sera directement adressable qu'en mode . Diverses techniques contournent cette limitation sans franchir le pas du mode .
Code de GolayEn théorie des codes, un code de Golay est un code correcteur d'erreurs pouvant être binaire ou tertiaire, nommé en l'honneur de son inventeur, Marcel Golay. Il y a deux types de codes de Golay binaire. Le code binaire étendu de Golay encode 12 bits de données dans un mot de code de 24 bits de long de telle manière que n'importe quelle erreur sur trois bits puisse être corrigée et n'importe quelle erreur sur quatre bits puisse être détectée.
Algorithmes de remplacement des lignes de cacheArticle principal : mémoire cache Les mémoires caches dans les matériels informatiques sont le plus souvent partiellement associatives : une ligne de la mémoire principale ne peut être rangée que dans une partie bien définie de la mémoire cache. Dans le cas d'une mémoire cache logicielle, il est possible qu'elle soit totalement associative et gérée globalement. Dans les deux cas, se pose le problème de devoir dégager une place dans la mémoire cache, ou dans la partie de celle-ci concernée, lorsque celle-ci est pleine et qu'on veut y charger des données de la mémoire principale.
Logiciel enfouiLes logiciels enfouis ou embarqués (embedded software), sont des entités autonomes qui remplissent une mission indépendante, parfois critique, sans intervention humaine, en général en interaction directe avec l’environnement extérieur que celui-ci soit physique ou informatique. Ces systèmes autonomes peuvent être isolés mais ils sont la plupart du temps reliés et communiquent à travers un réseau grâce à un logiciel d'intermédiation.
Transistor countThe transistor count is the number of transistors in an electronic device (typically on a single substrate or "chip"). It is the most common measure of integrated circuit complexity (although the majority of transistors in modern microprocessors are contained in the cache memories, which consist mostly of the same memory cell circuits replicated many times). The rate at which MOS transistor counts have increased generally follows Moore's law, which observed that the transistor count doubles approximately every two years.
Cache-oblivious algorithmIn computing, a cache-oblivious algorithm (or cache-transcendent algorithm) is an algorithm designed to take advantage of a processor cache without having the size of the cache (or the length of the cache lines, etc.) as an explicit parameter. An optimal cache-oblivious algorithm is a cache-oblivious algorithm that uses the cache optimally (in an asymptotic sense, ignoring constant factors). Thus, a cache-oblivious algorithm is designed to perform well, without modification, on multiple machines with different cache sizes, or for a memory hierarchy with different levels of cache having different sizes.