Pourquoi le ' t le WDC 65816 nest-il pas disponible en “ en externe ” versions 16 bits?

En fait, à moins que des notes de conception réelles de WDC ne soient disponibles, la question est vraiment trop longue pour le champ de titre: « Quels sont précisément les inconvénients davoir une version du WDC 65816 avec un bus de données 16 bits et / ou un bus dadresses non multiplexé par rapport aux avantages que cela donnerait? « 

Toutes les versions (non logicielles¹) du WDC 65816 dont je suis conscient davoir une interface externe avec un bus de données de 8 bits et les 8 premiers bits du bus dadresse multiplexés sur les broches du bus de données. Ainsi, deux cycles sont nécessaires pour les accès aux données de 16 bits (par exemple, LDA avec le jeu de bits m) et une logique externe est nécessaire pour verrouiller les 8 premiers bits des lignes dadresse, ce qui peut également introduire des contraintes de synchronisation supplémentaires .

Cela permet à la puce de sinsérer dans un package à 40 broches, ce qui semble être une option raisonnable à mettre à disposition, mais cela nempêche pas davoir une version dans un package plus grand. Quatre ans plus tôt, le Motorola 68000 était disponible pour la première fois dans un boîtier DIP 64 broches avec une adresse 24 bits séparée et des bus de données 16 bits, de sorte que la technologie permettant de le faire à un coût raisonnable était disponible depuis longtemps. Et depuis lors, bien sûr, de nombreux autres emballages à grand nombre de broches sont devenus courants, mais même maintenant, WDC ne propose rien de plus gros que des packages à 44 broches (PLCC et QFP).

Un package à 40 broches non plus empêcher davoir un bus de données externe complet de 16 bits, comme le faisait lIntel 8086, avec son bus de données externe de 16 bits multiplexé sur le bus dadresse externe de 20 bits. Cela ne signifie même pas que des versions de bus de données 8 et 16 bits séparées doivent être fabriquées: en 1990, Motorola a remplacé le MC68008 (un 68000 avec un bus de données externe 8 bits) par le MC68HC001, qui permettait de sélectionner un bus de données externe largeur lors de la réinitialisation.

Alors, pourquoi le manque, même à ce jour, dinterfaces externes « 16 bits complètes », comme proposé par dautres fournisseurs de processeurs 16 bits? Quels sont les inconvénients des différentes formes dinterfaces externes 16 bits complètes qui me manquent?


¹I.e., Des puces que vous pouvez acheter dans le commerce, par opposition aux cœurs FPGA ou ASIC que vous pouvez intégrez-vous dans nimporte quel package que vous aimez.

Commentaires

Réponse

Le 65816 a physiquement une ALU 8 bits, bien que la plupart des registres internes aient maintenant une largeur de 16 bits. Il faut donc un cycle supplémentaire pour effectuer chaque opération ALU en mode 16 bits, et cela donne utilement le temps nécessaire pour obtenir les données supplémentaires sur le bus de données (qui reste très simple à interfacer).

Là ne fait pas partie du noyau où un bus de données 16 bits est disponible pour être exposé, même dans les versions semi-personnalisées du noyau 65816 que WDC propose toujours aux développeurs de systèmes embarqués.

Ce serait bien sûr être possible de concevoir un nouveau cœur avec une ALU plus large et un bus de données externe, et donc avec des performances plus élevées sur les opérations 16 bits. Il serait même possible dintroduire le pipelining et la mise en cache pour améliorer encore les performances. Mais le résultat ne serait que 65816 compatible ISA; ce ne serait pas un 65816. Il serait également plus gros, plus gourmand en énergie, plus cher (notamment en raison du package plus complexe requis pour exposer le bus plus large) et beaucoup moins convivial pour les amateurs.

