C’est presque nostalgique pour moi ce type de contenu. Lorsque j’étais étudiant au début des années 2000 j’étais très branché dans le domaine du matériel informatique, ou ce qu’on appelle maintenant en argot le “matos informatique”. Et je me rappelle qu’à l’époque internet n’était pas aussi prolifique qu’aujourd’hui, il y avait peu de sites internet et pas du tout de YouTube spécialiste dans ce domaine. Malgré cela, il y avait une alternative qui me manque aujourd’hui et qui était tout aussi attrayante, c’était les magazines. À l’époque en Algérie, était disponible un magazine que j’appréciais particulièrement, c’était le magazine PC expert. Un magazine mensuel qui à force de le lire va vraiment renforcez vos connaissances dans ce domaine pour devenir un féru en matos.
C’est une nouvelle époque, les médias ont changé, mais le sentiment d’engouement pour ces nouvelles technologies reste le même. La vidéo en haut de la chaîne YouTube PCBuilderChannelest une excellente vidéo d’introduction au montage PC. Pour ma part, un informaticien doit connaître plus ou moins le processus de construction de sa propre machine, même si c’est un développeur ou un administrateur de base de données et que le hardware l’intéresse peu.
Le langage assembleur est souvent considéré par les informaticiens comme un langage difficile, la première raison c’est qu’il existe plusieurs langages assembleurs très différents les uns des autres, en réalité chaque à processeur possède son propre assembleur. En plus ce sont des langages de bas niveau, très proches du langage machine binaire, ça exige du programmeur une compréhension technique du fonctionnement du processeur et de l’architecture de la machine. Mine de rien le langage assembleur est très populaire dans le domaine des systèmes embarqués, là où il faut bien optimiser son code et le rendre le plus rapide possible. La conception des pilotes des systèmes d’exploitation exige aussi souvent l’utilisation de l’assembleur en raison des spécificités intrinsèques de chaque matériel. Sans oublier de mentionner aussi l’existence des extensions et fonctionnalités uniques pour chaque processeur qui ne sont généralement exploitables qu’à travers l’assembleur, comme par exemple les extensions du processeur Intel Pentium, comme MMX, SSE, et AVX, ou celle des processeurs AMD, l’extension 3Dnow. L’utilisation de l’assembleur est aussi très favorable pour les microcontrôleurs, ces petits microprocesseurs qui sont le plus souvent inclus à l’intérieur des appareils électroniques.
Le cours sur la vidéo en haut concerne le processeur ARM, C’est un processeur très connu, d’ailleurs ils embarquent la quasi-totalité des téléphones portables actuels. La vidéo de la chaîne Youtube freeCodeCamp.org relate une bonne explication de la partie théorique complémentée par de la programmation dans la partie pratique.
Pour commencer, on va tout d’abord comprendre c’est quoi la loi de Moore ? Véritablement, ce n’est pas une loi à proprement dit, mais disons une spéculation ou une observation faite par Gordon Moore, le cofondateur de la firme d’Intel, dans laquelle il stipule que le nombre de transistors ou la densité des transistors dans une surface donnée des circuits intégrés doublerait tous les deux ans. Cette observation est souvent mise en avant pour démonter l’évolution plutôt spectaculaire de la technologie des circuits intégrés sur plus de 40 ans. Malheureusement, ces dernières années cette loi n’est pas à la rigueur comme pour les années précédentes, et sa courbe d’évolution tend à régresser. Plus encore, la vidéo de la chaîne Youtube Computerphile en bas, prouve que la limite physique est plutôt proche, puisque la trace sur silicium (silicon en Anglais) va plutôt atteindre une largeur proche de l’atome, et dans ce cas c’est plus les lois de la physique électronique classique qui vont être utilisées mais les lois de la physique quantique, ce qui va totalement changer la donne.
Il y a des connaissances qui ne sont pas apprises à l’université, mais le plus souvent acquises par la pratique et l’expérience, la première chose qui me vient à l’esprit en pensant aux nouveaux étudiants dans le domaine d’informatique, c’est leurs stupeurs et méconnaissances devant l’énorme base de termes et de jargons utilisés dans ce domaine, pas forcément tous les étudiants, il y a quelques-uns qui sont assez aguerries en informatique, mais beaucoup requirent un peu de temps d’adaptation pour ce domaine.
Parmi les connaissances importantes à recueillir pour un informaticien, et qui ne sont pas explicitement apprises dans le cursus, sont la désignation et appellation des différents connecteurs et ports utilisés dans un ordinateur. Justement, l’exploration de l’image en haut donne un aperçu sur les ports et connecteurs les plus communs utilisés dans un ordinateur (cliquez sur l’image pour zoomer).
Il faut signaler avant de commencer que le Raspberry Pi n’est une gamme de PC, mais de SBC, ou Single Board Computer, par définition le SBC est l’opposé d’un PC, un PC est spécialement conçu pour être utilisé par un humain pour faire des tâches informatiques, le SBC est une machine informatique qui ne devrait pas être utilisée par un humain, mais plutôt être embarquée dans d’autres machines et leur fournir des services en informatique, c’est généralement ce qu’on appelle Système Embarqué, c’est comme par exemple l’informatique dans les voitures modernes, dans les avions, dans les machines industrielles…etc. La vidéo en bas de l’excellente chaîne YouTube Explaining Computersspécialisée dans l’analyse des SBC, invoque toutes les spécifications techniques du Raspberry Pi 4 dans tous ses détails.
En dépit de la définition évoquée plus haut, la Raspberry Pi Fundation définit le SBC (dans leur site officiel) comme un Desktop (PC en Anglais), et surtout c’est un PC très abordable (disponible en Algérie et coûte entre 15000 et 25000 DA) et très portable avec une taille très réduite proche de la taille d’un portefeuille. Une chose importante cependant reste à savoir, c’est que de base Raspberry Pi 4 ne dispose ni de souris, ni clavier, ni de moniteur, il faut les procurer autrement, plus important encore la puissance de l’SBC, il est loin d’égaler un PC haut ou milieu de gamme, il a selon les tests et les benchmarks circulant sur internet la puissance d’un PC d’entrée de gamme. En résumé, cette carte est idéale pour les étudiants spécialement ceux d’informatique, elle possède une puissance suffisante pour faire quasiment toutes les tâches pédagogiques, offrant un prix abordable et un gabarie réduit, et surtout c’est une machine apte et destinée particulièrement pour le hack et la modification, elle très versatile et très maniable pour substituer d’autre type de machine, ou pour être elle-même intégrée dans d’autres machines électroniques.
Une bataille juridique fait rage entre les constructeurs technologiques et industriels et les associations de consommateurs à l’heure qu’il est, ça se passe principalement aux États Unis et en Europe, malgré que ce problème normalement concerne le monde entier. Le droit à la réparation est la prescription des lois visant principalement à contrer les fabricants et constructeurs exigeant de leurs clients l’utilisation exclusive de leurs services pour la réparation ou la maintenance du produit acheté, sous prétexte qu’ils se considèrent comme les mieux placés pour connaître leurs technologies. Il y a quelques années de cela, la première loi pour le droit à la réparation était prononcée en 2012 aux États Unis contre les constructeurs automobiles leurs exigeant la fourniture de documents et d’information techniques au client lui permettant la réparation soi-même ou à travers un tiers indépendant de sa propre voiture.
Si vous ne l’avez pas encore reconnu, la personne sur la vidéo en haut est Steve Wozniak. Avec Steve Jobs, les deux ont fondé la firme à la pomme Apple, dans le duo Jobs était le génie du marketing et du management, alors que Wozniak était le génie de l’électronique et de la programmation, ça revient à lui en grande partie la création des machines Apple I, Apple II, et plusieurs technologies et programmes utilisés dans les produits Apple. Dans cette vidéo Steve Wozniak prend parti contre Apple (il n’est plus dans la firme) pour leur stratégie de fermer les spécifications de leurs produits et réserver la réparation qu’à quelques partenaires exclusifs, mais le plus intéressent à mon sens dans la vidéo, est de voir que dans l’histoire d’Apple et la technologie dans les années 70-80, les constructeurs et Apple en faisait partie, publiaient les schémas électroniques de leurs machines et même le code open source de leurs programmes d’une façon tout à fait normale, une pratique qui est devenue aujourd’hui impensable.
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.
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.
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.
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.