Google libère les ASIC avec un PDK open source en 130 nm

Posté par  (site Web personnel) . Édité par BAud, Xavier Teyssier, Ysabeau et Davy Defaud. Modéré par Davy Defaud. Licence CC By‑SA.
46
5
juil.
2020
Matériel

La libération des FPGA s’accélère à grands pas, il devient presque difficile de suivre toutes les nouvelles sur le sujet. Mais les FPGA ne doivent pas nous faire oublier leurs grands frères que sont les ASIC.
Un FPGA est un composant ayant un silicium déjà « gravé » mais où il est possible de reconfigurer les connexions entre les éléments logiques à volonté. Dans le cas d’un ASIC, on va cette fois graver directement les transistors sur un silicium vierge et les relier via des couches métaliques une fois pour toutes. Il ne faut surtout pas se planter à l’étape de conception car on ne pourra pas modifier les interconnexions une fois la production lancée.

Pour réaliser un ASIC, il faut fournir un plan des masques de chaque couche de dopage du silicium ainsi que des couches métaliques. Voici par exemple la représentation d’une bascule D :
Une bascule D

Pour ce faire, on va partir d’une description RTL (Register Transfert Level) du composant, similaire aux descriptions utilisées pour les FPGA – la plupart du temps du Verilog ou du VHDL — que nous allons « synthétiser » en une Netlist. La suite va ressembler (de loin) à du placement‐routage et de la simulation analogique‐numérique, comme on peut le voir avec la conception de carte électronique.

Le flot de conception typique du monde du matériel est donné dans une des diapositives de la présentation de Tim Ansell ci‑dessous :
Flot de développement ASIC/FPGA

La partie langage de description du matériel et simulation est déjà largement libérée. Il existe des tas de composants open source décrits en VHDL et/ou en Verilog à présent. Les outils de synthèse libres arrivent aujourd’hui à maturité avec Yosys, bien sûr, pour le Verilog (et bientôt mature pour le VHDL grâce au greffon GHDL-yosys), mais aussi Alliance pour le VHDL.

Les trois piliers logiciels (EDA pour les outils, PDK les données et RTL le design) permettant de réaliser un ASIC sont donnés dans une autre diapo de Tim ci‑dessous :
Schéma de principe développement ASIC

Une fois la description « RTL » du composant synthétisée, il nous reste beaucoup d’étapes à franchir avant d’obtenir une description des masques de gravure permettant la fabrication proprement dite. Toutes ces étapes nécessitent l’utilisation de logiciels spécifiques pour réaliser les masques, construire l’arbre d’horloge, simuler en analogique certaines parties, concevoir les alimentations… Beaucoup de logiciels libres existent pour cela, tous ne sont pas matures ou restent très universitaire dans leur version open source. Mais il est possible de les utiliser tout de même pour réaliser un composant, comme l’a démontré Tim Edwards avec le Raven (un microcontrôleur RISC‑V à base de PicoRV32).

Cependant, même s’il n’a utilisé que des logiciels libres pour réaliser le Raven, Tim n’a pas pu accéder à la description physique des composants numériques qu’il utilisait. Il a dû se contenter de « boîtes noires » représentant chaque fonction logique à assembler pour réaliser le microcontrôleur. En effet, tous ces logiciels libres demeurent quasiment inutiles si l’on n’a pas accès à la description physique de la technologie cible utilisée. Les fondeurs de silicium fournissent un PDK (process design kit) contenant des bibliothèques de composants avec la description physique de leurs technologies, ainsi que la géométrie de chaque transistor et les modèles de simulations spice permettant de valider le comportement analogique. Et pour avoir accès à ces PDK, la vente de vos deux reins ne suffira pas, même si vous signez les triples NDA (accord de non‑divulgation) avec votre sang. Ce PDK reste le gros frein à la libération du matériel, un caillou dans la chaussure du matériel libre. C’est ce que Google a bien compris en finançant le développement d’un PDK libre via la société SkyWater : le SKY130.

La publication du SKY130 vient d’être annoncée cette semaine par Tim Ansell lors d’un « dial‑up » de la FOSSi Foundation. Comme son nom l’indique, ce PDK cible la technologie 130 nm. Cette taille de gravure peut sembler obsolète quand on sait qu’AMD fabrique de plus en plus en 7 nm, et commence même à tester le 4 nm. Mais les chaînes de fabrication de silicium avec cette finesse de gravure permettent un coût de production très raisonnable pour des performances qui ne sont pas non plus ridicules. SiFive, par exemple, a sorti un microcontrôleur 32 bits RISC‑V (E310) gravé en 180 nm et tout de même cadencé à 320 MHz. Il est donc possible de réaliser beaucoup de chose avec du 130 nm.

Et pour promouvoir son PDK et fédérer une communauté de passionnés, hobbyistes, universitaires, « startupeuses », etc., Google a décidé de produire quarante projets à base de ce PDK tous les six mois et gratuitement. Le premier « shuttle » est prévu pour novembre. Pour être dans le wagon, il faut que son projet soit open source et le soumettre au site en ligne efabless.com. Visiblement, la méthode de choix des projets retenus n’est pas encore bien définie ; mais si vous êtes retenu, vous aurez une réponse par courriel.

Il est temps pour LinuxFr.org de faire passer TapTempo dans une autre sphère que le simple programme en Brainfuck et de proposer un composant électronique TapTempoASIC !

Et pourquoi ne pas proposer un FPGA en 130 nm ? Même si aujourd’hui les FPGA sont plus proches du 40 nm, un FPGA open source comme le kFPGA de killruana, ça aurait la classe.

