第一章
机器:能存储和执行相应语言程序的算法和数据结构的执行体。
计算机语言:是用以描述控制流程的、有一定规则的字符集合。
多级层次结构:是从使用语言的角度,基于程序员与计算机系统对话中所采用的语言结构和语义划分。
编译:全部N+1级指令--àN级指令
解释:一条N+1级指令--à一串N级指令
固件(Firmware):指存储在计算机ROM和其它集成电路中的系统软件,固件不能随意改变。
虚拟机器(Virtual Machine):以软件为主实现的机器。
计算机系统结构:是对计算机系统中各机器级之间界面的划分和定义,以及对各级界面上、下的功能进行分配。 也称体系结构。
是从程序员的角度所看到的系统的属性,是概念上的结构和功能上的行为。它不同于数据流程和控制的组织,不同于逻辑设计以及物理实现方法。
透明性:本来存在的事务或属性,从某个角度上看不到。反之,不透明。
系统结构、组成和实现三者的相互关系:
具有相同系统结构的计算机可以采用不同的组成,一种计算机组成可以采用多种不同的计算机实现;
采用不同的系统结构会使可以采用的组成技术产生差异,计算机组成也会影响系统结构;
计算机组成的设计,其上决定于计算机系统结构,其下又受限于所用的实现技术,它的发展促进了实现技术的发展,也促进了结构的发展;
计算机实现,特别是器件技术的发展是计算机系统结构和组成的基础,促进了组成与结构的发展;
随着技术的发展,三者关系融合于一体,难以分开,在相互促进中发展。
哈夫曼压缩原理:尽可能加速高概率事件远比加速处理概率很低的事件对性能提高要显著。
Amdahl定律:系统对某一部件采用某种更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。
局部性分时间上的局部性和空间上的局部性
时间局部性:程序中近期被访问的信息项很可能马上将被再次访问。
空间局部性:指那些在访问地址上相邻近的信息项很可能会被一起访问。
存储器体系的构成就是以访问的局部性原理为基础的。
软件的可移植性:是指软件不用修改或只需经少量加工就能由一台机器搬到另一台机器上运行。可采取的方法有: 1.统一高级语言。2.采用系列机思想。3.模拟与仿真
系列机:在软、硬件界面上确定好一种系统结构,之后软件设计者按此设计软件,硬件设计者根据机器速度、性能、价格的不同,选择不同的器件,在用不同的硬件技术和组成、实现技术,研制并提供不同档次的机器。
向上(下)兼容:指按某一档机器编制的软件,不加修改就能运行于比它高(低)档的机器上。
向前(后)兼容:在按某一时期投入市场的该型号机器上编制的软件,不加修改就能运行在它之前(后)投入市场的机器上。
兼容机:不同公司厂家生产的具有同一系统结构的计算机。
模拟:用机器语言程序解释实现软件移植的方法。
仿真:用微程序直接解释另一种机器指令的方法。
并行性:指在同一时刻或是在同一时间间隔内完成两种或两种以上性质相同或不同的工作,它们在时间上能互相重叠。
同时性(Simultaneity):两个或多个事件在同一时刻发生。
并发性(Concurrency):两个或多个事件在同一时间间隔内发生。
并行性开发途径:
时间重叠(Time Interleaving)是在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复(Resource Replication):是在并行性概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能。
资源共享(Resource Sharing):是利用软件的方法让多个用户按一定时间顺序轮流地使用同一套资源,以提高其利用率,这样也可以提高整个系统的性能。
UMA:Uniform Memory Access 均匀存储访问
NUMA:Nouniform Memory Access 非均匀存储访问
COMA:Cache-Only Memory Access 全高速缓存存储访问
CC-NUMA:Cache-Coherent Nonuniform Memory Access 高速缓存一致性非均匀存储访问
NCC-NUMA:Nocache-Coherent Nonuniform Memory Access 非高速缓存一致性非均匀存储访问
NORMA:No-Remote Memory Access 非远程存储访问
DSM:Distributed Shared Memory 分布式共享存储
PVP:Parallel Vector Processor 并行向量处理机
指令流:是指机器执行的指令序列。
数据流:是指指令流调用的数据序列,包括输入数据和中间结果。
多倍性:是指在系统性能瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数。
计算机系统的分类(Flynn分类)
SISD 单指令流单数据流
传统的单处理机属于SISD计算机
SIMD 单指令流多数据流
并行处理机是SIMD计算机的典型代表
我国的YH-I型是此类计算机型
MISD 多指令流单数据流
实际上不存在,但也有学者认为存在
MIMD 多指令流多数据流
包括了大多数多处理机及多计算机系统
Von Neumann型计算机系统的主要结构特征:
存储器是顺序线性编址的一维结构
按地址访问、单元位数固定、运算速度与访存次数有关
指令=操作码+地址码
操作数的类型由操作码决定
指令在存储器中是按其执行顺序存储
存储器内指令和数据同等看待
二进制编码、运算
以运算器为中心,I/O与存储器之间数据通过运算器,运算器、存储器、I/O设备的操作及之间的联系,由控制器控制
第二章
数据表示:机器硬件能直接识别和引用的数据类型。
数据表示的含义及与数据结构的关系:
数据表示:指的是能由机器硬件直接识别和引用的数据类型。由硬件实现的数据类型。
数据结构:面向计算机系统软件、面向应用领域所需处理的数据类型。由软件实现的数据类型。
数据结构是要通过软件映像,变换成机器中所具有的数据表示来实现的。
不同的数据表示可为数据结构的实现提供不同的支持,表现为实现效率和方便性的不同。
数据结构和数据表示是软、硬件的交界面。
标识符和描述符的区别:
标识符是和每一个数据相连的,合存在一个存储单元中,描述单个数据的类型特征。
描述符是和数据分开存放的,专门用来描述所要访问的数据是整块数据还是单块数据,访问该数据块或数据元素需要的地址以及其他特征信息等。
引入数据表示的原则:
看系统的效率是否提高,是否减少了实现时间和所需的存储空间;
看引入数据表示后,其通用性和利用率是否高;
CISC:增强原有指令的功能,设置更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化。
RISC
减少指令总数和简化指令的功能,降低硬件设计的复杂性,提高指令的执行速度。
只保留功能简单的指令
功能较复杂的指令用软件实现
提高流水线效率
RISC的设计原则、基本技术及存在的问题
设计原则:使用频度很高的指令;
大大减少寻址方式;
所有指令在一个机器周期完成;
扩大通用寄存器个数;
采用硬联控制实现;
通过精简指令和优化设计编译程序,易简单有效的方式支持高级语言 。
基本技术:遵循按RISC机器一般原则设计的技术;
在逻辑上采用硬联实现和微程序固件实现相结合的技术;
在CPU中设置数量较大的寄存器组,并采用重叠寄存器窗口的技术;
指令的执行采用流水和延迟转移技术;
采用认真设计和优化编译系统设计的技术。
存在的问题:指令少,加重汇编程序员的负担 ;
浮点运算和虚拟存储器支持不足 ;
编译程序难写 。
第三章
存储系统:由多种不同工艺存储器组成的,且不同工艺存储器中间不能构成完整的整体的系统。
并行主存系统:能并行读取多个CPU字的单体多字、多体单字或多体多字的交叉存储主存系统。
中断系统的分类与分级(IBM370):
机器校验中断 第一级
管理程序调用 第二级
程序性中断 第一级
外部中断 第三极
输入、输出中断 第四级
重新启动中断 最低级
总线及总线系统:
总线:用于互连计算机、CPU、存储器、I/O端口及外部设备、远程通信设备间信息的传送通路的集合。
总线与其相配合的附属控制电路称为总线系统。
总线的分类:
在系统中的位置:芯片级;板级;系统级。
信息传送的方向:单向传输;双向传输;半双向;全双向。
按其用法:专用:只连接一对物理部件;非专用:多种功能或多个部件所分时共享,同一时间只有一对部件使用总线进行通信。
总线控制方式:
集中式控制:总线控制逻辑基本上集中放在一起,不论是放在连接到总线的一个部件中,还是放在单独的硬件中,都称为集中式控制。(串行链接、定时查询、独立请求)
分布式控制:总线控制逻辑分散于连到总线的各个部件中时,就称为分布式总线控制。
总线通信技术:同步通信、异步通信。
数据宽度的含义:是I/O设备取得I/O总线使用权后(在一次I/O总线分配期间内),所传送数据的总量。
数据通路宽度:数据总线的位数,是数据传送的物理宽度。即一个时钟周期所传送的信息量,它直接取决于数据总线的线数。二次分配总线之间所传送的数据宽度可能要经许多个时钟周期的分次传送来完成。
总线线数:总线需要有收发电路、传输导线或电缆、转接插头和电源等。总线的线数越多,成本越高、干扰越大、可靠性越低、占用的空间也越大,当然传送速度和流量也越高。 总线的长度越长,成本越高,干扰越大,波形畸变越严重,可靠性越低。为此,越是长的总线,其线数就应尽可能减少。
第四章
存储体系的定义:两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件、或软件与硬件相结合的方法连接起来成为一个存储系统。这个系统对应用程序员透明。
从应用程序员看,它是一个存储器。
这个存储器的速度接近速度最快的那个存储器
存储容量与容量最大的那个存储器相等
单位容量的价格接近最便宜的那个存储器。
存储体系的构成依据:要求未被访问信息的地址能预知(时间和空间上的局部性);
预知的准确性是存储层次设计的好坏的主要标志,取决于所用算法和地址映像变换的方式。
虚拟存储管理方式:通过增设地址映像表机构来实现程序在主存中的定位。这种定位技术是将程序分割成若干较小的段或页,用相应的映像表机构来指明程序的某段或某页是否已装入内存。
段式管理
页式管理
段页式管理
替换算法:
随机算法(Random ,RAND):用软的或硬的随机数产生器来形成主存重要被替换页的页号。
先进先出算法(First-In First-Out ,FIFO):选择最早装入主存的页作为被替换的页。
近期最少使用算法(Least Recently Used ,LRU):选择近期最少访问的页作为被替换的页。
优化替换算法(Optimal Replacement Algorithm, OPT):是在时刻t找出主存中每个页将要用到时刻ti,然后选择其中ti-t最大的那一页作为替换页。
页式虚拟存储器实现中的问题:
页面失效的处理
页面失效会在一条指令的分析或执行过程中发出。
页面失效时一种故障,不是一般的中断;
注意保护现场,采用后援寄存器技术、预判技术;
选择合适的替换算法。
提高虚拟存储器等效访问速度的措施
要求:提高命中率,加快访存时间;
命中率受很多因素影响,如:地址流、页面调度策略、替换算法、页面大小、主存容量等。
访存时间,解决Ns-ànp的转换。
快表:相联目录表,慢表:页表
快表-慢表存储层次的替换算法一般采用LRU法。
散列函数
目的:把相联访问变成按地址访问,从而加大快表容量
散列(Hashing)函数:Ah=H(Pv), 20位左右 Þ 5~8位
采用散列变换实现快表按地址访问
避免散列冲突:采用相等比较器
地址变换过程:相等比较与访问存储器同时进行。
Cache的工作原理:把主存和Cache机械等分成相同大小的块(行),块比页小得多;
访问Cache的时间时访问主存时间的1/4到1/10;
Cache和CPU是同类型的半导体器件;
Cache-主存间的地址映像和变换,以及替换、调度算法用硬件实现,对应用程序员透明,也对系统程序员透明;
Cache在物理位置上靠近CPU,不在主存,减少传输延迟;
除Cache到处理机的通路外,还设有主存到处理机的通路,因此,Cache既是Cache-主存存储层次中的一级,又是处理机和主存的一个旁视存储器;
有Cache的主存系统都采用多体交叉存储器;
应尽量提高Cache的访主存的优先级;
Cache替换算法及实现:常采用LRU算法,LRU算法是堆栈型算法
由于Cache的调块时间是微秒级,不能采用程序换道
替换算法全部采用硬件途径实现
Cache的透明性和一致性问题:由于Cache存储器的地址变换和块替换算法全由硬件实现,因此Cache-主存存储层次对应用程序员和系统程序员都是透明的。
(单处理机、单存储器的情况)
造成Cache与主存的不一致的原因:
由于CPU写Cache,没有立即写主存
由于IO处理机或IO设备写主存
写回法(抵触修改法,WB):是在CPU执行写操作时,信息只写入Cache,仅当需要被替换时,才将以被写入过的Cache块先送回主存,然后再调入新块。
写直达法(直达法,WT):利用Cache—主存存储层次在处理机和主存之间的直接通路,每当处理机写入Cache的同时,也通过此通路直接写入主存。
第五章
流水是重叠的延伸.
一次重叠:只是把一条指令的解释分解为两个子过程;
流水:分解为更多的子过程。
局部性相关:指令相关、访存操作数相关、通用寄存器组相关
原因:在机器同时解释多条指令之间出现了对同一主存单元或寄存器要求“先写后读”而产生的。
解决:推后后续指令对相关单元的读,直至在先的指令写入完成
设置相关直接通路,将运算结果经相关直接通路直接送入所需部件
任务在流水线中流动顺序的安排和控制
顺序流动方式(同步流动方式):任务流出流水线的顺序保持与流入流水线的顺序一致
控制简单,但相关后吞吐率和效率下降
异步流动方式
全局相关:指的是已进入流水线的转移指令(尤其是条件转移指令)和其后续指令之间的相关。
解决:猜测法;加快和提前形成条件码;加快单条指令内部的条件码的形成;在一段程序内提前形成条件码(适合循环);采用延迟转移------采用软件进行静态指令调度;加快短循环程序的处理。
相关(correlation):指在一段程序的相近指令之间有某种关系,这种关系可能影响指令的重叠执行。
数据相关:局部相关
控制相关:全局相关
数据相关:在执行本条指令的过程中,如果用到的指令、操作数、变址偏移量等正好是前面指令的执行结果,则必须等待前面的指令执行完成,并把结果写到主存或通用寄存器中之后,本条指令才能执行。包括:指令相关;主存操作数相关;通用寄存器相关
;变址相关。
控制相关:指由条件分支指令、转子程序指令、终断等引起的相关。
指令相关:第k+1条指令本身的内容取决于第k条指令的执行结果。解决:程序中不允许修改指令。
主存操作数相关:当指令的执行结果写到主存储器,所读取的操作数也取自主存储器时。
解决:推后处理法
通用寄存器相关:在寄存器-寄存器型和寄存器-存储器型指令的执行过程中有可能发生通用寄存器数据相关。
解决:推后处理;设置专用数据通路
变址相关:变址寄存器发生相关。
解决:推后分析;设置专用通路。
数据相关的解决方法:采用硬件或软件的办法尽量避免数据相关发生;是在确保指令正确执行的前提下,推后指令分析;设置专用通路。
转移相关:无条件转移;一般条件转移;复合条件转移。
转移预测技术:软件“猜测法”:不改变硬件结构,只修改编译器。
硬件“猜测法”:增设指令分析器。
两个先行指令缓冲栈:增设先行目标缓冲栈。
提高处理机性能的不同方法:
超标量处理机是通过增加硬件资源为代价来换取处理机性能的。
超流水线处理机则通过各硬件部件充分重叠工作来提高处理机性能。
超标量处理机:采用多指令流水线(度=m)
配置多套功能部件、指令译码电路和多组总线,并且寄存器也备有多个端口和多组总线。
适合于求解稀疏向量、矩阵
超流水线处理机:一个周期内能够分时发射多条指令的处理机称为 超流水线处理机。
指令流水线有8个或更多功能段的流水线处理机称为超流水线处理机。
超标量超流水线处理机:把超标量与超流水线技术结合在一起,就成为超标量超流水线处理机。
指令执行时序:
超标量超流水线处理机在一个时钟周期内分时发射指令n次,每次同时发射指令m条,每个时钟周期总共发射指令m × n条。
超长指令字处理机:VLIW (Very Long Instruction Word)
是将水平型微码和超标量处理两者结合的结构
指令字长可达数百位,多个功能部件并发工作,共享大容量寄存器堆。
是一种单指令多操作码多数据的系统结构(SIMOMD)
提高流水处理性能的技术:瓶颈子过程再细分;瓶颈子过程并联。
第六章
阵列处理机的构型和组成:分布式存储器的阵列处理机构形;
集中式共享存储器的阵列处理机构形
一台阵列处理机由五个部分组成:
多个处理单元PE
多个存储器模块M
一个控制器CU
一个互连网络ICN
一台输入输出处理机IOP
阵列处理机的特点:背景----科学计算;
资源重复,利用并行性中的同时性;
简单而规整的互联网络---设计重点;
专用机;
与并行算法紧密相联。
阵列处理机实质上是由
专门对付数组运算的处理单元阵列组成的处理机
专门从事处理单元阵列的控制及标量处理的处理机
专门从事系统输入输出及操作系统管理的处理机
组成的一个异构型多处理机系统
第七章
多处理机:具有两个以上的处理机,在操作系统控制下,通过共享的主存或输入/输出子系统或高速通信网络进行通信。
分为:同构型、异构型、分布型
多处理机特点:属于多指令流、多数据流系统
多处理机系统由多个独立的处理机组成,每个处理机都能够独立执行自己的程序。
实现更高一级的作业、任务之间的并行
结构上:要用多个指令部件分别控制,通过机间互联网络实现通信
算法上:不限于向量数组
系统管理上:依靠软件手段解决资源分配和管理,任务分配、处理机调度、进程同步和通讯
紧耦合多处理机:是通过共享主存来实现处理机间通讯,通信速率受限于主存的频率。
松耦合多处理机:每一台处理都由容量较大的局部存储器,减少访存冲突,不同处理机间或者通过通道互连实现通信,或者通过消息传送系统(MTS)。
机间互联形式:总线形式
环形互连形式
交叉开关形式
多端口存储器形式
蠕虫穿洞寻径网络
开关枢纽结构形式
多Cache的一致性问题:每一个处理机都有自己专用的Cache,但主存中同一个信息块在多个Cache中都有时,会出现信息不一致情况;
写直达法---保证一个;
进程迁移----将一个尚未执行完而被挂起的进程调度到另一个空闲的处理机上去执行;
对于进程迁移的Cache不一致性----禁止进程迁移
两类方法:
硬件为基础----监视Cache协议(Snoopy Protocol)写作废法、写更新法
软件为基础----目录表法,全映像目录表法、有限目录表法、链式目录表法
硬件方法------通讯量大,处理机数多时复杂;
软件方法------减少复杂,降低通讯量,性能价格比高,适合于处理机数多。实验系统
并行算法的定义:算法规定了求解某一特定问题时的有穷的运算处理步骤
并行算法是指可同时执行的多个进程的集合,各进程可相互作用、协调和并发操作
SMP (Symmetry MultiProcessors)对称多处理机,也称为SMP (Shared Memory MulptiProcessors)共享存储多处理机。
UMA多处理机
均匀存储器存取模型 (Uniform Memory Access)。
COMA多处理机
只有Cache的存储器结构 (Cache-Only Memory Architecture) 模型;COMA是一种只用Cache的多处理机系统。
虚拟共享存储器(Shared Virtual Memory)
也称为共享分布存储器(Distributed Shared Memory);物理上分布存储器,逻辑上共享存储器。