码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 计算机组成原理知识总结(三)存储系统


    计算机组成原理知识总结

    计算机组成原理知识总结(一)计算机概论
    计算机组成原理知识总结(二)运算方法和运算器


    存储系统

    • 计算机组成原理知识总结
    • 3.1 存储系统概述
      • 3.1.1 存储系统的层次结构
        • 程序的局部性原理
        • 多级存储系统的组成
      • 3.1.2 存储的分类
      • 3.1.3 存储器的编制和端模式
      • 3.1.4 存储器的技术指标
    • 3.2 静态随机存取存储器
      • 3.2.1 基本的静态存储元阵列
      • 3.2.2 基本的SRAM逻辑结构
      • 3.2.3 SRAM读/写时序
      • 3.2.4 存储器容量的扩充
    • 3.3 动态随机存取存储器
      • 3.3.1 DRAM存储元的工作原理
      • 3.3.2 DRAM芯片的逻辑结构
      • 3.3.3 DRAM读/写时序
      • 3.3.4 DRAM的刷新操作
      • 3.3.5 突发传输模式
      • 3.3.6 同步DRAM(SDRAM)
        • SDRAM的特征
        • SDRAM的控制方式
        • SDRAM的命令
      • 3.3.7 双倍数据率SDRAM(DDR SDRAM)
      • 3.3.8 DRAM读/写校验
      • 3.3.9 CDRAM
        • CDRAM芯片的结构
        • CDRAM存储模块
    • 3.4 只读存储器
      • 3.4.1 只读存储器概述
      • 3.4.2 NOR闪存
        • NOR闪存的外部接口与逻辑结构
        • NOR闪存的区块划分
        • NOR闪存的总线操作与工作方式
    • 3.5 并行存储器
      • 3.5.1 双端口存储器
        • 双端口存储器的逻辑结构
        • 无冲突的读写控制
        • 有冲突的读写控制
      • 3.5.2 多模块交叉存储器
        • 存储器的模块化组织
        • 多模块交叉存储器的基本结构
        • 二模块交叉存储器距离
    • 3.6 cache存储器
      • 3.6.1 cache基本原理
        • cache的功能
        • cache的基本原理
        • cache 的命中率
        • cache结构设计必须解决的问题
      • 3.6.2 主存与cache的地址映射
        • 全相联映射方式
        • 直接映射方式
        • 组相联映射方式
      • 3.6.3 cache的替换策略
      • 3.6.4 cache的写操作策略
      • 3.6.5 Pentium 4的cache组织
      • 3.6.6 使用多级cache减少缺失损失
    • 3.7 虚拟存储器
      • 3.7.1 虚拟存储器的基本概念
        • 实地址与虚地址
        • 虚存的访问过程
        • cache与虚存的异同
        • 虚存机制要解决的关键问题
      • 3.7.2 页式虚拟存储器
        • 页式虚存地址映射
        • 内页表和外页表
        • 转换后援缓冲器(TLB)
        • 虚拟存储器、TLB和cache的协同操作
      • 3.7.3 段式虚拟存储器和段页式虚拟存储器
        • 段式虚拟存储器
        • 段页式虚拟存储器
      • 3.7.4 虚存的替换算法
      • 3.7.5 存储管理部件
    • 3.8 奔腾系列机的虚存组织
      • 3.8.1 存储器模型
      • 3.8.2 虚地址模式
      • 3.8.3 分页模式下的地址转换
    • 总结


    3.1 存储系统概述

    3.1.1 存储系统的层次结构

    利用不同容量、成本、功耗和速度的多种存储器构成有机结合的多级存储系统。

    程序的局部性原理

    在某一段时间内频繁访问某一局部的存储器地址空间,而对此范围以外的地址空间则很少访问的现象称为程序的局部性原理。

    • 时间局部性:最近访问的信息很可能还要被访问
    • 空间局部性:最近访问的信息邻近地址的信息也可能被访问。

    多级存储系统的组成

    内存储器速度高、容量小、价格高,有半导体器件构成。
    外存储器速度低、容量大、价格便宜,由磁盘存储器、光盘存储器等非半导体器件或者固态半导体存储器构成。
    在常规的内存储器与CPU之间增加了速度更高但容量更小的半导体高速缓冲存储器,cache。
    在这里插入图片描述
    还有将cache分为一级二级的。

    在这里插入图片描述

    3.1.2 存储的分类

    存储介质,半导体器件和磁性材料。存储一位二进制代码。称为存储位元。许多个存储单元组成一个存储器。

    • 存储介质

      半导体器件、磁性材料和光存储器

    • 存储方式

      随机存取存储器、顺序存取存储器和半顺序存取存储器

    • 读写功能

      只读存储器(ROM)、随机存取存储器(RAM)

    • 信息易失性

      易失性存储器、非易失性存储器

    • 与CPU的耦合程度

      内外存储器

    习惯分为RAM和ROM。RAM分为静态RAM(SRAM)和动态RAM(DRAM),ROM分为掩膜ROM、一次可编程ROM(PROM)和可擦除PROM(EPROM),后者又分为紫外线擦除EPROM(UV-EPROM)、电擦除EPROM(EEPROM)和闪速(Flash)只读存储器。

    3.1.3 存储器的编制和端模式

    存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址称为字地址。而存放一字节的单元,称为字节存储单元,相应的地址称为字节地址。

    一个存储字内部的多字节排列顺序问题,排列方式称为端模式,大端和小端。
    在这里插入图片描述

    3.1.4 存储器的技术指标

    • 存储容量
    • 存取时间
    • 存储周期
    • 存储器带宽

    3.2 静态随机存取存储器

    SRAM

    3.2.1 基本的静态存储元阵列

    只要直流供电,就可以无限期地保持记忆。断电数据就丢失了。
    在这里插入图片描述

    3.2.2 基本的SRAM逻辑结构

    双译码方式,以便组织更大的存储容量。
    在这里插入图片描述

    3.2.3 SRAM读/写时序

    一般 t R Q t_{RQ} tRQ​= t W C t_{WC} tWC​,叫做存取周期。
    SRAM DRAM时序分析
    在这里插入图片描述在这里插入图片描述

    3.2.4 存储器容量的扩充

    芯片数:d=设计要求的存储器容量/已知芯片存储容量

    1. 位扩展
    2. 字扩展
    3. 字位扩展

    3.3 动态随机存取存储器

    3.3.1 DRAM存储元的工作原理

    DRAM 的存储密度高,主存储器。但是附属电路比较复杂,访问时需要额外的电路和操作支持。
    在这里插入图片描述

    3.3.2 DRAM芯片的逻辑结构

    在这里插入图片描述

    3.3.3 DRAM读/写时序

    在这里插入图片描述

    3.3.4 DRAM的刷新操作

    读取数据会破坏电荷,需要刷新。刷新间隔是64ms。

    • 集中式刷新策略
    • 分散式刷新策略

    3.3.5 突发传输模式

    突发访问是指在存储器同一行中对相邻的存储单元进行连续访问的方式,突发长度可以从几字节到数千字节不等。

    3.3.6 同步DRAM(SDRAM)

    传统的DRAM是异步的,在DRAM接口上增加时钟信号则可以降低存储芯片与控制器同步的开销,优化DRAM与CPU之间的接口,这是同步DRAM(SDRAM)的主要改进。

    SDRAM的特征

    在这里插入图片描述

    • 同步操作
    • 多存储体配置
    • 命令控制
    • 模式寄存器
      在这里插入图片描述

    SDRAM的控制方式

    在这里插入图片描述

    SDRAM的命令

    在这里插入图片描述

    3.3.7 双倍数据率SDRAM(DDR SDRAM)

    本质上是一个2n的预取结构

    在这里插入图片描述

    3.3.8 DRAM读/写校验

    在这里插入图片描述

    3.3.9 CDRAM

    CDRAM芯片的结构

    在这里插入图片描述

    CDRAM存储模块

    在这里插入图片描述

    3.4 只读存储器

    3.4.1 只读存储器概述

    非易失性,访问速度比RAM稍低,可以按地址随机访问并在线执行程序。
    在这里插入图片描述

    3.4.2 NOR闪存

    NOR闪存的外部接口与逻辑结构

    在这里插入图片描述在这里插入图片描述

    NOR闪存的区块划分

    NOR闪存的总线操作与工作方式

    在这里插入图片描述
    在这里插入图片描述

    3.5 并行存储器

    • 芯片技术
    • 结构技术
    • 系统结构技术

    3.5.1 双端口存储器

    双端口存储器的逻辑结构

    由于同一个存储器具有两组相互独立的读写控制电路而得名。高速工作的存储器

    无冲突的读写控制

    当两个端口地址不相同是,在两个端口上进行读写操作,一定不会发生冲突。

    有冲突的读写控制

    两端口同时存取存储器同一存储单元,会设置 B U S Y ‾ \overline{BUSY} BUSY标志。

    3.5.2 多模块交叉存储器

    存储器的模块化组织

    顺序方式和交叉方式
    在这里插入图片描述

    多模块交叉存储器的基本结构

    在这里插入图片描述

    二模块交叉存储器距离

    在这里插入图片描述

    3.6 cache存储器

    3.6.1 cache基本原理

    cache的功能

    为了解决CPU和主存之间速度不匹配而采用的一项重要技术。
    在这里插入图片描述

    cache的基本原理

    除了包含SRAM外,还要有控制逻辑。有就直接提取,没有就从主存里找。

    在这里插入图片描述

    cache 的命中率

    在一个程序执行器件,设 N c N_c Nc​表示cache完成存取的总次数, N m N_m Nm​表示主存完成存取的总次数, h h h定义为命中率,则有
    h = N c N c + N m h=\frac{N_c}{N_c+N_m} h=Nc​+Nm​Nc​​

    cache结构设计必须解决的问题

    cache设计遵循的两原则

    1. 希望cache的命中率尽可能高,实际应接近于1
    2. 希望cache对CPU而言是透明的,不论是否有cache,CPU的访存方法都是一样的。

    3.6.2 主存与cache的地址映射

    全相联映射方式

    在这里插入图片描述
    在这里插入图片描述

    直接映射方式

    多对一的映射方式,但一个主存块只能拷贝到cache的一个特定行位置上去。

    组相联映射方式

    适度地兼顾了前两者的优点,由尽量避开二者的缺点,因此被普遍采用。

    3.6.3 cache的替换策略

    cache要求它尽量保存最新数据,当一个新的主存块需要拷贝到cache,而允许存放此块的行位置都被其他主存块占满时,就要产生替换。

    1. 最不经常使用(LFU)算法
    2. 近期最少使用(LRU)算法
    3. 随即替换

    3.6.4 cache的写操作策略

    1. 写回法
    2. 全写法
    3. 写一次法

    3.6.5 Pentium 4的cache组织

    在这里插入图片描述
    Pentium 4 处理器的核心由下列四个主要部件组成:

    • 取值/译码单元
    • 乱序执行逻辑
    • 执行单元
    • 存储器子系统

    3.6.6 使用多级cache减少缺失损失

    在高性能微处理器可支持附加一级的cache,位于处理器芯片内或者外单独一组SRAM,主cache却是后就会访问它。

    3.7 虚拟存储器

    3.7.1 虚拟存储器的基本概念

    实地址与虚地址

    用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存地址空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序的再定位。

    虚存的访问过程

    虚存空间的用户程序按照虚地址编程并放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。

    cache与虚存的异同

    相同

    • 出发点相同
    • 原理相同

    不同

    • 侧重点不同
    • 数据通路不同
    • 透明性不同
    • 未命中时的损失不同

    虚存机制要解决的关键问题

    1. 调度问题
    2. 地址映射问题
    3. 替换问题
    4. 更新问题

    3.7.2 页式虚拟存储器

    页式虚存地址映射

    在这里插入图片描述

    内页表和外页表

    上面所述页表式虚地址到主存物理地址的变换表,为内页表。虚地址与辅存地址之间的变换叫做外页表。

    转换后援缓冲器(TLB)

    这个专用于页表缓存的高速存储不见通常称为转换后援缓冲器(TLB),又称为块表。保存在主存的完整页表称为慢表。
    在这里插入图片描述

    虚拟存储器、TLB和cache的协同操作

    在这里插入图片描述

    3.7.3 段式虚拟存储器和段页式虚拟存储器

    段式虚拟存储器

    页面时主存物理空间中划分出来的登场的固定区域。另一种划分可寻址的存储空间的方法称为分段。段是按照程序的自然分界划分的长度可以动态改变的区域。
    每个程序设置一个段表,段表的每一个表项对应一个段。

    1. 有效位
    2. 段起址
    3. 段长

    在这里插入图片描述

    段页式虚拟存储器

    段式虚拟存储器和页式虚拟存储器的结合

    在这里插入图片描述

    3.7.4 虚存的替换算法

    当从辅存调页至主存已满时,也需要进行主存页面的替换。下虚拟存储器的替换算法与cache的替换算法类似
    虚拟存储器的替换算法与cache的替换算法不同

    1. cache的替换全部靠硬件实现,而虚拟存储器的替换有操作系统的支持。
    2. 虚存缺页对系统性能的影响比cache未命中要大得多,因为调页需要访问辅存,并且要进行任务切换。
    3. 虚存页面替换的选择余地很大,属于一个进程的页面都可替换。

    3.7.5 存储管理部件

    存储管理部件(Memory Management Unit,MMU)是系统中进行虚实地址转换的核心部件。

    3.8 奔腾系列机的虚存组织

    3.8.1 存储器模型

    在这里插入图片描述

    • 平坦存储器模型(flat memory model)内存被组织成单一的、连续的地址空间,称为“线性地址空间”。
    • 分段存储器模型(segmented memory model)每个程序均使用一组独立的地址空间,每个地址空间就是一个段,段的最大长度是 2 32 B 2^{32}B 232B。
    • 实地址模式存储器模型(real-address model memory model)是为保持与早期的8086处理机兼容的存储器模式。

    3.8.2 虚地址模式

    IA-32体系结构微处理机的虚拟存储器可以通过两种方式实现:分段和分页。

    3.8.3 分页模式下的地址转换

    在这里插入图片描述


    总结

    数据的存储机制

  • 相关阅读:
    武汉新时标文化传媒有限公司视频引流推广
    ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序
    Python第三方库安装——使用vscode、pycharm安装Python第三方库
    Jenkins的Pipeline概念
    不允许你还不了解指针的那些事(二)(从入门到精通看这一篇就够了)(数组传参的本质+冒泡排序+数组指针+指针数组)
    jQuery添加css样式/动画效果
    github搜索技巧
    wpf中listview内容居中显示
    21天经典算法之直接选择排序
    8位和32位单片机基本数据类型所占大小
  • 原文地址:https://blog.csdn.net/u010095372/article/details/126492544
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号