计算机组成原理易混淆知识点总结(持续更新)

目录

1.机器字长,存储字长与指令字长

2.指令周期,机器周期,时钟周期

3.CPI,IPS,MIPS

4.翻译程序和汇编程序

5.计算机体系结构和计算机组成的区别和联系

6.基准程序执行得越快说明机器的性能越好吗?


1.机器字长,存储字长与指令字长

不同的机器三者在数值上可以相等也可以不等:

机器字长CPU内部用于整数运算的数据通路的宽度(也就是CPU一次可以处理的二进制代码的位数)。通常等于ALU的宽度或通用寄存器的位数。

数据通路是指数据在指令执行过程中所经过的路径及路径上的部件,主要是CPU内部进行数据运算,存储和传送的部件,这些部件的宽度基本上要一致才能相互匹配。因此机器字长等于ALU的宽度或通用寄存器的位数。

存储字长:一个存储单元中包含的二进制代码的位数,它等于MDR的位数。

补充:MDR的位数:存储单元的位数        MAR的位数反映了最多可寻址的存储单元的个数,如MAR:10位,那么最多有2^10个存储单元,MAR的长度与PC的长度相等。

指令字长:一个指令字中包含的二进制代码的位数。

指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2个访存周期来取出一条指令,若指令字长等于存储字长,则只需要1个访存周期取指令,指令周期等于机器周期。
早期的存储字长一般与指令字长、字长相等,因此访问一次主存储器便可取出一条指令或一个数据。随着计算机的发展,指令字长、存储字长都可变,但必须都是字节的整数倍。

机器字长会直接影响加法器(ALU),内部总线宽度(数据通路的宽度)及寄存器的位数,进而影响数据的精度和表示范围;如果提高机器字长,一个数能表示的精度和范围就越高,但随之而来的是成本的增加

2.指令周期,机器周期,时钟周期

指令周期:CPU从主存中取出并执行一条指令所需的全部时间

取出并执行一条指令包括:取出指令-->分析指令-->执行指令,如下图所示:

对指令译码的过程就是分析指令的过程

机器周期:

机器周期又称CPU周期,一个指令周期常用多个机器周期表示。一个如上图所示,取指操作算一个机器周期,执行指令操作也算一个机器周期。

时钟周期:一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)

CPU上标注的主频,例如主频=3.0GHz,就表示每秒钟可以发送3.0G次的时钟周期

若想了解得更加详细,推荐看看这篇:指令执行过程

3.CPI,IPS,MIPS

CPU时钟周期:上面讲过,时钟周期是CPU工作的最小时间单位。

主频:机器内部主时钟的频率,即时钟周期的导数(1/CPU时钟周期)。对于同一型号的计算机,主频越高,完成指令的一个执行步骤所用时间越短,执行指令的速度越快。

CPI(Cycle Per Instruction):执行一条指令所需要的时钟周期数。不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时CPI是一个平均值

指令执行速度:主频/平均CPI,主频表示CPU内部主时钟的频率,例如主频1.5GHz说明1s有1.5G=1.5*10^9个时钟周期。平均CPI表示一条指令的时钟周期数,所以 指令执行速度=主频/平均CPI,即1s执行的指令数

用户CPU时间:总时钟周期数/主频,总时钟周期数=CPI(一条指令的时钟周期数)*指令条数,主频:1s的时钟周期数,所以用户CPU时间=总时钟周期数/主频

一定不要记,看题目理解即可!

IPC:表示每个时钟周期运行多少条指令,机CPI的倒数(1/CPI)。

IPS(Instructions Per Second):每秒执行多少条指令,IPS=主频/平均PCI。

CPU执行时间:CPU时钟周期数/主频=指令条数*CPI*时钟周期的长度=(指令条数*CPI)/主频

CPU执行时间取决于三个要素:CPI,主频和指令条数。三个条件下过户制约,例如,更改指令集可以减少程序所含指令条数,但同时可能引起CPU结构的调整,从而可能会增加时钟周期的宽度(降低主频)。

MIPS(Million Instructions Per Second):每秒执行多少万条指令。

MIPS=指令条数/(执行时间*10^6)=主频/(CPI*10^6)

MIPS 对不同机器进行性能比较是有缺陷的。因为不同机器的指令集不同,指令的功能也就不同,比如在机器M1上某条指令的功能也许在机器M2上要用多条指令来完成;不同机器的CPI 和时钟周期也不同,因而同一条指令在不同机器上所用的时间也不同。

FLOPS(Floating-point Operations Per Second):每秒执行多少次浮点运算。

注意:

在描述存储容量、文件大小等时,K、M、G、T通常用2的幂次表示,如1Kb=2^10b;在描述速率、频率等时,K、M、G、T通常用10的幂次表示。如 1kb/s=10^3b/s。通常前者用大写的K,后者用小写的k,但其他前缀均为大写,表示的含义取决于所用的场景。

例题:

1.程序P在机器M上的执行时间是 20s,编译优化后,P执行的指令数减少到原来的 70%,而 CPI增加到原来的1.2倍,则P在M上的执行时间是()

解答:

