• ベストアンサー

命令セットアーキテクチャとは?

学校の授業で命令セットアーキテクチャという言葉がでてくるのですが、 意味としてはHWと低レベルSWとのインターフェースとかかれているのですが、 ようするになんですか?どんな命令を組み合わせてるかの構造、 というただそれだけの意味なのでしょうか?よくわかりません。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

No.1の方のお話のとおりでいいと思います。 ただ、出題者(説明者)の理解不足と言う話は考えすぎではありませんか。 命令セットアーキテクチャーを素直に解釈すれば、BIOSやファームウェアは無関係のはずです。 「命令セットアーキテクチャ」はあくまでも「機械語命令の種類と数、及びそれぞれの機械語命令の書き方と動きのルール」と解釈すべきです。 ここでいう「低レベルソフトウエア」は確かに紛らわしいですが、これは機械語命令(またはアセンブラー命令)にとどめておかないと混乱を助長させるでしょう。

amuro_78
質問者

お礼

ありがとうございます、

その他の回答 (1)

noname#25358
noname#25358
回答No.1

 それは出題する方もよく理解してないようですね(^_^;  順を追って説明します。  まず、命令セット・アーキテクチャとは、これは「命令セット」「アーキテクチャ」というそれぞれ別の言葉を、その場の出題内容として理解しやすいように組み合わせた言葉です。  命令セットとは、一般に「コマンドセット」と呼ばれています。CPUに対して直接下される命令は、C言語でもBASICでもなく、「機械語」と呼ばれる数値の集合体です。  これがもっとも低レベルなコンピュータ言語ということになります。  このとき、この「機械語」は様々なコマンドを持っているわけですよね。色んなことをしなきゃいけないわけですから。  なので、この「コマンド」の集まりのことを「コマンドセット」と呼びます。場合によっては単に一覧表のことをそう呼ぶこともあります。  「アーキテクチャ」とは、何かしらの機械を実現可能にする内部構造や技術のこと。  つまりコマンドセット・アーキテクチャとは、「機械語という存在」を実現可能にする技術のことをいうわけです。  機械語は、CPUが直接実行するプログラムであると先に説明しました。  ところが、普通の人間は機械語を理解できません(バリバリの理系人間は除く)。ただの数値の塊ですからね。なので、その間には何らかのインターフェイスが必要です。  そこで、「高級言語」という概念が出てきます。C言語やBASICなどがそれです。  人間の分かりやすい言葉で書かれた言語を、コンパイラが機械語に変換して実行してくれるわけです。  この「高級言語」のことを、「高レベルソフトウェア」と呼びます。  ここまではいいでしょうか?  で、出題者の理解が足りない、という話ですが、最近のコンピュータは、高レベルソフトウェアとハードウェアの間に、「BIOS」と「ファームウェア」という2つのプログラムが介在するのが一般的です。  BIOSとは、一般のアプリケーションが呼び出す、便利なインターフェイスプログラム群のことです。  そしてファームウェアとは、ハードウェアの制御プログラムのことで、コンピュータの内部にひっそりと埋め込まれているのが普通です。  低レベルソフトウェアとは、まあ場合によっても変わりますが、この「BIOS」や「ファームウェア」のことを指すことが多いです。  なので、俺がパッと聞いたとき、「ハードと低レベルソフトのインターフェイス」と言われれば、普通はこの「ファームウェア」のことを思い浮かべます。  たしかに、ファームウェアだって機械語で書かれていますし、機械語である以上、「コマンドセット・アーキテクチャ」がそれを実現していると言うこともできます。  間違いじゃあ、ありません。  ……が(^_^;  話として飛躍しすぎなのです。こんな書き方では、読む方が混乱するのも当然です。  なので、ここは単語単位で個別に理解した方がいいでしょう。

amuro_78
質問者

お礼

あろがとうございます。

関連するQ&A