4004マイクロプロセッサ 50周年 ~ SBC4004/Busicom-141PFの概要

2021/11/14

 4004は、最初のマイクロプロセッサとしてシンプル(最小限・低コスト)のマイクロプロセッサでした。その命令体系は、当時のDEC社ミニコンピュータPDP-8の命令体系に影響をうけているのではないかと思います。12bitという限られたプログラム領域、ページ分割されたプログラム領域、同じ命令名などです.4004の内部構成は、PC、ACC、SP、インデックスレジスタ、ALUなど、50年後のマイクロプロセッサに引き継がれています。

PDP-8のシステム価格が当時10,000ドルを超える価格とのことですので、インテル4004単体の価格にはなりますが、30ドル台は当時としても衝撃的と言えます。


このような4004ですが、使い倒すにはどうしてもデバッグ機能が必要になります。当時、2,395ドルと高価な「INTELLEC 4/MOD 4」と呼ばれる開発システムが販売されていたようです。そのデバッグ機能と同等以上のデバッガ・モニタを備えることで、ビルディングアップを重ね、オリジナルの電卓ファームウェアがそのままで動作できるBusicom 141-PF電卓を再現しました。

4004には、割込みもなく、3レベルのスタックしかないので、多重関数呼び出しもできません。そのため、いつでも任意のアドレスにジャンプできるジャンプ命令を差し込める機能をFPGAで実現することで、ステップ実行などのデバッグ制御を実現しました。

このデバッグ機能で、歴史的な4004プロセッサの体験学習にも使えるのではないでしょうか。以下にSBC4004/Busicom-141PFの概要・機能を説明します。


①電気的仕様

・電源:5V ACアダプター

・制御ポート:Arduino用USB、FPGAボード用JTAGポート

・プリンタポート:POS/ESC互換サーマルプリンタ専用コネクタ

・拡張入出力ポート:各4ビット

・プリンタ用電源:5V専用コネクタ

・表示器:16桁7セグメントLED

・キーボード:Busicom 141-PF配列のキーボード

・インディケータ:Busicom 141-PFのステータス表示LED、実行中LED

・設定SW:Busicom 141-PFの小数点位置・丸め設定SW、RUN/STEP切替


②形状

150mm×170mm(専用プリント基板)


③機能

・MPU 4004コア:FPGA上のコア、オプションソケットのMPU 4004実物が検出できない場合に有効化

・周辺チップ機能:4001(ROM)・4002(RAM)・4003(シフトレジスタ)・4289(標準メモリ用インタフェース)各チップ機能

・4,096ワード(バイト)の2ポートROM、1,280文字(ニブル)の2ポートRAM

・デバッグ支援機能:FPGAバスモニタ・命令実行制御とArduinoモニタプログラム

・Busicom 141-PF 周辺機器エミュレーション:電卓キーボード・「EPSON Model-102」プリンタをモニタプログラムでエミュレート

・Busicom 141-PF 電卓プログラム:ROM上に書き込み済み(Busicom社の解散により著作権は消滅)


④ユーザ・インターフェース

電卓キーボードと表示LEDによる操作または、USB経由でターミナルソフトから操作


⑤主な採用部品

★Cyclone II EP2C5T144 Mini Board

Altera社(現在は、Intel社) CycloneIIシリーズのFPGAを採用したボード

Doug Gilliland氏のGitHubで公開されている Cyclone II EP2C5を採用


★Arduino Pro Micro(3.3V版)

SparkFun Pro Micro - 3.3V/8MHz ボード(FPGAと直結するためには、3.3V版が必須)

FPGAとArduinoスケッチが連携し、豊富なデバッグ機能を実現しました。

・ROM・RAM参照・書き込み、レジスタ参照・変更

・I/Oポート読込み・書き込み

・ステップ実行、連続実行、トレース実行、ブレークポイント設定

・アセンブラ・逆アセンブラ

・FPGAレジスタダンプ


★POS/ESC互換サーマルプリンタ GOOJPRT QR204(58mm紙幅)

ユーザ定義のグラフィック文字で、ラインプリンタ「EPSON Model-102」の印刷文字を再現


下記は、SBC4004/Busicom-141PFのブロックダイアグラムです。















下記は、FPGA内部のブロックダイアグラムですが、細かな部分になりますので、読み飛ばしていただいても結構です。


















次回は、デバッグ・モニタ機能及び、Busicom 141-PF電卓操作の紹介をしたいと思います。

(再クロール更新:2022/12/22)

4004マイクロプロセッサ 50周年 ~ インテル4004とBusicom 141-PF

2021/11/13

①インテル4004
この写真は、以前入手したインテルP4004とセカンドソースのナショセミINS4004Jです。



このマイクロプロセッサは、50年前の1971年11月15日にインテル社から世界初の商用MPU 4004として発表され、それ以降、マイクロプロセッサの黄金時代が開幕しました。







