Fairchild F8 - Fairchild F8

Fairchild F8
KL Fairchild F3850.jpg
F3850, le processeur du système Fairchild F8.
informations générales
Lancé 1975
Fabricant(s) commun(s)
Performance
Max. Fréquence d'horloge du processeur 1,00 MHz à 2,00 MHz
Architecture et classement
Jeu d'instructions 8 bits
Spécifications physiques
Paquets)

Le Fairchild F8 est un système de microprocesseur 8 bits de Fairchild Semiconductor , annoncé en 1974 et expédié en 1975. La famille de processeurs d'origine comprenait quatre principaux circuits intégrés (CI) à 40 broches ; le CPU 3850 qui était l' unité logique arithmétique , le 3851 Program Storage Unit (PSU) qui contenait 1 Ko de ROM de programme et gérait le décodage des instructions, et le 3852 Dynamic Memory Interface (DMI) ou 3853 Static Memory Interface (SMI) pour contrôler des RAM ou ROM contenant les programmes ou les données utilisateur. Le 3854 DMA était un système optionnel qui ajoutait un accès direct à la mémoire dans la RAM contrôlée par le 3852.

Un système minimal contenant un 3850 et un 3851 comprenait également quatre ports de données 8 bits, 64 octets de RAM et un programme utilisateur sur ROM. Cela a permis de créer des applications de microcontrôleur en utilisant seulement deux puces. Cela signifiait également que toute application qui ne répondait pas aux exigences simples nécessitait généralement au moins trois circuits intégrés à 40 broches, le processeur, le bloc d'alimentation et le 3852 ou le 3853 ainsi que des puces de mémoire supplémentaires. En raison de ces compromis, la série F8 a été largement utilisée sur le marché des microcontrôleurs, mais a été moins utilisée en tant que processeur dans les ordinateurs à usage général. Il est relativement obscur aujourd'hui, car ses utilisations intégrées révélaient rarement le F8 à l'intérieur.

En 1977, Mostek a publié une implémentation monopuce grandement améliorée, la Mostek 3870 . Il fusionne les 3850 et 3851 et réduit le nombre de tensions d'alimentation. Plus important encore, Mostek a réorganisé la chaîne de montage de sorte que le code utilisateur dans la ROM a été ajouté à la dernière étape, réduisant considérablement le coût de personnalisation de la conception pour l'utilisation du contrôleur. Le 3870 a remplacé les versions originales de Fairchild et a été produit par plusieurs sociétés aux États-Unis et en Europe. En Europe, STMicroelectronics a continué à produire des variantes de la conception jusqu'au milieu des années 1990.

Histoire

Développement

L'histoire de F8 commence avec un projet de développement de microprocesseurs chez Olympia-Werke , une filiale d' AEG . Mieux connu en tant que fabricant de machines à écrire , Olympia avait également une longue histoire dans les calculatrices mécaniques , qui étaient rapidement converties au format électronique. Ils développaient un système de processeur connu sous le nom de CP3-F, dont General Instrument (GI) avait obtenu une licence. Dans le cadre de l'accord de licence, GI a envoyé David Chung, chef de la division processeur de GI, à Olympia pour assurer la liaison avec leur équipe de conception. Peu de temps après son retour aux États-Unis, Chung a quitté GI et a déménagé à Fairchild où il est devenu le concepteur principal du F8 et est nommé comme le principal inventeur du brevet.

Fairchild a annoncé le F8 en septembre 1974, ce qui a conduit presque immédiatement à une action en justice de GI pour détournement de secrets commerciaux . Alors que l'affaire traînait en longueur, en février 1976, Fairchild annonça un accord de licence croisée avec Olympia pour le F8, ce qui signifie qu'ils avaient désormais un accès légal à la conception originale du CP3F et que le procès de GI était annulé, au moins dans les détails techniques. Très peu d'informations sur le CP3F sont disponibles, mais il est largement admis par les observateurs de l'industrie que le CP3F est la base de la conception du F8. Le procès a traîné dans les années 1980, mais sans aucun problème technique à noter, il n'a eu aucun effet sur les ventes du F8.

Production

