需要掌握的内容:
主要应用问题:
- 计算机体系结构的概念
- 存储程序计算机
- 计算机体系结果、组成和实现
- 计算机系统中的层次概念
- 系列机和兼容
- 计算机体系结构的发展
- 计算机分代、分型与分类
- 软件的发展
- 应用的发展
- 集成电路的发展
- 计算机体系结构的发展
- 并行处理技术的发展
- 计算机系统设计和分析
- 成本与价格
- 基准测试程序
- 量化设计的基本原则
- 程序的局部性原理
- CPU的性能
- 基本的可靠性模型
- 可靠性的基本概念
- 多部件系统的可靠性
计算机体系结构的概念
存储程序计算机
冯·诺依曼描述的存储程序计算机是一种计算机系统设计模型,实现了一种通用图灵机(Universal Turing Machine)。存储程序计算机又叫冯·诺依曼计算机。
存储程序计算机分为4个部分:
(1)运算器:用于完成数值运算
(2)存储器:用于存储数据和程序
(3)输入/输出设备:用于完成计算机和外部的信息交换
(4)控制器:根据程序形成控制(指令、命令)序列,完成对数据的运算
控制流:控制器根据程序指令序列,将其分解形成对计算机4个部分操作的控制信号序列。
数据/指令流:计算机在控制流的操作下,4个部分之间形成数据和指令的传送序列。

存储程序计算机在体系结构上的主要特点如下:
(1)机器以运算器为掌心
(2)采用存储程序原理。
(3)存储器是按地址访问的、线性编址的空间。
(4)控制流由指令流产生。
(5)指令由操作码和地址码组成。
(6)数据以二进制编码表示,采用二进制运算。
存储程序计算机中,程序执行的过程就是对程序指令进行分解,形成控制计算机4部分工作的控制流,对数据进行加工(运算),周而复始地产生数据/指令流,并最终得到数据结果的过程。
机器周期:计算机对每条指令从取指令到得到结果的工作周期。
一条指令的操作分为5个部分:取指令、指令译码、指令执行、访问存储部件、写结果

计算机体系结果、组成和实现
计算机体系结构:程序员所看到的计算机的属性,即概念性结构与功能性特性。
程序员所看到的计算机的属性:程序(机器语言、汇编语言或者编译程序生成系统)设计者为其所设计(或生成)的程序在机器上正确运行,必须掌握和遵行的计算机属性,这些属性包括其概念结构和功能特性两个方面。
对于通用寄存器型机器,这些属性包括:
(1)数据表示;
(2)寻址规则;
(3)寄存器定义;
(4)指令系统;
(5)中断系统;
(6)机器工作状态的定义和切换
(7)存储系统;
(8)信息保护;
(9)I/O结构
经典计算机体系结构概念的实质是计算机系统中软硬件界面的确定,即指令系统的设计。
计算机体系结构包括计算机系统设计的3个方面:
计算机指令系统(Instruction Set Computer, ISC):程序员可见的实际指令系统,是计算机系统硬件和软件之间的一个分界面。
计算机组成(Computer Organization):又叫微体系结构(Microarchitectre),是计算机系统中各个功能部件及其连接的设计。
计算机硬件:指计算机具体的实现(Implementation)技术,宝库逻辑设计、集成电路工艺、封装等。
计算机系统中的层次概念
现代计算机系统如图所示,图中第1级与第2级由硬件或固件实现,第4级以上基本由软件实现(虚拟机)。

每个计算机语言的层次结构(每种虚拟机)包括3个部分:(1)语言;(2)执行机制;(3)程序

翻译和解释是语言实现的两种基本技术。它们都是以执行一串
一般来说,解释执行比翻译花的时间多,但存储空间占用较少。
高级语言的翻译过程就是编译(Compile),完成翻译的程序就是编译器(Compiler)或编译程序,个别的高级语言也采用解释的方法实现,如大多数BASIC语言系统。
透明性(Transparency):在计算机技术中,本来是存在的事物或属性,从某种角度看好像不存在的概念。
系列机和兼容
系列机(Family Machine):具有相同体系结构,但组成和实现不同的一系列不同型号的计算机系统。
一种体系结构可以有多种组织、多种物理实现,系列机具有相同的体系结构,软件可以在系列计算机的各档机器上云习惯,这种情况下各档机器是软件兼容的(Software Compatbility),即同一个软件可以不加修改地运行于体系结构相同的各档机器,而且他们所获得的结果是一样的,差别只在于由不同的运行时间。
兼容机(Compatible Machine):不同厂家生产的具有相同体系结构的计算机。