Commentaires

  • Daprès sa fiche technique ( datasheets.chipdb.org/Western%20Design/w65c816s .pdf ), le W65C816 dispose dune ALU 16 bits complète.
  • @StarCat Point intéressant. En regardant les horaires des instructions, je me demande pourquoi ils seraient dérangés, cependant: il semble quils pourraient en effet se débrouiller très bien avec une ALU 8 bits. (Même des instructions comme INX sont encore deux cycles.) Peut-être indiquent-elles que la vision du programmeur ‘ est comme un 16- bit ALU (cest-à-dire quil y a des instructions dajout de 16 bits, etc.), tout comme un programmeur trouve le Z80 ‘ s 4 -bit ALU indiscernable de lALU 8 bits du 8085 ‘?
  • Le 65816 a une ALU 16 bits. Ceci est plus visible lors de la comparaison des branches, qui fonctionnent de la même manière en mode natif et émulation (décalage 8 bits), mais nobtiennent aucune pénalité pour le passage de page en mode natif, alors que cela se produit toujours en émulation (et sur le 65C02). Il est également visible avec toutes les opérations directes sur les pages, gérant également le passage de page sans pénalité.DP en mode émulation montre en outre quici lALU obtient simplement ‘ ramené ‘ à 8 bits, comme DH ne le fait pas ‘ t doit être mis à zéro, btu est ignoré.
  • @StarCat Le guillemet complet est:  » ALU 16 bits complète, Accumulateur, pointeur de pile et registres dindex  » – qui peuvent simplement être écrits maladroitement, mais semblent impliquer que seuls les registres ont une largeur de 16 bits. Cependant, les caractéristiques de performance dune ALU 16 bits ne sont pas facilement observables dans cette CPU, car la plupart des opérandes (y compris les adresses mémoire) doivent être chargés à partir de la mémoire 8 bits à la fois. Même si toute la largeur de lALU est utilisée pour les calculs du mode dadressage, je note que si le DPR nest pas aligné sur la page, les accès en mode direct entraînent une pénalité dun cycle qui est cohérente avec une ALU 8 bits.
  • @Raffzahn Avec les index 16 bits, un ajout complet de 16 bits doit être effectué entre ladresse de base et le décalage dindex. Il semble que cela ne puisse pas être démarré tant que ladresse de base na pas été complètement chargée, probablement en raison dun manque de registres internes. Le fait quil faut ensuite deux cycles pour un ajout 16 + 16, mais un seul cycle pour un ajout 16 + 8, montre quil existe un additionneur de 8 bits avec propagation doctets supérieurs utilisé à cette fin.

Réponse

Le 65816 est conçu comme un chemin de mise à niveau vers les 6502 clients existants. Le garder 8 bits était une décision judicieuse du point de vue de lutilisateur car il offre

  • Mise à niveau facile des conceptions existantes
  • Entièrement compatible avec les logiciels existants
  • Standard Le paquet à 40 broches nécessite moins de trous traversants et offre une manipulation moins chère
  • Un seul loquet est nécessaire pour utiliser la plage dadresses étendue
  • Seuls des composants externes 8 bits standard sont nécessaires

En particulier, les derniers sont importants pour la considération des coûts. Pour la fabrication, chaque trou compte, car il diminue le temps de forage et donc le coût. En 1983, les composants 16 bits (RAM / ROM) étaient plutôt rares et coûteux. Avec une conception 8 bits, un certain nombre de puces ROM et RAM standard (EP) ont été définies juste par la taille nécessaire, tandis quun bus de données 16 bits en nécessite toujours au moins deux de chaque. Après tout, quelle conception après létat du prototype nest pas sensible au coût. La série 65xx a toujours été ciblée sur les applications à faible coût / embarquées. En fait, son marché cible ressemblait beaucoup à Intel envisagé pour le 8086 comme étant une voie de mise à niveau pour 8080 / 85 utilisateurs.

Contrairement à Intel, qui a conçu un processeur 16 bits et rendu compatible 8 bits (* 1), le WDC est resté 8 bits, ce qui était logique pour la conception du processeur car il simplifiait le développement en raison

  • La structure interne de base pourrait être conservée à partir de 65C02
  • Aucun changement dans la génération dadresse de base
  • pas besoin dajouter un protocole de bus 8/16 bits pour accéder aux octets dun mot
  • pas besoin de gestion de file dattente dinstructions

Dans cette voie, lensemble du projet a été maintenu suffisamment petit pour être géré par des ressources quune petite entreprise comme WDC pourrait fournir – sans mettre son futur en péril.

En plus dêtre relativement facile à créer, le bus 16 bits ne gagne pas autant quon peut le supposer au début. Après tout, les performances dépendent en grande partie de la bande passante mémoire, nest-ce pas? Le 8088 vs 8086 est une excellente référence ici, car les deux utilisent exactement le même EU (Execution Unit; * 1) tout en ne différant que par la largeur de bus du BIU ( Bus Interface Unit) utilisé pour accéder à la mémoire. Alors quen théorie, le 8086 devrait offrir environ deux fois les performances en doublant la bande passante à la même fréquence dhorloge, le gain de performance dans le monde réel est denviron 30 à 40%. Ceci est encore plus remarquable que le BIU la conception fonctionne assez bien en utilisant le bus à près de 100% (* 2)

Donc, bien que doubler la largeur du bus fournisse toujours moins du double de la vitesse, il suffit de doubler la fréquence dhorloge dune conception. sans aucune incertitude. En 1983, la mémoire avait atteint un point où une conception de style 4 MHz 6500 était facile à réaliser, quadruplant sans gigue.

Conclusion: rester 8 bits offrait de nombreux avantages en termes de conception et pour les utilisateurs, tout en évitant les efforts et les coûts inutiles.

Dernier point mais non le moindre, comme effet secondaire, le 65802 pourrait être créé en plus, offrant une solution de remplacement pour utiliser des fonctionnalités 16 bits dans les conceptions 65C02 existantes.