Les premiers échantillons techniques du F8 ont été envoyés en avril 1975, les expéditions en volume commençant cet automne. À l'époque, l'industrie électronique exigeait des accords de seconde source comme assurance que la conception ne disparaîtrait pas si l'entreprise de conception faisait faillite ou perdait simplement tout intérêt pour la conception. Fairchild a annoncé un tel accord avec Mostek en juin 1975. L'accord a permis aux deux sociétés de poursuivre le développement indépendant de la conception.

Le F8 a été introduit au prix de 130 $ (équivalent à 625 $ en 2020), ce qui le rend moins cher que les conceptions contemporaines comme l' Intel 8080 ou le Motorola 6800 qui étaient au moins le double de ce prix. De plus, le système minimal comprenait quatre ports d' entrée/sortie 8 bits , une petite quantité de RAM et 1 Ko de ROM. Ensemble, ils ont permis de créer des applications simples avec seulement deux circuits intégrés. En revanche, des conceptions comme le 8080 prenaient en charge ce type de fonctionnalité en utilisant des circuits intégrés dédiés distincts, souvent des dizaines, de sorte qu'un système F8 pourrait être mis en œuvre pour un coût total bien inférieur. Cela a été compensé dans une certaine mesure par le fait que la ROM du programme dans le bloc d'alimentation était masquée sur les puces au début du processus de production, ce qui nécessitait des lignes de production distinctes pour chaque client. En conséquence, les frais d'installation étaient de l'ordre de 10 000 $ à 15 000 $.

Bien que le F8 ait été commercialisé en tant que microprocesseur à usage général, il représente historiquement le premier microcontrôleur 8 bits spécialement conçu , une conception qui implémente un système informatique complet sur un petit nombre de circuits intégrés. Sa sortie a eu une profonde influence sur le marché et a conduit à l'introduction de microcontrôleurs dédiés de la plupart des autres fournisseurs, parmi lesquels Intel MCS-48 , Motorola MC6801 et MOS 6510 , qui combinaient tous divers systèmes auparavant laissés au concepteur de la carte de circuit imprimé. implémenter. Ces exemples, cependant, ont poussé le processus un peu plus loin et ont mis en œuvre un système complet sur un seul circuit intégré.

Grâce aux effets incessants de la loi de Moore , il ne fallut pas longtemps avant que les 3850 et 3851 puissent également être implémentés dans un seul circuit intégré, qui a été publié sous le nom de 3859. La ligne a également été mise à jour avec l'ajout du 3856, un 3851 avec 2 Ko de ROM et le 3857, un 3856 avec des lignes d'adresse supplémentaires pour accéder à la ROM externe en plus des 2 Ko internes, éliminant ainsi le besoin d'un 3853 séparé dans de nombreux rôles.

3870

À peu près au même moment où le 3859 est sorti, Mostek a présenté sa propre version d'un F8 à puce unique, le Mostek 3870. Alors que le 3859 n'était essentiellement qu'un 3850/3851 à puce unique, le 3870 était une avancée significative; il fonctionnait jusqu'à 4 MHz, le double de celui du 3859, et ne nécessitait qu'une seule alimentation +5V au lieu de +5 et +12. Un changement beaucoup plus important était que le code ROM personnalisé était désormais masqué sur le circuit intégré comme toute dernière étape du processus, de sorte que tous les processeurs étaient identiques jusqu'à la fin de la chaîne de production. En conséquence, les frais de masque étaient de l'ordre de 1000 $, ce qui le rendait beaucoup moins coûteux à mettre en œuvre. Le 3870 était une telle avance sur l'original que Fairchild a arrêté la production du 3859 et a autorisé le 3870 pour ses propres ventes.

Le 3870 a été modifié avec de nombreuses sous-versions au fil du temps. L'un des plus importants d'entre eux était l'ajout d'un support au-dessus de la puce qui permettait de brancher une EPROM sans qu'aucun autre circuit de support ne soit requis. Cela a éliminé le besoin de la ROM embarquée et a permis aux clients de produire leur propre ROM et d'éliminer complètement les frais de masquage. Les variations comprenaient également des exemples avec plus de ROM ou de RAM ou d'autres changements plus mineurs.

