当我阅读以下摘录时,我正在研究计算系统的要素:
Hack计算机包括一个黑白屏幕,组织为256行,每行512像素.屏幕内容由8K存储器映射表示,该映射从RAM地址16384(0x400)开始.物理屏幕中的每一行,从屏幕的左上角开始,在RAM中由32个连续的16位字表示.因此,来自顶部的行r和来自左边的列c的像素被映射到位于RAM [16384 + r*32 + c%16]的字的c%16位(从LSB到MSB计数).为了写入或读取物理屏幕的像素,可以在RAM驻留存储器映射中读取或写入相应的位(1 =黑色,0 =白色).
那么,如果屏幕是256行512像素,并且每个像素是一个比特,那么整个屏幕的8K内存映射怎么样?
256行*512位= 131072/8位/字节/ 1024字节/ K = 16K
那不是一张16K的内存映射吗?
我唯一能想到的是因为字大小是16位,这可能是一个因素吗?我一直都知道"字节"意味着8位,但如果它的定义取决于计算机的字大小,那么这对我来说可能会解开这个谜团.有人可以向我解释该段中描述的屏幕是如何用8K内存映射而不是16K表示的吗?
Gol*_*rol 17
是的,现代计算中的字节总是8位.
这本书使用的是单词,而不是字节
在书中,明确提到了单词和单词的大小,而没有关于字节的单词(haha).看看这句话..is represented in RAM by 32 consecutive 16-bit words..整个大小以(16位)字而不是字节表示.
因此,8K指的是8个Kilowords.如果在本书中使用该表示法,那么8千字节将被正式写为8KB.
在处理器架构方面,单词非常重要.编程语言中的单词通常是2个字节(或16位),但在处理器体系结构中,它们也可以是8位或32位,它们指的是处理器工作的数据单元的自然大小,因此有意义的是这本书使用的是单词而不是字节,因为文本似乎非常面向硬件.
要查看字节和单词的相关性,请阅读此答案.
不同的字节大小
维基百科描述了一个字节最初是如何(20世纪60年代)基于它需要保存的信息的大小,因此6位字节可以用于(英语)字符,而其他大小的字节将用于不同的数字格式.它最初为英文字符6位,增长到7位以支持ASCII,最终8位IBM System/360的普及导致全球接受8位字节.
字节是表示数据量的软件单元,而字更多地依赖于处理器/存储器架构并且表示处理器中的工作单元(寄存器)和存储器中的可寻址单元.如今,一个字节总是被认为是8位,而字是其中的倍数.仍然有处理器具有不同的字大小,但那些是专用处理器.从PC到手机和游戏机的普通硬件都遵循标准.