计算机体系结构的发展
一种成功的指令系统(Instruction Set Architecture,SIA,又称为指令集结构)必须能够适应硬件技术、软件技术及应用特性的变化。
计算机分代、分型与分类



软件的发展
计算机语言和编译技术:计算机语言是由低级向高级发展的,高一级语言相对于低级语言功能更强,但以低级语言为基础。
操作系统:操作系统是计算机资源管理系统,包括CPU管理(进程管理)、存储管理和设备管理,同时提供用户界面(用户管理)。

软件工具和中间件:软件工具和中间件对体系结构的影响,更多地体现在对计算机信息处理能力的需求上,包括更快的反应速度、更多的信息存储、更快的网络服务等。
应用的发展

集成电路的发展
现代计算机实现技术的基础核心是以晶体管为基本单元的平面集成电路。
计算机系统技术4种实现技术:逻辑电路、半导体DRAM(动态随机访问存储器)、磁盘网络。
计算机体系结构的发展
(1)分布的I/O处理能力

(2)保护的存储器空间
在执行的过程中不准修改程序,这需要通过存储管理硬件的支持,是由操作系统来实现的。
(3)存储器组织结构的发展
为了提高方寸速度,出现了按内容访问的相联存储器CAM(Content Addressed Memory);采用了通用寄存器的概念。为了进一步减少访问存储器的次数和提高存储系统的速度,提出了在CPU和主存中设置高速缓冲存储器Cache。
(4)并行处理技术
把一个作业(程序)划分成能并行执行的多个任务(程序段),把每个任务分配给一个处理机执行,则构成了多机并行处理系统。
(5)指令集的发展
RISC的技术思想已称为当代计算机设计的基础技术之一。
并行处理技术的发展
并行性概念
并行性(Parallelism):在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不同的工作。只要时间上相互重叠,就存在并行性。严格来讲,把两个或多个事件在同一时刻发生的并行性叫做同时性(Simultaneity);把两个或多个事件在同一时间间隔内发生的并行性叫做并发性(Concurrency)。
从执行程序的角度看,并行性等级从低到高可以分为指令内部并行、指令级并行(Instruction Level Parallel,ILP)、线程级比高兴(Thread Level Parallel,TLP)、任务级或过程级并行,以及作业或程序级并行等几类。
从处理数据的角度看,比高兴等级从低到高可以分为字串位串、字串位并、字并位串以及全并行几类。
Flynn分类法:按照指令的数据的关系,将计算机从并行处理的角度划分为单指令流单数据流(Single Intruction Single Data stream,SISD)、单指令流多数据流(Single Intruction Multiple Data stream,SIMD)、多指令流单数据流(Multiple Intruction Single Data stream,MISD)、多指令流多数据流(Multiple Intruction Multiple Data stream,MIMD)

提高并行性的技术途径
时间重叠(Time-Interleavng):在并行性概念中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套设备的各个部分,以加快硬件周转而赢得速度。流水线技术是时间重叠的典型实现。
资源重复(Resource-Replication):在并行性概念中引入空间因素,根据“以数量取胜”的原则,通过重复地设置资源,尤其是硬件资源,以大幅度提高计算机系统地性能。
资源共享(Resource-Sharing):一种软件方法,使多个任务按颐堤港时间顺序轮流使用同一套硬件设备。
多级系统地发展出现了同构型多处理机系统、分布处理系统、可重构系统(Reconfigurable System)。对称型(Symetrical)或同构型多处理机系统(Homogeneous Multiprocessor System)由多个同类型,至少同等功能地处理机组成,同时处理同一作业中能并行执行的多个任务。
分布处理系统(Distributed Processing System):计算机之间相互连接,分工合作的多机系统。
可重构系统(Reconfigurable System):平时机台计算机都正常工作,像通常的多处理机系统一样,但到故障阶段,就要系统重新组织,降低档次继续运行,直至故障排除为止。

