一部のプロセッサメーカーが使用を決定したのはなぜですか
- リトルエンディアン
- ビッグエンディアン
- ミドルエンディアン
- 他のもの?
?
ビッグエンディアンを使用すると、数値が負または正の場合、そのビットが最初のビットであるため、より速く見つけることができると聞きました。(これは、個々のビットにアクセスできなくなったため、最近のCPUでは問題になりません。)
一部のプロセッサメーカーが使用を決定したのはなぜですか
?
ビッグエンディアンを使用すると、数値が負または正の場合、そのビットが最初のビットであるため、より速く見つけることができると聞きました。(これは、個々のビットにアクセスできなくなったため、最近のCPUでは問題になりません。)
リトルエンディアンの利点は、同じアドレスを使用して変数を任意の長さとして読み取ることができることです。
たとえば、32ビット変数は、アドレスを変更せずに8ビットまたは16ビット変数として読み取ることができます。これは最近では限られた利点しかありませんが、アセンブラと限られたメモリの時代には、それは大きな利点になる可能性があります
ネイティブCPUエンディアンを使用するか、指定されたファイルエンディアンを処理することを除いて、ビッグエンディアンまたはリトルエンディアン自体の特別な利点はありません。
ビッグエンディアンとリトルエンディアンの両方が共存する理由は、さまざまなCPUメーカーがマルチバイトデータを表すためにさまざまな規則を使用しており、当時は標準が出現していなかったためです。
CPUのエンディアンを使用すると(少しでも大きくても)、算術演算の速度が向上します。メモリ内でマルチバイト整数を直接加算、減算などできます。
事前定義された所定のエンディアンをファイル形式で使用すると、他のシステムのCPUのエンディアンに関係なく、任意のシステムでファイルを読み取ることができるという利点があります。エンディアンが正しいシステムはファイルをより速く読み取ることができますが(読み取りルーチンが適切に記述および最適化されている場合)、エンディアンが間違っているシステムでもファイルを読み取ることができます。通常、速度の差はごくわずかです(整数が多い非常に大きなファイルを除く)。したがって、最初に、読み取りルーチンを最適化することで可能な最大速度ゲインを測定することをお勧めします。
一部のファイル形式(TIFFなど)は、両方のエンディアンをサポートします。この場合、ファイルが同じマシンまたは同様のマシンで後処理されると想定して、CPUのエンディアンを使用してファイルを生成することをお勧めします。
リトルエンディアンでは、アドレスを変更する必要はありませんが、ビッグエンディアンでは、次のことを行う必要があります。http ://www.noveltheory.com/techpapers/endian.asp
現代のCPUでは、まだリトルエンディアンがビッグエンディアンよりも有利であるかどうかは実際にはわかりません。私は-素朴に-アドレスを切り替えるとCPUのピコワットの電力がかかると思います:)
特定の操作では、値の一部を別の部分の前に使用できるようにすることでメリットが得られます。一度にすべてを読み取るには大きすぎる2つの符号なしまたは2の補数を加算する場合、結果の下位ビットは上位ビットが使用可能になる前に計算できますが、その逆はできません。これは、リトルエンディアンの順序が有利であることを意味します。シリアルフラッシュチップにアクセスする場合、行のデコードは、行を定義するすべてのビット(通常、チップによっては最下位の8〜12ビットを除くすべて)が使用可能になったときにのみ開始できます。これは、ビッグエンディアンの順序が有利であることを意味します。そこの。