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

存储系统概述

一:层次化存储结构
↓ CPU:最快,容量小,成本高
↓ cache:按内容存取
↓ 主存(内存):随机存储器RAM,只读存储器ROM
↓ 辅存(外存):硬盘,光盘,u盘
速度慢
容量大

局部性原理是层次化存储结构的支撑
时间局部性:刚被方问的内容,立即又被方问
空间局部性:刚被方问的内容,临近的空间很快被访问

分类:
1.存储器位置:
内存 & 外存
2.存取方式
按内容存取:相联存储器(如cache)

按地址存: 随机存储器(如内存)
顺序存取存储器(如磁带)
直接存取存储器(如磁盘)

工作方式:
随机存取存储器RAM(如内存DRAM),内容掉电会丢失
只读存储器:内容不会丢失。如BIOS

eg:CPU方问存储器时,被访问数据一般聚集在一个较小的连续存储区域中,若一个存储单元已被访问,则其邻近的存储单元还有可能被访问该特性被称为:
A:数据局部性
B:指令局部性
C:空间局部性
D:时间局部性(√)

eg:虚拟存储器有()两级存储器构成
A:主存-辅存(√)
B:寄存器-cache
C:寄存器-主存
D:cache-主存
三级存储结构:cache --主存 --外存

eg:在微机系统中,BIOS保存在?
A:主板中的ROM(√)
B:CPU的寄存器
C:主板上的RAM
D:虚拟存储器

二:cache
在计算机的存储系统体系中,cache是访问速度最快的层次(若有寄存器,则寄存器最快)
使用cache改善系统性能的依据是程序的局部性原理
时间局部性:用到的数据,后面频繁用
空间局部性:用到的地址,相邻的地址频繁使用

cache概念
如果 h 代表cache的访问命中率,t1表示cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用cache+主存储器的系统的平均周期为t3,则:
t3 = h *t1 +(1-h)*t2
其中,(1-h)又称为失效率(未命中率)

cache内容与主存的关系
直接相联映像:硬件电路简单,但冲突率很高
全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低
组相联映像:直接相联与全相联的折中
注:主存和cache直接的地址映射由硬件直接完成
eg:以下关于cache的叙述中,不正确的是?
A:cache的设置扩大了主存的容量(√)
B:cache的内容三十主存部分内容的拷贝
C:cache的命中率并不随其内容增大线性的提高
D:cache位于主存和cpu之间。

eg:在程序执行过程中,高速缓存在主存间的地址映射由?
A:操作系统进行管理
B:存储软件进行管理
C:程序员自行安排
D:硬件自动完成(√)

eg:主存与cache的地址映射方式中,(A)方式可以实现主存任意一块装入cache中任意位置,只有装满才需要被替换。
A:全相联(√)
B:直接映射
C:组相联
D:串并联

三:主存编址计算
主存–编址
存储单元:存储单元个数 = 最大地址-最小地址 +1

编址内容:
按字编址:存储体的存储单元是字符单元,即最小寻址单位是一个字
按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。

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

根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:
总片数 = 总容量 / 每片容量。
eg:内存按字节编址,地址从A0000H到CFFFFH的内存,共有()字节,若用存储容量位64k x 8bit的存储器芯片构成该内存空间,至少需要多少片?
CFFFF+1 = D0000;
D0000-A0000=30000 = 3164B;//因为内存按字节编址 所以单位是字节
3
216B / 210 =192KB;
192KB / 64K x 8bit = 3; //8bit = 1B
即 192KB /64 KB = 3;


http://www.kler.cn/news/315127.html

相关文章:

  • 力扣674-最长连续递增序列(Java详细题解)
  • glTF格式:WebGL应用的3D资产优化解决方案
  • 反编译 AndroidManifest.xml文件-android反编译技术
  • 408算法题leetcode--第11天
  • 4.提升客户服务体验:ChatGPT在客服中的应用(4/10)
  • 如何用 HAproxy 实施高可用部署 | OceanBase 实践
  • 深度学习自编码器 - 去噪自编码器篇
  • Vue3.5+ 侦听器的3个更新
  • Java 编码系列:String、StringBuilder 与包装类
  • 前端分段式渲染较长文章
  • SQL_yog安装和使用演示--mysql三层结构
  • Vue.js 组件数据定义:为何使用函数而非对象
  • 微服务注册中⼼2
  • 基于python+django+vue的医院预约挂号系统
  • MySQL系列—11.Redo log
  • el-upload如何自定展示上传的文件
  • [数据集][目标检测]棉花叶子病害检测数据集VOC+YOLO格式977张22类别
  • go项目多环境配置
  • Redis中的数据结构详解与示例
  • Java笔试面试题AI答之单元测试JUnit(7)
  • Winform中使用MySQL数据库
  • Hutool:Java开发者的瑞士军刀
  • 2.使用 VSCode 过程中的英语积累 - Edit 菜单(每一次重点积累 5 个单词)
  • 如何在 Ubuntu 16.04 服务器上安装 Python 3 并设置编程环境
  • JUC并发编程
  • 第二十一节:学习Redis缓存数据库的Hash操作(自学Spring boot 3.x的第五天)
  • 深度学习02-pytorch-08-自动微分模块
  • OctoSQL 查询大量数据库和文件格式
  • Wireshark学习使用记录
  • 学习笔记JVM篇(三)