计算机组成与系统结构 第一章 绪论

简述

请添加图片描述

计算机发展简史

第0代—机械计算器
  二千多年前(公元前5世纪),我们祖先发明了算盘,这是最简单实用的机械计算器。在漫长的历史中,算盘传遍了全世界,为人类社会做出了巨大贡献。
  近代,人们发明了计算尺手摇机械计算器。在电子计算器(机)普及之后,它们也逐步退出历史舞台。
  上世纪,英国人Boole创立了“布尔代数”,为现代计算机奠定了理论基础。

第1代—电子管计算机(1945–1955年)
  这一代计算机由电子管、电磁继电器等器件构成。
  软件主要使用机器语言编程。
  典型机器有ENIAC、IBM 701等。
  1946年美国宾夕法尼亚大学莫尔电机学院与美国军方阿伯丁弹道实验室试制成功一台被称为ENIAC( Electronic Numerical lntegrator andComputer)的电子数字积分和计算机。

第2代—晶体管计算机(1955–1965年)
  这一代计算机采用晶体管、磁芯存储器等构成。软件上有了监控程序对计算机进行管理,并且开始使用高级语言
  这个时期的计算机有很多种,如IBM 7030、Univac LARC等。

第3代—集成电路计算机(1965–1980年)
  这代计算机利用小规模中规模集成电路芯片、多层印刷电路板磁芯存储器等构成。
  在软件上,高级语言迅速发展并出现了分时操作系统
  在这个时期,计算机font color=“blue”>应用领域不断扩展,开始向国民经济各部门及军事领域渗透。
  典型机器如IBM360、370,DEC PDP-8等。

第4代—超大规模集成电路计算机(1980年–)
  特点是:大规模、超大规模集成电路构成,主存也是由超大规模集成电路构成的半导体存储器来实现。
  软件有Dos、Windows、Unix等。
  典型计算机有IBM 3090、VAX 9000、PC机、苹果机等。

第5代—高性能智能计算机( 1991年–)
  采用超大规模、超高速集成电路构成计算机。
  在结构上,计算机结构己从单处理器向多处理器、单机向集群发展。既使构成微型机也采用多核处理器。
  目前常见的是双核、4核处理器。用这样的多核处理器构成计算机可获得很高的性能。此前,lntel公司己可以做出一块芯片内含80个核的多核处理器,用这样的一块80核处理器芯片构成的计算机,其速度已超过一万亿次。

计算机元器件的进步

  1. 从元器件的进步看:
    已经历了五代:电子管—→晶体管—→IC—→LSL—→VLS
  2. 从运算速度看:
    5000次/秒(ENAIC)—→65万亿次/秒(NEC的地球模拟器)
    中国联想的“深腾6800"(4.183万亿次l秒)据全球第14位。
    2010年进入PF(10^15)时代。2013年,天河2号:33.86PF/S
  3. 从集成度看:
    8086(29000个Tr)—→P4(5500万个Tr)—→lntel双核10^9数量级

摩尔定律

  戈登·摩尔(Gordon Moore),1965 年

“摩尔定律”: 集成电路芯片的集成度每18个月翻一番。

集成度提高100倍,则相对价格可以降低100倍、性能可提高100倍、可靠性也可以提高100倍。”

摩尔定律的未来:新技术、新材料的出现,使芯片的集成度进一步提高成为可能。

1974年IBM的Robert Dennard等人提出了缩放定律:

如果将芯片尺寸和电源电压减半,则:

  1. 性能提高:MOS晶体管的切换速度提高两倍;
  2. 耗电量下降:耗电量降至1/4;
    单位晶体管的成本降低:芯片面积减至1/4,或在同样的面积下制造4倍的晶体管

提升性能的三大支柱:
  提高频率
  并行处理
  功能扩展

计算机分层结构

在这里插入图片描述

在这里插入图片描述

计算机体系结构、实现与组成

  计算机体系结构(Computer architecture)由程序员所看到的计算机系统的属性,即概念性结构功能特性。
  这些属性是机器语言程序设计者(或者编译程序生成系统)为使其所设计(或生成)的程序能在机器上正确运行,所需遵循的计算机属性。在定义计算机体系结构的年代里,计算机的属性、概念性结构及功能特性主要是低层的硬件。
  今天的计算机体系结构(系统结构)所指的计算机的属性主要包括:

数据的表示形式:
寻址方式;
内部寄存器组;
指令集;
中断系统;
处理器工作状态及其切换;
存储系统;
输入/输出结构;
信息保护及特权;
高性能设计等。

  计算机组成(Computer organization,组织)计算机体系结构逻辑实现,包括物理机器级内的数据流和控制流的组成以及逻辑设计等。它着眼于物理机器级内各事件的排序方式与控制方式,各部件的功能以及各部件的联系。利用这一概念对计算机进行逻辑设计。
  计算机组成的设计主要包括如下诸方面的内容:

