【系统架构设计师】计算机组成与体系结构 ③ ( 层次化存储结构 | 寄存器 | 高速缓存 | 内存 | 外存 )

embedded/2024/11/10 13:41:59/

文章目录


计算机 采用 分级存储结构 , 主要目的是 为了 解决 容量 / 价格 / 速度 之间的矛盾 ;





一、层次化存储结构




1、层次化存储结构


计算机 存储器 按照存储速度 由快到慢 进行排序 :

  • CPU 寄存器 : 在 CPU 内部 , 速度最快 , 每秒可操作几十亿次 , 其容量只有 几个字节到几十个字节不等 , 其访问速度 1 个 CPU 周期 ;
    • CPU 周期 : 指的是 CPU 的运算一次花费的事件 , 2.4GHz 频率的 CPU 1 秒钟运算 24 亿次 , 其周期就是 24 亿分之一秒 ;
    • 寄存器大小 : 32 位 CPU 寄存器有 8位、16位、32位 , 64 位 CPU 寄存器有 8位、16位、32位、64位 ;
  • 高速缓存 Cache : 位于 CPU 与 内存 RAM 之间 , 速度较快 , 用于暂时存放 频繁使用的 指令和数据 , 可根据速度又分为 L1、L2、L3 多级高速缓存 , 大小在几百 KB 到 几 MB 之间 , 访问速度在 1 ~ 30 个 CPU 周期 ;
  • 内存 : 又称为 " 主存储器 / RAM " , 插在计算机的主板上 , 速度慢 , 访问速度在 50 ~ 200 个 CPU 周期 , 一般家用电脑的 内存条 有 4 ~ 32GB 大小 ;
    • RAM 全称 Random Access Memory 是 随机存取存储器 , 一旦掉电数据全部刷掉 ;
      • DRAM 全称 Dynamic Random Access Memory 是 动态随机存取存储器 , 一个电容 存储 1 比特信息 , 速度慢 , 成本低 , 性能低于 SRAM ;
      • SRAM 全称Static Random Access Memory 是 静态随机存取存储器 , 六个晶体管 存储 1 比特 信息 , 速度快 , 成本高 ;
    • ROM 全称 Read-Only Memory 是 只读存储器 , 掉电后数据不会丢失 , 一般 BIOS / 看门狗 都写在 ROM 中 , 其读写速度与 RAM 相当 ;
  • 外存 : 又称为 " 辅助存储器 " , 挂接在计算机外部的 硬盘 / 固态硬盘 / U 盘 , 容量很大可达到几 TB , 访问速度很慢 磁盘需要几千万个 CPU 周期 / 固态硬盘需要几十万个 CPU 周期 ;
    • 外存 断电后仍然可以存储数据 , 寄存器 / 高速缓存 / 内存 断电后数据消失 ;
    • 这里的 访问速度 指的是 建立连接所需时间 , 访问后吞吐量每秒几百 MB ;

在这里插入图片描述


2、层次化存储结构 - 示例说明


安装软件 , 是将 软件的程序包 存储到 外存 ( 磁盘 ) 中 ,

运行软件时 , 将要运行的 数据 加载到 内存 中运行 , 运行时 不会将整个软件包加载到内存中 , 用什么资源 , 就将对应的资源加载到内存, 如显示图片 , 就将图片加载到内存中 , 显示完毕后 , 马上释放该图片占用的内存资源 ,

如果需要进行 CPU 计算 , 程序指令调用 , 将 内存中的数据 加载到 高速缓存 Cache 中 ,

正在执行的指令 , 加载到 CPU 内部的 寄存器 中 ;


3、程序员可操作的部分


程序员 开发软件 , 可以操作 寄存器 / 外存 / 内存 , 高级缓存 Cache 对开发者透明 ;

  • 高级语言只能操作 内存 和 外存 ,
  • 只有 汇编语言可以操作寄存器 ;

操作 外存 就是 文件管理 ;

操作 内存 就是 定义变量 和 函数 , 运行过程中涉及的操作 栈内存 和 堆内存 ;

  • C 语言可以直接手动操作 堆内存 ;
  • Java / Python 等高级语言 由系统管理 堆内存 ;

http://www.ppmy.cn/embedded/53977.html

相关文章

零基础入门办公软件速成学习 沈阳电脑办公软件培训

专业指导:由专业的培训师或讲师提供指导,确保员工能够全面、系统地学习软件的各种功能和技巧。 定制课程:根据公司需求和员工现有水平定制课程内容,确保培训的针对性和实用性。 互动学习:通过实时演示、练习和答疑环节…

什么是torchrun?

torchrun 是 PyTorch 用于分布式训练的命令行工具,旨在简化启动和管理分布式训练任务的过程。下面我将详细讲解 torchrun 的使用方法,并讨论它与分布式数据并行(Distributed Data Parallel, DDP)的区别。 一、torchrun的使用方法…

个人网站搭建-步骤(持续更新)

域名申请 域名备案 域名解析 服务器购买 端口转发 Nginx要在Linux上配置Nginx进行接口转发,您可以按照以下步骤进行操作: 安装Nginx(如果尚未安装): 使用包管理工具(如apt, yum, dnf, 或zypper&#x…

IOS Swift 从入门到精通:从 JSON 文件加载数据

文章目录 常见问题解答数据模型JSON 数据验证 JSON解码 JSON编写 FAQRow 代码添加状态栏背景模糊将内容添加到 FAQView常见问题解答数据模型 此 FAQ 模型符合Decodable,因为我们需要将 JSON 数据解码为 SwiftUI 数据。它还将符合 Identifiable ,因此我们稍后可以在 ForEach …

说一说ABAP CDS View的发展历史与特性

1. 背景 随着SAP Fiori应用程序的兴起,SAP领域的小伙伴接触和使用ABAP CDS View的机会也是越来越多。今天,让我们花些时间,一起在了解下这项技术的设计初衷和发展历史。 2. 设计初衷 说起ABAP CDS View,就不得不提及SAP HANA。…

【LeetCode面试经典150题】117. 填充每个节点的下一个右侧节点指针 II

一、题目 117. 填充每个节点的下一个右侧节点指针 II - 力扣(LeetCode) 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个…

使用 Reqable 在 MuMu 模拟器进行App抓包(https)

1、为什么要抓包? 用开发手机应用时,查看接口数据不能像在浏览器中可以直接通过network查看,只能借助抓包工具来抓包,还有一些线上应用我们也只能通过抓包来排查具体的问题。 2、抓包工具 实现抓包,需要一个抓包工具…

Web3新视野:Lumoz节点的潜力与收益解读

摘要:低估值、高回报、无条件退款80%...... Lumoz正通过其 zkVerifier 节点销售活动,引领一场ZK计算革命。 长期以来,加密市场以其独特的波动性和增长潜力,持续吸引着全球投资者的目光。而历史数据表明,市场往往在一年…