计算机组成原理(三)存 储 器

在这里插入图片描述

 

一、概述

存储器是计算机系统中最重要的部件之一。我们执行程序的时候,我们所需要的指令、数据都来自于存储器,程序的执行结果也保存在存储器中。另外,我们的各种文档、视频音乐等文件都是保存在存储器中。


1.1 存储器的分类

在这里插入图片描述

在计算机中的作用分类

  • 1> 主存储器,简称主存。CPU可以直接随机地对其进行访问,也可以和高速缓存器及辅助存储器交换数据。

  • 2> 辅助存储器,简称辅存,不能与CPU直接相连,用来存放当前暂时不用的程序和数据

  • 3> 高速缓冲存储器,位于主存和CPU之间,用来存放正在执行的程序段和数据

其中:
主存储器又可以分为RAM和ROM,RAM(Random Access Memory)是可读可写的,ROM(Read Only Memory)是只读存储器。RAM又可以分为静态RAM和动态RAM


主存储器和辅助存储器中间可以放上Flash Memory,常见的如我们的U盘。它是半导体存储器,速度比磁盘快,但是比主存储器慢。Flash Memory除了作为便携式存储器,还可以作为高性能计算机硬盘。Flash Memory还可以作为主存与辅存之间的缓冲器,由于主存辅存速度差异大,当主存需要辅存中的数据时,如果Flash Memory中有这些数据,就可以直接从Flash Memory中读取。


Cache放在出主存与CPU之间,速度很快,一般作为CPU与主存之间的缓冲。实际上Cache一般都是由静态RAM做的,它的速度大于主存。

按存储介质分类

   半导体存储器(SemiConductor Memory,SCM) 体积小、功耗低、速度快

   磁表面存储器(Magnetic Surface Memory,MSF) 非易失、价格低廉

   磁芯存储器:需要有硬磁材料、环状元件

   光介质存储器(Ferro electric Memory,FeM) 记录密度大

特点:半导体存储器是易失的,也就是说给存储器去掉电源,里面的信息就会消失。其余三种存储器是不易失的。

按存取方式分类

①存取时间与物理地址无关(随机访问)
------随机存储器 (RAM)在程序的执行过程中 可 读 可 写,存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存取单元的物理位置无关,主要用作主存或高速缓冲存储器。
------只读存储器(ROM) 在程序的执行过程中 只 读。可以在这类存储器中存放一些系统参数或系统程序,即使断电,内容也不会丢失
②存取时间与物理地址有关(串行访问)
------顺序存取存储器 磁带
------直接存取存储器 磁盘

对存储单元进行读/写操作时,需按其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)与直接存取存储器(如磁盘)。

按信息的可保存性分类:

断电后,存储信息即消失的存储器,称为易失性存储器,如RAM。断电后信息仍然保持的存储器,称为非易失性存储器,如ROM,磁表面存储器和光存储器。若某个存储单元所存储的信息被读出时,原存储信息被破坏,则称为破坏性读出;若读出时,被读单元原存储信息不被破坏,则称为非破坏性读出。具有破坏性读出性能的存储器,每次读出操作后,必须紧接一个再生的操作,以便恢复被破坏的信息。

1.2存储器的性能指标

存储器的性能指标,有3个主要的性能指标,存储容量,单位成本和存储速度

  • 1> 存储容量:存储字数*字长

  • 2> 单位成本:每位价格=总成本/总容量

  • 3> 存储速度:数据传输率=数据的宽度/存储周期

在这里插入图片描述

存取时间不等于存储周期,通常存储周期大于存取时间。因为任何一种存储器,在读写操作之后,总要有一段恢复内部状态的复原时间 

1.2 存储器的层次结构

存储器的层次结构与特性的关系

计算机中存储器的层次结构与特性的关系如下

其中,
①寄存器是做在CPU中的。但是,寄存器不仅CPU有,I/O端口也有。这些寄存器还可以分为两类,体系结构寄存器(机器指令可以直接对这些寄存器进行操作)和非体系结构寄存器(机器指令不可以直接对这些寄存器进行操作)。
②缓存的一部分是做在CPU中的
③主存+寄存器+缓存时放在主机里的
④磁盘、光盘、磁带时放在辅助存储器中。

存储层次

①主存-辅存层次:主存容量不够大,如果我们的程序够大,在主存中根本放不下。另外,我们经常需要放一些文档、视频、资料等数据在电脑中,这就需要辅助存储器。但是,程序的运行在主存中,因此需要用软硬件结合的方式将主层辅层构成一个存储层次。从应用程序员的角度来看,这个存储层次有主存的速度和辅存的容量和价格。在程序执行过程中,即使程序非常大,超过了主存的容量,应用程序员也不用去考虑如何把这个程序进行分割,也不用考虑要执行辅存中的程序该如何将其调入主存中,这些都由软硬件结合的那个结构来完成。


②缓存-主存层次:CPU和主存的速度存在较大差异,通过硬件的方法我们在它们中间加上一个缓存,也就是我们常说的Cache。缓存容量比储存小得多,功耗比主存大,但是速度比主存高很多。 缓存里面保存了主存中一些信息的副本,CPU可以通过访问缓存来直接访问主存。如果将CPU常用的数据和指令放在Cache中,计算机的速度将大大加快。


③缓存-主存层次是为了解决速度问题,因此让硬件去做许多事情。主存-辅存是为了解决容量问题,因此采用软硬件结合的方式。主存-辅存构成的整体一般叫做虚拟存储器,它的地址空间如何定义就是个问题,因此我们使用虚拟地址,在使用时由特定结构将其转化为物理地址。缓存-主存间的地址就是实际的物理地址

局部性原理

(1)时间局部性:现在正在访问的信息可能马上还会被访问到

(2)空间局部性:现在正在访问的信息,与之相邻的信息可能马上也会被访问到

二、主存储器

2.1概述

主存储器的基本组成

其中:
①存储体保存了数据、指令等信息。
②MAR保存了我们要访问的那个存储单元的地址,必须经过译码器之后才能选定指定的存储单元。
③MDR保存了我们要读出或写入的数据,控制电路就来控制是读还是写。如果是写入的话,就把MDR中的数据送到MAR指定的存储单元中。如果是读出,指定的存储单元内容将会被送到MDR

主存和CPU的联系

CPU和主存的连接信号分成了三类:数据总线、地址总线、控制总线
①数据总线完成主存与CPU之间的信息传输,因此数据总线直接连接在MDR寄存器上,是双向的,可能读出也可能写入。
②地址总线连接在MAR寄存器上,给出了要访问的内存地址,所以是单向的,从CPU送到主存。
③控制信号这里只给了两个,读和写,由CPU送到主存。后面还会接触到另外一个控制信号。

 主存中存储单元地址的分配

假设主存中的存储字长是32位,另外主存的编址单位是字节,每一个字节都有一个地址。在这种情况下,一个存储字是32位,一个字节是8位,都有一个地址。现在我们有一个8位的16进制数12345678H,每位16进制数是4位,8位16进制数就刚好是32位,即一个存储单元长度。这个数据如何在主存储器中进行存储?
①高位字节地址为字地址
将高位字节地址存放在低地址,低位字节地址存放在高地址,并且让高位字节地址位存储字地址。

低位字节地址为字地址
将低位字节地址存放在低地址,高位字节地址存放在高地址,并且让低位字节地址位存储字地址。

 

主存的技术指标

 2.2 半导体存储芯片简介

在这里插入图片描述

2.2.1半导体存储芯片的基本结构 

在这里插入图片描述

核心的结构就三大部分,存储矩阵、译码驱动、读写电路。同时还包含了许多接口,通过许多线与CPU等外部设备连接。CPU等外部设备通过单向的地址线给出地址,经过译码驱动电路去选择指定的位置。然后通过读写电路和数据线完成数据的处理。除了地址线和数据线,还包括一些控制线,如片选线和读写控制线。

2.2.2存储芯片片选线的作用

现在我们只有16K×1位的存储芯片,我们需要用这些芯片组成64K×8位的存储器。
解决方案:
16K×1表示我们的芯片容量是16K,每个存储单元保存1位的数据。如果我们用8个这样的芯片,对这8个芯片同时读写,就构成了8位。所以我们将这8个芯片分成一组,对这8个芯片相同的地址同时进行操作,这就构成了一个16位×8位的芯片。然后将这样的芯片布置4组,就构成了64K×8位的存储器。
我们来看下片选线:每一组8个芯片要同时进行工作才能够在每个芯片中读出或写入1位二进制信号,所以每一组的信号是连接在一起的。于是我们将64K空间进行划分:
0~16K-1,分配给第一组
16K~32K-1,分配给第二组
32K~48K-1,分配给第三组
48K~64K-1,分配给第四组
如果我要访问65535=64K-1,说明在第四组,其它三组的片选信号就是高电平,无效。于是最后一组芯片片选有效,对最后一组的8个芯片进行同时访问。

2.2.3半导体存储芯片的译码驱动方式

①线选法
现在地址线是4条,数据线是8条,说明芯片容量是2^4 \times8。输入是4根线,输出是16根线,给定一个输入,输出这端只有一个是有效的。
假设我的输入是0000,同时读写控制电路时读选通。0000通过地址译码器后,我们就知道去第1条线取得数据。

