命令セット開発ハッカソン
イベント内容
学習用命令セットの開発に挑戦するハッカソンです。
- UNIX V6が移植可能な16bitアーキテクチャ
- ソフトウェア実装の都合を最優先
- 今回はFPGAなどへの実装は見送り
次のような内容を考えています。
- 既存の命令セットを見ながら議論
- 機械語の仕様を策定
- アセンブラ・逆アセンブラを試作
- 簡単なコンパイラを試作
3日間連続開催ですが、部分的な参加でも歓迎します。
ご参加をお待ちしています。
【注】 UNIX V6の8086への移植が頓挫したための方針転換です。
FAQ
ここに挙げたような議論も、当日に行う予定です。
Q. 既存のアーキテクチャじゃダメなの?
A. 個人的な希望としては、独自に作らないで既存のものを使いたかったのです。しかし想定していた成果が得られなかったため、独自開発は避けられないと判断しました。
Q. PDP-11じゃダメなの?
A. 挫折者が続出して死屍累々です。オペコードが8進数ベース、アドレッシングモードが複雑、現行ではないためモチベーションが湧かない、などの理由だと推測しています。逆アセンブラは8086の1/3程度の工数で作れるので、当初はそれらデメリットを補えると見込んでいました。現行ではないという問題は、独自命令セットだとより悪化する面もありますが。
Q. 8086じゃダメなの?
A. 挫折者が続出して死屍累々です。ModR/Mやオペランドの組み合わせなど機械語が複雑で、逆アセンブラを作るのにもかなりの工数が掛かり、完成してもそこで力尽きてしまうようです。
Q. CASLじゃダメなの?
A. レジスタが少ないためUNIX V6を動かすのは厳しいです。MMUなどの独自拡張も避けられないでしょう。それであれば新規に作り直した方が融通が利きます。
Q. 大まかな方向性とかあるの?
A. MIPSを可変長にして遅延スロットをなくしたようなものをイメージしています。機械語の要素はニブル単位にして、16進数での可読性を確保したいです。16進数でレジスタを視認するため、レジスタの個数は16個を想定しています。フラグを持つとデバッグが大変なので、比較命令でレジスタに真偽値を入れる方針にしたいです。
その他
この会場で開催される他の勉強会については以下をご参照ください。
注意事項
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。