Unités centrales pour un projet d'école d'informatique rétro

9

Je suis étudiant dans une école d'informatique et nous essayons de penser à un projet que nous pourrions utiliser pour montrer aux étudiants de 1ère année comment les choses fonctionnent derrière la scène et nous avons finalement pensé à faire un ordinateur rétro.

J'ai lu beaucoup de choses concernant le processeur Z80, mais je suppose que nous avons besoin de quelque chose de plus puissant, nous nous interrogeons toujours sur l'architecture bien que ARM puisse être un bon choix étant donné que nous trouverions beaucoup de documentation, nous avons a également établi certains besoins particuliers:

  • Un bus d'adresse externe si nous avons besoin de plus de RAM
  • > 50Mhz
  • 16 ou 32 bits
  • Pas de package BGA / QFN
  • Pas de carte FPGA
  • Une interface série (?)
  • Pas trop cher non plus car nous avons un budget limité

Le P8X32A-D40 ressemble à un bon processeur mais n'a pas la quantité de RAM dont nous aurions besoin (32k), je pensais plutôt à quelque chose comme> 1 Mo. Peut-être que le eZ80 mérite d'être considéré. Nous aimerions des réponses de personnes expérimentées comme vous.

Je vous remercie.

Edit: Même si j'ai accepté une réponse car elle répond à nos besoins, la question reste ouverte à d'autres suggestions car nous devrons discuter des choix avec l'équipe d'étudiants désireux de participer au projet.

Anthony Teisseire
la source
4
Vous discutez d'abord de la fabrication d'un ordinateur rétro, puis vous mettez en place des spécifications (50 MHz,> 1 Mo de RAM) pour les microprocesseurs beaucoup plus récents. Le Z80 avait une fréquence d'horloge maximale de 2 MHz et pouvait prendre en charge 64 Ko de mémoire. La puce Propeller (P8X32A-D40) est l'une de mes préférées en raison de son architecture unique mais ce n'est certainement pas du rétro-informatique. Le Z80 n'est pas un mauvais choix car il y a une bonne quantité d'informations sur la mise en place d'un système construit à la maison, par exemple, voyez ceci .
tcrosley
Je sais que ces spécifications rendraient les ordinateurs anciens jaloux, mais je pense qu'une sorte de rétro ++ serait idéal (les autres étudiants considéreraient tout ce qui est en dessous de 1 GHz comme "rétro" de toute façon ...)
Anthony Teisseire
4
Dans une classe de microcontrôleurs que j'ai prise, nous avons utilisé le Motorola 6800 ... il est suffisamment complexe avec tous les différents modes d'adressage pour que les Atmels et PIC 8 bits ressemblent à un jouet .. Mais ce n'est pas si complexe que vous pouvez construire un modèle mental de la chose sans perdre la tête. Cela dépend simplement de la façon dont vous voulez vous mettre sous le capot.
Daniel
J'allais construire quelque chose comme ça. Jetez un oeil au WDC 65C816 - c'est le dérivé CMOS 16 bits du vénérable 6502, et est livré dans un boîtier DIP40.
Peter
7
Je suis totalement en désaccord avec la raison de la fermeture de cette question. Le PO recherche une architecture informatique appropriée à utiliser pour les élèves, compte tenu d'un ensemble de critères. J'ai d'abord répondu par une recommandation sur une architecture appropriée, probablement une qu'il ne connaissait pas, et oui, j'ai ensuite recommandé une puce spécifique car elle était disponible dans un package DIP adapté aux étudiants. Mais je pense que ma réponse assez complète énumérant les raisons de mes recommandations serait utile à l'avenir pour quiconque essaie de prendre la même décision. Recommander que ce soit rouvert.
tcrosley

Réponses:

6