问题:假设我输入的地址线是10M条,那么地址译码器的输出端就有2^{10M} 条线,这时非常恐怖的,我们的存储芯片很难做到这么高的集成度。因此,对于一些容量稍大的半导体存储芯片,一般不用这种方式。
②重合法
线选法是将存储单元排布局一个线性的数组,而重合法是将存储单元布局成一个二维的阵列。我们将地址分成两部分,通常我们叫做行地址和列地址。行列地址分别进行译码,它们都只能有一条线是有效的。假设我们的数据线是1,行地址是全0,列地址是全0。于是一交叉,就得到第一行第一列的那个存储单元,并通过对应的线输出。

优点:如果我的地址线是20条,用线选法则地址译码器的输出是2^{20}=1M条线。如果用重合法,则行列地址分别是10条,行列地址译码的输出都是2^{10}=1K条,总共是2K条。2K远小于1M,这样就可以使得芯片集成度做的更高。

2.3 随机存取存储器(RAM)

在这里插入图片描述

2.3.1静态RAM(Static RAM,SRAM)

   特点:存储一位二进制数需要6个三极管(触发器工作原理)

         速度快、控制简单、容量小

Static RAM(静态随机访问存储器),简称SRAM是一种静态随机访问存储器。它使用触发器来存储和读取数据,每个触发器可以存储一个位,也就是0或1,与动态随机访问存储器(DRAM)不同,SRAM的存储单元不需要周期性地刷新,因此访问速度比DRAM更快。但它需要更多的芯片面积和能量消耗比DRAM更高,因此通常用于高速缓存和其他需要快速读写速度的应用程序

保存0和1的原理

保存0和1的方式很多,比如我们可以用个开关来表示,断开是0,闭合是1。也可以用熔丝来表示,熔丝断开是0,熔丝连接是1。但是一旦写入数据到熔丝中,就很难修改,特别是熔丝断开了,很难再熔合起来。大家学过数字电路,触发器就可以保存0和1。静态RAM就是使用触发器。

静态RAM基本电路构成

静态RAM基本电路的核心就是这个4根管子的双稳态触发器。两端(T1、T4)用于存储信息,一端就是触发器的原端,另一端就是触发器的非端。如果T1是1,那么T4就是0。如果T1是0,那么T4就是1。T5和T6用于控制对存储文件进行读还是写。当需要读写时,它们就连通。下面只是一个存储元件,做到芯片里绝对不止一个,因此虚线框中的部分会在上下两个方向进行分布。T7和T8就是这一列共有的开关,叫做列开关。由于是双稳态触发器,所以写操作时不光要在原端写入数据,还要非端写入这个数据的非。

静态RAM基本电路的读写操作

①读操作

SRAM的读操作包括以下步骤:

  1. 选择存储单元:SRAM中的每个存储单元都有一个地址,控制电路需要根据读操作指定一个地址,从而选择要读取的存储单元。

  2. 读取使能:控制电路将选择的存储单元的读取使能(Read Enable)信号置为逻辑“1”,以启动数据读取过程。

  3. 读取数据:存储单元的数据将从其输出端输出,并被传送到控制电路中,然后输出到数据总线上。


要进行读操作,我们要给出行选信号,控制T5和T6,让其打开。然后还要给出列选信号,让T7和T8打开。然后现在是读有效,A上面的数据就通过T6这个晶体管送到位线上。同时,T8也是导通的,于是数据继续向前送到数据总线上。我们知道T5和T6打开后,触发器的非端也在进行数据输出,而列选择信号T7也是打开的,于是送到T7这里。但是无法继续向下了,因为没有使能写操作。

写操作

SRAM的写操作包括以下步骤:

  1. 选择存储单元:SRAM中的每个存储单元都有一个地址,控制电路需要根据写操作指定一个地址,从而选择要写入的存储单元。

  2. 输入数据:将要存储的数据送入数据输入端。

  3. 写入使能:控制电路将选择的存储单元的写入使能(Write Enable)信号置为逻辑“1”,以启动数据写入过程。

  4. 写入数据:输入的数据将被写入选择的存储单元中。在写入操作期间,存储单元的写入使能信号被置为逻辑“1”,同时控制电路会关闭所有未被选择的存储单元的写入使能信号,以避免误写入。

写操作与读操作类似,给出行选信号和列选信号,打开T5、T6、T7、T8。此时写选择有效,于是数据从写放晶体管中间那条线输入,左边是数据的非,右边是数据,然后向上分别传输至触发器的非端和原端。

需要注意的是,在读取操作期间,控制电路会关闭所有未被选择的存储单元的读取使能信号,以避免干扰和误读。此外,由于SRAM使用的是触发器来存储数据,因此每个存储单元的面积和成本相对较高。虽然SRAM的读取速度比动态随机访问存储器(DRAM)更快,但它们的功耗也更高。

静态RAM芯片举例----Intel 2114

外观特性如下所示

这个芯片容量是4K,我们可以将其布局成64x64的一个阵列。使用前面的重合法,可以知道64/1=64个芯片构成一组,前面我们讲过了重合法控制一条数据线输出,而Intel 2114存储芯片的数据线是4条,如何实现一个列选信号控制4列数据?

Intel 2114 RAM 矩阵 (64 × 64) 的读操作
我们先将这64列分成4组,每组16列。行地址是6位,译码过后可以产生0到63共64个行选信号。4位列地址产生16位列选信号,每一个列选信号控制了每一组当中的一列。比如第0个列选信号控制了第1组、第2组、第3组、第4组中的第0列 。假设现在输入的行列地址分别是6个0和4个0,这时候:
①第一行所有单元被选择。
②经过列地址译码,每一组的第0列被选中
③如果是读操作,则WE和CS有效。第一行中每一组的第0列数据通过列控制管和读写电路输出到相应的数据线上,这就完成了读操作。

 Intel 2114 RAM 矩阵 (64 × 64) 的写操作

静态 RAM 读 时序

静态RAM(SRAM)的读时序可以分为以下几个阶段:

  1. 选择存储单元:控制电路根据读操作指定的地址,选择要读取的存储单元。

  2. 读取使能:控制电路将选择的存储单元的读取使能信号置为逻辑“1”,以启动数据读取过程。

  3. 地址稳定时间:在读取使能信号被置为逻辑“1”之后,需要等待一段时间,使得地址信号能够稳定在存储单元的地址线上。

  4. 存储单元输出时间:在地址稳定时间之后,存储单元的数据将从其输出端输出,并被传送到控制电路中。

  5. 数据保持时间:在存储单元输出时间之后,需要等待一段时间,使得数据能够在控制电路中保持稳定。

  6. 数据获取时间:在数据保持时间之后,控制电路将读取到的数据输出到数据总线上。

需要注意的是,以上各阶段所需的时间与SRAM的具体参数、电路设计和工作环境等因素有关,因此不同的SRAM芯片可能具有不同的读时序。

在这里插入图片描述

 静态 RAM (2114) 写 时序  

