首页 > 其他分享 >软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)

时间:2023-07-28 10:34:43浏览次数:39  
标签:存储器 主存 读书笔记 Cache 软考 映像 架构师 数据 相联


版权声明

主要针对希赛出版的架构师考试教程《系统架构设计师教程(第4版)》,作者“希赛教育软考学院”。完成相关的读书笔记以便后期自查,仅供个人学习使用,不得用于任何商业用途。


  • 版权声明
  • 第五节 存储器系统
  • 传统存储系统
  • 主存
  • 辅存
  • Cache
  • 局部性原理
  • 时间局部性
  • 空间局部性
  • 存储器存取方式
  • 顺序存取
  • 直接存取
  • 随机存取
  • 相联存取
  • 主存储器
  • 根据工艺和技术区分
  • 随机存取存储器
  • DRAM(Dynamic RAM,动态RAM)
  • SRAM(Static RAM,静态RAM)
  • 对比
  • 只读存储器
  • 存储器编址单位
  • 辅助存储器
  • 磁带存储器
  • 硬盘存储器
  • 磁盘访问时间
  • Cache 存储器
  • Cache基本原理
  • Cache 命中率计算
  • 映射机制
  • 直接映射
  • 全相联映射
  • 组相联映射
  • 替换算法
  • 随机算法
  • 先进先出(First In and First Out,FIFO)算法
  • 近期最少使用(Least Recently Used,LRU)算法
  • 写操作
  • 写直达(write through)
  • 写回(write back)
  • 标记法


第五节 存储器系统

在计算机系统中,规模较大的存储器往往分成若干级,成为存储系统。

传统存储系统

一般分为高速缓冲存储器(Cache)、主存、辅存三级。

主存

可由CPU直接访问,存取速度快,但容量较小,一般用来存放当前正在执行的程序和数据。

辅存

设置在主机外部,容量大,价格较低,但存取速度较慢,一般用来存放暂时不参与运行的程序和数据,CPU不可以直接访问辅存,辅存中的程序和数据需要时才传送到主存,因此它是主存的补充和后援。

Cache

当CPU速度很高时,为了使访问储存器的速度能喝CPU的速度匹配,又在主存和CPU见增设了一级Cache。Cache的存取速度比主存更快,但容量更小,用来存放当前最急需处理的程序和数据,以便快速地向CPU提供指令和数据。

局部性原理

程序在执行时呈现局部性规律,即在一较短时间内,程序的执行局限于某个部分。相应的,它所访问的存储空间也局限于某个区域。

时间局部性

程序中的某一条指令一旦执行,不及以后该指令可能再次执行。产生时间局部性的典型原因是由于程序中存在着大量的循环操作。

空间局部性

一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定范围内,其典型情况时程序顺序执行。

存储器存取方式

顺序存取

存储器的数据以记录的形式进行组织。对数据的访问必须按特定的现行顺序进行。代表存储设备:磁带存储器。

直接存取

与顺序存取相似,直接存取也使用一个共享的读写装置对所有的数据进行访问。但是,每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块所在位置进行访问。存取时间也是可变的。代表存储设备:磁盘存储器。

随机存取

存储器的每一个可寻址单元都具有自己唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。代表存储设备:主存储器。

相联存取

相联存取也是一种随即存取的方式,但是某一单元进行读写是取决于其内容而不是其地址。与普通的随即存取方式一样,每个单元都有自己的读写装置,读写时间也是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。为了提高地址映射的速度,Cache采取相联存取的方式。

主存储器

主存用来存放计算机运行期间所需要的程序和程序,CPU可直接随即地进行读写。主存具有一定容量,存取速度较高。但由于CPU要频繁的访问主存,所以主存的性能在很大程度上影响了整个计算机系统的性能。

根据工艺和技术区分

随机存取存储器

随机存取存储器(Random Access Memory,RAM),既可以写入也可以读出,但断电后信息无法保存,因此只能用于暂存数据。

DRAM(Dynamic RAM,动态RAM)

