计算机体系结构----基本概念(一)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----计算机系统结构教程(第二版)张晨曦等

计算机体系结构----基本概念

  • 计算机系统设计的定量原理
    • 1. Amdahl定律(阿姆达尔定律)
    • 2. CPU性能公式
    • 3. 程序的局部性原理

计算机系统设计的定量原理

1. Amdahl定律(阿姆达尔定律)

Amdahl 定律告诉我们:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。它可以用来具体地计算.当对计算机系统中的某个部分进行改进后,所能获得的加速比的大小。

加速比说明了改进后的计算机比改进前快了多少倍。假设对某台计算机进行了某种改
进,那么所获得的加速比为
在这里插入图片描述
这个加速比的大小与两个因素有关。一个是在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例,简称可改进比例,记为 Fe。Fe 总是小于1的;另一个是可改进部件改进以后性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比,简称部件加速比,记为 Se。Se 总是大于 1。

例如,一个需运行 60s 的程序中有 20s 的运算可以加速,那么其 Fe 就是 20/60。若该系统改进后,可改进部分的执行时间减少为 5s,则其 Se 为 20/5。

部件改进后,程序中可改进部分的执行时间被缩短为原来的 1/Se,但不可改进的那部分的执行时间没有变化。所以改进后程序的总执行时间为
在这里插入图片描述
其中 T0为改进前整个程序的执行时间,1-Fe 为不可改进比例。
改进后,整个系统的加速比为
在这里插入图片描述
例 1.1 将计算机系统中某一功能的处理速度加快 15 倍,但该功能的处理时间仅占整个系统运行时间的 40%,则采用此改进方法后,能使整个系统的性能提高多少?
在这里插入图片描述
例 1.2 某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的 25 倍,而系统运行某一程序的整体性能提高到原来的 4 倍,试计算该程序中浮点操作所占的比例。
在这里插入图片描述
Amdahl 定律还表达了一种性能改进的递减规则:如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。

当 Se->∞时,S,=1/(1-Fe)。即如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过 1/(1-Fe)。

在用 Amdahl定律计算系统的加速比时,需要知道可改进比例是多少,但通常很难直接计算出这个比例。下面介绍的 CPU 公式从另一个角度来计算和比较性能。

2. CPU性能公式

执行一个程序所需的 CPU 时间可以这样来计算。
CPU 时间 = 执行程序所需的时钟周期数 X 时钟周期时间
其中时钟周期时间是时钟频率的倒数。

引入新的参数 CPI(Cycles Per Instruction),即每条指令的平均时钟周期数,有时简称为指令的平均时钟周期数。
CPI = 执行程序所需的时钟周期数 /所执行的指令条数
则有以下的 CPU 性能公式。
CPU 时间 =IC X CPI X 时钟周期时间
其中 IC 为所执行的指令条数。

根据这个公式可知,CPU 的性能取决于以下三个参数.

  1. 时钟周期时间:取决于硬件实现技术和计算机组成;
  2. CPI: 取决于计算机组成和指令系统的结构 ;
  3. IC:取决于指令系统的结构和编译技术。

改进任何一个参数,都能提高 CPU 的性能。不过,这些参数是相互关联的,很难做到能单独地改进某一个参数指标而不影响其他两个指标(变坏)。幸运的是,有可能设法使这种影响不会太大,或者至少是可以预测的。

CPU 设计中还经常用到下面计算 CPU 时钟周期总数的方法。
在这里插入图片描述
其中 I C i IC_i ICi为程序执行的过程中第种指令出现的次数, C P I i CPI_i CPIi为执行第i种指令所需的平均时钟周期数, n n n为指令的种数。
CPI可以表示为
在这里插入图片描述
其中( I C i / I C IC_i/IC ICi/IC)反映了第 i i i种指令在程序执行过程中所占的比例。

3. 程序的局部性原理

程序的局部性原理(Principle of Locality)是人们经常加以利用的程序属性。它是指:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。现在常用的一个经验规则是: 程序执行时间的 90%都是在执行程序中 10%的代码。数据访问也具有局部性,不过其局部性弱于代码访问的局部性。

局部性包括时间局部性和空间局部性。时间局部性是指: 程序即将用到的信息很可能就是目前正在使用的信息。空间局部性是指:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

利用程序的局部性原理,可以根据程序最近的访问情况来比较准确地预测将要访问的指令和数据。凡是涉及数据重用的地方都可能会用到它。它是存储层次的基础。

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

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

相关文章

计算机组成原理期中题库

计算机组成原理题目集 2.1 下面是关于计算机中存储器容量单位的叙述,其中错误的是 A. 最基本的计量单位是字节(Byte),一个字节等于8bit B. 一台计算机的编址单位、指令字长和数据字长都一样,且是字节的整数倍 C. 最小…

C++ 学习之函数成员指针的一个小细节

看看下面的代码,你能看出错误吗 class A { public:void fun(){}}; int main() {A a;void (A:: * p)() &A::fun;(*p)(); } 这段代码在调用成员函数时存在问题。正确的方式是使用对象来调用成员函数,而不是通过指针。以下是修正后的代码&#xff1a…

JAVA基础进阶(十一)

一、创建线程的三种方式 Java语言中是用Thread类来表示线程,线程的创建和开启都是通过Thread类来实现的。 继承Thread类重写run方法。 调用线程对象的start()方法启动线程(启动后还是执行run方法的),而不是调用创建的子类对象的run()方法。…

MSUSB30模拟开关可Pin to Pin兼容FSUSB30/SGM7222

MSUSB30/MSUSB30N 是一款高速、低功耗双刀双掷 USB 模拟开关芯片,其工作电压范围是1.8V 至5.5V。可Pin to Pin兼容FSUSB30/SGM7222。其具有低码间偏移、高通道噪声隔离度、宽带宽的特性。 MSUSB30/MSUSB30N 主要应用范围包括:具有 USB2.0 接口的手持设备…