2.3.2动态RAM(DRAM

动态RAM(Dynamic RAM,DRAM)

   特点:存储一位二进制数仅需要1个三极管(靠三极管的极间电容存储数据)

         速度略慢、控制复杂、需要刷新和重写操作、容量大

DRAM(Dynamic Random Access Memory)是一种动态随机访问存储器。DRAM的存储单元由一个电容器和一个访问晶体管组成,相对于SRAM来说存储单元的面积和成本更低。然而,由于电容器中的电荷会逐渐泄漏,因此DRAM需要周期性地进行刷新以保持存储的数据不丢失。DRAM相对于SRAM来说更加省电和占用面积较小,但它的读写速度较慢。因此,DRAM通常用于主存储器和其他需要较大存储容量的应用程序

保存0和1的原理

动态RAM使用电容来保存0和1。电容中保存了电荷,则我们认为存储了1。如果没有电荷,则被认为保存了0。

动态RAM的基本电路结构

①三管动态RAM
动态RAM的一种基本电路结构如下所示,三管动态RAM。其中,C g 这个电荷保存0/1。T1、T2、T3都是控制管,读选择线有效则T2导通,写选择线有效则T3导通,数据通过T3向电容写入。


 

单管动态RAM
另外一种结构只有一个晶体管,叫做单管动态RAM

动态RAM的基本电路的读写操作

三管动态 RAM 芯片 (Intel 1103)

三管动态随机存储器(Dynamic Random Access Memory,DRAM)芯片是一种采用三个晶体管构成存储单元的DRAM。其中,存储单元由一个电容器和一个访问晶体管组成,另外还有一个选择晶体管用于选择存储单元。

三管动态 RAM 芯片 (Intel 1103) 读

三管DRAM的读操作可以分为以下步骤:

  1. 地址输入:将要读取的存储单元的地址输入到DRAM芯片的地址引脚上。

  2. 行选通:将行地址的低位送入行地址译码器,行选通信号使选择晶体管导通,将存储单元的电容连接到一个放大器。

  3. 放大:由于电容器上储存的电荷很小,不能直接用于后续的读取操作,因此需要通过放大器将电荷放大。这里采用一个带负反馈的比较器放大器,通过比较电容的电压和参考电压的大小,输出相应的比较信号,并通过反馈作用于比较器输入端,从而实现放大。

  4. 读取:将放大器的输出送入数据输入/输出引脚,读取存储单元中储存的数据。

  5. 关闭访问:完成读操作后,关闭访问,等待下一次读写操作。

1

10位的地址线,说明容量是1K,每次读出或写入1位数据。行地址经过译码后产生的信号每一行对应两个,一个是读选择线,一个是写选择线。如果我们给出的行地址是00000,进行读操作,则第0行所有单元被选中。如果列地址也是00000,则第0行第0列交叉的那个单元被选中,通过读数据线将数据送到读写控制电路上,并向外进行输出。在这个电路中,有三角形的刷新放大器,这是因为电容会漏电,经过一段时间后电容上的信号会消失。所以使用刷新放大器就是每经过一段时间对电容里的信号进行重写。

三管动态 RAM 芯片 (Intel 1103) 读

三管DRAM的写操作可以分为以下步骤:

  1. 地址输入:将要写入的存储单元的地址输入到DRAM芯片的地址引脚上。

  2. 行选通:将行地址的低位送入行地址译码器,行选通信号使选择晶体管导通,将存储单元的电容连接到一个放大器。

  3. 输入数据:将要写入的数据通过数据输入/输出引脚送入放大器。

  4. 放大:与读操作类似,由于电容器上储存的电荷很小,不能直接用于后续的写入操作,因此需要通过放大器将电荷放大。这里采用一个带负反馈的比较器放大器,通过比较电容的电压和参考电压的大小,输出相应的比较信号,并通过反馈作用于比较器输入端,从而实现放大。

  5. 写入:根据比较器放大器的输出信号,通过一个驱动电路将写入数据写入到存储单元中的电容器上。

  6. 关闭访问:完成写操作后,关闭访问,等待下一次读写操作。 

写操作
现在我们要进行写操作,行地址是11111,列地址是00001,则第31行第1列的单元被选中。数据通过D端进行输入,经过读写控制电路通过写数据线将数据进行写入。 

单管动态RAM芯片(Intel 4116)

外观特征

这里面有些不一样,它是16Kx1位,说明需要14根地址线。但是只有7根地址线,这14位地址实际上是经过两次进行操作。第一次接收到7位行地址,放到行地址缓存器中。第二次接收到7位列地址,放到列地址缓存器中。在右侧有个I/O缓存器,完成输入输出数据的缓存。两端连接了数据输入寄存器和数据输出驱动,完成数据输入输出。这个芯片上面还有个控制器,这个控制器以行选通信号、列选通信号、读写控制信号作为输入,产生行时钟、列始终、写时钟,控制芯片内部的读写操作。

读操作

芯片16K个基本单元电路被放在128行128列上。在这个电路中,横的方向是列,竖的方向是行。在63-64行之间,每一列都有个读放大器,这是个跷跷板电路。跷跷板电路是指如果将其中一段强制设置为1,另外一段就会成为0,即左右两侧电平相反。如果我的行地址是0111111,则第63行对应的行选择线有效,所有的晶体管被打开,电容中保存的信息被送出到读放大器的左侧。如果列地址是0000000,则第0列被选中,列选信号有效,对应的晶体管打开。读放大器右侧的数据通过晶体管送到读写线上,然后送到I/O缓冲、读出驱动。可以看出输出信号与原信号相反,因此,在读放大器右侧电容存储0/1的逻辑也要相反。比如读放大器左侧是有电为1,没电为0,则右侧应该是有电为0,没电为1。
 写操作

动态 RAM 时序

2.3.3动态RAM刷新

在这里插入图片描述

电容做得非常小,很容易漏电,在一段时间内我们需要对其信息进行再生。刷新与行地址有关,即每次刷新是刷新一行所有的电容

刷新与行地址有关

①集中刷新
把刷新的这段时间集中在相对集中的一段时间内。我们假设存储单元是128x12的矩阵,存取周期是0.5us,对所有的电容进行一次刷新的周期是2ms。2ms也就是4000个存取周期,前面的3872个周期可以供CPU、I/O对动态RAM进行读出或写入,后面这128个周期专门用于对芯片的刷新操作。这128个周期中,无论是I/O还是CPU,都无法与芯片进行信息交互,这段时间叫死区

 以128x128矩阵为例,存取周期假设为1us。这个存储周期就是下面的tc,它包含了tM和tR,tM是专门用于数据存取的时间,为0.5us,tR专门用于刷新一行电容。这样看来,每一个us我们就刷新一行,128个us我们就将这128行刷新完了。2ms内,我们将所有行刷新了2000/128=15.6次,这实际上是一种过度刷新,动态RAM不需要这么频繁的刷新。虽然没有死去,但是读写周期变成原来两倍,性能下降

 ③分散刷新与集中刷新相结合(异步刷新)
把2ms分成128份,每15.6us刷洗一次。相对于单独的这15.6us,这时集中刷新。相对于整个2ms,这是分散刷新。这样每2ms所有电容刷新一次,死区仅0.5us,如果将死区安排得好,如安排在CPU进行指令译码的时候,就不会出现死区。

2.3.4动态 RAM 和静态 RAM 的比较

动态 RAM 和静态 RAM 的比较集成度:动态RAM每一个单元电路非常简单,包含了1个晶体管1个电容。静态RAM的单元电路比较复杂,包含了6个晶体管。所以动态RAM集成度更高
芯片引脚:动态RAM行列地址可以分别进行传输,地址线条数可以减少为原来的一半,芯片的管脚数也就减少。而静态RAM为了速度,不会分别传输行列地址再进行译码,这样比较花费时间。
功耗:DRAM只是对电容充放电,而SRAM会对一些晶体管持续供电
由于SRAM速度快,集成度低,所以用来做缓存Cache。DRAM用来做主存,拔出你的内存条,上面的那些芯片就是DRAM芯片。
在这里插入图片描述

应用范围:一般来说,主存广泛使用动态RAM,高速缓存采用静态RA

(1)静态RAM(Static RAM,SRAM)

   特点:存储一位二进制数需要6个三极管(触发器工作原理)

         速度快、控制简单、容量小

(2)动态RAM(Dynamic RAM,DRAM)

   特点:存储一位二进制数仅需要1个三极管(靠三极管的极间电容存储数据)

         速度略慢、控制复杂、需要刷新和重写操作、容量大

三、只读存储器(ROM)

在这里插入图片描述

 各类别的只读存储器

3.1掩模ROM(MROM)

行列选择线交叉处有 MOS 管为“1”
行列选择线交叉处无 MOS 管为“0”

3.2PROM(一次性编程)

这是一种破坏性的编程,如果程序有错误只能重新购买芯片进行烧写 

3.3EPROM(多次性编程)

每次使用紫外线对浮动栅进行擦洗。芯片上有个石英窗口,紫外线通过这个窗口对浮动栅的驱散操作。

3.4EEPROM(多次性编程)

电可擦写
局部擦写
全部擦写

3.5Flash Memory(闪速型存储器)

EPROM----价格便宜,集成度高
EEPROM----电可擦洗重写
比EEPROM----快,具备RAM功能

四、存储器与CPU的连接

CPU执行的指令、需要的数据、程序运行的结果都保存在主存储器中,因此必须实现CPU和主存储器的正确连接才能实现信息交换。通常情况下CPU的地址线条数较多,寻址空间的范围比较大,要构成一个主存储器需要多个存储芯片共同组成。

4.1.  存储器容量的扩展 

位扩展(增加存储字长)

假设我们手上有1K×4位的存储芯片,用几个这样的芯片如何组成1K×8位的存储器?
我们的芯片:10根地址线,每个存储单元提供4位数据
构成的芯片:10根地址线,每个存储单元提供8位数据

使用两个芯片,使用相同的片选信号CS(两个芯片同时被选中进行工作)、读写信号WE(每次从两个芯片相同的位置取4位数据)。地址线还是10根,将地址线输入到两个芯片的地址管脚。数据线是8根,每个芯片占4根。

字扩展(增加存储字的数量)

假设我们手上有1K×8位的存储芯片,用几个这样的芯片如何组成2K×8位的存储器?
我们的芯片:10根地址线,每个存储单元提供8位数据
构成的芯片:11根地址线,每个存储单元提供8位数据
两个芯片的地址管脚、数据管脚分别与10条地址线、8条数据线相连。两个芯片不能同时工作,否则存储字长就为16位了。于是我们将2K×8的存储器分成两个1K×8的芯片,由于还剩余了1条地址线,根据A10是0/1来决定使用第一个还是第二个芯片。这样,A 10 就是这两个芯片的片选信号。

字、位扩展

假设我们手上有1K×4位的存储芯片,用几个这样的芯片如何组成4K×8位的存储器?
我们的芯片:10根地址线,每个存储单元提供4位数据
构成的芯片:12根地址线,每个存储单元提供8位数据
需要(4×8)/(1×4)=8个芯片。首先用两个1K×4位的芯片构成1个1K×8位的芯片,这两个芯片的片选是相同的。一共需要4组这样的芯片构成4K×8位的芯片。剩余的2根地址线用来做片选信号,根据00/01/10/11判断选择哪个芯片。
第一组芯片:000000000000~001111111111
第二组芯片:010000000000~011111111111
第三组芯片:100000000000~101111111111
第四组芯片:110000000000~111111111111

4.2存储器和CPU的连接

例1:

题目描述: CPU有16根地址线(寻址范围为2^{16}=64K,8根数据线(一次传输8bit数据),用MREQ作为访存控制信号(低电平有效:低电平时访问存储器,高电平访问I/O)。存储芯片RAM有1K×4位、4K×8位、8k×8位的,ROM有2K×8位、4K×8位、8k×8位的。现在我们要构成一个存储体,要求从6000到67FF是系统程序区,从6800到6BFF是用户程序区。同时,使用138译码器。
思路:
思路:
①写出对应的二进制地址码
地址线是16根,所以写成16位。
对于系统程序区,起始地址6000就是0110 0000 0000 0000。结束地址67FF就是

0110 0111 1111 1111。所以,存储空间就是

0110011111111111 − 0110000000000000 = 2^{11}=2K
对于用户程序区,起始地址6800就是0110 1000 0000 0000。结束地址6BFF就是

0110 1011 1111 1111。所以,存储空间就是

0110101111111111 − 0110100000000000 =2^{10}=1K

② 确定芯片的数量及类型
系统程序区选用ROM,只读。由于有2K×8的芯片,于是选用1片2K×8的芯片
用户程序去选用RAM,可读可写。由于没有1K×8的芯片,我们使用2片1K×4的芯片,将片选信号连接起来即可。

③分配地址线
对于2K×8的ROM,A0-A10作为芯片需要的内部地址,A11-A15作为芯片选择信号。

对于2片1K×4的RAM,A0-A9作为芯片需要的内部地址,A10-A15作为芯片选择信号。

例二:

题目描述: 假设同前,要求最小4K为系统程序区,相邻8K为用户程序区。

思路:
①写出对应的二进制地址码并确定芯片数量
系统程序区是4K,于是使用A0-A11,从0000 0000 0000 0000到0000 1111 1111 1111。由于有4K×8的ROM,所以使用1片4K×8的ROM。

用户程序区是相邻的8K,即从0001 0000 0000 0000开始。0001 0000 0000 0000到0001 1111 1111 1111是4K,于是再来1个4K构成8K,另外4K就是0010 0000 0000 0000到0010 1111 1111 1111。

在这里插入图片描述

②分配地址线
由于都是4K×8的芯片,于是需要的地址输入就是A0-A11我们可以从 A11到A12之间划开。后面的A0-A11给每一个芯片,前面的作为芯片选择信号。

③分配片选信号和片选逻辑

将A12-A15作为输入分配给C、B、A。G1(高电平有效)接电源(也可以将A15 接个非门再接上)、G2A (低电平有效)接A15 ,ROM编程端接地,数据线是8根,方向是单向的。RAM数据线是8根,方向是双向的,并街上读写信号。

在这里插入图片描述

五、存储器的校验

5.1 校验原理

为什么要对存储器的信息进行校验?

以内存为例,它是电子设备,信息保存在电容中。如果是静态RAM,信息是保存在一个4管的触发器中。如果内存所处的电磁环境比较复杂或是在空间环境下受到带电粒子的打击,就可能会造成电容的充电/放电或触发器的翻转,存放在存储器中的信息就可能会出错。存储器中保存了程序运行需要的数据、代码等,如果不对保存的信息进行校验,就会导致程序的运行错误,引发程序失效和一些更大的后果。因此,我们需要对存储器的信息进行校验。现在不仅是一些安全关键系统需要对存储器进行校验,我们用的台式计算机、笔记本、手机、Pad里面保存的信息都采用校验技术。

为了能够校验出信息是否正确,如何进行编码?

例子:
①假设我们现在有这样一个合法代码集合{000,001,010,011,100,101,110,111},其中保存了从000到111的连续变化。现在假设000出错变成了001,而001仍然是集合中的合法代码。所以它是:检0位错、纠0位错

在这里插入图片描述

②下面我们对代码进行改造,现在的合法代码集只包含了4个代码{000, 011,101,110},编码特点是1的个数为0个或偶数个。如果000出错变成100,显然可以检测出错误,因为100不是合法代码集的代码。但是不能知道是那位错误,因为000、101、110错误一位都可以变成100。所以它是:检1位错、纠0位错
在这里插入图片描述

③假如我们采用3倍冗余的方式来存储计算机中的0和1,例如我们用000表示0,111表示1。 假设现在我收到了100,说明出错了,而存储器出错故障较多,可能是1位错、2位错、3位错。但是1位错的概率最大,甚至超过90%。因此根据收到的100,我们可以得到原始保存的应该是000。所以它是:检1位错、纠1位错
在这里插入图片描述

④假如我们采用4倍冗余,用0000表示0,1111表示1。此时如果收到1000,可以判断出原始值为0000,可以纠正1位错。如果收到1100,我们可以知道错了2位,但是无法纠正2位错误。所以它是:检2位错、纠1位错

在这里插入图片描述

⑤假如我们采用5倍冗余,用00000表示0,11111表示1。如果接受到11000,可以知道原始值是11000,检2位错,纠2位错。如果收到11100,检测不出3位错。所以它是:检2位错、纠2位错

在这里插入图片描述

纠错或检错能力与什么因素有关?

与任意两组合法代码之间二进制位的最少差异数有关。从上面5个例子来看,1个合法代码变到另外一个合法代码分别要改变:0、2、3、4、5位。我们将任意两组合法代码之间二进制位的最少差异数称为编码的最小距离,编码的纠错 、检错能力与编码的最小距离有关。检错能力、纠错能力与编码最小距离的关系如下:
L − 1 = D + C ( D ≥ C )
L —— 编码的最小距离
D —— 检测错误的位数
C —— 纠正错误的位数

5.2 汉明码

①汉明码采用奇偶校验
奇校验:1个校验位+原来的数据位,合在一起,使得代码中1的个数是奇数个。
偶校验:1个校验位+原来的数据位,合在一起,使得代码中1的个数是偶数个。

②汉明码采用分组校验
假设现在我们有8位的数据00100011,采用偶校验,则在前面加上个1,结果为100100011。当把数据取出来发现1的个数为奇数时,就知道有1位错了,但是不知道是这9位中哪一位错了。现在我们可以采用分组的方式来更加精确地定位出错误在哪一片区域。比如现在我们采用2位校验位,将数据分成2组,即0010和0011。加上校验位后,分别为10010和00011。如果收到数据时发现前面5位中1的个数为奇数,就知道前面5位有错。如果后面5位中1的个数为奇数,就知道后面5位有错。
在这里插入图片描述

③汉明码的分组是一种非划分方式
上面的分组方式是基于划分的方式,组和组之间没有重叠,各个组的数据合在一起就是要传输的数据。汉明码是一种非划分方式,组和组之间是有交叉的,即有些位属于多个组,有些位属于1个组。
假设现在我们有1234567这7个数据,要分成3组,每组有1位校验位,共包括4位数据位。我们将1、2、4分别分给三个组,它们是各个组所独有的。然后再各个圈交叉的地方填上它们的和,最后将7填到中间的地方。
在这里插入图片描述

可以看出:有三组、每组4个数据、采用偶校验(每组数据和为偶数)。 

汉明码的组成

例4 

题目描述: 求 0101 按偶校验配置的汉明码

思路:
①由于n=4,根据2^k >= n + k + 1k=3,即需要分3组(3个校验位)

②对汉明码进行排序:
第1组、第2组、第3组的校验码C1,C2,C3分别位于2^0=1,2^1=2,2^2=4位上

C1检测的g1小组包含第 1,3,5,7位,由于是偶校验,357位是011,所以C1是0

C2检测的g2小组包含第 2,3,6,7位,由于是偶校验,367位是001,所以C1是1

C3检测的g3小组包含第 4,5,6,7位,由于是偶校验,567位是101,所以C1是0

在这里插入图片描述

③所以0101的汉明码为0100101 

练习

汉明码的纠错过程

例5

  练习

 可以看出第4位是校验位,不是我们需要的数据,可不纠

  练习

六、提高访存速度的措施

在这里插入图片描述

 前面我们说过,CPU的计算速度每年增加约50%,而内存的访存速度要10年才能增加50%,所以不管你的CPU多块,只要你的内存访存速度过慢,也无法提高整机的速度。

提高访存速度的措施:

①采用高速器件:采用更高速的器件,让内存速度更快,带宽更大,访问延迟更小。
②采用层次结构,即Cache-主存结构:将最常用的信息放在Cache中,Cache由静态RAM做的,速度快,集成度低,功耗大。
③调整主存结构

这一节我们主要学习如何调整主存结构。在之前我们假设主存中的一个存储字长等于机器字长,也就是说CPU在执行一条指令的时候,一次只能从存储器中取出一条指令。如果是取数据,就只能取出和机器字长相等长度的数据。

单体多字系统

我们可以将存储器的存储字长进行加长。假设CPU的机器字长是16位,我们可以将存储器的存储字长设置为64位。这样一次就可以取出4条指令或4倍的数据,然后将这些指令和数据放到数据寄存器中,下次需要时就从寄存器中取出。

优点:增加了存储器的带宽
缺点:①CPU如果要向存储器写一个16位的字, 它要将这个字先写到单字长寄存器中,然后再写道4个字长的数据寄存器中,之后再写到存储器中。这就会导致可能我们只需要写16位,但是另外48位也会被写到给定的单元,导致原来的那48位数据被修改掉。

②如果我们要取的指令或数据不是连续存放在相邻的地址中,现在我们一次取出4条指令,但是这4条指令中的第1条指令就是跳转指令,而且跳转的范围较大,超出了这4个字的范围,那我们取出来的这4条指令只有1条是有用的。

多体并行系统
----高位交叉        顺序编址         各个体并行工作

假设我们现在有4个存储体,我们对4个存储体构成的存储器进行编址。假设每个存储体是16个单元,对于M0,地址就是0000~1111,然后再在前面加上两位00,用于标志是第几个存储体。总结,用6位来表示地址,前面2位是体号,后面4位代表体内地址。如果每一个存储体都有自己的控制电路,如MAR、MDR、地址译码器,那么4个存储体就能进行并行的工作了。

 问题:如果用户在使用一个程序,而程序在计算机中是按序存储的,比如现在有15条指令放在00 0000~00 1111。这就会导致CPU会一直去访问第一个存储体,使其非常繁忙,而后面几个存储体没有被并行运用起来。
总结:上面的高位交叉看着很熟悉,实际上就是我们之前学的存储器的容量扩展,所以它适用于容量扩展,不适用于速度扩展

----低位交叉        各个体轮流编址

现在我们改变编码方式,横向进行编码。这样的话,最低的两位就代表体号,高4位就代表体内地址。假设现在我们是执行一段程序,有4条指令,他就是横向存储在4个存储体中,0000 00,0000 01,0000 10,0000 11

低位交叉的特点

在不改变存取周期的前提下,增加存储器的带宽

设四体低位交叉存储器,存取周期为T,总线传输周期为符号τ,为实现流水线方式存取,应满足T=4τ,连续读取4个字所需的时间为T+(4-1)τ

总结

高位交叉用于存储器容量扩展
地位交叉用于存储器带宽和访问速度提高

高性能存储芯片

(1) SDRAM (同步 DRAM)
在系统时钟的控制下进行读出和写入,CPU 无须等待
(2) RDRAM
由 Rambus 开发,主要解决 存储器带宽 问题
(3) 带 Cache 的 DRAM
在 DRAM 的芯片内 集成 了一个由 SRAM 组成的Cache ,有利于 猝发式读取

提高访存速度的措施

(1)多端口RAM

   两套或多套独立的读写逻辑,可并行操作

(2)单体多字

   一次访存,同时读出或写入多个存储字(提高了访存带宽)

   如连续操作相邻的地址单元,则效果明显,如连续操作跳跃的地址单元,效果不明显

(3)多体并行

   多个存储体操作,并行效率高,但控制复杂

   分为高位地址交叉和低位地址交叉两种模式

访存优先级原则:

*  易发生代码丢失的优先级高       (一般来说I/O操作>CPU操作)

*  严重影响CPU工作的优先级高    (一般来说写操作>读操作,不是绝对的,看具体情况)

补充

七、高速缓冲存储器

在这里插入图片描述

 7.1 Cache概述

为什么需要高速缓冲存储器

CPU的速度比存储器的速度快很多,而CPU执行程序时要对存储器进行数据、指令等信息的读取和写入,这就导致了不管CPU速度有多快都只能空等。因此,在主存和CPU之间加上一个Cache,存放经常要读写的数据和指令。对于哪些是经常要使用的数据和指令,这就涉及程序结构设计中的程序访问的局部性原理。
在这里插入图片描述

程序访问的局部性原理

时间的局部性: 当前正在使用的数据和指令在不久的将来还会被使用到,我们就应该将它们放到Cache中去
空间的局部性: 当前正在使用的数据和指令在不久的将来,相邻的指令和数据就可能会被用到,我们就将它们和相邻的数据与指令放到Cache中去
数据交换单位: Cache和主存之间数据交换的单位是块,这个块既包括了正在使用的数据和指令,也包括了相邻的指令和数据。块的大小要通过实验的方式来确定

在这里插入图片描述

7.2 Cache的工作原理 

在这里插入图片描述

主存和缓存的编址

左边是主存,将其划分为M个块。右边是Cache,将其划分为C个块,C远小于M

主存: 当我们将主存分成若干块后,CPU给出的内存地址可以分成两部分,一部分是块内偏移地址,它的位数决定了块的大小。比如说一个块包含了16个字节,并且内存的编址单位是字节,那么块内地址部分就是4位。剩余的部分就是主存的块编号。
Cache: Cache的地址也分成了块内地址和缓存块号,但是在实际应用中,Cache的地址意义不大,也不需要真正形成Cache的地址。Cache中还有标号,标记了主存块和Cache块之间的对应关系。当主存将块送入到Cache中时,就可以把主存块号写到标记中。将来CPU给出一个内存地址,希望在Cache中访问到这个数据,首先要确定这个块是否已经被送到Cache中,于是就将主存块号和Cache中的标记进行对比。如果对比成功且这个块是有效的,就可以直接获取这些信息,速度就得到极大的提高。
注: 主存和缓存按块存储和传输,块的大小相同,块内地址也完全一样不需要任何转化。

命中和未命中

缓存共有 C块,主存共有 M 块,M > > C 。所以不是每次CPU到主存中访问的数据都能在Cache中找到,这就引出了命中和未命中的概念。
在CPU访问主存时,如果要访问的块已经放到了Cache中,我们就称为命中,主存块和缓存块就建立了联系,用标记记录与某缓存块建立了对应关系的主存块号。反之,如果没有放到Cache中并必须去主存中获取数据,就叫未命中

命中率

计算方式:我们用命中率来评测命中指标,命中率就是CPU欲访问的信息在Cache中的比率。比如访问Cache 40次,访问主存10次,那么命中率就是40/(40+10)=80%。


影响因素:命中率与许多因素有关,我们主要讨论Cache的容量与块长这两个因素。
----不难理解,如果Cache容量足够大,和主存大小相等,那么可能第一次要访问的数据没在Cache中,以后访问的所有数据都会被命中。


----块的长度过小的话,我们把一个块取到Cache中,计算机没执行几条指令这个块里的信息就被用光了,Cache还要从内存中将下一个块取出来,这就没有充分利用程序的局部性原理。块太大也不行,因为Cache大小是有限的,块太大说明Cache中容纳的块的个数就太少。在程序执行过程中,可能一个很大的块里面只有部分信息是有用的,以后需要有用的信息又要去内存中取,这也会影响Cache的命中率。


实际情况: 一般来说,Cache块的大小取4~8个字,实际上块的大小和一个存取周期内从主存调出的信息长度是有关系的。
CRAY_1 16体交叉 块长取 16 个存储字
IBM 370/168 4体交叉 块长取 4 个存储字

Cache-主存系统的效率

Cache-主存系统的效率又叫Cache和主存访问效率,用 e ee 来表示,与命中率有关。

在这里插入图片描述

CPU对主存的访问命中时是从Cache中取到数据和指令,不命中时是从主存中取到数据和指令,平均访问时间就是平均CPU取到一次指令和数据的时间。设 Cache 命中率 为 h,访问 Cache 的时间为 tc   访问 主存 的时间为 tm 在这里插入图片描述

e 的最小值:命中率为0,结果为 tc/tm
e 的最大值:命中率为1,结果为 1

7.3 Cache的基本结构

Cache的基本结构

Cache的使用流程:CPU要访问内存,通过地址总线给出地址,这个地址包括块号和块内地址。由于Cache和主存都采用块进行存储,于是块内地址就直接送到Cache中去。然后将块号送到主存Cache地址映射变换机构,确认是否命中。如果命中,给出当前块保存在Cache中哪个块内。如果没有命中,就去查看Cache中是否还有空间装入这个主存块。如果有,访问主存块,将其放入Cache中。如果没有,Cache替换机构决定哪一块需要退回到主存中,然后将主存中我们要使用的这一块放到Cache中去。
其中:
----主存Cache地址映射变换机构有两个功能:①地址映射。实际上就是一个规则,规定了主存中的一个块如果要放到Cache中,它可以放到Cache中的哪些块中。②变换。实际上就是把主存的块号转换成相应的Cache块号。
----在主存和Cache中有一条直接通路,完成信息交换。
----发生未命中时,主存先将CPU需要的数据指令通过数据总线送到CPU去,然后再通过直接通路送到Cache中去。

7.4 Cache的读写操作

读操作的流程图如下。CPU发出访问地址,由主存Cache地址映射变换机构来确定是否命中。如果命中,从Cache中直接取出信息送到CPU去。如果没有命中,有两条路需要走。其一是将相应信息从主存取出来送到CPU,其二是看Cache是否满,如果满了,就启用替换算法,腾出一个块,让这个主存块放进去,如果没满就直接将主存块放进去。

写操作

Cache是内存中某些块的缓存,Cache中有的信息再内存中也有。读操作不对Cache中任何信息进行修改,主存和Cache信息保持一致。写操作会造成Cache和主存信息不一致,比如只对Cache写,不对主存写。
①写直达法(Write–through)
写操作时数据既写入Cache又写入主存,写操作时间就是访问主存的时间。
优点:这种策略保证主存和Cache数据一致,所以当Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现。
缺点:可能会导致CPU对同一个内存单元进行反复写。比如说我们执行一个求和程序,这个和保存在某一个内存单元中。执行过程中可能要多次对这个和进行累加,每次累加都要访问相同的存储单元,造成Cache和内存频繁的信息交互。
②写回法(Write–back)
写回法允许在一段时间中,Cache内容和主存内容不一致。CPU对某一个内存单元执行写操作时,如果内存单元所在的块已经被取入到Cache中,它就只对Cache进行写,对内存内容不进行更新,直到这个Cache块退出Cache后才对内存进行写操作。写操作时间就是访问Cache的时间。Cache块退出时,被替换的块需写回主存,增加了Cache 的复杂性。这种方法保证不了主存和Cache数据的实时一致性。对于一些多处理器的计算机,每个处理器都有自己的Cache,内存的一个块在各个处理器的Cache中都有副本,这就会导致各个副本间的一致性问题。

7.5 Cache的改进

八、Cache – 主存的地址映射 

在这里插入图片描述

所以地址映射就是主存中的任意一块如果要加载到Cache中,可以加载到Cache中的哪些块。根据映射方法不同,可以分为直接映射、全相联映射、组相联映射

8.1 直接相联映射 

直接相联映射:主存中任意一个给定块只能装载到某一个指定的Cache块中。

8.2 全相联映射

全相联映射:主存中任何一个块可以被放入Cache中任何一个块的位置,只要Cache还有空隙位置

操作流程:CPU要访问一个主存地址,首先要确认对应的主存块是否被调入Cache中。如果已经调入,它可能在Cache中任意一个块中,所以主存地址前面部分的主存字块标记要和Cache中所有字块的标记进行对比。如果有相等,就命中,否则就没命中,就有可能发生替换操作。
优点: Cache的利用率高
缺点: ①这个比较时需要同时进行,电路比较复杂,速度较慢②参加比较的位数也比较长,Cache每个字块相应的标记都要保存区域号和块号,共t+c位,比较器长度较长。

8.3 组相联映射

组相联映射: 将Cache的块分成若干个组,每个组可以包含2、4、8、16…块。

操作流程: 具体做法与直接相联映射相似,把主存储器中的字块也进行分区,每个区的大小和Cache中的组数相等。即Cache被分成了多少组,主存储器的每个区就包含了多少个块。主存中每个区的第0块可以放到Cache中第0组的任何地方。
优点: 和直接相联映射相比,一个块有多个位置,即使其中一个位置被占用,另外的位置是空的也可以放进去。和全相联相比,如果找某一个内存块是否被调入到Cache中,我们只需要确定它的区号,然后去对应的组比较那几个块的标记。
总结: i = j % Q i = j\%Qi=j%Q,某一主存块 j jj 按模 Q QQ 映射到缓存的第 i ii 组中的任一块

8.4总结与应用

总结

直接:某一主存块只能固定映射到某一缓存块(不灵活)
全相联:某一主存块能映射到任一缓存块(成本高)
组相联:某一主存块只能映射到某一缓存组中的任一块(折中)

应用

①靠近CPU的地方,我们要求Cache是高速度,在这一层次就可以采用直接相联或者路数较少的组相联。
②中间的一些层次可以采用组相联的层次,如2路、4路、8路组相联
③距离CPU最远的那些Cache层次可以采用全相联的方式,因为对速度要求就较低,对利用率要求较高

例题

例题一

 例题二

8.5替换算法

前面介绍了Cache的映射,给出了一个内存块被放入Cache可以放入到哪些位置。如果发现所有可以放入的地方都满了,必须有一个位置的字块被替换出来,让我们需要的内存块放进去。相应的替换算法常常有以下两种:

①先进先出(FIFO)算法
最先被放入Cache中的那个块它的内容可能被CPU用完了,或者在不久的将来不会用这个块,就让这个块被替换出去。但是这个算法是有问题的,比如说我们看书,大量的书籍我们放在书房,这相当于计算机的内存。有一些常看的书就放在床头柜,这个柜子的容量是有限的,它就相当于我们的Cache。比如说我们看一本书,刚好不在床头柜,于是去书房拿过来放入床头柜。而床头柜已经满了,按照FIFO算法,最早被放入的书被替换,但是可能这本书可能是你很喜欢的书,不久的将来你又会用。
②近期最少使用(LRU)算法
认为在最近一段时间内使用最少的块将来可能不用或隔很久采用,这就比较好的体现了程序的局部性原理。

随机算法(RAND):随机地确定替换的 Cache块。它的实现比较简单,但没有依据程序访问的局部性原理,故可能命中率较低


先进先出算法(FIFO):选择最早调入的行进行替换。它比较容易实现,但也没有依据程序访问的局部性原理,可能会把一些需要经常使用的程序块(如循环程序)也作为最早进入 Cache的块替换掉。


近期最少使用算法(LRU):依据程序访问的局部性原理选择近期内长久未访问过的存储行作为替换的行,平均命中率要比FFO要高,是堆栈类算法。


LRU算法对每行设置一个计数器, Cache每命中一次,命中行计数器清0,而其他各行计数器均加1,需要替换时比较各特定行的计数值,将计数值最大的行换出。


最不经常使用算法(LFU):将一段时间内被访问次数最少的存储行换出。每行也设置一个计数器,新行建立后从0开始计数,每访问一次,被访问的行计数器加1,需要替换时比较各特定行的计数值,将计数值最小的行换出。

8.6虚拟存储器

在这里插入图片描述

九、辅助存储器

4.1 概述

辅助存储器知识用来存储数据,不直接与CPU交换信息。当需要这些数据时,需要将数据送入到主存中。最常用的存储器就是磁表面存储器,它的技术指标有下面这些

 特点

9.2 磁记录原理和记录方式 

写操作

在写线圈同上不同方向的电流,铁芯内部就会产生不同方向的磁通,就会对磁层表面进行磁化。磁化方向不同就可以区分写入0还是1。

在这里插入图片描述

读操作

前面写操作已经将磁层进行了磁化,在读的过程中,磁层是在运动的,硬盘是在旋转的,下面的磁场经过读写头就能切割磁场线,在读线圈产生电流。磁通发生变化,电势就发生变化,根据电势的变化,就能确定保存的是0还是1

在这里插入图片描述

4.3 硬磁盘存储器

硬磁盘存储器的类型

①固定磁头和移动磁头(从磁头是否旋转来划分):固定磁头将磁头进行固定,盘片旋转,这样的话每个磁道都需要一个磁头,磁头数量就很庞大,这种盘的速度很快,但是结构复杂。移动磁头就是每个盘面上有个磁头,磁头可以沿着磁盘的镜像进行移动。
②可换盘和固定盘(从硬盘盘片是否可更换):常用的是固定盘,因为一旦盘片取出沾上灰尘就报废了。

硬磁盘存储器结构

在这里插入图片描述

磁盘驱动器
信息表存在磁盘组,固定在一个主轴上,下面有一个传动机构。传动机构带动主轴带动磁盘组上各个盘面旋转。磁盘的表面是磁头,一旦磁盘高速旋转起来,磁头就会悬浮在磁头表面,磁头可以沿着磁盘的镜像进行移动,移动是由读写臂右半边的小车来控制的。小车的移动推动磁头在磁盘表面进行移动,小车由音圈电机来控制。磁盘控制器会送来目标磁道的信息,控制磁头到底该移动到哪个磁道。音圈电机还会测量小车的移动速度送回到控制端,同时对读写头也有位置的控制。
在这里插入图片描述

磁盘控制器
①接收主机发来的命令,转换成磁盘驱动器的控制命令
②实现主机和驱动器之间的数据格式转换
③控制磁盘驱动器读写
总结:磁盘控制器是主机与磁盘驱动器之间的接口。对主机通过总线进行连接,对硬盘直接进行控制
盘片
由硬质铝合金材料制成

9.4 软磁盘存储器

软盘由于容易损、速度慢等原因已经退出了市场,现在已经买不到了。在这里插入图片描述

软盘片 

在这里插入图片描述

9.5 光盘存储器

概述
采用光存储技术----利用激光写入和读出
第一代光存储技术----采用非磁性介质----不可擦写
第二代光存储技术----采用磁性介质----可擦写
光盘的存储原理
只读型和只写一次型----热作用(物理或化学变化)
可擦写光盘----热磁效应

十、题目

10.1考研题

1.(P82-14)【2011统考真题】下列各类存储器中,不采用随机存取方式的是(B)。

A. EPROM

B. CD-ROM

C. DRAM

D. SRAM

随机存取存储器(Random Access Memory,RAM)是一种可以随意读取存储单元数据的存储器。而只读存储器(Read-Only Memory,ROM)则是一种只能读取,不能写入数据的存储器。根据题目所述,不采用随机存取方式的存储器是CD-ROM。

因此,答案为B. CD-ROM。

2.(P91-20)【2010统考真题】下列有关RAM和ROM的叙述中,正确的是(A)。

I.RAM是易失性存储器,ROM是非易失性存储器

Ⅱ.RAM和ROM都采用随机存取方式进行信息访问

IⅡ.RAM和ROM都可用作Cache

IV.RAM和ROM都需要进行刷新

A.仅I和Ⅱ

B.仅II和ⅡI

C.仅I、Ⅱ和IⅡ

D.仅II、IⅡ和IV

3.(P91-21)【2012统考真题】下列关于闪存的叙述中,错误的是(A)。

A. 信息可读可写,并且读、写速度一样快

B. 存储元由MOS管组成,是一种半导体存储器

C. 掉电后信息不丢失,是一种非易失性存储器

D. 采用随机访问方式,可替代计算机外部存储器

闪存是一种非易失性存储器,通常用于存储个人电脑、数码相机和移动设备等的数据。根据题目所述,下列关于闪存的叙述中,错误的是(A)。

闪存的信息可读可写,但其读写速度并不一样快,写入速度要比读取速度慢得多。因此,选项A错误。

4.(P92-26)【2022统考真题】某内存条包含8个8192×8192×8位的DRAM芯片,按字节编址,支持突发(burst)传送方式,对应存储器总线宽度为64位,每个DRAM芯片内由一个行缓冲区(row buffer)。下列关于该内存条的叙述中,不正确的是(C)。

A. 内存条的容量为512MB

B. 采用多模块交叉编址方式

C. 芯片的地址引脚为26位

D. 芯片内行缓冲有8192×8位

每个DRAM芯片的地址引脚数是由它的容量来决定的,因为每个地址引脚可以识别2个状态(即0或1)。对于本题中的DRAM芯片,容量为8192×8192×8位,因此每个DRAM芯片有的地址引脚数为 log₂(8192×8192×8) = 26。因此,选项C中“芯片的地址引脚为29位”

每个DRAM芯片内有一个行缓冲区,用于临时存储从内存中读取的行数据。题目中指定每个芯片的容量为8192×8192×8位,因此行缓冲区的大小是8192×8位,所以选项D正确。

5.(P102-15)【2016统考真题】某存储器容量为64KB,按字节编址,地址4000H~5FFFH为ROM区,其余为RAM区。若采用8K×4位的RAM芯片进行设计,则需要该芯片的数量是(C)。

A. 7

B. 8

C. 14

D. 16

题目解析:

ROM地址为4000H~5FFFH,占8K空间,剩余64K-8K=56K是RAM空间,则56K*8bit/8K*4bit = 14片

6.(P102-17)【2021统考真题】某计算机的存储器总线中有24位地址线和32位数据线,按字编址,字长为32位。如果00 0000H~3F FFFFH为RAM区,那么需要512K×8位的RAM芯片数为(C)。

A. 8

B. 16

C. 32

D. 64

由按字编址,地址范围为00000H- -3FFFFFH得RAM区

容量为4096K,即4M,4M=, 而题目中说了

是按字编址,且字长是32位。那RAM的存储空间大小就是,所以需要512KX8位(即位)的RAM芯片数= 32片。故本题答案为C。

7.(P121-21)【2017统考真题】某C语言程序段如下:

   for ( i=0;i<=9;i++){

temp=1;

 for ( j=0;j<=i;j++) temp*=a[j];

 sum += temp;

}

下列关于数组a的访问局部性的描述中,正确的是(A)。

A. 时间局部性和空间局部性皆有

B. 无时间局部性,有空间局部性

C. 有时间局部性,无空间局部性

D. 时间局部性和空间局部性皆无

该程序中,数组a被反复访问,因此具有时间局部性。同时,数组a的元素在空间上也是连续存储的,因此具有空间局部性。因此,正确答案是(A)时间局部性和空间局部性皆有

时间局部性(Temporal Locality)指的是,如果程序中的某个数据项被访问,那么在不久的将来,该数据项有很大概率会再次被访问。时间局部性表明了程序中的数据访问模式往往是连续的,数据项的使用是具有周期性的,这是因为程序中经常会使用循环、函数等结构。

空间局部性(Spatial Locality)指的是,如果程序中访问了某个内存单元,那么在不久的将来,与该内存单元相邻的内存单元也会被访问。空间局部性表明了程序中的数据通常是以块为单位进行访问的,这是因为现代计算机存储器系统具有多级缓存的层次结构,相邻的内存单元往往被缓存到相同的缓存行或缓存块中,因此访问相邻的内存单元可以利用缓存行或缓存块的预取和局部性,提高访问效率。

8.(P121-22)【2021统考真题】若计算机主存地址为32位,按字节编址,Cache数据区大小为32KB,主存块大小为32B,采用直接映射方式和回写(Write Back)策略,则Cache行的位数至少是(A)。

A. 275

B. 274

C. 258

D. 257

9.(P121-23)【2022统考真题】若计算机主存地址为32位,按字节编址,某Cache的数据区容量为32KB,主存块大小为64B,采用8路组相联映射方式,该Cache中比较器的个数和位数分别为(A)。

A. 8,20

B. 8,23

C. 64,20

D. 64,23

10【2014统考真题】某容量为256MB的存储器由若干4M×8位的DRAM芯片构成,该DRAM芯片的地址引脚和数据引脚总数是( )。

A、19

B、22

C、30

D、36

题目解析:

4M存储器的地址线有22根,但对于DRAM,地址线复用,故4M×8位的DRAM芯片地址线为11根,加上数据8位,共计19根

10.2选择题

1、存储器是计算机系统的记忆设备,它主要用来(  D   )

A.  存放程序               B.  存放微程序        

C.  存放特殊的数据         D.  存放数据和指令

2、存储字是(  A  )

A.  存放在一个存储单元的二进制代码组合    

B.  存放在一个存储单元的二进制代码个数    

C.  存储单元的集合      

D.  与存储器无关

3、存储字长是指(  B  )

A.  存放在一个存储单元的二进制代码组合    

B.  存放在一个存储单元的二进制代码个数    

C.  存储单元的集合      

D.  以上均不对

4、存储周期是指(  C  )

A.  存储器的写入时间    

B.  存储器进行连续写操作所允许的最短时间间隔    

C.  存储器进行连续读或写操作所允许的最短时间间隔

D.  与存储器的具体实现技术无关

5、和外存储器相比,内存的特点是(  A  )

A.  容量小、速度快、成本高   

B.  容量小、速度快、成本低    

C.  容量大、速度快、成本高  

D.  容量大、速度慢、成本低

6、一个16K×32位的存储器,其地址线和数据线的总和是(  B  )

A.  48          B.  46           C.  36             D.  32

一个16K×32位的存储器,16K表示存储器的地址总数,即2的14次方,因此需要14条地址线。而32位表示存储器中每个存储单元的数据位数,需要32条数据线。因此地址线和数据线的总和是14 + 32 = 46。因此答案是B。

7、一个512KB的存储器(按字节编址),其地址线根数是(  D  )

   A.  64           B.  32           C.  20             D.  19

8、某计算机字长为16位,它的存储容量是64KB,按字编址,则它的寻址范围是( C )

   A.  64K         B.  32KB         C.  32K           D.  无法确定

9、某一RAM芯片,其容量为512×8位,如果考虑电源和接地引脚,则该芯片引出的引脚数最少是( A )

   A.  21           B.  19           C.  17             D.  15

一个RAM芯片的引脚数目包括了数据线、地址线、控制线以及电源和接地线。对于一个512x8位的RAM芯片,它有9条地址线,8条数据线,2条控制线(读写加片选),以及1条电源线和1条接地线。因此,它的引脚数目应该是9+8+2+1+1=21。所以正确答案是A。

10、若主存每个存储单元为16位,则(  B  )

A.  其地址线也为16位                B.  其地址线与16无关    

C.  其地址线最少为16位              D.  其地址线与16有关

11、通常计算机的内存可采用(  A  )

    A.  RAM和ROM     B.  RAM        C.  ROM        D.  磁盘

12、EPROM是指(  C  )

A.  只读存储器                    B.  可编程的只读存储器        

C.  可擦除的可编程的只读存储器    D.  电可擦除的可编程的只读存储器

13、可编程的只读存储器(  A  )

A.  不一定是可改写的            B.  一定是可改写的       

C.  一定是不可改写的            D.  以上均不对

14、下列说法中(  D  )是正确的

A.  半导体RAM信息可读可写,且断电后仍能保持记忆   

B.  半导体RAM是易失性RAM,而静态RAM中的存储信息是不易失的

C.  半导体RAM是易失性RAM,而动态RAM中的存储信息是不易失的  

D.  半导体RAM是易失性RAM,而静态RAM只有在电源不掉时,所存信息是不易失的

15、下列说法中(  B  )是正确的

A.  EPROM是可改写的,但改写一次后不能再次改写   

B.  EPROM是可改写的,且可多次改写

C.  EPROM是可改写的,是用电信号直接改写

D.  EPROM是可改写的,是用磁信号直接改写

16、和动态MOS存储器相比,双极性半导体存储器的性能是(  C  )

A.  集成度高、存取周期快、位平均功耗少   

B.  集成度高、存取周期快、位平均功耗大    

C.  集成度低、存取周期快、位平均功耗大  

D.  集成度低、存取周期快、位平均功耗少

17、在磁盘和磁带两种磁表面存储器中,存取时间与存储单元的物理位置有关,按存储方式分(  B  )

A.  二者都是顺序存取   

B.  磁盘是随机半顺序存取,磁带是顺序存取    

C.  磁带是随机半顺序存取,磁盘是顺序存取   

D.  二者都是随机半顺序存取

磁盘是随机半顺序存取,磁带是顺序存取,因此正确答案是B。磁盘存储器中的数据可以按任意顺序读写,但需要先寻找磁头所在的磁道,然后再旋转磁盘等待数据读取或写入;而磁带存储器则必须按照顺序一个一个地读取或写入数据。

18、磁盘的记录方式一般采用(  A  )

   A. 调频制          B.  调相制          C.  NRZ         D.  NRZ-1

19、在磁表面存储器的记录方式中(   D  )

A.  不归零制和归零制的记录密度是一样的   

B.  不归零制的记录方式中不需要同步信号,故记录密度比归零制高    

C.  归零制的记录方式中需要同步信号,故记录密度高

D.  不归零制记录方式由于磁头线圈中始终有电流,因此抗干扰性能好

20、磁盘存储器的平均等待时间通常是指(   B  )

A.  磁盘旋转一周所需的时间         B.  磁盘旋转半周所需的时间

C.  磁盘旋转2/3周所需的时间       D.  磁盘旋转1/3周所需的时间

21、相联存储器是按(  B   )进行寻址的存储器

A.  地址指定方式                  B.  内容指定方式

C.  堆栈存取方式                  D.  队列存取方式

22、一个四体并行交叉存储器,每个模块的容量是64K×32位,单体的存储周期为200ns,在下述说法中(  B  )是正确的

A.  在200ns内,存储器能向CPU提供256位二进制信息

B.  在200ns内,存储器能向CPU提供128位二进制信息   

C.  在50ns内,存储器能向CPU提供32位二进制信息

D.  在50ns内,存储器能向CPU提供128位二进制信息

23、主存和CPU之间增加高速缓冲存储器的目的是(   A  )

A.  解决CPU和主存之间的速度匹配问题         B.  扩大主存容量   

C.  即扩大主存容量,又提高了存取速度          D.  降低主存价格

24、在程序的执行过程中,Cache与主存的地址映射是由(   C  )

A.  操作系统来管理的                   B.  程序员调度的  

C.  由相应硬件自动完成的               D.  主存自身即可完成

25、采用虚拟存储器的目的是(  C )

A.  提高主存的速度                     B.  扩大外存的存取空间

C.  扩大存储器的寻址空间               D.  以上都正确

26、常用的虚拟存储器寻址系统由(  A  )两级存储器组成

A.  主存—外存                     B.  Cache—主存

C.  Cache—外存                    D.  以上任意组合均可

27、在虚拟存储器中,当程序正在执行时,由(  C  )完成地址映射

A.  程序员                         B.  编译器

C.  操作系统                       D.  CPU

28、下列关于闪存(Flash Memory)的叙述中,错误的是(   A   )

A.  信息可读、可写,并且读、写速度一样快

B.  存储基元由MOS管组成,是一种半导体存储器

C.  掉电后信息不丢失,是一种非易失性存储器

D.  采用随机访问方式,可替代计算机外部存储器

闪存的写操作比读操作要慢得多,因为写操作需要在相应的内存单元中擦除之前存储的数据,而擦除操作是一种比较耗时的过程。因此,闪存的写速度通常比读速度慢得多。因此,选项 A 错误。

29、下列各类存储器中,不采用随机存储方式的是(   B   )

A.  EPROM     B.  CDROM        C.  DRAM          D.  SRAM

A. EPROM(Erasable Programmable Read-Only Memory)是一种只读存储器,它的内容在生产时被编程,通常不允许对其进行更改。

B. CD-ROM(Compact Disc Read-Only Memory)是一种只读光盘存储器,使用激光读取数据。由于数据的存储是通过物理方式在盘片上刻出凹槽和平台的,因此不采用随机存储方式。

C. DRAM(Dynamic Random-Access Memory)是一种动态随机存取存储器,使用电容存储数据,需要定期刷新以保持数据的有效性。它采用随机访问方式,可以通过地址线和数据线来访问存储单元。

D. SRAM(Static Random-Access Memory)是一种静态随机存取存储器,使用触发器存储数据,不需要刷新操作。它采用随机访问方式,可以通过地址线和数据线来访问存储单元。

因此,不采用随机存储方式的存储器是CD-ROM,选项B正确。

30、下列关于RAM和ROM的叙述中,正确的是(   A   )

I.   RAM是易失性存储器,ROM是非易失性存储器

II.  RAM和ROM都采用随机存取方式进行信息访问

III.  RAM和ROM都可用作Cache

IV.  RAM和ROM都需要进行刷新

A.  仅I和II     B.  仅II和III      C.  仅I、II和IV      D.  仅II、III和IV

31、某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是(   D  )

   A.  1、15        B.  2、15         C.  1、30        D.  2、30

32、用若干2K×4位芯片组成一个8K×8位的存储器,则地址0B1FH所在芯片的最小地址是(   D  )

   A.  0000H        B.  0600H        C.  0700H        D.  0800H

解析:这个题比较复杂也比较难,具体运算如下所示:用2K×4位的芯片组成一个8K×8位存储器,每行中所需芯片数为2,每列中所需芯片数为4,共需8片,先2片一组进行位扩展, 组成4组2K×8位芯片;然后4组 进行字扩展。第1组的地址为 0000H~07FFH;第2组的地址 为0800H–0FFFH;第3组的地 址为1000H–17FFH;第4组的 地址为1800H–1FFFH,可知,地址0B1FH在第二行,且所在芯片的最小地址为0800H。

33、某计算机存储器按字节编址,主存地址空间为64MB,现用4M×8位的RAM芯片组成32MB的主存储器,则存储器地址寄存器MAR的位数至少是(   D   )

  A.  22位         B.  23位         C.  25位         D.  26位

个人觉得这道题题目非常有问题,在唐朔飞的第二版计算机组成原理的第14页第2段第2-3行明确指出:MAR的位数对应存储单元的个数。这也就是说,26位的MAR,就有2^26 = 64M个存储单元,在主存储器中就是真实存在64M个存储单元。
而题目中又说:主存储器只有32MB,这是什么意思?这不就是在说:噢,我只有32M个存储单元(存储字长1B),所以,这么矛盾?真的不矛盾?它不应该是像如下描述的吗?
主存地址空间大小为64MB,主存储器由2片32MB的存储器组成(字扩展而成),其中每个32MB的存储器又是由8片4M×8bit的RAM芯片组成(字扩展而成),则MAR的位数是多少?如果是这样,那就毫无疑问选择26

34、某计算机存储器按字节编址,采用小端次序(高高低低原则)存放数据。假设编译器规定int和short型数据长度分别为32位和16位,并且数据按边界对齐存储。有C语言程序段如下:

struct{  int  a;

       char  b;

       short  c;

} record;

record.a=273;

若record变量的首地址为0xC008,则地址0xC008中的内容及record.c的地址分别为( D  )

   A.  0x00、0xC00D   B.  0x00、0xC00E   C.  0x11、0xC00D  D.  0x11、0xC00E

35、某计算机的Cache共有16块,采用二路组相联映像方式,每个主存块大小为32字节,按字节寻址,主存单元129所在主存块应装入到的Cache组号是(   C   )

    A.  0             B.  1              C.  4              D.  6

36、假设某计算机按字编址,Cache有4行(即组),Cache和主存之间交换的块大小为1个字。若Cache的内容初始为空,采用二路组相联映像方式和LRU替换算法,当访问的主存地址依次为0、4、8、2、0、6、8、6、4、8时,命中Cache的次数是(   C  )

A.  1             B.  2              C.  3              D.  4

37、假设某计算机的存储系统由Cache和主存组成。某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是(   D  )

   A.  5%           B.  9.5%             C. 50%            D.  95%

38、下列关于虚拟存储器的叙述中,正确的是(   B  )

A.  虚拟存储只能基于连续分配技术

B.  虚拟存储只能基于非连续分配技术

C.  虚拟存储容量只受外存容量的限制

D.  虚拟存储容量只受内存容量的限制

虚拟存储器的常见实现方式是采用非连续分配技术,因此选项 B 正确。虚拟存储器的容量不仅受到内存容量的限制,还受到外存容量的限制,因此选项 C 和选项 D 都不正确。

39、下列命中组合情况中,一次访存过程中不可能发生的是(   D  )

A.  TLB未命中、Cache未命中、Page未命中

B.  TLB未命中、Cache命中、Page命中

C.  TLB命中、Cache未命中、Page命中

D.  TLB命中、Cache命中、Page未命中

该问题涉及计算机系统中内存管理的多级结构,常用的三级结构是页面、高速缓存和TLB(页表缓冲)。对于一次访存过程,可能会发生多种命中和未命中的情况。正确答案应该是B,即“TLB未命中、Cache命中、Page命中”不可能发生,因为TLB未命中意味着系统需要从内存中查询页表,而Page命中意味着需要的页面已经在内存中,因此Cache也不应该命中。

10.3简答题

1解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、FlashMemory。

以下是对这些概念的简要解释:

  1. 主存(Main Memory):也称为内存,是计算机中用于存储正在执行的程序和数据的一种随机访问存储器。

  2. 辅存(Secondary Storage):也称为外存,是计算机中用于长期存储数据和程序的存储器,如硬盘、光盘、磁带等。

  3. Cache(Cache Memory):也称为高速缓存,是主存和CPU之间的一种快速缓存,用于提高系统性能。

  4. RAM(Random Access Memory):随机访问存储器,指可按任意顺序访问存储单元的存储器。

  5. SRAM(Static Random Access Memory):静态随机访问存储器,指使用触发器等电路实现存储单元的存储器,速度较快。

  6. DRAM(Dynamic Random Access Memory):动态随机访问存储器,指使用电容等电路实现存储单元的存储器,速度较慢,但容量较大。

  7. ROM(只读存储器):只读存储器,指在出厂时就被编程好的存储器,其内容无法被修改。

  8. PROM(Programmable Read-Only Memory):可编程只读存储器,指用户可以在一次性地将其编程为特定内容后,其内容无法被修改的存储器。

  9. EPROM(Erasable Programmable I-Only Memory):可擦写可编程只读存储器,指可以通过紫外线擦除器擦除后重新编程的存储器。

  10. EEPROM(Electrically Erasable Programmable I-Only Memory):电可擦写可编程只读存储器,指可以通过电信号擦除后重新编程的存储器。

  11. CDROM(Compact Disc Read-Only Memory):只读光盘,用于存储大量数据或程序,其内容无法被修改。

  12. Flash Memory:一种非易失性的电子存储器,类似于 EEPROM,但其擦除和编程速度更快,广泛应用于各种设备中,如 USB 闪存驱动器、手机、相机等

2.存储器的层次结构如何划分,计算机如何管理这些层次?

3.说明存取周期和存取时间的区别。

4.什么叫刷新?为什么要刷新?说明刷新有几种方法

5.什么是“程序访问的局部性”?存储系统中哪级采用了程序访问的局部性原理? 

 26.计算机中设置Cache的作用是什么?能不能把Cache的容量扩大,最后取代主存,为什么?

  • 20
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨平生9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值