数据通路的宽度;
专用部件的设置(如乘除法专用部件、浮点运算专用部件等等);
各功能部件的并行程度;
各种操作的相容性与互斥性;
控制机构的组成方式;
缓冲与排队技术的应用;
预估、预判方法;
高可靠性技术等等。

  计算机实现(Computer implementation)计算机实现就是指计算机组成的物理实现。包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中器件技术在实现技术中占主导作用。
  利用具体的集成电路芯片、电子元器件、部件、插头、插座等等,根据计算机组成的逻辑设计,实现物理计算机。

体系结构、组成、实现的关系

  具有相同计算机体系结构(如指令系统相同)的计算机因为速度要求不同等因素可以采用不同的计算机组成。例如,取指令、译码、取操作数、运算、存结果可以在时间上按顺序方式进行,也可以让它们在时间上按重叠方式进行以提高执行速度。
  一种计算机组成可以采用多种不同的计算机实现。例如,主存器件可以采用SRAM芯片,也可以采用DRAM芯片。可以采用大规模集成电路单个芯片,也可以采用中小规模集成电路进行构建。显然,这取决于性能价格比的要求与器件技术的现状。
  上述三个术语具有不同的概念,各自包含不同的内容,但又有’紧密的关系。

计算机基本组成和冯·诺依曼机

计算机的基本组成
在这里插入图片描述
软件与硬件的逻辑等价性

  任何操作、指令可以由硬件完成,也可以由软件来完成,取决于器件价格、速度、可靠性、存储容量、变更周期等因素。
  软件硬化。如整数乘除法指令、浮点运算指令、处理字符串指令等等,改为直接由硬件完成。
  软件固化。现在已经可以把许多复杂的、常用的程序制作成所谓固件。甚至通过硬件直接解释执行高级语言的语句而不需要先经过编译程序的处理,即“固化”转“硬化”。

冯·诺依曼计算机

  Von Neumann计算机是现代计算机的鼻祖,当前所有的商用计算机均采用冯-诺依曼计算机工作原理
在这里插入图片描述
工作原理

  1. 将计算机要完成的任务用指令描述,并编成程序。
  2. 将程序存放在存储器中。
  3. 在控制器的控制下,从存储器中逐条取出指令并执行。
  4. 程序执行的结果即实现了计算机所要完成的任务。

程序存储控制原理
  1812年英国人巴贝奇(Babbage)开始研制机械计算机,提出了程序存储控制原理的雏形。
  巴贝奇提出了自动计算机必须包含的五大功能,即
    输入(I)+存储(M)+处理( P )+控制( C )+输出(O)

Von Neumann原理

  Von Neumann是在电子时代提出把程序存储控制原理用于计算机的第一人Neumann原理可总结为三条:

  1. 指令像数据一样存放在存储器中,并像数据那样进行处理;
  2. 要使用二进制;
  3. 要使用程序存储控制方式工作。

计算机采用二进制的优势

  1. 具有两个稳定状态的电子器件众多,三极管的导通与截止、电容的充放电、开关的闭合与断开等等都可方便地用来表示二进制的两个符号0和1;
  2. 基数愈小,意味着表示数的符号愈少,相应的运算规律也就愈简单;
  3. 二进制的“1”和“0”正好与逻辑推理中的真和假(或称是和非)相对应,为实现逻辑运算和逻辑判断提供了便利;
  4. 用二进制表示数据具有抗干扰能力强,可靠性高的优点.

PC机的结构:1981年PC机诞生
在这里插入图片描述
PC机主板结构
在这里插入图片描述

计算机分类

早期的计算机分类方法
  在上世纪八十年代前后,人们根据计算机的字长、规模、价格等指标,将计算机分为:微型机、小型机、中型机、大型机、巨型机。

以用途分类
  按照计算机的用途可分为通用计算机和嵌入式计算机(专用计算机)

  按照计算机的用途通用计算机还可分为个人计算机PC和服务器

Flynn分类法
  Flynn分类法是按照计算机在执行程序的过程中信息流的特征进行分类的。
  指令流(S) ——机器执行的指令序列,它由存储器流入控制单元(Cu);
  数据流(DS) —由指令流所使用的数据,包括输入数据、中间数据和结果。数据在处理单元(PU)中进行处理。
  控制流(cS) ——指令流进入CU,由CU产生一系列的控制流(信号),在控制流的控制卞完成指令的功能。

佛林(Flynn)分类法
指令流数据流 SISD(Single Instruction Single Datastream)
指令流数据流 SIMD(Single Instruction Multiple Datastream)
指令流数据流 MISD(Multiple Instruction Single Datastream)
指令流数据流 MIMD(Multiple Instruction Multiple Datastream)

在这里插入图片描述

计算机性能描述

计算机的性能描述

1. CPU字长:指CPU一次能处理数据的位数.
  字长⬆→CPU能处理的数据的精度高,价格也高
2. 主频:即时钟脉冲的频率.
  主频⬆→CPU工作节拍⬆→机器运算速度⬆
