備忘録【感想】Literature watch returns(15) CPUはこうやって動いている トランジスタ技術2020年5月号

Araha備忘録【感想】CPUはこうやって動いている トランジスタ技術2020年5月号

コロナのため確定申告の期限がオープンエンドになったとはいえ、できれば4月16日までに確定申告すべくeTAXを調べ始めたところへ、この記事であります。Literature watch returns(15) CPUはこうやって動いている トランジスタ技術2020年5月号
『デスクリートでCPU作ろうというとても「遠大」な企画』と聞いては、最初のお仕事がMOS回路設計であった者としては見逃せません。調べ始めると『歴史のもしも』を考えることになり、記事の「感想」というより「備忘録」となってしまいました。

◆ CQTV CQ出版社 公式チャンネル

お題のCPUの仕様がわからないと、お話になりません(トラ技を買えよ!ハイ)~外出したくないし~団員1号に聞いてみるか~CQ出版が宣伝で公開してないかな~、ハイCQ出版社は太っ腹で付録DVDの一部をYouTubeに公開してました。

トランジスタ技術2020年5月号「CPUはこうやって動いている ~1738石のフルディスクリート演算回路で魅せる」の実演動画を公開します.
内容は,本誌付録DVDに収録している「Chapter1」と「Chapter6」です.

出典:●Chapter6 [Chap6-1] CPUの実験[セミナ編]https://bit.ly/2UM1hhT

以下引用します。
命名はトランジスタ数にちなみ「CPU1738」なのだ!とのこと。

▼これから作るコンピュータの仕様
 1.すべてトランジスタで作る
 2.データ・バスは4ビット幅
 3.割り込み機能は実装しない
 4.外部RAMアクセスは無し
 5.1命令を2クロックで実行 = Single Step 実行可能
 6.動作周波数は20Hz程度 = 目視で動作視認のため低速化、200KHz動作可能
 7.電源は乾電池2本
 8.光る = 昔のコンピュータ風。ロジアナとしても利用

▼CPUのアーキテクチャ
 ROM: 4bitアドレス / 8bitデータ (4bit命令 4bit数値)

▼命令セット・アーキテクチャ
 データ転送      LD
 算術演算    ADD,SUB
 データ入出力  OUT,IN
 分岐                JUMP,JNC,JNZ
 動作制御         HALT

▼使用トランジスタ数:1,738個
NAND=4 NOR=4 NOT=2 AND=6 OR=6 EXOR=12 3NAND=6 Schmitt=6 3State=6
A Reg : NAND/20gate NOT/1gate 3NAND/16gate // Total: 37gate/178Tr
CPU1738 :  Total: 336gate/1738transistor

このトランジスタ数から、CMOS回路であることが推定できます。

◆ Intel 4004との比較

Intel 4004(命令長は8ビット、46個の命令)のトランジスタ数が2,300個であるのに比較して、CPU1738は簡素なアーキテクチャであるのに、1,738個(ROMを含む)も使用している。Intel 4004のトランジスタ数が少ない理由としては。
 [1]  PMOSと抵抗の回路構成は、CMOS回路の1/2のトランジスタ数
 [2]  レジスタはダイナミック・ラッチ回路
 [3]  他にもいろいろな回路、PLA、複合ゲート、ブート回路、etc.

集積回路の黎明期なので、トランジスタ(チップ面積)は貴重なうえに、チップに搭載できるトランジスタ数の上限が1000単位の時代です。NMOSですら安定的に製造できないため、PMOS(動作速度でNMOSに劣る)で設計していた時代です。いかにトランジスタ数を減らすかは設計者の重要課題でした。

Intel 4004の回路図はネットに公開されています。1971年発売なので来年50周年。
 出典:Intel 4004 50th Anniversary Project
 http://www.4004.com/


◆ Dynamic latch circuit

前記[2]のダイナミック・ラッチ回路の図面を探しましたが(「お前が描けよ」ハイ)、なかなか見つからず、やっと探した大学の講義資料をご覧ください。

出典:
本資料は、名古屋大学の教員 中里和郎 教授によって作成され、名大の授業Webサイトに掲載された「情報デバイス工学特論」 (2011年の講義)です。
Copyright (c) 2011年 中里和郎 教授
 http://ocw.nagoya-u.jp/index.php?&mode=c&id=123
 第8回 CMOSロジック集積回路(2) (PDF 文書, 149KB)
 http://ocw.nagoya-u.jp/files/123/r_note08.pdf