多机系统的耦合度,可以分为:
最低耦合(Least Coupled):除通过某种中间存储介质之外,各计算机之间没有物理连接,也无共享的联机硬件资源。
松散耦合(LooselyCoupled):又称为简介耦合(Indirectly Coupled),一般是通过通道或通信线路实现计算机间互联,共享外围设备,机器间的相互作用是在文件或数据集一级进行。
紧密耦合(Tigtly Coupled):一般指机器间物理连接的频带较高,它们往往通过总线或高速开关实现互连,可以共享主存。
计算机系统设计和分析
成本与价格
计算机系统的成本和价格:构成价格的给因素可以通过占成本或价格的百分比来表示。
时间因素:对计算机系统成本产生影响的主要因素又时间、产量、商品化等因素。

基准测试程序
按照测试可靠性由高到低:
(1)实际应用程序:运行实际应用程序了解计算机性能。
(2)修正的(或者脚本化)应用程序:通过修正实际应用程序的部分代码或者通过脚本描述来模拟实际应用,再用它们构成测试程序。
(3)核心测试程序:由从真是程序中提取的较短但关键的代码构成。核心测试程序可以根据需要评价机器的各种性能,从而解释在运行真实程序时机器性能不同的原因。
(4)小测试程序:指代码在几十到100行的具有特定目的的测试程序。
(5)合成测试程序:合成测试程序具备大量应用程序中操作和数据的统计特征。
影响计算机测试性能的因素:
(1)硬件系统:如CPU、内存类型和容量、外存的性能、加速器等。
(2)操作系统:如Windows和Linux等
(3)系统软件:主要包括编译器、运行库、数据库、中间件等。
(4)测试程序:由于计算机体系结构的不同,各种测试程序出现测试结果不一致的现象是正常的。
(5)运行环境:测试程序的运行环境对测试程序运行结果也有很大影响。
测试程序组件(benchmark Suites):最大的有限是避免了独立测试程序存在的片面性,尽可能全面地测试了一个计算机系统的性能。
量化设计的基本原则
大概率时间优先原则
对于大概率时间(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。
Amdahl定律
加快某部件执行速度所获得的系统性能加速比,受限于该不见在系统中所占的重要性。
假设对机器进行某种改进,那么机器系统的加速比就是:
或者:
部件改进后,系统的总执行时间等于不可改进部分的执行时间加上可改进部分改进后的执行之间,即:
系统加速比为该金钱与改进后总执行时间之比,即:
Amdahl定律的一个推论:如果只怎对整个任务的一部分进行优化,那么所获得的加速比不大于
程序的局部性原理
程序总是趋向于使用最近使用过的数据和指令,也就是说程序执行时所访问存储器地址分布不是随机的,而是相对地簇聚,这种簇聚包括指令和数据两部分。
程序局部性包括: 时间局部性:程序即将使用到的信息很可能就是目前正在使用的信息。
空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或临近。
程序的局部性原理是计算机体系结构设计的基础之一。
CPU的性能
CPU的性能可以通过时钟频率、执行程序使用的时钟周期数以及程序执行的指令数来刻画。
计算机工作的时钟频率单位是MHz或者GHz。
程序执行过程中所处理的指令数,记为IC,则“指令时钟数”CPI(Cycles Per Instruction):
程序执行的CPU时间可以写成(CPU性能公式):
时钟频率反映了计算机实现技术、生产工艺和计算机组织;CPI反映了计算机实现技术、计算机指令集的结构和计算机组织;IC反映了计算机指令集的结构和编译技术。
基本的可靠性模型
可靠性的基本概念
电子元器件及其构造的系统的可靠性采用概率模型来描述。一个系统(元件、部件、模块、子系统等)的可靠性是指它开始使用(运行)的时刻(
其中

平均无故障时间(Mean ime To Failure, MTTF):一般以小时为单位,是用于度量系统可以正常提供服务的量化指标。
平均修复时间(Mean Time To Rapair, MTTR):一般也以小时为单位,这段时间内系统不可以提供正常服务,是用于度量系统中断服务的量化指标。
平均故障时间(Mean Time Between Failure, MTBF):衡量两次故障之间时间的量化指标。
由于电子元器件的
就MTTF或者MTBF而言,FIT(Failure In Time)是电子元器件中一个更加常用的可靠性概念。FIT定义为10亿小时中系统的故障次数。
系统可靠性(avalivility):一般用来度量实际系统,指系统可以正常服务的时间比率:
多部件系统的可靠性
分析多部件系统的可靠性时,一般不考虑有两个或更多部件同时损坏的情况。
系统的可用性由MTTF最低的部件决定。