3. 主存容量:CMAX=2ⁿ,即由CPU地址总线的根数n决定.
4. 带宽均衡性:
  计算机的最重要的性能指标——运算速度也常用带宽衡量,即数据流的最大速度和指令的最大吞吐量.
  按”木桶”理论,整体的性能取决于最差环节的性能.
5. 软硬件配置与性价比
  ⑴)软硬件配置:含外设的配置,指令系统及OS功能强弱,I/F友好性及有无其它支持软件和应用软件等.
  (2)性能价格比P/C越高越好.
6. RASIS特性:五大功能
  可靠性+可用性+可维护性+完整性+安全性
  可靠性用MTBF,可维护性用MTTR衡量。
7. 兼容性(compatibility):指系统中所含的某些"东西"具有并存性,即程序或设备可用于多种系统中的性能。
8. 友好性和环保性
  友好性是指计算机可提供适合人体工程学原理,使用起来舒适的界面。
  环保性是指对人或对环境的污染大小,如辐射,噪声,耗电量废弃物的可处理性等。

基准测试程序

  TPC-C:对系统在线处理事务的能力进行评价。以每分钟处理新订单个数(tpmC为单位)。
  TPC-H:对系统在线数据库资料的查询能力进行评价。以每小时完成查询的数量。
  SPEC web2005:用于评价系统同时响应http连接的最大数量。
  SPEC jApp Server2004:用于评价系统基于java平台每秒钟所完成的java操作的最大数量。
  SPECCPU2000:用于对特定程序包执行时的评估。
  Linpack:在每秒钟内,利用高斯消元法求解一元N次线性方程组的次数来评价系统的性能。
  HPcC:利用双精度矩阵乘法、傅立叶变换、并行矩阵转置等七个子项全面评价系统的性能。
  SAPSD:测试系统的响应时间及每小时完成的定单数,用以衡量系统同时执行应用程序及数据库的能力。

速度指标

  每秒钟执行指令的百万条数MIPS
  每秒钟执行浮点数的百万次操作的数量MFLOPS
  吞吐量
  响应时间
  CPU时间
  处理器数量

系统性能计算

执行时间(execution time)也称响应时间,定义为一个任务从开始到完成所用的时间或计算机完成一个任务所用的总时间
吞吐量( throughput)定义为在给定时间内(并行)完成的总任务数
在这里插入图片描述

Amdahl定律

Amdahl定律
  计算机领域中被公认的一个重要定律。
  由IBM公司的计算机体系结构师、IBM360系列机的主要设计者吉恩-阿姆达尔在1967年发表的论文中首先提出的。
  内容:计算机系统中某部件由于采用某种更快的执行方式使系统性能改进后,整个系统性能的提高与该执行方式的使用频率占总执行时间的比例有关。
Amdahl定律定义了加速比(speedup),即
在这里插入图片描述
  即加速比就是计算机改进后比改进前快了多少倍

应用:改善“系统瓶颈”问题,用于系统改进之后性能提升的测试。

计算机系统的加速比取决于下面两个因素:
  ①可改进部分在原系统总执行时间中所占的比,称为可改进比例,用fe表示。例如,程序的总执行时间为100s,可改进的部分是其中的20s,则fe=0.2。
  可见,fe总是小于或等1的。
  ②可改进部分改进后性能提高的程度,通常用部件加速比re来表示某部件改进后性能提高的比例。
  例如,某部件改进后,执行时间由原来的20s减少到5s,则部件加速比re=20/5=4。
  可见,re一般是大于1的。

若假设改进前的系统总执行时间为To,可以得出改进后的系统总执行时间Tn为:
在这里插入图片描述
若加速比用Sp表示,则加速比Sp可表示为:

在这里插入图片描述
当系统可改进的部分fe确定后,既使这一部分改进后不再需要时间,即re→∞,则Sp=1/(1-fe)。

讨论1
  (1-fe)为不可改进的部分,当可改进部分为0(即无如何可改进部分)时,系统的加速比Sp=1。

  随着可改进部分的增加(fe加大)和改进效果的提高(re增加),系统的加速比Sp就会增加。

  当fe确定后,既使这部分改进后不再需要时间,即部件加速比re→o,则S.=1/(1-fe)。可见,系统性能改善受(1-fe)的限制。

讨论2:
  阿姆达尔曾致力于并行处理系统研究。在并行体系结构中,利用多处理器并行、多线程并行技术已是必然选择,那么并行带来的收益有多大呢?

  阿姆达尔给出公式为:Sp=1/((1-fe)+fe/n)

  (1-fe)为串行计算部分所占比例,n为并行处理结点个数。当(1-fe)=0时,Max Sp=n;当(1-fe)=1时,Min Sp=1;

  当n→时,lim Sp→1/(1-fe),这也是加速比上限。

例如,若串行代码占整个代码的20%,则并行处理的总体性能提供不可能超过5倍。

结论

Amdahl定律告诉我们:

  系统的改进不应是局部的,即便局部改进达到极致,对系统整体性能的提升也是有限的。
  要想达到高并行性能,就必须考虑整体系统及程序。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值