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

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

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

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

相关文章:

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

2.1 优化性能设计例如,当前需要微处理器强大功能的桌面应用程序包括:图像处理、三维渲染、语音识别、视频会议、多媒体创作、文件的声音和视频注释、仿真建模从计算机组成与体系结构的角度来看,一方面,现代计算机的基本组成与50多…...

anaconda详细介绍、安装及使用(python)

anaconda详细介绍、安装及使用1 介绍1.1 简介1.2 特点1.3 版本下载2 Anaconda管理Python包命令3 安装3.1 windows安装4 操作4.1 Conda 操作4.2 Anaconda Navigator 操作4.3 Spyder 操作4.4 Jupyter Notebook 操作5 示例参考1 介绍 1.1 简介 Anaconda是用于科学计算&#xff08…...

雅思经验(6)

反正我是希望遇到的雅思听力section 4.里面填空的地方多一些,之后单选的部分少一些。练了一下剑9 test3 的section 4,感觉还是不难的,都是在复现,而且绕的弯子也不是很多。本次考试的目标就是先弄一个六分,也就是说&am…...

CentOS9源码编译libvirtd工具

卸载原有版本libvirt [rootcentos9 ~]# yum remove libvirt Centos9配置网络源 [rootcentos9 ~]# dnf config-manager --set-enabled crb [rootcentos9 ~]# dnf install epel-release epel-next-release 安装依赖包 [rootcentos9 ~]# yum install -y libtirpc-devel libxml2-de…...

搭建内网穿透

文章目录摘要npsfrp服务提供商摘要 内网穿透是一种方便的技术,可以让用户随时随地访问内网设备。有两种方式可以使用内网穿透:自己搭建,使用nps/frps软件;购买服务,快速享受内网穿透带来的便利。 nps 内网穿透。参考…...

vue3组件库项目学习笔记(八):Git 使用总结

目前组件库的开发已经接近尾声,因为这次是使用 git 进行协作的开发模式,在团队协作的时候遇到很多的问题,开发过程中发现小伙伴们对于 git 的使用还不是很熟练,这里就简单总结一下常用的 git 的操作,大致有&#xff1a…...

ISO7320FCQDRQ1数字隔离器LMG1025QDEETQ1半桥GaN驱动器

1、数字隔离器 DGTL ISO 3000VRMS 2CH 8SOIC型号:ISO7320FCQDRQ1批次:新技术:容性耦合类型:通用隔离式电源:无通道数:2输入 - 侧 1/侧 2:2/0通道类型:单向电压 - 隔离:30…...

openmmlab 语义分割算法基础

本文是openmmlab AI实战营的第六次课程的笔记,以下是我比较关注的部分。简要介绍语义分割:如下图,左边原图,右边语义分割图,对每个像数进行分类应用语义分割在个各种场景下都非常重要,特别是在自动驾驶和医…...

2023年深圳/东莞/惠州CPDA数据分析师认证报名入口

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证,它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者,具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才,还是招投标加…...

RabbitMQ-客户端源码之AMQChannel

