Toshiba-TLCS - Toshiba TLCS

TLCS ist ein Präfix für Mikrocontroller von Toshiba . Die Produktlinie umfasst mehrere Familien von CISC- und RISC- Architekturen. Einzelne Komponenten haben in der Regel eine Teilenummer, die mit "TMP" beginnt. ZB ist der TMP8048AP ein Mitglied der TLCS-48 Familie.

TLCS-12

Der TLCS-12 war ein 12-Bit- Mikroprozessor und eine zentrale Verarbeitungseinheit, die von Toshiba hergestellt wurden. Es begann 1971 mit der Entwicklung und wurde 1973 abgeschlossen. Es war ein 32  mm² MOS-IC- Chip mit etwa 2.800 Silizium-Gates , hergestellt in einem 6-µm-Prozess mit NMOS-Logik . Es wurde im Ford EEC- Motorsteuergerätsystem verwendet, das 1974 in Produktion ging und 1975 in Massenproduktion ging. Der Systemspeicher umfasste 512 Bit RAM , 2 kb ROM und 2 kb EPROM .    

TLCS-47-Familie

Die Mikrocontroller der Kategorie TLCS-47 sind 4-Bit- Systeme. Diese werden nicht mehr auf der Toshiba-Website beworben.

TLCS-48-Familie

Die TLCS-48-Familie waren Klone des Intel MCS-48 (8048) Mikrocontrollers.

TLCS-Z80-Familie

Toshiba Z84C00

Dies waren eine Reihe von Zilog Z80- kompatiblen Mikrocontrollern.

TLCS-90-Familie

Entwicklungsversion eines Mikrocontrollers der TLCS-90-Familie mit EPROM- Sockel

Die Mikrocontroller der TLCS-90-Familie verwenden eine 8-Bit / 16-Bit- Architektur, die an die Z80 erinnert . Diese werden nicht mehr auf der Toshiba-Website beworben.

Das TLCS-90 erbt die meisten Z80-Funktionen, wie zum Beispiel:

  • sieben 8-Bit-Register (A, B, C, D, E, H und L),
  • sechs 16-Bit-Register (BC, DE, HL, IX, IY und SP), davon drei 8-Bit-Registerpaare,
  • das kombinierte Paritäts-/Überlauf-Flag,
  • die EX DE,HL, EX AF,AF'und EXX16-Bit-Austauschbefehle, und
  • LDIRund LDDRAnweisungen zum Kopieren des Speichers.

Es gibt jedoch erhebliche Unterschiede. Es verzichtet auf den separaten E/A-Adressraum des Z80, fügt jedoch Operandenkombinationen flexibler, einige neue Operationen (insbesondere Multiplizieren und Dividieren) und mehrere zusätzliche Adressierungsmodi hinzu :

  • (SP+d)und (HL+A)indizierte Modi funktionieren ähnlich wie (IX+d)und(IY+d)
  • Single-Byte " Zero Page " Adressierung des Speichers von FF00–FFFF 16
  • (IX)und (IY)Adressierung ohne Verschiebung, wodurch ein einziges Byte Maschinencode eingespart und die Ausführungszeit erhöht werden kann
  • PC-relativ lang (-32768 bis +32767 Bytes vom Programmzähler, statt kürzer -128 bis +127)

Der Großteil der Funktionalität des 8-Bit-Akkumulators A wurde auch für das 16-Bit-HL-Registerpaar implementiert, wie beispielsweise die fehlenden SUBund CPAnweisungen und die AND, XOR, und ORbitweisen Anweisungen. Die ADD HL,rrFlaggen-Quark aus dem Z80 ist implementiert. Darüber hinaus wurde der DJNZ BC,addrBefehl hinzugefügt, um das Zählen von 16-Bit-Schleifen zu erleichtern.

TLCS-90 SoC-Pakete enthalten die 4-Bit-BX- und BY-Register, die mit effektiven Adressen basierend auf dem IX- oder IY-Register verkettet werden, sodass der Prozessor bis zu einem Megabyte Speicher adressieren kann. Der Prozessor enthält die INCX ($FF00+n)und DECX ($FF00+n)-Befehle, die zum Durchführen einer 20-Bit-Zeigerarithmetik unter Verwendung der IX- und BX-Register oder der IY- und BY-Register nützlich sind.

Befehle sind in einfache Ein-Byte- und erweiterte Zwei-Byte-Befehle unterteilt. Opcodes E0 16 bis FE 16 sind Präfixe, die einen erweiterten Befehl beginnen. Die Befehlscodierung ist insofern ungewöhnlich, als das Präfix einen Operanden des erweiterten Befehls spezifiziert und im Gegensatz zu den Einzelbyte-Präfixen, die von der Z80- oder x86- Architektur verwendet werden, selbst von Operandenbytes gefolgt werden kann. Nach den Präfixbytes spezifiziert das zweite Opcode-Byte die Operation und den zweiten Operanden.

Zum Beispiel ist der Befehl ADD (IX+127),5als codiert F4 7F 68 05, wobei die ersten beiden Bytes die Zieladresse angeben, das dritte Byte die Operation spezifiziert und das vierte Byte den Quelloperanden liefert.