事件机制?

事件流&#xff1a; 描述的页面接收事件的顺序。先进行事件捕获 到达目标元素 在进行事件冒泡 分为事件捕获和事件冒泡 事件冒泡&#xff1a;从具体元素从内向外依次触发事件 从下面这个小案例可以清楚了解什么是事件冒泡 <!DOCTYPE html> <html lang"en"…

C++ -- 每日选择题 -- Day2

第一题 1. 下面代码中sizeof(A)结果为&#xff08;&#xff09; #pragma pack(2) class A {int i;union U{char str[13];int i;}u;void func() {};typedef char* cp;enum{red,green,blue}color; }; A&#xff1a;20 B&#xff1a;21 C&#xff1a;22 D&#xff1a;24 答案及解析…

智能优化算法应用:基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.纵横交叉算法4.实验参数设定5.算法结果6.参考…

【字符串探秘:手工雕刻的String类模拟实现大揭秘】

【本节目标】 1. string类的模拟实现 2.C基本类型互转string类型 3.编码表 &#xff1a;值 --- 符号对应的表 4.扩展阅读 1. string类的模拟实现 1.1 经典的string类问题 上面已经对string类进行了简单的介绍&#xff0c;大家只要能够正常使用即可。在面试中&#xff0c;…

1.网络编程基础知识 - 基础概念、TCP网络通信、UDP网络通信

网络编程 文章目录 网络编程一、概念1.1 网络1.2 IP地址1.2.1 IPv4 介绍1.2.2 IPv6 介绍1.2.3 查看IP地址 1.3 域名和端口1.4 网络协议1.5 TCP与UDP1.6 InetAddress类1.7 Socket 二、TCP网络通信编程2.1 介绍2.2 案例2.2.1 字节流编程案例12.2.2 字节流编程案例22.2.3 字符流编…

5. 文件属性和目录

5. 文件属性和目录 1. Linux 系统的文件类型1.1 普通文件1.2 目录文件1.3 字符设备文件和块设备文件1.4 符号链接文件1.5 管道文件1.6 套接字文件 2. stat 系统调用2.1 struct stat 结构体2.2 st_mode 变量2.3 struct timespec 结构体 3. fstat 和 lstat 函数3.1 fstat 函数3.2…

python中的序列

文章目录 序列类型标准类型运算符标准类型运算符序列类型运算符字符串 序列类型 字符串 列表 元组 由元组构成的列表 标准类型运算符 &#xff08;1&#xff09;按字符串大小比较 标准类型运算符 序列类型运算符 序列类型转换内建函数 注&#xff1a; &#xff08;1&#xff…

深入理解MySQL索引底层数据结构与算法

索引的本质 索引是帮助MySQL高效获取数据的排好序的数据结构 索引的数据结构 二叉树红黑数Hash表B-Tree MySQL索引底层为啥不用二叉树 如图&#xff0c;对单边增长的数据&#xff0c;索引效率没有什么提升 MySQL索引底层为啥不用红黑数 红黑数&#xff1a;二叉平衡树 随…

计算虚拟化之内存

有了虚拟机&#xff0c;内存就变成了四类&#xff1a; 虚拟机里面的虚拟内存&#xff08;Guest OS Virtual Memory&#xff0c;GVA&#xff09;&#xff0c;这是虚拟机里面的进程看到的内存空间&#xff1b;虚拟机里面的物理内存&#xff08;Guest OS Physical Memory&#xf…

STM32CubeIDE(CUBE-MX hal库)----定时器

系列文章目录 STM32CubeIDE(CUBE-MX hal库)----初尝点亮小灯 STM32CubeIDE(CUBE-MX hal库)----按键控制 STM32CubeIDE(CUBE-MX hal库)----串口通信 文章目录 系列文章目录前言一、定时器二、使用步骤三、HAL库实验代码三、标准库代码 前言 STM32定时器是一种多功能外设&#…

[iOS开发]UITableView的性能优化

一些基础的优化 &#xff08;一&#xff09;CPU 1. 用轻量级对象 比如用不到事件处理的地方&#xff0c;可以考虑使用 CALayer 取代 UIView CALayer * imageLayer [CALayer layer]; imageLayer.bounds CGRectMake(0,0,200,100); imageLayer.position CGPointMake(200,200…

Python基础学习之包与模块详解

文章目录 前言什么是 Python 的包与模块包的身份证如何创建包创建包的小练习 包的导入 - import模块的导入 - from…import导入子包及子包函数的调用导入主包及主包的函数调用导入的包与子包模块之间过长如何优化 强大的第三方包什么是第三方包如何安装第三方包 总结关于Python…

智能优化算法应用:基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.生物地理学算法4.实验参数设定5.算法结果…

【matlab程序】matlab利用工具包nctool读取grib2、nc、opendaf、hdf5、hdf4等格式数据

【matlab程序】matlab利用工具包nctool读取grib2、nc、opendaf、hdf5、hdf4等格式数据 引用&#xff1a; B. Schlining, R. Signell, A. Crosby, nctoolbox (2009), Github repository, https://github.com/nctoolbox/nctoolbox Brief summary: nctoolbox is a Matlab toolbox…

时间序列预测实战(二十一)PyTorch实现TCN卷积进行时间序列预测(专为新手编写的自研架构)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行TCN时间序列卷积进行时间序列建模&#xff08;专门为了时间序列领域新人编写的架构&#xff0c;简单不同于市面上大家用GPT写的代码&#xff09;&#xff0c;包括结果可视化、支持单元预测、多元预测、模型拟合效…

【docker系列】docker实战之部署SpringBoot项目

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…