26

次の抜粋を読んだとき、私はコンピューティングシステムの要素を調べています。

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

したがって、画面が256行の512ピクセルで、各ピクセルが1ビットの場合、画面全体の8Kメモリマップはどのようになりますか?

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

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

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

4

3 に答える 3

22

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

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

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

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

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

バイトと単語の関係を確認するには、この回答をお読みください。

異なるバイトサイズ

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

バイトはデータ量を表すソフトウェア単位であり、ワードはプロセッサ/メモリ アーキテクチャにより関連しており、プロセッサ内の作業単位 (レジスタ) とメモリ内のアドレス指定可能な単位を表します。しかし最近では、1 バイトは常に 8 ビットと見なされ、ワー​​ドはその倍数です。ワードサイズが異なるプロセッサはまだありますが、それらは専用プロセッサです。PC から電話、ゲーム機まで、通常のハードウェアは標準に準拠しています。

于 2012-11-28T22:45:59.200 に答える