用容量为16K ×1的DRAM 芯片构成64K*8的存储器,为什么刷新时按16k算而不是64k
时间: 2024-02-19 20:59:55 浏览: 282
这是因为DRAM芯片的刷新是以行为单位进行的。每一行包含了多个存储单元,而行的数量是由DRAM芯片的地址线数决定的。在16K×1的DRAM芯片中,地址线数为14根,因此可以寻址2^14个不同的行。刷新时需要遍历所有的行来保持数据的稳定性,因此刷新操作是按照行的数量进行的,即2^14行,而不是按照存储器整体的大小来计算。因此,使用16K×1的DRAM芯片构成64K×8的存储器时,刷新操作需要按照16K的行进行,而不是按照64K进行。
相关问题
用容量为16K ×1的DRAM 芯片构成64K*8的存储器,为什么刷新时按128*128算而不是256*256
对于使用16K×1的DRAM芯片构成64K×8的存储器,在进行刷新时,应该按照16K的行进行刷新,而不是按照存储器的整体大小。因此,刷新时应该按照128×128的大小进行刷新,而不是256×256。这是因为16K×1的DRAM芯片有14根地址线,可以寻址2^14个行,每个行包含16K的存储单元。所以在64K×8的存储器中,共有64K/16K=4个行,每个行包含8个16K×1的DRAM芯片,也就是说每个行包含了8个16K的存储单元。因此,刷新时应该以128×128的大小进行刷新,即每次刷新128个行,每个行包含8个16K的存储单元。
用16K*8位的DRAM芯片构成64K*32位存储器,请画出该存储体的组成逻辑框图
为了将16KB×8位的DRAM(动态随机存取存储器)芯片组成一个64KB×32位的存储器,我们需要使用位扩展(bit expansion)和地址映射的技术。这里是一个简单的逻辑框图描述:
1. **高位地址扩展**:
- 首先,我们有64KB的总容量需求,这需要4个16KB的DRAM芯片并行连接。每个芯片有自己的8位数据线(D0-D7),所以我们需要四个这样的芯片串联起来提供32位的数据宽度(D0-D31)。
2. **地址解码器**:
- 有一个地址解码器,它接收32位的主地址,并将其分解为四个部分,对应四个DRAM芯片,每个部分包含8KB的地址范围。同时,这个解码器会生成控制信号(比如 Chip Select, CS)选择相应的芯片读写操作。
3. **字节选通**:
- 由于每个芯片都是8位宽,但在最终系统中我们需要32位的数据,因此需要内部的字节选通信号(Byte Enable, BE),用于从每个芯片的8位数据线上选择需要的32位数据。
4. **数据缓冲器**:
- 如果数据传输速率存在差异(例如,一次只能访问一个DRAM芯片的一行),可能会插入一个数据缓冲器,用于暂存来自不同芯片的数据,直到所有数据都被读取或写入完毕。
5. **控制逻辑**:
- 控制逻辑负责协调各个步骤,包括地址计数、周期同步等,以保证整个系统的正常工作。
以下是逻辑框图的大致示意:
```
+--+
| 主CPU (32位地址) |
+-->-> Address Decoding & Chip Select ->
| Data Buffer |
+-->-> Byte Enable (for each DRAM chip) ->
| DRAM Chips (16Kx8 Bit each) |
+-----------------------------------------+
| |
v v
+-----------------------------+----------------+
| Data Path (BE) | Output |
+-----------------------------+----------------+
```
阅读全文