计算机组成原理知识总结-存储器

计算机组成原理

存储器

3.1 存储器概述

3.1.1 存储器分类

一、按存储介质分:

(1)半导体存储器

  1. 静态存储器:以触发器原理存储信息,信息易失

  2. 动态存储器:以电容充斥原理存储信息

(2)磁表面存储器

  • 利用磁层上不同方向的磁化区域存储信息,通过磁头和磁记录介质的相对运动完成读出和写入(如:IDE硬盘,SATA硬盘)

(3)光盘存储器

  • 利用光斑的晶相变化存储信息,利用激光技术在光存储介质上写入和读出信息(如:CD-ROM只读型光盘 WORM一次写入型光盘 可重写型光盘)

二、按存取方式分:

(1)随机存储器(RAM和ROM):

  • 存储器中的任何一个存储单元的内容都可以随机存取,按地址访问存储器中的单元,访问时间与地址无关。主要用做主存或高速缓冲存储器。

    RAM:可读可写,如:SDR/DDR/DDR2-4

    ROM:只读,信息一旦写入就固定不变了,即使断电,内容也不会丢失。因此通常用它存放固定不变的程序、常数、汉字字库

PROM可写入一次 EPROM可多次编程(紫外线擦除) EEPROM可多次写入(电擦除)

(2)串行存储器

  • 对存储单元进行读/写操作时,按其物理位置的先后顺序寻址,包括顺序存储器和直接存储器
  1. 顺序存储器(SAM)

    访问时按顺序查找目标地址,访问时间与地址有关(如磁带,电影胶片)

  2. 直接存储器(DAM)

    存取信息时通常先寻找整个存储器中的某个小区域(如磁盘上的磁道),再在小区域内顺序查找

三、按存储内容可变性分:

只读存储器和随机读写存储器

四、按信息易失性分:

易失性存储器:断电后,存储信息即消失的存储器,如RAM

非易失性存储器:断电后,信息仍保持的存储器,如ROM、磁表面存储器和光存储器

五、按在系统中的作用分:

主存储器(内存):用来存放计算机运行期间所需的大量程序和数据,CPU可以直接随机地对其进行访问,也可以和Cache以及外存交换数据。容量较小,存取速度快,单位成本较高

辅助存储器(外存):用来存放暂时不用的数据和程序,以及一些需要永久性保存的信息,不能直接与CPU交换信息。容量较大,存取速度慢,单位成本较低

高速缓冲存储器(Cache):位于主存和CPU之间,用来存放正在执行的程序段和数据,以便CPU能高速地使用它们

3.1.2 存储器的层次结构

为了解决存储系统容量、成本、速度之间的矛盾,在计算机系统中,通常采用多级存储器结构

CPU-Cache-主存-外存
  1. Cache-主存层次:解决CPU和主存速度不匹配问题
  2. 主存-外存层次:解决存储系统的容量问题
  3. Cache、主存、CPU直接交换信息;外存需要通过主存与CPU间接交换信息。
  4. 主存和Cache之间的数据调动是由硬件自动完成的,对所有程序员透明;主存和外存之间的数据调动是由硬件和操作系统共同完成的,对应用程序员是透明的

3.1.2 存储器的性能指标

存储容量:存储容量=存储字数 x 字长,如1M x 8
存储字数:表示存储器的地址空间大小
字长:表示一次存取操作的数据量
存取周期:存储器进行一次完整的读写操作所需的全部时间,即连续两次独立地访问存储器操作(读或写)之间所需的最小时间
存取速度:数据传输率 = 数据宽度/存储周期,即数据量/时间

3.2 存储器重点

3.2.1 Cache

当CPU发出读请求,如果访存地址在Cache中命中,就将此地址转换成Cache地址,直接对Cache进行读操作,与主存无关;如果Cache未命中,则仍需要访问主存,并将此字所在块一次从主存调入Cache内。值得注意,CPU与Cache之间数据交换以字为单位,而Cache与主存之间的数据交换则是以Cache块为单位。

1.Cache和主存的映射方式:

直接映射:主存数据块只能装入Cache中的唯一位置;
全相联映射:可以把主存数据块装入Cache中的任何位置;
组相连联映射:将Cache空间分成大小相同的组,主存的一个数据块可以装入到一组内的任何一个位置。

Cache中主存块替换算法:随机算法(RAND),先进先出算法(FIFO),近期最少使用算法(LRU),最不经常使用算法(LFU)。

2.Cache写策略:

对于Cache写命中

全写法:当CPU对Cache写命中时,必须把数据同时写入Cache和主存;写回法:当CPU对Cache写命中,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存。

对于Cache写不命中:

写分配法:加载主存中的块到Cache中,然后更新这个Cache块;非写分配法:只写入主存,不进行调块。

3.2.2 多模块存储器

单体多字存储器,多体低位交叉存储器

3.2.3 程序访问的局部性原理

程序访问的局部性原理:程序访问的局部性原理包括时间局部性和空间局部性。前者是指在最近的未来要用到的信息,很可能是现在正在使用的信息,这是因为程序存在循环。后者是指在最近的未来要用到的信息,很可能与正在使用的信息在存储空间上是邻近的,这是因为指令通常是顺序存放,顺序执行的。

3.2.4虚拟存储器

虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的地址空间,在这个空间内,用户可以自由编程,而不必在乎实际的主存容量和程序在主存中的实际存放位置。

虚拟存储器与Cache比较:

  • Cache主要解决系统速度,而虚拟存储器却是为了解决主存容量;
  • Cache全由硬件实现,是硬件存储器,对所有程序员透明,而虚拟存储器由OS和硬件共同实现,是逻辑上的寄存器,对系统程序员不透明,但对应用程序员透明;
  • 对于不命中性能影响,虚拟存储器系统不命中时对系统性能影响更大;
  • CPU与Cache和主存都建立了直接访问的通路,而辅存与CPU没有直接通路。当Cache不命中时,主存能和CPU直接通信,同时将数据调入Cache中,而虚拟存储器系统不命中,只能先由硬盘调入主存,而不能直接与CPU通信。

你可能感兴趣的:(计算机专业课知识)