DRAM的信息会随着时间逐渐消失,因此需要定时对其进行刷新维持信息不丢失。

SRAM(Static RAM,静态RAM)

SRAM在不断电的情况下信息能够一直保持而不会丢失。

对比

DRAM的密度大于SRAM且更加便宜,但SRAM速度快,电路简单(不需要刷新电路),然而容量小,价格高。

只读存储器

只读存储器(Read Only Memory,ROM)可以看作 RAM 的一种特殊形式,其特点是:存储器的内容只能随机读出而不能写入。这类存储器常用来存放那些不需要改变的信息。由于信息一旦写入存储器就固定不变了,即使断电,写入的内容也不会丢失,所以又称为固定存储器。ROM 一般用于存放系统程序 BIOS(Basic Input Output System,基本输入输出系统)。

存储器编址单位

内存编址方法在计算机系统中,存储器中每个单元的位数是相同且固定的。

不同的计算机,存储编址的方式不同,主要有字编址和字节编址。

内存一般以字节(8位)为单位,或者以字为单位(字的长度可大可小,例如16位或32位等)。

辅助存储器

辅助存储器用于存放当前不需要立即使用的信息,一旦需要,再和助剂成批交换数据,是主存储器的后备,因此称之为辅助存储器;它又是助剂的外部设备,有称之为外存储器。辅助存储器的最大特点是存储器容量、可靠性高、价格低。

磁带存储器

磁带应用的场景越来越少,目前主要用于资料归档保存。

硬盘存储器

在硬盘中,信息分布呈一下层次:记录面、圆柱面、磁道和扇区。

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)_软考

硬盘驱动其中有多个磁盘片,每个盘面有两个记录面,每个记录面对应一个磁头,所有记录面号就是磁头号,如图 1-2(a)所示。所有的磁头安装在一个公用的传动设备或支架上,磁头一致地沿盘面径向移动,单个磁头不能单独地移动。在记录面上,一条条磁道形成一组同心圆,最外圈的磁道为 0 号,往内则磁道号逐步增加,如图 1-2(b)所示。在一个盘组中,各记录面上相同编号(位置)的各磁道构成一个柱面,如图 1-2(c)所示。

若每个磁盘片有 m 个磁道,则该硬盘共有 m 个柱面。引入柱面的概念是为了提高硬盘的存储速度。当主机要存入一个较大的文件时,若一条磁道存不完,就需要存放在几条磁道上。这时,应首先将一个文件尽可能地存放在同一柱面中。如果仍存放不完,再存入相邻的柱面内。

通常将一条磁道划分为若干个段,每个段称为一个扇区或扇段,每个扇区存放一个定长信息块(例如,512 个字节),如图 1-2(b)所示。一条磁道划分多少扇区,每个扇区可存放多少字节,一般由操作系统决定。磁道上的扇区编号从 1 开始,不像磁头或柱面编号从 0 开始。

在磁盘上进行信息的读写时,首先需要定位到目标磁道,这个过程称之为寻道,寻道所消耗的时间称为寻道时间,定位到目标磁道后,需要定位到目标扇区,此过程通过旋转盘片完成,平均旋转半圈可到目标位置。

磁盘访问时间

磁盘访问时间(存取时间) = 寻道时间+旋转延迟时间

Cache 存储器

Cache 的功能是提高 CPU 数据输入输出的速率,突破所谓的“冯•诺依曼瓶颈”,即 CPU 与存储系统间数据传送带宽限制。高速存储器能以极高的速率进行数据访问,但因其价格高昂,如果计算机的内存完全由这种高速存储器组成,则会大大增加计算机的成本。通常在 CPU 和内存之间设置小容量的 Cache。Cache 容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似 Cache。

