Toshiba TLCS - Toshiba TLCS

TLCS est un préfixe appliqué aux microcontrôleurs fabriqués par Toshiba . La gamme de produits comprend plusieurs familles d' architectures CISC et RISC . Les composants individuels ont généralement un numéro de pièce commençant par "TMP". Par exemple, le TMP8048AP est un membre de la famille TLCS-48.

TLCS-12

Le TLCS-12 était un microprocesseur 12 bits et une unité centrale de traitement fabriqués par Toshiba. Son développement a commencé en 1971 et a été achevé en 1973. Il s'agissait d'une puce de circuit intégré MOS de 32 mm² avec environ 2 800 portes en silicium , fabriquée selon un processus de 6 µm avec une logique NMOS . Il a été utilisé dans le système d' unité de commande du moteur Ford EEC , qui a commencé sa production en 1974 et est entré en production de masse en 1975. La mémoire du système comprenait 512 bits de RAM , 2 Ko de ROM et 2 Ko d' EPROM .      

Famille TLCS-47

Les microcontrôleurs de la catégorie TLCS-47 sont des systèmes 4 bits . Ceux-ci ne sont plus annoncés sur le site Web de Toshiba.

Famille TLCS-48

La famille TLCS-48 était des clones du microcontrôleur Intel MCS-48 (8048).

Famille TLCS-Z80

Toshiba Z84C00

Il s'agissait d'une série de microcontrôleurs compatibles Zilog Z80 .

Famille TLCS-90

Version de développement d'un microcontrôleur de la famille TLCS-90 avec socket EPROM

Les microcontrôleurs de la famille TLCS-90 utilisent une architecture 8 bits / 16 bits rappelant le Z80 . Ceux-ci ne sont plus annoncés sur le site Web de Toshiba.

Le TLCS-90 hérite de la plupart des fonctionnalités du Z80, telles que :

  • sept registres 8 bits (A, B, C, D, E, H et L),
  • six registres de 16 bits (BC, DE, HL, IX, IY et SP), dont trois sont des paires de registres de 8 bits,
  • le drapeau combiné parité/débordement,
  • les instructions d'échange EX DE,HL, EX AF,AF'et EXX16 bits, et
  • la LDIRet la LDDRmémoire copie instructions.

Il existe cependant des différences importantes. Il omet l'espace d'adressage d'E/S séparé du Z80, mais ajoute plus de flexibilité aux combinaisons d'opérandes, de nouvelles opérations (notamment multiplier et diviser), et plusieurs modes d'adressage supplémentaires :

  • (SP+d)et (HL+A)modes indexés fonctionnant de manière similaire à (IX+d)et(IY+d)
  • adressage " page zéro " à un octet de la mémoire de FF00 à FFFF 16
  • (IX)et (IY)adressage sans déplacement, permettant de sauvegarder un seul octet de code machine et d'augmenter le temps d'exécution
  • Long relatif au PC (-32768 à +32767 octets du compteur de programme, plutôt que le plus court -128 à +127)

La plupart des fonctionnalités de l'accumulateur A à 8 bits ont également été implémentées pour la paire de registres HL à 16 bits, telles que les instructions manquantes SUBet et les CPinstructions AND, XOR, et au niveau du ORbit. La ADD HL,rrbizarrerie du drapeau du Z80 est implémentée. De plus, l' DJNZ BC,addrinstruction a été ajoutée pour faciliter le comptage des boucles de 16 bits.

Les packages SoC TLCS-90 incluent les registres BX et BY 4 bits, qui sont concaténés avec des adresses effectives basées sur le registre IX ou IY, permettant au processeur d'adresser jusqu'à un mégaoctet de mémoire. Le processeur comprend les instructions INCX ($FF00+n)et DECX ($FF00+n), qui sont utiles pour effectuer une arithmétique de pointeur de 20 bits à l'aide des registres IX et BX ou des registres IY et BY.

Les instructions sont divisées en instructions de base sur un octet et en instructions étendues sur deux octets. Les opcodes E0 16 à FE 16 sont des préfixes qui commencent une instruction étendue. L'encodage de l'instruction est inhabituel en ce que le préfixe spécifie un opérande de l'instruction étendue et, contrairement aux préfixes à un octet utilisés par l' architecture Z80 ou x86 , il peut lui-même être suivi d'octets d'opérande. Après les octets de préfixe, le deuxième octet de code opération spécifie l'opération et le deuxième opérande.

Par exemple, l'instruction ADD (IX+127),5est codée sous la forme F4 7F 68 05, où les deux premiers octets spécifient l'adresse de destination, le troisième octet spécifie l'opération et le quatrième octet fournit l'opérande source.

