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

计算机组成原理(第三章 存储系统)

3.1存储系统的概述

CPU不直接和辅存交换数据的原因是因为CPU处理速度很快,辅存跟不上,降低CPU的处理速度

所以打开在辅存里的软件要把数据读入主存

辅存的数据只有进入到主存再能被CPU访问

为什么要有Cache因为主存的速度也跟不上CPU,所以会把经常用的代码放在Cache中(目的:缓解主存与CPU之间的速度矛盾

信息可保存性分类

  • 断电后
    • 存储信息消失:主存和Cache
    • 储存信息依旧保持:磁盘和光盘
  • 信息读出后
    • 原信息被破坏:DRAM
    • 原信息不被破坏:SRAM

3.2.0+3.2.3主储存起的基本组成

注:mos管可以理解为一种电控开关,输入电压达到某个阈值MOS管可以接通

片选线:读取指定那个地址的数据

金属引脚个数:地址线+数据线+片选线+读/写控制线 +(供电+接地)

3.2.1SRAM(静态RAM)和DRAM(动态RAM)

DRAM和SRAM的区别

  • DRAM用于主存,SRAM用于Cache
  • DRAM使用栅极电容储存信息,SRAM使用双稳态触发器储存信息
  • 栅极电容储存:每个储存元件制成本低,集成度高,功耗低
  • 双稳态触发器储存:每个储存元件制成本高,集成度低,功耗大

DRAM的刷新

  • 刷新周期2ms
  • 每次刷新一行的存储单元
  • 为啥要用行列地址:减少选通线的数量
  • 如何刷新:有硬件支持,读出一行的信息后重新写入,占用1个读/写周期
  • 在什么时候刷新:
    • 分散刷新:每次读完都刷新一次
    • 集中刷新:2ms内集中安排全部刷新,
    • 异步刷新:2ms内每行刷新1次刷新

行列地址通过相同的引脚前后分两次输入

3.2.2只读储存器ROM

RAM:断电易失

ROM:断电不易失

BIOS芯片(ROM):储存了自举装入程序,负责引导装入操作系统(开机)

逻辑上看主存是由RAM和ROM组成的

3.2.4双端RAM和多模块储存器

多核CPU都要访存,怎么办?双端口RAM

CPU读写速度比主存快太多,主存回复时间长怎么办?多模块储存器

为啥探讨连续访问的情况:大部分的数据都放在了连续的地址中,比如数组和程序

每个模块都有相同的内存和存储速度,各个模块相互独立,既能并行工作,有能交叉工作

双通道:插入同色的(不同色的相当于扩容)

为啥要选相同主频的内存条:因为高频的会降频

为啥要选相同容量的内存条:因为低地址的内存条会交叉编制变成双通道,高地址的还是单通道

3.3主存和CPU的连接

位扩展

字扩展

线选法

译码片选法
字位同时扩展

3.4.1磁盘存储器

磁表面储存器每次1bit的读或者写

磁盘结构

以扇区为单位读取数据

性能指标

磁盘地址和磁盘的工作过程

磁盘阵列

3.4.2固态硬盘SSD

内存翻译层具有迁移的能力,在复制到新的之后会把映射更改

3.5.1+3.5.2 Cache的基本原理

Cache用SRAM实现

局部性原理

性能分析

如何定界周围:将主存的存储空间“分块”,主存和Cache以“块”为单位进行数据交换

要解决的问题

3.5.3Cache和主存的映射方式

全相联映射(存放在任意的位置)

直接映射(每个主存块存放在Cache中对应的位置)

组相连映射(每个主存块可放到特定分组的任意位置)

3.5.4Cache替换算法

随机算法(RAND)

先进先出(FIFO)

抖动现象:频繁的换入换出

近期最少使用(LRU)

做题的时候可以采用:替换那个cache,从这里往左找在cache里但距离最远的替换掉

最近不经常使用(LFU)

这里如果在替换的时候右多个最小的计数器可以采用两种方法

  • 序号最小
  • FIFO算法

3.5.5Cache写策略

脏位:表示Cache中的数据被没被修改过

写命中

写回法

当CPU对Cache写命中式,只修改Cache中的内容,而不立即写入主存,只有被换出式才写回主存

全写法

当CPU对Cache写命中式,必须把数据同时写入Cache和主存,一般使用写缓冲(使用SRAM实现的FIFO队列,往写缓冲里写比往主存里写要快的多,等CPU写完,在用专门的控制电路,控制逐一写回,如果写的很频繁,可能会对写缓冲饱和,发生阻塞,CPU进行等待)

写不命中

写分配法

当CPU没有命中,把主存块调入Cache,在Cache中修改,配合写回法

非写分配法

当CPU没有命中,只写主存,不调入Cache,搭配全写法

3.6.1页式储存器

引入页表

页表基址寄存器存放页表基地址,而页表基地址指明了页表在主存中存放的位置 

访问物理地址的时候先查Cache

引入快表(TLB)

快表是一种相联存储器,查询很快

3.6.2虚拟储存器

把辅存的部分内容调入主存中

页式虚拟储存系统

有效位:调入主存中为1

访问位:被访问的次数

脏位:被没被修改过

段式虚拟存储系统

相关文章:

  • 【自学笔记】R语言基础知识点总览-持续更新
  • 爬虫案例六用协程爬取趣笔阁
  • 13.【线性代数】——复习课
  • MyBatis增删改查:静态与动态SQL语句拼接及SQL注入问题解析
  • 如何选择开源向量数据库
  • XPath 语法无法定位到 svg 标签
  • Vue源码解析之mustache模板引擎
  • nodejs express设置允许跨域示例
  • C#运算符详解
  • 【免费】2013-2019年上市公司知识产权数据
  • 【架构艺术】Go语言微服务monorepo的代码架构设计
  • C、C++读取空格、回车符函数【getline、cin.get、cin.getline、std::noskipws】
  • 仿muduo库实现高并发服务器-面试常见问题
  • C#核心(22)string
  • 从0开始完成基于异步服务器的boost搜索引擎
  • 可重构智能表面(RIS)的全面介绍
  • 渐进稀疏注意力PSA详解及代码复现
  • KMP 算法的 C 语言实现
  • ROS2-话题学习
  • RabbitMQ高级特性--消息确认机制
  • wordpress网站实例/百度 竞价排名
  • 男女做污视频网站/站长工具seo综合查询官网
  • 有动态图片的网站源码/品牌营销理论有哪些
  • 重庆疫情最新情况播报/seo包年优化平台
  • 推广方式怎么写/官网整站优化
  • 上海市住房和城乡建设管理局网站/百度官网认证多少钱