Bien que les versions actuellement disponibles ne disposent pas d'un véritable bus d'adresse externe (il arrive), vous pourriez envisager le Microchip PIC32 . Son architecture est basée sur MIPS , datant de 1988, et est l'un des deux principaux ensembles d'instructions RISC (l'autre étant ARM). À cet égard, cela peut donc être considéré comme rétro. (Un petit anecdote: la Playstation de Sony utilisait un processeur MIPS.)

L'une des fonctionnalités intéressantes du PIC32 (et inhabituelle pour un microcontrôleur 32 bits) est que vous pouvez obtenir plusieurs variétés dans un package DIP, mais la mémoire maximale disponible sera limitée par rapport aux versions à montage en surface. L'un des PIC avec la plus grande mémoire dans un boîtier DIP à 28 broches est le PIC32MX250F128 avec 128 Ko de mémoire Flash (programme) et 32 ​​Ko de RAM. Il est disponible auprès de Digi-Key aux États-Unis et de Farnell au Royaume-Uni .

Bien que la RAM puisse sembler limitée, notez que les PIC sont une architecture Harvard , ce qui signifie que les espaces d'adressage du programme et des données sont séparés et que les programmes sont exécutés en flash, vous n'avez donc pas besoin de beaucoup de RAM. (Pour les puristes, les PIC32 sont en fait une architecture Harvard modifiée, car il est possible d'exécuter des programmes à partir de RAM.) L'autre alternative est Von Neumannarchitecture (utilisée, par exemple, sur les PC), où il y a un espace d'adressage pour tout et les programmes manquent généralement de RAM, à une exception près, ils ont généralement besoin d'avoir au moins une mémoire flash ou ROM (appelée BIOS dans un PC) dans l'espace d'adressage du processeur pour exécuter une routine de démarrage pour charger le système d'exploitation d'un périphérique de stockage de masse ou d'un réseau dans la RAM. Le Z80 (et la plupart des microprocesseurs de son époque) utilisait également une architecture Von Neumann. Il fallait donc intégrer à la fois le programme et les données dans 64 Ko. Certains micros avec une architecture Von Neumann ont également mappé leurs périphériques dans le même espace d'adressage 64K; d'autres utilisaient un adressage de port séparé.

Concernant le bus externe, les PIC32 actuels (mais uniquement dans les boîtiers de montage en surface, en raison du nombre de broches) ont un "Parallel Master Port" (PMP) de 8 ou 16 bits qui, couplé à DMA, peut transférer des données dans les deux sens automatiquement entre la RAM du PIC et la RAM externe ou un périphérique. Cependant, cela ne permet pas d'accéder directement à la mémoire externe (dans l'espace d'adressage du processeur) ou d'y exécuter du code. La toute dernière famille PIC32MZ , répertoriée mais pas encore en stock chez Digi-Key, aura un véritable bus d'adresse externe, jusqu'à 2 Mo de Flash, 1/2 Mo de RAM et fonctionnera à 200 MHz.

Le PIC32MX250F128 fonctionne à 50 MHz, il y en a d'autres qui fonctionnent à 80 MHz. Il possède deux ports série UART; vous aurez besoin d'un convertisseur de niveau pour traduire cela en signaux RS232.

Parce qu'il est conditionné sous forme de DIP et peut fonctionner sans oscillateur externe, pour commencer, tout ce dont vous avez besoin est une alimentation 3,3 V, des bouchons de découplage de 0,1 µF et une planche à pain. Vous pouvez obtenir un compilateur C et un IDE gratuits auprès de Microchip.

Une fois le processeur opérationnel, vous pouvez ajouter des périphériques comme un écran LCD, des boutons (même un clavier), etc.

Vous pouvez obtenir d'autres PIC32MX avec jusqu'à 512 Ko de Flash et 128 Ko de RAM, mais uniquement dans des packages de montage en surface comme TQFP et VQFN qui vous obligeraient à configurer un PCB (vous auriez également le même problème avec n'importe quel processeur ARM).

tcrosley
la source
Merci beaucoup, c'est très instructif et un tel PIC répondrait en fait à nos besoins. Nous adapterons notre conception au cas où nous ressentirions le besoin de passer au package VQFN ou à la famille PIC32MZ.
Anthony Teisseire
Je ne dirais pas que c'est une exigence des processeurs qui utilisent une architecture von Neumann pour exécuter leurs programmes à partir de la RAM. Il est certainement possible d'avoir flash et RAM dans la même carte mémoire, vous permettant ainsi d'exécuter du code à partir de l'un ou l'autre. Les CPU von Neumann ont simplement un bus et un espace d'adressage pour les instructions et les données.
Jason R
@JasonR Je ne voulais pas impliquer que les programmes dans une architecture Von Neumann devaient manquer de RAM, en fait, ils doivent avoir au moins un peu de Flash ou de ROM (appelé BIOS dans un PC) pour exécuter une routine de démarrage pour charger le système d'exploitation d'un périphérique de stockage de masse ou d'un réseau dans la RAM. (Bien sûr, les premiers ordinateurs, y compris les premiers PC comme l' Altair 8800 , n'avaient même pas de ROM de démarrage et vous deviez basculer un chargeur de démarrage à la main à l'aide des commutateurs du panneau avant). J'ai mis à jour ma réponse.
tcrosley
3

Bien que je sois largement d'accord avec @tcrosley, je me sens obligé de souligner que si vous voulez vraiment montrer aux autres comment les choses fonctionnent "derrière la scène", vous devriez obtenir une carte FPGA (achetez-en une, n'essayez pas de la fabriquer) ) et apprenez à construire des CPU à partir de zéro en utilisant la logique. Jetez un oeil à cela pour un bon point de départ.

markt
la source
1

Avez-vous pensé à la série MC68000?

Il s'agit d'un processeur 16/32 bits, à l'exception du 68008, la ligne de données est de 16 bits, certains d'entre eux peuvent fonctionner facilement à 50 MHz et l'espace d'adressage est de 16 Mo.

  • Un bus d'adresse externe si nous avons besoin de plus de RAM - oui et seulement
  • > 50 MHz - peut être
  • 16 ou 32 bits - les deux
  • Pas de package BGA / QFN - oui
  • Pas de carte FPGA - non
  • Une interface série (?) Non, vous devez faire la vôtre mais très simple
  • Pas trop cher non plus car nous avons un budget limité - oui

Voici la documentation complète: https://www.nxp.com/docs/en/reference-manual/MC68000UM.pdf

Jeremy Talus
la source