【问题标题】:What do chip-select bits represent and how do they affect overall memory addresses?片选位代表什么以及它们如何影响整体内存地址?
【发布时间】:2019-08-26 11:58:58
【问题描述】:

我目前正在阅读 Adam Osborne 的微型计算机简介第 1 卷,但无法理解芯片选择位。每个位代表什么,芯片的数量如何影响地址中所需的芯片选择位的数量?需要更多片选位是否会降低计算机的存储容量?

【问题讨论】:

  • 我的建议是找一本更新的书。
  • 我读这本书是为了理解另一本关于 z80 组装的书。想学z80组装,让x86组装学习更易懂。
  • 最好先从旧的 sram 类型记忆开始。
  • 经典的片选、读/写选通地址/数据线在今天被广泛使用(你用来读取这个的处理器里面有无数个)

标签: assembly binary memory-address


【解决方案1】:

Z80 有 IN 和 OUT 指令,指示传输来自或来自 I/O 设备而不是内存。对于 I/O 设备,通常只使用低 8 位,即转换为 256 个可能的 I/O 地址(与内存读/写地址分开)。

Z80 芯片的内存接口可能会将某些内存地址位映射到特定内存芯片的片选位,具体取决于内存芯片的大小。

【讨论】:

  • 取决于内存芯片的大小究竟是什么意思?我想知道它是如何做到这一点的。如果芯片是 1024 x 4,片选位会是什么样子?
  • @John - 对于使用 1024x4 芯片的 64KB RAM,需要 64 对内存芯片。每对读/写 8 位,16 个内存地址位中的 6 位将通过解复用器来选择 64 对内存芯片中的一个。通常,16 位内存地址的高 6 位将通过多路复用器。 16 位内存地址的剩余 10 位将连接到内存芯片的地址线。
  • 我的印象是剩余的地址位代表微处理器的字长。在 16 位字长和这么多芯片的系统中,是否需要 22 位地址?
  • @John - Z80 有 16 个地址引脚和 8 个数据引脚。它们将连接到不同的总线。
【解决方案2】:

我想通了。如果在 RAM 芯片之间拆分,该地址并不包含微处理器可以访问的每个位置或位。微型计算机将仅具有其 RAM 芯片允许的内存量。地址一词仅指任何一个芯片中的各个“位置”。它不代表微处理器的字长。芯片选择位仅指特定芯片。地址一起描述了芯片和该芯片内的位置。它没有提供关于计算机有多少内存的信息,因为每个位置的大小取决于所使用的芯片。包含 256 个位置的芯片并不意味着该芯片上存储了 256 位。

【讨论】:

    【解决方案3】:

    这个想法是,在某些设计中,您可能不希望每笔交易都有记忆答案。

    一种情况是,您的内存可能具有 8 位地址,如果您可以在板上放置更多此类芯片,则不会将您限制为 256 个可寻址项目。将两个芯片放在电路板上,将低 8 个地址位连接到两者,数据线连接到两者,但是可以使用一小部分逻辑(实际上是一个简单的反相器)使地址位 8 可以在其中一个上启用芯片选择芯片或其他。和地址位 7..0 然后选择该内存中的哪个项目。地址位 8 为 0 将在其中一个存储器上启用芯片选择,但不启用另一个,并且在事务期间地址位 8 为 1 将在另一个存储器上断言芯片选择,但不是第一个。

    另一种情况是考虑使用 8 位宽部件的 32 位宽总线。如果要进行 32 位写入,则要在所有存储器上断言片选。地址线以相同的方式连接到所有地址线,但字节通道 0 位 0-7 在一个内存上,字节通道 1 位 8-15 在另一个内存上,依此类推。现在,如果总线上的事务告诉您这是一个 8 位事务并且它在字节通道 0 上,那么您只需为该事务在字节通道 0 上断言片选。 16 位低字节通道,然后只有低两个存储器的芯片选择被断言,其他两个没有。只有这两个记忆会被写入,其他的不会。通常在更宽的总线(比如 32 位)上有一个指示器,可以进行字节大小的写入,一种常见的方式是某种字节通道掩码,四个单独的控制信号,如果使用字节通道则断言,如果不使用则不断言用于该事务,您可以直接或通过逆变器将它们绑定到内存的芯片选择。

    芯片选择只是一种启用。如果芯片选择未置位,则所有其他信号都将被忽略,因此您可以看到有多种使用方法。对于某些设计,尽管您只需将片选接地(如果它被断言为低电平),然后它总是关注其他信号。

    芯片选择的数量无关紧要。您可以拥有 32 位宽的内存,该内存只有一个芯片选择,您可以拥有千兆位的部分(内存通常以位而不是字节为单位,宽度是该规范的单独部分)或 4 千兆位的 32 位宽一个有4倍的内存。它们可以有 8 位宽的部分,比 32 位宽的部分具有更多的内存。每个零件/模块通常有一个芯片选择,但有时也会有所不同。芯片选择的数量与内存的大小或宽度之间没有直接联系,至少在这个时代,在 z80 和 8088 的时代,因此您没有大量的 16 位或更宽的部分,因此 8088 的重点是让他们的 16 位处理器能够使用通常可用的 8 位宽的部分。

    【讨论】:

    • 我仍然不明白在任何这些情况下地址实际上是什么。如果一个 8 位微处理器有两个 RAM 芯片,它会有一个 9 位地址(000000000)吗?八位,因为它是一个 8 位处理器,再加上一个或另一个芯片?从我所读到的,这没有意义。似乎用于地址的片选部分的位数取决于芯片的大小。地址的书写方式没有押韵或理由吗?
    • 8 位处理器并不一定意味着 256 字节的内存,正如您通过查看您一直在阅读的 z80 资料中所知道的那样。但是可以说这是真正的 8 位地址,8 位内存,是的,使用两部分意味着你得到 9 位地址,两倍的内存(两部分)所以需要一个额外的地址位。四个部分,另外两个地址位总共 10 等等。
    • 我还没有在 z80 上阅读任何内容。我想读的书一开始就说要先读奥斯本的书。
    猜你喜欢
    • 2017-04-17
    • 2020-11-24
    • 2021-12-19
    • 1970-01-01
    • 2021-01-16
    • 2016-11-16
    • 2019-03-27
    • 2019-10-29
    • 1970-01-01
    相关资源
    最近更新 更多