Cache 通常采用相联存储器(ContentAddressable Memory,CAM)。CAM 是一种基于数据内容进行访问的存储设备。当对其写入数据时,CAM 能够自动选择一个未用的空单元进行存储;当要读出数据时,不是给出其存储单元的地址,而是直接给出该数据或者该数据的一部分内容,CAM 对所有存储单元中的数据同时进行比较,并标记符合条件的所有数据以供读取。由于比较是同时、并行进行的,所以,这种基于数据内容进行读写的机制,其速度比基于地址进行读写的方式要快很多。

Cache基本原理

使用 Cache 改善系统性能的依据是程序的局部性原理。根据程序的局部性原理,最近的、未来要用的指令和数据大多局限于正在用的指令和数据,或是存放在与这些指令和数据位置上邻近的单元中。这样,就可以把目前常用或将要用到的信息预先放在 Cache 中。当 CPU 需要读取数据时,首先在 Cache 中查找是否有所需内容,如果有,则直接从 Cache 中读取;若没有,再从内存中读取该数据,然后同时送往 CPU 和 Cache。如果 CPU 需要访问的内容大多都能在 Cache 中找到(称为访问命中),则可以大大提高系统性能。

Cache 命中率计算

如果以 h 代表对 Cache 的访问命中率(“1-h”称为失效率,或者称为未命中率),t1 表示 cache 的周期时间,t2 表示内存的周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为 t3。则:


t3=t1'h+t2'(1−h) t 3 = t 1 ′ h + t 2 ′ ( 1 − h )


系统的平均存储周期与命中率有很密切的关系,命中率的提高即使很小也能导致性能上的较大改善。

映射机制

当 CPU 发出访存请求后,存储器地址先被送到 Cache 控制器以确定所需数据是否已在 Cache 中,若命中则直接对 Cache 进行访问。这个过程称为 Cache 的地址映射(映像)。在 Cache 的地址映射中,主存和 Cache 将均分成容量相同的块(页)

直接映射

直接映像方式以随机存取存储器作为 Cache 存储器,硬件电路较简单。在进行映像时,主存地址被分成三个部分,从高到低依次为:区号、页号以及页内地址。

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)_主存_02

在直接映像方式中,每个主存页只能复制到某一固定的 Cache 页中,如图 1-4 所示。直接映像方式的映像规律是:主存中每个区的第 0 页,只能进入到 Cache 的第 0 页。即:若当前时刻 Cache 中 0 号页已被占据,而 1-15 号页空闲,现在要将 1 区第 0 页(即内存的 16 页)调入 Cache 是会发生冲突的。所以直接映像的块冲突率非常高。

在 Cache 中,为每一个页设立一个 Cache 标记,该标记用于识别当前的 Cache 块来自于哪个内存页。直接映像中,由于每个区的 N 号页,都必须进入到 Cache 的 N 号页,所以只需要记录区号即可。

直接映像方式的优点是比较容易实现,缺点是不够灵活,有可能使 Cache 的存储空间得不到充分利用。

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)_主存_03

全相联映射

全相联映像使用相联存储器组成的 Cache 存储器。在全相联映像方式中,主存的每一页可以映像到 Cache 的任一页。如果淘汰 Cache 中某一页的内容,则可调入任一主存页的内容,因而较直接映像方式灵活。

在全相联映像方式中,主存地址分为两个部分,分别为地址部分(主存页标记)和数据部分(页内地址)。数据部分用于存放数据,而地址部分则存放该数据的存储器地址。

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)_主存_04

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)_主存_05

在全相联映像方式中,主存地址不能直接提取 Cache 页号,而是需要将主存页标记与 Cache 各页的标记逐个比较,直到找到标记符合的页(访问 Cache 命中),或者全部比较完后仍无符合的标记(访问 Cache 失败)。因此这种映像方式速度很慢,失掉了高速缓存的作用,这是全相联映像方式的最大缺点。如果让主存页标记与各 Cache 标记同时比较,则成本又太高。全相联映像方式因比较器电路难于设计和实现,只适用于小容量 Cache。

组相联映射

