计算机组成与体系结构 性能设计 William Stallings 第2章 性能问题

news2024/11/28 11:47:36

2.1 优化性能设计

例如,当前需要微处理器强大功能的桌面应用程序包括:

图像处理、三维渲染、语音识别、视频会议、多媒体创作、文件的声音和视频注释、仿真建模

从计算机组成与体系结构的角度来看,一方面,现代计算机的基本组成与50多年前的IAS计算机几乎一样;另一方面,从现有材料中挤出最大性能的技术变得越来越复杂。

随着对计算机各个要素和组成部分的讨论,我们追求两个目标:其一,本书解释了考虑到的每个部分的基本功能;其二,本书讨论了获取最大性能所需要的技术

2.1.1 微处理器速度

只要摩尔定律有效,芯片制造商每三年就可以推出新一代芯片--其晶体管的数量是现在的4倍。对内存芯片而言,每三年动态随机访问存储器的容量就会增加4倍,DRAM仍然是计算机主存的基本技术。

自1978年英特尔推出x86系列以来,新电路的加入以及缩短电路之间距离所带来的速度提升,使其性能每三年就能提高4~5倍。

但是微处理器的原始速度无法发挥其潜力,除非是计算机指令的形式向其输入不间断的工作流。任何妨碍其顺畅流动的东西都会削弱处理器的能力。处理器设计者必须拿出越来越复杂的技术来“喂饱”这个芯片怪物。当代处理器内置的技术包括:

流水线:指令的执行涉及多个操作阶段,其中包括取指,译码,取操作数,执行计算等。流水线能够使处理器处理多条指令,这些指令在同一时间内执行不同的阶段操作。

分支预测:处理器从内存预取指令,并根据它预测未来:下一步可能处理那些分支或指令组。如果处理器大部分时间猜测都是正确的,它就能预取正确的指令并缓存它们,使得处理器保持忙碌。

超标量执行:每个处理器时钟周期内发射多条指令的能力。实际上,要使用多条并行地流水线。

数据流分析:处理器分析那些指令依赖其他指令的结果或数据,以便创建优化的指令调度。

推测执行:使用分支预测和数据流分析,一些处理器在程序执行时,可以在指令实际出现前进行预测性的执行,其结果将暂存在临时位置,让其执行单元尽可能保持忙碌。

以上这些处理器内置技术和其他复杂技术的共同作用使得每个处理器周期处理多条指令成为可能,美不是每一条指令都占用多个周期。

2.1.2 性能平衡

虽然处理器能力以极快的速度向前发展,但计算机的其他关键部件没有跟上发展速度。其结果就是需要寻找性能平衡:对组成和体系结构进行调整/调优,以补偿各组件之间的不匹配。

这种不匹配造成的问题对处理器与主存之间的接口来说尤为重要。因为其接口是计算机中最关键的路径,因为它负责在内存芯片和处理器之间不断传输程序指令和数据,如果该路径无法满足处理器的持续需求,处理器将会处于等待状态。

系统架构师通过多种办法来解决这一问题,所有方法在当代计算机中都有所反映。请思考下列:

让DRAM“更宽”而不是“更深”,以及使用宽总线数据路径来增加一次检索的位数;

让DRAM芯片中包含高速缓存或利用其他缓冲方法来改变DRAM接口,使其更有效。

通过在处理器核主存之间集成日益复杂和高效的高速缓存结构来减少内存访问的频率。这包括在处理器芯片上集成一个或多个高速缓存,以及在靠近处理器芯片的地方集成一个片外高速缓存。

通过使用更高速的总线以及总线层次结构来缓冲和构造数据流,增加处理器与内存之间的互联带宽。

但数据在处理器和外设之间的传输仍然是个问题。应对策略包括缓存和缓冲方案,使用更高速的互连总线,以及更复杂的 互连结构,另外,使用多处理器配置也有助于满足IO需求。

这一切关键是平衡。设计人员不断平衡处理器组件、主存、IO设备和互连结构的吞吐量与处理器需求,以应对2个不断发展的因素:

不同类型的元素在各种技术领域(处理器、总线、内存、外设)中性能变化的速度有很大的不同;

在典型指令文件和数据访问模式方面,新的应用和新的外围设备不断改变着系统需求的性质;

2.1.3 芯片组成与体系结构的改进

在应对平衡处理器与主存以及其他计算机组件的挑战时,仍然需要提高处理器速度。有3种方法可以提高处理器的速度:

1. 提高处理器硬件的速度,原因自傲与缩小了处理器芯片上逻辑门的尺寸。

2.增加处理器与主存之间高速缓存的大小和速度。通过让处理器芯片的一部分专门用于高速缓存来显著降低高速缓存访问时间。

3.改变处理器组成体系结构来提高指令执行的有效速度。涉及使用一种或多种形式的并行。

