FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

「自作エミュレータで学ぶx86アーキテクチャ」を(とりあえず)読了

msyksphinz.hatenablog.com

自作エミュレータで学ぶx86アーキテクチャ-コンピュータが動く仕組みを徹底理解!

自作エミュレータで学ぶx86アーキテクチャ-コンピュータが動く仕組みを徹底理解!

とりあえず読了しました。途中までコードを写経していたが、「あ、これ写経しなくても中身分かる」と思い写経は止めた。 出てくるC言語ソースコードとしては非常に基本的なもの。僕のISSC++で書かれているが、初期に書いていたC言語での自作ISSと非常に構成が似ている。

中身としては、非常に基本的なエミュレータ、シミュレータの本だった。デコードの方法から、命令をフェッチして、実行するまでの基本方針、そして、x86特有の特殊な命令デコードをどのように取り扱うかについてがメインになっていると感じた。 x86はやはり、可変長命令なので、デコーダが大変そうだった。この部分は本書では手動で記述していたが、実製品とかのシミュレータになるとここは自動的に生成される部分だろう。

後半は、デバイス、BIOSからディスクについての内容だったが、ちょっとシミュレータの話から離れてしまっていて、結局本章はどこに辿り着きたかったのか?というと分からない。 ゴールが不明確なように感じた。

最初に感じたとおり、この本が謳う「x86アーキテクチャを学ぶ」というのは違って、「x86アーキテクチャをベースにしてシミュレータの作り方を学ぶ」の方が正しいかな。