Linux プロセッサのマイクロコードデータファイル

ソ-ス:・ダウンロード Linux * プロセッサのマイクロコードデータファイル

f:id:nonbei:20180903071827p:plain


関連:

■ マイクロコード ■

ところで、「アセンブラ言語」で書かれたコードは「機械語」(マシン語)に翻訳されます。

この「機械語」がプロセッサが理解する最終形なのでしょうか?

実は機械語は更に細かい命令に分断されます。

これはソフトウェア開発者が意識する必要は全くありませんが、知識として知っておくと良いと思います。

機械語というのは、プロセッサに取り込まれた後に、更に細かな命令に分けられます。

何故、機械語よりも細かな命令に分断しなければならないのかというと、細かな命令に分断する事により、プロセッサ内部での処理が「簡略化」出来るからです。

簡略化出来ると何か良い事があるのでしょうか?


プロセッサ内部での処理を簡略化する事により、1つ1つの命令の「処理を速くする」事が出来るようになります。

つまり、1つ1つの命令を小さく、単純化する事により、それぞれの処理を単純化(=高速化)出来るのです。

勿論、命令を細かな物に分断してしまうので、命令数は増えてしまいます。

しかし、1つ1つの命令が単純なので、より高速に行なえる命令を先に実行したり、複数の命令を同時に実行したりする等の工夫をする事が出来るようになります。

これらの、より高速に処理が行なえるようにする工夫や仕組みの事を「マイクロアーキテクチャ」といいます。

この言葉はコンピュータ雑誌等で見かけた事がある方もいらっしゃるかもしれません。

また、1つ1つの細かな命令群の事を「マイクロコード」といいます。


以前にも説明しましたが、インテル製のプロセッサはCISC(Co-mplex Instruction Set Computer:複合命令セットコンピュータ)と呼ばれます。
これは、1つの命令で複雑な処理を行えるプロセッサの事ですが、内部でマイクロコードが活躍しているので複雑な処理を行う事が出来るのです。


また、インテル製以外の殆どのプロセッサはRISC(Reduced In-struction Set Computer:単純命令セットコンピュータ)と呼ばれます。
こちらは基本的にマイクロコードは使用されません。
何故なら、初めから単純な命令しか存在しないので、わざわざマイクロコードに分断する必要性が無いからです。


さて、今回でとりあえず「簡単なアセンブラ言語」講座は終了となります。

この講座を熱心に読んでくださった方であれば、これで一通りアセンブラ言語については読めるようになっていると思います。

ただし、「簡単なアセンブラ言語」という講座名の通り、この講座では非常に基本的な命令しか紹介していません。

全てを紹介していると非常に量が多くなってしまうという事もありますが、あえて説明を省いてしまった部分もあります。

アセンブラ言語について知識の豊富な方は、この講座は非常に物足りなく感じた事と思います。
逆に、アセンブラ言語についてそれほど知識の無い方は、この講座を読む事によって、プロセッサの仕組みや動作原理についてもっと知りたくなったのではないでしょうか?(そうだと良
いのですが・・。)

例えば、MMXやSSEについてもっと知りたくなったという方もいらっしゃるかもしれませんし、仮想メモリや保護機能について知りたくなったという方もいらっしゃるかもしれません。
それだけではなく、この講座では触れませんでしたが、もっともっと特殊な事、システムコールやタスクスイッチ、特権命令や割り込み等について知りたい、という方もいらっしゃるかも
しれません。(タスクスイッチに関してはこの講座で取り上げた命令を使用します。)

それらを知るには、この講座ではまだまだ説明不足ですが、そういう、何故?どうやって?動作原理は?などという疑問を持つ事は非常に重要な事だと思います。
また、その為にあえて軽く触れるだけで説明を省略した部分もあります。

これらの技術については、その内に講座として取り上げる事もあるかと思いますが、もし、そのような疑問を1つでも持たれた場合、これでは物足りないという方は、1番最後に掲載する参考文献の方に非常に有益な情報が多数掲載されています。

これらの参考文献の中でも、特にお勧めしたいのが、インテル社が公開している「IA-32 インテル(R)アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル、上巻・中巻・下巻」です。

これらのマニュアルは、それぞれが非常に分量が多いです。
しかし、ダウンロードした後に、目次だけでも良いので読んでみてください。
目次の中には、あなたがプロセッサについて疑問に思っている事についての項目があるはずです。

それらの項目について割かれているページ数は、たかだか10ページか、それよりもずっと少ないはずです。

まずはその項目に的を絞って読んでみましょう。

読んで、理解する事が出来れば、あなたは確実にハッカーに1歩近づけた事になります。

また、読んでいく内に、新たな疑問が浮かぶかもしれません。
その時は、それについての項目を目次から探し出して、読んでみてください。

後はそれの繰り返しです。


私の所に届くメールの中に、「ハッカーになるにはどうすれば良いですか?」という質問が結構寄せられます。

もう答えは分かりますよね?

そういった、地味な作業の繰り返しです。

実際にこのメールマガジンの読者の方の中で、そういった作業を既に始めているという、素晴らしい御意見も頂きます。

また、先ほど紹介した「IA-32 インテル(R)アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル」ですが、これは一昔前までは1冊数千円もする書籍を購入しなければなりませんでした。
現在では全てネット上に無料で公開されており、簡単に入手する事ができます。

その気になりさえすれば誰でもプロセッサに関する知識を得る事が出来るのです。

あなたもこれらの書籍を読んで、立派なハッカーになってみませんか?



参考文献:

IA-32 インテル(R) アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル、上巻:基本アーキテクチャ (日本語 PDFファイル、7,603KB)
>>> ftp://download.intel.co.jp/jp/developer/jpdoc/24547003_j.pdf

IA-32 インテル(R) アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル、中巻:命令セット・リファレンス (日本語 PDF ファイル、11,688KB)
>>> ftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf

IA-32 インテル(R) アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、下巻:システム・プログラミング・ガイド (日本語 PDF ファイル、6,526KB)
>>> ftp://download.intel.co.jp/jp/developer/jpdoc/24547203_j.pdf


インテル日本語技術資料ダウンロード
(上記3冊全てとその他日本語技術資料、Itaniumプロセッサの資料へのリンク集です。)
>>> http://www.intel.co.jp/jp/developer/download/index.htm


その他、参考にしたホームページ
>>> http://www.csl.sony.co.jp/person/fnami/asm.htm

>>> http://isweb31.infoseek.co.jp/computer/maccyo/assembler/oldassembly.html


ソ-ス:・マイクロコード