Et maintenant, Apple a annoncé qu'elle migrait ses Mac vers les processeurs Silicon ARM d'Apple. Nous vous avons déjà expliqué pourquoi cela se produit. Aujourd'hui, examinons de plus près quelles sont les différences fondamentales entre x86 et ARM. Et pourquoi Apple s'est-il inscrit dans tout cela?
Ainsi, la plupart des appareils mobiles, des iPhones et des androïdes fonctionnent sur ARM. Qualcomm, HUAWEI Kirin, Samsung Exynos et Apple A13 / A14 Bionic sont tous des processeurs ARM.
Mais sur l'ordinateur, ce n'est pas le cas - il est dominé par x86 sous l'aile d'Intel et d'AMD. C'est pourquoi sur le téléphone, nous ne pouvons pas exécuter Word à partir de l'ordinateur.
x86 est le nom donné aux derniers chiffres de la famille des processeurs Intel classiques des années 70 et 80. Comment sont-ils différents? Il existe deux différences clés.
Le premier est un ensemble d'instructions, c'est-à-dire le langage que le processeur comprend
Les processeurs x86 utilisent un jeu d'instructions complexe appelé CISC - Complex Instruction Set Computing.
Les processeurs ARM, au contraire, utilisent un jeu d'instructions simplifié - RISC - Reduced Instruction Set Computing.
À propos, ARM signifie Advanced RICS Machines - Advanced RISC Machines.
Les ensembles d'instructions sont aussi communément appelés architecture ou ISA - Instruction Set Architecture.
La deuxième différence est la microarchitecture. Ce que c'est?
La langue parlée par les processeurs dépend de la manière dont ils sont conçus. Parce que pour exécuter chaque instruction sur le processeur, vous devez localiser son propre bloc logique. En conséquence, des instructions différentes signifient des conceptions de processeur différentes. Et le design est une microarchitecture.
- x86 - CISC
- ARM - RISC
Alors souviens-toi. Nous disons x86 - nous parlons de l'architecture CISC, ARM est RISC.
Mais comment se fait-il que les processeurs aient commencé à parler des langues différentes?
Histoire de l'ICCA
Mémo du programmeur, 1960. Code numérique (machine) "Minsk-22".
Tout a commencé dans les années 1960. Au début, les programmeurs travaillaient avec du code machine, c'est-à-dire qu'ils écrivaient des zéros et des uns. Cela s'est vite fatigué de tout le monde et l'assembleur est apparu. Un langage de programmation de bas niveau qui permettait d'écrire des commandes simples telles que l'ajout, la copie, etc. Mais la programmation dans Assembler était également difficile. Car il fallait littéralement "par la poignée" décrire pas à pas au processeur chacune de ses actions.
Par conséquent, si vous dîniez avec le transformateur et que vous demandiez de vous le donner le sel, cela ressemblerait à ceci:
- Hé processeur, regarde le centre de la table.
- Voyez-vous le sel? Prends-la.
- Maintenant regarde-moi.
- Donnez-moi le sel. - Oui merci!
- Maintenant, reprenez-moi le sel.
- Mettez-le là où vous l'avez
- Merci beaucoup! Continuez votre activité.
- Ahem ... Processeur, tu vois le poivre?
- Etc....
À un moment donné, tout cela a dérangé les programmeurs. Et ils ont décidé: Hé, pourquoi n'écrivons-nous pas simplement l'instruction "Passe-moi le sel"? Et c'est ce qu'ils ont fait. Un ensemble d'instructions aussi complexes s'appelait CISC.
Cette approche a été une véritable bouée de sauvetage pour les développeurs et les entreprises. Le client voulait une nouvelle instruction - pas de problème, s'il y avait de l'argent - nous le ferons. Et les clients avaient de l'argent.
Inconvénients de l'ICCA
Mais cette approche était-elle optimale ??? Du point de vue d'un développeur, oui. Mais la microarchitecture a souffert.
Imaginez que vous ayez acheté un appartement et que vous deviez maintenant le meubler. La superficie est petite, chaque mètre carré compte. Et maintenant, imaginez si un processeur CISC meublait votre salon avec des meubles, d'une part, il s'occuperait du confort de chaque invité potentiel et lui allouerait son propre espace personnel.
D'un autre côté, il n'aurait pas épargné le budget. Un canapé pour une personne, un pouf pour une autre, un canapé pour une troisième, un trône Game of Thrones pour votre Daenerys. Dans ce cas, la zone de la pièce se terminerait très rapidement. Pour accueillir tout le monde, vous devrez augmenter votre budget et agrandir la salle. Ce n'est pas rationnel. Mais surtout, l'architecture CISC existe depuis très longtemps et les instructions écrites dans les années 60 ne sont plus pertinentes aujourd'hui. Par conséquent, certains meubles, ou plutôt les unités d'exécution, ne seront tout simplement pas utilisés. Mais beaucoup d'entre eux y restent. Par conséquent, RISC est apparu ...
Avantages RISC
D'une part, il n'est pas très pratique d'écrire des processeurs dans Assembler pour processeurs RISC. Si nous comparons directement le code écrit pour les processeurs CISC et RISC, l'avantage du premier est évident.
Voici à quoi ressemble le code de la même opération pour x86 et ARM.
x86
- MOV AX, 15; AH = 00, AL = 0Fh
- AAA; AH = 01, AL = 05
- RET
BRAS
- MOV R3, n ° 10
- ET R2, R0, # 0xF
- CMP R2, R3
- IT LT
- BLT elsebranch
- AJOUTER R2. # 6
- AJOUTER R1. #1
- elsebranch:
- FIN
Mais ça c'était avant. Personne n'écrit en assembleur depuis longtemps. Désormais, les compilateurs font tout cela pour les programmeurs, il n'y a donc aucune difficulté à écrire du code pour les processeurs RISC. Mais il y a des avantages.
Imaginez que vous concevez un processeur. La disposition des blocs sur x86 ressemblerait à ceci. Chaque carré coloré est une commande distincte. Il y en a beaucoup et ils sont différents. Comme vous le comprenez, nous parlons déjà ici de la microarchitecture, qui découle du jeu d'instructions. Mais le processeur ARM ressemble à ceci. Il n'a pas besoin de blocs créés pour des fonctions écrites il y a 50 ans. En fait, il n'y a ici que des blocs pour les équipes les plus populaires. Mais il existe de nombreux blocs de ce type. Cela signifie que des commandes plus basiques peuvent être exécutées simultanément. Et les rares ne prennent pas de place.
Autre avantage de la numérotation RISC réduite: moins d'espace sur la puce est occupé par le bloc pour les instructions de décodage. Oui, cela a également besoin d'une place. L'architecture RISC est plus simple et plus pratique, pliez les doigts:
- un travail plus facile avec la mémoire,
- architecture de registre plus riche,
- plus facile à faire 32/64/128 chiffres,
- plus facile à optimiser,
- moins de consommation d'énergie,
- plus facile à mettre à l'échelle et à déboguer.
Par exemple, voici deux processeurs de la même génération. ARM1 et Intel 386. Avec des performances similaires, ARM fait la moitié de la taille. Et les transistors sont 10 fois moins nombreux: 25 000 contre 275 000. La consommation électrique diffère également d'un ordre de grandeur: 0,1 W contre 2 W pour Intel. Choc.
Par conséquent, nos smartphones qui fonctionnent sur des processeurs ARM avec une architecture RISC ont une longue durée de vie, ne nécessitent pas de refroidissement actif et sont si rapides.
Licence
Mais ce sont toutes des différences techniques. Il existe également des différences organisationnelles. Vous êtes-vous déjà demandé pourquoi il existe autant de fabricants de processeurs pour smartphones et dans le monde des PC x86 uniquement AMD et Intel? C'est simple - ARM est une société de licence, pas de fabrication.
Même Apple a participé au développement d'ARM. Avec Acorn Computers et la technologie VLSI. Apple a rejoint l'alliance pour son prochain appareil, le Newton. Un appareil dont la fonction principale était la reconnaissance de texte.
Même vous pouvez commencer à produire vos propres processeurs en achetant une licence. Mais personne, à l'exception des sociétés bleues et rouges, ne peut produire des processeurs x86. Qu'est-ce que ça veut dire? C'est vrai, moins de concurrence, un développement plus lent. Comment est-ce arrivé?
D'ACCORD. Disons qu'ARM fait un excellent travail avec les smartphones et les tablettes, mais qu'en est-il des ordinateurs et des serveurs, où toute la compensation est historiquement divisée? Et pourquoi Apple s'y est même précipité avec son Apple Silicon.
Et maintenant?
Disons que nous avons décidé que l'architecture ARM est plus efficace et polyvalente. Maintenant quoi? x86 est enterré?
En fait, Intel et AMD ne sont pas dupes. Et maintenant, sous le capot, les processeurs CISC modernes sont très similaires au RISC. Peu à peu, les développeurs de processeurs CISC sont néanmoins arrivés à cela et ont commencé à fabriquer des processeurs hybrides, mais l'ancienne queue ne peut pas être éliminée si facilement. Mais depuis longtemps, les processeurs Intel et AMD ont décomposé les instructions d'entrée en micro-instructions plus petites (micro-opérations), qui à l'avenir - vous serez surpris - sont exécutées par le noyau RISC. Oui les gars! Ces 4-8 cœurs de votre PC sont également des cœurs RISC! J'espère que vous êtes complètement confus ici. Mais l'essentiel est que la différence entre les conceptions RISC et CISC est désormais minime.
Et ce qui reste important, c'est la microarchitecture. C'est avec quelle efficacité tout est organisé sur la pierre elle-même.
Eh bien, vous savez probablement déjà que les iPad modernes sont presque aussi bons que les MacBook Pro 15 pouces dotés de processeurs Core i7 et Core i9. Et les ordinateurs? Ampère a récemment dévoilé son processeur ARM à 80 cœurs. Selon le fabricant, lors des tests, le processeur Ampere fonctionne 4% mieux que le processeur EPYC le plus rapide d'AMD et consomme 14% d'énergie en moins.
Ampere grimpe dans les segments Cloud et Workstation et y montre de très bons chiffres. Le supercalculateur le plus rapide du monde fonctionne aujourd'hui sur ARM ISA. D'un autre côté, Intel essaie toujours d'entrer dans le segment de la basse consommation et pour cela il sort un nouveau processeur intéressant basé sur la microarchitecture de lakefield.
Jusqu'à présent, les ordinateurs portables et les processeurs d'Intel ont un avantage indiscutable - (le refroidissement et) l' unité de l'architecture. Alors que Qualcomm, Samsung, MediaTek existent sur le marché des processeurs ARM, un monopole est créé dans le monde x86 et il est beaucoup plus facile pour les développeurs de créer des logiciels et des jeux pour les processeurs «adultes».
Et Apple est la société qui peut motiver suffisamment de développeurs à réduire leur ARM. Mais l'essence de cette transition ne réside pas plutôt dans la confrontation entre le SCRC et le RISC. Au fur et à mesure que les deux approches convergent, l'attention se tourne vers la microarchitecture élaborée par Apple pour ses appareils mobiles. Et apparemment, leur microarchitecture est cool. Et ils aimeraient l'utiliser dans leurs ordinateurs.
Et si Intel a accordé une licence x86 pour de l'argent à d'autres personnes, Apple vient probablement d'adapter sa microarchitecture actuelle pour x86. Mais comme ils ne peuvent pas faire cela, ils ont décidé de simplement passer à ARM. Le problème de la microarchitecture pour nous, c'est que c'est un secret commercial. Et nous ne savons rien d'elle.
Résultat
La demande d'ARM finira par augmenter. Pour l'industrie, ce n'est pas seulement une étape importante, mais une étape très importante. Linus Torvalds a déclaré que tant que les postes de travail ne fonctionneront pas sur ARM, le marché des serveurs utilisera x86.
Et c'est arrivé - à long terme, ce sont des millions de dollars investis dans des solutions serveur. Ce qui, bien sûr, est bon pour les consommateurs. Un bel avenir nous attend et Apple a en effet fait une évolution!
Editeur de matériel: Anton Evstratenko. Nos téléspectateurs Nikita Kulikov et Grigory Chirkov ont aidé à préparer ce matériel. Merci les gars!