Pendant ce temps, l'accord de licence croisée avec Olympia a conduit à la production en Allemagne par Telefunken , une autre des nombreuses marques d'AEG. Mostek a fusionné avec United Technologies en 1979, qui a conduit l'entreprise dans le sol et l'a vendue à son tour à Thomson Semiconducteurs en 1985. Thomson a fusionné avec SGS en 1987 pour former le STMicroelectronics moderne , qui a continué à produire le 3870 dans les années 1990. Fairchild a également continué à produire des versions du 3870 dans les années 1980, lorsqu'elles ont été achetées par National Semiconductor .

Bien que peu connu aujourd'hui, "en 1977, le F8 était le premier microprocesseur au monde en termes de ventes de CPU". La conception reste quelque peu obscure car la plupart de ces utilisations étaient des microcontrôleurs intégrés où la puce à l'intérieur de l'appareil est rarement identifiée, par opposition à des produits comme les ordinateurs personnels où le processeur à l'intérieur est mieux connu. Parmi ses quelques utilisations les plus connues figuraient le Fairchild Channel F en 1976 et dans le système informatique VideoBrain en 1977. Les deux ont été éliminés du marché par l'introduction de l' Atari 2600 en 1977.

Fairchild a également produit un certain nombre de planches d'ingénierie et de loisirs en utilisant le F8. Le kit 1 était une carte de circuit unique avec le processeur 3850, le bloc d'alimentation 3851 et le SMI 3853. Le bloc d'alimentation contenait un programme connu sous le nom de « Fairbug » auquel il était possible d'accéder à l'aide d'un terminal connecté au processeur via son port d'E/S 8 bits.

Le F8 a été abandonné au milieu des années 1980, avec le dernier achat par Innovative Data Technology, San Diego, CA pour une utilisation dans leur lecteur de bande phare 1/2" 9 pistes, la série TD1050 utilisée pour l'échange de données de facturation par les télécommunications les opérateurs.

La description

Famille de puces

Un système informatique typique nécessite généralement une CPU, une certaine forme d'entrée/sortie pour communiquer avec le monde extérieur et une mémoire contenant le code du programme et les données utilisateur. En règle générale, les E/S seraient gérées par des puces dédiées et la mémoire serait accessible via un bus d'adresses sélectionnant des emplacements dans la mémoire externe, puis renvoyant ces données à la CPU via un bus de données . Selon la conception, les E/S communiqueraient avec le processeur via un bus dédié, ou alternativement en plaçant des données en mémoire et en les faisant lire par le CPU. Le déplacement de données entre toutes ces différentes unités nécessitait des circuits supplémentaires de "colle".

Le F8 a été conçu pour diviser ces tâches afin de permettre des implémentations minimalistes. En théorie, on pourrait placer toutes ces fonctions sur une seule puce, mais à l'ère des puces à 40 broches, il n'y avait tout simplement pas assez de broches pour connecter toutes ces fonctions. En particulier, la mise en œuvre d'un bus de données 8 bits, d'un bus d'adresses 16 bits et d'un autre bus E/S 8 bits ne laisserait que 8 broches supplémentaires pour toutes les autres fonctions, de l'alimentation et de la masse aux divers signaux d'horloge et lignes de contrôle. D'autres conceptions multiplexaient parfois les lignes d'adresse et de données afin que les mêmes broches puissent être utilisées pour plusieurs fonctions, au prix de nécessiter plus de cycles pour terminer une opération.

Le F8 a résolu ce problème en internalisant certaines des fonctions, comme l'ajout d'une petite quantité de RAM au cœur du processeur, tout en déplaçant d'autres hors du processeur. Le meilleur exemple en est le système minimal composé du processeur 3850 et du bloc d'alimentation 3851. Dans ce cas, aucun bus d'adresse n'est nécessaire, la RAM est contenue dans le 3850 et la ROM de programme dans le 3851. C'est le PSU qui est chargé de suivre le compteur de programme , de récupérer les instructions de l'interne. ROM et les envoyer au 3850 pour traitement sur un bus d'instructions dédié à 5 broches avec toutes les données associées sur le bus de données séparé à 8 bits. Cela a libéré 11 broches qui seraient autrement utilisées pour des lignes d'adresses supplémentaires, ce qui, avec d'autres simplifications et répartition des tâches, a permis au CPU d'avoir deux bus d'E/S complets. Le 3851 a ajouté deux autres ports d'E/S, de sorte qu'un système minimal avait quatre ports au total.

