La vidéo de la chaîne Youtube Computerphile est un simple exemple de démonstration de comment peut construire une cellule mémoire qui peut sauvegarder 1 bit. Le circuit est construit à base de portes logiques (d’ailleurs on a déjà fait un article sur ces composants), ce sont des composants électroniques numériques pour faire le traitement sur un signal binaire à base de 0 et 1. C’est une démonstration parfaite pour avoir un aperçu sur comment la mémoire est construite à l’intérieur d’une machine.
Catégorie : Hardware
Produire gratuitement sa propre puce (sur silicium)
Si en navigant sur internet j’eus à parcourir un titre semblable à celui de cet article, je serais probablement perplexe et incertain de la véracité de l’information, mais pourtant c’est vrai, du moins avec un peu de chance, parce que cette offre est limitée dans le nombre. Pour comprendre la situation revenant quelques années en arrière, la fabrication de puce électronique est un business avec un chiffre d’affaires très élevé de plusieurs centaines de milliards de dollars, réserver pour une pogné d’entreprises aux U.S.A et en Asie, principalement la Chine et la Corée du sud, ce qui limitait énormément l’ouverture de cette technologie aux petites entreprises et aux particuliers, cette industrie est aussi très fermée et très opaque, accessible uniquement avec des chèques à plusieurs millions, ce qui a rendu son apprentissage difficile, seules quelques universités prestigieuses ont les moyens d’offrir à leurs étudiants le privilège de tester leurs créations sur silicium (silicon en Anglais), ce qui se traduit par des problèmes de monopole industriel, technologique, et sécuritaire.
Il faut savoir que la production de puces est souvent une production à grand échelle de plusieurs millions pour permettre aux sociétés de baisser le prix de l’unité, d’ailleurs jusqu’à aujourd’hui, le seul moyen aux particuliers pour pouvoir réduire le prix de production et de partager la galette de silicium (c’est le support de production) sur plusieurs projets, qui permet la réduction du prix à dix milles ou quinze mille dollars pour une centaine de puces sur une technologie ancienne de gravure, ça reste excessivement coûteux pour les étudiants et les hobbyistes, surtout dans des pays en voie de développement.
La vidéo en haut est une présentation faite sur la chaîne Hack A Day par Matt Venn, ingénieur et éducateur en électronique de profession, il fait un workshop sur Google/Skywater PDK et Google/Skywater Shuttle, un workshop ou parfois appelé atelier en français, est une présentation académique dans lequel le présentant ne fait pas qu’une présentation théorique du sujet mais aussi une démonstration pratique souvent en suivant un exemple concret. À vrai dire Matt Venn fait une démonstration de A à Z de construction d’un ASIC (puce personnalisée sur silicon), il va tout au long de la vidéo utiliser et faire la démonstration de plusieurs outils logiciels open source dans le processus de construction de puces, les plus importants sont MAGIC et OpenLane, le premier pour le dessin et la visualisation des traces microscopiques du circuit interne aux puces, et le deuxième est une pile logicielle de plusieurs applications couvrant et automatisant la majeure partie du processus de conception d’une puce.
OpenLane en soi utilise Google/Skywater PDK qui représente le Process Design Kit de 150 nanomètres open source proposé par Google, un PDK est généralement la partie la plus fermée dans le processus de construction des puces, effectivement c’est une bibliothèque de composants de base comme les portes logiques, les cellules mémoire, les registres…etc, préalablement conçus pour être fabriqués sur un process de 150 nanomètres (technologie de gravure des années 2000), puisque appartement on ne peut pas directement dessiner le circuit sur le silicon, mais il faut utiliser cette bibliothèque déjà testée et approuvée. C’est déjà un très bon move fait ici par Google, et en plus elle a lancé le programme Google/Skywater Shuttle permettant la prise en charge et la production sur silicon d’une quarantaine de projets de particuliers gratuitement si la nature des projets et publique et 100% open source, d’après Google c’est à programmer deux ou trois fois par an.
Pour un ingénieur, un chercheur, ou un simple amateur de conception hardware, c’est un rêve le plus souvent difficilement accessible de pouvoir réaliser sa propre puce, les personnes travaillant dans ce domaine généralement se contentent de la simulation ou réalisation sur FPGA (des puces reprogrammables beaucoup moins performantes que les puces sur silicon). Moi personnellement la première idée qui me vienne à l’esprit pour un projet sur puce est celui d’une puce graphique pour le rendu 2D avec des tiles et des sprites, la communauté de concepteur de consoles ou machines en 2D souvent se plaignent du manque de ces puces, car les puces actuelles sont dans la plupart des cas des puces en 3D souvent inadaptées et compliquées à programmer, ou intégrés dans des SoC le plus souvent surpuissant pour des simples machines en 2D, J’ai vraiment hâte de mettre les mains sur un projet semblable.
Le jeu d’instruction des processeurs x86
Les processeurs x86 représentent tous les processeurs des ordinateurs PC qu’on utilise normalement dans nos maisons, bureaux, travail…etc, ça inclut les processeurs des deux firmes Intel et AMD, ces processeurs sont différent des processeurs se trouvant dans nos smartphones et nos tablettes, qui eux utilisent des processeurs ARM. Les processeurs d’Intel et AMD utilisent un jeu d’instruction commun nommé x86, qui leur permet d’être compatible et permet aux logiciels de fonctionner sur des processeurs d’Intel comme sur des processeurs d’AMD malgré d’être des processeurs différents. Le jeu d’instruction (ou ISA : Instruction Set Architecture en Anglais) est par définition la liste de toutes les instructions ou commandes de bas-niveau qu’un processeur peut exécuter, de bas-niveau signifie en langage machine (en binaire) ou en assembleur, l’assembleur étant un langage symbolique au langage binaire, en d’autres termes, ça veut dire qu’au-lieu d’utiliser du pur binaire 0 et 1 pour programmer, l’assembleur utilise des symboles et des mnémoniques équivalents aux instructions en binaire. J’ai pu trouver la liste apparemment complète du jeu d’instruction x86 sans les extensions MMX, AVX, SSE, 3Dnow…etc, les extensions étant des instructions spécifiques pour un domaine donné, comme les applications multimédia, la 3D…etc. Le jeu d’instruction est sur le PDF en bas, ou directement accessible sur le lien de la source originelle.
x86-ISAZoom sur un Processeur
Il est toujours fascinant de voir à quel point l’humain a su construire si petit et si complexe les processeurs et les puces électroniques, c’est le domaine de la technologie qui représente le mieux la maîtrise de la précision et de la complexité que l’humain n’a jamais pu réaliser auparavant. Pour rappel, les traces à l’intérieur des processeurs actuels vont arriver bientôt à 2 nanomètres (nanomètre = 2-9 mètre), bientôt sur 1 nanomètre on pourra compter à peu près 10 atomes de silicium, la matière dont les puces sont construites. Et une complexité pour combiner 1 trillion de transistors (1 trillion = 1000 milliards) sur une seule puce, tous soigneusement arrangés et bien synchronisés pour un rôle bien défini, ça donne l’étourdi !
Appréciation du spectacle en image dans la vidéo en bas.
Et la vidéo suivante est une visualisation d’une simulation électrique au niveau transistor du processeur 4 bits d’Intel le 4004, il contient 2300 transistors. Historiquement c’est le premier microprocesseur à avoir été vendu en 1971.
Fonctionnement d’un clavier PS/2
La majorité des claviers d’aujourd’hui utilisent le port USB pour communiquer avec les ordinateurs, cependant il reste une partie non négligeable des PC qui utilisent encore le port PS/2 pour leurs claviers et aussi leurs souris. La quasi-totalité des cartes-mères actuelles disposent encore de ce port, il reste parmi les ports les plus anciens actuellement encore en utilisation dans le domaine de la micro-informatique, ses premières utilisations datées dans les milieux des années 80, donc le début de la micro-informatique.
La vidéo présente est celle de l’académicien Ben Eater, c’est une excellente vidéo comme c’est toujours le cas avec ses vidéos (voici les liens de ça chaîne Youtube et son site-web). La vidéo nous mène dans l’exploration du protocole utilisé par le clavier pour communiquer avec le PC, c’est très bien expliqué malgré que le protocole n’est pas simple ni intuitive que ça, les claviers des machines comme l’Apple II ou le Commodore 64, très célèbres machines avant lui étaient beaucoup plus simples, quoi qu’il en soit c’est un protocole indispensable à connaître si la nécessité se fait sentir pour l’utilisation d’un clavier dans un projet.
C’est quoi une carte mère
La carte-mère, ou Motherboard en Anglais est le principal circuit imprimé (ou PCB pour Printed Circuit Board) dans lequel tous les composants internes à l’unité centrale sont assemblés, dont le processeur, les barrettes de RAM, la carte graphique, les cartes d’extension…etc. La carte-mère représente un enjeu important lors de l’achat d’un nouveau PC, ou pour le montage soi-même de son propre PC, que je conseille d’ailleurs fortement aux étudiants en informatique, l’enjeu de la carte-mère c’est qu’elle va décider du type de processeur, du type de la mémoire, des périphériques…etc., c’est pratiquement le composant le plus critique parmi les autres choix de composants. La vidéo de la chaine YouTube éducative PowerCert donne un très bon aperçu sur les plus importantes particularités à connaitre sur les carte-mères.
Disque dur : HDD versus SSD
Mémoriser l’information est l’un des atouts principaux d’un ordinateur, il a une faculté énorme de mémoriser l’information pour des périodes très très longues, sur ce terrain il bat l’humain à plein couture, un seul disque dur peut mémoriser l’équivalent d’une montagne de livre sans oublier la moindre lettre, alors que la mémoire humaine en comparaison est très faible et moins fiable.
À l’intérieur d’un ordinateur on trouve généralement deux types de mémoires, les mémoires vives, appelées aussi mémoire centrale ou RAM, c’est une mémoire temporaire utilisée lorsque l’ordinateur est en état de marche. Les deuxièmes sont les mémoires mortes ou mémoires secondaires, ça inclut disque dur, la mémoire flash, les CD-ROM, DVD…etc. Leurs capacités sont beaucoup plus grandes que la mémoire vive, par contre elles sont utilisées pour un stockage permanent de l’information, et c’est surtout important lorsque la machine est éteinte. La vidéo en haut fait une comparaison entre les deux technologies contemporaines de disque dur qui sont le HDD et le SSD.
Construction d’une carte graphique basique
Là encore une fois Ben Eater nous fait rêver avec ces deux excellentes vidéos en explorant la conception hardware d’une carte graphique à partir de zéro. En d’autres mots From the ground et en utilisant un nombre réduit de composantes logiques simples de la série TTL 74 il arrive sur quelques breadbord à générer le signal analogique pour une image fixe de résolution 800×600 de fréquence 60 Hertz sur un connecteur VGA, qui est actuellement très répondu dans la majorité des moniteurs.
C’est vrai que sur un point de vue technique la carte est loin égale à la puissance des dernières cartes graphique, mais sur un plan académique c’est une pure merveille, elle permet avec toute simplicité de démonter les concepts de base de la création d’une carte graphique pour des amateurs et des étudiants avec un niveau de première ou deuxième année universitaire, il devient même très intéressant de la mettre en mini-projet un de ces jours sachant que tous les composants sont simples à trouver chez les vendeurs d’électronique.
Le future du hardware par John Hennessy
La vidéo suivante est une sorte d’état de l’art sur la conception hardware et l’architecture des ordinateurs, le terme état de l’art dans la recherche scientifique fait référence à un résumé sur l’historique de l’évolution d’une technologie donnée englobant le plus souvent les deux aspects; recherche et commercial, ça couvre généralement les principales avancées technologiques, en habituellement une perspective sur les principales voies d’évolution future possible pour cette technologie. Ainsi cette vidéo est plutôt orientée aux chercheurs et experts dans le domaine de la conception hardware plus qu’aux étudiants en première et deuxième année informatique, néanmoins c’est une excellente vidéo dans le sens qu’elle permet de casser la vision pompeuse des messages publicitaires des firmes technologiques comme Intel, AMD ou Nvidia, et met en évidence les réelles limitations des architectures actuelles.
La présentation est faite dans la conférence Google I/O organisée annuellement par Google, et c’est présenté par celui qui est déjà mentionné dans le titre John Hennessy, un monument dans le domaine, pour ne pas dire le monument. Dans le domaine académique, il est connu surtout pour ses livres références coécrits avec David Patterson; Computer Organization and Design et Computer Architecture: A Quantitative Approach, littéralement les deux références dans le domaine. Il est aussi connu pour être pour plusieurs années le président de l’université de Stanford. Mais au-delà de ça il est surtout connu dans la recherche pour avoir développé le modèle RISC des processeurs qui représente aujourd’hui 99% des processeurs modernes, ce modèle lui a permis de fonder la société MIPS Technologies responsable de la fabrication des fameux processeurs MIPS, ces travaux lui ont valu avec David Patterson en 2017 le prestigieux prix de Turing, l’équivalent du prix Nobel en informatique. Actuellement il est le président de Alphabet Inc. maison mère de Google.
Portes logiques
Les composants élémentaires de base lors de la conception d’un circuit électronique numérique, que ça soit un processeur, un microcontrôleur, une puce graphique, une carte son, un contrôleur réseau…etc, est sans doute les portes logiques. La conception de ce genre de matériel est un processus d’assemblage et de connexion peut être d’une centaine, millier, million, et même milliard de portes logiques par exemple les derniers processeurs modernes. Mine de rien on peut dénombrer seulement quelques types de ces portes logiques qui sont en plus très simples à comprendre leurs manières de fonctionner. La vidéo suivante de la chaîne éducative Computerphile explique le fonctionnement des trois principaux types de ces portes qui sont le AND, le OR et le NOT. Il est bon de rappeler que dans l’électronique numérique les valeurs binaires 0 et 1 sont réellement des valeurs physiques représentées par un voltage électronique, par exemple 0 volt peut représenter le 0 logique et 5 volts le 1 logique, la famille par exemple des circuits TTL utilisent ce standard.
Il est totalement légitime de se poser la question que normalement il est connu que les composants élémentaires pour la construction disons par exemple des processeurs sont les transistors et non les portes logiques, et que généralement on évalue la complexité de ces circuits par le nombre de transistors et non le nombre de portes logiques. C’est vrai dans le sens où les portes logiques sont construites à base de transistors, par exemple la porte AND peut être construite à partir de 6 transistors, mais sur un point de vue logique, le transistor en lui tout seul ne peut pas faire d’opération logique, l’opération logique en elle-même représente l’élément unitaire basique pour faire le traitement sur l’information binaire (0 et 1), sachant que par définition l’informatique c’est le traitement automatique de l’information, qui est sous représentation binaire, par une machine qui est elle électronique pour ces temps modernes.
