[PP0906] 01. 擬似プロセッサ PP0906 の仕様
擬似プロセッサ PP0906 を作るにあたって、はじめにどんなプロセッサなのか、その仕様を決めなければなりません。今回は、C 言語の入門者でも理解できることを目指すため、ちょっと不自然な設計になる部分もありますが、ベテランの方はどうか目をつぶってください。
PP0906 は、1 ワード = 32 ビットのワードマシンとします。アドレス空間は 64K ワードということにしましょう。レジスタとして、PC(プログラムカウンタ)、SP(スタックポインタ)、A(アキュムレータ)、および X(インデックスレジスタ)を持ちます。フラグレジスタは実装が面倒なので存在しません。
命令は 1 ワードまたは 2 ワードの可変長とします。命令の 2 ワード目は常にオペランド用で、イミディエイト値(即値)またはアドレス値が指定されることになります。命令セットは追々紹介していくことにします。一点だけ特記しておくべきことは、擬似プロセッサなのでプログラムを終了させる必要がありますので、命令に -1 が現れた場合は終了ということにしたいと思います。
擬似プロセッサですので、電気的な仕様は決める必要がありません。もちろん、機械的な仕様(パッケージのサイズや形状など)も決める必要がありません。理解しやすくするため、キャッシュや MMU などはありません。アドレスデコーダもなく、アドレス空間いっぱいにメモリが存在するものとします。クロックに同期させて動かすのも面倒なのでやめます。結果としてパイプラインもありません。
大体こんな感じにしたいと思います。今回はアドレッシングモード(アドレス指定方式)を含めた命令セットを紹介できませんでしたが、後ほどその話はしたいと思いますので、どうぞご期待ください。
この記事のトラックバックURL:
http://www.kijineko.co.jp/trackback/515
ブックナビゲーション
- 技術情報
- Boost C++ Libraries メモ
- C++と組込み環境
- C++サンプル集
- C++テンプレート集
- C++プログラマのためのC言語入門
- C/C++迷信集
- C99関数・マクロ・前処理スクリプト集
- C言語再入門
- C言語徹底入門
- Drupal メモ
- TOPPERS 情報
- ベターCとしてのC++
- マイコン メモ
- ライブラリ開発入門
- 分割コンパイルをきわめる
- 擬似プロセッサを作る
- PP0906 - 初級者向け擬似プロセッサ
- [PP0906] 00. 擬似プロセッサ PP0906 を作る
- [PP0906] 01. 擬似プロセッサ PP0906 の仕様
- [PP0906] 02. 主記憶と制御装置
- [PP0906] 03. 何もしないプログラム
- [PP0906] 04. 即値のロードと出力
- [PP0906] 05. レジスタ間の転送
- [PP0906] 06. ニーモニックを使う
- [PP0906] 07. ロードとストア
- [PP0906] 08. ジャンプ
- [PP0906] 09. スタック操作
- [PP0906] 10. コールとリターン
- [PP0906] 11. インクリメントとデクリメント
- [PP0906] 12. 条件分岐
- [PP0906] 13. 加算と減算
- [PP0906] 14. 不正命令例外
- [PP0906] 15. まとめ
- PP0906 - 初級者向け擬似プロセッサ
- 象の卵を探して...
- 車輪の再発明
- 過去の情報