假设原来的指令条数为x,则执行时间=指令条数*每条指令的时钟周期数*时钟周期的长度=

x*CPI*1/f        得到:20=(x*CPI)/f        所以原来的CPI=20f/x

经过编译优化后,指令条数减少为原来的70%,即指令条数为0.7x,而CPI增加到原来的1.2倍,即24f/x,则现在P在M上的执行时间=(0.7x * 24f/x) / f =24*0.7=16.8s

2.假定计算机 M1和M2具有相同的指令集体系结构,M1的主频为2GHz,程序P在M1上的运行时间为 10s。M2采用新技术可使主频大幅提升,但平均 CPI也增加到 M1 的 1.5 倍,则 M2的主频至少提升到多少才能使程序P在M2上的运行时间缩短为6s?

解答:

程序P在M1上的时钟周期数=指令条数xCPI=CPU执行时间x主频=10s*2GHz=2*10^10。M2的平均CPI为 M1 的1.5倍,因此程序P在 M2 上的时钟周期数 =1.5*2*10^10=3x10^10。
要使程序 P在 M2上的运行时间缩短到6s,则M2 的主频至少应为:

程序P所含时钟周期数/CPU执行时间=3x10^10/6s=5GHz

由此可见,M2的主频是 M1的 2.5 倍,但 M2 的速度却只是 M1 的 1.67 倍。

所以,这也可以看出主频高的CPU不一定比主频低的CPU快:

主频和实际的运算速度存在一定的关系,但目前还没有一确定的公式能够定量两者的数值关系,因为 CPU 的运算速度还要看 CPU 的流水线的各方面的性能指标(架构、缓存、指令集、CPU 的位数、Cache 大小等)。由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的 CPU 实际运算速度较低的现象。

4.翻译程序和汇编程序

翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,只要源程序不变,就无须重新翻译。另一种是解释程序,它将源程序的一条语句翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句执行一句,并且不会生成目标程序。

汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。

编译程序与汇编程序的区别:若源语言是诸如C、C++、Java 等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,则这样的一个翻译程序称为编译程序。若源语言是汇编语言,而目标语言是机器语言,则这样的一个翻译程序称为汇编程序。

5.计算机体系结构和计算机组成的区别和联系

计算机体系结构是指机器语言或汇编语言程序员所看得到的传统机器的属性,包括指令集、数据类型、存储器寻址技术等,大都属于抽象的属性。
计算机组成是指如何实现计算机体系结构所体现的属性,它包含许多对程序员来说透明的硬件细节。例如,指令系统属于结构的问题,但指令的实现即如何取指令、分析指令、取操作数、如何运算等都属于组成的问题。因此,当两台机器的指令系统相同时,只能认为它们具有相同的结构,至于这两台机器如何实现其指令,则完全可以不同,即可以认为它们的组成方式是不同的。

例如,一台机器是否具备乘法指令是一个结构的问题,但实现乘法指令采用什么方式则是一个组成的问题。许多计算机厂商提供一系列体系结构相同的计算机,而它们的组成却有相当大的差别。即使是同一系列的不同型号机器,其性能和价格差异也很大。

6.基准程序执行得越快说明机器的性能越好吗?

一般情况下,基准测试程序能够反映机器性能的好坏。但是,由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI智能体|扣子Coze文生图功能接入微信公众号

大家好,我是无界生长。 AI智能体|扣子Coze文生图功能接入微信公众号本文分享了如何将Coze平台的文生图功能接入微信公众号的详细操作流程,包括创建图像流、创建并配置Bot、设置提示词和开场白、调试、发布等步骤。如果看完还没学会的话&…

网页图片加载慢的求解指南

网页/图片加载慢的求解指南 一、前言与问题描述 今天刚换上华为的HUAWEI AX3 Pro New,连上WIFI后测速虽然比平时慢,但是也不算太离谱,如下图所示: 估计读者们有也和作者一样,还没意识到事情的严重性😁。 …

08Django项目--用户管理系统--查(前后端)

