Unit?? centrale de traitement
?? propos de ce ??coles s??lection Wikipedia
SOS Enfants a fait cette s??lection Wikipedia aux c??t??s d'autres ??coles des ressources . Le parrainage d'enfants aide les enfants un par un http://www.sponsor-a-child.org.uk/ .
Une unit?? centrale de traitement (CPU), ??galement appel??e une unit?? de processeur central, le mat??riel est l'int??rieur d'un ordinateur qui ex??cute le des instructions d'un Programme d'ordinateur en effectuant la base arithm??tique, logique, et op??rations du syst??me d'entr??e / sortie. Le terme a ??t?? utilis?? dans l'industrie informatique depuis au moins le d??but des ann??es 1960. La forme, la conception et la mise en ??uvre de processeurs ont chang?? au cours de leur histoire, mais leur op??ration fondamentale reste la m??me.
Dans les vieux ordinateurs, processeurs n??cessitent une ou plusieurs les cartes de circuits imprim??s. Avec l'invention de la microprocesseur, un processeur peut ??tre contenue dans une seule puce de silicium . Les premiers ordinateurs ?? utiliser les microprocesseurs ??taient ordinateurs personnels et de petits postes de travail. Depuis les ann??es 1970 la classe microprocesseur de CPU a presque compl??tement d??pass?? toutes les autres mises en oeuvre de la CPU, dans la mesure o?? m??me ordinateurs centraux utilisent un ou plusieurs microprocesseurs. Les microprocesseurs modernes sont ?? grande ??chelle des circuits int??gr??s en paquets habituellement moins de quatre centim??tres carr??s, avec des centaines de broches de connexion.
Un ordinateur peut avoir plus d'un CPU; cela se appelle multitraitement. Certains microprocesseurs peuvent contenir plusieurs processeurs sur une seule puce; ces microprocesseurs sont appel??s processeurs multi-core.
Deux composants typiques d'une CPU sont les unit?? arithm??tique logique (ALU), qui effectue des op??rations arithm??tiques et logiques, et la unit?? de commande (CU), qui extrait des instructions ?? partir de m??moire et d??code et les ex??cute, appelant le ALU lorsque cela est n??cessaire.
Tous les syst??mes informatiques se appuient sur une unit?? centrale de traitement. Un processeur de tableau ou processeur vectoriel comporte plusieurs ??l??ments de calcul parall??le, sans une unit?? consid??r?? comme le ??centre??. Dans le mod??le de calcul distribu??, les probl??mes sont r??solus par un ensemble interconnect?? distribu?? de processeurs.
Histoire
Les ordinateurs tels que la ENIAC a d?? ??tre refaite physiquement d'effectuer diff??rentes t??ches, qui ont caus?? ces machines d'??tre appel??s ??ordinateurs-programme fixe." Comme le terme "CPU" est g??n??ralement d??fini comme un dispositif de logiciel (programme informatique) de l'ex??cution, les premiers dispositifs qui pourraient ?? juste titre ??tre appel??s CPU est venu avec l'av??nement de la ordinateur ?? programme enregistr??.
L'id??e d'un ordinateur ?? programme enregistr?? ??tait d??j?? pr??sente dans la conception de J. Eckert et Presper John William Mauchly de ENIAC, mais a ??t?? omise initialement afin qu'il puisse ??tre termin??e plus t??t. Le 30 Juin 1945, avant d'ENIAC a ??t?? faite, math??maticien John von Neumann a distribu?? le document intitul?? Premi??re ??bauche d'un rapport sur la EDVAC. Ce ??tait le contour d'un ordinateur ?? programme enregistr?? qui serait finalement achev??e en Ao??t 1949. EDVAC a ??t?? con??u pour effectuer un certain nombre d'instructions (ou des op??rations) de divers types. Ces instructions pourraient ??tre combin??es pour cr??er des programmes utiles pour la EDVAC ?? ex??cuter. De mani??re significative, les programmes ??crits pour EDVAC ont ??t?? stock??s ?? grande vitesse m??moire d'ordinateur plut??t que sp??cifi?? par le c??blage physique de l'ordinateur. Ce surmont?? une limitation s??v??re de ENIAC, qui ??tait le temps et les efforts n??cessaires pour reconfigurer l'ordinateur pour effectuer une nouvelle t??che. Avec la conception, le programme, ou un logiciel de von Neumann, qui EDVAC re??oit pourrait ??tre chang?? simplement en changeant le contenu de la m??moire.
Les premiers processeurs ont ??t?? con??us sur mesure comme une partie d'un plus grand, parfois one-of-a-kind, ordinateur. Cependant, cette m??thode de conception de processeurs personnalis??s pour une application particuli??re a largement c??d?? la place au d??veloppement des processeurs de s??rie qui sont faites ?? de nombreuses fins. Cette normalisation a commenc?? ?? l'??poque de discr??te transistor mainframes et mini-ordinateurs et a rapidement acc??l??r?? avec la popularisation du circuit int??gr?? (IC). L'IC a permis processeurs de plus en plus complexes pour ??tre con??us et fabriqu??s ?? des tol??rances de l'ordre de nanom??tres. Tant la miniaturisation et la normalisation de processeurs ont augment?? la pr??sence des appareils num??riques dans la vie moderne au-del?? de l'application limit??e des machines informatiques d??di??s. Les microprocesseurs modernes apparaissent dans tout, des voitures aux t??l??phones portables et les jouets pour enfants.
Alors que von Neumann est le plus souvent cr??dit?? de la conception de l'ordinateur ?? programme enregistr?? en raison de sa conception de EDVAC, d'autres avant lui, comme Konrad Zuse, avait sugg??r?? et mis en ??uvre des id??es similaires. La dite L'architecture de la Harvard Harvard Mark I, qui a ??t?? achev??e avant EDVAC, ??galement utilis?? une conception ?? programme enregistr?? ?? l'aide bande de papier perfor?? plut??t que la m??moire ??lectronique. La principale diff??rence entre les architectures de von Neumann et Harvard est que celui-ci s??pare le stockage et le traitement des instructions et des donn??es CPU, tandis que le premier utilise le m??me espace m??moire pour les deux. La plupart des processeurs modernes sont principalement von Neumann dans la conception, mais des ??l??ments de l'architecture de Harvard sont g??n??ralement vus ainsi.
Relais et tubes ?? vide (soupapes thermioniques) ont ??t?? couramment utilis??s comme ??l??ments de commutation; un ordinateur utile exige des milliers ou des dizaines de milliers de dispositifs de commutation. La vitesse globale du syst??me est fonction de la vitesse des commutateurs. Tube comme ordinateurs EDVAC tendance ?? moyenne huit heures entre les pannes, tandis que les ordinateurs de relais (comme le plus lent, mais plus t??t) Harvard Mark I n'a que tr??s rarement. En fin de compte, les processeurs ?? base de tubes devenus dominants parce que les avantages significatifs de la vitesse offertes g??n??ralement l'emportent sur les probl??mes de fiabilit??. La plupart de ces processeurs synchrones d??but couru ?? basse taux d'horloge par rapport aux conceptions micro??lectroniques modernes (voir ci-dessous pour une discussion de fr??quence d'horloge). les fr??quences de signal d'horloge allant de 100 kHz ?? 4 MHz ont ??t?? tr??s fr??quents ?? cette ??poque, largement limit??e par la vitesse des dispositifs de commutation ils ont ??t?? construits avec.
Transistor et les processeurs de circuits int??gr??s
La complexit?? de la conception de CPU a augment?? aussi diverses technologies ont facilit?? la construction d'appareils plus petits et plus fiables. La premi??re am??lioration est venue avec l'av??nement de la transistor. CPU ?? transistors au cours des ann??es 1950 et 1960 ne avaient plus ?? ??tre construit ?? partir d'??l??ments de commutation encombrants, fiables, et fragiles comme des tubes ?? vide et relais ??lectriques. Avec cette am??lioration processeurs plus complexes et fiables ont ??t?? construits sur une ou plusieurs cartes de circuits imprim??s contenant (individuels) composants discrets.
Pendant cette p??riode, un proc??d?? de fabrication de transistors interconnect??s dans un espace compact a ??t?? d??velopp??. Le circuit int??gr?? (IC) a permis ?? un grand nombre de transistors ?? fabriquer sur une seule semi-conducteur ?? base de mourir, ou ??puce??. Au premiers circuits num??riques non sp??cialis??s que tr??s de base tels que NOR portes ont ??t?? miniaturis??s en CI. Processeurs bas??s sur ces circuits "blocs de construction" sont g??n??ralement d??sign??s comme des dispositifs (SSI) "int??gration ?? petite ??chelle". CI SSI, tels que ceux utilis??s dans la Apollo ordinateur de guidage, g??n??ralement contenait jusqu'?? quelques transistors de pointage. Pour construire tout un CPU sur SSI CI n??cessaire des milliers de puces individuelles, mais toujours consomm?? beaucoup moins d'espace et de puissance que les anciens mod??les de transistors discrets. Comme la technologie micro??lectronique avanc??e, un nombre croissant de transistors ont ??t?? plac??s sur les circuits int??gr??s, diminuant ainsi la quantit?? de circuits individuels n??cessaires pour une CPU compl??te. MSI et LSI (int??gration ?? moyenne et grande ??chelle) des circuits int??gr??s ont augment?? du nombre de transistors ?? des centaines, puis des milliers.
En 1964, IBM a pr??sent?? son System / 360 de l'architecture de l'ordinateur qui a ??t?? utilis?? dans une s??rie d'ordinateurs pouvant ex??cuter des programmes avec les m??mes vitesse et des performances diff??rentes. Ce ??tait important ?? un moment o?? la plupart des ordinateurs ??lectroniques ??taient incompatibles avec une autre, m??me celles faites par le m??me fabricant. Pour faciliter cette am??lioration, IBM a utilis?? le concept de microprogramme (souvent appel?? "microcode"), qui voit encore l'utilisation r??pandue dans les processeurs modernes. Le syst??me / 360 l'architecture ??tait si populaire qu'il a domin?? la march?? de l'informatique mainframe depuis des d??cennies et a laiss?? un h??ritage qui est toujours poursuivi par les ordinateurs modernes similaires, comme l'IBM zSeries. Dans la m??me ann??e (1964), Digital Equipment Corporation (DEC) a introduit un autre ordinateur influente visant ?? les march??s scientifiques et de recherche, le PDP-8. D??cembre plus tard pr??senter le tr??s populaire PDP-11 ligne qui a ??t?? ?? l'origine construit avec SSI CI, mais a finalement ??t?? mis en ??uvre avec des composants LSI fois ci sont devenus pratique. En contraste avec ses pr??d??cesseurs SSI et MSI, la premi??re mise en ??uvre de la LSI PDP-11 contenait un CPU compos?? de seulement quatre circuits int??gr??s LSI.
Ordinateurs ?? base de transistors ont plusieurs avantages distincts par rapport ?? leurs pr??d??cesseurs. En dehors de faciliter une fiabilit?? accrue et une faible consommation ??lectrique, les transistors ont ??galement permis CPU de fonctionner ?? des vitesses beaucoup plus ??lev??es en raison du temps de commutation d'un transistor court par rapport ?? un tube ou un relais. Merci ?? la fois la fiabilit?? accrue ainsi que la vitesse consid??rablement accrue des ??l??ments de commutation (qui ??taient presque exclusivement des transistors ?? cette ??poque), les taux d'horloge du processeur dans les dizaines de m??gahertz ont ??t?? obtenus au cours de cette p??riode. En outre tandis que le transistor discret et IC CPU ??taient en usage intensif, nouvelle haute performance con??oit comme SIMD (Single Instruction Multiple Data) processeurs vectoriels ont commenc?? ?? appara??tre. Ces mod??les exp??rimentaux d??but ont donn?? plus tard naissance ?? l'??re de la sp??cialis??e supercalculateurs comme celles faites par Cray Inc.
Microprocesseurs
Dans les ann??es 1970, les inventions fondamentales par Federico Faggin (ci Silicon grille MOS avec auto align??e portes ainsi que sa nouvelle m??thodologie de conception logique al??atoire) a chang?? la conception et la mise en ??uvre de processeurs toujours. Depuis l'introduction du premier microprocesseur disponible dans le commerce (le Intel 4004) en 1970, et le premier largement utilis?? microprocesseur (le Intel 8080) en 1974, cette classe de processeurs a presque compl??tement d??pass?? toutes les autres m??thodes de mise en ??uvre de l'unit?? centrale de traitement. Mainframe et mini-ordinateurs de l'??poque fabricants ont lanc?? des programmes exclusifs de d??veloppement de circuits int??gr??s pour mettre ?? jour leur plus architectures informatiques, et ??ventuellement produits jeu d'instructions microprocesseurs compatibles qui ??taient en arri??re-compatible avec leur mat??riel plus ancien et le logiciel. Combin?? avec l'av??nement et le succ??s ??ventuel de l'omnipr??sent ordinateur personnel , la CPU terme est maintenant appliqu?? presque exclusivement aux microprocesseurs. Plusieurs processeurs peuvent ??tre combin??s dans une seule puce de traitement.
Les g??n??rations pr??c??dentes de processeurs ont ??t?? mises en ??uvre comme des composants discrets et de nombreux petits circuits int??gr??s (CI) sur une ou plusieurs cartes de circuits. Microprocesseurs, d'autre part, sont fabriqu??s CPU sur un tr??s petit nombre de circuits int??gr??s; g??n??ralement un seul. La taille globale de CPU plus petite ?? la suite d'??tre mis en ??uvre sur une seule puce d??signe le temps de commutation plus rapide en raison de facteurs physiques comme la porte a diminu?? capacit?? parasite. Cela a permis microprocesseurs synchrones ?? avoir des taux d'horloge allant de quelques dizaines de m??gahertz ?? plusieurs gigahertz. En outre, comme la capacit?? de construire excessivement petits transistors sur un circuit int??gr?? a augment??, la complexit?? et le nombre de transistors dans un seul processeur a augment?? de plusieurs fois. Cette tendance largement observ??e est d??crit par la loi de Moore , qui se est av??r?? ??tre un pr??dicteur assez pr??cise de la croissance de la CPU (et d'autres IC) la complexit??.
Bien que la complexit??, la taille, la construction, et la forme g??n??rale de CPU ont ??norm??ment chang?? depuis 1950, il est ?? noter que la conception et la fonction de base n'a pas beaucoup chang?? du tout. Presque toutes les CPU courante aujourd'hui peut ??tre d??crit tr??s pr??cis??ment que von Neumann machines-programme stock??. Comme la loi de Moore pr??cit??e continue ?? ??tre vrai, des pr??occupations ont ??t?? soulev??es au sujet des limites de la technologie int??gr??e ?? transistor de circuit. Miniaturisation extr??me de portes ??lectroniques est ?? l'origine des effets de ph??nom??nes comme ??lectromigration et une fuite sous le seuil pour devenir beaucoup plus important. Ces pr??occupations plus r??centes sont parmi les nombreux facteurs qui causent les chercheurs ?? ??tudier de nouvelles m??thodes de calcul tels que l' ordinateur quantique , ainsi que d'??tendre l'utilisation de parall??lisme et d'autres m??thodes qui se ??tendent l'utilit?? du mod??le de von Neumann classique.
Op??ration
L'op??ration fondamentale de la plupart des processeurs, ind??pendamment de la forme physique, ils prennent, est d'ex??cuter une s??quence d'instructions stock??es appel??es un programme. Le programme est repr??sent?? par une s??rie de nombres qui sont conserv??es dans une sorte de m??moire d'ordinateur. Il ya quatre ??tapes que presque tous les processeurs utilisent dans leur fonctionnement: chercher, d??codage, ex??cution et ??criture diff??r??e.
La premi??re ??tape, chercher, implique la r??cup??ration d'un instruction (qui est repr??sent?? par un num??ro ou une s??quence de nombres) de la m??moire de programme. L'emplacement dans la m??moire de programme est d??termin?? par un compteur de programme (PC), qui m??morise un num??ro qui identifie la position actuelle dans le programme. Apr??s une instruction est extraite, le PC est incr??ment??e de la longueur du mot d'instruction en termes d'unit??s de m??moire. Souvent, l'instruction ?? extraire doit ??tre extrait de la m??moire relativement lente, ce qui provoque la CPU pour bloquer en attendant l'instruction ?? renvoyer. Cette question est largement trait??e dans les processeurs modernes par des caches et des architectures de pipelines (voir ci-dessous).
L'instruction que le CPU r??cup??re de la m??moire est utilis??e pour d??terminer ce que le CPU est ?? faire. Dans l'??tape de d??codage, l'instruction est divis?? en parties qui ont une importance pour d'autres parties de la CPU. La fa??on dont la valeur d'instruction est interpr??t??e num??rique est d??finie par le jeu d'instructions de l'architecture du CPU (ISA). Souvent, un groupe de num??ros dans l'instruction, appel??e code d'op??ration, ce qui indique l'op??ration ?? effectuer. Les parties restantes du nombre fournissent g??n??ralement des informations n??cessaires ?? cette instruction, comme op??randes pour une op??ration d'addition. Ces op??randes peuvent ??tre donn??s comme une valeur constante (appel??e une valeur imm??diate), ou comme un emplacement pour une valeur: un se inscrire ou une adresse m??moire, tel que d??termin?? par un certain mode d'adressage. Dans les conceptions anciennes parties de la CPU responsable de d??codage d'instruction sont des dispositifs mat??riels immuables. Cependant, dans les CPU et des ISA plus abstrait et complexe, un microprogramme est souvent utilis??e pour aider ?? traduire des instructions dans diff??rents signaux de configuration de la CPU. Ce microprogramme est parfois r??inscriptible de sorte qu'il peut ??tre modifi?? pour changer la fa??on dont le CPU d??code instructions, m??me apr??s qu'il a ??t?? fabriqu??.
Apr??s les ??tapes r??cup??rer et d??coder, ex??cuter l'??tape est effectu??e. Au cours de cette ??tape, diff??rentes parties de la CPU sont connect??s afin qu'ils puissent effectuer l'op??ration souhait??e. Si, par exemple, une op??ration d'addition a ??t?? demand??e, la Unit?? arithm??tique et logique (ALU) est reli??e ?? un ensemble d'entr??es et un ensemble de sorties. Les entr??es fournissent les nombres ?? additionner, et les sorties contiennent la somme finale. L'ALU contient les circuits n??cessaires pour effectuer de simples op??rations arithm??tiques et logiques sur les entr??es (comme l'addition et op??rations bit ?? bit). Si l'op??ration d'addition donne un r??sultat trop grand pour le CPU ?? manipuler, un drapeau de d??bordement arithm??tique dans un registre de drapeaux peuvent ??galement ??tre r??gl??.
La derni??re ??tape, r????criture, tout simplement ??, ??crit back" les r??sultats de l'??tape d'ex??cuter une certaine forme de m??moire. Tr??s souvent, les r??sultats sont ??crits dans une certaine registre de CPU interne pour un acc??s rapide par des instructions ult??rieures. Dans d'autres cas, les r??sultats peuvent ??tre ??crites plus lent, mais moins cher et plus grand, m??moire principale. Certains types de manipuler instructions du compteur de programme au lieu de produire directement des donn??es de r??sultat. Ils sont g??n??ralement appel??s ??sauts?? et facilitent un tel comportement boucles, l'ex??cution du programme conditionnelle (gr??ce ?? l'utilisation d'un saut conditionnel), et les fonctions de programmes. Beaucoup instructions seront ??galement changer l'??tat de chiffres dans un registre "flags". Ces drapeaux peuvent ??tre utilis??s pour influencer la fa??on dont un programme se comporte, car ils indiquent souvent le r??sultat des diff??rentes op??rations. Par exemple, un type de "comparer" instruction consid??re deux valeurs et fixe un certain nombre dans les drapeaux registre selon laquelle est sup??rieure. Cet indicateur pourrait alors ??tre utilis?? par une instruction de saut plus tard pour d??terminer le d??roulement du programme.
Apr??s l'ex??cution de l'instruction et de r????criture des donn??es r??sultantes, l'ensemble du processus se r??p??te, avec le prochain cycle d'instruction normalement aller chercher l'instruction suivante en s??quence en raison de la valeur incr??ment??e dans le compteur de programme. Si l'instruction ??tait termin??e un saut, le compteur de programme sera modifi?? pour contenir l'adresse de l'instruction qui a ??t?? pass?? ??, et l'ex??cution du programme se poursuit normalement. Dans processeurs plus complexe que celle d??crite ici, plusieurs instructions peuvent ??tre r??cup??r??s, d??cod??, et ex??cut?? simultan??ment. Cette section d??crit ce qui est g??n??ralement d??sign?? sous le nom " RISC classique pipeline ??, qui est en fait assez fr??quent chez les processeurs simples utilis??s dans de nombreux appareils ??lectroniques (souvent appel?? microcontr??leur). Il ignore largement le r??le important du cache du processeur , et donc le niveau de la fili??re d'acc??s.
Conception et mise en ??uvre
Le concept de base d'un processeur est la suivante:
C??bl?? dans la conception d'un CPU est une liste des op??rations de base qu'il peut effectuer, appel?? jeu d'instructions. Ces op??rations peuvent inclure l'ajout ou la soustraction de deux nombres, la comparaison des nombres, ou sauter dans une autre partie d'un programme. Chacune de ces op??rations de base est repr??sent?? par une s??quence particuli??re de bits; cette s??quence est appel??e opcode pour cette op??ration particuli??re. Envoi d'un opcode particulier ?? une CPU amener ?? effectuer l'op??ration repr??sent??e par ledit code op??ration. Pour ex??cuter une instruction dans un programme d'ordinateur, le processeur utilise le code op??ration de cette instruction ainsi que ses arguments (par exemple, les deux nombres ?? additionner, dans le cas d'une op??ration d'addition). Un programme d'ordinateur est donc une s??quence d'instructions, ?? chaque instruction, y compris un opcode et les arguments de cette op??ration.
L'op??ration math??matique r??elle de chaque instruction est effectu??e par une sous-unit?? de la CPU connu sous le nom Unit?? arithm??tique et logique ou ALU. En plus d'utiliser son ALU pour ex??cuter des op??rations, une unit?? centrale est ??galement responsable de la lecture de l'instruction suivante ?? partir de la m??moire, la lecture des donn??es sp??cifi??es dans les arguments de la m??moire, et ??crire les r??sultats en m??moire.
Dans de nombreux mod??les de CPU, un jeu d'instructions sera clairement la distinction entre les op??rations que les donn??es de charge de la m??moire, et de ceux qui effectuent les math??matiques. Dans ce cas, les donn??es charg??es dans la m??moire sont stock??es dans registres, et une op??ration math??matique ne prend aucun argument, mais effectue tout simplement le calcul sur les donn??es dans les registres et l'??crit dans un nouveau registre, dont la valeur d'une op??ration distincte peut alors ??crire dans la m??moire.
Unit?? de contr??le
L'unit?? de l'unit?? centrale de commande contient un circuit qui utilise des signaux ??lectriques pour diriger le syst??me informatique ?? ex??cuter des instructions de programme m??moris??es. L'unit?? de commande ne ex??cute pas d'instructions de programme; plut??t, r??alise d'autres parties du syst??me pour le faire. L'unit?? de contr??le doit communiquer ?? la fois avec le / unit?? et la m??moire arithm??tique et logique.
Gamme Entier
La mani??re dont un CPU repr??sente des nombres est un choix de conception qui affecte les moyens les plus ??l??mentaires dans lesquels des fonctions de l'appareil. Certains ordinateurs num??riques premiers ont utilis?? un mod??le ??lectrique de la commune d??cimal (de base dix) syst??me num??rique pour repr??senter des nombres en interne. Quelques autres ordinateurs ont utilis?? des syst??mes num??riques plus exotiques comme ternaire (base de trois). Presque tous les processeurs modernes repr??sentent des nombres en binaire forme, avec chaque chiffre ??tant repr??sent?? par une certaine quantit?? physique ?? deux valeurs telles que ??haut?? ou ??bas?? tension .
Li??es ?? la repr??sentation de nombre est la taille et la pr??cision des chiffres qu'une CPU peut repr??senter. Dans le cas d'une CPU binaire, un peu fait r??f??rence ?? une place importante dans les num??ros un processeur traite. Le nombre de bits (ou des lieux num??riques) un processeur utilise pour repr??senter des nombres est souvent appel?? " taille de mot "," largeur de bit "," largeur de chemin de donn??es "ou" pr??cision enti??re "lorsqu'il se agit de nombres entiers strictement (par opposition ?? point flottant). Ce nombre varie selon les architectures, et souvent dans diff??rentes parties de la m??me CPU. Par exemple, un 8 bits CPU traite une plage de num??ros pouvant ??tre repr??sent??e par huit chiffres binaires (chaque chiffre ayant deux valeurs possibles), ce est-2 8 ou 256 nombres discrets. En effet, la taille entier fixe une limite de mat??riel sur la plage de nombres entiers du logiciel ex??cut?? par le CPU peut utiliser.
Entier gamme peut ??galement affecter le nombre d'emplacements dans la m??moire du CPU peut r??soudre (localiser). Par exemple, si un CPU binaire utilise 32 bits pour repr??senter une adresse de m??moire, et chaque adresse de m??moire repr??sente une octet (8 bits), la quantit?? maximale de m??moire CPU peut traiter est de 2 32 octets, soit 4 Gio. Ce est une vue tr??s simple de CPU l'espace d'adressage, et de nombreux mod??les utilisent des m??thodes d'adressage plus complexes comme paging pour localiser plus de m??moire que leur gamme enti??re permettrait avec un espace d'adressage plat.
Des niveaux plus ??lev??s de gamme entier exigent plus de structures pour traiter les chiffres suppl??mentaires, et donc plus de complexit??, la taille, la consommation d'??nergie et les frais g??n??raux. Il ne est pas du tout rare, par cons??quent, voir 4 ou 8 bits microcontr??leurs utilis??s dans des applications modernes, m??me si les CPU avec la gamme beaucoup plus ??lev?? (comme 16, 32, 64, m??me 128 bits) sont disponibles. Les microcontr??leurs simples sont g??n??ralement moins chers, consomment moins d'??nergie, et donc g??n??rent moins de chaleur, qui peuvent tous ??tre des consid??rations de conception pour les appareils ??lectroniques. Cependant, dans les applications haut de gamme, les avantages offerts par la gamme suppl??mentaire (le plus souvent l'espace d'adressage suppl??mentaires) sont plus importants et souvent influent sur les choix de conception. Pour obtenir certains des avantages procur??s par les deux longueurs de bit inf??rieur et sup??rieur, de nombreux processeurs sont con??us avec des largeurs de bits diff??rentes pour diff??rentes parties du dispositif. Par exemple, le IBM System / 370 utilise un CPU qui est principalement 32 bits, mais il utilise la pr??cision de 128 bits int??rieur de son unit??s de virgule flottante pour faciliter une plus grande pr??cision et la gamme de nombres ?? virgule flottante. Beaucoup de conceptions de processeur ult??rieures utilisent largeur similaire de peu mitig??es, en particulier lorsque le processeur est con??u pour une utilisation polyvalente o?? un ??quilibre raisonnable entre entiers et flottants capacit?? de point est n??cessaire.
Fr??quence d'horloge
La fr??quence d'horloge est la vitesse ?? laquelle un microprocesseur ex??cute les instructions. Chaque ordinateur contient une horloge interne qui r??gule la vitesse ?? laquelle les instructions sont ex??cut??es et synchronise tous les diff??rents composants de l'ordinateur. La CPU a besoin d'un nombre fixe de tops d'horloge (ou de cycles d'horloge) pour ex??cuter chaque instruction. Le plus rapide de l'horloge, plus les instructions du CPU peut ex??cuter par seconde.
La plupart des CPU, et m??me plus dispositifs s??quentiels logiques, sont synchrone dans la nature. Autrement dit, ils sont con??us et fonctionnent sur des hypoth??ses concernant un signal de synchronisation. Ce signal, appel?? signal d'horloge, prend g??n??ralement la forme d'un p??riodique onde carr??e. En calculant le temps maximum que les signaux ??lectriques peuvent se d??placer dans les diff??rentes branches de nombreux circuits d'un CPU, les concepteurs peuvent choisir une appropri??e p??riode du signal d'horloge.
Cette p??riode doit ??tre sup??rieure ?? la quantit?? de temps qu'il faut pour un signal de se d??placer, ou propager, dans le pire des cas. En fixant la p??riode d'horloge ?? une valeur bien sup??rieure ?? la pire temps de propagation, il est possible de concevoir l'ensemble de la CPU et la fa??on dont elle se d??place autour des donn??es "bords" du signal d'horloge montant et descendant. Cela a l'avantage de simplifier sensiblement la CPU, ?? la fois du point de vue de la conception et une perspective composante de comptage. Toutefois, elle comporte aussi l'inconv??nient que l'ensemble de la CPU doit attendre sur ses ??l??ments les plus lents, m??me si certaines parties de celui-ci sont beaucoup plus rapides. Cette limitation a ??t?? largement compens??e par diverses m??thodes d'augmentation CPU parall??lisme. (Voir ci-dessous)
Cependant, des am??liorations architecturales seules ne r??solvent pas tous les inconv??nients de processeurs synchrones ?? l'??chelle mondiale. Par exemple, un signal d'horloge est soumis ?? des retards de tout autre signal ??lectrique. Des fr??quences d'horloge plus ??lev??es dans les processeurs de plus en plus complexes, il est plus difficile de garder le signal d'horloge en phase (synchronis??e) dans l'ensemble de l'unit??. Cela a conduit de nombreux processeurs modernes d'exiger de multiples signaux d'horloge identique ?? fournir pour ??viter de retarder un seul signal suffisamment pour provoquer la CPU ?? un dysfonctionnement. Un autre probl??me majeur que les taux d'horloge est augmentent consid??rablement la quantit?? de chaleur qui est dissip??e par la CPU. L'horloge en constante ??volution provoque de nombreux composants pour basculer ind??pendamment du fait qu'ils sont utilis??s ?? l'??poque. En g??n??ral, un composant de commutation qui utilise plus d'??nergie qu'un ??l??ment dans un ??tat statique. Par cons??quent, les hausses de taux d'horloge, il en va de la consommation d'??nergie, provoquant la CPU ?? exiger plus la dissipation de chaleur sous la forme de solutions de refroidissement de CPU.
Une m??thode de traiter avec la commutation des composants inutiles est appel?? horloge de d??clenchement, qui consiste ?? ??teindre le signal d'horloge aux composants inutiles (en fait, de les d??sactiver). Cependant, ce est souvent consid??r??e comme difficile ?? mettre en ??uvre et donc ne voit pas l'usage commun en dehors des m??mes mod??les de faible puissance. Une conception remarquable fin de CPU qui utilise clock gating pour r??duire les besoins en ??nergie de la console de jeu vid??o est celle de l'IBM PowerPC Xbox 360. Il utilise une vaste ouverture de porte d'horloge dans lequel il est utilis??. Un autre proc??d?? pour r??soudre certains des probl??mes avec un signal d'horloge global est la suppression du signal d'horloge tout ?? fait. Avantages tout en enlevant le signal d'horloge global rend le processus de conception beaucoup plus complexe ?? bien des ??gards, asynchrone (sans horloge ou) con??oit transportent marqu??e de la consommation d'??nergie et dissipation de la chaleur en comparaison avec des conceptions synchrones similaires. Bien que peu commun, ensemble processeurs asynchrones ont ??t?? construits sans utiliser un signal d'horloge global. Deux exemples notables de ce sont les ARM compatible AMULETTE et MiniMips compatibles MIPS R3000. Plut??t que de retirer totalement le signal d'horloge, certains mod??les de CPU permettent certaines parties de l'appareil ?? ??tre asynchrone, comme l'utilisation asynchrone UMM en conjonction avec pipeline superscalaire pour obtenir des gains de performance arithm??tiques. Alors que ce ne est pas tout ?? fait clair si totalement conceptions asynchrones peuvent effectuer ?? un niveau comparable ou mieux que leurs homologues synchrones, il est ??vident qu'ils ne excellent au moins dans les op??rations math??matiques simples. Ceci, combin?? avec leurs excellentes consommation d'??nergie et de chaleur propri??t??s de dissipation, les rend tr??s appropri?? pour calculateurs embarqu??s.
Parall??lisme
La description du fonctionnement de base d'un CPU offert dans la section pr??c??dente d??crit la forme la plus simple qu'une CPU peut prendre. Ce type de CPU, habituellement d??nomm?? subscalar, et op??re sur une instruction se ex??cute sur un ou deux ??l??ments de donn??es ?? la fois.
Ce processus donne lieu ?? une inefficacit?? inh??rente ?? processeurs subscalar. ??tant donn?? que seule une instruction est ex??cut??e ?? la fois, l'ensemble de la CPU doit attendre que l'instruction soit termin??e avant de passer ?? l'instruction suivante. Par cons??quent, la CPU se subscalar "raccroch??" sur instructions qui ont plus d'un cycle d'horloge pour terminer l'ex??cution. M??me l'addition d'un second unit?? d'ex??cution (voir ci-dessous) ne am??liore pas les performances beaucoup; plut??t qu'une voie ??tant raccroch??, maintenant deux voies sont suspendus et le nombre de transistors non utilis??s est augment??. Cette conception, dans laquelle les ressources d'ex??cution de la CPU peuvent fonctionner sur une seule instruction ?? la fois, ne peut ??ventuellement atteindre la performance scalaire (une d'instructions par cycle d'horloge). Cependant, le rendement est presque toujours subscalar (moins d'une instruction par cycle).
Les tentatives visant ?? atteindre une meilleure performance scalaire et ont abouti ?? une vari??t?? de m??thodologies de conception qui font que le CPU se comporter moins lin??aire et plus en parall??le. Lorsqu'on se r??f??re ?? un parall??lisme dans les CPU, deux termes sont g??n??ralement utilis??s pour classer ces techniques de conception. niveau de parall??lisme d'instructions (ILP) vise ?? accro??tre la vitesse ?? laquelle les instructions sont ex??cut??es dans un CPU (ce est d'augmenter l'utilisation des ressources sur-die l'ex??cution), et parall??lisme au niveau de fil (TLP) fins d'augmenter le nombre de (fils efficacement les programmes individuels) qu'un processeur peut ex??cuter simultan??ment. Chaque m??thodologie diff??re ?? la fois dans la mani??re dont ils sont mis en ??uvre, ainsi que l'efficacit?? relative qu'elles accordent ?? accro??tre la performance du CPU pour une application.
parall??lisme d'instruction
Une des m??thodes les plus simples utilis??s pour accomplir un parall??lisme accru est de commencer les premi??res ??tapes de l'instruction extraire et d??coder avant l'instruction avant fin de l'ex??cution. Ce est la forme la plus simple d'une technique connue sous le nom instruction pipeline, et est utilis?? dans presque tous les processeurs ?? usage g??n??ral modernes. Pipelining permet plus d'une instruction ?? ex??cuter ?? un moment donn?? en brisant la voie d'ex??cution en ??tapes discr??tes. Cette s??paration peut ??tre compar??e ?? une cha??ne de montage, dans lequel une instruction est rendue plus compl??te ?? chaque ??tape jusqu'?? ce qu'il quitte le pipeline d'ex??cution et est retir??.
Pipeline ne, cependant, introduire la possibilit?? pour une situation o?? le r??sultat de l'op??ration pr??c??dente est n??cessaire pour effectuer l'op??ration suivante; une condition appel??e souvent d??pendance de donn??es conflit. Pour faire face ?? cela, des soins suppl??mentaires doivent ??tre prises pour v??rifier ces sortes de conditions et de retarder une partie de la pipeline d'instructions si cela se produit. Naturellement, ceci n??cessite la r??alisation de circuits suppl??mentaires, de sorte que les processeurs en pipeline sont plus complexes que ceux subscalar (mais pas de fa??on tr??s significative). Un processeur pipeline peut devenir tr??s pr??s scalaire, inhib??e seulement par des stands de pipeline (une instruction d??penser plus d'un cycle d'horloge dans un stade).
Poursuite de l'am??lioration sur l'id??e d'instruction pipeline conduit ?? l'??laboration d'une m??thode qui diminue le temps d'inactivit?? de composants CPU encore plus loin. Designs qui sont cens??s ??tre superscalaire comprennent un pipeline d'instruction longue et plusieurs unit??s d'ex??cution identiques. Dans un pipeline superscalaire, plusieurs instructions sont lues et transmises ?? un r??partiteur, qui d??cide si oui ou non les instructions peuvent ??tre ex??cut??es en parall??le (simultan??ment). Si oui, ils sont envoy??s ?? unit??s d'ex??cution disponibles, r??sultant dans la capacit?? pour plusieurs instructions soient ex??cut??es simultan??ment. En g??n??ral, plus un processeur superscalaire instructions est capable d'envoyer simultan??ment attente unit??s d'ex??cution, les instructions seront plus effectu??es dans un cycle donn??.
La plupart de la difficult?? dans la conception d'une architecture de processeur superscalaire r??side dans la cr??ation d'un r??partiteur efficace. Le répartiteur doit être en mesure de déterminer rapidement et correctement si les instructions peuvent être exécutées en parallèle, ainsi que les dépêcher dans une manière de garder autant d'unités d'exécution occupés que possible. Il faut pour cela que le pipeline d'instructions est rempli le plus souvent possible et donne lieu à la nécessité, dans les architectures superscalaires pour des quantités significatives de mémoire cache de l'unité centrale . Il fait également des techniques de danger-en évitant comme la prédiction de branchement, exécution spéculative, et out-of-order exécution cruciale pour maintenir des niveaux élevés de performance. En tentant de prédire quelle branche (ou le chemin) une instruction conditionnelle prendra, le CPU peut minimiser le nombre de fois que l'ensemble du pipeline doit attendre une instruction conditionnelle est terminée. Exécution spéculative fournit souvent des performances modestes augmentations en exécutant des portions de code qui peuvent ne pas être nécessaire après une opération conditionnelle complète. Out-of-order exécution réorganise un peu l'ordre dans lequel les instructions sont exécutées afin de réduire les retards dus aux dépendances de données. Aussi en cas d'instructions simples de données multiples - un cas où un grand nombre de données à partir du même type doit être traitée, les processeurs modernes peuvent désactiver des parties de la canalisation de sorte que quand une seule instruction est exécutée à plusieurs reprises, la CPU saute le chercher et décoder phases et augmente ainsi considérablement les performances dans certaines occasions, en particulier dans les moteurs de programme extrêmement monotones tels que les logiciels de création vidéo et de traitement de la photo.
Dans le cas où une partie de la CPU superscalaire est et une partie est non, la partie qui ne subit une pénalité de performance due à des stands d'ordonnancement. Le processeur Intel P5 Pentium avait deux ALUs superscalaire qui pourrait accepter une instruction par cycle d'horloge chacun, mais sa FPU ne pouvait pas accepter une instruction par cycle d'horloge. Ainsi, le P5 était entier superscalaire mais pas en virgule flottante superscalaire. Le successeur d'Intel à l'architecture de P5, P6, a ajouté capacités superscalaires à ses assortis de caractéristiques de points, et donc a donné une augmentation significative de la performance de l'instruction à virgule flottante.
À la fois simple et design superscalaire en pipeline augmentent la ILP d'un CPU en permettant à un seul processeur pour terminer l'exécution d'instructions à des taux dépassant une instruction par cycle (IPC). La plupart des modèles de CPU modernes sont au moins quelque peu superscalaire, et presque tous les processeurs à usage général conçus dans la dernière décennie sont superscalaire. Des années plus tard une partie de l'accent dans la conception des ordinateurs haute ILP a été déplacé sur le matériel de la CPU et dans son interface du logiciel, ou ISA. La stratégie du mot d'instruction très long (VLIW) provoque une certaine ILP pour devenir implicitement ou directement par le logiciel, ce qui réduit la quantité de travail de la CPU doit accomplir pour stimuler ILP et réduisant ainsi la complexité de la conception.
parallélisme au niveau de filetage
Une autre stratégie d'atteindre la performance est d'exécuter plusieurs programmes ou threads en parallèle. Ce domaine de recherche est connu comme le calcul parallèle. En La taxonomie de Flynn, cette stratégie est connue sous plusieurs instructions-données multiples ou MIMD.
Une technologie utilisée à cette fin a été multitraitement (MP). La saveur initiale de cette technologie est connue sous le nom de multitraitement symétrique (SMP), où un petit nombre de processeurs partagent une vision cohérente de leur système de mémoire. Dans ce schéma, chaque CPU possède un matériel supplémentaire pour maintenir une vue constamment à jour de la mémoire. En évitant vues rassis de la mémoire, les processeurs peuvent coopérer sur le même programme et les programmes peuvent migrer d'un processeur à l'autre. Pour augmenter le nombre de processeurs de coopération au-delà d'une poignée, des programmes tels que l'accès non uniforme mémoire (NUMA) et protocoles de cohérence basée sur le répertoire ont été introduits dans les années 1990. Systèmes SMP sont limitées à un petit nombre de processeurs tandis que les systèmes NUMA ont été construits avec des milliers de processeurs. Initialement, le multitraitement a été construit en utilisant les processeurs et les conseils discrets multiples pour mettre en ??uvre l'interconnexion entre les processeurs. Lorsque les processeurs et leur interconnexion sont toutes mises en ??uvre sur une seule puce de silicium, la technologie est connu comme un processeur multi-core.
Il a plus tard ??t?? reconnu que plus fine-grain parall??lisme existait avec un seul programme. Un seul programme peut avoir plusieurs threads (ou fonctions) qui pourraient être exécutés séparément ou en parallèle. Certains des premiers exemples de cette technologie mise en oeuvre d'entrée / de sortie de traitement tels que l'accès direct à la mémoire comme un thread séparé depuis le thread de calcul. Une approche plus globale de cette technologie a été introduite dans les années 1970 lorsque les systèmes ont été conçus pour exécuter plusieurs threads de calcul en parallèle. Cette technologie est connue comme le multi-threading (MT). Cette approche est considérée comme plus rentable que le multitraitement, que seul un petit nombre de composants au sein d'un CPU est répliquée pour soutenir MT par opposition à l'ensemble de la CPU dans le cas de MP. En MT, les unités d'exécution et le système de mémoire, y compris les caches sont partagés entre plusieurs threads. L'inconvénient de MT est que le support matériel pour le multithreading est plus visible pour le logiciel que celui de député et donc le logiciel de supervision comme les systèmes d'exploitation doivent subir des changements plus importants à l'appui de MT. Un type de MT qui a été mis en ??uvre est connu comme bloc multithreading, où un thread est exécuté jusqu'à ce qu'il soit bloqué en attente de données à renvoyer de la mémoire externe. Dans ce schéma, le CPU serait alors passer rapidement à un autre thread qui est prêt à fonctionner, le commutateur fait souvent en un cycle d'horloge du processeur, telles que la technologie UltraSPARC. Un autre type de MT est connu comme simultaneous multithreading, où les instructions de plusieurs threads sont exécutés en parallèle dans un cycle d'horloge du processeur.
Depuis plusieurs décennies, des années 1970 au début des années 2000, l'accent dans la conception de processeurs haute performance à usage général était en grande partie sur la réalisation de haute ILP grâce à des technologies telles que le pipelining, caches, l'exécution superscalaire, out-of-order exécution, etc. Cette tendance a culminé en grande , CPU avides de pouvoir tels que le processeur IntelPentium 4. Au début des années 2000, les concepteurs de CPU ont été contrariés d'atteindre des performances supérieures de techniques ILP en raison de la disparité croissante entre les fréquences de fonctionnement de la CPU et principales fréquences de fonctionnement de la mémoire ainsi que l'escalade de la puissance du processeur dissipation dû aux techniques ILP plus ésotériques.
concepteurs de CPU alors emprunté des idées de marchés informatiques commerciaux tels quele traitement des transactions, où le rendement global des programmes multiples, aussi connu commel'informatique débit, était plus important que la performance d'un seul fil ou d'un programme.
Ce renversement de l'accent est mis en évidence par la prolifération des dual core et multiple CMP (niveau puce multitraitement) conçoit et notamment, les nouveaux modèles d'Intel ressemblant moins superscalaire son architecture P6. Conceptions tardives dans plusieurs familles de processeurs exposition CMP, y compris le x86-64 Opteron et Athlon 64 X2, le SPARC UltraSPARC T1, IBM POWER4 et POWER5, ainsi que plusieurs consoles de jeux vidéo CPU comme le design de PowerPC triple-core de la Xbox 360, et de la 7-core PS3 microprocesseur Cell.
parallélisme de données
Un paradigme moins courant, mais plus en plus important de processeurs (et en effet, l'informatique en général) traite de parallélisme de données. Les processeurs évoquées plus haut sont tous appelés certain type de dispositif scalaire. Comme son nom l'indique, les processeurs vectoriels face à de multiples éléments de données dans le cadre d'une instruction. Cela contraste avec les processeurs scalaires, qui traitent avec un morceau de données pour chaque instruction. Utilisation La taxonomie de Flynn, ces deux régimes de traitement des données sont généralement appelé SIMD (d'instruction unique, données multiples) et SISD (instruction unique, données unique), respectivement. La grande utilité dans la création de processeurs qui traitent avec des vecteurs de données réside dans l'optimisation des tâches qui ont tendance à exiger la même opération (par exemple, une somme ou d'un produit scalaire) à effectuer sur un grand ensemble de données. Certains exemples classiques de ces types de tâches sont les applications multimédia (images, vidéo et son), ainsi que de nombreux types de tâches scientifiques et techniques. Alors qu'un CPU scalaire doit compléter l'ensemble du processus d'extraction, le décodage et l'exécution de chaque instruction et la valeur d'un ensemble de données, un processeur vectoriel peut effectuer une seule opération sur un relativement grand ensemble de données avec une instruction. Bien sûr, cela est possible uniquement lorsque la demande a tendance à exiger beaucoup d'étapes qui appliquent une opération à un grand ensemble de données.
La plupart des processeurs vectoriels d??but, comme le Cray-1, ont été associés presque exclusivement avec des scientifiques et de recherche cryptographie applications. Cependant, comme le multimédia a largement déplacé vers les médias numériques, la nécessité d'une certaine forme de SIMD dans les CPU usage général est devenue importante. Peu de temps après inclusion de virgule flottante unités d'exécution a commencé à devenir monnaie courante dans les processeurs à usage général, et des spécifications pour les implémentations de SIMD unités d'exécution ont commencé à apparaître pour les processeurs à usage général. Certains de ces spécifications SIMD début comme HP Accélération multimédia extensions (MAX) et d'Intel MMX étaient entier seule. Cette avéré être un obstacle important pour certains développeurs de logiciels, car la plupart des applications qui bénéficient de SIMD traiter principalement des nombres à virgule flottante. Progressivement, ces premiers modèles ont été affinés et refaits dans certaines des spécifications SIMD modernes communes, qui sont habituellement associés à un ISA. Quelques exemples modernes notables sont d'Intel SSE et le PowerPC liés AltiVec (également connu sous le VMX).
Performance
Le rendement ou la vitesse d'un processeur dépend de la fréquence d'horloge (en général donné par multiples de hertz) et les instructions par cycle d'horloge (IPC), qui sont en même temps les facteurs pour les instructions par seconde (IPS) que le processeur peut exécuter. Beaucoup ont déclaré des valeurs IPS ont représenté "pic" taux d'exécution sur des séquences d'instructions artificiels avec quelques branches, tandis que les charges de travail réalistes consistent en un mélange d'instructions et d'applications, dont certains prennent plus de temps à exécuter que d'autres. La performance de la hiérarchie mémoire affecte aussi considérablement les performances du processeur, un problème à peine pris en compte dans les calculs MIPS. En raison de ces problèmes, différents tests standardisés, souvent appelés «repères» pour cette fin-comme SPECint - ont été développés pour tenter de mesurer la véritable performance efficace dans les applications couramment utilisées.
performances de traitement des ordinateurs est augmentée en utilisant des processeurs multi-core, qui est essentiellement de brancher deux ou plusieurs processeurs individuels (appelés noyaux dans ce sens) dans un seul circuit intégré . Idéalement, un processeur dual core serait presque deux fois plus puissant qu'un processeur simple core. En pratique, toutefois, le gain de performance est beaucoup moins, seulement environ 50%, grâce à des algorithmes logiciels imparfaits et mise en ??uvre. L'augmentation du nombre de c??urs dans un processeur (c.-à-dual-core, quad-core, etc.) augmente la charge de travail qui peut être manipulé. Cela signifie que le processeur peut maintenant gérer de nombreux événements asynchrones, interruptions, etc., qui peuvent prendre un péage sur le CPU (Central Processing Unit) lorsque submergé. Ces noyaux peuvent être considérés comme des étages différents dans une usine de transformation, avec chaque étage de manutention une tâche différente. Parfois, ces noyaux vont gérer les mêmes tâches que les noyaux adjacents à eux si un noyau unique ne suffit pas de traiter l'information.