インテル4004は、写真のように16ピンのDIPのLSIです。4004のマーキングの数字から4004であることがわかります。当時電卓を製造していた日本のビジコン社が米国のインテル社と開発契約を行い、事務用プリンタ電卓Busicom 141-PFに搭載された4ビット・マイクロプロセッサです。開発契約上のチップ名は、NCM-ARU、NCM-ROM、NCM-RAM、NCM-SHRでしたが、インテル社が発表した時点では、各々4004、4001、4002、4003と命名され、MCS-4(Micro Computer Set)と呼ばれました。

4004開発ストーリは、有名です。ビジコン社がインテル社に、ソフトウェアの柔軟性に着目しプログラム駆動の電卓専用LSIを開発依頼したところ、インテル社のエンジニアが提案した、ビジネス的に有利なマイクロプロセッサ命令を採用し、プロセッサ命令による電卓疑似命令(一種の関数)の組み合わせによる、Busicom 141-PF電卓を実現したことでした。

4004マイクロプロセッサの主な仕様:
・ 4ビット・マイクロプロセッサ(16ピンのDIP)
・ 2,300個のPMOS トランジスタ(10μmデザインルール)
・ 4ビット幅の ALU
・ 3レベルのサブルーチン命令を含む46命令
・ 10.8マイクロ秒の命令サイクル(クロック周波数704KHzの8倍周期)
・ 別チップの最大4,096ワード(バイト)のROM、最大1,280文字(ニブル)のRAM

この4004マイクロプロセッサ 50周年に合わせて、今回、SBC4004/Busicom-141PFを
製作してみることにしました。

②Busicom 141-PF
事務用デスクトップ電卓としてプリンタのみで表示器がない電卓でした。14桁まで取り扱えますので100兆円未満までの計算ができます。専任の事務員の方がブラインドタッチで金額計算をこなしていたのではないかと思います。

ビジコン社Busicom 141-PF電卓は、情報処理学会によって2011年、情報処理技術遺産に指定されました。インターネット上のバーチャル博物館「電卓博物館」で展示されていますが、実際に動作可能か定かではありません。

















「情報処理学会 コンピュータ博物館」より引用 URL:http://museum.ipsj.or.jp/heritage/2011/img/busicom-n3.jpg

同時期に発売されたOEM商品Unicom System社の141電卓の操作マニュアルがinternet Archiveサイトに掲載されていますので、興味ある方は、参照ください。

インテル4004はすでに希少価値となり、限られた数のチップがeBayなどで取引されています。そのため、インテル4004に触れていただけるため、現在の技術(ArduinoとFPGA)で、お手軽に4004コアおよび、電卓機能を再現してみました。

もちろん、インテル4004用のソケットを設けていますので、実物の4004があれば、その4004が141PF電卓のファームウェアを実行し、4004が検出されなければ、FPGA内蔵の4004コアによって、141PF電卓のファームウェアが実行できます。

内蔵のプリンタは、「EPSON Model-102」ラインプリンタが採用されていましたが、41PF電卓のファームウェアのプリント指令をモニタ・デバッガがエミュレートしていますので、実物と同じ印字結果が得られます。今回は、LED表示器にも入力値、計算結果を表示して使いやすいように再現しました。

下記の写真は、実物の4004を搭載し、電卓プログラムを実行して平方根の計算した結果です。


SBC4004/Busicom-141PFの専用基板は、ピコソフト株式会社様のご協力で、オレンジピコショップより頒布させていただく予定です。次回以降で詳細仕様・製作記事を掲載する予定です。

(再クロール更新:2022/12/22)

レンタルWebサービスの縮小に伴うブログ移行 ~Bloggerカスタマイズ

2021/08/04

Bloggerには、ブログテーマのテンプレートが用意されていますが、これまでの画面構成と異なっていますので、"Simple Simply Simple"をカスタマイズしました。

・ヘッダー背景画像の変更
・ブログ名・説明の変更
・アクセスカウンターの表示形式の変更
・お知らせの追加
・最新記事の追加
・設定項目の変更(テーマ・表示横幅1130px・フォント設定・日付表示など)
・投稿ヘッダーと日付表示の入れ替え・表示変更
・投稿表示の最後の投稿カテゴリーのアイコン追加
・翻訳ガジェットの追加
・各フォントサイズの調整


iPhoneやAndroidタブレットでも見やすい表示にしました。

Blogger標準のカスタマイズ範囲が限られているため、テーマ・テンプレートの「HTML編集」を用い、HTML/CSSの追加・変更を行いました。変更箇所は、HTML/CSSの機能リファレンス・例題を参考に試行錯誤を行い、具体化していきました。参考までに、"Simple Simply Simple"テンプレートHTMおよび、カスタマイズ後HTMLを添付します。差分を確認すると変更点がわかるかと思います。

これで、これまでのブログと同じ感じになりました。

(再クロール更新:2022/12/22)