Support système des accès utilisateurs STS SIO, 1ère année BTS Services Informatiques aux Organisations 1ère année Support système des accès utilisateurs SI1 Chapitre 3 : Les échanges au sein de la carte mère Objectifs : Comprendre les mécanismes d'échange au sein de la carte mère, entre la mémoire centrale et le processeur et au sein du processeur. Plan : 1. Les bus de données : des autoroutes sur la carte mère. 1.1. Les différents types de bus. 1.2. Le bus FSB. 1.3. Le bus HSB. 1.4. Le NorthBridge. 1.5. Le SouthBridge. 1.6. Évolution. 2. La mémoire centrale : la RAM. 2.1. Histoire de barrettes. 2.2. Les technologies des RAM. 2.3. Le marché de la barrette. 2.4. Le bon timing. 3. Les processeurs. 3.1. Processeur et fréquence. 3.2. Les instructions du processeur. 3.3. Les registres. 3.4. Unités fonctionnelles. 3.5. HyperThreading et multi-cœur. Ressources : Comment ca marche : Le processeur Vulgarisation-informatique : La mémoire Chapitre 3 : Les échanges au sein de la carte mère page 1 Support système des accès utilisateurs STS SIO, 1ère année 1. Les bus de données : des autoroutes sur la carte mère. On appelle bus tout canal physique de communication entre plusieurs dispositifs. Ainsi, on trouve des bus sur les cartes mères, mais également au sein du microprocesseur ou entre plusieurs ordinateurs. 1.1. Les différents types de bus. Parmi les bus que l'on rencontre au sein d'un ordinateur, on trouve : Le bus d'adresses (appelé parfois bus d'adressage ou bus mémoire) transporte les adresses mémoire auxquelles le processeur souhaite accéder pour lire ou écrire une donnée. Le bus de contrôle (parfois bus de commandes) transporte les ordres et les signaux de synchronisation en provenance de l’unité de commande et à destination de l'ensemble des composants matériels. Il s'agit d'un bus directionnel dans la mesure où il transmet également les signaux de réponse des éléments matériels. Le bus de données véhicule les informations en provenance ou à destination du processeur. Il s'agit d'un bus bidirectionnel. Les bus d'adresses et de contrôle sont internes au microprocesseur. Les bus de données sont ceux qui permettent au microprocesseur de communiquer avec le reste des composants de la carte mère. FSB Micro Processeur Cache niveau 2 RAM North bridge Bus PCI Express SCSI HSB Bus AGP Carte graphique Bus PCI Cartes d'extension ISA South bridge ATA COM LPT Stockage de masse Lecteurs disquettes USB FireWire Chapitre 3 : Les échanges au sein de la carte mère Port Réseau page 2 Support système des accès utilisateurs STS SIO, 1ère année 1.2. Le bus FSB. Le FSB ou Front Side Bus est appelé Bus processeur ou bus système. C'est celui qui entre et qui sort du microprocesseur. Ce bus a une fréquence particulièrement élevée (jusqu'à 3,3 GHz). Le bus de communication avec la mémoire cache L2 ou L3 est directement connecté (comme une dérivation) sur le FSB. La mémoire cache est ainsi considérée comme intégrée au processeur tellement les temps de réponse sont infimes. C'est ensuite le northbridge qui gère les échanges avec les autres composants. 1.3. Le bus HSB. Le HSB ou High Speed Bus, également appelé Bus Interne, est le bus qui relie le northbridge au southbridge. Malgré son nom, il a des fréquence de fonctionnement moindre que le FSB. 1.4. Le NorthBridge. Le northbridge a un rôle essentiel : gérer les flux d'échanges de données avec tous les éléments de la carte mère, en privilégiant le bus RAM et le bus PCIExpress x16 (destiné à la carte graphique). Le nom de northbridge est en voie d'être abandonné au profit de MCH pour Memory Controller Hub 1.5. Le SouthBridge. Le southBridge permet de contrôle des bus éloignés comme ISA, PCI, ATA, SATA, PCI Express… Le nom de southbridge est en voie d'être remplacé par ICH pour I/O Controller Hub. 1.6. Évolution. Les nouvelles architectures tendent à faire disparaître le northbridge-MCH. En effet, le contrôleur de RAM est intégré au processeur pour améliorer encore les échanges, comme c'est le cas pour les processeurs i7 depuis la série 900. Du coup, le bus FSB disparaît également, au profit du bus QPI (QuickPath Interconnect) chez Intel ou HyperTransport chez AMD. Ceux-ci offrent de meilleurs temps de réponse, et une meilleure gestion des échanges. 2. La mémoire centrale : la RAM. 2.1. Histoire de barrettes. Les premières mémoires se présentaient sous la forme de puces appelées DIP (Dual Inline Package). Désormais les mémoires se trouvent généralement sous la forme de barrettes, c'est-à-dire des cartes enfichables dans des connecteurs prévus à cet effet. Chapitre 3 : Les échanges au sein de la carte mère page 3 Support système des accès utilisateurs STS SIO, 1ère année On distingue deux types de barrettes de RAM : les barrettes au format SIMM (Single Inline Memory Module) et les barrettes au format DIMM (Dual Inline Memory Module) : ce sont des circuits imprimés possédant respectivement sur une ou deux faces des puces de mémoire. Les barrettes au format SIMM (Single Inline Memory Module) ne possèdent de puces de mémoire que sur un seul côté. Ce type de barrettes a disparu avec l'apparition des premiers pentiums. Les barrettes au format DIMM (Dual Inline Memory Module) sont des mémoires 64 bits qui possèdent des puces de mémoire de part et d'autre du circuit imprimé. A noter que les connecteurs DIMM ont été améliorés afin de permettre une insertion facile des barrettes grâce à des leviers situés de part et d'autre du connecteur. 2.2. Les technologies des RAM. La SDRAM (Synchronous DRAM, traduisez RAM dynamique synchrone), apparue en 1997, permet une lecture des données synchronisée avec le bus de la carte-mère. La SDRAM est capable de fonctionner avec une cadence allant jusqu'à 150Mhz, lui permettant d'obtenir des temps d'accès d'environ 10ns. La DDR-SDRAM (Double Data Rate SDRAM) est une mémoire fondée sur la technologie SDRAM, exploite simultanément deux canaux, permettant ainsi de doubler le taux de transfert de la SDRAM à fréquence égale. Apparue en 2000, elle s'est généralisée au détriment de la SDRAM. Elle a également été commercialisée sous le nom de DDR ou DDR 1. Puis les évolution technologiques ont permis de multiplier le nombre de canaux d'échange des flux de données, pour donner en 2003 la DDR II avec 4 canaux et en 2007 la DDR III et ses 8 canaux. Le déplacement du détrompeur permet de ne pas utiliser une barrette à la place d'une d'une autre génération. Chapitre 3 : Les échanges au sein de la carte mère page 4 Support système des accès utilisateurs STS SIO, 1ère année 2.3. Le marché de la barrette. Le nom commercial de ces barrettes commence par PC, suffixé de leur bande passante ou DDR suffixé de la fréquence. PC est suivi d'un 2 pour la DDR II et d'une 3 pour la DDR III. Barrette DDR-SDRAM DDR DDR I DDR II QDR DDR III Fréquence MHz du bus DDR 100 2x100 = 200 … … 200 400 100 2x200=400 300 100 … 1200 800 … 375 3000 Bande passante maximale 200 x 8 = 1600 Mio/s … 3200 Mio/s 400x8 = 3200 Mio/s … 1200 x 8 = 9600 800 x 8 Mio/s = 6400 Mio/s Nom commercial Puce Barrette PC 1600 DDR-200 … … PC 3200 DDR400 PC2 4300 DDR2-400 … … PC2 9600 DDR2-1200 PC3 6400 DDR3-800 … … … 24000 Mio/s PC3 24000 DDR3-3000 Il n'y a pas de différence architecturale entre les différentes DDR SDRAM conçues pour les différentes fréquences d'horloge, comme par exemple entre la PC3 6400 et la PC3 24000. Le nombre indique simplement le niveau de fonctionnement garanti pour chaque type de mémoire. Il est possible d'utiliser de la DDR SDRAM à une fréquence inférieure à celle prévue (sous-fréquençage) ou supérieure (sur-fréquençage), ce qui n'est toutefois à tenter qu'avec des mémoires de haute qualité. 2.4. Le bon timing. Les barrettes sont généralement accompagnées d'une notation du type 3-2-2-2 ou 7-7-7-19 pour décrire le paramétrage de la mémoire vive. Cette suite de quatre nombres décrit la synchronisation de la mémoire (en anglais timing), c'est-à-dire la succession de cycles d'horloge nécessaires pour accéder à une donnée stockée en mémoire vive. Lorsqu'on parle de timings mémoire on communique souvent les timings dans l'ordre suivant (même si ce n'est pas indiqué) : CAS ou CAS delay (column address strobe) RAS to CAS RAS precharge Time RAS (row address strobe) Chapitre 3 : Les échanges au sein de la carte mère page 5 Support système des accès utilisateurs STS SIO, 1ère année Le RAS precharge Time : c'est l'intervalle de temps nécessaire avant d'envoyer une autre commande RAS. Le RAS : c'est le temps nécessaire pour sélectionner une ligne. Le RAS to CAS : c'est le temps nécessaire pour passer du mode de sélection de lignes au mode de sélection de colonnes. Le CAS : c'est le temps nécessaire pour sélectionner une colonne A fréquence équivalente, plus le timing est tendu (faible) meilleur sera le temps d'accès aux données. Cela a donc une influence non négligeable sur la qualité des barrettes mémoire. Quand des DDR affichaient des timing 3-2-2-2, les DDR3 sont plutôt sur les timings 7-7-7-19, 8-8-8-20 ou 9-9-9-24. Chapitre 3 : Les échanges au sein de la carte mère page 6 Support système des accès utilisateurs STS SIO, 1ère année 3. Les processeurs. 3.1. Processeur et fréquence. Le processeur (CPU, pour Central Processing Unit, soit Unité Centrale de Traitement) est le cerveau de l'ordinateur. Il permet de manipuler des informations numériques et d'exécuter les instructions stockées en mémoire. Le premier microprocesseur (Intel 4004) a été inventé en 1971. Il s'agissait d'une unité de calcul de 4 bits, cadencé à 108 kHz. Depuis, la puissance des microprocesseurs augmente exponentiellement. Le terme microprocesseur tend à disparaître au profit de processeur, car les processeur ne sont plus gravé à l'échelle du micron (1/1000ème de millimètre), mais du nano mètre (1/1000 000ème de millimètre). Le processeur est un circuit électronique cadencé au rythme d'une horloge interne, grâce à un cristal de quartz qui, soumis à un courant électrique, vibre régulièrement et ce qui permet de générer des impulsions, appelées « top ». La fréquence d'horloge, appelée également cycle, correspondant au nombre d'impulsions par seconde, s'exprime en Hertz (Hz). Ainsi, un ordinateur à 200 MHz possède une horloge envoyant 200 000 000 de battements par seconde. La fréquence d'horloge est généralement un multiple de la fréquence du système (FSB, Front-Side Bus), c'est-à-dire un multiple de la fréquence de la carte mère A chaque top d'horloge le processeur exécute une action, correspondant à une instruction ou une partie d'instruction. 3.2. Les instructions du processeur. Une instruction est l'opération élémentaire que le processeur peut accomplir. Les instructions sont stockées dans la mémoire principale, en vue d'être traitée par le processeur. Une instruction est composée de deux champs : le code opération, représentant l'action que le processeur doit accomplir ; le code opérande, définissant les paramètres de l'action. Le code opérande dépend de l'opération. Il peut s'agir d'une donnée ou bien d'une adresse mémoire Le nombre d'octets d'une instruction est variable selon le type de donnée (l'ordre de grandeur est de 1 à 4 octets). Les instructions peuvent être classées en catégories dont les principales sont : Accès à la mémoire : des accès à la mémoire ou transferts de données entre registres. Opérations arithmétiques : opérations telles que les additions, soustractions, divisions ou multiplication. Opérations logiques : opérations ET, OU, NON, OU exclusif, etc. Contrôle : contrôles de séquence, branchements conditionnels, etc. 3.3. Les registres. Lorsque le processeur exécute des instructions, les données sont temporairement stockées dans de petites mémoires rapides de 8, 16, 32 ou 64 bits que l'on appelle registres. Leur capacité dépasse rarement quelques dizaines d'octets. Les registres principaux sont : le registre accumulateur (ACC), stockant les résultats des opérations arithmétiques et logiques ; le registre d'état (PSW, Processor Status Word), permettant de stocker des indicateurs sur l'état du système (retenue, dépassement, etc.) ; le registre instruction (RI), contenant l'instruction en cours de traitement ; le compteur ordinal (CO ou PC pour Program Counter), contenant l'adresse de la prochaine instruction à traiter ; le registre tampon, stockant temporairement une donnée provenant de la mémoire. Chapitre 3 : Les échanges au sein de la carte mère page 7 Support système des accès utilisateurs STS SIO, 1ère année La mémoire cache (également appelée antémémoire ou mémoire tampon) est une mémoire ultra rapide permettant de réduire les délais d'attente des informations stockées en mémoire vive. En effet, la RAM de l'ordinateur possède une vitesse bien moins importante que le processeur. Il existe néanmoins des mémoires beaucoup plus rapides, mais dont le coût est très élevé. La solution consiste donc à inclure ce type de mémoire rapide à proximité du processeur et d'y stocker temporairement les principales données devant être traitées par le processeur. Les ordinateurs récents possèdent plusieurs niveaux de mémoire cache : La mémoire cache de premier niveau (appelée L1 Cache) est directement intégrée dans le processeur. Elle se subdivise en 2 parties : La première est le cache d'instructions, qui contient les instructions issues de la mémoire vive. La seconde est le cache de données, qui contient des données issues de la mémoire vive et les données récemment utilisées lors des opérations du processeur. Les caches du premier niveau sont très rapides d'accès. Leur délai d'accès tend à s'approcher de celui des registres internes aux processeurs. La mémoire cache de second niveau (appelée L2 Cache) est située au niveau du boîtier contenant le processeur (dans la puce). Le cache de second niveau vient s'intercaler entre le processeur avec son cache interne et la mémoire vive. Il est plus rapide d'accès que cette dernière mais moins rapide que le cache de premier niveau. La mémoire cache de troisième niveau (appelée L3 Cache) située au niveau de la carte mère. Tous ces niveaux de cache permettent de réduire les temps de latence des différentes mémoires lors du traitement et du transfert des informations. Pendant que le processeur travaille, le contrôleur de cache de premier niveau peut s'interfacer avec celui de second niveau pour faire des transferts d'informations sans bloquer le processeur. De même, le cache de second niveau est interfacé avec celui de la mémoire vive (en l'absence de cache de troisième niveau intégré), pour permettre des transferts sans bloquer le fonctionnement normal du processeur. 3.4. Unités fonctionnelles. Le processeur est constitué d'un ensemble d'unités fonctionnelles reliées entre elles. Le fonctionnement d'un microprocesseur est très variable d'une architecture à une autre, cependant les principaux éléments d'un microprocesseur sont les suivants : Une unité d'instruction (ou unité de commande, en anglais control unit) qui lit les données arrivant, les décode puis les envoie à l'unité d'exécution ;L'unité d'instruction est notamment constituée des éléments suivants : séquenceur (ou bloc logique de commande) chargé de synchroniser l'exécution des instructions au rythme d'une horloge. Il est ainsi chargé de l'envoi des signaux de commande ; compteur ordinal contenant l'adresse de l'instruction en cours ; registre d'instruction contenant l'instruction suivante. Chapitre 3 : Les échanges au sein de la carte mère page 8 Support système des accès utilisateurs STS SIO, 1ère année Une unité d'exécution (ou unité de traitement), qui accomplit les tâches que lui a données l'unité d'instruction. L'unité d'exécution est notamment composée des éléments suivants : L'unité arithmétique et logique (notée UAL ou en anglais ALU pour Arithmetical and Logical Unit). L'UAL assure les fonctions basiques de calcul arithmétique et les opérations logiques (ET, OU, Ou exclusif, etc.) ; L'unité de virgule flottante (notée FPU, pour Floating Point Unit), qui accomplit les calculs complexes non entiers que ne peut réaliser l'unité arithmétique et logique. Le registre d'état ; Le registre accumulateur. Une unité de gestion des bus (ou unité d'entrées-sorties), qui gère les flux d'informations entrant et sortant, en interface avec la mémoire vive du système. La loi de Moore, édictée en 1965 par Gordon E. Moore, cofondateur de la société Intel, prévoyait que les performances des processeurs (par extension le nombre de transistors intégrés sur silicium) doubleraient tous les 12 mois. Cette loi a été révisée en 1975, portant le nombre de mois à 18. La loi de Moore se vérifie encore aujourd'hui, à moins qu'elle ne soit devenue un objectif à respecter. 3.5. HyperThreading et multi-cœur. La frénésie de la hausse des fréquences des processeurs s'est arrêtée vers 4,5 Ghz, les processeurs devant instables. Pour palier ce problème dans la course à la puissance, les deux géants (Intel et AMD) ont conçu deux techniques : l'hyperthreading et le multi-cœur. Cela a eut pour effet de redescendre les fréquences généralement entre 2 et 3 Ghz tout en continuant à accroitre la puissance et la rapidité de traitement des processeurs. La technologie HyperThreading (ou Hyper-Threading, noté HT, traduisez HyperFlots ou HyperFlux) consiste à définir deux processeurs logiques au sein d'un processeur physique. Ainsi, le système reconnaît deux processeurs physiques et se comporte en système multitâche en envoyant deux threads simultanés, on parle alors de SMT (Simultaneous Multi Threading). Cette « supercherie » permet d'utiliser au mieux les ressources du processeur en garantissant que des données lui sont envoyées en masse. Un processeur multi-coeur est tout simplement un processeur composé non pas de 1 mais de 2 ou 4 ou 8 unités d'instruction. Ainsi, pour un processeur bi-coeur (ou DualCore) le processeur dispose à fréquence d'horloge égale d'une puissance de calcul deux fois plus importante. Pour autant, le gain n'est pas systématiquement visible. En effet, il faut que les logiciels et les systèmes d'exploitation sachent gérer correctement ces processeurs afin qu'un gain significatif soit perceptible. Radiographie d'un processeur 4 cœurs : Le plus performant processeur actuellement (benchmark selon tomshardware.fr, et choixPc.com) est l'intel core i7 6900k, possédant 8 cœurs, 16 threads, 20Mo de cache cadencé à 3,2Ghz voire 4Ghz en mode turbo. Chapitre 3 : Les échanges au sein de la carte mère page 9