性能提升的主要因素是时钟速度和逻辑密度的增加。当随着这二者的增加,一些障碍变得更加突出:

功率:随着芯片逻辑密度和时钟速度的增加,功率密度成平方增加;

RC延迟: 延迟会随着RC产品的增加而增加。当芯片上组件的尺寸减少时,其连线会变窄,电阻就会增加。

内存延迟和吞吐量:内存访问的延迟和吞吐量滞后处理器速度;

从20世纪80年代末开始的15年内,2个主要策略被用于提高性能,超越了仅靠增加时钟速度来获得的性能。

其一,增加高速缓存容量。例如处理奔腾芯片上大约10%的区域是高速花奴村,而当代芯片则有超过一半的区域是高速缓存。而且,通常情况下,另一半的3/4用于流水线相关控制和缓冲。

其二,处理器内的指令执行逻辑变得越来越复杂,以便指令能在处理器内并行执行。流水线和超标量是2种值得注意的设计方法。流水线的工作原理和制造工厂中的装配线类似,它能让不同指令的不同执行阶段在流水线中同时发生。超标量方法从本质上看就是允许单个处理器有多条流水线,这样就可以并行执行互不依赖的指令。

到了20世纪90年代中后期,这2种方法都达到了收益递减的拐点。当代处理器的内部组织极其复杂,能够从指令流中挤出大量的并行性。但是这个方向上进一步显著增长似乎将相对平缓。而对处理器芯片上的3级高速缓存来说,每一级的容量都比较大,所以高速缓存的优势似乎也到达了极限。

然而,紧靠增加时钟频率来提高性能就会遇到前面所说的功耗问题。时钟频率越快,消耗的功劳越大,已经达到了一些基本的物理极限。

2.2 多核、MIC和GPGPU

考虑到上一节提到的所有困难,设计人员已经转向一种改进性能的全新方法:将多个处理器放在同一个芯片上,并配以大容量的共享高速缓存,即多核处理器。

在处理器内部,性能的提高大致与复杂度增加的平方成正比。但是,如果软件能支持使用多个处理器,那么处理器的数量翻倍几乎就能性能翻倍。

此外,对于两个处理器而言,更大的高速缓存是合理的。这一点很重要,因为芯片上的存储逻辑的功耗比处理逻辑的功耗要小很多。

刚开始的时候,一级高速缓存专门用于单个处理器,二级和三级则由所有处理器共享。现在常见的是,二级高速缓存也是每个内核私有的。

多核和MIC策略涉及单芯片上通用处理器的同构集合,同时,芯片制造商正在寻找另一种设计方案,一个芯片上含有多个通用通用器,再加上图形处理器和专门用于视频及其他任务的内核。

2.4 计算机性能的基本度量

2.4.1 时钟速度

从根本上说,处理器速度由时钟产生的脉冲频率决定,衡量单位是每秒的周期个数,即赫兹Hz。脉冲之间的时间就是周期时间。

时钟频率不是任意的,而是要适合处理器的物理布局。

指令的执行涉及多个离散的步骤,比如从内存取指令,译码指令的各个部分。

2.4.2 指令执行速度

在任何给定处理器上,诸如加载、存储、分支等不同类型指令需要的时钟周期数不同。令CPI i为i类指令的周期数,

性能因素受五个性能因素受4个系统属性的影响:指令集的设计(称为指令集架构);编译器技术(编译器从高级语言程序生成高校机器语言的效率);处理器的实现,以及告诉缓存和内存层次结构。

另一种常用的性能度量只用于处理浮点指令

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

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

相关文章

强大的ChatGpt为企业营销推广提供了全方位的加持

chatgpt,一个火出圈的“聊天机器人”。从写作文,到写代码,似乎没有什么是它干不了的。 ChatGpt在工业中的应用场景有哪些? 在工业领域,它可以用于提高生产效率,缩短生产周期,并帮助工人解决生产过程中的问…

优先级队列(PriorityQueue 和 Top-K问题)

一、PriorityQueue java中提供了两种优先级队列:PriorityQueue 和 PriorityBlockingQueue。其中 PriorityQueue 是线程不安全的,PriorityBolckingQueue 是线程安全的。 PriorityQueue 使用的是堆,且默认情况下是小堆——每次获取到的元素都是…

LeetCode刷题------字符串

