Multithreadingthumb|Schéma d'un process multithread Un processeur est dit multithread s'il est capable d'exécuter efficacement plusieurs threads simultanément. Contrairement aux systèmes multiprocesseurs (tels les systèmes multi-cœur), les threads doivent partager les ressources d'un unique cœur : les unités de traitement, le cache processeur et le translation lookaside buffer ; certaines parties sont néanmoins dupliquées : chaque thread dispose de ses propres registres et de son propre pointeur d'instruction.
Matériel informatiqueUn matériel informatique (en anglais : hardware) est une pièce ou composant d'un appareil informatique. C'est la partie physique de l’informatique elle est appairée avec le logiciel (software ou firmware). Il y a des composants situés à l'intérieur de l'appareil qui sont indispensables à son fonctionnement et, d'autres secondaires disposées à l'extérieur (les périphériques). Les pièces intérieures sont, la plupart du temps, montées sur des circuits imprimés.
Explicitly parallel instruction computingEPIC (explicitly parallel instruction computing, littéralement informatique à instruction explicitement parallèle) est un type d'architecture de microprocesseurs, utilisé entre autres dans les DSP et par Intel pour les microprocesseurs Itanium et Itanium 2. La philosophie de l'EPIC repose sur la disparition du réordonnancement à l'exécution : les instructions sont exécutées dans l'ordre exact dans lequel le compilateur les a disposées, mais celui-ci précise les instructions à exécuter en parallèle.
Compteur ordinalDans un processeur, le compteur ordinal ou pointeur d'instruction (en anglais : instruction pointer ou program counter) est le registre (souvent nommé PC) qui contient l'adresse mémoire de l'instruction en cours d'exécution ou prochainement exécutée (cela dépend de l'architecture). Une fois l'instruction chargée, il est automatiquement incrémenté pour pointer l'instruction suivante. Les instructions de branchement ou d'appel et retour de sous-programmes permettent de choisir une autre adresse pour influer sur le déroulement du programme informatique.
Simultaneous multithreadingLe simultaneous multithreading (SMT) est une technique informatique datant des années 1960. Il s'agit d'une forme de multithreading, une technique qui consiste, comme le symmetric multiprocessing (SMP), à augmenter le TLP (thread level parallelism), c’est-à-dire le parallélisme des threads. Le SMT est le partage d'un cœur de processeur superscalaire (les pipelines, les unités de calcul et les caches) entre plusieurs threads.
Algorithme de TomasuloL’algorithme de Tomasulo est un algorithme facilitant le parallélisme au sein des processeurs mis au point en 1967 par Robert Tomasulo. Cet algorithme, est l'une des implémentations possibles pour l'exécution dans le désordre : il trie les instructions de manière à traiter plus tard les instructions qui seraient normalement bloquées en raison de dépendances de données. Mise en place pour la première fois pour l'unité de calcul en virgule flottante de l'IBM 360 modèle 90. Robert Tomasulo a reçu le Prix Eckert-Mauchly en 1997 pour cet algorithme.
Pentium (marque)Pentium est une marque déposée par Intel en 1993 pour remplacer les nombres utilisés jusqu'alors (80286, 80386, 80486) et que ses concurrents pouvaient imiter (Am386, Cyrix Cx486SLC, etc.). La marque a aussi vu Intel entrer sur le marché des processeurs pour serveurs Windows NT puis Linux. Elle a servi à désigner plusieurs évolutions majeures de microprocesseurs de la famille x86 (Pentium, Pentium Pro, Pentium 4) et mineures (Pentium MMX, Pentium II, Pentium III, Pentium M, Pentium D) de l'architecture de processeur x86.
Concurrency (computer science)In computer science, concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the outcome. This allows for parallel execution of the concurrent units, which can significantly improve overall speed of the execution in multi-processor and multi-core systems. In more technical terms, concurrency refers to the decomposability of a program, algorithm, or problem into order-independent or partially-ordered components or units of computation.
Execution unitIn computer engineering, an execution unit (E-unit or EU) is a part of the central processing unit (CPU) or graphics processing unit (GPU) that performs the operations and calculations forwarded from the instruction unit. It may have its own internal control sequence unit (not to be confused with the CPU's main control unit), some registers, and other internal units such as an arithmetic logic unit, address generation unit, floating-point unit, load–store unit, branch execution unit or some smaller and more specific components.
Allocation de registresDans un compilateur, l'allocation de registres est une étape importante de la génération de code. Elle vise à choisir judicieusement dans quel registre du processeur seront enregistrées les variables durant l'exécution du programme que l'on compile. Les registres sont des mémoires internes au processeur, généralement capables de contenir un mot machine. Les opérations sur des valeurs rangées dans des registres sont plus rapides que celles sur des valeurs en mémoire vive, quand ce ne sont pas les seules possibles.