Tout le monde sait que la vitesse de calcul a considérablement augmenté depuis leur invention, et elle devrait continuer. Mais une chose me laisse perplexe: si vous faisiez passer un courant électrique dans un matériau, celui-ci voyagerait à la même vitesse que si vous le faisiez avec le même matériau il y a 50 ans.
Dans cet esprit, comment les ordinateurs sont-ils devenus plus rapides? Quel est le domaine principal de la conception du processeur qui a donné ces incroyables augmentations de vitesse?
Je pensais que cela pourrait être un ou plusieurs des éléments suivants:
- Processeurs plus petits (moins de distance parcourue par le courant, mais il me semble que vous ne pourriez faire que des gains marginaux ici).
- Meilleurs matériaux
computer-architecture
leylandski
la source
la source
Réponses:
Vous obtenez des conclusions erronées car votre hypothèse de départ est fausse: vous pensez que la vitesse du processeur équivaut à la vitesse des électrons dans le processeur.
En fait, le processeur est une logique numérique synchrone. La vitesse limite est que la sortie d'une équation logique doit être stable pendant une période d'horloge. Avec la logique mise en œuvre avec des transistors, la limite est principalement liée au temps nécessaire pour faire basculer les transistors. En réduisant la taille de leurs canaux, nous pouvons les faire basculer plus rapidement. C’est la principale raison de l’amélioration de la fréquence maximale des processeurs depuis 50 ans. Aujourd'hui, nous modifions également la forme des transistors pour augmenter leur vitesse de commutation, mais pour autant que je sache , seuls Intel, Global Foundries et TSMC sont capables de créer des FinFET aujourd'hui.
Cependant, il existe d'autres moyens d'améliorer la vitesse d'horloge maximale d'un processeur: si vous divisez votre équation logique en plusieurs équations plus petites, vous pouvez accélérer chaque étape et obtenir une vitesse d'horloge supérieure. Vous avez également besoin de plus de périodes d'horloge pour effectuer la même action, mais, à l'aide de techniques de pipeline , vous pouvez faire en sorte que le taux d'instructions par seconde suive votre fréquence d'horloge.
Aujourd'hui, la vitesse des électrons est devenue une limite: à 10 GHz, un signal électrique ne peut se propager sur plus de 3 cm. C'est à peu près la taille des processeurs actuels. Pour éviter ce problème, vous pouvez avoir plusieurs domaines synchrones indépendants dans votre puce, réduisant ainsi les contraintes liées à la propagation du signal. Mais ce n’est qu’un facteur limitant, parmi la vitesse de commutation des transistors, la dissipation thermique, la compatibilité électromagnétique, et probablement d’autres (mais je ne suis pas dans l’industrie de la fonderie de silicium).
la source
De nombreuses variables complexes affectent la vitesse globale du processeur, mais la principale est la vitesse d'horloge, qui a augmenté au milieu des années 2000 puis a été réduite à zéro en raison de contraintes physiques. La consommation d'énergie par puce a également augmenté au cours de cette période pour compenser les pertes / fuites de la puce. Les puces du processeur sont devenues trop chaudes et la technologie de refroidissement est devenue plus importante, et plus de puissance en watts ne pouvait pas être appliquée (sans les faire fondre littéralement!).
Extremetech.com donne un bon sondage qui montre que la loi de Moore est principalement alimentée par la mise à l’échelle de Dennard . Ce dernier s’est effondré au milieu des années 2000. Il existe de nombreux autres facteurs de conception / améliorations impliqués dans la "vitesse" de la puce (où la "vitesse" est mesurée en tant que temps d'exécution de code global et pas simplement en vitesse d'horloge) qui tendait à masquer le point d'inflexion dans les capacités matérielles telles que les caches, le parallélisme de la CPU / multicœur , prédiction de branche, etc., qui ont été ajoutés avec des largeurs de porte plus petites (et donc beaucoup plus de portes par puce pour une fonctionnalité supplémentaire). La largeur des portes a également eu tendance à cesser de diminuer ou du moins à diminuer moins rapidement à chaque génération.
Pourquoi ces tendances limitantes ne sont-elles pas très connues? Certaines des entités qui connaissent le mieux ces tendances "ont le plus à perdre" et sont en réalité les moins susceptibles de les publier. Par exemple, Intel, d’une valeur de plusieurs milliards de dollars, ne publiera probablement pas de données internes propriétaires indiquant des limites ou une diminution des performances futures.
De nouvelles possibilités se profilent à l’horizon, qui pourraient déboucher sur de nouvelles tendances (mais certaines impliquent des technologies / techniques de fabrication presque totalement différentes), notamment les puces photoniques, les puces 3D dans lesquelles les puces sont déposées en plusieurs couches, l’informatique quantique, les nanotechnologies telles que les nanotubes. transistors, etc.
la source
Délégation à des processeurs supplémentaires
Une autre considération (en plus des autres bonnes réponses) est la délégation de tâches à d'autres processeurs. Au début de l'informatique, il n'y avait qu'un seul processeur. Pour les graphiques, le calcul a été partagé avec d’autres calculs dans la même CPU. Nous disposons maintenant de processeurs distincts pour le traitement graphique.
Plusieurs noyaux
Beaucoup de processeurs modernes ont plusieurs cœurs, dans le même morceau de silicium. Parce qu'ils partagent le même morceau de silicium, ils ne sont pas affectés autant par le ralentissement du passage de la puce à un autre cœur / processeur. Exemple: Processeurs graphiques.
Extension de mémoire et d'adresse
Les premiers microprocesseurs à 8 bits avaient une plage d'adressage inférieure à celle des processeurs actuels à 32 et 64 bits. Les processeurs modernes ont une plage de mémoire accrue, ce qui signifie que davantage de calculs peuvent être effectués en mémoire plutôt que d'avoir à accéder à une mémoire externe.
Cela s'applique également à la mémoire intégrée. Le plus grand espace d'adressage permet de plus grandes mémoires plus près du noyau central, tout en laissant un grand espace d'adressage à l'extérieur du silicium.
Pipelines et Caches
Alors que la mémoire devient moins chère, les ordinateurs modernes mettent en œuvre des pipelines de données et d'instructions plus sophistiqués, ainsi que des caches de données et d'instructions. Cela accélère l'exécution en réduisant le besoin de récupérer de la mémoire plus lente (en dehors du silicium) vers le cache interne. Certains processeurs peuvent contenir des
for
boucles dans leurs caches d'instructions.Sommaire
Les ordinateurs actuels sont beaucoup plus rapides, non seulement en raison des progrès des technologies des transistors et du silicium, mais également en raison de la délégation de tâches à d'autres processeurs / cœurs. La mémoire devenant plus rapide et moins chère, elle permet aux processeurs d’avoir beaucoup de mémoire à proximité du processeur. Les plages d’adressage permettent plus de mémoire, ce qui signifie moins d’attaques vers la mémoire de stockage externe. Des tailles de registre plus grandes permettent de récupérer plus de données par cycle (4 octets avec un système 32 bits, 1 octet avec un système 8 bits). Plusieurs cœurs permettent de mettre en parallèle des opérations plutôt que de les sérialiser.
la source
Presque toutes les avancées en matière de vitesse informatique proviennent de l’un de ces domaines:
Petits transistors
La réduction de la taille des transistors a deux conséquences:
Plus de "travail utile" par instruction
Par exemple, certains processeurs manquent d'instructions pour multiplier ou diviser des entiers; à la place, cette tâche doit être effectuée avec des routines logicielles lentes. Ajouter des instructions multiplier et diviser accélère considérablement les choses. L'ajout d' instructions à virgule flottante peut accélérer les logiciels nécessitant des nombres à virgule flottante.
Augmenter la taille des mots est un moyen important de faire plus de "travail utile" par instruction . Les CPU capables d'effectuer des opérations sur des nombres 32 bits nécessitent souvent beaucoup moins d'instructions pour exécuter la même tâche que les CPU 16 bits ou 8 bits.
Certains processeurs prennent en charge les instructions qui effectuent plusieurs opérations à la fois, notamment celles qui exécutent la même opération sur plusieurs éléments de données ( SIMD ).
Plus d'instructions par cycle
Le "cycle d'horloge" indique comment le processeur passe de son état actuel à l'état suivant. En un sens, il s’agit de la plus petite unité de travail que le processeur puisse effectuer à la fois. Cependant, le nombre de cycles d'horloge d'une instruction particulière dépend de la conception du processeur.
Avec l’avènement des processeurs en pipeline , il est devenu possible de "superposer" des instructions distinctes, c’est-à-dire que l’on commencerait avant la fin de la précédente. Cependant, certaines instructions peuvent invalider la prochaine instruction, qui ne sera pas connue avant que l'instruction suivante ne soit partiellement exécutée, ce qui peut compliquer les choses. (Les processeurs en pipeline incluent une logique pour que tout fonctionne correctement, mais les caractéristiques de performances sont plus complexes.)
Les processeurs Superscalar prennent ce niveau au prochain niveau, permettant littéralement à deux instructions de s'exécuter en même temps, et une exécution dans le désordre avance encore plus loin, permettant à des instructions d'être exécutées dans le désordre. Ces fonctionnalités nécessitent une analyse du flux d'instructions, afin de déterminer quelles instructions n'entrent pas en conflit.
Bien qu'il existe d'autres astuces de ce type ( prédiction de branche , exécution spéculative , par exemple ), le plus important est le tableau général:
Plus de cycles par seconde
En d'autres termes, une vitesse d'horloge plus élevée . L'augmentation de la vitesse d'horloge augmente non seulement la chaleur générée, mais nécessite également une conception de puce plus rigoureuse, car le délai de stabilisation du circuit est plus court. Nous avons parcouru pas mal de temps là-bas jusqu'aux années 2000, lorsque nous avons atteint certaines limites pratiques.
Les données au bon endroit au bon moment
Bien que les composants du processeur se rapprochent de plus en plus en raison du rétrécissement des transistors, le processeur et la RAM restent espacés de 5 à 10 cm. Si une instruction nécessite quelque chose de la RAM, elle ne prendra pas 5 à 6 cycles, mais environ 200. Il s’agit du problème de goulot d’étranglement de von Neumann .
Notre arme principale contre ceci est la cache . Les données récemment consultées sont plus susceptibles d'être consultées à nouveau. Elles sont donc conservées dans une mémoire spéciale (appelée cache) située dans la puce du processeur, ce qui le rend beaucoup plus rapide d'accès.
Cependant, d'autres techniques (telles que la planification en pipeline et la prédiction de branche ) permettent au processeur d'effectuer un travail utile en attendant l'arrivée des données et de prévoir celles qui seront bientôt nécessaires.
Processeurs multiples et / ou spécialisés
Il est beaucoup plus facile d'écrire un logiciel pour un seul processeur que pour plusieurs processeurs. Cependant, les avantages performance / coût / consommation d’énergie en valent parfois la peine.
De plus, certains processeurs sont particulièrement bien adaptés à certaines tâches. Par exemple, les GPU sont spécialement conçus pour les calculs nécessaires au rendu des graphiques et des effets 2D et 3D.
Les processeurs multicœurs sont essentiellement des processeurs multiples sur une seule puce.
la source
Lorsque les ordinateurs peuvent effectuer plus de calculs par unité de temps, ils sont considérés comme plus rapides. Chaque calcul ne peut pas être fait plus rapidement qu'auparavant, mais il y a plus de calculs en cours. Une bonne analogie serait le nombre de pas qu'un coureur prend. Si un coureur se comportait conformément à la loi de Moore, il pourrait faire deux fois plus de pas tous les deux ans. Essentiellement, le coureur couvrirait deux fois la distance dans le même temps que le coureur il y a deux ans. La distance divisée par le temps est égale à la vitesse. 2 X Distance équivaut à 2 X Vitesse.
la source
La puissance de traitement d’un ordinateur / d’un processeur tient à la rapidité avec laquelle l’électricité se déplace, mais plutôt à la rapidité avec laquelle elle peut être activée et désactivée. Plus vous pouvez basculer rapidement entre le courant et non le courant, plus vous pouvez traiter d'informations au sein d'un processeur ou transmettre en aval.
la source
Pour les processeurs typiques utilisés dans les PC, la dissipation de chaleur est un facteur limitant depuis plus de dix ans, alors que les processeurs à refroidissement par air dans les PC ont été limités à environ 4 GHz. Le refroidissement par eau élève ce niveau à environ 5 GHz, et le refroidissement à l'azote a été utilisé pour pousser les fréquences d'horloge à environ 6 GHz et 6,5 GHz.
La fréquence d'horloge est fondamentalement fonction de la tension en fonction de la taille de la logique du circuit (le temps nécessaire pour changer d'état). Plus la tension est élevée ou plus la logique du circuit est petite, plus la cadence est rapide, mais cela pose un problème de dissipation de chaleur car les densités augmentent généralement avec la réduction de la taille de la logique du circuit. Avec la densité élevée, il ne reste plus beaucoup de place pour que les matériaux conducteurs de chaleur dissipent la chaleur. Réduire la densité augmente les coûts et augmente également les délais de propagation en raison de la longueur accrue des circuits.
Les processeurs n'ont pas été beaucoup plus rapides ces dernières années, l'actuel Intel i7 4790K (4,0 GHz, 4,4 Ghz turbo) n'est pas beaucoup plus rapide que le deuxième génération d'Intel i7 2700K (3,5 GHz, 3,9 GHz turbo), autre que sa fréquence d'horloge plus rapide (environ 14,3% plus rapide). D'autre part, les graphiques 3D pouvant tirer parti des opérations parallèles, les performances des cartes vidéo ont été multipliées par 3 au cours des 4 ou 5 dernières années, certaines ayant l'équivalent de plus de 3 000 sous-cœurs.
la source
Bien que les réponses déjà données soient bonnes, elles semblent toutes très compliquées!
La réponse rapide "TLDR" est "nombre de portes logiques" et "à quelle vitesse ces portes logiques peuvent-elles se déclencher". Pensez aux portes logiques comme les 1 et les 0. Ceci est juste un transistor / tube à vide / quoi allumer ou éteindre. 1 est allumé 0 est éteint.
L'électricité ne se déplace pas plus vite ni plus lentement, mais vous pouvez en empaqueter plus et des zéros sur votre puce car ceux-ci et les zéros eux-mêmes sont plus petits. Et vous pouvez les faire basculer plus rapidement avec le temps. Est-ce que cela rend la réponse un peu plus simple?
la source
Les deux facteurs les plus importants sont, de loin, le fait que les transistors ont rétréci de manière ridicule. Nous disposons donc désormais de smartphones dotés de plus d'un milliard de transistors et le fait que le passage d'un transistor à un autre est devenu beaucoup plus rapide. La commutation plus rapide se traduit directement par plus de vitesse. Le nombre plus élevé de transistors augmente la vitesse indirectement, car il permet de nombreuses autres améliorations: nous avons des caches car nous avons plus de transistors. Nous avons des registres plus nombreux et plus grands parce que nous avons plus de transistors. Nous avons des instructions vectorielles car nous avons plus de transistors. Nous avons des processeurs à deux, quatre ou dix cœurs parce que nous avons plus de transistors.
Dans une moindre mesure, la vitesse a été améliorée grâce à une meilleure conception. Par exemple, un multiplicateur n'est pas simplement plus rapide parce que nous avons plus de transistors, mais parce que nous utilisons de meilleures méthodes. La prévision de branche s'est améliorée au-delà du nombre de transistors disponibles. Mais dans l’ensemble, il s’agit d’un faible effet par rapport à la puissance brute d’un milliard de transistors.
(Le processeur du premier Mac s'appelait un processeur Motorola 68000 car il comportait 68 000 transistors. Un nouvel iPad en contient environ 20 000 fois plus).
la source
Je suis un ingénieur en mécanique. Je ne sais donc pas à quel point cela affecte la vitesse d'un processeur ni si cela est devenu un facteur limitant ou non, mais la physique qui le sous-tend est solide. L'inductance et la capacité du circuit affecteront la rapidité avec laquelle les signaux de tension numériques peuvent monter et descendre, affectant ainsi la vitesse de commutation. Idéalement, les signaux de commutation seraient de belles ondes carrées. En réalité, ils sont légèrement déformés et inclinés sur les bords. Les signaux doivent être hauts et suffisamment hauts pour pouvoir être lus avant le prochain cycle d'horloge. Essentiellement, l'onde de signal a besoin d'un "point plat" au sommet. Si vous changez de vitesse trop rapidement, vous obtiendrez un signal d'onde plus pointu. Ceux d’entre vous qui sont plus familiarisés avec les signaux numériques peuvent apporter des éclaircissements au besoin, mais l’idée est bonne.
la source