计算机体系结构 第一章 计算机系统结构的基础知识(2)
文章目录
- 第一章 计算机系统结构的基础知识
- 1.3 计算机系统结构的评价标准
- 1.3.1 性能
- 1.3.1.1 主要性能衡量标准
- 1.3.1.1.1 MIPS
- 1.3.1.1.2 MFLOPS(即每秒百万次浮点操作次数)
- 1.3.1.1.3 基准测试程序
- 1.3.1.2 性能评测结果的分析
- 1.3.2 成本
- 1.4 计算机系统结构的发展
- 1.4.1 冯诺依曼体系结构及其改进
- 1.4.2 软件对系统结构的影响
- 1.4.3 器件发展对系统结构的影响
- 1.4.4 应用对系统结构的影响
- 1.5计算机系统结构中并行性的发展
- 1.5.1并行性的概念
- 1.5.2提高并行性的技术途径
- 1.5.3单机系统中并行性的发展
- 1.5.4多机系统中并行性的发展
第一章 计算机系统结构的基础知识
1.3 计算机系统结构的评价标准
评价一个计算机系统结构好坏的标准主要是性能和成本这两个指标。
对设计者来说,衡量机器性能的有效而可靠的标准就是实际程序的执行时间。
时间分为响应时间和CPU时间,要根据需要选择:
- 响应时间指完成任务的全部时间,包括磁盘、存储器、I/O设备访问和操作系统开销等;
- CPU时间指任务在CPU上消耗的时间,不包括I/O等待和执行其它优先级更高任务的时间。
1.3.1 性能
1.3.1.1 主要性能衡量标准
无论哪种标准,测试性能时比较的应该是相同负载的执行时间——程序和操作系统指令的总执行时间。
1.3.1.1.1 MIPS
表示每秒百万指令条数。对于一个给定的程序,MIPS 定义为:
MIPS=指令条数执行时间×106=ICIC×CPI×T×106=时钟频率CPI×106=IPC×Fz(M)MIPS = \frac{指令条数}{执行时间 \times 10^{6}} = \frac{IC}{IC \times CPI \times T \times 10^{6}} = \frac{时钟频率}{CPI \times 10^{6}} = IPC \times F_{z}(M) MIPS=执行时间×106指令条数=IC×CPI×T×106IC=CPI×106时钟频率=IPC×Fz(M)
其中:IPC指CPU每一时钟周期内所执行的指令多少
程序的执行时间:Te=指令条数MIPS×106T_{e} = \frac{指令条数}{MIPS \times 10^{6}}Te=MIPS×106指令条数
MIPS主要优点:直观、方便。目前还经常使用
主要缺点:
- 指令集不同时不准确,依赖于指令集合
- 指令使用频度差别很大,依赖于程序
- 可能和性能相反,如用软硬件分别实现浮点运算
1.3.1.1.2 MFLOPS(即每秒百万次浮点操作次数)
MFLOPS=程序中的浮点操作次数执行时间×106MFLOPS = \frac{\text{程序中的浮点操作次数}}{执行时间 \times 10^{6}} MFLOPS=执行时间×106程序中的浮点操作次数
- MFLOPS 仅仅只能用来衡量机器浮点操作的性能,而不能体现机器的整体性能。
- MFLOPS是基于操作而非指令的,所以它可以用来比较两种不同机器的浮点性能。
- MFLOPS依赖于操作类型。例如100%的浮点加要远快于100%的浮点除。
- MFLOPS只能作为一个参考标准。
1.3.1.1.3 基准测试程序
- 测量性能的最好方法是通过实际的应用程序测试。这些方法包括:
- 从实际的程序中抽取少量关键循环程序段,并用它们来评价机器的性能。
- 小型基准测试程序。通常只有10-100行。
- 综合基准测试程序。模拟实际应用的特征和行为而编写的程序。
- 测试程序最终要给出性能评测报告。
- SPEC是最成功的基准测试程序集,有很多版本,各版本有不同的程序集,分为针对桌面计算机和服务器两种。
- 针对桌面计算机的测试程序又分为面向处理器和图形系统两种。
- 由于服务器功能的多样性,针对服务器的测试程序种类更多,但都以每秒钟处理的事务数作为标准。
1.3.1.2 性能评测结果的分析
不同程序在不同机器上的执行时间
平均执行时间
用平均执行时间代替总执行时间,平均执行时间是各执行时间的算术平均值:Am=1n∑i=1nTiA_{m} = \frac{1}{n} \sum_{i=1}^{n} T_{i}Am=n1∑i=1nTi
TiT_iTi:第i个测试程序的执行时间,n是测试程序组中程序的个数
如果性能是用速度(例如MIPS和MFLOPS)表示,那么平均时间是调和平均:Hm=n∑i=1n1RiH_{m} = \frac{n}{\sum_{i=1}^{n}\frac{1}{R_{i}}}Hm=∑i=1nRi1n,其中 Ri=1TiR_{i} = \frac{1}{T_{i}}Ri=Ti1
这种方法无法表示程序集中单个程序的重要性。
加权平均执行时间
将权因子和执行时间的积相加,这叫做加权算术平均值
加权平均执行时间: Am=∑i=1nWiTiA_{m} = \sum_{i=1}^{n}W_{i}T_{i}Am=∑i=1nWiTi
加权调和平均时间:Hm=1∑i=1nWiRiH_{m} = \frac{1}{\sum_{i=1}^{n}\frac{W_{i}}{R_{i}}}Hm=∑i=1nRiWi1
这种方法的难点在于权值的选择,因为这可能涉及相关公司的利益。
使用参考机器
将一个任务的执行时间标准化为一个参考机器的执行时间
参考机器的执行时间称为平均标准化时间
几何平均在反应性能上可以与机器无关,所以算数平均不可以用来求平均标准时间。
Gm=n∏i=1nRi=n∏i=1n1TiG_{m}=n \sqrt{\prod_{i=1}^{n} R_{i}} = n \sqrt{\prod_{i=1}^{n} \frac{1}{T_{i}} }Gm=n∏i=1nRi=n∏i=1nTi1 ,TiT_iTi:第i个测试程序的执行时间 RiR_iRi:是n个程序组成的工作负荷中第i个程序的速度
加权几何平均数 Gm=∏i=1n(Ri)WiG_{m} = \prod_{i=1}^{n}(R_{i})^{W_{i}}Gm=∏i=1n(Ri)Wi
几何平均值的比等于比的几何平均值:Gm(xi)Gm(yi)=Gm(xiyi)\frac{G_{m}(x_{i})}{G_{m}(y_{i})} = G_{m}(\frac{x_{i}}{y_{i}})Gm(yi)Gm(xi)=Gm(yixi)
标准偏差
1.3.2 成本
计算机系统的成本是指软件和硬件两方面的成本
当前软件成本由于其复杂性和长度的增加而不断增长,硬件成本则由于科技的发展尤其是VLSI的发展而快速下降。
计算机系统的成本主要包括以下两部分:
- 一次性开发成本;
- 每个部件的生产成本
软硬件的成本:
对于软件来说,其成本主要是指开发成本,软件的生产成本即复制费是很低的。
对于硬件,其成本既包括一次性开发成本,又包括生产成本,硬件的生产成本是远远高于软件的。硬件成本的降低,使系统变复杂。
1.4 计算机系统结构的发展
1.4.1 冯诺依曼体系结构及其改进
- 对输入输出方式对改进
- 采用并行处理技术
- 存储器组织结构的发展
- 指令系统的发展
1.4.2 软件对系统结构的影响
软件兼容性(可移植性) 要求同一软件可不经修改或只须少量修改即可由一台机器移植到另一台机器上运行,即同一软件可应用于不同环境。
系列机的软件兼容有4种:向上兼容、向下兼容、向前兼容、向后兼容
- 向上(下)兼容指的是按某档计算机编制的程序,不加修改就能**运行于**比它高(低)档的计算机。
- 向后(前)兼容是指按某个时期投人市场的某种型号计算机编制的程序,不加修改就能运行于在它之后(前)投入市场的计算机。
- 为了使计算机系统结构能够很好地适应应用需求的发展,并不一定要求系列机能实现所有的4种兼容,只要保证向上兼容和向后兼容就可以了。有时向上兼容也可以不实现(如在低档计算机上增加了面向事务处理的指令),而仅实
现向后兼容。 - 向后兼容是肯定要做到的,它是系列机的根本特征。
软件兼容性实现上主要有下面三种方法:
- 采用系列机和兼容机方法
- 系列机是同一个厂家生产的具有相同系统结构,不同的组成和实现技术的一系列不同型号的机器。
- 兼容机是不同厂家生产的具有相同系统结构,不同的组成和实现技术的性价比不同的机器。
- 采用系列机和兼容机方法的主要优点:
- 插件、接口等相互兼容;
- 便于实现机间通信;
- 便于维修、培训;
- 有利于提高产量、降低成本。
- 采用系列机和兼容机方法的主要缺点:限制了计算机系统结构的发展。
- 采用模拟与仿真方法
- 模拟是用软件方法在一台现有机器上实现另一台机器的指令系统。
- 仿真是用微程序直接解释另一台机器的指令系统的方法。
- 模拟方法速度低,仿真方法速度高,但仿真需要硬件支持,系统结构差别大的机器难于完全用仿真方法来实现。
- 通常把两种方法混合起来,尽可能用仿真的方法,无法仿真的指令再用模拟方法实现。
- 采用统一的高级语言方法
1.4.3 器件发展对系统结构的影响
系统结构的设计应考虑未来技术的发展,以延长计算机的生存周期,从长远发展考虑,必须了解计算机实现技术的快速变化。
- 四种实现技术
- 集成电路技术:晶体管密度每年增长约35%,芯片上的晶体管数目年增长40-55%。
- DRAM(动态随机存储器):容量每年增长约40%
- 磁盘技术:90年以前,年增长30%,90后60%,96后100%,2004年降为30%,每比特成本比DRAM便宜50-100倍。
- 网络实现技术
- 性能发展趋势:带宽优于时延
- 晶体管性能与连线的规模
1.4.4 应用对系统结构的影响
- 高结构化的数值计算
- 非结构化的数值计算
- 实时多因素问题
- 大存储容量和输入输出密集问题
- 图形学和设计问题
- 人工智能
1.5计算机系统结构中并行性的发展
1.5.1并行性的概念
- 所谓的并行性是指计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上重叠,就存在并行性。它包括同时性与并发性两种含义。
- 同时性:两个或两个以上的事件在同一时刻发生。
- 并发性:两个或两个以上的事件在同一时间间隔内发生。
从处理数据的角度看,并行性等级从低到高可分为:
- 字串位串
- 字串位并
- 字并位串
- 全并行
从执行程序的角度看,并行性等级从低到高可分为:
- 指令内部并行:一条指令执行时各微操作之间的并行。
- 指令级并行:并行执行两条或多条指令。
- 任务级或过程级并行:并行执行两个以上过程或任务(程序段)
- 作业或程序级并行:并行执行两个以上作业或程序
1.5.2提高并行性的技术途径
计算机中提高并行性的措施多种多样,就是基本思想而言,可以归纳为如下3条途径:
- 时间重叠。即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转时间而赢得速度。因此时间重叠可称为时间并行技术。(流水线技术)
- 资源重复。在并行性概念中引入空间因素,以数量取胜的原则,通过重复设置硬件资源,大幅度提高计算机系统的性能。随着硬件价格的降低,这种方式在单处理机中广泛使用,而多处理机本身就是实施“资源重复”原理的结果。
- 资源共享。这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。例如多道程序、分时系统就是遵循“资源共享”原理而产生的。资源共享既降低了成本,又提高了计算机设备的利用率。
1.5.3单机系统中并行性的发展
在发展高性能单处理机过程中,起着主导作用的是时间重叠原理。例如:解释指令的5个子过程分别需要5个专用部件,即取指令部件(IF)、指令译码部件(ID)、指令执行部件(EX)、访问存储器部件(M)、写回结果部件(WB)。
将它们按流水方式连接起来,就满足时间重叠原理,从而使得处理机内部同时处理多条指令,提高了处理机的速度。显然,时间重叠技术开发了计算机系统中的指令级并行。
1.5.4多机系统中并行性的发展
多机系统也遵循时间重叠、资源重复、资源共享原理,向着三种不同的多处理机方向发展。但在采取的技术措施上与单处理机系统有些差别。
紧耦合系统又称直接耦合系统:
指计算机间物理连接的频带较高,一般是通过总线或高速开关实现计算机间的互连,可以共亨主存。由于具有较高的信息传输率,因而可以快速并行处理作业或任务。松耦合系统又称间接耦合系统:
一般是通过通道或通信线路实现计算机间的互连,可以共享外存设备(磁盘、磁带等)。机器之间的相互作用是在文件或数据集一级上进行。
松耦合系统表现为两种形式:
- 一种是多台计算机和共享的外存设备连接,不同机器之间实现功能上的分工(功能专用化),机器处理的结果以文件或数据集的形式送到共享外存设备,供其他机器继续处理。
- 另一种是计算机网,通过通信线路连接,以求得更大范围的资源共享。
计算机体系结构 第一章 计算机系统结构的基础知识(2)相关推荐
- 16第一章 ASP.Net编程基础知识
第一章 ASP.Net编程基础知识 第一章 ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...
- 第一章c语言基础知识答案,第一章 C语言的基础知识练习题
第一章 C语言的基础知识练习题 第一章 C语言的基础知识 第一节 对C语言的初步认识 习题 1. 下列叙述中错误的是 B A)任何一个C程序都必须有且仅有一个main函数,C语言总是从main函数开始 ...
- Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,分享给大家: https://www.captainai.net/lf 如果你学完了Python不知道干什么,不妨去了解一下. 第一章 快速 ...
- 计算机组成原理-第一章 计算机系统概述(详细知识点总结)
第一章 计算机系统概述 大纲 大纲: (一).计算机发展历程 (二).计算机系统层次结构 计算机硬件的基本组成.计算机软件的分类.计算机的工作过程 (三).计算机性能指标 吞吐量.响应时间.CPU时钟 ...
- 【王道】计算机组成原理第一章计算机系统概述(一)
✍.[王道]计算机组成原理第一章 本笔记结合<2023王道计算机组成原理考研复习指导>食用
- 计算机体系结构--第一章1----体系结构的分类
文章目录 计组和计算机体系结构区别 外特性 和 内特性 计算机体系结构定义 研究计算机系统中软硬件之间的界面定义和其上下的功能分配与逻辑实现 基本概念 体系结构的分类 按照指令流和数据流的多寡,将体系 ...
- (计算机组成原理)第一章计算机系统概述-王道重点习题及杂项总结
文章目录 一:重点题目 (1)第一节 (2)第二节 (3)第三节 二:总结 三:本章易混淆概念 (1)软件和硬件 (2)翻译程序.汇编程序.编译程序.解释程序 (3)什么是透明性 (4)机器字长.指令 ...
- 计算机组成原理 第一章 计算机系统概述
第一章是计算机组成原理的一些入门知识,都是比较粗的概述性知识点. 1.1 计算机发展历程 计算机的发展经历了电子管-晶体管-中小规模集成电路-大规模集成电路四个时代. 电子计算机分为电子模拟计算机和电 ...
- (计算机组成原理)第一章计算机系统概述-第三节:计算机层次结构
文章目录 一:计算机系统的多级层次结构 二:计算机软件的分类 (1)系统软件 (2)应用程序 三:三个级别的语言 (1)编译程序.解释程序和汇编程序的区别 (2)三个级别的语言 四:计算机体系结构和计 ...
- 第一章、Excel VBA基础知识
01-01.Excel VBA简介 1.VBA是什么,能干什么 VBA可以说是一种编程语言,是VB的分支 VBA的作用,可以将重复的Excel工作简单化 2.VBA具备的基础知识 2.1基础操作,能发 ...
最新文章
- memcached的基本命令(安装、卸载、启动、配置相关)
- 记录:SqlParamater要点小结
- mac php mcrypt,MacOSX 10.10安装mcrypt详细教程分享
- 一篇综述带你全面了解课程学习(Curriculum Learning)
- (50)IO的延迟约束(输入延迟约束)
- Matplotlib 中文用户指南 3.5 艺术家教程
- 工程测量附合导线简易平差计算(附软件下载)
- 会计教学APP软件,实现教学的快速运转
- java裁剪缩放图片代码下载
- 二叉搜索树前序序列转中序和后序
- 1寸证件照排版、1寸照片、1寸证件照尺寸,不改变图片大小改分辨率,不改变分辨率改变(保证分辨率)...
- 最简单的搭建及使用本地服务器
- 第四章 函数式编程(Lambda表达式Stream流)
- RK系列开发板音频驱动适配指南(二)
- Keytool生成数字证书 + Tomcat https 配置
- 阿里程序员试用期被淘汰,原因竟是?
- 前端架构设计第十课 前端数据结构和算法
- 从零到一实现m3u8文件转成mp4文件
- 实践练习2:手动部署 OceanBase 集群
- Windows 共享文件访问日志
热门文章
- 8、MySQL Workbench导入数据库提示Failed to open required defaults file:xxx.cnf
- 小米9SE CC9小米8小米6X小米mix2s红米note7Pro小米9红米note8Pro 红米note8等移除ID 解账户锁教程
- 使用Python进行Android自动化测试
- 【题库】上海市学校心理咨询师-普通心理学-考点解析 13.3 性格测量
- java根据经纬度获取地址
- 火狐Firefox安装屏蔽广告插件ublock origin方法
- 常用的卫星公司数据查询(包括SPOT、QuickBird、Worldview、IKONOS、GF等)
- arm mali 天梯图_2018最新CPU天梯图 2018年2月CPU性能天梯图最新版
- 【spring】JDK动态代理的使用与源码分析
- UNreal 创建一个简单的玻璃材质+金属材质+创建材质实例