LeetCode:344.反转字符串 定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。 var reverseString function(s) {let l -1, r s.len…

Windows下LuaBridge2.8的环境配置及简单应用

Windows下LuaBridge2.8的环境配置及简单应用 LuaBridge2.8下载链接: https://github.com/vinniefalco/LuaBridge/tags 关于Lua的环境配置可参考以下链接(这里不做简述): https://ufgnix0802.blog.csdn.net/article/details/125341…

什么是抗压能力?抗压能力的重要性及提高方法

在现实生活中每个人都面临着或大或小的压力。不论是学习还是工作,没有压力就没有进步和提升,压力可以转化为动力,而扛不住压力那就会导致躺平的结果。在职业的道路上,压力一直都存在,尤其是站在企业人力资源管理的角度…

开学季,关于校园防诈骗宣传,如何组织一场微信线上答题考试

开学季,关于校园防诈骗宣传,如何组织一场微信线上答题考试如何组织一场微信线上答题考试在线考试是一种非常节约成本的考试方式,考生通过微信扫码即可参加培训考试,不受时间、空间的限制,近几年越来越受企事业单位以及…

Navicat远程连接mysql教程及Navicat报错10061解决办法

文章目录想要远程连接的前提是数据库要配置密码,配置密码参考如下进入要连接的数据库看一下原有的配置,host 和 user修改配置授权root用户进行远程登录配置修改完成后,打开navicat,新建连接点击测试链接,显示连接后点击…

10个自动化测试框架,测试工程师用起来

软件行业正迈向自主、快速、高效的未来。为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价。快速实现质量是必要的,因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的需求&#xf…

ThinkPad笔记本如何拆卸及安装电池

注意:外置电池可以自行拆卸,内置电池如需拆卸建议联系服务商,由工程师协助操作。 外置电池的拆卸方法: 方式一.部分机型只有一个锁扣,将锁扣移动到解锁状态,然后将电池向机身外侧抽出(以T420为例&#xf…

用Qt开发的ffmpeg流媒体播放器,支持截图、录像,支持音视频播放,支持本地文件播放、网络流播放

前言 本工程qt用的版本是5.8-32位,ffmpeg用的版本是较新的5.1版本。它支持TCP或UDP方式拉取实时流,实时流我采用的是监控摄像头的RTSP流。音频播放采用的是QAudioOutput,视频经ffmpeg解码并由YUV转RGB后是在QOpenGLWidget下进行渲染显示。本…

如何使用ModelScope训练自有的远场语音唤醒模型?

就像人和人交流时先会喊对方的名字一样,关键词就好比智能设备的"名字",而关键词检测模块则相当于交互流程的触发开关。 本文介绍魔搭社区中远场语音增强与唤醒一体化的语音唤醒模型的构成、体验方式,以及如何基于开发者自有数据进…

MySQL数据库07——高级条件查询

前面一章介绍了基础的一个条件的查询,如果多条件,涉及到逻辑运算,and or 之类的。就是高级一点的条件查询。本章来介绍复杂的条件搜索表达式。 AND运算符 AND运算符只有当两边操作数均为True时,最后结果才为True。人们使用AND描述…

高性能IO模型:为什么单线程Redis能那么快?

我们通常说Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的。这也是Redis对外提供键值存储服务的主要流程。 但redis的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。 Redis为什么用单线…

探讨MySQL事务特性和实现原理

一、概念 事务 一般指的是逻辑上的一组操作,或者作为单个逻辑单元执行的一系列操作,一个事务中的所有操作会被封装成一个不可分割的执行单元,这个单元的所有操作要么全部执行成功,要么全部执行失败,只要其中任意一个操…

《Terraform 101 从入门到实践》 第四章 States状态管理

《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。 军书十二卷,卷卷有爷名。 为什么需要状态管理 Terraform的主要作用是管理云平台上的资源&#xff…

个人学习系列 - 解决拦截器操作请求参数后台无法获取

由于项目需要使用拦截器对请求参数进行操作,可是请求流只能操作一次,导致后面方法不能再获取流了。 新建SpringBoot项目 1. 新建拦截器WebConfig.java /*** date: 2023/2/6 11:21* author: zhouzhaodong* description:*/ Configuration public class W…

Docker-consul的容器服务更新与发现

一.Consul概述1.1 什么是服务注册与发现服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起…

Threejs中的Shadow Mapping(阴影贴图)

简而言之,步骤如下: 1.从灯光位置视点(阴影相机)创建深度图。 2.从相机的位置角度进行屏幕渲染,在每个像素点,比较由阴影相机的MVP矩阵计算的深度值和深度图的值的大小,如果深度图值小的话&…

Office Server Document Converter Lib SDK Crack

关于 Office Server 文档转换器 (OSDC) 无需 Microsoft Office 或 Adob​​e 软件即可快速准确地转换文档。antennahouse.com Office Server 文档转换器 (OSDC) 会将您在 Microsoft Office(Word、Excel、PowerPoint)中创建的重要文档转换为高质量的 PDF …

【编程基础之Python】2、安装Python环境

【编程基础之Python】2、安装Python环境安装Python环境在Windows上安装Python验证Python运行环境在Linux上安装Python验证Python运行环境总结安装Python环境 所谓“工欲善其事,必先利其器”。在学习Python之前需要先搭建Python的运行环境。由于Python是跨平台的&am…