[中级]软考_软件设计_计算机组成与体系结构_07_存储系统

存储系统

  • 层次划存储
    • 概念图
    • 局促性原理
    • 分类
      • 存储器位置
      • 存取方式
        • 按内容存储
        • 按地址存储
      • 工作方式
        • 拓展
      • 往年真题
  • 高速缓存(cache)
    • 概念
      • 案例解析:求取平均时间
    • Cache与主存的地址映射
    • 映像
      • 往年真题
  • 主存编制计算
    • 编址
    • 大小的求取
    • 编址与计算
      • 存储单元
      • 编址内容
      • 总容量求取
      • 例题解析:编址与计算

层次划存储

概念图

存储结构图

局促性原理

是层次化存储结构的支撑

  • 时间局部性:刚被访问的内容,立即又被访问,一般是循环的体现。
  • 空间局部性:刚被访问的内容,临近的空间很快被访问,一般是顺序的体现。

分类

存储器位置

内存&外存

  • 计算器内部叫内存也叫主存
  • 计算机外部的叫外存也叫辅存

存取方式

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

磁盘:包含连个过程:①移绿调度的过程②旋转延迟的过程(顺序)

工作方式

  • 随机存取存储器RAM(如内存:DRAM)

RAM:掉电丢失,会丢失数据
DRAM:动态的,会定时刷新,成本稍微低一些,SRAM静态的,不会取刷新,成本稍微高一些

  • 只读存储器ROM(如BIOS)
    掉电保留,不会丢失数据
拓展
  • DRAM:动态随机存取存储器
  • SRAM:静态随机存取存储器
  • Cache:高速缓存
  • EEPROM:电可擦可编程只读存储器

往年真题

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

备注:只分为:空间和时间,所以A、B是错误的
时间局促性:一定时间内再次被访问,循环的原理
空间局促性:顺序的考察


虚拟存储体系由( A )两级存储器构成。
A、主存-辅存
B、寄存器-Cache
C、寄存器-主存
D、Cache-主存


在微机系统中,BIOS(基本输入输出系统保存在( A )
A、主板上的ROM
B、CPU的寄存器
C、主板上的RAM
D、虚拟存储器

高速缓存(cache)

概念

在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)。
使用Cache改善系统性能的依据是程序的局部性原理。

上节回顾:

  • 时间局部性:刚被访问的内容,立即又被访问,一般是循环的体现。
  • 空间局部性:刚被访问的内容,临近的空间很快被访问,一般是顺序的体现。

案例解析:求取平均时间

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

  • cache一般命中率为90%左右,所以效率是非常高的。
  • 失效率为:1-90% = 10%
  • 假设t1(Cache)周期是1ms,t2(主存储器)周期是100毫秒
  • 假设只有catch+主存结构,假如读取了100次数据,那么平均时间的求取是:
    1. (100*90%)×1ms+10×100ms

    2. 90×1ms+100×100ms

    3. 那么平均时间就是:
      90 × 1 m s + 10 × 100 m s 100 90×1ms+10×100ms \over 100 10090×1ms+10×100ms

    4. 也就是 概率 数值 概率 \over 数值 数值概率

  • 平均时间结果为10.9ms

Cache与主存的地址映射

  • 直接相联映像:硬件电路较简单,但冲突率很高
  • 全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低
  • 组相联映像:直接相联与全相联的折中

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

映像

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

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

  • 直接相联映像

直接相联映像
电路简单,冲突率高

  • 全相联映像

全相联映像
冲突率低,电路复杂

  • 组相联映像

组相联映像
冲突率中,电路复杂度中

  • 相联映像对比表格
冲突率复杂度
直接相联映像简单
全相联映像复杂
组相联映像折中

往年真题

以下关于Cache(高速缓冲存储器)的叙述中,不正确的是( A )。
A、Cache的设置扩大了主存的容量
B、Cache的内容是主存部分内容的拷贝
C、Cache的命中率并不随其容量增大线性地提高
D、Cache位于主存与CPU之间


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


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

