解答略
@kaitou_ryaku
拡大
解答略
@kaitou_ryaku
解答略
@kaitou_ryaku
拡大
2019/06/25 x86が可変長命令なので困る。僕が困るということは、Intelのおじさんも困ってるはずで、パイプラインの処理とかどうしてるのか心配になった。ツイッターの優秀な諸氏のおかげで疑問が解決した
解答略
@kaitou_ryaku
解答略
@kaitou_ryaku
xxqi
@idxx
xxqi
@idxx
解答略
@kaitou_ryaku
2019/06/29 とりあえずDWORD(32bit)の加算命令
「ADD r/m ← reg」
のデコード・実行系を完成させる。CPUに命が宿った感。とはいえModRMやSIB周りのアドレシングは杜撰な設計で、BYTE (8bit)命令にも未対応。
解答略
@kaitou_ryaku
解答略
@kaitou_ryaku
拡大
解答略
@kaitou_ryaku
拡大
↑大量の命令が実装済みに見えるけど、実際は命令長をデコードしてるだけで、その先の処理は全くの未完成
2019/07/01 ここから5日ほど、テストベンチの設計をあれこれ考えていた。結局
「ROMの命令列を無理やり上書き→実行→結果を比較」
という比較テストを並列で動かしまくることにした。要するに結合テストだけ作る。この方式は動作が重いけど、CPU内部のステージ分割方式が変わってもテストベンチに変更が生じない。ステージ毎のテストは、一通りCPUが完成してからデバッグ目的で作ることにした(つまり先延ばしである)。
解答略
@kaitou_ryaku
解答略
@kaitou_ryaku
解答略
@kaitou_ryaku
↑これはx86のデコーダーを作る際にしみじみ思う。もっと簡単な(MIPS等の)命令セットであれば、デコーダーは簡素だし、あまり「言語処理系」を作ってる気分にならないかも
解答略
@kaitou_ryaku
拡大
拡大
解答略
@kaitou_ryaku