Avec seulement 1 Ko de ROM et 64 octets de RAM, seuls de petits programmes peuvent être gérés, mais pour de nombreux systèmes, comme les caisses enregistreuses , les pompes à essence et des rôles similaires, c'est plus que suffisant. Lorsqu'un système a des exigences plus importantes, le 3852 ou le 3853 peut être utilisé. Ceux-ci s'interfacent avec le bloc d'alimentation et contiennent une logique supplémentaire pour gérer leur mémoire associée ; par exemple, le 3852 avait un bus d'adresse complet capable d'accéder à 64 Ko de RAM et les circuits nécessaires pour rafraîchir les données. Le PSU est toujours requis dans ces systèmes, et le compteur de programme et d'autres pointeurs sont maintenus séparément dans toutes ces puces en lisant les mêmes lignes de contrôle. La principale différence entre le 3852 et le 3853 était que le premier incluait le circuit de rafraîchissement dynamique de la RAM et un lien à 3 broches vers le contrôleur DMA 3854, tandis que le 3853 les supprimait et ajoutait un nouveau gestionnaire d'interruption et une nouvelle minuterie.

Le contrôleur 3854 DMA était directement relié au contrôleur 3852 RAM et n'utilisait pas le bus de contrôle à 5 broches des autres membres de la famille. Il maintenait son propre registre d'adresses et un compte d'octets séparé, qui indiquaient ensemble le bloc de mémoire à lire ou à écrire.

Architecture d'ensemble d'instructions

En interne, le CPU contenait un accumulateur 8 bits , un registre d'état du processeur 5 bits , un "Indirect Scratchpad Address Register" ou ISAR à 6 bits, et 64 octets de RAM "Scratchpad". Les douze premiers emplacements dans la RAM sont directement accessibles et utilisés comme accumulateurs secondaires, étiquetés A à J. Le reste du bloc-notes est accessible via l'ISAR, une forme d' adressage indirect .

Les 3851/3852/3853 contiennent le compteur de programme , PC0, ainsi qu'un compteur de programme secondaire, PC1. PC1 était appelé pointeur de pile mais n'était pas réellement utilisé pour cela, il n'était utilisé que pour stocker les adresses de retour des sous - routines et manquait d'instructions push ou pop. Si une pile plus importante est requise, celle-ci doit être implémentée dans le logiciel. Ces puces avaient également un compteur de données 16 bits, DC0, et son tampon de compteur de données associé, DC1. Ceux-ci ont été utilisés comme registres d'indexation pour l'adressage indirect, bien que seul DC0 puisse être accédé directement et que la valeur de DC1 ait dû être échangée avec DC0 à l'aide d'une instruction distincte.

Le jeu d'instructions comprenait 70 opcodes codés en 8 bits. Comme c'était typique de l'époque, de nombreuses instructions avaient une variété de modes d'adressage avec certains des modes codés dans l' opcode d' instruction . Par exemple, l'instruction Load Register (LR) est disponible en 14 versions différentes selon l'origine et la destination des données. La version commençant par $00 était suivie de deux bits zéro, puis de deux autres bits indiquant les emplacements dans le bloc-notes aux emplacements 12 à 15, donc cela utilisait les opcodes $00 à $04. $0A était une autre version de LR, chargeant la valeur indiquée par l'ISAR. Le F8 avait un total de huit modes d'adressage.

Les instructions machine peuvent être regroupées en six catégories : instructions d'accumulateur, instructions de branchement, instructions de référence mémoire, instructions de registre d'adresse, instruction de registre de bloc-notes, instructions diverses (interruption, entrée, sortie, registre de bloc-notes indirect, chargement et stockage).