Aller plus loin

  • # La taille ça compte (ou pas)

    Posté par  (site Web personnel) . Évalué à 6 (+4/-0).

    Bon article, juste une petite remarque

    Cette taille de gravure peut sembler obsolète quand on sait qu’Intel fabrique de plus en plus en 7 nm, et commence même à tester le 4 nm

    Les Comet Lake-S annoncé le mois dernier sont en 14 nm.
    Le 7 nm est annoncé pour 2021 (normalement)

    C'est AMD qui produit en 7 nm

    • [^] # Re: La taille ça compte (ou pas)

      Posté par  (site Web personnel) . Évalué à 5 (+3/-0).

      Mais si j'ai bien compris (en fait j'ai rien compris), les nm d'Intel et le nm d'AMD ne seraient pas comparable et en gros, les deux graveraient à la même échelle…

      • [^] # Re: La taille ça compte (ou pas)

        Posté par  . Évalué à 9 (+7/-0). Dernière modification le 05/07/20 à 20:46.

        AMD ne grave rien. AMD est un fabless : une boite qui conçoit mais ne fabrique pas. C'est devenu la norme au fur et à mesure que la gravure s'est miniaturisée (machines plus complexes donc plus chères et plus difficiles à rentabiliser).
        AMD a longtemps fait appel à GloFo (Global Foundry, anciennement la fabrique d'IBM située en Allemagne), maintenant elle fait aussi appel à TSMC (Taiwan Semiconductor Machin Chose) et c'est l'un des processus de gravure 7nm de TSMC auquel on fait implicitement référence quand on dit que AMD est passé au 7nm.

        Ensuite, les "fondeurs" n'ont pas la même appréciation de ce qu'il considère comme une finesse de gravure, c'est en fait assez marketing parce que ça n'indique pas grand chose (un processeur basse consommation ne sera pas gravé avec le même processus qu'un processeur orienté haute performance et l'architecture interne joue aussi dans les comparaisons entre puces). Dans les faits, les processus 10nm d'Intel (utilisés sur CannonLake et IceLake) correspondent grosso modo à la finesse des 7nm de TSMC.
        Martoni a bluffé en faisant une conversion.

        • [^] # Re: La taille ça compte (ou pas)

          Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

          Martoni a bluffé en faisant une conversion.

          Je n'avais plus qu'une balle ;)

          Merci pour toutes ces précisions. Après si AMD fait appel à TSMC en 7nm, dire qu'AMD «grave en 7nm» n'est pas non plus totalement du bluff (pour intel j'ai fait un raccourci un peu rapide). Sachant que si l'on réuni TSMC et GlobalFoundry on obtient à peu près la totalité de la production de semiconducteurs mondiale.

          Si j'ai bien tout suivi d'ailleurs, efabless fait fabriquer chez GlobalFoundry.

          • [^] # Re: La taille ça compte (ou pas)

            Posté par  . Évalué à 4 (+2/-0).

            dire qu'AMD «grave en 7nm» n'est pas non plus totalement du bluff

            En fait on devrait dire qu'AMD «fait graver» en 7nm, mais la plupart du temps je lis "Zen2 est gravé en 7nm", le passif retire cette nuance.

            Sachant que si l'on réuni TSMC et GlobalFoundry on obtient à peu près la totalité de la production de semiconducteurs mondiale.

            Oui ce sont les deux grosses boites. Il y a quelques petits pour des semi-conducteurs moins critiques (genre une bonne vieille diode PN ou un transistor BJT classique on s'en fiche d'avoir une densité de fou, même en CMS) ou plus exotiques (les transistors utilisés dans la recherche sur les ordinateurs quantiques) mais oui Intel est bien seul dans son cas à ne pas avoir externalisé. Puis c'est aussi le seul relativement gros fabricant à ne pas proposer de service à des boites extérieures, donc à ne pouvoir compter que sur ses propres ventes pour amortir le matériel de fabrication, ce qui explique que quand son process 10nm est moins bon il n'y a pas beaucoup d'autre choix que de se rabattre sur des améliorations du 14nm en attendant la prochaine évolution.

            • [^] # Re: La taille ça compte (ou pas)

              Posté par  . Évalué à 1 (+7/-6). Dernière modification le 06/07/20 à 05:23.

              Il y a quelques petits [NDR : producteurs de puces électroniques, en dehors des deux gros] pour des semi-conducteurs moins critiques (genre une bonne vieille diode PN ou un transistor BJT classique on s'en fiche d'avoir une densité de fou, même en CMS) […]

              Pour les lecteurs curieux et non spécialistes, je précise ici ce qu'est un transistor BJT.

              Il existe différents types de transistors, les deux classes principales étant les transistors bipolaires et à effet de champ. Les transistors bipolaires sont souvent abréviés transistors BJT (Bipolar Junction Transistor) alors que les transistors à effet de champ sont abréviés FET (Field-Effect Transistor).

              Source : la page titrée « Électronique/Les transistors bipolaires » sur wikibooks.org.

              Par ailleurs, sur le Wikipédia francophone, on trouve deux articles distincts pour les transistors :

            • [^] # Re: La taille ça compte (ou pas)

              Posté par  . Évalué à 2 (+2/-1).

              ARM et TSMC annoncent faire ensemble du 7 nm à la fin 2019.

              Mais d'après Wikipédia (en), le 7 nm a commencé en 2017 chez le taïwanais TSMC pour de la RAM et Samsung (je crois qu'ils ont aussi leur propres fonderies, comme Intel, mais l'article en lien est bloqué aux abonnés) en produit également depuis 2018. En tout cas, au moins Huawei (Kirin 980), Apple (A12 Bionic) et AMD ("Rome"(Epyc 2), avec la partie I/O en 14 nm, et Radeon RX 5000 series) font faire du 7 nm par TSMC depuis 2018 :

            • [^] # Re: La taille ça compte (ou pas)

              Posté par  . Évalué à 7 (+4/-0).

              Oui ce sont les deux grosses boites. Il y a quelques petits pour des semi-conducteurs moins critiques

              Ouh là! Attention quand même. GF a abandonné la course au dernier nœud technologique depuis un petit moment déjà:
              https://www.bloomberg.com/news/articles/2018-08-27/globalfoundries-gives-up-on-advanced-chip-production-technology

              En passant, GF, ce n'est pas que les anciennes fab d'IBM, c'est la fusion des activités fab d'AMD et d'IBM réunis par un fonds d'investissement.

              Mais là vous oubliez un peu vite Samsung, qui est toujours dans cette course:
              https://www.gizmochina.com/2020/07/30/samsung-5nm-chipset-mass-production/
              Samsung a ouvert ses fabs aux clients externes (à commencer par Apple) afin d'avoir le volume nécessaire pour rester en lice.
              C'est que là, les tout derniers steppers (les machines qui "dessinent" les circuits via un procédé photolithographique) d'ASML en EUV se facturent déjà à 100M$ pièce. Et il faut plus que juste le stepper pour fabriquer les puces.

              Soit tu es à la pointe de la techno ET tu as un volume de folie pour rentabiliser des investissements qui atteignent les milliards pour développer le prochain nœud, soit tu rejoins la cohorte des fabs qui abandonnent cette course effrénée et sans fin.

              Ils ne sont donc plus que 3 sur la piste: TSMC (Taiwan Semiconductor Manufacturing Company), Intel et Samsung. Mais Intel semble commencer à perdre du terrain.
              Bientôt plus que 2?

        • [^] # Re: La taille ça compte (ou pas)

          Posté par  . Évalué à 7 (+6/-0).

          AMD fait aussi beaucoup appel à GloFo parce qu'historiquement c'est leur ancienne fabrique avant qu'ils ne deviennent fabless et qu'en échange de la prise en charge de la dette liée ont été mis en place des contrats contraignant de volume.
          Ça a pénalisé AMD qui ne pouvait pas exploiter comme ils le souhaitaient des gravures plus fine ailleurs (GloFo était souvent en retard de ce côté là) et devait souvent payer des indemnités pour volume non atteint.
          La position d'AMD ne lui a pas permis de bonne négo à l'époque.

    • [^] # Re: La taille ça compte (ou pas)

      Posté par  (site Web personnel) . Évalué à 3 (+2/-1).

      C'est AMD qui produit en 7 nm

      Bien vu, si un des modérateurs peux amender la dépêche je veux bien ;)

      Mais l'idée reste là : le 130nm c'est quand même beaucoup plus gros que les processeurs du marché aujourd'hui.

      • [^] # Re: La taille ça compte (ou pas)

        Posté par  . Évalué à 7 (+5/-0).

        Les premiers Pentium M étaient en 130nm.
        Donc oui OK c'est obsolète, mais pas ridicule malgré tout et pas du tout limité à du microcontrôleur (il n'y a pas si longtemps, j'ai retapé / recyclé grâce à Linux des machines de cet âge là !)

        • [^] # Re: La taille ça compte (ou pas)

          Posté par  . Évalué à 3 (+3/-1).

          Tout est relatif. Il faut déjà commencer modeste, et si ça marche, faire plus performant. En dessous de certaines quantités, les 7 nm doivent être aujourd'hui hors de prix, et en grande quantité, il faut être sûr de pouvoir les vendre. Le FGPA est aussi moins performant que l'ASIC, mais c'est aussi une première étape.

          D'autre part, rares sont les fabricants de processeurs qui veulent bien vendre leurs processeurs en petite quantité pour des cartes de hackers. En ARM, on doit trouvé 3 ou 4 marques sur celles-ci (AllWinner, AMLogic, RockChip (peut-être MediaTek et Realtek, mais je n'en ai pas en tête), j'ai l'impression que le Néerlandais NXP accepte, mais pas sûr. il y avait bien Texas Instrument, il y a quelques années, mais ils sont un peu à la ramasse au niveau technologies. Il y a quelques cas particuliers, comme, Samsung, seulement chez le Coréen ODroid, et Broadcom pour les Raspberry (Eben Upton, un co-fondateur travaillant chez eux), le franco-italien STMicroelectronics (plus pour ses microcontrôleurs STM32 qui dominent largement ce marché), et après c'est plus ouvert chez différents modèles de RISC-V.

          • [^] # Re: La taille ça compte (ou pas)

            Posté par  . Évalué à 5 (+4/-0).

            Ça fait quelques temps que j'ai pas suivi l'actualité des iMx de NXP, mais on peut trouver en vente chez Mouser (du style Cortex-A53).
            Freescale était également pas mal abordable à l'époque, mais vu qu'il a été racheté par NXP…

            A l'époque, on avait effectivement des soucis à approvisionner chez certains fabricants qui refusent catégoriquement de vendre en dessous de quelques dizaines de milliers de pièces, mais on arrivait généralement à se rabattre sur un autre.
            Pour Broadcom et Samsung, ils ne visent visiblement pas les PME, à vrai dire je n'ai jamais eu l'occasion de les croiser sur un salon.

          • [^] # Re: La taille ça compte (ou pas)

            Posté par  . Évalué à 3 (+1/-0).

            Samsung, seulement chez le Coréen ODroid

            À nuancer parce que le XU4 date pas mal et Hardkernel n'a rien sorti utilisant de nouveaux SoC de Samsung, contrairement à ce qu'ils font avec Amlogic.

      • [^] # Re: La taille ça compte (ou pas)

        Posté par  . Évalué à 4 (+2/-0).

        Mais l'idée reste là : le 130nm c'est quand même beaucoup plus gros que les processeurs du marché aujourd'hui.

        Pour donner un ordre d'idée, le 130nm c'était à la pointe il y a un peu moins de vingt ans (la majorité des Athlon XP, les derniers Pentium 3, les premiers Pentium 4 et Athlon64).

        • [^] # Re: La taille ça compte (ou pas)

          Posté par  (site Web personnel) . Évalué à 4 (+2/-0).

          Ce qui n'a rien de ridicule, mon bi-pentium3 800MHZ est encore très performant ;-)

          "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

          • [^] # Re: La taille ça compte (ou pas)

            Posté par  . Évalué à 4 (+2/-0).

            Personne n'a dit que c'était ridicule et personne n'a parlé de performances.

            La différence avec ton Raspberry Pi (parce que je te vois venir avec tes gros sabots) c'est la taille de la mémoire cache, la vitesse de la RAM, des bus de données et la partie graphique.
            Sans compter que son processus de gravure est optimisé pour la consommation, pas pour la montée en fréquence comme sur un processeur de bureau.

            Si ton Rpi était gravé en 130nm il serait bien plus gros et aussi consommateur qu'un Tualatin ou un Barton.

            Donc oui le 130nm c'est un bon début, mais en pratique son utilisation sera assez limitée et peu probablement destinée à faire des SoC de ce gabarit.

    • [^] # Re: La taille ça compte (ou pas)

      Posté par  . Évalué à 6 (+5/-0).

      Petite remarque en passant :
      Plus la gravure est fine, plus la sensibilité aux perturbations extérieures et aux rayonnements ionisants est grande.
      Dans le spatial, le nucléaire ou le militaire, on préfèrera des gravures plus grossières qui sont intrinsèquement moins sensibles aux perturbations.
      Dans le cas d'une gravure trop fine, un rayonnement peut définitivement endommager une porte logique ou une connexion, alors que dans le cas d'un motif plus grossier, la détérioration sera partielle et le circuit restera fonctionnel.

      • [^] # Re: La taille ça compte (ou pas)

        Posté par  . Évalué à 0 (+1/-4).

        Dans le spatial, ils sont justes trop pauvres.

        Il existe des lib avec registres tripliqués pour evité ca.

        "La première sécurité est la liberté"

        • [^] # Re: La taille ça compte (ou pas)

          Posté par  . Évalué à 2 (+1/-2). Dernière modification le 30/07/20 à 21:56.

          Dans le spatial, ils sont surtout extrêmement conservateurs, alors ils utilisent rarement des technos qui ne sont pas éprouvées depuis 10ans (et je crois qu'en fait c'est plutôt 20).

          Si tu t'énerves quand tu te fais livrer un processeur défectueux ou qu'on doit remplacer une carte électronique sur ta voiture en panne, demande-toi si ça fait moins mal si tu t'en rends compte après avoir claqué 50M€ pour mettre le même composant sur orbite sans opportunité de le remplacer avant plusieurs semaines ou mois.

          • [^] # Re: La taille ça compte (ou pas)

            Posté par  . Évalué à 6 (+3/-0).

            Cela commence à dater mais j'ai bossé 6 ans dans un laboratoire de conception numérique pour le spatial, on y faisait des asic et des FPGA.

            A l'époque, on restait sur le .35µm, parce que en .18 le jeu de masque coutaient 1M€ contre 300k€ en 0.35.

            Plus la taille baissait plus la techno est sensible, donc plus l’industrie "grand publique" doit en tenir compte. D'ailleurs, cela fait un moment que les CPU utilisent des codes correcteurs d'erreurs pour leurs caches.

            Et de toute façon, la techno "spatialisé" utilisait simplement une triplication des registres, c'était bien plus simple car il n'existait (n'existe ?) pas d'outils de synthèse qui prend en compte une correction d'erreur.

            Ensuite, ce qui posait problème, c'était plus les latchup (destruction de transistor) et la "dose" minimum qui bloquait les transitions des transistors. Et ce n'était pas lié à la finesse mais à la techno utilisé. C'est pour ça qu'il y avait des campagnes de tests pour trouver des DRAM commercial utilisable.

            "La première sécurité est la liberté"

      • [^] # Re: La taille ça compte (ou pas)

        Posté par  . Évalué à 7 (+6/-0).

        Je ne crois pas, pour des satellites basse orbite au moins nous avons envoyé du 28nm (en SOI, vendu pour son épaisseur de silicium active bien inférieure aux longueurs d'ondes des rayonnements présents à des puissances non négligeables)

  • # Plus aucune raison de ne pas pouvoir faire un processeur 100% Open-Hardware?

    Posté par  . Évalué à 6 (+5/-0). Dernière modification le 05/07/20 à 22:28.

    Tu dis qu'en gros le PDK était la dernière grosse étape avant d'avoir tous les outils pour fabriquer un processeur ASIC 100% Open-Source. Mais tu dis en même temps que tous les outils ne sont pas 100% opérationnels (je ne parle pas de bug mais de fonctionnalité plus ou moins vital). En fait si j'ai bien compris, on ne pourrait pas fabriquer n'importe quel processeur 100% Open-hardware mais un certain type bien limité (Le Raven). Peux tu préciser quels sont les principales limitations qui existent encore à faire tomber pour faire un plus processeur plus complet?

    PS : Je suis un informaticien dont les connaissance hardware sont limités. Je connais mieux le fonctionnement d'un OS que d'un processeur.

    • [^] # Re: Plus aucune raison de ne pas pouvoir faire un processeur 100% Open-Hardware?

      Posté par  . Évalué à -1 (+4/-5).

      Mais tu dis en même temps que tous les outils ne sont pas 100% opérationnels (je ne parle pas de bug mais de fonctionnalité plus ou moins vital).

      Les outils peuvent ne pas tous être 100% opérationnels, tout en étant 100% opérationnels pour certains d'entre eux. C'est le cas, bien que pour ceux qui le sont, leur usage n'est pas nécessairement très ergonomique et certaines procédures pourraient idéalement gagner en automatisme. C'est ce que martoni déclare par l'expression « tous ne sont pas matures ou restent très universitaire dans leur version open source ».

    • [^] # Re: Plus aucune raison de ne pas pouvoir faire un processeur 100% Open-Hardware?

      Posté par  . Évalué à 10 (+10/-0).

      C'est un peu compliqué à expliquer mais je vais essayer. La conception d'un ASIC requiert l'emploi de plusieurs outils dont les principaux sont :
      - Un simulateur pour s'assurer que le code Verilog ou VHDL représente le comportement attendu du circuit
      - un outil de synthèse qui convertit le code Verilog ou VHDL en une représentation à base d'élément logique de bases (dont une grande partie vient du PDK)
      - Un outil de "placement" - pour décider de la position physique de chaque élément sur la puce final
      - Un outil de routage, pour calculer comment réaliser les interconnections entre les différents élements en utilisant les ressources disponibles du process de fabrication (typiquement un certain nombe de couche de metaux)
      - un outils de construction d'"arbre d'horloge", pour s'assure de la bonne propagation des signaus d'horloge
      - un outil d'"extraction" - pour extraire (après placement et routage) les caractéristiques électriques des interconnections entre les éléments
      - Un outil d'analyse de temps de propagation, qui utilise les résultat de l'outil d'extraction pour analyser les caractéristiques temporelles du circuit (fréquence maximum, etc..)

      Des outils open-source pour chacune de ces taches étaient disponible depuis pas mal de temps mais c'est seulement depuis l'apparition de Yosys et de la suite d'outils OpenRoad que l'on commence à avoir une famille d'outils qui tient la route et surtout qui s'interfacent entre eux relativement bien en utilisant les formats de fichiers standard de l'industrie (.lib/.lef/.spef/.def etc). Auparavant, c'était un peu le bazar

      Néanmoins, les outils comme Yosys et la suite OpenRoad sont loin de supporter toutes les possibilités des outils commerciaux (par exemple la possibilité d'avoir des tensions différentes dans différentes portions du circuit). Il y a aussi des manquent concernant le "design for Test", c'est à dire le support de méthode qui permettent de vérifier que chaque puce en sortie de production fonctionne (c'est essentiel pour une production commerciale). Et à ma connaissance, on manque d'un simulateur de netlist supportant la rétro-annotation des informations temporelles pour vérifier la fonctionnalité du circuit après placement/routage

      Mais je pense que l'on assiste à un tournant et si OpenRoad arrive à fédérer les développements des différents équipes de recherches travaillant dans le domaine partout dans le monde, on aura un outil vraiment viable d'ici quelque temps.

      • [^] # Re: Plus aucune raison de ne pas pouvoir faire un processeur 100% Open-Hardware?

        Posté par  . Évalué à 4 (+3/-0).

        En tous cas merci, c'est absolument passionnant. J'ai l'impression de me retrouver 15-20 ans en arrière lors que je suivais les évolution de Linux sans bien connaître trop le fonctionnement précis.

        A la fois j'apprends comment ça fonctionne, ce qui est intéressant d'un point de vue culture personnelle.
        Et à la fois je suis l'évolution d'un secteur qui se libéralise (s'open-sourcise devrais-je dire) avec tous les défis à relever.

        • [^] # Re: Plus aucune raison de ne pas pouvoir faire un processeur 100% Open-Hardware?

          Posté par  . Évalué à 2 (+5/-3).

          Si le sujet te passionne et si tu veux comprendre dans quelle perspective s'inscrit la conception, tu peux étudier les concepts de fabrication. J'avais posté ici (fin 2018), des liens utiles pour consulter une conférence d'introduction aux technologies de fabrication de puces électroniques, intitulée The making of a chip, donnée fin 2017 dans le cadre de la 34e édition du Chaos Communication Congress. Elle traite notamment de photolithographie, d'implantation ionique, de déposition en phase vapeur des connexions (dépôt chimique en phase vapeur, y compris assisté par plasma). L'intervenant est un passionné de très haut niveau, docteur en physique, visiblement pas la moitié d'un hacker…

  • # Liste des étapes de conception d'une puce numérique

    Posté par  . Évalué à 3 (+6/-3).

    Pour aider à développer une bonne compréhension, je propose ici une liste des étapes de conception qui reprend le découpage fonctionnel proposé par martoni dans sa dépêche, étapes désormais toutes couvertes pas des logiciels libres, en allant ici bien plus dans le détail pour ce qui est des simulations et vérifications (les étapes de simulation et de vérification que je mentionne ne sont probablement pas toutes couvertes par des logiciels libres…).

    Pour les détails ajoutés, je me suis particulièrement appuyé sur une dépêche relativement récente de Killruana que je cite plus bas (et dont je corrige un lien erroné). En particulier, je me suis permis de ventiler différentes méthodes de vérification (qu'il présente) entre l'étape qui suit le routage et celle qui suit l'obtention d'une description des masques de gravure de la puce. J'invite des spécialistes à me corriger si besoin.

    Liste des étapes de conception d'une puce numérique :

    Note : la description RTL — Register Transfer Level — définit le comportement du composant en termes d'envois de signaux ou de transferts de données entre registres, et d'opérations logiques effectuées sur ces signaux.

    • possibilité de simulation sur la description RTL ;

    • possibilité de vérification formelle sur la description RTL ;

    Note : la vérification formelle peut couvrir typiquement la conformité par rapport à des spécifications, ou encore la résistance à des classes d'attaques sur le matériel qui soient répertoriées, documentées, faisant elles-mêmes l'objet de spécifications formelles. Cette note s'applique à toutes les étapes ultérieures où il est possible d'opérer une vérification formelle.

    • synthèse logique (détermination des portes logiques utilisées et production d'une liste d'interconnexions) ;

    Note : la synthèse logique consiste, à partir de la description RTL, à produire une netlist, c’est-à-dire une liste d'interconnexions — dit autrement, c'est une liste d'équipotentielles — définissant les connexions entre des portes logiques dans le cas d'une puce numérique.

    Pour bien spécifier le propos : une liste d'interconnexions (ou d'équipotentielles) est une liste de nombreux groupes de points ayant un même potentiel électrique au sein de chaque groupe, un point étant une connexion électrique d'un composant, un composant étant ici une porte logique pour une puce numérique. L'expression potentiel électrique est synonyme de tension électrique ou encore voltage.

    • possibilité de simulation sur la netlist ;

    • possibilité de vérification formelle sur la netlist ;

    Note : si la synthèse logique est une procédure logicielle totalement automatisée et si le logiciel correspondant est vérifié formellement, alors la vérification formelle de la netlist est une redondance inutile par rapport à la vérification formelle de la description RTL.

    • placement (des portes logiques mentionnées dans la netlist), routage (connexion, via des pistes conductrices, des portes logiques entre elles et aux entrées‐sorties du circuit, ainsi qu’aux rails d’alimentation), et vérifications après routage (STA (lien vers la page Static Timing Analysis du Wikipédia anglophone), simulation après routage, possibilité de vérification formelle après routage) ;

    Note : parmi ces étapes, on retrouve la nécessaire construction de l’arbre d’horloge permettant la STA (Static Timing Analysis) qui correspond à l’analyse des délais du circuit, permettant de vérifier si le circuit atteint les contraintes de délais demandées (notamment les fréquences de fonctionnement visées).

    J'ai regroupé ces étapes en une seule pour simplifier. On trouve une bonne description de ces étapes dans la dépêche (considérer le sommaire) de Killruana, titrée « Conception d’un circuit intégré avec Qflow », publiée le 14 novembre 2019. Je relève que le lien vers la page de l'article Wikipédia pour le STA n'est pas valide dans ladite dépêche (j'ai mis le bon lien ci-avant). Notez aussi qu'on trouve dans ladite dépêche les descriptions simplifiées des vérifications après obtention des masques de gravure (cf. les acronymes que je mentionne plus bas).

    • obtention d'une description des masques de gravure de la puce ;

    Note : je cite ici un extrait significatif de la dépêche de Killruana référencée ci-avant :

    Le GDS II (Graphic Database System 2) est le format de fichier utilisé dans le milieu de la microélectronique pour transférer des dessins de circuits, et désigne par métonymie le plan final du circuit à communiquer au fondeur pour qu’il puisse graver la puce.

    • vérification après obtention des masques de gravure : LVS (lien vers la page Layout Versus Schematic du Wikipédia anglophone), DRC (lien vers la page Design Rules Checking du Wikipédia anglophone), simulation analogique, autres tests comme l'ATPG (lien vers la page Automatic Test Pattern Generation du Wikipédia anglophone)).
    • [^] # Re: Liste des étapes de conception d'une puce numérique

      Posté par  (site Web personnel) . Évalué à 7 (+6/-0).

      Bonjour,
      je pense que ton titre est vraiment pertinent car dans la dépêche on parle quasi exclusivement de dev asic numérique; or, ce n'est qu'une facette du développement d'asic. Il y a aussi le monde analogique où on va concevoir des amplificateurs, des PLLs, des ADC, des références de tension, des bandgap par exemple et où la très peu de choses sont automatiques. Quasiment tout se fait à la main, transistor par transistor, pas de code hdl. On crée des structures pour lesquelles on va pouvoir donner des dimensions différentes à chacun de nos transistors… Tout se fait "à la main", ll faut faire attention à tout… Un design peut fonctionner au niveau du schéma et pas du tout une fois fondu car le placement des composants les uns par rapports aux autres est important, les interconnexions et les parasites que ca ajoute change le comportement du circuit… et c'est sans compter sur les variations de 2 à 20% au moment de la fabrication.

      Bref je vais pas tout expliquer ici mais il n'y a pas que le numérique :)

      Les logiciels de traitement de texte sont à la rédaction ce que la 2CV est à l'automobile, une vieille voiture dont on se souvient avec nostalgie mais technologiquement dépassée

      • [^] # Re: Liste des étapes de conception d'une puce numérique

        Posté par  . Évalué à 1 (+1/-1).

        Un DK complet permet de concevoir de l'analogique et du numérique. en fait je me demande ce que va faire google, car google n'est pas un fondeur. Du coup faire un DK sur une techno qu'on ne possède pas, soit c'est la techno d'un fondeur et le fondeur en question risque de ne pas être d'accord et si le fondeur est d'accord, alors il peut lui directement distribuer son DK à qui il veut. soit ça correspond à aucune techno et il ne sera pas possible de faire fabriquer l'ASIC.

  • # Mise en perspective : risque systémique de cyber-attaque massive et résistance au plan du matériel

    Posté par  . Évalué à 3 (+11/-8). Dernière modification le 06/07/20 à 19:23.

    D'un côté, nous avons désormais une chaine logicielle libre pour la conception de puce numérique qui est complète, jusqu'à la génération des masques de gravure.

    [ Situation du projet LibreSilicon (fabrication avec des outils logiciels libres) ]

    Du côté de la fabrication, le projet LibreSilicon (lien vers le site web officiel) progresse lentement. Pour rappel, ce projet vise à permettre de fabriquer des puces avec des moyens techniques et des objectifs de miniaturisation et de performance plus modestes que les gros industriels, avec une logistique minimaliste et par là transportable, et surtout avec des outils logiciels de pilotage de la fabrication qui soient libres. Selon le whitepaper officiel Process steps (low tech) — je cite la fin du résumé en première page — « This process is for manufacturing 1 µm only! But further releases which will have been tested with smaller structure sizes can be expected. » (traduction : « ce processus est conçu pour fabriquer avec une finesse de gravure de 1 µm seulement ! Mais des versions ultérieures peuvent être attendues qui auront été testées avec des tailles de structure plus petites »).

    A titre d'exemples, Intel gravait son microprocesseur 4004 à 10 µm en 1971 ; son 80386, produit d'octobre 1985 à septembre 2007, était initialement gravé de 1,5 µm à 1 µm ; son 80486 comportant 1 200 000 transistors était gravé à 800 nm en 1989 (fréquence d'horloge initiale de 16 MHz (puis c'est monté ensuite jusqu'à 100 MHz), largeur de bus de données de 32 bits, performance de 20 MIPS (millions d'instructions par seconde)). Cf. ce commentaire pour des détails plus poussés sur l'historique d'évolution de la finesse de gravure, avec une analyse détaillée d'un graphique de Wikipédia).

    Je relève que la dernière conférence en date donnée dans le cadre du projet LibreSilicon reste celle produite au 35c3 (35e édition du Chaos Communication Congress) fin 2018, selon la page d'accueil du site officiel. Cf. ce commentaire pour des liens détaillés.

    [ Alain Bauer (proche des réseaux oligarchiques) anticipe une cyber-attaque massive ]

    Dans une Tribune libre titrée « Le prochain virus sera cyber » qu'Alain Bauer — cet ancien grand maître du Grand Orient de France de 2000 à 2003 — a signée le 24 avril 2020, il écrivait (la mise en gras est de moi) :

    Outre les innombrables attaques informatiques contre des particuliers, des entreprises ou des institutions, pour vendre de faux produits […], qui relèvent de l’escroquerie traditionnelle et nécessitent une participation active de la victime trop confiante ou trop insouciante, on assiste à une diffusion exponentielle – virale donc – des rançongiciels et prise de contrôle des équipements informatiques et des stocks de données.
    […]
    La guerre d’internet continue pendant la crise épidémique. Non seulement sur la 5G, sur le traçage des individus, sur la neutralité du net, sur le contrôle des données, mais aussi sur la gouvernance de l’outil. Certains fonctionnent déjà en mode dégradé et pourraient se passer du réseau mondial. D’autres n’ont pas encore pris la mesure de leur dépendance. La prochaine épreuve de souveraineté dépassera en ampleur celle des masques, des respirateurs ou des réactifs.
    […]
    Nous allons entrer dans la crise cyber, ce monde dont notre niveau de dépendance croit exponentiellement et qui ne s’y est guère préparé. En tout cas pas plus que pour la crise sanitaire et pandémique. On en voit les effets.

    [ Risque systémique de cyber-attaque généralisée sur injonction oligarchique ]

    Ainsi donc, Alain Bauer anticipe une cyber-attaque massive. J'estime personnellement qu'une telle perspective est un risque systémique non négligeable, particulièrement par manque de diversité des grosses entreprises industrielles dit fondeurs de puces en silicium, associé au risque d'un contrôle oligarchique concerté de ces gros acteurs industriels, et au risque largement documenté d'inclusion furtive de portes dérobées matérielles au sein des puces lors de la fabrication, induisant le risque d'une cyber-attaque massive coordonnée et simultanée exploitant ces portes dérobées.

    Je ne traite pas ici de risque d'exploitation systémique (sur injonction oligarchique) de failles dans le logiciel, notamment au niveau du système d'exploitation. Notons qu'il y a une diversité croissante de systèmes d'exploitations induisant une possibilité théorique accrue de se soustraire à ce type de risque, moyennant un effort intellectuel, d'installation, d'adaptation.

    Le manque de diversité des fondeurs de puces s'explique ainsi : beaucoup d'entreprises concevant des puces, y compris AMD de nos jours, les font fabriquer par une usine hors de leur contrôle (on caractérise ces entreprises par le jargon anglophone fabless, c'est à dire sans usine) : c'est devenu la norme au fur et à mesure que la gravure s'est miniaturisée, du fait de machines plus complexes donc plus chères et plus difficiles à rentabiliser.

    Actuellement et depuis un bon moment, les processeurs sont principalement fabriqués par trois gros industriels à l'échelle de la planète : TSMC (Taiwan Semiconductor Manufacturing Company), GlobalFoundries et Intel — Intel n'ayant pas externalisé sa production, contrairement à AMD.

    Dans cette hypothèse conspirationniste assumée, c'est essentiellement un nombre marginal de machines numériques qui pourraient résister à une telle attaque, à savoir celles issues de conceptions et fondeurs industriels (ou artisanaux…) de puces hors d'un contrôle oligarchique concerté avec les gros acteurs.

    La furtivité que j'ai mentionnée, à propos de portes dérobées matérielles au sein des puces, peut être telle que la détection de ladite porte dérobée nécessite la connaissance à priori de son mode d'activation (l'activation pouvant par exemple s'obtenir par la simple visite d'une page web malveillante) ou bien la rétro-ingénierie par un processus destructif de chaque échantillon de puce (combiné à une analyse laborieuse et savante du schéma de conception capté couche par couche, des couches de conducteurs métalliques jusqu'à la couche de silicium)…

    [ Raisonnement technique relativement détaillé ]

    Je précise ceci pour ceux qui pourraient naïvement penser qu'un fabriquant de carte mère exploitant des puces fabriquées par un industriel tiers pourrait effectuer une batterie de tests automatisant la certification d'absence de toute porte dérobée (c'est à dire pourrait révéler toutes les portes dérobées furtives et leur mode d'activation) : pour un même modèle de puce, il est envisageable qu'il y ait des lots distincts en terme de schémas de gravure, un lot pouvant être aussi petit que voulu moyennant un coût accru (la réduction de la taille d'un lot est une question de coût de production, notamment parce que la réalisation des masques de gravure a un coût), les puces d'un même lot pouvant comporter une porte dérobée furtive spécifique audit lot, un type déterminé de porte dérobée pouvant s'activer sur une trame spécifique de valeurs binaires se succédant sur le bus de données ou d'adresses de la puce, la longueur de ladite trame spécifique pouvant s'accroître sans autre limite que la capacité de mémorisation interne à la puce pour la reconnaître, ce qui fait un nombre gigantesque de combinatoires possibles à tester dans un éventuel test de conformité du comportement de la puce, nombre facilement plus grand que le nombre d'atomes dans l'univers (ordre de grandeur estimé à 1080 selon l'article Ordres de grandeur de nombres).

    Lorsqu'on développe le calcul combinatoire, on s'aperçoit qu'il est aisément accessible que soient nécessaires 10 à la puissance 100 années de calcul sur une puce pour espérer capter l'activation d'une porte dérobée, et il est aisé de comprendre que, les échantillons de puces d'un même modèle officiel pouvant être tous distincts et leur similarité par lot ne pouvant être connue de l'extérieur à priori, il n'est pas possible de paralléliser massivement les tests sur de nombreux échantillons pour espérer gagner du temps.

    [ Principes de résistance à une cyber-attaque systémique au plan du matériel ]

    Considérant une entreprise concevant une puce et confiant sa fabrication à un industriel tiers, la seule façon pour elle de se garantir l'absence de porte dérobée matérielle au sein d'un échantillon est de superviser intégralement la fabrication sur le site de l'industriel (ce qui peut théoriquement s'envisager par contrat avec un industriel acceptant le principe, mais cela suppose un surcoût financier, un allongement de la durée de production, avec une complexité technique et logistique importante). A défaut, il est possible d'obtenir une estimation probabiliste de la conformité par l'analyse destructive d'un nombre limité d'échantillons en sortie d'usine, en comparant les schémas obtenus par cette rétro-ingénierie avec les schémas de conception, et en faisant une projection statistique.

    Dans l'avenir, sur base de schémas de conception de puces ouverts (et même sous licence libre), idéalement accompagnés de preuves formelles (notamment des preuves formelles de conformité relativement aux spécifications et des preuves formelles de résistance de la conception relativement à des classes d'attaques matérielles répertoriées, documentées, et elles-même spécifiées formellement), on peut légitimement anticiper qu'il sera possible d'accroitre drastiquement la confiance dans la conformité ainsi que la diversité grâce à la disponibilité, à terme, de robots de fabrication d'ordinateurs miniaturisés, à des échelles régionales voire micro-locales.

    Pour tendre à résister à un cyber-risque systémique du type exploitation concertée et simultanée de portes dérobées matérielles dans de nombreux ordinateurs communs, déclenchée sur injonction oligarchique, on pourra ainsi s'intéresser au travail des hackers qui, depuis quelques années, développent le projet LibreSilicon (« Silicium Libre » en français) — cf. le site web https://libresilicon.com — qui vise à permettre de fabriquer des puces avec des moyens techniques et des objectifs de miniaturisation et de performance plus modestes que les gros industriels, avec une logistique minimaliste et par là transportable, et surtout avec des outils logiciels de pilotage de la fabrication qui soient libres.

    • [^] # Correctif au texte de la mise en perspective

      Posté par  . Évalué à -3 (+4/-3). Dernière modification le 01/08/20 à 01:11.

      Ce message constitue un petit correctif s'appliquant au message parent à propos de la liste des principaux fabricants de processeurs, désormais constituée du trio TSMC, Samsung et Intel (Samsung ayant détrôné Global Foundries).

      Note : les principaux fabricants le sont au titre du volume de production et du positionnement en tête de la course à l'accroissement de la finesse de gravure (les deux étant liés par le poids des investissements pour accroître la finesse de gravure, induisant une nécessaire rentabilité par un volume de production important).

      Je m'appuie sur le commentaire sourcé de maclag, publié plus haut ce 30 juillet, à partir duquel j'extrais les informations suivantes :

      • Global Foundries (résultat de la fusion, sous l'égide d'un fond d'investissement, des activités de fabrication de processeurs d'AMD et d'IBM) a abandonné la course au dernier nœud technologique, cf. cet article de Bloomberg.com du 27 août 2018.

      • Samsung est toujours dans cette course, avec le démarrage de la production en masse de puce gravées à 5 nm et le développement de la technologie de gravure à 4 nm, et produit désormais y compris pour des sociétés tierces, dont Apple, pour couvrir le montant des investissements, cf. cet article de Gizmochina.com du 30 juillet 2020.

      • Intel semble commencer à perdre du terrain.

      La correction s'applique au paragraphe situé 3 paragraphes avant la fin de la section titrée « [ Risque systémique de cyber-attaque généralisée sur injonction oligarchique ] ».

      Voici la version originelle dudit paragraphe :

      Actuellement et depuis un bon moment, les processeurs sont principalement fabriqués par trois gros industriels à l'échelle de la planète : TSMC (Taiwan Semiconductor Manufacturing Company), GlobalFoundries et Intel — Intel n'ayant pas externalisé sa production, contrairement à AMD.

      Voici la version corrigée :

      Actuellement, les processeurs sont principalement fabriqués par trois gros industriels à l'échelle de la planète : TSMC (Taiwan Semiconductor Manufacturing Company), Samsung Electronics et Intel — Intel n'ayant pas externalisé sa production, contrairement à AMD.

    • [^] # Explication technique complémentaire (mode d'exploitation de certaines portes dérobées matérielles)

      Posté par  . Évalué à -5 (+3/-4).

      Je propose ici une explication technique complémentaire relative au mode d'exploitation de certaines portes dérobées matérielles que j'évoque au commentaire parent.

      Au paragraphe qui précède la section titrée « [ Raisonnement technique relativement détaillé ] », j'expose que l'activation de portes dérobées matérielles peut, par exemple, s'obtenir par la simple visite d'une page web malveillante. Ensuite, au premier paragraphe de ladite section, j'écris qu'un type déterminé de porte dérobée peut s'activer sur une trame spécifique de valeurs binaires se succédant sur le bus de données ou d'adresses de la puce.

      La combinaison des deux assertions peut poser question. En effet, la visite d'une page web ne peut pas induire le stockage des informations reçues à des adresses déterminées en mémoire vive qui puissent être connue a priori par le concepteur de ladite page web, car c'est le système d'exploitation qui pilote l'allocation de la mémoire. Y compris pour un système d'exploitation donné s'exécutant sur une même machine, les plages d'adresses disponibles peuvent varier d'une session à l'autre, selon l'état de remplissage de la mémoire.

      Ainsi, une éventuelle trame spécifique de valeurs binaires se succédant sur le bus d'adresses et ayant vocation à activer une porte dérobée matérielle ne peut pas être générée de façon pré-déterminée par les informations présentes dans une page web. Par contre, on conçoit qu'un logiciel ayant la maitrise de la machine puisse générer une telle trame. Par exemple, un système d'exploitation adapté pourrait le faire.

      Ceci étant, une éventuelle trame spécifique de valeurs binaires se succédant sur le bus de données et ayant vocation à activer une porte dérobée matérielle peut être générée de façon pré-déterminée par les informations présentes dans une page web (dans une certaine mesure). Certaines données reçues via le port réseau sont stockées en mémoire (après un éventuel traitement) et se succèdent typiquement sur le bus de données vers la mémoire avec le même ordonnancement qu'à la réception sur le port réseau.

      Ainsi, pour résumer, d'une part il y a des exemples d'exploitation de portes dérobées matérielles via la visite d'une simple page web, que ce soit l'exemple théorique que j'ai présenté succinctement ici, ou encore des exemples pratiques documentés ces dernières années (avec d'autres modes d'activation). D'autre part, il est concevable qu'un type déterminé de porte dérobée puisse s'activer sur une trame spécifique de valeurs binaires se succédant sur le bus de données de la puce (y compris via la visite d'une page web) ou d'adresses (via l'émission d'une succession déterminée d'adresses par un logiciel ayant ce pouvoir).

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.