iizukakの作業ログ

忘れる前にメモしよう

2017年の当面の目標。CPU 作りについて

去年「CPUの創りかた」を読んで、実際に TD4 (この本をまるまる一冊かけて解説されている CPU ) を実装してみたところ、これがなかなか面白い体験でした。それからというもの、「コンピュータアーキテクチャのエッセンス」などを読んで、CPUについて思いを馳せていたのですが、理論を学ぶより作るほうが楽しかった(笑)

そこで、今年の当面の目標として、独自設計の CPU を作ってみたいと思っています。昨今では、CPU を自作するとなると手ハンダではなく FPGA を使うが主流と思います。しかし、「CPU の創りかた」を読んで慣れているのもありますし、ロジック IC に謎の愛着があるのもあって、とりあえずひとつロジック IC を使った CPU を作ってみることにしました。

(脱線しますが、ロジック IC って、どことなく LEGO ブロックに似ていませんか。どちらも基本的な要素を組み合わせて、複雑なものを作り上げられるかんじが。)

まず作成する CPU の名前を決めました。「FB04」です。「CPU の創りかた」では、16 ステップのプログラムしか ROM に格納できなかった関係上、ラーメンタイマあたりがプログラミングの限界でした。FB04 では、ぜひとも FizzBuzz を実行したい。これが "FB" の意味です。"04" はデータバス幅が 4bit の意味です。主な仕様としては、

  • ハーバードアーキテクチャ
  • FizzBuzz が実行可能であること
  • データバスは 4bit 幅とする
  • プログラム ROM は EEPROM を使って実装する
  • 命令デコーダは EEPROM を使って実装してもよい(妥協)
  • FizzBuzz を実行する関係上、アルファベットが表示可能な、キャラクタ液晶を搭載する

いま決めているのは以上です。FizzBuzz を実行したいのは、FizzBuzz には、プログラミングにおいて不可欠な要素(条件分岐、四則演算、比較、ループ、データの出力)が揃っていて、かつシンプルで CPU の性能を示すために良いと思うからです。

三が日を使って、簡単な回路図もどきを描きました。

f:id:iizukak:20170103223647j:plain

次は、使用予定のロジック IC の仕様書とにらめっこしつつ、KiCad で回路図を書こうと思います。お正月休みが終わるまでに、できるだけ進捗を出しておきたいところです。