テキサス・インスツルメンツ TMS0100シリーズ

**TMS0100シリーズ**は、1971年9月にテキサス・インスツルメンツ（TI）によって発売された電卓用マイクロコントローラのファミリである。TMS0100シリーズの最初のものは、TMS1802NC (TMS0102)であった。

TMS0100シリーズは、電卓に必要な論理回路が一つのチップに集積された「ワンチップ上の電卓」（Calculator-on-a-chip）である。
「ワンチップ上の電卓」としては世界初ではない。しかし、内部に4ビットのCPU、Read only memory（ROM）、Sequential Access Memory（SAM）、そして入出力端子（I/O）を統合していた。
そのため、実質的な世界初のマイクロコントローラと見なされることが多い。しかし、後述のように1974年のTMS1000を世界初のマイクロコントローラとする人もいる。

## 歴史
1970年11月に半導体メーカーMostekは、世界初の「ワンチップ上の電卓」（Calculator-on-a-chip）である Mostek MK6010 を発表した。
従来、電卓の論理回路を作るために複数の半導体が必要であったが、ついに半導体一個だけで電卓の論理回路が全て収まるようになった。
MK6010は、ビジコン社の Busicom Junior という電卓に搭載された。
MK6010は、ビジコン社専用のチップであったが、後に MK5010 として一般に販売された。

Mostek MK6010 の登場によって、テキサス・インスツルメンツも「ワンチップ上の電卓」の開発が必要となった。
1971年9月17日にテキサス・インスツルメンツは、「ワンチップ上の電卓」である TMS1802NC を発表した。
主な開発者は、ゲアリー・ブーン（Gary Boone）とマイケル・コクラン（Michael Cochran）であった。

TMS1802NCは、約5,000トランジスタで構成されており、内部に4ビットのCPU、Read only memory（ROM）、Serial Access Memory（SAM）、そして入出力端子（I/O）を統合しており、今でいうマイクロコントローラに近いものであった。
マスクROMに四則演算（加減乗算）ができる電卓のプログラムが書き込まれており、外付けの電子部品を接続するだけで電卓の回路が完成した。
そのため、技術力の低い企業でも電卓の製造が可能になった。
ワンチップのため製造コストも低下し、一個20ドル程度で入手可能であった。

TMS1802NCは、TI Datamath電卓と電卓などに使用された。
その後、TMS1802NCは、TMS0102と改名された。

## 技術仕様

TMS0100シリーズは、PMOSロジックで作られていた。電源に必要な電圧は、VDD : 0 V、VSS : +7.2 V、VGG : -7.2 Vの3種類であった。つまり2電源（+7.2 V, -7.2 V）が必要であった。
消費電力は、通常265 mW、最大400 mWであった。

最大クロック周波数は、400 kHzであった（単相クロック）。通常は250 kHzで使用することが推奨された。
実際の電卓では消費電力を抑えるために150 kHzから200 kHzで動作させることが多かった。

内蔵の揮発性メモリは、Random Access Memory (RAM) ではなく、Serial Access Memory (SAM)というシフトレジスタを基本としたものであった。SAMのデータ構成は、演算レジスタ（3×BCD11桁×4ビット）とフラグレジスタ（2×13ビット）の合計182ビットであった。電卓専用のため汎用で使える空きメモリのようなものはなかった。

内蔵の不揮発性メモリは、Read Only Memory (ROM) であったが、今のような8ビットの倍数でデータを扱うものではなく、1ワードが11ビットであり、320ワードの命令を格納できた。つまり合計3,520ビットであった。

内蔵CPUの詳細は不明だが、SAMの一部を11桁のBCDとして扱うことができることとROMの容量が非常に少ないことからハードウェアでBCD演算をサポートしていたことは明らかであった（320ワードでBCD演算のサブルーチンを組むのは不可能なため）。

TMS0100シリーズは、28ピンのパッケージに収められていた。
D1からD11までの11端子がキースキャン用の出力端子。KN, KO, KP, KQの4端子がキー入力端子。SAからSHとSPの9端子がセグメント表示出力であった。残りはクロック入力CKと電源3端子（VDD, VGG, VSS）であった。

## 電卓としての機能
TMS0100シリーズは、電卓として以下の機能を持つ。

*8桁あるいは10桁の表示（一部機種は8桁＋指数2桁）
*四則演算（一部機種は指数入力、逆数、二乗、平方根あり）
*浮動小数点あるいは固定小数点
*定数計算あるいはチェーン操作
*自動数値丸め（四捨五入、切り捨て、切り上げ）
*オーバーフロー検出
*ゼロサプレス
*キー入力の自動エンコード（キースキャンはハードウェアが自動で行った）
*デコードされた表示出力
*電源ON時の自動初期化

## 品種
TMS0100シリーズは以下の品種が存在する。
実際にはTMS0100という名称はなく、TMS0101から番号が始まる。
しかし、これらの中で最初に登場したのは、TMS1802 (TMS0102)である。

*加算器方式電卓（8桁）：TMS1802 (TMS0102), TMS0103, TMS0105, TMS0109, TMS0112
*加算器方式電卓（10桁）：TMS0106, TMS0107
*通常方式電卓（8桁）：TMS1875, TMS0101, TMS0110, TMS0111, TMS0115, TMS0119
*通常方式電卓（10桁）：TMS0118
*通常方式電卓（8桁＋指数2桁。指数入力、逆数、二乗、平方根）：TMS0120
*BCDコプロセッサ：TMS0117

TMS0117は、TMS0100シリーズのBCD演算機能だけを集積回路にしたものである。

## TMS0100シリーズは世界初のマイクロコントローラなのか？
TSM0100シリーズの内部構造は、マイクロコントローラに類似していることは間違いない。
しかし、TMS0100シリーズを世界最初のマイクロコントローラとせず、1974年のTMS1000こそ世界初のマイクロコントローラとする人も多い。
それは以下のような理由である。

# TMS0100シリーズは、レジスタ構成が電卓に特化し過ぎており、汎用性がない。
# TMS0100シリーズは、ユーザー（電子機器開発者）が作成したプログラムを実行できない。

これらのことからTMS0100シリーズの内部構造はマイクロコントローラに類似しているもののユーザーにとっては「ワンチップの電卓」の一つに過ぎないといえる。
しかし、マイクロコントローラの定義が明確ではないので、TSM0100シリーズを世界初のマイクロコントローラと見なしても間違いではない。
そのため、TMS0100シリーズが「世界初のマイクロコントローラ」なのかどうかについては見解によって異なると言える。

## 関連項目
*マイクロコントローラ
*テキサス・インスツルメンツ TMS1000（世界初の汎用性のあるマイクロコントローラ）
*電卓
*Intel 4004（世界初のワンチップマイクロコンピュータ。これも電卓のために作られた）

## 出典

## 注釈