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

软件设计师 - 层次化存储

层次化存储体系

辅助存储器,外存:硬盘,光盘,U盘等,其容量能达到TB级别

内存:随机存储器RAM,只读存储器ROM,其容量能达到GB级别

Cache:按内容存取,其容量能达到MB级别

CPU中寄存器:最快,容量小,成本高,其容量能达到B级别

虚拟存储体系:内存+外存

三级存储体系:Cache+内存+外存

局部性原理

是层次化存储结构的支撑

时间局部性:刚被访问的内容,立即被访问,循环的体现

空间局部性:刚被访问的内容,临近的空间很快被访问,顺序的体现,数组

存储器分类

按存储器位置分类:内存,外存

按存取方式分类:

        按内容存取:

                相联存储器,Cache

        按地址存取:

                随机存取存储器:内容

                顺序存取存储器:磁带

                直接存取存储器:磁盘

按工作方式分类:

        随机存取存储器RAM,内存DRAM,掉电内容丢失,定时刷新

        只读存储器ROM,BIOS

其他概念

SRAM:静态随机存取存储器,不需要定时刷新

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

Cache

命中率

会随着容量的扩大而提高,但并非线性的,命中率主要由映射方式决定

平均访问时间

命中概率*Cache访问时间+非命中概率*主存访问时间(默认包含了访问Cache不命中的时间)

主存与Cache之间的地址映射有硬件直接完成,映射方式如下:

  • 直接相联映像:硬件电路简单,冲突率很高,cache内分块,主存中分区,区内分块,cache内的块只与主存中块号相同的块相联。
  • 全相联映像:冲突率低,cache内分块,主存中分块,cache内的块可以和主存中任意块相联。
  • 组相联映像:前两者折中,cache内分组,组内分页,主存中分区,区内分组,组内分页,cache内的页只与主存中与其组号相同的组内任意页相连,组间使用直接相联,组内使用全相联。

替换算法

  • LRU(Least Recently Used)
  • LFU(Least Frequently Used)
  • FIFO(First-In, First-Out)
  • Random Replacement
  • MRU(Most Recently Used)
  • ARC(Adaptive Replacement Cache)
  • 2Q
  • Clock Algorithm

主存编址计算

存储单元:一般是8bit

每个存储单元都有一个地址

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

编址内容:

按字编址:这个和系统位数有关

按字节编址:8bit一个存储单元

总容量:存储单元个数*编址内容

总片数:总容量/每片容量


http://www.kler.cn/a/390182.html

相关文章:

  • 【金融风控】特征评估与筛选详解
  • 应对JSON解析键值对乱序问题的实用解决方案
  • SCUI Admin + Laravel 整合
  • DHCP与DNS安全管理
  • 微服务电商平台课程三:搭建后台服务
  • [HNCTF 2022 Week1]ret2shellcode-好久不见12
  • 大数据-216 数据挖掘 机器学习理论 - KMeans 基于轮廓系数来选择 n_clusters
  • 鸿蒙UI开发——小图标的使用
  • 使用API有效率地管理Dynadot域名,列表形式查看账户whois联系人信息
  • Dubbo负载均衡
  • Baget 私有化nuget
  • SpringBoot助力企业资产优化
  • Matlab实现鹈鹕优化算法(POA)求解路径规划问题
  • [Docker#4] 镜像仓库 | 部分常用命令
  • AI生活之我用AI处理Excel表格
  • go函数传值是值传递?还是引用传递?slice案例加图解
  • 数据分析-44-时间序列预测之深度学习方法TCN
  • Autosar CP Network Management模块规范导读
  • C#中 layout的用法
  • 易泊车牌识别相机:4S 店的智能之选
  • Spring Boot与Spring Data JPA:简化数据库操作
  • Python毕业设计选题:基于django+vue的医院挂号系统设计与实现
  • stm32 踩坑笔记
  • 通过EtherNetIP转Profinet网关实现跨品牌EthernetIP协议的PLC通讯
  • 【系统设计】数据库压缩技术详解:从基础到实践(附Redis内存优化实战案例)
  • C#中break和continue的区别?