mardi 17 janvier 2017

E310, HiFive 1 , A2Z et open source.

Pour commencer l'année j'ai choisi de publier un petit sujet qui me tient à cœur depuis des années sur l'évolution des microprocesseurs. Évidemment la situation a bien évolué depuis les années 80 ou seuls étaient disponibles pour le 'grand public' les composants 8bits que furent les célèbres Z80, 6502, 6809, 8080, 8085, CDP1811 et j'en passe, sans oublier le 68000, icône du modernisme et de la puissance naissante de la micro-informatique.

Z80... the brave!
Depuis cet 'âge d'or', l'évolution des microprocesseurs à suivi son cours technologique et surtout commercial, en amenant toujours plus de puissance (discutable sur bien des points) certes, mais aussi et surtout sa complexité croissante, propre à exclure toute concurrence. Ne pas oublier que l'Apple 1 fût construit par deux 'amateurs' (aidés par le père de Woz) dans un garage. L'idée même, de construire aujourd'hui de la même manière une machine avec un processeur actuel n'est même pas imaginable tellement la demande en ressources humaines et en techniques sont importantes.

le mythe!
De leur côté, les circuits permettant à une équipe très restreinte de développer des appareils 'embarqués' se sont développés sous la forme de micro-contrôleurs puissants, souvent en 32 bits, tout intégrés et utilisables comme un composants logique quelconque tout à fait traditionnel. Les cartes Arduino en sont un bon exemple.

Un système bien connu, maintenant...
Entre ces deux approches il ne reste pas grand chose. Comment actuellement, tenter de réaliser une machine informatique permettant à une équipe restreinte de développer et de produire du matériel et/ou des logiciels dans un but précis? La réponse (temporaire) se présente sous la forme de la Raspberry Pi, seul 'ordinateur' au 'vrai' sens du terme, permettant des développements relativement autonomes. Mais cette solution, pour aussi pratique quelle soit, présente tout de même des inconvénients. Tout n'est pas ouvert et facilement disponible. Créer des extension matérielles avec le protocole USB par exemple, n'est pas chose évidente. Développer le driver associé non plus. Alors qu'un appareil simple, comme un programmateur d'Eprom n'a pas besoin d'une communication à 12MBits...

Un écosystème ouvert, mais en fait 'relativement' fermé quand même.
Alors je voudrais présenter deux initiatives libres qui me semblent intéressantes.

- La première concerne la mise sur silicium d'un processeur de type RISC-V. De la même façon que Microchip fabrique ses PIC sur des instructions de type MIPS, SiFive propose aujourd'hui un microcontrôleurs basés sur les instructions RISC-V, le SiFive E31: https://www.sifive.com/
 

