软考中级软件设计师——存储系统

ops/2024/10/22 16:19:25/

软考中级软件设计师——存储系统

  • 存储系统(层次结构)
  • 存储系统分类
  • 高速缓存Cache
    • Cache组成
    • Cache的三种地址映像
    • Cache的性能分析
  • 主存的扩展
    • 位扩展和字扩展
    • 主存的编址
    • 虚拟存储器
    • 磁盘存储器

存储系统(层次结构)

在这里插入图片描述
核心:在存储层次中,层次越高,越靠近CPU,则存储介质的访问速度越快,容量越小,其价格也就越高。

CPU在存储系统中指的是它里面所包含的一些通用寄存器,其速度是最快的,一般要求在半个 CPU 时钟周期内完成读写,然后才是高速缓存Cache,Cache中还有L1 Cache,L2 Cache,L3 Cache,集成在CPU内部,同理,L1 Cache最靠近CPU,所以在三层Cache中L1 Cache访问速度最快,容量最小,价格最高,L1 Cache的访问速度几乎和寄存器一样快,通常只需要2~4个时钟周期,而大小在几十KB到几百KB不等。其次是L2 Cache和L3 Cache。L2 Cache 离CPU核心更远,它的大小比L1 Cache更大,通常在几百KB到几MB不等,访问速度更慢,速度在10~20个时钟周期。而L3 Cache通常是多个CPU核心共用的,位置更远,大小更大,通常在几MB到几十MB不等,访问速度更慢,在2060个时钟周期。Cache之后是内存,内存速度大概在200300个时钟周期之间。内存之后是硬盘,分为固体硬盘和机械硬盘。固体硬盘(SSD)结构和内存相似,但是它相比内存的优点是断电后数据还是存在的,而内存、寄存器、高速缓存断电后数据都会丢失。内存的读写速度比SSD大概快10~1000倍。机械硬盘(HDD)是通过物理读写的方式来访问数据,访问速度非常慢,它的速度比内存慢10w倍左右。由于SSD的价格快接近机械硬盘了,因此机械硬盘已经逐渐被SSD替代了。

存储系统有两套层次结构,分别是主存—辅存和Cache—主存。
主存—辅存:实现虚拟存储系统,解决了容量不够的问题
Cache—主存:解决了主存与CPU速度不匹配的问题
在这里插入图片描述
Cache相当于主存部分数据的一个复制,平衡主存和CPU中间速度不匹配的问题。

存储系统分类

①按位置分类

  • 内存(主存)
    用来存储当前运行需要的程序和数据,速度快,容量小
  • 外存(辅存)
    用来存储当前不参与运行的数据,容量大但速度慢
    ②按材料分类
  • 磁存储器
    用磁性介质做成。如磁芯、磁泡、磁盘、磁带等
  • 半导体存储器
    根据所用的元件可分为双极型和MOS型两类;根据是否需要刷新又可以分为静态和动态两类
  • 光存储器
    由光学、电学和机械部件等组成,如光盘存储器
    ③按工作方式分类
  • 读写存储器(RAM)
    即可读取数据也能存入数据的存储器
  • 只读存储器(ROM)
    工作过程仅能读取的存储器
    根据数据的写入方法,又可细分为ROM、PROM、EPROM和EEPROM等类型
分类说明
固定只读存储器(ROM)这种存储器是厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制
可编程的只读存储器(PROM)其中的内容可以由用户一次性的写入,写入后不能再修改
可擦除可编程的只读存储器(EPROM)其中的内容既可以读出,也可以由用户写入,写入后还可以修改,紫外线照射擦除信息
电擦除可编程的只读存储器(EEPROM)与EPROM相似,EEPROM中的内容既可以读出,也可以进行改写,电擦除的方法进行数据的改写
闪速存储器(Flash Memory)简称闪存,闪存的特性介于EPROM和EEPROM之间,类似于EEPROM,也可以使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于EPROM。

高速缓存Cache

Cache是位于CPU和主存之间的高速存储子系统

采用高速缓存的目的:提高存储器的平均访问速度,使存储器的速度与CPU的速度相匹配

Cache的存在对程序员是透明的。其地址变换和数据块的替换算法均由硬件实现。通常Cache被集成到CPU内,以提高访问速度,其主要特点是容量小,速度快,成本高。

Cache组成

Cache由两部分组成。
1.Cache存储部分:用来存放主存的部分复制信息
2.控制部分的功能是:判断CPU要访问的底层信息是否在Cache中。若在,则命中,若不在则没有命中。

Cache的三种地址映像

因为处理机都是按主存地址访问,而应从Cache存储器中读写信息,因此就需要地址映像,即把主存中的地址映射成Cache存储器中的地址。地址映像方法有三种。

  • 直接映像
    直接映像就是主存的块与Cache中块的对应关系是固定的。主存中的块只能存放在Cache存储器的相同块号中,因此只要主存地址中的主存区号与Cache的主存区号相同,则表明访问Cache命中。
    优点:地址变换简单,由于映射关系固定,地址变换过程可以非常迅速。
    缺点:灵活性较差,当程序频繁访问两个相互冲突(即映射到同一缓存块)的主存块时,即使缓存中有其他空闲块,也会因为固定的映射关系而无法使用,导致缓存命中率下降
  • 全相连映像
    全相连映像就是允许主存任一块可以调入Cache的任一块空间。地址变换时,将主存地址高位表示的主存块号与Cache中的主存块号进行比较,若相同则命中。
    优点:主存的块调入Cache的位置不受限制,十分灵活,缓存空间可以被充分利用,因为每个缓存块都可以存储来自主存的任何块,冲突的概率相对较低
    缺点:无法从主存块号中直接获得Cache块号,需要一种机制来快速查找主存块在缓存中的位置,这通常需要一个专门的查找表或算法,变换比较复杂,速度比较慢
  • 组相联映像
    这种方式是前面两种方式的折中,具体方法是将Cache先分成组再分块,组相联映像就是组间采用直接映像方式,而组内的块采用全相连映像方式。

Cache的性能分析

若H为Cache的命中率, tc 为Cache的存取时间,tm为主存的访问时间,则Cache的等效访问时间ta为:

t a = H t c + ( 1 − H ) t m t~a~=Ht~c~+(1-H)t~m~ t a =Ht c +(1H)t m 
使用Cache比不使用Cache的CPU访问存储器的速度提高的倍数r可以用以下公式求得:
r = t m / t a r=t~m~/t~a~ r=t m /t a 
知识点:
①Cache的设置不会扩大主存容量
②Cache命中率并不随器容量的增大线性提高,而是当上升到一定程度到达临界点后就会下降
③Cache与主存之间的地址映射由硬件自己完成

主存的扩展

在这里插入图片描述

位扩展和字扩展

主存的扩展主要涉及到位扩展和字扩展这两个方式。这两种扩展方式都是为了提高存储器的容量,以适应不同应用场景的需求。

位扩展:位扩展是指在不增加存储单元数量的情况下,通过增加每个存储单元的位数来扩展存储容量。需要将多个相同容量的存储器芯片并联起来,以实现位数的增加。这种方式主要用于提高数据总线的宽度,即CPU一次能够读取或写入的二进制位数。

字扩展:字扩展是指通过增加存储单元的数量来扩展存储容量,而每个存储单元的位数保持不变。需要将多个相同位数但容量不同的存储器芯片串联起来,以实现存储单元数量的增加。这种方式主要用于增加存储器的总存储单元数,以存储更多的数据。

现在有一个8*4位的存储器,分别进行位扩展和字扩展,如下图:
在这里插入图片描述

主存的编址

例题:内存地址从AC000H到C7FFFH,共有①____个地址单元,如果该内存地址按字(16bit)编址,由28片存储芯片构成。已知构成此内存的芯片每片有16K个存储单元,则该芯片每个存储单元存储②____位。

①地址单元:
要计算两个地址单元之间的长度,需要由末尾地址减去首地址,然后再加1
类比于种树问题,计算从第二棵树到第五棵树之间总共有几棵树,涉及到端点的问题,两端都有树的话,则种树的棵数应比要分的段数多1,即:棵数=间隔数+1。
在这里插入图片描述
在这里插入图片描述
C7FFFH-AC000H+1=1C000H
在这里插入图片描述

所以有112个地址单元。
②计算内存大小有两个方法
已知计算出共有112K个地址单元,一个字是16bit,所以内存大小共有:112K × 16bit;同时题目中告诉你是有28个存储芯片,每片有16K个存储单元,则内存大小共有:28 × 16K × 每个单元存储多少位,即可得出:
在这里插入图片描述
在这里插入图片描述

计算得出:每个单元存储46位

虚拟存储器

虚拟存储器是由主存、辅存、存储管理单元及操作系统中的存储管理软件组成的存储系统。程序员使用该存储系统时,可以使用的内存空间可远远大于主存的物理空间,但实际上并不存在那么大的主存,故称为虚拟存储器。

虚拟存储器使存储系统既具有相当于外存的容量,又具有接近于主存的访问速度。

工作原理:
虚拟存储器基于局部性原理工作,即应用程序在运行前,仅需将当前要运行的少数页面或段先装入内存,其余部分暂留磁盘上。当要执行的指令不在内存时,系统会自动将它们从外存调入内存。若内存空间不足,系统会选择部分内存空间的内容交换到磁盘上,并释放这些内存空间供其他进程使用。

特点:

  • 逻辑容量远大于物理主存容量,扩大了程序可访问的存储空间,使得大型程序或多任务运行成为可能
  • 虚拟存储器支持多任务多环境,每个人物都有独立的虚拟地址空间,便于实施多任务的保护和隔离
  • 通过虚拟存储器的管理,操作系统可以更灵活地分配和回收内存资源,便于操作系统实现内存管理,提高内存使用效率
  • 逻辑容量受限于计算机的地址结构和可用磁盘容量
  • 管理方式有段式、页式和段页式三种

磁盘存储器

在这里插入图片描述
磁盘存储器是一种以磁盘为存储介质的存储器。它通过磁头在旋转的磁盘盘片表面进行数据的读写操作,是计算机系统中常用的外部存储设备,用于长期保存大量的数据信息。

存取时间 = 寻道时间 + 等待时间(平均定位时间+转动延迟)

寻道时间是指磁头移动到磁道所需时间;等待时间为等待读写的扇区转到磁头下方所用的时间


http://www.ppmy.cn/ops/112825.html

相关文章

AI问答-Vue实例属性/实例方法:$refs、$emit、$attrs、$props、$data...

一、本文简介 在Vue.js中,$ 符号通常用于表示Vue实例或组件上的内置属性和方法,这些被称为“实例属性”或“实例方法”。以下是一些常见的以$开头的Vue实例属性和方法 1.1、实例属性 序号实例属性解释1$dataVue实例的数据对象,用于存储组件…

SpringMVC与SpringBoot的区别

SpringMVC 和 Spring Boot 都是 Spring 框架的一部分,但它们的功能和目标有明显的不同。 形式上:SpringBoot是一个自动化配置的工具;SpringMVC是一个web框架。 在搭建项目时:SpringMVC需要手动配置xml文件,同时需要配…

鸿蒙开发之ArkUI 界面篇 十二 背景属性

backgroundColor背景色(纯颜色,没法实现立体感之类高级效果)、 backgroundImage背景图(一般是设计师设计好的图)、 backgroundImageSize背景图尺寸(用于调整背景图的尺寸)、 backgroundImagePosition背景图位置(用于调整背景图的位置)。 背景图的添加是属性backgrou…

深入理解Go语言中的接口定义与使用

在Go语言的编程实践中,接口(Interface) 是一个强大而灵活的特性,它允许我们定义一组方法,而不需要指定这些方法的具体实现。通过接口,我们可以将不同类型的值组合在一起,只要它们实现了接口中定…

F12抓包12:Performance(性能)前端性能分析

课程大纲 使用场景: ① 前端界面加载性能测试。 ② 导出性能报告给前端开发。 复习:后端(接口)性能分析 ① 所有请求耗时时间轴:“网络”(Network) - 概览。 ② 单个请求耗时:“网络”(Network&#xf…

『功能项目』切换职业技能面板【49】

我们打开上一篇48切换职业面板的项目, 本章要做的事情是制作第二职业法师技能面板、第三职业面板并且完成切换 双击打开Canvas进入预制体空间 复制三个技能栏面板 重命名 设置第一技能栏 设置第二职业技能栏 设置第三职业技能栏 修改脚本:ChangeProfess…

深入Redis:复杂的集群

广义的集群,可能说只要是多台机器组成了分布式系统,就可以称之为集群。 狭义的集群,指的是Redis提供的集群模式,这个集群模式之下,主要是解决存储空间不足的问题,以及如何拓展存储空间。 之前的哨兵模式&…

MySQL|MySQL 中 `DATE_FORMAT()` 函数的使用

文章目录 概述方法签名格式化字符基本用法实际应用案例示例1:显示日期和星期几示例2:仅显示日期示例3:按周统计订单数量 注意事项结论 概述 DATE_FORMAT() 是 MySQL 中的一个内置函数,用于格式化日期和时间数据。它可以根据指定的…