Famille TLCS-870

Les microcontrôleurs de la famille TLCS-870 (TLCS-870, TLCS-870/X, TLCS-870/C et TLCS-870/C1) utilisent une architecture 8 bits / 16 bits inspirée du TLCS-90, mais moins comme le Z80.

Le TLCS-870 est l'original, avec un espace d'adressage de 16 bits, qui a été étendu dans deux directions différentes :

  • TLCS-870/X étend l'architecture à 20 bits d'une manière compatible vers le haut.
  • TLCS-870/C conserve l'espace d'adressage de 16 bits et fournit un langage assembleur compatible , mais modifie le codage des instructions afin qu'un code objet différent soit requis.
  • TLCS-870/C1 est une variante à compatibilité ascendante du 870/C avec des extensions mineures.

Famille TLCS-900

La famille TLCS-900 hérite de la plupart des fonctionnalités de l'architecture TLCS-90 et comprend des registres 32 bits et un bus d'adresses 24 bits. La plupart des implémentations (séries TLCS-900, TLCS-900/L, TLCS-900/H et TLCS-900/L1) ont des chemins de données internes de 16 bits , comme le MC68000 , tandis que la série TLCS-900/H1 a une largeur de 32 bits en interne (comme le MC68020 ).

Le jeu d'instructions est principalement compatible avec le TLCS-90, bien que l'encodage binaire diffère. Le même schéma de codage du mode d'adressage avant l'opcode de l'instruction et les opérandes supplémentaires est mis en œuvre. Les premiers modèles prenaient en charge à la fois un "mode minimum" où les registres en banque et le compteur de programme avaient une largeur de 16 bits, et un "mode maximum" qui avait tous les registres à usage général de 32 bits. Les modèles ultérieurs ont omis le mode minimum.

En mode maximum, il y a 4 banques de quatre registres de 32 bits, chacune pouvant être divisée en deux moitiés de 16 bits ou quatre quarts de 8 bits. Dans le mode minimum des premiers modèles, il existe 8 banques de quatre registres de 16 bits, qui peuvent être divisés en moitiés de 8 bits. Le processeur peut utiliser la banque actuelle (indiquée par le RFPchamp dans le registre d'état 16 bits SR), la banque précédente pour être compatible avec le schéma de registre alternatif du TLCS-90, ou tout numéro de banque arbitraire de 0 à 7. Il existe également un ensemble fixe de quatre registres 32 bits, dont l'un est dédié au pointeur de pile. Les premiers modèles avaient deux pointeurs de pile distincts pour les modes utilisateur et système. Normalement, seul un ensemble de 8 registres peut être adressé à partir d'un code à 3 bits ; l'adressage de tous les registres nécessite un octet de code supplémentaire de 6/8 bits qui ne peut être inséré que dans l'opérande de mode d'adressage préfixé, limitant les combinaisons de registres pouvant être utilisées pour les opérandes source et destination.

Le registre F (moitié basse à 8 bits du registre à 16 bits SR) a un registre alternatif appelé F'. L'exécution à EX AF,AF'partir du TLCS-90 nécessite d'exécuter à la fois EX A,A'et EX F,F'.

Le TLCS-900 comprend également 4 canaux de transfert "microDMA", chacun ayant des adresses de source et de destination programmables, des nombres de transferts, des tailles de données (octet, mot et mot long) et divers modes de transfert. Celles-ci sont déclenchées de la même manière que les interruptions normales et interrompent l'exécution du programme lors du processus de transfert.

Le modèle TLCS-900/H était le plus utilisé dans les Neo Geo Pocket et Neo Geo Pocket Color .

Caractéristiques et différences

Les processeurs TLCS actuels offrent tout ou partie des fonctionnalités suivantes :

Comme la demande pour ces fonctionnalités diffère considérablement en fonction des exigences d'un projet spécifique (faible consommation d'énergie, nombre élevé de ports d'E/S, etc.), les clients peuvent choisir parmi une large gamme de versions différentes.

Outils de développement

Toshiba offre une ANSI C compatible C compilateur et un assembleur . Aucun des deux outils n'est disponible gratuitement.

Le compilateur Small Device C gratuit prend en charge le TLCS-90.

Il existe un projet de portage de l'assembleur GNU vers la famille TLCS-900.

Le Macroassembler AS [1] d' Alfred Arnold est un assembleur libre supportant les familles TLCS-47, TLCS-870, TLCS-90, TLCS-900 et TLCS-9000.

Les références

Liens externes