5.3主存储器与CPU相连
现代微型计算机PC的主存储器基本包括两个部分:一个是ROM(只读存储器),就是不受电源影响,非易失性存储器。一般存放的是生产厂家烧写的固定指令和数据。另一个组成部分是RAM(随机读写存储器)
5.3.2存储容量的扩展
- 位扩展:目的是增加同一个地址的存储单元位数。
- 字扩展:是为了增加存储器中字的数量,即容量扩展。
- 字位扩展:先位扩展再字扩展。
5.3.3主存储器与CPU的连接
这是重点也是难点
5.4高速存储器
提高存储器速度有以下几条有效途径:
- 主存采用更加高速的技术来缩短存取器的读取时间,或者加长存储器的字长,使CPU一次可存取的数据宽度加长。
- 采用并行操作的多端口存储器。
- 在CPU和主存之间加入一个高速缓冲存储器(Cache),以缩短读取时间。
- 在每个存储周期中存取几个字。
5.4.1双端口存储器
是指同一个存储器具有两组相互独立的读/写控制线,允许两个独立的CPU或控制器异步的访问存储单元。
5.4.2多交叉存储器
- 多交叉存储器可以在不改变每个存储体存储周期的情况下,提高存储器的带宽
- 采用M个存储体流水式并行存取得方式,对CPU连续访问的M个字成块传送,可以大大提高存储器的带宽。
- 每个存储体的字长都等于数据总线宽度。
- 带宽=信息量(N个字*字长)/单位时间(读取分子字数所花的时间)
- 模块数就是体数M,字长乘以字数就是信息总量,时间用T(存取周期)+(N-1)* t(总线传送周期)
5.4.3相联存储器
相联存储器是一种随机存取类的存储器,在相联存储器中,一个字是通过他的部分内容而不是他的地址进行检索的。
5.5高速缓冲存储器
- 它由高速SRAM组成
- Cache不是主存储器容量的扩充,它保存的内容是主存储其中某些单元的副本。
5.5.1Cache的基本原理
- CPU与Cache之间的数据交换以字节为单位,而Cache与主存储器之间的数据交换以字块为单位。
- 在Cache中数据块的大小称为行,在主存中的数据块的大小称为块,块与行是等长的。
- Cache除了包含存储体系,还包含控制逻辑。
- 根据CPU访问读一个字的情况:
- 读命中
- 读不命中
- 解决读不命中的方法:
- 将主存中的该字的数据块复制到Cache,然后将这个字传给CPU。
- 启动常规的主存读周期,把该字从主存中读出并送到CPU,于此同时,把字的数据块从主存中读出送到Cache。
- 根据CPU写一个字的情况:
- 写不命中,直接写入主存中,且不写入Cache
- 写命中,有两种方式处理:
- 对主存写操作也对Cache进行,称为“写贯穿策略”
- 只对Cache操作,仅当Cache的行被替换时,相应主存的内容才被修改,称为“写回策略”
- Cache的命中率。
5.5.2主存储器与Cache的地址映射方式
1.直接映射
- 直接映射是一种多对一的映射关系,主存的一块只能复制到Cache的一个特定行位置上去。
- 主存地址被划分成块内地址b、字块地址c和高位标记t(m-c)三个部分。
- CPU给出m+b为主存地址,Cache中的控制逻辑将中间的c位地址取出。
- 直接映射方式的缺点是机制不灵活,Cache命中率低。
2.全相联映射
- 全相联映射中,主存地址被划分成块内地址和高位标记地址两部分。
- CPU给出了一个字m+b的主存地址,为了实现快速检索,主存地址中的m位的块号与Cache中所有行标记同时在比较器中比较。
- 优点是机制灵活、命中率高。
- 缺点是比较器电路难于设计和实现,因此只适合于小容量的Cache。
3.组相联映射
- 组相联的方式是将Cache分成2^(c-r)组,每组r行,主存中的字块放Cache到哪个组是固定的,映射到哪一行是不确定的。有如下函数关系:j = (i mod 2^(c-r))乘以 2^r + k,其中,0 <= k <= z^r - 1
- 大大增加了映射的灵活性,提高了命中率。