TLCS-870-Familie

Die Mikrocontroller der TLCS-870-Familie (TLCS-870, TLCS-870/X, TLCS-870/C und TLCS-870/C1-Serie) verwenden eine vom TLCS-90 inspirierte 8-Bit / 16-Bit- Architektur, aber weniger wie die Z80.

Das TLCS-870 ist das Original mit einem 16-Bit-Adressraum, der in zwei verschiedene Richtungen erweitert wurde:

  • TLCS-870/X erweitert die Architektur aufwärtskompatibel auf 20 Bit.
  • TLCS-870/C behält den 16-Bit-Adressraum bei und stellt eine kompatible Assemblersprache bereit , ändert jedoch die Befehlscodierung, sodass ein anderer Objektcode erforderlich ist.
  • TLCS-870/C1 ist eine aufwärtskompatible Variante des 870/C mit geringfügigen Erweiterungen.

TLCS-900-Familie

Die TLCS-900-Familie übernimmt die meisten Funktionen der TLCS-90-Architektur und umfasst 32-Bit-Register und einen 24-Bit-Adressbus. Die meisten Implementierungen (TLCS-900, TLCS-900/L, TLCS-900/H und TLCS-900/L1) haben interne 16-Bit- Datenpfade, wie der MC68000 , während die TLCS-900/H1-Serie 32 Bit breit ist intern (wie beim MC68020 ).

Der Befehlssatz ist größtenteils aufwärtskompatibel mit dem TLCS-90, obwohl sich die binäre Kodierung unterscheidet. Das gleiche Schema zum Codieren des Adressierungsmodus vor dem Opcode des Befehls und zusätzlichen Operanden wird implementiert. Die frühen Modelle unterstützten sowohl einen "Minimum-Modus", bei dem die Bankregister und der Programmzähler 16 Bit breit waren, als auch einen "Maximum-Modus", der alle 32-Bit-Universalregister hatte. Spätere Modelle haben den Minimalmodus weggelassen.

Im Maximum-Modus gibt es 4 Bänke mit vier 32-Bit-Registern, die jeweils in zwei 16-Bit-Hälften oder vier 8-Bit-Viertel aufgeteilt werden können. Im Minimalmodus früherer Modelle gibt es 8 Bänke mit vier 16-Bit-Registern, die in 8-Bit-Hälften aufgeteilt werden können. Der Prozessor kann die aktuelle Bank (auf die das RFPFeld im 16-Bit-Statusregister SR zeigt), die vorherige Bank verwenden, um mit dem alternativen Registerschema des TLCS-90 kompatibel zu sein, oder jede beliebige Banknummer von 0 bis 7. Es gibt auch einen festen Satz von vier 32-Bit-Registern, von denen eines als Stapelzeiger dediziert ist. Frühe Modelle hatten zwei separate Stapelzeiger für Benutzer- und Systemmodi. Normalerweise kann nur ein Satz von 8 Registern von einem 3-Bit-Code adressiert werden; die Adressierung aller Register erfordert ein zusätzliches 6/8-Bit-Codebyte, das nur in den vorangestellten Adressierungsmodusoperanden eingefügt werden kann, wodurch eingeschränkt wird, welche Kombinationen von Registern für die Quell- und Zieloperanden verwendet werden können.

Das F-Register (untere 8-Bit-Hälfte des 16-Bit-Registers SR) hat ein alternatives Register namens F'. Die EX AF,AF'Ausführung vom TLCS-90 erfordert die Ausführung von EX A,A'und EX F,F'.

Das TLCS-900 enthält außerdem 4 "microDMA"-Übertragungskanäle, von denen jeder programmierbare Quell- und Zieladressen, Übertragungszähler, Datengrößen (Byte, Wort und Langwort) und verschiedene Übertragungsmodi hat. Diese werden wie normale Interrupts ausgelöst und unterbrechen die Programmausführung beim Übertragungsprozess.

Das TLCS-900/H-Modell wurde am häufigsten in der Neo Geo Pocket und Neo Geo Pocket Color verwendet .

Funktionen und Unterschiede

Aktuelle TLCS-Prozessoren bieten einige oder alle der folgenden Funktionen:

Da die Nachfrage nach diesen Features je nach Anforderung für ein konkretes Projekt (geringer Energieverbrauch, hohe Anzahl an I/O-Ports etc.) sehr unterschiedlich ist, können Kunden aus einer Vielzahl unterschiedlicher Ausführungen wählen.

Entwicklungswerkzeuge

Toshiba bietet einen ANSI C- kompatiblen C- Compiler und einen Assembler an . Keines der Tools ist kostenlos erhältlich.

Der kostenlose Small Device C Compiler unterstützt das TLCS-90.

Es gibt ein Projekt zur Portierung von GNU-Assembler auf die TLCS-900-Familie.

Alfred Arnolds The Macroassembler AS [1] ist ein kostenloser Assembler, der die Familien TLCS-47, TLCS-870, TLCS-90, TLCS-900 und TLCS-9000 unterstützt.

Verweise

Externe Links