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

计算机系统概述——了解冯诺伊曼 CPI相关公式

文章目录

  • 冯诺依曼体系
    • 工作方式
    • 基本特点
    • 模型理解 + 执行过程
      • 执行顺序:
  • 软件&&硬件
  • 编译程序&&解释程序
  • 计算机的性能指标
    • 字长的理解
    • 🧠简单类比一下:
    • 关于运行速度(CPI && MIPS)
      • CPU时钟周期
      • CPU主频
      • CPI的理解
      • MIPS的理解
    • 应用CPI && MIPS
    • 基本单位换算 HZ、S
      • 赫兹(HZ)的换算:
      • 秒(S)的换算:


冯诺依曼体系

关于冯诺依曼的体系,只要一提到,就想到八个字:

“存储程序”,“程序控制”

将事先编制好的程序(一条一条的指令)和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序结束。

工作方式

基本特点

按地址访问并顺序执行指令,本质指令在主存中,就是有专门特定的地址,而访问他们就是需要地址查找。

模型理解 + 执行过程

PC(Program Counter 程序计数器):给出主存中指令的地址
MAR(Memory Address Register 主存储器地址寄存器):存储主存储器相对应的地址
MDR(Memory Data Register 主存数据寄存器):存储从主存储器取出的数据(既可以是”指令“也可以是”数据“)
IR(Instruction Register 指令寄存器):将MDR中的指令(一定是指令,而不是数据)送给控制器

执行顺序:

  1. 将指令和数据读入到内存
  2. 将PC的值送入MAR
  3. 主存根据MAR的值送出指令到MDR
  4. 将MDR中的指令送给IR
  5. 控制器根据IR中的指令产生相应的控制信号

值得注意的是:MDR里面不仅可以从主存读到指令也可以读到数据
若是指令那就交给IR
若是数据则就交给上面的各类寄存器


软件&&硬件

硬件实现的往往是最基本的算术和逻辑运算功能,而其他功能大多通过软件的扩充得以实现。对某一功能来说,其既可以由硬件实现,又可以由软件实现,从用户的角度来看,它们在功能上是等价的。这一等价性被称为软/硬件逻辑功能的等价性。例如,浮点数运算既可以用专门的浮点运算器硬件实现,又可以通过一段子程序实现,这两种方法在功能上完全等价,不同的只是执行时间的长短而已,显然硬件实现的性能要优于软件实现的性能。

编译程序&&解释程序

本质就是将 高级语言给 整成 机器语言,计算机只读的懂机器语言!!!!

  1. 汇编程序(汇编器):将汇编语言程序翻译成机器语言程序。
  2. 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
  3. 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序。

“解释程序“主要是按照你写的CPP代码的顺序,一条一条的进行解释,翻译成机器指令。

“编译程序”则是直接将一大片CPP代码编译成汇编语言,随后再进行链接形成可执行文件,最终能够翻译成机器指令

所以“编译程序”的速度会很,而“解释程序”的速度就一些

计算机的性能指标

字长的理解

  • 机器字长(或者直接叫“字长”):CPU内部数据通路的宽度,等于CPU内部总线的宽度,运算器的位数,通用寄存器的宽度等。
  • 指令字长:一条机器指令的位数
  • 存储字长:一个存储单元的位数

🧠简单类比一下:

  • MAR:你告诉快递员送到哪个地址
  • MDR:你给快递员要送的那个包裹

在前面介绍的两个寄存器MAR和MDR,他们存储的内容也都不一样。
MAR的作用是用来存放即将访问(读或写)的主存单元地址,而MAR的位数则影响着主存的存储单元的个数。
比如若是MAR是有n位,那么最多可以访问$ 2^n $个主存单元。

MDR的作用是放从主存中读出来的数据,或者准备写入主存的数据,
MDR 的位数 = 每个主存单元的数据宽度。
简单来说,就是存储单元里面的空间大小


关于运行速度(CPI && MIPS)

CPU时钟周期

CPU工作的最小时间单位,简单点来说,就是在这个时钟周期内CPU可以做一个小工作,完成一个小任务。

CPU主频

当年在网上买电脑或者手机,商品界面显示的什么2.4GHZ这种,本质就是主频。