组相联映像(页组映像)介于直接映像和全相联映像之间,是这两种映像的一种折衷方案。全相联映像方式以页为单位,可自由映像,没有固定的对应关系。直接映像方式中,主存分组,主存组内的各页与 Cache 的页之间采取的是固定的映像关系,但各组均可映像到 Cache 中。在组相联映像方式中,主存与 Cache 都分组,主存中一个组内的页数与 Cache 的分组数相同。

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)_主存_06

软考-架构师-第一章-计算机组成与体系结构 第五节 存储系统(读书笔记)_读书笔记_07

组相联映像的规则是:主存中的组与 Cache 的组形成直接映像关系,而每个组内的页是全相联映像关系。如主存1区0页,他在 0组中,所以只能进入Cache的0组中,至于进入到Cache的0组0页,还是0组1页,并无强制要求,可任意放置。

在组相联映像中,Cache 中每一页的标记位长度为8位,因为此时除了要记录区号,还得记录组号,即区号7位加组号1位等于8位。

容易看出,如果Cache中每组只有一页,则组相联映像方式就变成了直接映像方式。如果Cache中每组页数为16页(即Cache只分一组),则就是全相联映像。因此,在具体设计组相联映像时,可以根据设计目标选取某一折衷值。

在组相联映像中,由于Cache中每组有若干可供选择的页,因而它在映像定位方面较直接映像方式灵活;每组页数有限,因此付出的代价不是很大,可以根据设计目标选择组内页数。

为保障性能,内存与 Cache 之间的映射往往采用硬件完成,所以Cache 对于程序员而言是透明的,程序员编程时,完全不用考虑 Cache。

替换算法

当Cache产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。但是当Cache已存满数据后,新数据必须替换(淘汰)Cache中的某些旧数据。

随机算法

这是最简单的替换算法。随机法完全不管 Cache 块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。

先进先出(First In and First Out,FIFO)算法

按调入 Cache 的先后决定淘汰的顺序,即在需要更新时,将最先进入 Cache 的块作为被替换的块。这种方法要求为每块做一记录,记下它们进入 Cache 的先后次序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)替换掉。

近期最少使用(Least Recently Used,LRU)算法

LRU 算法是把 CPU 近期最少使用的块作为被替换的块。这种替换方法需要随时记录 Cache 中各块的使用情况,以便确定哪个块是近期最少使用的块。LRU 算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计数器,用以记录其被使用的情况。

写操作

因为需要保证缓存在 Cache 中的数据与内存中的内容一致,相对读操作而言,Cache 的写操作比较复杂。

写直达(write through)

当要写 Cache 时,数据同时写回内存,有时也称为写通。当某一块需要替换时,也不必把这一块写回到主存中去,新调入的块可以立即把这一块覆盖掉。这种方法实现简单,而且能随时保持主存数据的正确性,但可能增加多次不必要的主存写入,会降低存取速度。

写回(write back)

CPU 修改 Cache 的某一块后,相应的数据并不立即写入内存单元,而是当该块从 cache 中被淘汰时,才把数据写回到内存中。在采用这种更新策略的 cache 块表中,一般有一个标志位,当一块中的任何一个单元被修改时,标志位被置“1”。在需要替换掉这一块时,如果标志位为“1”,则必须先把这一块写回到主存中去之后,才能再调入新的块;如果标志位为“0”,则这一块不必写回主存,只要用新调入的块覆盖掉这一块即可。这种方法的优点是操作速度快,缺点是因主存中的字块未随时修改而有可能出错。

标记法

对 Cache 中的每一个数据设置一个有效位。当数据进入 Cache 后,有效位置“1”;而当 CPU 要对该数据进行修改时,数据只需写入内存并同时将该有效位置“0”。当要从 Cache 中读取数据时需要测试其有效位,若为“l”则直接从 Cache 中取数,否则,从内存中取数。


标签:存储器,主存,读书笔记,Cache,软考,映像,架构师,数据,相联
From: https://blog.51cto.com/u_13912333/6879048

