精华内容
下载资源
问答
  • 存储器层次结构
    2020-12-28 12:28:13
    存储器系统是一个具有不同容量、成本和访问时间的储存容器。CPU寄存器保存着最常用的数据。靠近CPU的高速缓存存储器作为一部分存储在相当慢速的主存储器中数据和指令的缓存区域。
    

    一、随机访问存储器
    随机访问存储器:RAM,分为两类,静态的(SRAM)和动态的(DRAM)。静态RAM相比动态RAM来说,速度更快,价格更高,因此SRAM常用来作高速缓存存储器,而DRAM常用来作内存。
    (1)SARM
    早期计算机系统的存储器层次结构只有三层:CPU寄存器、DRAM主存储器和磁盘存储。不过由于CPU和主存之间逐渐增大的差距,我们在他们之间插入了一个小的SRAM高速缓存存储器,称为L1高速缓存。之后又在L1与主存之间插入了更大的高速缓存,称为L2高速缓存。有些现代系统还包括有一个更大的,L3高速缓存。为方便讨论,我们假设CPU和主存之间只存在L1高速缓存.
    (2)DRAM
    DRAM芯片中的单元(位)被分成了d个超单元(字),每个超单元都是由w个位组成的。因此总位数就是dw.这d个超单元,被组织成了r行c列的长方形阵列,所以d=rc。这样,每个超单元就可以用(i,j)这样的地址来索引,i表示行,j表示列。
    比如一个168的DRAM芯片,d=16,w=8。可以组织成44=16的阵列,这样,地址信息用2位来传输就可以了,因为2^2=4,数据信息用8位来传输。
    (3)非易失性存储器非易失性存储器
    RAM如果掉电的话,就会失去存储内容,因此他们是易失的。
    而非易失性存储器,即是在掉电后仍然可以保存信息。由于历史的原因,虽然ROM中有的类型可读也可写,但是还是称他们为只读存储器。ROM以能够重写的次数和重写使用的机制进行区分。PROM,只能被写一次,EPROM可以被擦写多次,另外还有EERPROM。
    二、存储器层次结构
    一般而言,从上到下,存储设备变的更慢,更便宜,容量更大。高层是寄存器,可以在一个时钟周期内访问,接下来是一个或者多个的基于SRAM的高速缓存存储器,可以在几个CPU时钟周期内访问。下面是基于DRAM的主存,可以在几个到几百个时钟周期内访问到,接下来是慢速但容量很大的磁盘系统,最后还有远程网络上的存储器系统。
    高速缓存是一个小而快的存储设备,他作为存储在更大也更慢的设备中的数据对象的缓冲区域。使用其的过程称为缓存。
    存储器层次结构的中心思想是:k层的更小更快的存储设备,作为k+1层的更大更慢的存储设备的缓存。也就是说,层次结构中的每一层都缓存来自较低一层的数据对象。
    三、存储器的读写
    早期的存储器层次只有三层:寄存器,内存,硬盘。不过,由于CPU和内存之间的差距的不断加大,出现了高速缓存存储器,高速缓存存储器可以有多个层次,比如L1,L2,L3。比如L1,可以在2-4个周期内访问。而L2可以在10个周期内访问,L3可以在30-40个周期内访问。高速缓冲存储器通用组织:如果存储器地址有m位,这样就有2m,此时,高速缓存有S个缓存组,S=2s,每个组包含E个缓存行,每个缓存行有一个数据块,数据块大小为B个字节,B=2^b。存储器以及缓存中的数据都是以块为单位进行读写的。缓存行中还有有效位标志,表明该行是否包含有意义的信息。另外行中还有t个标记位,他们标示了行中的块。因为会有多个块映射到同一行中。这样,高速缓存就可以用(S,E,B,m)来描述,高速缓存的大小就是C=SEB。其中不包括标记位和有效位。参数S和B将m地址位分成了三部分,m个地址位中,有s个位表示组,于是根据s就知道了该地址对应于哪一个组。找到了相应的组后,就根据t个标记位,找到组中的行,当且仅当设置了有效位并且该行的标记位与地址A中的标记位相匹配时,组中的这一行才包含这个字。找到了这一行后,b指示了在B个字节的数据块中的字节偏移。这样,就能正确的找到该读取的字。

    更多相关内容
  • 存储器层次结构3.命中与缺失二、存储器技术1.前言2.SRAM技术3.DRAM技术4.闪存5.磁盘存储器 一、相关概念 1.局部性原理 ①时间局部性 定义:某个数据项在被访问之后可能很快再次被访问的特性。 解释:如果某个...


    一、相关概念

    1.局部性原理

    ①时间局部性
    定义:某个数据项在被访问之后可能很快再次被访问的特性。
    解释:如果某个数据项被访问,那么在不久的将来可能再次被访问。
    举例:当我们在图书馆读书,从书架上取来一本书放在了自己的书桌上,我们很有可能会很快再次翻阅它。
    ②空间局部性
    定义:某个数据项子啊被访问之后,与其地址相近的数据项可能很快被访问的特性。
    解释:图书馆经常将同一类的书放在一起,便于读者查询,当我们找到一本需要的书时,其附近的书也很有可能很快被我们用到。

    2.存储器的层次结构

    我们利用局部性原理将计算机的存储器组织成存储器层级结构。
    定义:一中由多存储器层次组成的结构,存储器的容量和访问时间随着离处理器距离的增加而增加。
    图片来自于《计算机组成与设计:硬件/软件接口》图5-1
    越靠近处理器的存储器越快、越小、每位价格越高;
    相反越原理处理器的存储器越慢、越大、每位价格越低。

    存储器层次可以由多层构成,但数据每次只能在相邻的两个层次之间进行复制。
    我们将一个两级层次结构中存储信息交换的最小单元称为

    3.命中与缺失

    ①如果处理器需要的数据存放在高层存储器的某个快中,则成为一次命中;反之,若在高层存储器中没有找到所需要的数据,本次数据请求则成为一次缺失
    ②命中率(命中比率):在高层存储器中找到数据的存储访问比例。命中率通常为衡量存储器层次结构性能的标准。
    ③缺失率:(1-命中率)在高层存储器中没有找到数据目标的存储访问比例。
    ④命中时间:访问某存储器层次结构所需要的时间,其中包括本次访问是命中还是失效的判定时间。
    ⑤缺失代价:将相应的块从地层存储器替换到高层存储器所需要的时间。包括访问块将数据逐层传输将数据插入发生缺失的层将信息块传送给请求者的时间。

    4.局部性与存储器的层次结构

    ①存储器层次结构利用了时间局部性,将最近被访问的数据项放在靠近处理器的地方,以便在不久的将来再次访问。
    ②存储器层次结构也利用了空间局部性,将一些包含连续字的块移动到存储器层次结构的较高层次,以便接下来访问其邻近数据项。

    补充:在存储器的层次结构中,距离处理器越近的层次容量越小而速度越快。因此当数据在层次结构的最高层命中时,可以很快被处理器处理;而当缺失时,处理器需要访问容量大但速度慢的低层存储器层次。所以当命中率足够高时,整个的存储器层次结构对处理器来说,就拥有接近最高层的处理速度和最低层的容量。

    二、存储器技术

    1.前言

    构建存储器层次结构的主要有四种技术:
    ①SRAM(静态随机存取存储器):构成靠近处理器的层次。
    ②DRAM(动态随机存取存储器):主要用来构成主存储器(主存)。
    ③闪存:一种非易失性存储器,常用作个人移动设备中的二级存储器。
    ④磁盘:通常是服务器中容量最大且速度最慢的一层。

    补充:RAM中的R指“随机”,其含义为:访问任意地址单元的时间是相同的。

    2.SRAM技术

    SRAM是一种组织成存储阵列结构的简单集成电路,对任何数据访问时间都是固定的。

    SRAM的一个基本存储单元通常由6-8个(一般为6个)晶体管组成。其相对稳定,不容易收到干扰,在空闲模式下仅需最小的功率来保持电荷,不需要刷新。

    任何一个SRAM都有三组信号线与外部打交道:
    ①地址线:地址线决定了存储器的容量,对于有n条地址线的存储器,其容量为2n个存储单元。
    ②数据线:数据线的数量制定了存储器的字长,对于有n条数据线的存储器,其字长为n位。
    ③控制线:指定了对存储器进行读操作还是写操作。
    (例如R/ W \frac{}{W} W,表示高电平时进行读操作,低电平进行写操作)

    3.DRAM技术

    DRAM使用电容保存电荷的方式存储数据。其每一位都只是用一个晶体管(对比SRAM需要使用6个),密度比SRAM要高很多,因此容量一般比SRAM大得多。

    DRAM在电容上保存电荷,由于漏电等原因不能长久地保持数据(一般只能保持几微秒),从而必须周期性地刷新,这也是动态随机存取存储器中“动态”的原因。

    刷新:为了对单元进行刷新,我们只需要将其中的数据读出来后重新写入即可。但如果DRAM中的每个位都需要独立地读出/写入,那么则陷入“死区”,即所有的时间都用来进行刷新操作,而没有时间用于正常的访问操作。为了解决这个问题,DRAM采用了亿中两级译码结构,可以通过在一个读周期后紧跟一个写周期的方式一次刷新一整行

    常见的三种刷新方式
    前提说明:由于刷新相当于进行一次存取过程,所以刷新一行的时间=存取周期
    ①集中刷新
    集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新。
    若采用集中刷新,则在一个刷新周期钟,所有行全部刷新完毕之前不能进行任何的存取操作,因此刷新时间又称为“死区”或“死时间”。
    集中刷新的效率是非常低的,当行数较多时甚至会出现无法相应处理器存取指令的情况。
    优点:速度高,刷新快
    缺点:存在死区,行数较多时死时间很长

    ②分散刷新
    分散刷新:是指对每行存储单元的刷新分散到每个存储周期内完成。
    可以简单理解为对哪一行进行读写操作,就对哪一行进行刷新。
    同时,分散刷新将刷新放到存取周期内进行,即扩大了存取周期(由于刷新时间=存取时间,故此时存取周期为原来的两倍)。
    对于分散刷新来说不存在死区。
    原因:死区是由于存储器在刷新时不能相应处理器的请求而阻塞的时间。而此时将刷新放在了存取周期内,存取周期中既包含了读写时间,也包含了刷新一行的时间,对于处理器来说是看不到刷新时间的(可以理解为每个存取周期是个原子周期,以处理器的角度来看一直在进行存取操作),所以才没有死区。
    优点:消除了死区
    缺点:存取周期延长,导致整个系统的速度降低

    留个疑问(待解决):分散刷新是在存取操作后进行刷新,若有某行长时间未进行读写操作,会不会出现不刷新导致数据丢失的情况?

    ③异步刷新
    异步刷新:将每一行的刷新都分开来看,只要在规定的时间完成对每一行一次的刷新就可以。
    举例:对64*64的矩阵刷新,存取周期为0.5us,每行需要在2ms内刷新一次。此时每经过(2/64)ms刷新一行,就可以保证2ms内将所有的64行都进行了一次刷新。
    对每一行来说,其都要间隔64个周期才会被再次刷新。

    对于异步刷新来说,死区仍然是存在的,但死时间被大大缩短,以刚刚的例子来说,每次刷新时会有0.5us的时长不能相应处理器操作,因此死时间为0.5us。

    有关于DRAM的刷新方式,还可以参照其他几位大佬写的几篇非常优秀的博客,链接如下:
    https://blog.csdn.net/qq_43610614/article/details/105660357
    https://blog.csdn.net/qq_40627648/article/details/83626288

    4.闪存

    闪存是一种电可擦除的可编程只读存储器(EEPROM)
    在对闪存进行写操作时,会对存储位带来损耗。(相较之下,磁盘与DRAM不必担心此问题)
    解决方案:大多数闪存产品中会带有一个控制器,用来将写操作从写入次数较多的块映射到写入次数较少的块中,从而使写操作尽量的分散,这种技术称为损耗均衡
    优点:虽然均衡技术降低了闪存的潜在性能,但不需要再高层次的软件中监控块的损耗情况,所以不必担心影响高层的效率。同时,闪存控制器的损耗均衡也实现了将制造过程中出错的存储单元进行屏蔽,从而提高成品率。

    5.磁盘存储器

    待补充,留空。

    展开全文
  • 文章目录(一)存储器层次结构(二)缓存(1)两个概念(2)缓存原理(三)缓存命中(四)缓存不命中(五)缓存策略(1)调用缓存策略条件(2)缓存策略(六)缓存不命中的类型(1)冷缓存(2)冲突不命中(3)容量...

    (一)存储器层次结构

    在这里插入图片描述
    存储器的中心思想:K层的更快、更小的存储设备是K+1层更慢、更大的存储设备的高速缓存。
    在这里插入图片描述

    (二)缓存

    (1)两个概念

    • 高速缓存:第k层是k+1层的高速缓存
    • 缓存:是一个过程,使用高速缓存的过程。

    (2)缓存原理

    在这里插入图片描述

    (三)缓存命中

    当程序需要某个数据块data时,先在本层K层进行查找,若在K层找到data数据块,就说明缓存命中。

    (四)缓存不命中

    当程序需要的数据块data在k层未找到,即缓存不命中。当发生缓存不命中时,第K层的缓存从K+1层取出包含data的数据块,若K层缓存已满,则将会覆盖一个现存的块(缓存策略:决定覆盖哪个块)。

    (五)缓存策略

    缓存策略:决定覆盖哪个块。

    (1)调用缓存策略条件

    • (1)发生缓存不命中
    • (2)该层缓存已满

    覆盖一个现存块的过程叫做替换或者驱逐这个块(牺牲块)。

    (2)缓存策略

    • 随机替换策略:随机选择一个块进行替换
    • LRU:一个具有最近最少使用的块进行替换

    (六)缓存不命中的类型

    (1)冷缓存

    该层存储设备上的数据块为空
    在这里插入图片描述

    (2)冲突不命中

    这种缓存不命中的结果是使用了取模的放置策略导致的。

    取模的放置策略:
    在这里插入图片描述
    解释:当K层要使用0时,K层的发生缓存不命中,此时要去k+1层取0数据块,根据取模放置策略,将0数据块覆盖在8数据块上。若是在K层访问8号数据块,此时发生缓存不命中,此时去k+1层上去取8数据块,根据取模放置策略,将8数据块覆盖0数据块。如此的反复下去,每次缓存都会发生不命中。这就是冲突不命中类型。

    (3)容量不命中

    例如:一个循环来访问同一个数组中的所有元素。这个块的集合称为工作集。当工作集超过缓存大小时,缓存会发生容量不命中。

    (七)缓存管理

    (软件和硬件)将各个缓存设备划分成块、在不同层次间传送块、判断是否缓存命中并处理他们。

    在这里插入图片描述

    展开全文
  • 不管怎样,作为程序员我还是强烈建议大家多阅读原理性的书籍,例如《深入理解计算机系统》。。。 本节梳理下存储相关的知识点。 1、存储分类 (1)寄存器 ...(1)一个存储器层次结构的示意图 (...

    不管怎样,作为程序员我还是强烈建议大家多阅读原理性的书籍,例如《深入理解计算机系统》。。。
    本节梳理下存储相关的知识点。

    1、存储分类

    (1)寄存器
    (2)随机访问存储器(SRAM & DRAM)
    (3)非易失性存储器(ROM)
    需要重点提一下闪存,基于EEPROM,固态硬盘(SSD)就是基于闪存的磁盘驱动器
    (4)磁盘

    2、剖析计算机系统存储结构


    (1)一个存储器层次结构的示意图
    在这里插入图片描述
    (2)Interl Core i7的高速缓存层次结构
    在这里插入图片描述
    (3)现代计算机系统中的存储分类

    请原谅我的懒,不愿意花时间去画图。
    通过上述三张图可以很清晰看出如下几点:
    (1)一个存储器包含寄存器、L1高速缓存区(SRAM)、L2高速缓存区(SRAM)、L3高速缓存区(SRAM)、主存(DRAM)、本地磁盘存储、远程二级存储。
    (2)从金字塔自顶向下每层的大小逐级递减,成本逐渐降低,上一层作为下一层的缓存,访问的消耗的时间周期越来越大;
    (4)寄存器的访问周期是0,寄存器置于cpu内部一般保存当前运行程序需要的上下文或者正在执行的指令;L1、L2、L3高速缓存属于SRAM、主存或者帧缓存区属于DRAM;
    (3)图1可以看作图2的层次机构一一对应,针对多核处理器,L1 和L2高速缓冲区每个核独享,L3高速缓存区多核共享。

    3、高速缓存存储器结构

    分类:高速缓存存储器的处理速度仅次于寄存器,一般分为三种:只保存指令的高速缓存寄存器i-cache,只保存数据的高速缓存寄存器d-cache,既保存指令又保存数据的高速缓冲寄存器(统一的高速缓存)。

    结构:以上图Interl Core i7为例,每个CPU芯片有四个核。每个核有自己私有的32kB L1 i-cache、32kB L1 d-cache、256kB L2统一的高速缓存、8MB L3统一的高速缓存。下图是高速缓存器的简要内部结构,每一个组有若干行,每一行包含有效位、标记、数据块。

    缓存命中&缓存不命中:L1是L2的缓存、L2是L3的缓存。假设需要在L2层找到对象d时,先查找L1中是否存在,若存在就是缓存命中,若不存在,就是缓存不命中;若缓存不命中,加载L2中的对象至L1,如果缓存已满,会在缓存L1中选出一块牺牲块用于替换当前需要加载的块。

    直接映射高速缓存:高速缓存的映射方式分为三种:直接映射高速缓存、组相联高速缓存、全相联高速缓存。直接映射高速缓存的组织架构可以理解为下图的组织形式(S,E,B) 存储空间分为S组,每组E行,每行B字节;
    直接映射高速缓存寻找过程如下:
    (1)组选择:根据地址中 的组索引查找到对应的组;
    (2)行匹配:组选择确定后,针对组内的行查询行标记位与地址中的标记位是否匹配;匹配则进行下一步;
    (3)字选择:确定多需要的字在块中从哪里开始,根据块偏移查找块中对应的字节;
    (4)若不命中需进行行替换。
    组相联高速缓存是指组内所有的行合并成一行查找;
    全相联高速缓存是指所有的组合并成一行查找,类似于一维数组的查找;
    在这里插入图片描述

    展开全文
  • 随机访问存储器(RAM) 随机访问存储器分为两类:静态的(SRAM)和动态的(DRAM)。静态RAM比动态RAM更快,但价格也贵得多。SRAM用来作高速缓存存储器,既可以在CPU芯片上,也可以在片下。DRAM用来作为主存以及图形...
  • 存储器系统是一个具有不同容量,成本和访问时间的...存储器层次结构由此从高到低依次排列,层次越高,速率越快。 CPU寄存器:零个周期 高速缓存:1-30个周期 主存:50-200个周期 磁盘:几千万个周期 计算机系统中一个
  • 深入理解操作系统(15)第六章:存储器层次结构(1)存储技术+局部性+层次结构(包括:存储器系统/RAM,ROM,SRAM,DRAM,闪存flash/磁盘/(时间和空间)局部性/缓存命中)1. 前沿1.1 简单的计算机系统模型1.2 存储器...
  • 到目前我们只看到了一个简化的计算机系统模型,其中CPU执行指令,而存储器系统为CPU存放指令和数据,实际上存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU寄存器保存最常用的数据;靠近CPU...
  • 第四章 存储器层次结构.ppt
  • CPU存储器层次结构

    千次阅读 2018-07-18 22:26:32
    3 存储器层次结构 3.1 内容概要 简单的计算机系统模型为CPU执行指令,存储器系统为CPU存放指令和数据。在该简单的计算机系统模型中,存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器...
  • 存储器层次结构.xmind

    2020-07-26 16:48:21
    计算机存储层次结构的思维导图,内容全面细致,配有文字解释和视频链接,对于学习计算机组成原理或是想了解计算机中的具体结构和内容有很大帮助
  • 5.1 大容量和高速度:开发存储器层次结构.pptx
  • 存储器层次结构3. 半导体随机存取存储器3.1 SRAM存储器3.2 DRAM存储器3.3只读存储器3.4 Flash存储器4. 主存储器与CPU的连接5. 双口RAM和多模块存储器6. 高速缓冲存储器( Cache)6.1 Cache的基本工作原理6.2 Cach...
  • 存储器层次结构 存储器系统 存储器系统是一个由具有不同容量,不同成本,不同访问时间的若干存储设备组成的层次结构,从上到下依次是:寄存器,高速缓存存储器,主存,硬盘,网络文件。 层次越高,容量越小,成本越...
  • 存储器层次结构

    2018-11-09 12:18:04
                 cpu执行指令,就会访问主存。
  • 计算机存储器层次结构

    千次阅读 2018-06-24 23:33:07
    引用: https://blog.csdn.net/wireless_com/article/details/79021511,并在原文基础上加上了相关信息存储... 存储的领域可以分为两个部分,一个是存储技术,一个是存储层级结构,我们先看下存储技术。从计算机结...
  • 存储器层次结构6.1 存储技术6.2 局部性6.3 存储器层次结构6.4 高速缓存存储器6.5 编写高速缓存友好的代码6.7 小结6.8 关于磁盘的补充讲解 好的程序代码不仅要有好的算法,对计算机硬件的充分利用也是很关键的一步。...
  • 必知必会-存储器层次结构

    千次阅读 2021-07-27 03:46:48
    作为一个程序员,你需要理解存储器层次结构,这样才能对程序的性能差别了然于心。今天带大家了解下计算机系统存储器层次结构。存储技术首先了解下什么是存储器系统?实质上就是一个具有不同容量、成本和访问时间...
  • 计算机系统——存储器层次结构存储技术随机访问存储器磁盘存储固态硬盘存储技术趋势局部性对程序数据引用的局部性取指令的局部性局部性小结存储器层次结构存储器层次结构中的缓存存储器层次结构概念小结高速缓存...
  • 三、存储器层次结构 存储元 存储单元 存储器 为了解决对存储器要求容量大、速度快、成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器 存储容量、存储时间、存储器...
  • 存储器层次结构4.高速缓存存储器(1)直接映射高速缓存(2)组相联高速缓存(3)全相联高速缓存(4)高速缓存参数的性能影响5.编写高速缓存友好的代码 1.存储技术 计算机程序一个称为局部性的基本属性。具有良好...
  • 存储器层次结构1

    2017-12-21 18:40:43
     存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU寄存器保存着最常用的数据。靠近CPU的小的、快速的高速缓存存储器作为一部分存储在相对慢速的主存储器中数据和指令的缓冲区域。主存缓存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,619
精华内容 16,247
关键字:

存储器的层次结构

友情链接: SmartGet_1.53.rar