Intel Architecture プログラミングのソースを表示
新しいページはコチラ
移動:
案内
,
検索
== '''概要''' == インテルアーキテクチャーはWindows OSの命令を処理するCPU インテルプロッセッサの技術で、Visual C++コンパイラやGCCコンパイラでこのアーキテクチャーを使うことができるようになっています。この命令セットはいわば、最先端アセンブラ言語と言える高度なアセンブラの命令を理解することにもつながります。プロセッサあるところにアセンブラあり、IntelのCPUにもアセンブラがある。SIMDと呼ばれるSingle Instructure Multiple Dataという方式のCPU処理方式で、一つの命令で複数のエータを処理できるという方式です。 え?そんな低レベルのプログラミングって今どき必要なの?ってあると思いますが、無駄がなく、高速に計算をするときは、このレベルにまで落とし込んだプログラミングにすることは、よくありって、画像処理や動画処理の根幹をなしています。こんな難しい技術を覚えても、さほど役に立たないかもしれません。Intelの英語WebSiteとかにいくと命令セットの仕様が公開されています。最近はVisual C++でちょちょいっとやるだけで使えるようになっているので、知っててもいいんじゃない?という基本的なアセンブラ処理もあるので、面白半分で使ってみるのもいいかもしれません。いつか役に立つときはあると思う。 SIMDってのはフリンの分類というコンピュータアーキテクチャー(情報処理の構造)のひとつで、他にもMIMD(Multiple Instruct Multiple Data)というマルチコア、マルチプロセッサのような方式、SISD(Single Instruct Single Data)という最も単純な方法、MISD(Multiple Instruct Single Data)という高度な信頼性をひつようとする方式、発展的にはSPMD(Single Program Multiple Data)、やSPSD(Single Program Single Data)というスーパーコンピュータ(その時代時代の最先端のコンピュータ)のようなものが扱う方式もあります。さらにはSIMT(Single Instruct Multiple Thread)やMIMT(Multiple Instruct Multiple Thread)、SPMT(Single Program Multiple Thread)やMPMT(Multiple Program Multiple Thread)といったものもあります。組み合わせが全部あるだけですね。Programとつくのは一命令がプログラムのようにふくざつなものを一度に処理するもので、ThreadってなってるのはDataがオブジェクトと呼ばれるくらい大きいものになっていてThreadとして、扱われるくらいのDataになるって感じですね。 == '''プログラムの例''' == [[VC PlusPlus:基本的な使い方|Win32コンソールアプリケーション]]をつくります。そして以下のようなプログラムをMain関数にするとMOVDQAというデータ転送命令を使うことができます。 <syntaxhighlight lang="cpp" line start="1"> #include "stdafx.h" int main(int argc, char *argv[]) { __declspec(align(16)) unsigned int src[4] = { 1, 256, 1024, 65536 }; __declspec(align(16)) unsigned int dst[4]; __asm { movdqa xmm0, src movdqa dst, xmm0 } printf(" source:%7d,%7d,%7d,%7d\n", src[0], src[1], src[2], src[3]); printf(" result:%7d,%7d,%7d,%7d\n", dst[0], dst[1], dst[2], dst[3]); return 0; } </syntaxhighlight> <syntaxhighlight lang="txt"> source: 1, 256, 1024, 65536 result: 1, 256, 1024, 65536 </syntaxhighlight>
Intel Architecture プログラミング
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