计算机基础课--计组学习笔记(3)

这篇博客的笔记内容是存储系统。

个人理解:组成原理的Cache地址映射是为了把主存中的程序装入到Cache 中,而操作系统的地址变换是操作系统访问地址变换后内存的物理地址。

在此大家要先知道一个很重要的点:CPU不能直接访问低速设备的,先知道这个点后面的很多知识会有更好的理解,具体原因参考:cpu不能直接访问的存储器是?_百度知道

一、存储器概述

1.存储器分类

1)按照在计算机中的作用(层次)划分

2)按存储介质分类

3)按存取方式

RAM(随机存储器)、只读存储器(ROM)、串行访问存储器

2.存储器性能指标

存储器有3个主要性能指标:存储容量、单位成本和存储速度。这3个指标相互制约,设计存储器系统所追求的目标就是大容量、低成本和高速度。

存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间;而存取周期不仅包含操作时间,而且包含操作后线路的恢复时间,即存取周期=存取时间+恢复时间。
 

3.存储器的层次化结构

1)为了解决存储系统大容量、高速度和低成本3个相互制约的矛盾,在计算机系统中,通常采用多级存储器结构,如下图所示。在图中由上至下,位价越来越低,速度越来越慢,容量越来越大,CPU访问的频度也越来越低。

2)三级存储系统

 4.RAM(SRAM和DRAM)

主存储器由DRAM实现,靠处理器的那一层(Cache)则由SRAM实现,它们都属于易失性存储器,只要电源被切断,原来保存的信息便会丢失。DRAM的每比特成本低于SRAM,速度也慢于SRAM。

1)SRAM工作原理

2)DRAM工作原理 

个人理解:每隔一段时间必须执行存取操作,因而有存取周期。

关于内存刷新可参考:DRAM的三种刷新方式 - 这么神奇 - 博客园

地址复用:可以理解为地址线分时复用。ras信号有效时,DRAM收到的地址是行地址;cas信号有效时,收到的是列地址。

3)RAM的读写周期

可参考:SRAM(静态)存储器芯片的读/写周期 - 夜游星 - 博客园

二、主存与CPU

1.主存的基本组成

1)主存基本组成框图(右半边部分)

2)工作原理

更具体可参考:主存储器的基本组成_你的代码没bug的博客-CSDN博客_主存储器的基本组成

大概把握几个点:对字节编址、数据线宽度、地址线宽度

2.主存与CPU的连接

1)连接原理

2)主存容量扩展

可参考:主存容量扩展_silk_java的专栏-CSDN博客_主存容量的扩展

位扩展法:当存储芯片的位与CPU的位数不一致时,可以采取位扩展的方式

字扩展法:当数据总线不能满足时,可以采取字扩展的方式

字位扩展法:将以上两种方法结合起来

3)存储器地址分配与片选

即如何通过地址总线上的数据去获取存储单元中的数据

线选法:比较浪费但直接

译码片选法:需要译码器

 3.提高访存速度--双端口RAM和多模块存储器

为了提高CPU访问存储器的速度,可以采用双端口存储器、多模块存储器等技术,它们同属并行技术,前者为空间并行,后者为时间并行。

1)双端口存储器

2)多模块存储器

单体多字存储器:存储器中只有一个存储体,每个存储单元存储m个字,总的宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元。

缺点:指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或操作数不能连续存放,这种方法的效果就不明显。比如有一个转移指令,他会让下一条指令跳出m个字以外,那么基本就无法那么读取了。

多体并行存储器:可参考:计算机原理 4.6 多体交叉存储器 - ice--cream - 博客园

首先要明白局部性,因为计算机很吃局部性,局部性更好的性能往往更好。多体并行存储器包含高位交叉与低位交叉。

地址码高位交叉:缺点是访问连续模块的话只能串行存取(因为要访问的地址在体内连续,而访问体内只能允许当前只存在读取一个地址的内容的进程,必须等当前地址读完才能读取下一个)

地址码低位交叉:当读取连续地址的时候,因为地址是体间连续的,体间的读取状态互不影响,可以直接读取该地址信息而不必等候(即等个总线传输周期r就可以开始新的读取工作了)。因此地位交叉具有良好的空间局部性。

三、高速缓冲存储器(cache)

为什么要用cache:由于程序的转移概率不会很低,数据分布的离散性较大,所以单纯依靠并行主存系统提高主存系统的频宽是有限的。这就必须从系统结构上进行改进,即采用存储体系。通常将存储系统分为“Cache-主存”层次和“主存-辅存”层次。

1.程序访问的局部性原理

可参考:​​​​​​程序局部性原理的一些思考 - 小小柒 - 博客园   程序访问的局部性原理---进行科学性验证_diaoyikun5224的博客-CSDN博客

1)时间局部性:如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。

2)空间局部性:一旦程序访问了某个存储单元,则不久之后,其附近的存储单元也将被访问。

2.cache基本工作原理

注意“块”的概念 

1)工作原理图

主要包含三块:主存映射到cache并装入、cache的置换策略、写策略。

2)cache访问命中率H与cache-主存系统平均访问时间Ta

 3.cache与主存间的映射方式

1)直接映射

在这个人感觉比较难理解的点:

cache的行个数需要是2的整数次幂,这样才能方便做到二进制的映射。

为什么主存低c位正好是它要装进的cache号呢?举个例子:假如有四位二进制,以4为周期。1、5、9、13分别是0001、0101、1001、1101。他们的后两位都是一样的。

2)全相联映射

3)组相联映射

组相联映射是直接映射与全相联映射的折中方案。

 4.主存块替换算法

抖动是比较烦人的。

5.写策略

针对写命中的情况:全写法即cache和主存同时更新,写回法即cache中的块被置换回主存时才更新主存。

而写分配法和非写分配法时针对写未命中的情况。

四、虚拟内存

将此部分放置到操作系统中。

猜你喜欢

转载自blog.csdn.net/qq_42987967/article/details/120745247