【问题标题】:Why does each location in memory contain 8 bits? [closed]为什么内存中的每个位置都包含 8 位? [关闭]
【发布时间】:2011-04-20 14:40:03
【问题描述】:

有人有confirmed there are 8 bits in every location/address in memory

我能知道为什么吗?它与内存芯片架构有关吗?或者是因为32位CPU。这 8 位是否适用于其他操作系统,例如 FreeBSD、Mac、Linux? 每个位置的位数与内存中地址线的数量有什么关系吗?

是否有任何其他架构具有不同的每个地址的位数?

【问题讨论】:

    标签: memory bit


    【解决方案1】:

    通常情况下,Wikipedia has an answer:

    没有 8 位字节的架构包括 CDC 6000 系列科学大型机,它将 60 位浮点字分成 10 个 6 位字节。这些字节方便地保存来自打孔 Hollerith 卡的字符数据,通常是大写字母和十进制数字。由于机器的 12 位 I/O 架构,CDC 也经常将 12 位数量称为字节,每个包含两个 6 位显示代码字符。 PDP-10 使用汇编指令 LDB 和 DPB 来加载和存储从 1 到 36 位的任何宽度的字节——这些操作在今天的 Common Lisp 中仍然存在。在某些计算机上使用了六、七或九位的字节,例如在 PDP-10 的 36 位字中。 UNIVAC 1100/2200 系列计算机(现为 Unisys)在其 36 位字中以 6 位 (Fieldata) 和 9 位 (ASCII) 模式寻址。电传机器使用 5 位来编码一个字符。

    八位字节无处不在背后的因素包括 1960 年代引入的 IBM System/360 体系结构和 1970 年代引入的 8 位微处理器的普及。 术语八位字节明确指定一个八位字节(例如在协议定义中)。

    这是一个硬件架构,而不是操作系统。您每天都会遇到的所有架构都使用每字节八位。可能有现代例外,特别是在极端情况下(大型机、超级计算机、嵌入式),但我不知道有任何例外。

    【讨论】:

      【解决方案2】:

      内存地址是特定字节在内存中的位置。

      一个字节有 8 位。

      【讨论】:

        【解决方案3】:

        在某种程度上它完全是任意的 - 但 8 位很方便。

        它包含 256 个值,因此它足够大,可以存储所有大小写字母、数字和符号,而且它可以被 2 和 4 整除,这对于一些事情来说很方便。

        【讨论】:

          【解决方案4】:

          一些 DSP 架构使用 16 位可寻址单元。在许多 PIC 单片机上,以指令大小(12 或 14 位)的倍数访问代码存储器。我认为数据大小是 2 的幂,并且可以有效地存储字符数据是很有用的。使用 16 位来保存字符在历史上被认为是浪费的(恕我直言,在许多情况下,它仍然是),并且 4 位太小而无法使用。

          【讨论】:

          • 在各种架构上都有 32、24 和其他位数的数据和代码可寻址单元。也存在 4 位 CPU。以及具有按位寻址的 CPU。
          • 确实有一些图形处理器具有按位处理,但我不知道有任何不使用读取-修改-写入进行未对齐访问。确实存在 4 位 CPU,但对于许多用途而言,8 位 ALU 仅占整个系统成本的一小部分,而且最终更经济。如果使用 8 位 CPU 执行某项任务所需的代码量是使用 4 位 CPU 的 80%,那么节省的代码空间可能会超过 ALU 的额外成本。
          猜你喜欢
          • 2013-01-08
          • 2019-08-13
          • 1970-01-01
          • 2021-09-04
          • 2017-08-08
          • 1970-01-01
          • 2019-08-15
          • 2012-09-03
          相关资源
          最近更新 更多