Microprocesseur multi-cœurvignette|Un processeur quad-core AMD Opteron. vignette|L’Intel Core 2 Duo E6300 est un processeur double cœur. Un microprocesseur multi-cœur (multi-core en anglais) est un microprocesseur possédant plusieurs cœurs physiques fonctionnant simultanément. Il se distingue d'architectures plus anciennes (360/91) où un processeur unique commandait plusieurs circuits de calcul simultanés. Un cœur (en anglais, core) est un ensemble de circuits capables d’exécuter des programmes de façon autonome.
Manycore processorManycore processors are special kinds of multi-core processors designed for a high degree of parallel processing, containing numerous simpler, independent processor cores (from a few tens of cores to thousands or more). Manycore processors are used extensively in embedded computers and high-performance computing. Manycore processors are distinct from multi-core processors in being optimized from the outset for a higher degree of explicit parallelism, and for higher throughput (or lower power consumption) at the expense of latency and lower single-thread performance.
Mémoire à tores magnétiquesLa mémoire à tores magnétiques fut la forme dominante de mémoire vive des ordinateurs durant 20 ans (de 1955 à 1975). Cette mémoire était composée des petits tores (anneaux) de ferrite traversés par des fils qui servaient à y écrire et y lire des informations. thumb|Schéma simplifié d'un tore avec fils d'écriture et de lecture Chaque tore correspond à un bit de donnée. Les tores peuvent être magnétisés dans deux directions différentes (sens horaire et antihoraire).
Transactional memoryIn computer science and engineering, transactional memory attempts to simplify concurrent programming by allowing a group of load and store instructions to execute in an atomic way. It is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. Transactional memory systems provide high-level abstraction as an alternative to low-level thread synchronization. This abstraction allows for coordination between concurrent reads and writes of shared data in parallel systems.
Intel CoreIntel Core is a line of streamlined midrange consumer, workstation and enthusiast computer central processing units (CPUs) marketed by Intel Corporation. These processors displaced the existing mid- to high-end Pentium processors at the time of their introduction, moving the Pentium to the entry level. Identical or more capable versions of Core processors are also sold as Xeon processors for the server and workstation markets. The lineup of Core processors includes the Intel Core i3, Intel Core i5, Intel Core i7, and Intel Core i9, along with the X-series of Intel Core CPUs.
Core (microarchitecture)La microarchitecture Core est une microarchitecture x86 d'Intel, qui succède en 2006 aux architectures P6 et NetBurst. Elle fut utilisée par tous les processeurs x86 produits par Intel à l'époque, depuis le processeur pour ordinateur portable jusqu'au processeur Xeon pour serveur, d'abord gravés en puis en . Les processeurs de marque Core 2 utilisent exclusivement l'architecture Core. « Core » est en anglais un nom commun signifiant « noyau » ou « cœur », et désignant en informatique l'ensemble des structures constituant un seul microprocesseur : unités de décodages, de prédiction, d'exécution, cache L1, etc.
Système sur une pucethumb|Puce ARM Exynos sur le smartphone Nexus S de Samsung. Un système sur une puce, souvent désigné dans la littérature scientifique par le terme anglais (d'où son abréviation SoC), est un système complet embarqué sur un seul circuit intégré (« puce »), pouvant comprendre de la mémoire, un ou plusieurs microprocesseurs, des périphériques d'interface, ou tout autre composant nécessaire à la réalisation de la fonction attendue.
Parallel programming modelIn computing, a parallel programming model is an abstraction of parallel computer architecture, with which it is convenient to express algorithms and their composition in programs. The value of a programming model can be judged on its generality: how well a range of different problems can be expressed for a variety of different architectures, and its performance: how efficiently the compiled programs can execute. The implementation of a parallel programming model can take the form of a library invoked from a sequential language, as an extension to an existing language, or as an entirely new language.
Multi-chip moduleA multi-chip module (MCM) is generically an electronic assembly (such as a package with a number of conductor terminals or "pins") where multiple integrated circuits (ICs or "chips"), semiconductor dies and/or other discrete components are integrated, usually onto a unifying substrate, so that in use it can be treated as if it were a larger IC. Other terms for MCM packaging include "heterogeneous integration" or "hybrid integrated circuit".
Programmation concurrenteLa programmation concurrente est un paradigme de programmation tenant compte, dans un programme, de l'existence de plusieurs piles sémantiques qui peuvent être appelées threads, processus ou tâches. Elles sont matérialisées en machine par une pile d'exécution et un ensemble de données privées. La concurrence est indispensable lorsque l'on souhaite écrire des programmes interagissant avec le monde réel (qui est concurrent) ou tirant parti de multiples unités centrales (couplées, comme dans un système multiprocesseurs, ou distribuées, éventuellement en grille ou en grappe).
Protocole de cohérence de cachethumb|Schéma illustrant le besoin d'un protocole de cohérence de cache. En informatique, un protocole de cohérence de cache, sous entendu cache processeur, est un protocole de communication utilisé dans les architectures multi-processeurs pour assurer aux processeurs une vue cohérente de la mémoire. En particulier, il permet de répercuter les écritures faites par chaque processeur aux autres, en modifiant ou en invalidant les lignes de cache communes.
Mémoire distribuéethumb|Exemple de mémoire distribuée sur trois systèmes La mémoire d'un système informatique multiprocesseur est dite distribuée lorsque la mémoire est répartie en plusieurs nœuds, chaque portion n'étant accessible qu'à certains processeurs. Un réseau de communication relie les différents nœuds, et l'échange de données doit se faire explicitement par « passage de messages ». La mémoire est organisée de cette manière par exemple lorsque l'on utilise des machines indépendantes pour former une grille.
Memory barrierIn computing, a memory barrier, also known as a membar, memory fence or fence instruction, is a type of barrier instruction that causes a central processing unit (CPU) or compiler to enforce an ordering constraint on memory operations issued before and after the barrier instruction. This typically means that operations issued prior to the barrier are guaranteed to be performed before operations issued after the barrier. Memory barriers are necessary because most modern CPUs employ performance optimizations that can result in out-of-order execution.
Symmetric multiprocessingUn multiprocesseur symétrique (à mémoire partagée), ou symmetric shared memory multiprocessor (SMP), est une architecture parallèle qui consiste à multiplier les processeurs identiques au sein d'un ordinateur, de manière à augmenter la puissance de calcul, tout en conservant une unique mémoire. Disposer de plusieurs processeurs permet d'exécuter simultanément plusieurs processus du système, utilisateur ou noyau en leur allouant l'un ou l'autre des processeurs disponibles, ce qui augmente la fluidité lors de l'exécution de plusieurs programmes, et permet à un processus d'utiliser plus de ressources de calcul en créant plusieurs threads.
Message Passing InterfaceMessage Passing Interface (MPI) est un outil pour le calcul scientifique à haute performance qui permet d'utiliser plusieurs ordinateurs. C'est une norme conçue en 1993-94 pour le passage de messages entre ordinateurs distants ou dans un ordinateur multiprocesseur. Elle est devenue de facto un standard de communication pour des nœuds exécutant des programmes parallèles sur des systèmes à mémoire distribuée. Elle définit une bibliothèque de fonctions, utilisable avec les langages C, C++ et Fortran.
Réseau sur une puceNetwork-on-Chip ou Network-on-a-Chip (NoC or NOC) ou en français réseau sur une puce est une technique de conception du système de communication entre les cœurs sur les System on Chip (SoC). Les NoCs peuvent passer dans les domaines d'horloge synchrone ou asynchrone ou bien utiliser une logique de circuit asynchrone sans horloge. Le NoC applique les théories et méthodes de réseau aux communications à l'intérieur d'une puce et permet ainsi l'amélioration des performances par rapport aux interconnexions de bus et commutateur matriciel conventionnelles.
Calcul distribuéUn calcul distribué, ou réparti ou encore partagé, est un calcul ou un traitement réparti sur plusieurs microprocesseurs et plus généralement sur plusieurs unités centrales informatiques, et on parle alors d'architecture distribuée ou de système distribué. Le calcul distribué est souvent réalisé sur des clusters de calcul spécialisés, mais peut aussi être réalisé sur des stations informatiques individuelles à plusieurs cœurs. La distribution d'un calcul est un domaine de recherche des sciences mathématiques et informatiques.
Exclusion mutuelleUn Mutex (anglais : Mutual exclusion, Exclusion mutuelle) est une primitive de synchronisation utilisée en programmation informatique pour éviter que des ressources partagées d'un système ne soient utilisées en même temps. Son implémentation varie selon les systèmes (masquage des interruptions, lecture/écriture en un cycle, etc.) Ces algorithmes permettent de réguler l'accès aux données, en permettant par exemple qu'une seule routine y accède à la fois. Un Mutex M.M.
MultiprocessingMultiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor or the ability to allocate tasks between them. There are many variations on this basic theme, and the definition of multiprocessing can vary with context, mostly as a function of how CPUs are defined (multiple cores on one die, multiple dies in one package, multiple packages in one system unit, etc.).
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.