相关文章

  • 软考-架构师-第二章-操作系统 第一节 操作系统的类型与结构 (读书笔记)
    版权声明主要针对希赛出版的架构师考试教程《系统架构设计师教程(第4版)》,作者“希赛教育软考学院”。完成相关的读书笔记以便后期自查,仅供个人学习使用,不得用于任何商业用途。版权声明第一节操作系统的类型与结构操作系统的定义操作系统分类第一节操作系统的类型与结构计算机系......
  • 软考-架构师-第二章-操作系统 第五节 文件管理 (读书笔记)
    版权声明主要针对希赛出版的架构师考试教程《系统架构设计师教程(第4版)》,作者“希赛教育软考学院”。完成相关的读书笔记以便后期自查,仅供个人学习使用,不得用于任何商业用途。版权声明第五节文件管理文件的存取权限控制文件的逻辑结构记录文件类型顺序文件索引顺序文件索引文件直......
  • 2022软考系统架构师下午案例分析及答案
    试题一(25分)某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对简单,系统性能方面不做过多考虑。新系统除了保持现有的四级固定会员制......
  • 2023上半年软考成绩复查时间+方式
    2023年上半年软考成绩查询入口已开通,查过成绩之后相信有部分考生对于自己的成绩是有异议的,如果有异议可以申请复查,关于软考成绩复查的方法,这里给大家作简单介绍。  2023上半年计算机软考成绩复查时间汇总表浙江软考2023上半年成绩复查时间2023年7月27日止湖南软考2023上半年成......
  • 高级系统架构师学习(一)系统工程与信息系统基础
    一、前言已经有一段时间没有写博客了,最近事情比较多,工作和家里的事情也比较忙,慢慢的就没写了,不写博客以后人就懒了,故今天下定决心,重新开始强迫自己提升,挤时间学习一些新的东西!这次的专题就不写应用技术了,写一写我学习高级系统架构师的一些心得吧。我是去年报名学习高级......
  • 公司财报分析(读书笔记)
    一、财报财报:一般分为一季报、半年报(中报)、三季报(三季报)、年报(年报)四种。我国上市公司一般每年四次披露财务报表,分别是一季报、中报、三季报和年报。一季报和三季报是未经审计的财务报表,中报和年报是经审计的财务报表。季报和年报区别:季报是未经审计的财务报表,年报是经审......
  • 软考高项(信息系统项目管理师)—— 第 7 章 信息化发展 —— 项目立项管理 —— 项目建
    第7章信息化发展——项目立项管理——项目建议与立项申请 项目立项管理是对拟规划和实施的项目技术上的先进性、适用性、经济上的合理性、效益性,实施上的可能性、风险性以及社会机制的有效性、可持续性等进行全面科学的综合分析,为项目决策提供客观依据的一种经济研究活......
  • C++架构师 课程目录
    C++架构师课程目录实现指南规划流程在实现"C++架构师课程目录"之前,我们需要先规划整个流程。以下是实现该功能的步骤:步骤描述1.创建课程目录类创建一个C++类来表示课程目录,并定义相关的成员变量和方法。2.添加课程实现向课程目录中添加课程的功能。3.删除课......
  • 【软考中级】记录一下我的软件设计师备考
    备考初衷距离上次备考PMP已经过去接近3年了,期间因为工作的关系(其实就是没这个心思)没时间去准备专业技术的相关学习,导致下决定的时候才意识到已经快3年没有正儿八经的学习了,真是生于忧患死于安乐啊,总是想着工作上欠缺的知识可以通过度娘查一查,也不影响项目进度,时间久了也就没那个......
  • 阅读 | 《费曼学习法》读书笔记 | 2023年7月20日
    小虾米原创作品,转载请注明出处:https://www.cnblogs.com/shrimp-can/p/17567931.html 你是否花了很多时间精力学习,效果却始终不好?你是否学习了很多知识,但是当需要表述或写作的时候就像“茶壶里倒饺子,倒不出来”?你是否按步就班的学习,但是学了之后就忘了? 这都是因为没有掌握......