Symétrie des processeursEdit
Dans un système multiprocesseur, tous les processeurs peuvent être égaux, ou certains peuvent être réservés à des fins spéciales. Une combinaison de considérations de conception matérielle et logicielle du système d’exploitation détermine la symétrie (ou son absence) dans un système donné. Par exemple, des considérations matérielles ou logicielles peuvent exiger qu’une seule unité centrale particulière réponde à toutes les interruptions matérielles, alors que toutes les autres tâches du système peuvent être réparties de manière égale entre les unités centrales ; ou l’exécution du code en mode noyau peut être limitée à une seule unité centrale particulière, alors que le code en mode utilisateur peut être exécuté dans n’importe quelle combinaison de processeurs. Les systèmes multiprocesseurs sont souvent plus faciles à concevoir si de telles restrictions sont imposées, mais ils ont tendance à être moins efficaces que les systèmes dans lesquels toutes les UC sont utilisées.
Les systèmes qui traitent toutes les UC de manière égale sont appelés systèmes multiprocesseurs symétriques (SMP). Dans les systèmes où toutes les unités centrales de traitement ne sont pas égales, les ressources du système peuvent être divisées de plusieurs façons, notamment par le multitraitement asymétrique (ASMP), le multitraitement à accès mémoire non uniforme (NUMA) et le multitraitement en grappe.
Système multiprocesseur maître/esclaveModifier
Dans un système multiprocesseur maître/esclave, l’unité centrale de traitement maître contrôle l’ordinateur et la ou les unités centrales de traitement esclaves exécutent des tâches assignées. Les CPU peuvent être complètement différentes en termes de vitesse et d’architecture. Certaines (ou toutes) des unités centrales peuvent avoir un bus commun, chacune peut également avoir un bus privé (pour des ressources privées), ou elles peuvent être isolées à l’exception d’une voie de communication commune. De même, les unités centrales de traitement peuvent partager une mémoire vive commune et/ou avoir une mémoire vive privée à laquelle le ou les autres processeurs ne peuvent pas accéder. Les rôles de maître et d’esclave peuvent changer d’une unité centrale de traitement à l’autre.
Un premier exemple de système multiprocesseur maître/esclave est l’ordinateur de bureau Tandy/Radio Shack TRS-80 Model 16, sorti en février 1982 et exécutant le système d’exploitation Xenix multi-utilisateurs/multitâches, la version d’UNIX de Microsoft (appelée TRS-XENIX). Le Modèle 16 possède 3 microprocesseurs, un CPU Zilog Z80 de 8 bits fonctionnant à 4MHz, un CPU Motorola 68000 de 16 bits fonctionnant à 6MHz et un Intel 8021 dans le clavier. Lorsque le système était démarré, le Z-80 était le maître et le processus de démarrage Xenix initialisait le 68000 esclave, puis transférait le contrôle au 68000, après quoi les UC changeaient de rôle et le Z-80 devenait un processeur esclave responsable de toutes les opérations d’E/S, y compris le disque, les communications, l’imprimante et le réseau, ainsi que le clavier et le moniteur intégré, tandis que le système d’exploitation et les applications fonctionnaient sur l’UC 68000. Le Z-80 pouvait être utilisé pour effectuer d’autres tâches.
L’ancien TRS-80 Model II, sorti en 1979, pouvait également être considéré comme un système multiprocesseur car il possédait à la fois une unité centrale Z-80 et un microprocesseur Intel 8021 dans le clavier. Le 8021 a fait du Modèle II le premier système d’ordinateur de bureau avec un clavier léger détachable séparé connecté avec par un seul fil flexible mince, et probablement le premier clavier à utiliser un microprocesseur dédié, deux attributs qui seraient copiés des années plus tard par Apple et IBM.
Flux d’instructions et de donnéesEdit
Dans le multitraitement, les processeurs peuvent être utilisés pour exécuter une seule séquence d’instructions dans plusieurs contextes (single-instruction, multiple-data ou SIMD, souvent utilisé dans le traitement vectoriel), plusieurs séquences d’instructions dans un seul contexte (multiple-instruction, single-data ou MISD, utilisé pour la redondance dans les systèmes à sécurité intégrée et parfois appliqué pour décrire les processeurs pipelinés ou l’hyper-threading), ou plusieurs séquences d’instructions dans plusieurs contextes (multiple-instruction, multiple-data ou MIMD).
Couplage de processeursEdit
Système multiprocesseur à couplage serréEdit
Les systèmes multiprocesseurs à couplage serré contiennent plusieurs CPU qui sont connectés au niveau du bus. Ces CPU peuvent avoir accès à une mémoire partagée centrale (SMP ou UMA), ou participer à une hiérarchie de mémoire avec une mémoire locale et partagée (SM)(NUMA). L’IBM p690 Regatta est un exemple de système SMP haut de gamme. Les processeurs Intel Xeon ont dominé le marché des multiprocesseurs pour les PC professionnels et ont constitué la seule option x86 majeure jusqu’à la sortie de la gamme de processeurs Opteron d’AMD en 2004. Les deux gammes de processeurs avaient leur propre cache embarqué mais donnaient accès à la mémoire partagée ; les processeurs Xeon via un tuyau commun et les processeurs Opteron via des chemins indépendants vers la RAM du système.
Les multiprocesseurs à puce, également connus sous le nom d’informatique multicœur, impliquent plus d’un processeur placé sur une seule puce et peuvent être considérés comme la forme la plus extrême de multitraitement étroitement couplé. Les systèmes Mainframe à processeurs multiples sont souvent à couplage serré.
Système multiprocesseur à couplage lâcheEdit
Les systèmes multiprocesseurs à couplage lâche (souvent appelés clusters) sont basés sur plusieurs ordinateurs de base autonomes à processeur unique ou double interconnectés par un système de communication à haut débit (Gigabit Ethernet est courant). Un cluster Linux Beowulf est un exemple de système à couplage lâche.
Les systèmes à couplage lâche sont plus performants et sont physiquement plus petits que les systèmes à couplage lâche, mais ont historiquement nécessité des investissements initiaux plus importants et peuvent se déprécier rapidement ; les nœuds d’un système à couplage lâche sont généralement des ordinateurs de base peu coûteux et peuvent être recyclés en tant que machines indépendantes lors du retrait du cluster.
La consommation d’énergie est également un élément à prendre en compte. Les systèmes à couplage serré ont tendance à être beaucoup plus efficaces sur le plan énergétique que les grappes. Cela est dû au fait qu’une économie considérable peut être réalisée en concevant des composants pour qu’ils fonctionnent ensemble dès le début dans les systèmes à couplage serré, alors que les systèmes à couplage lâche utilisent des composants qui n’étaient pas nécessairement destinés spécifiquement à être utilisés dans de tels systèmes.
Les systèmes à couplage lâche ont la capacité d’exécuter différents systèmes d’exploitation ou différentes versions de systèmes d’exploitation sur différents systèmes.