TLCSは東芝製のマイクロコントローラに付けられるプレフィックスです。製品ラインにはCISCおよびRISCアーキテクチャの複数のファミリが含まれます。個々のコンポーネントには通常、「TMP」で始まる部品番号が付けられます。たとえば、TMP8048AP は TLCS-48 ファミリのメンバーです。[1] : 11
TLCS-12
TLCS-12は、東芝が製造した12ビットの マイクロプロセッサおよび中央処理装置である。1971年に開発が開始され、1973年に完成した。これは、 NMOSロジックを使用して6μmプロセスで製造された、約2,800個のシリコンゲート を備えた32mm 2 MOS集積回路チップであった。これは、1974年に生産が開始され、1975年に量産されたフォードEECエンジン制御ユニットシステムに使用された。システムメモリには、512ビットのRAM、2kbのROM、および2kbのEPROMが含まれていた。[2] [3] TLCS-12の改良版であるTLCS-12A は、1975年に発表された。[4]
TLCS-47 ファミリー
TLCS-47 カテゴリのマイクロコントローラは4 ビットシステムです。これらは東芝の Web サイトで宣伝されなくなりました。
TLCS-48 ファミリー
TLCS-48ファミリーはIntel MCS-48(8048)マイクロコントローラのクローンでした。[1]
TLCS-Z80ファミリー

これらは、 Zilog Z80互換マイクロコントローラのシリーズでした。
TLCS-90 ファミリー

