web-dev-qa-db-ja.com

バイトは常に8ビットですか?

次の抜粋を読んだとき、私は The Elements of Computing Systems について作業しています。

ハックコンピュータには、行ごとに512ピクセルの256行として構成された白黒画面が含まれています。画面の内容は、RAMアドレス16384(0x400)で始まる8Kメモリマップで表されます。画面の左上隅から始まる物理的な画面は、RAM= 32の連続する16ビットワードで表されます。したがって、上から行r、左から列cのピクセルがマッピングされます。 RAM [16384 + r * 32 + c%16]にあるワードのc%16ビット(LSBからMSBまでカウント)にあります。物理画面のピクセルを読み書きするには、対応するビットをRAM常駐メモリマップ(1 =黒、0 =白)。

それで、画面が512ピクセルの256行であり、各ピクセルが1ビットである場合、画面全体の8Kメモリマップはどうでしょうか。

256行* 512ビット= 131072/8バイト/バイト/ 1024バイト/ K = 16K

それは16Kのメモリマップではないでしょうか?

私が考えることができる唯一のことは、ワードサイズが16ビットなので、おそらくこれが要因となるということですか?私は常に「バイト」が8ビットを意味することを知っていましたが、その定義がコンピューターのワードサイズに依存している場合、多分それがこの謎を解決するでしょう。その段落で説明されている画面が16Kではなく8Kのメモリマップでどのように表されるかを誰かに説明してもらえますか?

22
user1861499

はい、最新のコンピューティングではバイトは常に8ビットです。

本はバイトではなく単語を使用しています

この本では、WordとWordのサイズが明示的に示されていますが、バイトについてはWord(笑)はありません。フレーズ..is represented in RAM by 32 consecutive 16-bit words.。サイズ全体は、バイトではなく(16ビット)ワードで表されます。

したがって、8Kは8キロワードを指します。本書でその表記を使用する場合、8キロバイトは正式には8KBと表記されます。

プロセッサーのアーキテクチャーに関して言えば、言葉は非常に重要です。プログラミング言語の単語は通常2バイト(または16ビット)ですが、プロセッサアーキテクチャでは8ビットまたは32ビットにすることもでき、プロセッサが動作するデータ単位の自然なサイズを指すので、テキストは非常にハードウェア指向であるように思われるため、本ではバイトではなく単語を使用しています。

バイトと単語の関係を確認するには、 この答え を参照してください。

異なるバイトサイズ

Wikipedia は、保持する必要がある情報のサイズに基づいてバイトが元々(1960年代)にどのようになっていたかを説明するため、(英語)文字には6ビットのバイトを使用でき、他のサイズのバイトが使用されますさまざまな数値形式。当初は英語の文字で6ビットでしたが、ASCIIをサポートするために7ビットに成長し、最終的には8ビットのIBM System/360の人気により、8ビットバイトが世界的に受け入れられました。

バイトはデータの量を表すソフトウェアユニットであり、ワードはプロセッサ/メモリアーキテクチャにより結びついており、プロセッサのワークユニット(レジスタ)とメモリのアドレス可能なユニットを表します。しかし今日では、バイトは常に8ビットと見なされ、ワー​​ドはその倍数です。 Wordのサイズが異なるプロセッサはまだ残っていますが、それらは特別な目的のプロセッサです。 PCから電話、ゲーム機までの通常のハードウェアは標準に従います。

19
GolezTrol

現代の用語では、1バイトは常に8ビットです。これは1993年のIIRC以来です。 ISO/IEC 2382-1:1993。

ただし、バイトに他のビットカウントを使用するシステムもあり、6ビット/ 7ビットが一般的です。ただし、他のあいまいなものもあります。

結局のところ、8ビットから1バイトに基づいていないマシンを今日見つけることはまれだと思います。

0
Greg Young