TTL でCPUを作成、16bitの手作りコンピューター TANACOM-1 誕生

Hardware

CPU本体

構成要素

BlockDiagram

R0 - Accumulator

機能 汎用レジスタ0、アキュームレータ
大きさ 16bit長
構成 SN74198 x 2

○ SN74198Nについて

  • 8bitレジスタ
  • パラレルイン、パラレルアウト
  • Left/Rightの1bitシフト機能
  • 非同期クリア
  • ただのD型ラッチではなく、マスターフレーブ方式だったため、自分自身の出力(に演算を施し)を自分自身の入力にロード出来た。

R1 - Index Register

機能 汎用レジスタ1、インデックスレジスタ
大きさ 16bit長
構成 SN74198 x 2

SELECTOR

機能 R0、R1からの出力を選択し、ALUやDATA-BUSに渡す
大きさ 16bit長
構成 SN74157 x 4

IR - Instruction Register

機能 命令レジスタ
   1word16bitの命令のうち上位8bitを保持
大きさ 8bit長
構成 SN74198 x 1
接続 この先に命令デコーダ( SN74154 x 2 )が繋がる
   最上位4bit、続く4bitをそれぞれデコードする
   
○ SN74154Nについて

  • 4-Line to 16-Lineのデコーダー

PC - Program Counter

機能 プログラムカウンタ
大きさ 16bit長
構成  SN74161 x 4

○ SN74161Nについて

  • 4bit同期式バイナリカウンタ
  • パラレルロード
  • 非同期クリア

ALU - Arithmetic Logic Unit

機能 算術論理演算装置
大きさ 16bit長
構成  SN74181 x 4 + SN74182

○ SN74181Nについて

  • 4bitALU
  • 48種類の演算が可能

○ SN74182Nについて

  • Carry look ahead (キャリー(桁上り)先読み機能)

Condition Flag

機能 ALU演算結果の状態を一時的に保持するフラグ
大きさ 1bit、3種類
    ・Carry  演算結果が桁あふれ、またはボロー
    ・Zero   演算結果はゼロ
    ・Minus  演算結果はマイナス
構成  SN7473 x 2

SCR - Scratch Register

機能 一時作業レジスタ( 雑用に使われる )
大きさ 16bit長
構成 SN74198 x 2

CNT - Loop Counter

機能 ループカウンター
   CNT命令が使用するアップ・カウンター
大きさ 8bit長
構成 SN74161 x 2

Bus Buffer

機能 バスバッファー
大きさ アドレスバス16bit長、データバス16bit長
構成 SN74125 , SN74365の組合せで、多数使用

○ SN74125Nについて

  • 4個入り、3ステートバッファ

○ SN74365Nについて

  • 6個入り、3ステートバッファ


メインメモリ

1978年当時、メモリ用にP2102-1( 1024 x 1 )を64個購入し、その内1Kword分をキャラクターディスプレー回路(VRAM)に使い、残り3Kwordでメインメモリボードを作りました。
このボードは、CPUボード上の2段目に設置しました(3段目はキャラクターディスプレー回路(VRAM)になります)。
これでしばらくは、プログラムを作り楽しんでいたのですが、今で言うOSの役目をするシステムプログラムFORSEが機能拡張し大きくなり、アプリケーション領域が足りなくなってきたので、1980年3月に、4044( 4096 x 1 )を16個増設して、トータル7Kwordのメインメモリになりました。

旧メモリボード

この写真は、7Kwordになったメインメモリボードです。
2009年蘇りの時、メモリLSIをソケットからはずし、清掃しようとしたら、何と経年劣化でLSIの足がポキッと折れてしまったのです。
慌てて、4044の代替品が無いかネットで調べたのですが、当然今の時代に4KbitのSRAMなど存在しません。このままでは、3Kwordに縮小するしかありません。
それでは、当時作ったプログラムを再現する事が出来ません。

PCB

そこで、急遽UPD43256Bという32Kx8bitのSRAMを2個調達し、新メインメモリボードを設計しました。さすがに配線は、ワイヤリングペンでする訳にはいかないので、EARGLEにてプリント基板を設計し、中国のEZ-PCBにて製作させました。

これが、新設された32Kwordメインメモリです。

新メモリ基板1)    新メモリ基板2

キャラクターディスプレー回路(VRAM)のボードに同居させました。
1980年当時は、メモリ用LSIの集積度が今よりも低く、また値段も高かったので、32Kwordなんて夢の夢だったのです。

TANACOM-1の搭載可能なメモリは最大32Kwordでしたので、これで念願のフル装備になる事が出来ました。



外観

TANACOM-1のフロントパネル
フロントパネル

各部の名称と役割

( 左上から )

  • R0( Accumulator )の内容を常に表示。
  • IR( Instruction Reg )の内容を常に表示( 上位8bitのみ )。
     トルグSWで選択を切り替えると、R1( Index Reg )の内容を表示。
  • PC( Program Counter )の内容を常に表示する。
     上位8bitは、緑色LEDにて、ページ数( 0~0xFF )を表現し、
     下位8bitは、赤色LEDにて、ページ内アドレス( 0~0xFF )を表現。
     トルグSWで選択を切り替えるとSCR( Scratch Reg )の内容を表示。
  • SWR( Switch Reg )

( 上に戻り )

  • CARランプ Carryフラグの状態を常に表示。
  • HALTボタン プログラムを停止。
  • STARTボタン プログラムを走らせる。
  • RUNランプ RUN状態であることを表現。
  • POWERランプ ( 計画のみで未搭載 )
  • POWER-SW 電源ボタン( 2009年に増設 )
  • MANUAL OPERATION 6つの機能から選択し、「EXE」ボタンで実行。
     1.SET R0・・・SWRの内容をR0にセット
     2.SINGL ・・・シングルステップ( 1ステップづつ実行 )
     3.SET PC・・・SWRの内容をPCにセット
     4.STORE ・・・SWRの内容をPCが示すメモリに書き込む
             そして PC+1 --> PC
     5.DISPLY・・・SWRで示すアドレスの内容をR0に表示
     6.ALL CLEAR ・オールクリア

化粧パネルの下は、このようなユニットになっております。

パネル下


電源について

TANACOM-1は、5V単一の電源で動作します。
CPUブロックに対しては5Aを、メモリブロックに対しては、将来の増設を見越して7Aを供給させます。
電源回路図


電源1    電源2

しかしながら、復活の時2009年では、電源回路に使用していたコンデンサ等の劣化が心配でしたので、市販のATX電源350wに切り替えました。

powered by Quick Homepage Maker 5.3
based on PukiWiki 1.4.7 License is GPL. QHM

最新の更新 RSS  Valid XHTML 1.0 Transitional