プロセッサ(全68問中44問目)

主記憶の1000番地から,表のように4バイトの整数データが格納されている。これを32ビットのレジスタにロードするとき,プロセッサのエンディアンとレジスタにロードされる数値の組合せとして,正しいものはどれか。
11.png

出典:平成23年特別 問11

11a.png
正解 問題へ
分野:テクノロジ系
中分類:コンピュータ構成要素
小分類:プロセッサ
解説
エンディアン(endianness)とは、データをメモリ上にロードするときの配置の仕方です。

方式としては、ビッグエンディアン,リトルエンディアン,ミドルエンディアンの3種類があります。配置例では8ビットで1アドレスが増加すると仮定しています。
ビッグエンディアン
データの上位バイトから下位バイトへ向かって、メモリの下位アドレスから順に配置していく方式。16進数のデータ「00 01 02 03」を、ビッグエンディアン方式で配置していくと「00 01 02 03」となる。
リトルエンディアン
データの上位バイトから下位バイトへ向かって、メモリの上位アドレスから順に配置していく方式。16進数のデータ「00 01 02 03」を、リトルエンディアン方式で配置していくと「03 02 01 00」となる。
ミドルエンディアン
上の二つの配置方式よりも更に複雑な配置をする方式。
16進数のデータ「00 01 02 03」を、ミドルエンディアンの一種であるPDP-エンディアンで配置すると「01 00 03 02」となる。
ミドルエンディアンは試験は出題されなそうなので参考程度。
4バイトのデータ「00 01 02 03」をリトルエンディアンで配置すると「03020100」、ビッグエンディアンで配置すると「00010203」となるので、正解は「エ」です。

ちなみにエンディアンは、CPUア―キテクチャによって異なり、インテルのx86のCPUは「リトルエンディアン」、IBM系のメインフレーム/汎用機、Java仮想マシンでは「ビッグエンディアン」が採用されています。

Pagetop