第八章 存储器系统
存储器系统的理想状态是价格小、容量大、速度快,但是没法同时满足,这一章研究怎么通过特性不同的存储设备构建出存储器系统
8.1 基本概念
-
存储器访问时间(memory access time): 从开始传输一个数据字的操作到结束传输所用的时间
-
存储器周期时间(memory cycle time): 两个连续的存储器操作开始时刻之间的最小时间延迟
-
随机访问存储器(random-access memory, RAM): 访问任意一个存储单元的时间都相同(区别于连续访问的存储设备)
-
高速缓存(cache memory): 容量小速度快的存储设备
存储器系统的瓶颈是存储器访问时间, 因为CPU的速度太快,其他设备跟不上
- 虚拟存储器(virtual memory): 使用这种技术,应用程序看到的存储器比实际的要大。它把程序的活动部分放在主存之中,其他部分放在外存中
- 块传输:一个字一个字传输就像你外卖一个一个送,效率低,实际上经常是许多字组成块,一次传输一块
通常你用到这个字,很可能也要用到接下来连续的很多个字,所以块传输是很有必要的
8.2 半导体随机存储器
8.2.1 存储器芯片的内部组织结构
内部通常是由阵列组成,下图是一个有16个字,8位(16 * 8)的存储器。可以存储16*8=128位数据
有16个字,就有16个地址,就需要16个地址线(字线,word line),由于一次只能对一个字进行操作,16个地址线的状态可由4根线通过译码器得到。
一个字8位,就需要8个位线(bit line)来操作数据。
操作有读 / 写,需要一个读写控制。
CS(chip select) 在构建大容量存储器中起作用,来选择对哪个芯片进行操作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asTLkaNt-1636036681317)(C:\Users\HappyMole\AppData\Roaming\Typora\typora-user-images\image-20211029082001540.png)]
8.2.2 静态存储器
静态存储器(static memory):不停止供电,就一直保存状态。
下图是SRAM(static random-access memory),多了个随机访问存取,通过字线和位线达到随机访问的效果
读写时,b出来的是读取的位,b’是b的反
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NwbDHxKb-1636036681320)(C:\Users\HappyMole\AppData\Roaming\Typora\typora-user-images\image-20211029082745754.png)]
如果用cmos构建这个单元,模拟电路图如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pXBB8k7C-1636036681321)(C:\Users\HappyMole\AppData\Roaming\Typora\typora-user-images\image-20211029083100514.png)]
可以看到需要用到四个mos管(这个就是缺点)
8.2.3 动态随机存储器
动态随机存储单元, 图如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dATuWHXI-1636036681323)(C:\Users\HappyMole\AppData\Roaming\Typora\typora-user-images\image-20211029083222057.png)]
很明显看出优点:只需要一个mos管和一个电容就能构建
缺点:需要定时刷新,不然会丢失数据(或者这个数据经常被读 / 写)(DRAM刷新的代价是可接受的,课本没有相关讨论)
动态随机存储器(DRAM)如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E4AghOn1-1636036681325)(C:\Users\HappyMole\AppData\Roaming\Typora\typora-user-images\image-20211029153604872.png)]
通过RAS(row address select) 从单元阵列中选出一行,通过CAS(column address select)选出一个字节,中间有CS R