プロジェクト本文
▼自作CPUを作ってみたい!
パソコンや制御装置などに使われている『CPU:中央演算処理装置』。
一体、あの『CPU』というシロモノは、どの様な仕組みで動作しているのでしょうか?
もちろんネットで検索すると、虹色した半導体ダイの顕微鏡写真をたくさん見る事はできますが、写真だけでは動作原理まではサッパリ分かりません。まさに『ブラック・ボックス』です。
小生も長い間、『ブラック・ボックス』としてのCPUしか知りませんでした。
しかし何時の頃からか、(ブラック・ボックス状態ではない)CPUの本当の正体が知りたい! そして可能ならば、自分の手で『CPU』を一から作り出してみたい!と考える様になりました。
もちろん、今時のインテル社の core シリーズや、AMD社の Ryzen シリーズと言う様な超高性能CPUを自作するのは、どう考えても無理です。
しかし、60年代~70年代の「古き良き時代」レベルのCPUならば、もしかすると自作も可能なのでは?と思う様になりました。
▼できた!
ただ夢想してるだけではダメです。一念発起して、ダメ元で自作CPUの設計に取り掛かりました。
始めは、中ぐらいの大きさの基板一枚で出来るだろう、と漠然と考えていましたが、設計を進めていくと、この機能も欲しい、あの機能も欲しい、とドンドンと回路規模が大きくなって行き、最終的には基板2枚組みになってしまいました。
あまりの大きさに不安を覚えつつも、とりあえず設計が完了しましたので、基板屋に発注、さらに必要な部品も手配して、ワクワク感が半分と、不安感が半分とで数週間待った後、全ての部材が揃いました。
早速組み立てると、おおっ!想定通りに動作するではありませんか!しかも、思ってたよりも高速に動作してくれます。
もちろん不具合も多数見つかりましたので、修正も必要でしたが、予想以上の完成度です。
これならば、CPUの動作原理を理解する教材、として売り出しても良いのでは?と思うようになりました。
▼本プロジェクトの内容
完全オリジナル設計の自作CPUです。
性能的には、オーバークロック(8MHz)モードでも、ザイログ Z80(2.5MHz)の約 1/7 程度の処理能力になります。
「なんちゃって16bit」ですが、一応、16bit CPU を謳ってますので『TD16』と名づけました。
組み立てキットとしての提供となりますので、ご購入後に組み立てて頂く必要があります。
組み立てが容易な様に、DIP型IC、及び、スルーホール部品だけで構成しています(2つだけ表面実装部品の物がありますが、これはDIPモジュール化された物を使用しますので問題ありません)。
また、基板サイズは、約300×300mm が2枚になります。
基板は、前後方向の配置、または、上下スタック状態の2通りの配置が選べます(組み立てた後でも自由に変更できます)。ただし、上下スタック状態では一部の機能が操作不可能になります。
それと、パソコンからTD16へプログラムを転送する為の Arduino 用シールドも付属しています(Arduino 自体は付属していませんので、別途ご用意ください)。
こちらも組み立てて頂く必要があります。
プログラムの転送の時だけ必要ですが、転送が終われば、接続を外す事が可能です(外さないで付けっぱなしにしてても問題ありません)。
また、このシールドは Flash ROM 書き込み機能も兼用しています。
さらに、白黒のみですが、TV に接続して文字や絵を表示させる事も可能です(RCA 接続のみ。TV と RCA ケーブルは付属していませんので、別途ご用意ください)。※流石に、この部分はマイコン(AVR)を使用しています。
※NTSC コンポジット信号ですので、TV によっては、下の写真の TV ほどはクッキリと映らない可能性があります。
※画面に表示されている文章は、組見本用創作文『問わずがたりの洋酒外史』です。
Copyright (C) 1990 by Akira Satoh
Directed by TYPE-LABO and NAVEL
他にも、以下の機能があります。
- 駆動クロック変更(1Hz ~ 8MHz、及び、手動クロック)
- キャラLCD(16文字×2行)
- 16x16 Matrix LED
- 7seg LED(8桁)
- micro SDカード
- キーボード(PS/2仕様のみ)
- RTC(ボタン電池によるbackup有り)
- 簡易割込み機能
- 乾電池駆動(006P)※気休め程度ですが…
※なお、一部のサブ・システム(Video 部、Keyboardとのシリアル通信部、RTC の i2c 通信部)にて、AVRマイコンを計3つ使用しています。これらのサブ・システムは除外しても、単にその機能が使えなくなるだけで、CPU本体が動作しなくなる訳ではありませんので、妥協しました(流石にこれらまでロジックICで組むとなると、さらに基板が巨大化してしまいますので)。
また、ソフト面についてですが、現在、アセンブリ言語のみで、高級言語はありません(高級言語を移植したい所ですが、そこまで手が回らない状態です)。
i8086 や MC68000 等をちゃんぽんした様なオリジナルのアセンブリ言語になっていますので、最初は言語から覚える必要があります(まぁ、典型的な CISC 型なので、他の CISC 型 CPU のアセンブリ言語の経験があれば、それほど苦労せずに覚えられるはずです)。
汎用レジスタ(SP, R1~R15)は16本、メモリは CodeSegment が64kワード、DataSegment が64kワード、ExtraDataSegment が64kワード、割込み用 CodeSegment が64kワードの合計 256kワードあります(1ワードは16bit)。
テキストエディタでソースコードを書き、それを Windows パソコンでクロス・アセンブルし、生成されたバイナリ(TD16HEXファイル)を上記のArduino用シールドで TD16 へ転送するか、Flash ROMに書き込む必要があります。
さらなる TD16 の詳細や仕様につきましては、紹介ページの http://www.k-mark.systems/product/TD16 を御覧下さい。
▼リターンについて
組み立てキットとして ¥49800+消費税 にて、ご提供させていただきます。
完成品での提供ではありませんので、ご注意ください。
ご購入後、ご自身で組み立てて頂く必要があります(要ハンダ付け)。
※組み立て用の工具、および、消耗品(ハンダ等)は付属していませんので、ご用意ください。
組み立ての際は、プリント基板に印刷されたシルクを読み取って、該当する部品を正しく取り付ける必要があります。部品数は抵抗一本一本まで数えると1000個を越えます。また、ハンダ箇所は5000箇所を越えますので、組み立てには相応のスキルと時間を要します(ただし上記の通り、スルーホール部品のみですので、一つ一つの部品の取り付け自体はそれほど難しい訳ではありません。まぁ、数が数なだけに根気は必要ですが)。
また、特に収納箱などはありませんので、完成後も(Arduino の様に)基板剥き出しの状態のままになります。ただし、足(基板スタンド)は付属しますので直置きだけはしなくて済みます。※もし、市販品で収納によさげな箱を発見されましたら、ご連絡ください。
本品を動作させるにあたり、以下の物が必須となりますので、別途ご用意ください(本品には付属しておりません)。これらはプログラムの作成・転送時に必要になりますが、転送後は本品はスタンド・アローンで動作させる事ができます。
- Windows パソコン
- Arduino(Vio=5V 仕様の物)
- USB ケーブル(パソコンとArduino の接続用)
また、以下の物は必須ではありませんが、有ると本品の能力をフルに発揮させる事ができますので、別途ご用意ください(本品には付属しておりません)。
- TV (RCA 端子入力の物)
- RCA ケーブル×2
- JoyPad(MSX 仕様)
- 106/109 日本語キーボード(PS/2 仕様)
- microSDカード
- 乾電池(006P)
- ボタン電池(CR2032)
▼プロジェクトの終了について
2019/12/31 までに「自作CPU『TD16』の組み立てキット一式」をリターンとして支援者へ送付が完了した事をもって、プロジェクトの終了とする。
プロフィール
リターン
53,784円
自作CPU『TD16』(組立てキット)
本品は組立てキットです。ご購入後、ご自身で組み立てて頂く必要がございます(要ハンダ付け)。詳細は http://www.k-mark.systems/product/TD16 を御覧ください。
※写真は試作版です。製品版は若干の基板と部品の変更があります。また、ボタン電池と電流計は付属しません(替わりにポリSW が付きます)
- 支援者
- 0人
- 在庫数
- 制限なし
- 発送完了予定月
- 2019年12月