2011-02-27 2 views
1

私は単語長がハードウェアとソフトウェアの両方で実装されなければならないISA機能であることを知りました。私は答えについて漠然とした考えを持っています。私は訂正や確認が必要です。ワード長はCPUの汎用レジスタのサイズになりますか?単語の長さはコンパイラの 'int'のサイズになりますか?ISAの語長がハードウェアとソフトウェアにどのように実装されていますか?

答えて

0

ハードウェア実装:ワード長は、CPUが一度に取り出したバイト数であり、マシンの自然サイズとも呼ばれます。コンピュータについては自然なことは何もありません。それは、それがフェッチするものを格納するためのレジスタを必要とするため、実装時にはCPUのレジスタのサイズにもなります。以上のことから、目的を格納するために大きなレジスタを使用することは可能です。 IA-32ソフトウェア(ワード長32ビット)はx86-64(ワード長64ビット)で実行できます。 ソフトウェアの実装:単語の長さは 'int'のサイズになります(ちょっとint、長くない、短い)

2

word lengthは、システムによってネイティブに処理されるビット数です。現在一般的なバージョンは32ビットワードと64ビットワードです。

たとえば、バイトに0〜255の数値を格納できます。ただし、32ビット整数は0〜4,294,967,295です。整数はシステムのネイティブ「ワードサイズ」であり、32ビットシステムでは4バイト幅であるため、0-255よりもかなり大きい。

実際、多くのシステム/コンパイラ/ etcでは、システムのネイティブ・ワード・サイズよりも小さいタイプは、複数の値を1つのワードに入れるよりも効率的であるため、そのワード・サイズに変換されます。たとえば、ブール値は1ビットで表すことができます。しかし、32個のブール値を使用するソフトウェアを書くと、それらをすべて1つの単語に絞り込むことはありません。金属の上を走っているときは、それぞれに独自の単語が割り当てられます。

+0

@Neera私は、私が求めている情報をより明確にするための質問を改訂しました。いつかもう一度それを読んで答えてください。 – KawaiKx

1

私はCやC++のコンピュータ上で自由度を持ち、この問題を整数のサイズとして解釈しています。その場合、このリンクは役に立ちます - Does the size of an int depend on the compiler and/or processor?。 しかし、文字通り読むと、CPUのワードのサイズはそのレジスタのサイズでなければなりません。

関連する問題