主存编制计算

编址

编址
一般字长题目中会给出,这里指定了4个bit,最常见的是16位字长,这样的一组被称为存储单元

大小的求取

单位求取

  • 不仅可以纵向拼接还可以横行拼接
    横向拼接
    八位字长我们一般成为字节

编址与计算

存储单元

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

编址内容

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

总容量求取

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

一般总容量都是比较大的,所以我们都是小芯片进行的拼装,所以要根据总容量求出总片数。

根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:
总片数 = 总容量 每片的容量 总片数 = {总容量 \over 每片的容量} 总片数=每片的容量总容量

  • 考试形式:
    给出地址范围,给出编制内容,求出总容量
    或者再给芯片容量,求出总片数
    再或者给片数,求出芯片容量

例题解析:编址与计算

内存按字节编址,地址从A0000H到CFFFFH的内存,共有( D )字节,若用存储容量为64K×8tit的存储器芯片构成该内存空间,至少需要( B )片。

A、80KB      B、96KB
C、160KB      D、192KB

A、2      B、3
c、5       D、8

注意:字节编制:字节一般用大写字母B来表示,占用8bit
注意:H是16进制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/518598.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java爬虫入门程序

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version> </dependency><!-- 爬虫需…

github生成新的SSH密钥

首先是参考官方文档 生成新的 SSH 密钥并将其添加到 ssh-agent述 当你在创建SSH密钥时遇到提示&#xff1a; Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):这一步是让你选择保存生成的SSH密钥对的文件名和位置。如果你直接按回车键&#xff08;[Pr…

Java项目:基于Springboot+vue实现的医院住院管理系统设计与实现(源码+数据库+开题报告+任务书+毕业论文)

一、项目简介 本项目是一套基于Springbootvue实现的医院住院管理系统设 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简…

Activity入门2——生命周期与任务栈

OnCreate与OnDestroy OnCreate&#xff1a;创建一个活动。 OnDestroy&#xff1a;销毁一个活动。 假设某个用户在一个活动里输入了一些信息&#xff0c;用户由于某些原因退出了该活动&#xff0c;返回时希望能够还原之前输入的信息&#xff0c;不然重新输入就太麻烦了。 pub…

软考高级架构师:嵌入式软件开发概念和例题

一、AI 讲解 嵌入式软件开发和传统软件开发的差异 嵌入式软件开发与传统软件开发在目标、环境和开发过程等方面有显著的差异。下面通过对比的方式&#xff0c;简要阐述这些差异所在&#xff1a; 特性嵌入式软件开发传统软件开发开发目标针对特定硬件系统&#xff0c;强调软硬…

【Fn+windows键】‘Windows键+L’不能锁屏的问题

winL锁屏 3个键盘灯1.NumLock指示灯2.CapsLock指示灯3.ScrollLock指示灯 2.电脑锁屏问题 突然发现winL不能锁屏&#xff0c;反而是在自己打开的软件界面内编辑 各种操作之下&#xff0c;发现键盘上最不常用的灯亮了 所以了解了一番键盘灯的功能 3个键盘灯 1.NumLock指示灯 N…

快递费用一目了然:taobao.item_fee API在电商中的应用

taobao.item_fee API在电商中的应用主要体现在精准计算快递费用&#xff0c;从而为用户提供一个更加透明和便捷的购物体验。这一接口允许淘宝或天猫的开发者根据商品ID、收货地址等信息&#xff0c;精确计算商品的快递费用。对于用户而言&#xff0c;这意味着在购物过程中能够实…

工厂模式图

工厂模式 介绍一下简单工厂模式与工厂方法模式 结构图 简单工厂模式 工厂方法模式

【剑指offr--C/C++】JZ7 重建二叉树

一、题目 二、思路及代码 前序遍历&#xff1a;中、左、右。所以前序遍历的第一个节点是树的根节点&#xff0c;第二个节点是左子树的根节点。。。。 中序遍历&#xff1a;左、中、右。树的根节点在中间某处 我们可以根据二者的特点结合一下&#xff1a;对于前序遍历序列{1,2,4…