* 1 – Pour la plupart des pays, lUE peut être considérée comme le « vrai » cœur du processeur du 8086

* 2 – Une grande partie de cela est due à un accès à un octet, mais aussi par des mots de mémoire non alignés et des cibles de saut, qui ralentiront un bus 16 bits à 8 bits. Et si les nouveaux logiciels pourraient en tenir compte, les logiciels existants ne le seront pas. Un exemple du pire des cas ici peut être Applesoft BASIC, où presque tous les pointeurs de la page zéro ont des adresses impaires. Pour 8 bits, personne ne sen souciait, avec 16 bits, cest mortel.

Réponse

Lavantage du bus de données externe 8 bits et du multiplexage des 8 premiers bits du bus dadresse dans le la première version du 65816 semble claire. Il y avait en fait deux versions de la puce: le W65C816S tel que décrit dans la question et le W65C802. Daprès Wikipedia ,

[Le] 65C802 … était identique à lintérieur de le 65C816. Les deux ont été produits sur les mêmes lignes de fabrication et nont divergé que lors des dernières étapes de métallisation lorsque la puce était connectée aux broches externes. Dans le 65C802, ces broches avaient la même disposition que la 6502 dorigine, ce qui lui permettait dêtre utilisée comme remplacement instantané tout en permettant lutilisation du traitement 16 bits du processeur. Cependant, comme il utilisait le brochage dorigine, il ne disposait que de 16 broches dadressage et ne pouvait donc accéder quà 64 ko de mémoire externe. En règle générale, lorsque les fabricants de matériel ont conçu un projet à partir de zéro, ils ont utilisé le 65C816 plutôt que le 65C802, ce qui a entraîné le retrait de ce dernier de la production.

Mais cela nexplique pas pourquoi toutes les versions du 65816 ont continué à utiliser linterface externe 8 bits même après larrêt du 65802.

Réponse

Je suppose que la réponse est simple: il ny a plus besoin dune telle version de 65C816 de nos jours. Le Western Design Center (WDC), le fabricant du 65C816, se concentre sur les IP et les objets IoT. Je suppose que la production du « nouveau 65C816 » est une sorte de nostalgie pour eux. La révision des puces et des packages na pas de business case clair, à mon humble avis.

Une autre question est « pourquoi il ny avait pas de version de bus de données 16 bits dans les années 80? » Lexplication raisonnable est: cétait une séquence dévénements externes. Le marché a probablement évolué plus vite que prévu par le WDC. Dans la première moitié des années 80, lorsque le 65C816 a été introduit, le bus de données 8 bits a été installé b etter aux systèmes déjà conçus pour la puce 6502 et le marché ne demande pas de bus de données 16 bits. Plus tard, lorsque les périphériques 16 bits sont devenus disponibles, le fabricant 65C816 na pas proposé le processeur «nouvelle génération» à temps, de sorte que les plus gros clients, comme Apple (// GS) ou Nintendo (SNES), sont passés au meilleur, plus rapide, etc. processeurs (Motorola, NEC MIPS, …) lorsquils ont conçu une nouvelle génération de leur matériel. Cette décision a rendu le « bus de données 16 bits 65C816 » obsolète avant sa propre création.

Commentaires

  • Il me semble quApple na jamais  » est passé à des processeurs meilleurs et plus rapides « ; lIIG était la fin de la ligne pour lApple II et il a continué à utiliser le ‘ 816 jusquen 1992. (Apple a utilisé le 68000 dans le Mac, mais cette décision a été prise en fin 1980, bien avant que le ‘ 816 ne commence le développement.) Et Nintendo na ‘ commencé le développement du SNES quen 1988 au plus tôt, cinq ans après la sortie du ‘ 816.
  • Certes, Mac vs II sont des développements différents. Aussi, malgré le succès des Apple IIgs, avec seulement 1,25 M dunités, Apple était loin dêtre leur plus gros client. Les nombres SNES sont denviron 50 M, sans compter les clones. Et il existe de nombreuses autres applications intégrées dans cette région. En général, les ordinateurs de bureau ont été peut-être lutilisation la plus visible de 6502 pour nous, mais ils sont au total parmi les moins importants. Même lajout de tous les Commodore, Apple, BBC et ainsi de suite ne finira par utiliser que moins de 1% de tous les cœurs 65xxx jamais construits.

Réponse

Le W65C265S , un microcontrôleur basé sur 65816, présente lintégralité du bus dadresse 24b, avec un bus de données 8b séparé.

Et, pour être clair, le « 265S » nest « pas » un 65816. Il est très, très proche. Mais nonobstant les périphériques embarqués et la logique de décodage, il a quelques vecteurs dinterruption différents qui pourraient rendre le «code 265S incompatible avec un stock de boîte 65816. À toutes fins pratiques, ils« sont identiques dun point de vue logiciel, mais il y a quelques différences mineures.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *