当前位置: 首页 > news >正文

软件设计师学习笔记6-存储系统

1.层次化存储体系

1.1层次化存储结构

局部性原理是层次化存储结构的支持

时空局部性:刚被访问的内容,立即又被访问(eg: 循环体 )

空间局部性:刚被访问的内容,临近的空间很快被访问(eg:数组)

1.2层次化存储结构的分类

DRAM:动态随机存取存储器

SRAM:静态随机存取存储器

Cache:高速缓存

EEPROM:电可擦可编程只读存储器

2.Cache

2.1概念

(1)在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)

注:前者是对于三级存储体系而言,后者是对于整个存储体系而言

(2)使用Cache改善系统性能的依据是程序的局部性原理(时间局部性和空间局部性)

2.2映像

2.2.1概念

(1)地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)。

例如,某机的主存容量为I GB,划分为2048页,每页512 KB;Cache容量为8 MB,划分为16页,每页512 KB。

(2)如果以h代表对Cache的访问命中率,t 1表示Cache的周期时间,t 2表示主存储器周期时间,以读操作为例,使用"Cache+主存储器”的系统的平均周期为t 3,则:

t3=h * t1+(1-h) * t2

其中,(1-h)又称为失效率(未命中率)。

2.2.2分类

直接相联映像:硬件电路较简单,但冲突率很高。

全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低。

组相联映像:直接相联与全相联的折中。

注:主存与Cache之间的地址映射由硬件直接完成。

2.2.3不同映像的图解(帮助理解,不考)

(1)直接相联映像

其中主存中的每个区中的x页只能对应Cache中的x页,一旦Cache中的x页被主存中某一区的x页占据,那么其它区的x页就会与之冲突,所以冲率很高,结构简单

(2)全相联映像

主存中任意页可以与Cache中任意页对应,所以冲突率低,但电路复杂

(3)组相联映像

该图片来自希赛软考

对主存和Cache都进行了分组,每个区的x组只能与Cache中的x组对应,但是一个组的页可以任意对应。就是前两者的缝合怪,冲突率和复杂性都属于中庸

3.主存编址方法

3.1计算公式

(1)存储单元

存储单元个数 = 最大地址 - 最小地址 + 1

(2)编址内容

按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字(该字的字长题目会给出)

按字节编址(默认):存储体的存储单元是字节存储单元,即最小寻址单位是一个字节(字节的字长固定为8个bit)

(3)总容量 = 存储单元个数 * 编址内容

(4)总片数 = 总容量/每片容量

3.2补充内容

1 K = 2 ^ 10

1 M = 2 ^ 20

1 G = 2 ^ 30

声明:笔记内容参考自希赛软考

上一篇:软件设计师学习笔记5-流水线技术

http://www.lryc.cn/news/140566.html

相关文章:

  • 【TI毫米波雷达笔记】CCS雷达工程内存RAM指定(DATA_SECTION,以IWR6843AOP为例)
  • 安卓移动应用开发实训室建设方案
  • 我的编程学习过程
  • 亚马逊云科技 云技能孵化营 初识机器学习
  • 多种编程语言运行速度排名-10亿次除7求余数为0的数量
  • Web 应用框架 Express 构建 RESTful API
  • Orchestrator介绍一 简介安装与web端管理
  • 【C++心愿便利店】No.3---内联函数、auto、范围for、nullptr
  • CV:边缘检测的算法包含 Prewitt、Sobel、Laplacian 和 Canny。
  • 【算法系列篇】前缀和
  • 若依移动端Ruoyi-App 项目的后端项目入门
  • (学习笔记-调度算法)内存页面置换算法
  • 行为型模式-观察者模式
  • 前端面试:【新技术与趋势】WebAssembly、Serverless、GraphQL
  • 【ubuntu】 20.04 网络连接器图标不显示、有线未托管、设置界面中没有“网络”选项等问题解决方案
  • SpringCloud/SpringBoot多模块项目中配置公共AOP模块实现打印子模块Controller所有请求参数与日志
  • 【GeoDa实用技巧100例】022:geoda生成空间权重矩阵(邻接矩阵、距离矩阵)
  • 基于web的鲜花商城系统java jsp网上购物超市mysql源代码
  • 意外发现Cortex-M内核带的64bit时间戳,比32bit的DWT时钟周期计数器更方便,再也不用担心溢出问题了
  • 数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
  • 改进YOLO系列:6.添加ECA注意力机制
  • 软件测试知识点总结(一)
  • 持续集成与持续交付:现代软件测试的变革之路
  • 深度学习基本理论下篇:(梯度下降/卷积/池化/归一化/AlexNet/归一化/Dropout/卷积核)、深度学习面试
  • [Ubuntu 20.04] 通过udev规则修改网卡名称(例如eth0)
  • Java“牵手”根据关键词搜索(分类搜索)lazada商品列表页面数据获取方法,lazadaAPI实现批量商品数据抓取示例
  • Java—实现多线程程序 | 入门
  • 8.5 【C语言】指向函数的指针
  • C++实现字符串的逆置
  • 论Spring或Spring Boot的花式扩展