* OSECPU-VMをFPGAに移植しよう by [[hikalium]], 2017-04-17 ** 関連ページ - https://github.com/osecpu/spec/blob/master/f0/index.md ** 日次ログ ** 2017-04-24 *** ここまでの進捗 - CPU向け命令セットの設計はほとんどできた。 -- ラベルのある場所にしか飛べず、ポインタの型チェックと範囲チェックが強制されるという部分をメインの実装ポイントとする。 --- 範囲チェックはハードウエア的に行う予定。 -- CPUの実行が開始すると、ROMに書かれたローダプログラムが起動し、外部メモリからOSECPUのコード(VM向けのもの)を読み込んで、まずラベルのチェックをする。 --- 読み込んだラベルに相当するメモリ領域を作成するバイナリをまず生成する。 --- その後、プログラム本体とデータ領域を、CPU向けに変換しつつ読み込む。 -- 直接メモリ番地を操作できる命令は、ローダしか実行できないのでセキュアである。 -- プログラムの終端は、終端命令をバックエンドに追加してそれにより判定する。 -- 変換が終了したら、変換後のバイナリにジャンプする。 - 開発環境の構築も終わった -- Quartus Prime Liteを使う(旧Quartus II WebPack) -- 自分のコンピューターは非力なので、コンパイルサーバーを家に立てた。 - ブロック図を書き始めた。 *** これからすること - ブロック図を完成させる。 - 外部RAMをFPGAから操作する方法を調査・試してみる。 - シリアル通信は絶対に実装するので、FPGAからどのように操作するのか、命令セットからどのように操作するかを調査して試す。 - ラベルテーブルの容量をどうするか、FPGAの内部メモリ容量との兼ね合いで決める。 -- 現在は4096エントリ分の予定。 ** 2017-04-17 このページを作成 CPUの仕様をどのようにするか考えているところ。