0%

计算机组成原理复习:第五章 存储系统和结构

比较可惜的是,从这章开始,这门课的内容就讲得很不细致了。很多内容只能从一个很高的层次进行介绍,无法深入细节。一旦讲到了偏硬件的东西,由于难以进行实践,又和数学等理科知识关系不大,和电路等学科关系密切,课本就只能划水。

计算机组成原理复习:第五章 存储系统和结构

本章先从整体上介绍了计算机的存储结构,再着重介绍主存的存储思想以及具体的主存种类。之后讲了多个主存储器是如何构成一个系统的。最后稍微介绍了一些其他cache、虚拟内存等内容。

我只针对复习PPT提到的重点和我们课后习题涉及到的内容进行复习。

主存储器的组织

这一节围绕主存是如何存储数据的,介绍了主存储器整体的工作原理,和前面编码的内容有一些关联。主存储器本身的结构在后面的小节里介绍。

存储单元

数据的最小单位是位,被叫做存储位。按位存取效率太低,多个存储位在一起就成了存储字,这是访问的最小单元。存存储字的结构叫存储单元,地址和存储单元是一一对应的。大量存储单元构成了存储体

主存部分技术指标

存取时间

执行一次读或写操作的时间。

存取周期

两次执行访问操作的间隔时间。因为除了完成存取操作外,主存内部还有一些其他的操作,存取周期一般略大于存取时间。

带宽

等于主存等效工作频率乘主存位宽。

数据在主存的存放

可能出现主存的存储字长比较大,而计算机传来的数据比较小的情况。比如主存的存储字长是64位,而计算机传来的数据可能是8~64位的。如何存这些数据是一个问题:

如果每个数据紧挨着存,那么主存空间没有浪费。但是万一一个存储字剩余容量较小,突然来了一个64位数据,那么这个数据就得拆成两半,存在两个存储字里了。

如果每个数据都存在一个存储字里,那就太浪费了。如果所有数据都是一个字节,那么大量的空间要被浪费。

因此,边界对齐的存取法被提出。这种方法综合了以上两种方法的优点。比如,在存储字为64位的主存储器里,64位数据只能从一个存储字开头从,32位数据只能从半个存储字开头存,16位位数据只能从四分之一个存储字开头存。

主存储器结构与工作原理

这一节前面讲了很多和电路的东西,我们缺乏基础知识,学不懂。我只复习DRAM的刷新以及RAM芯片的一些参数。

DRAM的刷新

由于DRAM电路的问题,需要经常刷新才能维护数据。

注意,刷新是指对每个芯片的刷新。芯片一般会排成正方向阵列,比如16K的芯片,就会排成128*128。之后谈到的按行刷新,这个“行”指的就是128。刷新就等于读了一遍,因此刷新周期等于读写周期。这个刷新周期是以行为单位的。

为了提高整体的工作效率,有几种不同的刷新策略:

集中刷新

在最大允许的刷新间隔内,把工作分成两个阶段:读写操作和刷新。在所有读写操作执行一段时间后,集中刷新所有的存储芯片,再继续读写。等于说每个刷新间隔构成了一个循环的工作周期。

分散刷新

每次读或写之后,立刻刷新。也就是读写操作和刷新绑定。这样可以保证内存正常,但是刷新过于频繁,读写周期变长,没有充分利用最大允许刷新间隔

异步刷新

异步刷新综合以上两种方法,把主存按行分组。先做一会儿读写操作,就停下来刷新第一行;再做一会儿读写操作,就刷新第二行……。在最大允许刷新间隔内,把所有行都刷新一遍。

课本上对以上三种方法都画了一个图,看了图就很好理解。

RAM芯片引脚

  • 地址线
  • 数据线
  • 片选线 CS
  • 读写控制线 WE
  • Vcc 电源
  • GND 地

其中片选线的意思可能不能通过字面来理解。片选线决定该芯片是否工作。

上述引脚的字母打的不是很准确。这篇文章我不打算渲染公式,所以就简单写一下。

先复习一下这些引脚是因为之后的内容会用到。

主存储器的连接与控制

本节讲的是多个主存储器是如何协作的。

主存储器扩展

存储芯片一般比较小。为了得到一个较大的主存储器,需要把存储芯片连接扩展。

先提一句,芯片用数据量和数据位数来表示。比如64K X 1就是地址64K,数据只有1位的芯片。

考试主要考察的就是画图。注意,一堆线要画成粗的线。箭头表示数据传输方向,数据线的箭头是双向的,其他线的箭头是单向的。

有以下三种扩展方法:

位扩展

用一堆地址一样的芯片扩展位数。

地址线、片选线并联进每一个芯片。

数据线每一根接一个芯片。

以64K X 1拓展到64K X 8为例:

芯片1 芯片2 芯片3 芯片8
A0 ——l—— ——l—— ——l—— ——l—— ——l——
——l—— ——l—— ——l—— ——l—— ——l——
A15 ——l—— ——l—— ——l—— ——l—— ——l——
CS ——l—— ——l—— ——l—— ——l—— ——l——
D0 ——l—— ————— ————— ————— —————
D7 ————— ————— ————— ————— ——l——

地址扩展

假设一堆芯片位数相同,但存储量不够,可以把它们并在一起扩展地址

这种方法的思想是,地址线的高位用来片选,也就是选择使用那片芯片;低位直接输入芯片。

此处看书上的图很好理解。

字和位同时扩展

同时执行上面两种扩展。

看书上的图很好理解。

存储芯片的地址分配与片选

上一节地址扩展中,出现了如何分配地址这个问题。上一节是用一个译码器来分配地址高位,得到片选结果。本节具体介绍了分配地址时存储芯片片选的方式。

线选法

地址高位的每一位直接就代表是否选中某个芯片,而不经过移码。由于片选时0表示有效,因此用于片选的地址高位只能有一个0。

全译码法

就是上一节的方法,把高位输入译码器进行译码,输出选择哪一个芯片。有可能输入的地址组合量大于需要的量,比如输入9位,但只有4个芯片。这个时候译码结果只有4个是有效的,其他508个都是无效的。

 部分译码法

在全移码的基础上,只把部分位输入译码器。比如要选择4个芯片,只输入2位就行了。这样的话地址的高位完全用不到,会产生地址重叠。