对应视频链接点击直达 TOC 一些朋友加我Q反馈,希望有每个阶段的完整项目代码,那从今天开始,我会上传完整的项目代码。 用户管理,简而言之就是用户的增删改查。 08项目点击下载,可直接运行(含数据库&…

PHP框架 Laravel

现在因为公司需求,需要新开一个Laravel框架的项目,毫无疑问,我又被借调过去了,最近老是被借调,有点阴郁,不过反观来看,这也是好事,又可以复习和巩固一下自己的知识点,接下…

大数据开发面试题【Spark篇】

115、Spark的任务执行流程 driver和executor,结构式一主多从模式, driver:spark的驱动节点,用于执行spark任务中的main方法,负责实际代码的执行工作;主要负责:将代码逻辑转换为任务、在executo…

编译qt5.15.2(mac/windows)的mysql驱动(附带编译好的文件)

文章目录 0 背景1 编译过程2 福利 0 背景 因为需要连接到mysql数据库,所以需要连mysql驱动。 1 编译过程 1,打开文件/Users/mac/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/sqldrivers.pro,注释掉QMAKE_USE mysql; 如…

国产【Jetson Xavier NX】——从裸机到深度学习开发环境配置

1、设置系统从固态硬盘启动 英伟达官方NX出厂是直接将SD卡(64/128G)烧录系统作为系统盘使用,国产NX出厂是将系统配置在8G内存中,在后续使用中需配置大量开发包,故将系统设置为从固态硬盘启动。 参考链接 https://blo…

vue3中使用svg图标

安装依赖 npm i vite-plugin-svg-icons -D vite.config.ts中添加配置 主要为指定svg图标存放路径以及命名方式 import { defineConfig } from vite import vue from vitejs/plugin-vue import { createSvgIconsPlugin } from vite-plugin-svg-icons import path from path;…

總結力學_3

參考: 陈曦<<力学讲义>>http://ithatron.phys.tsinghua.edu.cn/downloads/mechanics.pdf 10 非惯性系 10.1 匀加速平动非惯性系 10.2 定轴匀速转动非惯性系 可以更好刻劃總結力學_2的有心力運動、質點系的運動的工具! 11 线性系统 11.1 线性系统、11.2 受迫…

【深入理解Python中的装饰器】

文章目录 前言装饰器的基本概念带参数的装饰器类作为装饰器结论 前言 装饰器是Python中一个非常强大且灵活的特性&#xff0c;它允许程序员在不修改原函数代码的情况下&#xff0c;增加或修改函数的行为。装饰器本质上是一个接受函数作为参数并返回一个新函数的函数。本文将深…

点击登录按钮先检测输入框的规则检测(vue组合式)

<template><el-form :model"user" :rules"rules" ref"loginForm" label-width"auto" style"max-width: 600px"><el-form-item label"用户名" prop"name"><el-input v-model"…

【Linux-LCD 驱动】

Linux-LCD 驱动 ■ Framebuffer 简称 fb■ LCD 驱动程序编写■ 1、LCD 屏幕 IO 配置■ 2、LCD 屏幕参数节点信息修改■ 3、LCD 屏幕背光节点信息■ 4、使能 Linux logo 显示 ■ 设置 LCD 作为终端控制台■ 1、设置 uboot 中的 bootargs■ 2、修改/etc/inittab 文件 ■ LCD 背光…

ROS的noetic版本

设置 sources.list 执行下面命令&#xff0c;设置从清华源下载 ROS 软件包。 sudo sh -c echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list设置密钥 sudo apt-key adv --keyse…

鸿蒙知识点总结

1 Stage模型应用程序包结构 在开发态&#xff0c;一个应用包含一个或者多个Module&#xff0c;可以在DevEco Studio工程中创建一个或者多个Module。Module是HarmonyOS应用/服务的基本功能单元&#xff0c;包含了源代码、资源文件、第三方库及应用/服务配置文件&#xff0c;每一…

快速上手 HuggingFace

HuggingFace HuggingFace 是类似于 GitHub 的社区&#xff0c;它主要提供各种的模型的使用&#xff0c;和 github 不同的是&#xff0c;HuggingFace 同时提供了一套框架&#xff0c;进行模型推理&#xff0c;模型训练、和模型库文件的管理等等。本文将介绍&#xff0c;如何快速…

【MySQL精通之路】全文搜索(9)-全文解析器-MeCab

主博客&#xff1a; 【MySQL精通之路】全文搜索功能-CSDN博客 目录 1.介绍 2.安装MeCab Parser插件 3.创建使用MeCab分析器的FULLTEXT索引 4.MeCab Parser空间处理 5.MeCab分析程序停止字处理 6.MeCab Parser术语搜索 7.MeCab分析程序通配符搜索 8.MeCab语法分析器短语…

echarts学习篇

一、使用echarts 1.引入 Apache ECharts <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <!-- 引入刚刚下载的 ECharts 文件 --> <script src"echarts.js"></script> </head> </html> 2.…

深度神经网络——什么是自动编码器?

自动编码器 自动编码器&#xff08;Autoencoders&#xff09;是无监督学习领域中一种重要的神经网络架构&#xff0c;它们主要用于数据压缩和特征学习。 自动编码器的定义&#xff1a; 自动编码器是一种无监督机器学习算法&#xff0c;它通过反向传播进行训练&#xff0c;目标…

【夏之以寒-Kafka专栏 02】什么情况下会发生 QueueFullException?

作者名称&#xff1a;夏之以寒 作者简介&#xff1a;专注于Java和大数据领域&#xff0c;致力于探索技术的边界&#xff0c;分享前沿的实践和洞见 文章专栏&#xff1a;夏之以寒-kafka专栏 专栏介绍&#xff1a;本专栏旨在以浅显易懂的方式介绍Kafka的基本概念、核心组件和使用…

2023山东ICPC省赛Problem B.建筑公司(拓扑排序)

2023 山东 I C P C 省赛 P r o b l e m B . 建筑公司 \Huge{2023山东ICPC省赛Problem B.建筑公司} 2023山东ICPC省赛ProblemB.建筑公司 文章目录 题意思路标程 比赛链接&#xff1a;Dashboard - The 13th Shandong ICPC Provincial Collegiate Programming Contest - Codeforce…