ubuntu安装sublime3并设置中文

安装Sublime Text 3 在Ubuntu上安装Sublime Text 3可以通过以下步骤进行&#xff1a; 打开终端。 导入Sublime Text 3的GPG密钥&#xff1a; wget -qO- https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - 添加Sublime Text 3的存储库&#xff1a; …

纯C代码模板

一、快排 void QuickSort(int *a,int left,int right){if(left>right) return;else{int low left,high right;int pivot a[low];while(low<high){while(a[high] > pivot && low < high){high--;}a[low] a[high]; //必须先动a[low]while(a[low] < …

TR3 - Transformer算法详解

目录 文本输入处理词向量位置向量 编码器 EncoderSelf-Attention多头注意力机制残差连接 解码器 Decoder线性层与Softmax损失函数总结与心得体会 这周来看一下Transformer是怎么将文本转换成向量&#xff0c;然后又输入到模型处理并得到最终的输出的。 文本输入处理 词向量 …

计算机内存是如何管理的

计算内存的那些事儿——内存管理 大家回忆一下&#xff0c;计算机结构&#xff0c;或者说一个SoC&#xff08;system-on-chip&#xff09;芯片的结构。 cpu、memory、peripherals&#xff0c;这是计算机的主要部件&#xff0c;三者之间通过system bus勾搭在一起。 The main co…

易支付和独角数卡对接TokenPay开通USDT收款教程

TRX、USDT-TRC20、ETH系列区块链代币的支付通道是很多发卡和电商平台需要的&#xff0c;因为传统的微信、支付宝、PayPal等支付接口审查严格、手续费高。自建的代币接口完成没有手续费&#xff0c;稳定可靠&#xff0c;也没有审查要求。 易支付在行业普及广泛&#xff0c;大部…

JVM(Java虚拟机)

文章目录 一、JVM简介1.1 JVM概念1.2 什么是Java虚拟机呢&#xff1f;Java虚拟机的好处是什么呢&#xff1f; 二、JVM整体组成部分三、类加载器3.1 类加载子系统3.2 类加载过程3.2.1 装载(Load)3.2.2 链接(Link)3.2.3 初始化(Initialize) 四、运行时数据区4.1 方法区&#xff0…

stack 与 queue 与 priority_queue 与 仿函数 与 模板进阶

目录 stack queue deque priority_queue 使用 模拟实现 仿函数 仿函数的用法 仿函数的意义 模板进阶 非类型模板参数 模板特化 类模板特化的用法 类模板特化的意义 函数模板特化的用法 模板的分离编译 模板分离编译报错的原因 ​解决方法 模板总结 栈、队列…

Git安装教程(图文安装)

Git Bash是git(版本管理器)中提供的一个命令行工具&#xff0c;外观类似于Windows系统内置的cmd命令行工具。 可以将Git Bash看作是一个终端模拟器&#xff0c;它提供了类似于Linux和Unix系统下Bash Shell环境的功能。通过Git Bash&#xff0c;用户可以在Windows系统中运行基于…

【数据处理包Pandas】DataFrame对象的合并

目录 前言一、回顾Numpy数组的合并二、concat方法合并DataFrame对象三、append方法的使用四、merge方法合并DataFrame对象&#xff08;一&#xff09;比较merge与concat&#xff08;二&#xff09;参数on、left_on和right_on的用法&#xff08;三&#xff09;合并时四种不同的连…

c# wpf template ItemsPanel 简单试验

1.概要 2.代码 <Window x:Class"WpfApp2.Window9"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/…

软件测试(Junit5 单元测试框架)(五)

1. Junit单元测试框架 Junit 是 Java 的一个单元测试框架, 使用Selenium写自动化测试用例, 使用Junit 管理写好的测试用例. 2. 注解&#xff1a; Test 表示当前的这个方法是一个测试用例. 示例: 添加依赖 <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-…