CPU主频:CPU内数字脉冲信号的频率(典型书本定义,说人话就是“心跳速度”——数字越大,干活越快)

$ CPU主频 = 1 \div CPU始终周期 $

CPI的理解

CPI(Cycle Per Instruction):执行一条指令所需的时钟周期

记英文仿佛更好。

  • 对于不同的指令,CPI可能会不同
  • 就算相同的指令,CPI可能也不同

衍生公式:

C P U 执行时间 = C P U 时钟周期数 × 时钟周期 = ( 指令数 × C P I ) × 时钟周期 CPU执行时间 = CPU时钟周期数\times时钟周期=(指令数\times CPI)\times 时钟周期 CPU执行时间=CPU时钟周期数×时钟周期=(指令数×CPI)×时钟周期

通过上面的公式,我们可以知道,其实CPU执行的速度,是由以下3点决定的

1、指令数量

2、CPI大小

3、时钟周期数

上面的公式不是很好记,但其实本质只需要记住下面的公式就好👇

执行一条指令的耗时  = C P I × C P U 时钟周期 执行一条指令的耗时 \ = \ CPI \ \times \ CPU时钟周期 执行一条指令的耗时 = CPI × CPU时钟周期


MIPS的理解

MIPS(Million instructions per second):每秒执行多少百万条指令。

M I P S = 主频  ÷ ( 平均 C P I × 1 0 6 ) MIPS=主频\ \div \ (平均CPI \ \times \ 10^6) MIPS=主频 ÷ (平均CPI × 106)

仅仅记住这两个公式就好,但其实还是注重理解。

下面做几道题:


应用CPI && MIPS

相关的计算流程请参考b站王道的视频:

组成原理1.3选择16-20_哔哩哔哩_bilibili第20题

组成原理1.3选择21-25_哔哩哔哩_bilibili第21题

基本单位换算 HZ、S

赫兹(HZ)的换算:

  • 1 MHz = 1,000,000 Hz (1×10⁶ Hz)
  • 1 GHz = 1,000,000,000 Hz (1×10⁹ Hz)

秒(S)的换算:

  • 1 秒 (s) = 1,000 毫秒 (ms) = 1×10³ ms
  • 1 秒 (s) = 1,000,000 微秒 (μs) = 1×10⁶ μs
  • 1 秒 (s) = 1,000,000,000 纳秒 (ns) = 1×10⁹ ns
http://www.xdnf.cn/news/6086.html

相关文章:

  • 基于Qt的OSG三维建模
  • 【Redis实战篇】秒杀优化
  • 使用 hover-class 实现触摸态效果 - uni-app 教程
  • 数字信号处理-大实验1.2
  • 一文掌握六个空转数据库
  • 编译支持CUDA-aware的OpenMPI
  • 数字化转型 - 标准化
  • MySQL锁机制全面解析:从原理到实践的死锁防治指南
  • C++23 ranges::to:范围转换函数 (P1206R7)
  • LeRobot 框架的核心架构概念和组件(中)
  • 深度学习中的查全率与查准率:如何实现有效权衡
  • CS4334立体声D/A转换器:为高品质音频设计提供低成本的解决方案
  • 音频分类的学习
  • css设置文字两端对齐text-align:justify不起作用的解决方法
  • HTML应用指南:利用POST请求获取全国圆通快递服务网点位置信息
  • ​​金融合规革命:​​R²AIN SUITE 如何重塑银行业务智能​
  • 入侵检测SNORT系统部署过程记录
  • 数据结构与算法-双向链表专题
  • Spring AI 集成 Mistral AI:构建高效多语言对话助手的实战指南
  • 毕业论文,如何区分研究内容和研究方法?
  • C#中的dynamic与var:看似相似却迥然不同
  • Ota++框架学习
  • 胶片转场视频剪辑思路
  • tocmat 启动怎么设置 jvm和gc
  • 大模型训练简介
  • 华硕服务器-品类介绍
  • RBTree的模拟实现
  • MySQL之基础事务
  • 常用的应用层网络协议对比
  • 从零玩转系列之 MCP AI Agent 理论+项目实战开发你的MCP Server