L’initiative me semble intéressante à un moment ou le nombre de fabricants de composants de ce type se restreint (surtout à l'occident). Voir les différents rapprochements de grandes entreprises ces dernières années, comme l’absorption d'Atmel par Microchip, pour peut-être les plus connus...

Comme il est intéressant de 'sponsoriser' ce type d'initiative, j'ai commandé et reçu en ce début d'année, la carte HiFive1 :

En direct des U.S.A. (pré-Trump!)

Pour l'instant je n'ai rien tenté en programmation sur cette plateforme. Je me suis contenté de la connecter au 5V et de constater le bon déroulement du programme de démonstrations qui consiste à faire varier la couleur de la LED multi-couleur à l'extrême droite de la carte, bleue au moment de la prise de photo.

Le coût d'une telle carte est faible, vendue actuellement (01/2016)  59$ sur le site de Sifive. Quelles pourraient être les raisons de s'informer (voir plus) sur ce type de produit? J'en vois plusieurs.
  • L'attrait de la nouveauté.
  • Une rapidité importante d’exécution des instructions, avec une fréquence d'environ 320MHz.
  • Une alternative aux produits 'standards' pratiquement imposés du fait de la raréfaction de la concurrence.
  • La disponibilité en open source du 'core' IP du processeur, permettant son implantation en FPGA.
A contrario, les outils de développement en sont au stade plutôt artisanal pour l'instant. Mais bon, si je compare les offres actuelles, j'ai essayé les ARM de chez ST les PIC32 et les Atmels, et bien force est de constater qu'il a fallu attendre 2010 largement passé pour avoir des outils fonctionnels de développement et de débogage temps réel. Et encore, sur des PC puissants. Que dire de Zilog avec ses Z8F qui fonctionnent depuis le début des années 90 avec un logiciel de développement propriétaire tout léger, équipé d'une interface de débogage en temps réel sur un seul fil. Le seuls problème de ces circuit Zilog est leur manque patent de mémoire RAM qui les rend non concurrentiels face à leur compétiteurs, même si le temps de développement avec ces circuits reste aujourd'hui encore bien plus faible et efficace qu'avec les autres architectures.

Une carte de développement Z8F développée à l'époque, que j'utilise toujours.
-  La deuxième initiative est elle aussi très intéressantes et émane de Guillaume (f4hdk). Elle concerne la création d'un ordinateur compatible avec... rien! En fait, l'auteur à démarré son projet comme 'simple' idée d'étude et de découverte ayant pour but l’apprentissage 'concrète' du numérique. Le résultat final est quand même une machine fonctionnelle. Pour l'instant au stade 'embryonnaire' mais avec des caractéristiques très intéressantes, dont l'évidente possibilité d'évolution. En effet, si pour l'instant le processeur créé semble assez peu performant (ceci reste relatif), le fait qu'il soit open et que des contraintes de compatibilités n'aient pas dirigé l'étude le rend propice aux développements et améliorations diverses. La machine nommée 'A2Z' par l'auteur ressemble à ceci :

Un 'classique' développement sur base FPGA.
A noter que pour ceux qui seraient intéressés par ce développement, l'ensemble des ressources sont présentes ici sur le site Hackaday.

Que dire de plus? Ce projet ne se base pas sur une technologie fermée, comme l'émulation d'un processeur ancien, pas plus que sur une technologie propriétaire. L'ouverture rend donc possible nombre d'améliorations. Le processeur ne semble pas compliqué à utiliser, ce qui laisse la possibilité à de petites équipes motivées de créer à partir d'une telle plateforme. De base, les 24 bits d'adresse peuvent gérer une quantité tout à fait correcte de RAM, et le cœur 16 bits est en mesure d'exécuter un certain nombre d'opérations à la seconde, le rendant à peu près équivalent à un 286 (d'après l'auteur). Ce qui est très honorable pour 'un truc bidouillé'!

Je n'ai pas eu l'occasion de tester cette 'étude'. Pour les quelques semaines à venir j'ai d'autres projets sur lesquels il me faut avancer, je dirais presque hélas...

Pour se faire une idée concrète, l'auteur a publié une petite vidéo :


Bien qu'à la base Guillaume ne semblait pas avoir de perspectives particulières pour son développement, qui représente quand même j'imagine un 'bon paquet d'heures' de travail, suite à la déclaration d'intérêt de plusieurs internautes (dont moi-même), il a ouvert un site dédié ici : http://f4hdk.free.fr/A2Z_computer/index_fr.html.

Pour de plus amples informations sur le sujet, vous pouvez le contacter à : f4hdk [at] free.fr

And now for something completely different

Quoi que...
La technologie pour la technologie, l'excellence pour l'excellence, etc etc... Oui, pourquoi pas.
Mais l'important c'est ce qu'on peut en faire, en vrai. Même si à la base cela paraissait une idée farfelue! :

Crédit photo : moi-même!
Le 'pire' dans l'histoire, est que cette cabine téléphonique est parfaitement fonctionnelle au 31/12/2016.


Aucun commentaire:

Enregistrer un commentaire