テキサス・インスツルメンツ TMS1000

TMS1000は、1974年にテキサス・インスツルメンツ（TI）によって発売されたマイクロコントローラーのファミリーである。 完全な「ワンチップ上のコンピューター」として4ビットのCPU、Read only memory（ROM）、Random Access Memory（RAM）、そして入出力端子（I/O）を統合していた。 TMS1000は、自動車、家電、ゲーム、そして測定機器の中の組み込みシステムを対象としていた。 TMS1000は、最初に大量に使用された商用マイクロコントローラーであった（後述のように前身のTMS0100シリーズはマイクロコントローラと見なされないこともあるため）。 1974年にこのファミリーのチップは、一個約2ドルで大量購入可能であった。 1979年までにこのファミリーの約2600万個が毎年売られていた。 TMS1000は、テキサス・インスツルメンツ自社の教育玩具Speak & Spell（英語版）、プログラム可能な玩具の自動車Big Trak（英語版）、そして電子ゲーム「サイモン」で使用された。 ここでは TMS 1000 シリーズの前身であるTMS 0100 シリーズに簡単に触れる。 スミソニアン博物館は、テキサス・インスツルメンツの技術者であるゲアリー・ブーン（Gary Boone）とマイケル・コクラン（Michael Cochran）が1971年に世界初のマイクロコントローラー（マイクロコンピューターとも呼ばれる）TMS1802NCの開発に成功したとしている。 TMS1802NCは、1971年9月17日に発表されたシングルチップのマイクロコントローラーであり、四則演算電卓のプログラムが内蔵されていた。 TMS1802NCは、その名称にもかかわらず、TMS 1000 シリーズではなかった。 TI Datamath電卓とSinclair Executive（英語版）電卓に使用された。 後にTMS1802NCは、TMS 0100 シリーズの一部として TMS0102 と再命名された。 TMS0100シリーズはマイクロコントローラとみなされないこともある。電卓以外の用途で利用できず、ユーザーが作ったプログラムを実行することができないからである。 TMS 1000 シリーズは、1974年に発売された。 TI社は、4ビットのTMS1000がプログラム済みの組み込み用途であることを強調した。 ワンチップ上のコンピューター（computer-on-a-chip）は、マイクロプロセッサコア（CPU）、メモリ、そしてI/O（入出力）端子を一つのチップに統合した。 当時、「マイクロコンピューター特許（microcomputer patent）」と呼ばれたワンチップ上のコンピューターの特許アメリカ合衆国特許第 4,074,351号は、TI社のゲアリー・ブーンとマイケル・J・コクランに与えられた。 この特許は別にして、マイクロコンピューターの通常の意味は、CPUとして一つ以上のマイクロプロセッサを使ったコンピューターのことであるが、この特許で定義された概念は、マイクロコントローラーに似たものである。 TMS1000ファミリーは、最終的にオリジナルのPMOSロジックだけでなく、NMOSロジックとCMOSロジックの品種も含まれるようになった。 各種製品は、異なる大きさのROMとRAM、異なるI/Oの数、そして開発向けあるいは外部ROMを使用するROMなし版を含んでいた。 オリジナルのTMS1000は、1024バイトのROM、64ニブルのRAM、そして23の入出力端子を備えていた。 TMS1000ファミリーは、マスクROMを使った。 ユーザーがデバッグされたプログラムを生産に委託する準備ができたら、テキサス・インスツルメンツへプログラムを送ることになる。テキサス・インスツルメンツは、チップ内のROMをプログラムするための特製マスクを作る。 ROMは、現場で変更できない。その内容は、製造者によってチップ内に置かれたパターンによって決定された。 この過程は、高額な初期費用がかかったが、製造費用は非常に安かったので、大量生産品（年間数千個以上販売される）に向いていた。 プロセッサの全てのデータパス（RAMへのパス）は、4ビット幅（ニブル）だった。 ハーバードアーキテクチャのようにプログラムROMとデータRAMのアドレスは分かれていた。ハーバードアーキテクチャは、他の多くの製造者によるマイクロコントローラーの一般的な特徴になった。 ALUは、オーバーフローを示すためにキャリーフラグを搭載しており、2倍の精度（つまり8ビット）の計算の手助けになった。 チップ内蔵RAMは、XレジスタとYレジスタによってアドレッシングされた。ここでYレジスタは4ビットであり、XレジスタはRAMのサイズに依存して2ビットあるいは3ビットだった。 プログラムカウンターは、6ビット幅だった。1024バイトまでのプログラム用メモリであるROMにアドレスするためにpageレジスタ（4ビット）も搭載していた。 TMS1000ファミリーの一部は、2048バイトまでのROMを扱えるようにchapterビットを搭載していた。 スタックはなかったが、プログラムカウンターを保存するためのレジスタが提供された。そして、1レベルのサブルーチンのためにキャリーフラグが利用可能であった（TMS1000ファミリーの一部は、2あるいは3レベルのサブルーチンが利用できた）。割り込み機能はなかった。 一部のモデルは、4つのI/O端子しか搭載していなかった。なぜなら、それらのモデルは、ROMを内蔵していなかったので、外部プログラムメモリにアクセスするためにパッケージの限られた数の端子を使う必要があったからである。 あるバージョンは、蛍光表示管を駆動するための特別な出力を搭載していた。そして、7セグメントディスプレイを駆動するのに役立つPLAを搭載しているモデルもあった。 4つの入力端子がキーボード検出などの目的で提供された。そして、可変数の出力端子は、外部デバイスの制御あるいはキーボードのROWをスキャンするために提供された。 PMOS版は、-9 Vあるいは-15 Vで動作し、およそ6 mAを消費した。そのため、出力ロジックレベルは、TTLと互換性がなかった。 NMOS版とCMOS版は、TTLと同じ電圧の+5 Vで動作したので、5 Vロジックとの相互運用が可能であった。 命令セットはモデルによって多少変化した。基本命令セットは43命令であり、TMS1000ファミリーの一部は54命令が利用可能だった。命令長は8ビットだった。 BCD演算命令が提供されたが、レジスタのANDあるいはOR論理演算をするために利用できる命令はなかった。 サブルーチンは、一部のモデルで1レベルに制限された（サブルーチンは他のサブルーチンを呼べない）。他のモデルでは2あるいは3レベルが利用可能であった。 一つの命令は、NMOS版やPMOS版で実行するのに10から15マイクロ秒必要だった。しかし、一部のCMOS版は6マイクロ秒程度の速さで実行できた。内部発振器は、約0.3 MHzの実効クロック速度を提供した。 TMS1000は、28または40ピンのスルーホールDIPパッケージに収められていた。しかし、製品試作用の一部のモデルは、64ピンパッケージであった。 全モデルは、摂氏0度から摂氏70度の範囲の温度で動作した。 TMS1000は、単一チップの組み込みシステムを意図していたので、TMS1000ファミリーのために特別に作られた特別なサポートチップ（UARTなど）は存在しない。 ^ Texas Instruments (2006年). “Texas Instruments History 1970's”. 18 January 2006時点のオリジナルよりアーカイブ。23 February 2023閲覧。 “1974: Introduces TMS1000 one-chip microcomputer.” ^ Texas Instruments (2005年). “TMS 1000 One-Chip Microcomputers”. 13 February 2005時点のオリジナルよりアーカイブ。23 February 2023閲覧。 This is Texas Instruments' original 1974 announcement of the TMS1000 family. ^ Siewiorek, Daniel P.; Bell, C. Gordon; Newell, Allen, eds (1982). “Part 3: Computer Classes, Section 1: Monolithic Microcomputers”. Computer Structures: Principles and Examples. McGraw-Hill. p. 583. ISBN 0-07-057302-6. https://archive.org/details/computerstructur01siew 8 November 2017閲覧. "The TMS1000 was introduced in 1974 and used in the SR-16 calculator."  ^ a b Zurawski, Richard (2009). Embedded Systems Handbook: Embedded Systems Design and Verification (2nd ed.). CRC Press. pp. 12–13. ISBN 978-1439807637  ^ Morton Jr., David L.; Gabriel, Joseph (2007). Electronics: The Life Story of a Technology. JHU Press. pp. 113. ISBN 978-0801887734  ^ Austin, Michael (2016). “Ch. 1”. Music Video Games: Performance, Politics, and Play. Bloomsbury Publishing. ISBN 978-1501308505  ^ Texas Instruments Calculator Chips (Calculator Technical Information) ^ "The Arrival of the "Calculator-on-a-Chip". ^ 1974: GENERAL-PURPOSE MICROCONTROLLER FAMILY IS ANNOUNCED (Computer History Museum) ^ Seitz, Frederick; Einspruch, Norman G. (1998). Electronic Genie: The Tangled History of Silicon. University of Illinois Press. pp. 229. ISBN 0252023838. https://books.google.com/books?id=IT90cDPh54wC&pg=PA229  "Electronic Genie: The Tangled History of Silicon", Frederick Seitz, Norman G.. Einspruch, University of Illinois ^ U.S. Patent no. 4,074,351 (TMS1802NC.) ^ Shirriff, Ken (August 30, 2016). “The Surprising Story of the First Microprocessors”. IEEE Spectrum 53 (9): 48–54. doi:10.1109/MSPEC.2016.7551353. https://spectrum.ieee.org/tech-history/silicon-revolution/the-surprising-story-of-the-first-microprocessors.  ^ Augarten, Stan (1983). The Most Widely Used Computer on a Chip: The TMS 1000. New Haven and New York: Ticknor & Fields. ISBN 0-89919-195-9. オリジナルの2010-02-17時点におけるアーカイブ。. https://web.archive.org/web/20100217065617/http://smithsonianchips.si.edu/augarten/p38.htm 2009年12月23日閲覧。  ^ "STANDARD CALCULATOR ON A CHIP ANNOUNCED BY TEXAS INSTRUMENTS" (Press release). Texas Instruments. 19 September 1971. 2006年2月18日時点のオリジナルよりアーカイブ。 ^ TMS 1000 Series Data Manual, 3.2 ROM OPERATION ^ Money, S. A. (2014). Microprocessor Data Book (2nd ed.). Academic Press. pp. 35–37. ISBN 978-1483268705  The Engineering Staff of Texas Instruments Incorporated, Semiconductor Group (1975). TMS 1000 Series MOS/LSI One-Chip Microcomputers. http://bitsavers.informatik.uni-stuttgart.de/components/ti/TMS1000/TMS_1000_Series_MOS_LSI_One-Chip_Microcomputers_1975.pdf    (1975). TMS 1000 Series MOS/LSI One-Chip Microcomputers: Programmer's Reference Manual. http://bitsavers.informatik.uni-stuttgart.de/components/ti/TMS1000/TMS1000pgmRef_1975.pdf    (December 1976). TMS 1000 Series Data Manual. https://en.wikichip.org/w/images/9/91/TMS_1000_Series_Data_Manual_Dec76.pdf  “Reverse engineering RAM storage in early Texas Instruments calculator chips” (November 2020). 23 February 2023閲覧。 OpenCores (August 2021). “Verilog implementation of the TMS1000 chip”. 23 February 2023閲覧。 ウィキメディア・コモンズには、テキサス・インスツルメンツ TMS1000に関連するカテゴリがあります。