AMQChannel是一个抽象类,是ChannelN的父类。其中包含唯一的抽象方法: /*** Protected API - called by nextCommand to check possibly handle an incoming Command before it is returned to the caller of nextCommand. If this method* returns true…...

注意力机制(SE,ECA,CBAM) Pytorch代码

注意力机制1 SENet2 ECANet3 CBAM3.1 通道注意力3.2 空间注意力3.3 CBAM4 展示网络层具体信息1 SENet SE注意力机制(Squeeze-and-Excitation Networks):是一种通道类型的注意力机制,就是在通道维度上增加注意力机制,主要内容是是…...

Vue2笔记03 脚手架(项目结构),常用属性配置,ToDoList(本地存储,组件通信)

Vue脚手架 vue-cli 向下兼容可以选择较高版本 初始化 全局安装脚手架 npm install -g vue/cli 创建项目:切换到项目所在目录 vue create xxx 按照指引选择vue版本 创建成功 根据指引依次输入上面指令即可运行项目 也可使用vue ui在界面上完成创建&…...

Java程序的执行顺序、简述对线程池的理解

点个关注,必回关 文章目录一、Java程序是如何执行的二、合理利用线程池能够带来三个好处一、Java程序是如何执行的 我们日常的工作中都使用开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通 过打包工具把项目…...

【前言】嵌入式系统简介

随手拍拍💁‍♂️📷 日期: 2022.12.01 地点: 杭州 介绍: 2022.11.30下午两点时,杭州下了一场特别大的雪。隔天的12月路过食堂时,边上的井盖上发现了这个小雪人。此时边上的雪已经融化殆尽,只有这个雪人依旧维持着原状⛄…...

React设计原理—1框架原理

阅读前须知 本文是笔者学习卡颂的《React设计原理》的读书笔记,对书中有价值内容以Q&A方式进行呈现,同时结合了自己的理解🤔阅读时推荐先看问题,想想自己的答案,再和答案比对一下本文属于前端框架科普,…...

(C00034)基于Springboot+html前后端分离技术的宿舍管理系统-有文档

基于Springboothtml技术的宿舍管理系统-有文档项目简介项目获取开发环境项目技术运行截图项目简介 基于Springboothtml的前后端分离技术的宿舍管理系统项目为了方便对学生宿舍进行管理而设计,分为后勤、宿管、学生三种用户,后勤对整体宿舍进行管理、宿管…...

Flink面试题

一 基础篇Flink的执行图有哪几种?分别有什么作用Flink中的执行图一般是可以分为四类,按照生成顺序分别为:StreamGraph-> JobGraph-> ExecutionGraph->物理执行图。1)StreamGraph顾名思义,这里代表的是我们编写…...

Python学习笔记

前言:又从仓库翻出来了一些以前总结的文档,以下内容是我初学Python时网上找的或是图书馆借书抄写的笔记,现在再看有点零散不成体系,但是也还是纪念一下子吧。 Python学习笔记 对于初学编程的人来说,Python可以缩短编…...

最适合入门的100个深度学习实战项目

🚨注意🚨:最近经粉丝反馈,发现有些订阅者将此专栏内容进行二次售卖,特在此声明,本专栏内容仅供学习,不得以任何方式进行售卖,未经作者许可不得对本专栏内容行使发表权、署名权、修改…...

AssertionError: 618 columns passed, passed data had 508 columns【已解决】

问题描述 程序中断,报错如下AssertionError: 618 columns passed, passed data had 508 columns Exception has occurred: ValueError 618 columns passed, passed data had 508 columns AssertionError: 618 columns passed, passed data had 508 columnsThe abo…...

166_技巧_Power BI 窗口函数处理连续发生业务问题

166_技巧_Power BI 窗口函数处理连续发生业务问题 一、背景 在生产经营的数据监控中,会有一类指标需要监控是否连续发生,从而根据其在设定区间中的连续频次来评价业务。 例如: 员工连续迟到天数。销售金额连续上升或者下降。用户连续登陆…...

电子科技大学人工智能期末复习笔记(五):机器学习

目录 前言 监督学习 vs 无监督学习 回归 vs 分类 Regression vs Classification 训练集 vs 测试集 vs 验证集 泛化和过拟合 Generalization & Overfitting 线性分类器 Linear Classifiers 激活函数 - 概率决策 ⚠线性回归 决策树 Decision Trees 决策树构建递归…...

使用DDD指导业务设计的总结思考

领域驱动设计(DDD) 是 Eric Evans 提出的一种软件设计方法和思想,主要解决业务系统的设计和建模。DDD 有大量难以理解的概念,尤其是翻译的原因,某些词汇非常生涩,例如:模型、限界上下文、聚合、…...

面试官问:如何确保缓存和数据库的一致性?

如果你对这个问题有过研究,应该可以发现这个问题其实很好回答,如果第一次听到或者第一次遇到这个问题,估计会有点懵,今天我们来聊聊这个话题。 1、问题分析 首先我们来看看为什么会有这个问题! 我们在日常开发中&am…...

16.数据库Redis

一、基本概念 Redis(Remote Dictionary Server)译为“远程字典服务”,它是一款基于内存实现的键值型 NoSQL 数据库, 通常也被称为数据结构服务器,这是因为它可以存储多种数据类型,比如 string(字…...

【Redis高级-集群分片】

单机安装Redis首先需要安装Redis所需要的依赖:yum install -y gcc tclRedis安装包上传到虚拟机的任意目录:我放到了/tmp目录:解压缩:tar -zxvf /tmp/redis-6.2.4.tar.gz -C /tmp解压后:进入redis目录:cd /t…...

CSDN - CSDN27题解

文章目录幸运数字题目描述解题思路AC代码投篮题目描述解题思路AC代码通货膨胀-x国货币题目描述解题思路AC代码最后一位题目描述解题思路AC代码CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/41 这次题目描述刚开始好像有些问题,之后被修正了…...

docker拉取mysql

搜索mysql版本docker search mysql搜索获赞数(星星数量) 大于 1000 的镜像docker search --filterstars1000 mysql搜索官方发布的版本docker search --filter is-officialtrue mysql搜索版本号docker search mysql57拉取docker pull devbeta/mysql57查看下载镜像docker images启…...

在Linux上安装Python3

记录:373场景:在CentOS 7.9操作系统上,安装Python-3.8.9环境。版本:JDK 1.8 Python-3.8.9官网地址:https://www.python.org下载地址:https://www.python.org/ftp/python/1.安装基础依赖1.1安装gcc(1)安装命…...

23 种设计模式的通俗解释,看完秒懂

01 工厂方法 追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式&…...

做翻译 网站/百度网站网址是多少

KD302 成本中心 CTR xxx/xxxx, 成本要素 4210000: 不能划分 (2013-03-05 11:11:17) 转载▼ 标签: it 分类: SAP 都什么年代了,版本都ehp6了还有这个BUG啊。。。 成本中心 CTR xxx/xxxx, 成本要素 4210000: 不能划分 消息号 KD302 诊断 …...

wordpress 4.7优化/外包公司排名

0.思考 DNN网络对特征进行不断的抽象,获得更高阶的特征,这个跟特征交叉不太一样。为什么呐?我理解更高阶特征表示为描述同一个东西的共性,看山是山的样子;特征交叉表示为特征A且特征B的时候,会产生什么样的…...

国外开源网站建设软件/外贸谷歌推广

为了能管控到钱财的每个环节,公司要求采购订单需要使用物料限价,当有报价低于先前的价格时,在采购订单保存时,更新最低限价 BADI:ME_PROCESS_PO_CUST process~item里做限价检查 post里更新限价 METHOD IF_EX_ME_PROCESS_PO_CUST~P…...

会做网站的公司/2345网址导航智能主板

工具 window10 django2.2.2 mysql5.6 django默认使用mysqlclient连接mysql,但是在window下直接安装mysqlclient不容易成功,可以使用pymysql 代替。 但使用如下方式报错: #settings.py import pymysql pymysql.intall_as_MySQLdb()django 3.…...

互联网保险监管/吉林关键词排名优化软件

本文作者戴尔伍德(Dale Woods)2007年开始交易外汇,是一名外汇“发烧友”,尤其偏爱价格运动(Price Action)分析,至今拥有12年的交易经验。在这十多年的交易生涯中,伍德一直对价格运动…...

嘉祥网站建设多少钱/网络营销以什么为中心

打开文件,路径为 C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallSqlState.sql v2.0.50727 版本根据自己的framework版本选择 ASPState 存放的是.NET 访问的session,避免了session丢失的问题,但是会影响交互的效率转载于:https://w…...