TLCS-90ファミリーのマイクロコントローラは、Z80を彷彿とさせる8ビット/ 16ビットアーキテクチャを採用しています。[1]これらは東芝のWebサイトでは宣伝されなくなりました。
TLCS-90 は、次のような Z80 のほとんどの機能を継承しています。
- 7つの8ビットレジスタ(A、B、C、D、E、H、L)
- 6つの16ビットレジスタ(BC、DE、HL、IX、IY、SP)のうち3つは8ビットレジスタペアである。
- パリティ/オーバーフローフラグの組み合わせ
EX DE,HL、EX AF,AF'およびEXX16ビット交換命令、[ 1] :付録-2 およびLDIRおよびメモリコピー命令LDDR。
ただし、大きな違いもあります。Z80 の個別の I/O アドレス空間は省略されていますが、オペランドの組み合わせに柔軟性が追加され、いくつかの新しい演算 (特に乗算と除算) といくつかの追加のアドレス指定モードが追加されています。
(SP+d)および(HL+A)インデックスモードは、およびと同様に動作します(IX+d)。(IY+d)- FF00~FFFF 16のメモリの1バイト「ゼロページ」アドレス指定
(IX)(IY)変位なしでアドレス指定できるため、マシンコードの1バイトを節約でき、実行時間を短縮できます。- PC 相対 long (プログラム カウンタからの -32768 から +32767 バイト、短い -128 から +127 ではなく)
8 ビット アキュムレータ A の機能のほとんどが、16 ビット HL レジスタ ペアにも実装されています。たとえば、不足しているSUBおよびCP命令、、、ANDおよびXORビット単位の命令などです。Z80 のフラグの癖が実装されています。さらに、16 ビット ループ カウントを容易にするために 命令が追加されました。
ORADD HL,rrDJNZ BC,addr
TLCS-90 SoCパッケージには4ビットのBXレジスタとBYレジスタが含まれており、これらはIXまたはIYレジスタに基づく有効アドレスと連結され、プロセッサは最大1メガバイトのメモリをアドレス指定できます。[1] :MPU90-16 プロセッサには、INCX ($FF00+n)およびDECX ($FF00+n)命令が含まれており、これらはIXおよびBXレジスタまたはIYおよびBYレジスタを使用して20ビットのポインタ演算を実行するのに役立ちます。
命令は、1 バイトの基本命令と 2 バイトの拡張命令に分かれています。オペコード E0 16から FE 16は、拡張命令を開始するプレフィックスです。命令のエンコードは、プレフィックスが拡張命令の 1 つのオペランドを指定する点で異例であり、Z80 またはx86アーキテクチャで使用される 1 バイトのプレフィックスとは異なり、プレフィックス自体にオペランド バイトが続く場合があります。[1] : MPU90-23、付録 12 プレフィックス バイトの後に、2 番目のオペコード バイトが操作と 2 番目のオペランドを指定します。
たとえば、命令はADD (IX+127),5としてエンコードされF4 7F 68 05、最初の 2 バイトは宛先アドレスを指定し、3 番目のバイトは操作を指定し、4 番目のバイトはソースオペランドを提供します。
TLCS-870 ファミリー
TLCS-870 ファミリのマイクロコントローラ (TLCS-870、TLCS-870/X、TLCS-870/C、TLCS-870/C1 シリーズ) は、 TLCS-90 にヒントを得た8 ビット/ 16 ビットアーキテクチャを使用していますが、Z80 とはあまり似ていません。
TLCS-870 は 16 ビットのアドレス空間を持つオリジナルで、2 つの異なる方向に拡張されました。
- TLCS-870/Xは上位互換性を保ちながらアーキテクチャを20ビットに拡張した。[5]
- TLCS-870/Cは16ビットのアドレス空間を維持し、互換性のあるアセンブリ言語を提供しますが、命令エンコーディング[5]が変更されたため、異なるオブジェクトコードが必要になります。
- TLCS-870/C1は、870/Cの上位互換バージョンであり、若干の拡張が施されている。[6]
TLCS-900ファミリー
TLCS-900ファミリはTLCS-90アーキテクチャのほとんどの機能を継承しており、32ビットレジスタと24ビットアドレスバスを備えています。ほとんどの実装(TLCS-900、[7] TLCS-900/L、[7] TLCS-900/HおよびTLCS-900/L1シリーズ)はMC68000と同様に16ビットの内部データパスを備えていますが、TLCS-900/H1シリーズは内部で32ビット幅です(MC68020と同様)。
命令セットはTLCS-90とほぼ上位互換性があるが、バイナリエンコードは異なる。[7] : 182–184 命令のオペコードと追加オペランドの前にアドレッシングモードをエンコードする同じスキームが実装されている。初期のモデルは、バンクレジスタとプログラムカウンタが16ビット幅の「最小モード」と、すべての汎用レジスタが32ビットの「最大モード」の両方をサポートしていた。後のモデルでは最小モードが省略された。
最大モードでは、4 つの 32 ビット レジスタのバンクが 4 つあり、各レジスタは 2 つの 16 ビット半分または 4 つの 8 ビット クォーターに分割できます。初期モデルの最小モードでは、4 つの 16 ビット レジスタのバンクが 8 つあり、8 ビット半分に分割できます。プロセッサは、現在のバンク ( RFP16 ビット ステータス レジスタ SR のフィールドによってポイントされる)、TLCS-90 の代替レジスタ スキームと互換性のある前のバンク、または 0 から 7 までの任意のバンク番号を使用できます。また、4 つの 32 ビット レジスタの固定セットもあり、そのうちの 1 つはスタック ポインタ専用です。初期モデルには、ユーザー モードとシステム モード用に 2 つの別々のスタック ポインタがありました。通常、3 ビット コードからアドレス指定できるのは 8 つのレジスタ セットのみです。すべてのレジスタをアドレス指定するには、プレフィックス付きアドレス指定モードオペランドにのみ挿入できる追加の6/8ビットコードバイトが必要であり、ソースオペランドと宛先オペランドに使用できるレジスタの組み合わせが制限されます。[7]
F レジスタ (16 ビット レジスタ SR の下位 8 ビット) には、F' と呼ばれる代替レジスタがあります。TLCS EX AF,AF'-90 から実行するには、EX A,A'との両方を実行する必要がありますEX F,F'。
TLCS-900 には 4 つの「microDMA」転送チャネルも含まれており、各チャネルにはプログラム可能な転送元アドレスと転送先アドレス、転送回数、データ サイズ (バイト、ワード、ロングワード)、およびさまざまな転送モードがあります。これらは通常の割り込みと同じ方法でトリガーされ、転送プロセス時にプログラムの実行を中断します。
TLCS-900/H モデルは、ネオジオポケットとネオジオポケットカラーで最も多く使用されました。
特徴と違い
現在の TLCS プロセッサは、次の機能の一部またはすべてを提供します。
- オプションの内蔵プルアップ抵抗を備えた多機能双方向汎用I/Oポート
- マスクプログラマブル、ワンタイムプログラマブル、フラッシュメモリ、またはEEPROMタイプのROM。ROMレスバージョンも利用可能
- さまざまなシリアルインターフェース:
- I²C
- 同期/非同期シリアル周辺機器 ( UART /USART) ( RS-232、RS-485などで使用)
- シリアル ペリフェラル インターフェース バス(SPI)
- USB
- ウォッチドッグタイマー(WDT)
- 多重化 10 ビットA/D コンバータ、D/A コンバータ
- デュアルクロック入力と、異なるギア値(周波数分周器)を選択することによるオンラインクロックスイッチングにより、低電力の低周波モードまたは高性能の高周波モードのいずれかが可能になります。
- プリスケーラブルな8 ビットおよび 16 ビット タイマー (プログラマブル インターバル タイマーとして使用可能)
- 8ビットおよび16ビットのパルス幅変調(PWM)およびプログラム可能なパルス生成(PPG)出力
- 電源電圧供給範囲は1.8~5.5ボルト
- 外部割り込み制御
- ステッピングモーター制御に適したパターンジェネレーター
- チップ選択/待機コントローラ
- さまざまなチップキャリア形式
これらの機能に対する需要は、特定のプロジェクトの要件 (低エネルギー消費、多数の I/O ポートなど) によって大きく異なるため、お客様は幅広いバージョンから選択できます。
開発ツール
東芝は、ANSI C互換のC コンパイラとアセンブラを提供しています。どちらのツールも無料では入手できません。
無料のSmall Device C コンパイラはTLCS-90 をサポートしています。
GNU アセンブラを TLCS-900 ファミリに移植するプロジェクトがあります。
Alfred ArnoldのThe Macroassembler AS [1]は、TLCS-47、TLCS-870、TLCS-90、TLCS-900、TLCS-9000ファミリをサポートするフリーアセンブラです。
参考文献
- ^ abcdef 8ビットマイクロコントローラ:TLCS-48、-90 (PDF) 。東芝。1988年11月。 2020年3月28日時点のオリジナルよりアーカイブ(PDF) 。代替URL
- ^ 「1973年:12ビットエンジン制御マイクロプロセッサ(東芝)」(PDF)。半導体歴史博物館。 2019年6月27日閲覧。
- ^ ベルツァー、ジャック、ホルツマン、アルバート G.、ケント、アレン (1978)。コンピュータサイエンスとテクノロジーの百科事典: 第 10 巻 - 微生物の線形および行列代数: コンピュータ支援による識別。CRCプレス。p. 402。ISBN 9780824722609。
- ^ “新HPCの歩み(第54回)-1975年(b)-” . 2023-11-20に取得。
- ^ ab Haywood, David. 「MAME ソースコード: src/devices/cpu/tlcs870/tlcs870d.cpp」。GitHub 。 2020年4月25日閲覧。
- ^ 「TLCS-870/C1 シリーズ命令セット」(PDF)。東芝セミコンダクター社。2008 年 12 月 16 日。
- ^ abcd 「TLCS-900 シリーズ 16 ビット マイクロコントローラ ユーザーズ マニュアル」(PDF)。東芝株式会社。1994 – Bitsavers.org 経由。
外部リンク
- TLCSシリーズに関する東芝の日本ウェブサイト
- TLCSシリーズに関する東芝USAのウェブサイト