Le F8 fonctionnait à 1–2 MHz, donnant un temps de cycle de 0,5 µs. Dans le F8, le bus de contrôle régule l'utilisation du bus de données grâce à l'utilisation de signaux de synchronisation et de commandes d'état. L'horloge phi divise le cycle machine en phases discrètes en fonction de l'instruction en cours d'exécution. Les cinq lignes de contrôle d'état sont fonction de l'instruction en cours d'exécution. Les états du bus de contrôle régulent le contrôle des informations dans l'ordinateur.

FAIR-BUG

Le micro-ordinateur Fairchild F8 a été mis à la disposition des ingénieurs de conception électronique fin 1975. La carte dispose de trois dispositifs d'intégration à grande échelle emballés dans des circuits intégrés à 40 broches : CPU, PSU et SMI. Cette carte de circuit imprimé fonctionnait comme un ordinateur personnel 64K 8 bits qui s'interface avec un télétype. La conception a permis des interfaces supplémentaires vers des disquettes et d'autres périphériques. Un programme appelé Fairbug, qui résidait dans un bloc d'alimentation 1K, permettait aux utilisateurs d'afficher et de modifier la mémoire et les registres, et de tester les programmes écrits dans le code machine. Ce dispositif est apparu au début du passage des ordinateurs à temps partagé aux ordinateurs personnels.

Fairchild a fourni des kits de développement et d'évaluation pour le F8, ces kits comprenaient un 3851A PSU (Program Storage Unit) qui contenait un moniteur dans la ROM de masque, vectorisé pour commencer à l'adresse 0x8080. A la mise sous tension, la ROM a été saisie. Le moniteur ROM était appelé dans la littérature Fairchild FAIR-BUG. Le moniteur FAIR-BUG est une constellation de routines pour assister les ingénieurs de développement de produits qui ont interagi avec FAIR-BUG à partir d'un télétype . Fairchild a étendu FAIR-BUG en KD-BUG, à utiliser avec un clavier et un écran.

Les commandes principales de FAIR-BUG sont des caractères ASCII uniques tirés de l'ensemble {A, B, C, D, E, F, G, I, L, M, N, P, R, S, W}. Les emplacements de registre et de mémoire ont été saisis en tant que paramètres immédiatement après l'identifiant de la commande. Par exemple, la commande M02F0-02FF entraîne la saisie du contenu de 16 octets de mémoire par le télétype. Les commandes FAIR-BUG adressent tous les emplacements mémoire et tous les registres. Ces emplacements peuvent être examinés ou modifiés par le programmeur.

FAIR-BUG contient cinq sous-programmes qui sont utilisés dans le traitement des commandes : Entrée 2 octets ASCII ; Sortie 1 octet ASCII ; Sortir la chaîne CR, LF, Null ; Sortie 1 octet ASCII ; Saisissez 1 octet ASCII à partir d'un périphérique d'entrée parallèle. FAIR-BUG est essentiellement une routine de gestion d'accès aléatoire pour toute la mémoire, à la fois RAM et ROM, et tous les registres, y compris le compteur de programme, le compteur de données et le bloc-notes. Le programmeur a la possibilité de planter n'importe laquelle des plus de 70 instructions ou opérandes de code machine dans des emplacements de mémoire. Le programmeur peut alors utiliser la commande G pour charger une adresse spécifique dans le compteur de programme et exécuter la routine à cette adresse.

L'objectif en fournissant les routines FAIR-BUG en 1975 était d'aider les ingénieurs à accélérer la création d'applications pour les circuits intégrés F8.

Inventeur

Le document de brevet US4086626 répertorie David H. Chung comme l'inventeur de l'ordinateur que nous connaissons sous le nom de Fairchild F8. La date de dépôt de ce brevet était le 7 juin 1976. L'invention était une extension des travaux d'ingénierie mentionnés dans le brevet sous la date de priorité du 7 octobre 1974. Le propriétaire du brevet était Fairchild Camera and Instrument Corporation. La carrière de David H. Chung a inclus des postes chez Texas Instruments, Fairchild et Sony.

Remarques

Les références

Citations

Bibliographie

Liens externes