(Page.8-3)  ダイナミック・ラッチ
CMOS回路でもトランジスタ数3個または4個でラッチ回路を実現します。NMOS回路の場合は「抵抗とTr2個」だけでラッチ回路ができます。MOSゲートの寄生容量すら利用する優れた(涙ぐましい)回路です。DRAMと同じダイナミック動作ですが、DRAMのようなリフレッシュ回路はランダムロジックでは非現実的です。ダイナミック・ラッチのデータ保持がリーク電流でフェイルするため、最低動作周波数があります。

(Page.8-12)  CMOSフリップ・フロップ回路
CMOS回路のStatic動作(HALT)、低電圧動作(低消費電力)、を可能とするため、8Trのラッチ回路が一般的です。

他にも初見のラッチ回路の記載があって、お勉強になりました。

トランジスタのケチケチ回路設計は、「NMOSからCMOSの回路設計」となり、「PH1,PH2の2相クロック+ラッチ回路」から「単相クロック+DFF回路のセルベース設計」となり、「HDL+論理合成+P&R」が主流となり、そして「ソフトウェア設計のハードウェア化」と、ますますトランジスタの数を意識しない設計(高級言語)に進んでいます。遠からず、仕様書を入力するとAIが設計して、ロボット工場で製造し、デバイスが納品されるのでしょうか?
プロセッサのトランジスタ数が宣伝文句となった時代は過ぎ去り、トランジスタがどの様に使われているかを気にするのは古い者。

◆ 「CPU1738」の感想

「集積回路の黎明期」を温故知新して
ディスクリートのMOSトランジスタで回路設計するのであれば、折角なんでTTLのようなゲートレベルでは不可能な設計をもっと活用したらと思うのであります。
・ダイナミック・ラッチ(中里和郎教授の資料の回路)で構成したRAM仕様。
・RAMはプログラム・データ共用 → 「自己書き換えプログラム」可能。
・ドミノCMOS回路などのトランジスタ数を減らす回路設計。


◆ アポロ宇宙船のコンピュータ

CPU1738のモチベーションというアポロのコンピュータです。
アポロ誘導コンピュータ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
開発者 MIT器械工学研究所
メーカー レイセオン
販売開始 1966年8月
販売終了 1975年7月
プロセッサー RTLベースのIC (論理設計のRTLではありません)
消費電力 55W
重量 70 lb (32 kg)
寸法 24×12.5×6.5インチ (61x32x17 cm) (かなり大きい弁当箱)

Computer History Museum の記事
出典:Silicon Chips Take Man to the Moon – CHM
 By David Laws | July 17, 2019
 https://computerhistory.org/blog/silicon-chips-take-man-to-the-moon/

アポロのミッションには安全第一なので、当時のICで信頼性を担保するため1種類のゲートIC(3NOR)のみで回路を構成したとのこと。

年表
1958年、キルビー、IC発明
1959年、ノイスとムーア、IC技術特許(今にいたる半導体製造をささえるプレーナ特許)
1961年、アポロ計画スタート
1964年、      IBM System/360
1966年8月、アポロ誘導コンピュータ 発売
1969年6月、嶋正利氏、インテルの技術者と共同で4004開発開始
1969年7月、アポロ11号、月面着陸
1971年、      Intel 4004 発売

アポロ誘導コンピュータの開発者が、もしもLSIベースでCPUを開発しようとしたら、世界最初のマイクロプロセッサは4004ではなかったということですか。弁当箱サイズのコンピュータを作った後に「LSIに組込むのは簡単なんでは」と思うのは後知恵なのですな。Intel社が世界一の半導体メーカーとなった歴史には「もしも」がいくつもありますが、また一つ「もしも」を知ることになりました。


◆ 最後にクイズ

 CQ出版のCPU1738のEXORゲートは12トランジスタで構成(CMOS複合ゲート)ですが、
(問1)EXORゲートは、2NANDゲート何個で構成できるでしょうか?

昔の教科書には全ての論理回路は2NANDのみで構成できると書いてありました。Arahaはこの問題のエレガントな解答を見てナルホドと思ったものでした。
解答を知りたい方は「XOR NAND」で検索してね。

 「アポロ誘導コンピュータ」 が、3NORゲートのみの設計を採用したのは、故障した場合に宇宙飛行士が容易に修理可能とする計画でしょう。宇宙船は1グラムでも軽くする必要があるので、ICの修理部品が1種類だけでよいというメリットがあります。おそらく故障確率を計算して3NORゲートの修理部品数を決定し、故障診断マニュアルを作成して、地上では故障に備えて待機していたのでしょう。
(問2)「アポロ誘導コンピュータ 」が2NANDでなく、3NORを採用した理由は何でしょう。