计算机系统结构.docx
- 文档编号:25163797
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:30
- 大小:49.87KB
计算机系统结构.docx
《计算机系统结构.docx》由会员分享,可在线阅读,更多相关《计算机系统结构.docx(30页珍藏版)》请在冰豆网上搜索。
计算机系统结构
计算机系统的多级层次结构
硬件和软件是等效的也是不等效的
硬件和软件在功能实现上是等效的,即一种功能可以由软件实现,也可以由硬件实现。
在实现性能上是不等效的。
软件实现的优点是设计容易、改进简单;硬件实现的优点是速度快。
语言实现的两种基本技术
翻译和解释是语言实现的两种基本技术。
它们都是以执行一串N级指令来实现N+1级指令,但二者存在着差别:
翻译技术是先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。
而解释技术是每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。
在这个过程中不产生翻译出来的程序,因此解释过程是边变换边执行的过程。
对于通用寄存器型机器来说,机器语言程序设计者所看到的计算机的属性
数据表示、寻址规则、寄存器定义指令集、中断系统、机器工作状态的定义和切换、存储系统、信息保护、I/O结构
软件兼容及根本特征
同一个软件可以不加修改地运行于系统结构相同的各档机器上,而且它们所获得的结果一样,差别只在于运行时间的不同。
软件兼容分为向上兼容、向下兼容、向前兼容和向后兼容。
其中向后兼容是软件兼容的根本特征。
系列机是指在一个厂家内生产的具有相同的系统结构,但具有不同组成和实现的一系列不同型号的机器。
它的出现较好地解决了软件要求环境稳定和硬件、器件技术迅速发展之间的矛盾。
同一系列机中各种型号的机器具有相同的系统结构,但采用不同的组成和实现技术,因而具有不同的性能和价格。
实现软件移植的主要途径:
(1)采用系列机方法
(2)采用模拟与仿真方法(3)采用统一的高级语言
存储程序计算机在系统结构上的主要特点:
(1)以运算器为中心。
(2)采用存储程序原理。
程序和数据放在同一存储器中,并且没有对两者加以区分。
(3)存储器是按地址访问的、线性编址的空间。
(4)控制流由指令流产生。
(5)指令由操作码和地址码组成。
操作码指明本指令的操作类型,地址码指明操作数和操作结果的地址。
(6)数据以二进制编码表示,采用二进制运算。
用户CPU时间的决定因素
用户CPU时间=CPIIC/时钟频率
其中,CPI:
指令时钟数;IC:
程序执行过程中所处理的指令数。
计算机系统结构设计和分析中最经常使用的三条基本原则:
(1)大概率事件优先原则:
对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。
(2)Amdahl定律:
加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
(3)程序的局部性原理:
程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。
根据Amdahl定律,系统加速比依赖于两个因素:
(1)可改进比例:
可改进部分在原系统计算时间中所占的比例。
(2)部件加速比:
可改进部分改进以后的性能提高。
从执行程序的角度看,并行性等级从低到高可分为:
(1)指令内部并行:
单条指令中各微操作之间的并行。
(2)指令级并行(InstructionLevelParallelism,ILP):
并行执行两条或以上的指令。
(3)线程级并行(ThreadLevelParallelism,TLP):
并行执行两个或两个以上的线程,通常是以一个进程内派生的多个线程为调度单位。
(4)任务级或过程级并行:
并行执行两个或两个以上的过程或任务(程序段),以子程序或进程为调度单元。
(5)作业或程序级并行:
并行执行两个或两个以上的作业或程序。
从处理数据的角度,并行性等级从低到高可以分为:
(1)字串位串:
同时只对一个字的一位进行处理。
(2)字串位并:
同时对一个字的全部位进行处理。
(3)字并位串:
同时对许多字的同一位(称位片)进行处理。
(4)全并行:
同时对许多字的全部或部分位进行处理。
计算机系统的结构分为:
(1)单指令流单数据流(SISD,SingleInstructionstreamSingleDatastream)。
(2)单指令流多数据流(SIMD,SingleInstructionstreamMultipleDatastream)。
(3)多指令流单数据流(MISD,MultipleInstructionstreamSingleDatastream)。
(4)多指令流多数据流(MIMD,MultipleInstructionstreamMultipleDatastream)。
计算机系统中提高并行性的技术途径:
(1)时间重叠。
多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
(2)资源重复。
通过重复设置资源,尤其是硬件资源,大幅度提高计算机系统的性能。
(3)资源共享。
这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
多机系统的耦合度可以分为:
(1)最低耦合:
除通过某种中间存储介质之外,各计算机之间没有物理连接,也无共享的联机硬件资源。
(2)松散耦合:
通过通道或通信线路实现计算机间互连,共享某些外围设备,机间的相互作用是在文件或数据集一级进行。
(3)紧密耦合:
机间物理连接的频带较高,往往通过总线或高速开关实现互连,可以共享主存。
单机系统和多机系统中,都是按时间重叠、资源重复和资源共享三种技术途径,分别发展为同构型多处理机、异构型多处理机、分布处理系统。
三种类型的多处理机的主要区别:
项目
同构型多处理机
异构型多处理机
分布处理系统
目的
提高系统性能
(可靠性、速度)
提高系统使用效率
兼顾效率与性能
技术
途径
资源重复
(机向互连)
时间重叠
(功能专用化)
资源共享
(网络化)
组成
同类型
(同等功能)
不同类型
(不同功能)
不限制
分工方式
任务分布
功能分布
硬件、软件、数据等各种资源分布
工作方式
一个作业由多机
协同并行地完成
一个作业由多机
协同串行地完成
一个作业由一台处理机完成,必要时才请求它机协作
控制形式
常采用浮动控制方式
采用专用控制方式
分布控制方式
耦合度
紧密耦合
紧密、松散耦合
松散、紧密耦合
对互连网络的要求
快速性、灵活性、可重构性
专用性
快速、灵活、简单、通用
对计算机指令集结构进行分类的因素
(1)在CPU中操作数的存储方法。
(2)指令中显式表示的操作数个数。
(3)操作数的寻址方式。
(4)指令集所提供的操作类型。
(5)操作数的类型和大小。
根据CPU内部存储单元类型,可将指令集结构分为:
堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。
堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构的特点:
指令集结构类型
优点
缺点
堆栈型
是一种表示计算的简单模型;指令短小
不能随机访问堆栈,从而很难生成有效代码。
同时,由于堆栈是瓶颈,所以很难被高效地实现
累加器型
减少了机器的内部状态;指令短小
由于累加器是唯一的暂存器,这种机器的存储器通信开销最大
寄存器型
易于生成高效的目标代码
所有操作数均需命名,且要显式表示,因而指令比较长
通用寄存器型指令集结构可细分为:
寄存器-寄存器型。
寄存器-存储器型。
存储器-存储器型。
指令集结构类型
优点
缺点
寄存器-寄存器型
简单,指令字长固定,是一种简单的代码生成模型,各种指令的执行时钟周期数相近
和ALU指令中含存储器操作数的指令集结构相比,指令条数多,因而其目标代码量较大
寄存器-存储器
可以直接对存储器操作数进行访问,容易对指令进行编码,且其目标代码量较小
指令中的操作数类型不同。
在一条指令中同时对一个寄存器操作数和存储器操作数进行编码,将限制指令所能够表示的寄存器个数。
由于指令的操作数可以存储在不同类型的存储器单元,所以每条指令的执行时钟周期数也不尽相同
存储器-存储器型
是一种最紧密的编码方式,无需“浪费”寄存器保存变量
指令字长多种多样。
每条指令的执行时钟周期数也大不一样,对存储器的频繁访问将导致存储器访问瓶颈问题
CISC结构的特点:
(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。
(2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
(3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。
(4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。
(5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。
增强CISC机器的指令功能:
(1)面向目标程序增强指令功能。
(2)面向高级语言和编译程序改进指令系统。
(3)面向操作系统的优化实现改进指令系统。
RISC的设计原则:
(1)选取使用频率最高的指令,并补充一些最有用的指令。
(2)每条指令的功能应尽可能简单,并在一个机器周期内完成。
(3)所有指令长度均相同。
(4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。
(5)以简单、有效的方式支持高级语言。
RISC和CISC处理机的指令系统结构的区别:
比较内容
CISC
RISC
指令格式
变长编码
定长编码
寻址方式
各种都有
只有load/store指令可以访存
CPI
远远大于1
为1
计算机指令集结构设计所涉及的内容:
(1)指令集功能设计:
主要有RISC和CISC两种技术发展方向。
(2)寻址方式的设计。
(3)操作数表示和操作数类型。
(4)寻址方式的表示:
可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。
(5)指令集格式的设计:
有变长编码格式、固定长度编码格式和混合型编码格式三种。
指令中表示操作数类型的方法:
(1)操作数的类型由操作码的编码指定,这是最常见的一种方法。
(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。
指令中表示寻址方式的主要方法:
(1)将寻址方式编于操作码中,操作码在描述指令功能的同时也描述了相应的寻址方式。
这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。
(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。
这种方式译码较慢,但操作码和寻址独立,易于指令扩展。
指令集格式设计中选择表示寻址方式的依据:
主要由指令集结构所采用的寻址方式种类及其适用范围,以及操作码与寻址方式之间的独立程度来决定。
如果某些指令集结构的指令有1~5个操作数,每个操作数有10种寻址方式,对于这种大规模的操作数和寻址方式组合,通常采用增设地址描述符的方法来描述寻址方式。
对诸如load/store类型指令集结构的指令,由于只有1~3个操作数,而且只有有限几种寻址方式。
通常将寻址方式编码于操作码中。
指令集结构中采用多种寻址方式的特点:
在指令集结构中采用多种寻址方式可以显著地减少程序的指令条数;但同时也可能增加实现的复杂度和使用这些寻址方式的指令的执行时钟周期数(CPI)。
在控制指令中使用PC相对寻址方式的特点:
(1)有效地缩短指令中表示目标地址的字段的长度。
(2)使得代码在执行时与它被载入的位置无关。
在指令集格式的设计时指令格式:
(1)变长编码格式。
这种编码方式可以有效减少程序的目标代码大小。
(2)定长编码格式。
这种编码方式可以降低译码的复杂度,提高译码的性能。
(3)混合型编码格式。
兼顾降低目标代码长度和降低译码复杂度。
MIPS采用的寻址方式:
MIPS的数据寻址方式只有立即数寻址和偏移量寻址两种,立即数字段和偏移量字段都是16位的。
寄存器间接寻址是通过把0作为偏移量来实现的,16位绝对寻址是通过把R0(其值永远为0)作为基址寄存器来完成的。
流水技术的特点:
(1)流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段”。
(2)每个子过程由专用的功能段实现。
(3)各个功能段所需时间应尽量相等。
(4)流水线需要有“通过时间”,在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果。
(5)流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线的效率才能充分发挥。
按照流水线所完成的功能来分:
(1)单功能流水线:
只能完成一种固定功能的流水线。
(2)多功能流水线:
流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。
按照同一时间内各段之间的连接方式来分:
(1)静态流水线:
在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
(2)动态流水线:
在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。
按照流水的级别来分:
(1)部件级流水线(运算操作流水线):
把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。
(2)处理机级流水线(指令流水线):
把解释指令的过程按照流水方式处理。
(3)处理机间流水线(宏流水线):
由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
按照数据表示来分:
(1)标量流水处理机:
处理机不具有向量数据表示,仅对标量数据进行流水处理。
(2)向量流水处理机:
处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。
按照流水线中是否有反馈回路来分:
(1)线性流水线:
流水线的各段串行连接,没有反馈回路。
(2)非线性流水线:
流水线中除有串行连接的通路外,还有反馈回路。
5段流水线:
一条指令的执行需要5个时钟周期。
它们分别是:
取指令周期(IF)、指令译码/读寄存器周期(ID)、执行/有效地址计算周期(EX)、存储器/分支完成周期(MEM)、写回周期(WB)。
消除流水线的瓶颈段的方法:
(1)细分瓶颈段;
(2)重复设置瓶颈段。
评价流水线的性能指标:
(1)吞吐率:
指在单位时间内流水线所完成的任务数或输出结果的数量。
(2)流水线的加速比:
指m段流水线的速度与等功能的非流水线的速度之比。
(3)效率:
指流水线的设备利用率。
流水线中的相关:
相关是指两条指令之间存在某种依赖关系。
确定程序中指令之间存在什么样的相关,对于充分发挥流水线的效率有重要的意义。
相关有3种类型,分别是数据相关(也称真数据相关)、名相关、控制相关。
名相关的种类:
如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。
指令j与指令i之间的名相关有以下两种:
(1)反相关。
如果指令j写的名与指令i读的名相同,则称指令i和j发生了反相关。
反相关指令之间的执行顺序是必须严格遵守的,以保证i读的值是正确的。
(2)输出相关。
如果指令j和指令i写相同的名,则称指令i和j发生了输出相关。
输出相关指令的执行顺序是不能颠倒的,以保证最后的结果是指令j写进去的。
流水线冲突的类型:
(1)结构冲突:
因硬件资源满足不了指令重叠执行的要求而发生的冲突。
(2)数据冲突:
当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
(3)控制冲突:
流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。
解决流水线结构冲突的方法:
(1)流水化功能单元;
(2)资源重复;(3)暂停流水线。
定向技术的主要思想:
在发生数据冲突时,后面的指令并不是立即就要用到前一条指令的计算结果。
如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。
当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。
根据指令对寄存器的读写顺序,可将数据冲突分为:
(1)写后读冲突
(2)写后写冲突(3)读后写冲突
解决流水线数据冲突的方法:
(1)定向技术:
在某条指令产生一个结果之前,其他指令并不真正需要该计算结果,如果将该计结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停。
(2)暂停技术:
设置一个“流水线互锁”的功能部件,一旦流水线互锁检测到数据相关,流水线暂停执行发生数据相关指令后续的所有指令,直到该数据相关解决为止。
(3)采用编译器调度。
(4)重新组织代码顺序。
从编译技术的角度,降低流水线分支损失的方法:
(1)预测分支失败的方法。
(2)预测分支成功的方法。
(3)延迟分支方法。
预测分支失败方法的主要思想:
当流水线译码到一条分支指令时,流水线继续取指令,并允许该分支指令后的指令继续在流水线中流动。
当流水线确定分支转移成功与否以及分支的目标地址之后,如果分支转移成功,流水线必须将在分支指令之后取出的所有指令转化为空操作,并在分支的目标地址处重新取出有效的指令;如果分支转移失败,那么可以将分支指令看作是一条普通指令,流水线正常流动,无需将在分支指令之后取出的所有指令转化为空操作。
“延迟分支”方法的主要思想:
其主要思想是从逻辑上“延长”分支指令的执行时间。
设延迟长度为n的分支指令后面有n个分支延迟槽,选择n条有效和有用的指令放入分支延迟槽中,无论分支成功与否,流水线都会执行这些指令。
处于分支延迟槽中的指令“掩盖”了流水线原来所必须插入的暂停周期。
调度分支延迟指令的三种常用方法:
调度策略
对调度的要求
对流水线性能改善的影响
从前调度
分支必须不依赖于被调度的指令
总是可以有效提高流水线性能
从目标处调度
如果分支转移失败,必须保证被调度的指令对程序的执行没有影响,可能需要复制被调度指令
分支转移成功时,可以提高流水线性能。
但由于复制指令,可能加大程序空间
从失败处调度
如果分支转移成功,必须保证被调度的指令对程序的执行没有影响
分支转移失败时,可以提高流水线性能
向量处理方式:
(1)水平处理方式:
不适合对向量进行流水处理。
(2)垂直处理方式:
适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成MM型的运算流水线。
(3)分组处理方式:
适合流水处理。
可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成RR型运算流水线。
衡量向量处理机性能的主要参数:
(1)向量指令的处理时间。
(2)峰值性能:
向量长度为无穷大时,向量处理机的最高性能。
(3)半性能向量长度:
向量处理机的性能为其峰值性能一半时所需的向量长度。
(4)向量长度临界值:
对同一段程序代码而言,向量方式的处理速度优于标量串行方式处理速度时所需的最小向量长度。
Tomasulo算法的基本思想:
Tomasulo算法的基本思想是只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。
指令的执行结果也是直接送到等待数据的其他保留站中去。
因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中的内容。
一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。
指令流出逻辑和保留站相结合实现寄存器换名,从而完全消除了数据写后写和先读后写相关这类名相关。
在Tomasulo算法中,进入“流出”段的条件:
进入“流出”段的条件:
有空闲保留站、动作和记录工作:
写出算法或者文字描述均可。
(1)判断第一操作数是否就绪;如果是,就把操作数读到保留站,否则就把寄存器状态表中的标识送给保留站。
(2)判断第二操作数是否就绪;如果是,就把操作数读到保留站,否则就把寄存器状态表中的标识送给保留站。
(3)把保留站置为忙。
(4)把操作码送保留站。
(5)把保留站号送到与该指令的结果寄存器对应的寄存器状态表项。
采用动态分支预测技术的关键问题:
(1)如何记录分支的历史信息;
(2)如何根据这些信息来预测分支的去向(甚至取到指令)。
前瞻执行的基本思想:
对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取、流出和执行后续的指令。
只是执行指令的结果不是写回到寄存器或存储器,而是放到一个称为ROB的缓冲器中。
等到相应的指令得到“确认”(即确实是应该执行的)后,才将结果写入寄存器或存储器。
基于硬件的前瞻执行的思想:
(1)动态分支预测。
用来选择后续执行的指令。
(2)在控制相关的结果尚未出来之前,前瞻地执行后续指令。
(3)用动态调度对基本块的各种组合进行跨基本块的调度。
ROB中的字段组成:
(1)指令类型:
指出该指令是分支指令、store指令或寄存器操作指令。
(2)目标地址:
给出指令执行结果应写入的目标寄存器号(如果是load和ALU指令)或存储器单元的地址(如果是store指令)。
(3)数据值字段:
用来保存指令前瞻执行的结果,直到指令得到确认。
(4)就绪字段:
指出指令是否已经完成执行并且数据已就绪。
超标量处理机与VLIW处理机相比的优点:
(1)超标量结构对程序员是透明的,因为处理机能自己检测下一条指令能否流出,从而不需要重新排列指令来满足指令的流出。
(2)即使是没有经过编译器针对超标量结构进行调度优化的代码或是旧的编译器生成的代码也可以运行,当然运行的效果不会很好。
指令多流出处理器的限制因素:
(1)程序所固有的指令级并行性。
(2)硬件实现上的困难。
(3)超标量和超长指令字处理器固有的技术限制。
循环展开和指令调度时要注意的问题:
(1)保证正确性。
在循环展开和调度过程中尤其要注意两个地方的正确性:
循环控制和操作数偏移量的修改。
(2)注意有效性。
只有能够找到不同循环体之间的无关性,才能够有效地使用循环展开。
(3)使用不同的寄存器。
如果使用相同的寄存器,或者使用较少数量的寄存器,就可能导致新的冲突。
(4)删除多余的测试指令和分支指令,并对循环结束代码和新的循环体代码进行相应的修正。
(5)注意对存储器数据的相关性分析。
(6)注意新的相关性。
由于原循环不同次的叠代在展开后都到了同一次循环体中,因此可能带来新的相关性。
单级存储器的主要矛盾:
(1)速度越快,每位价格就越高。
(2)容量越大,每位价格就越低。
(3)容量越大,速度越慢。
采取多级存储层次方法来解决。
评价存储层次的主要参数:
存储层次的平均每位价格、命中率或失效率、平均访问时间。
“Cache-主存”和“主存-辅存”层次的主要区别:
存储层次
比较项目
“Cache-主存”层次
“主存-辅存”层次
目的
为了弥补主存速度的不足
为了弥补主存容量的不足
存储管理的实现
全部由专用硬件实现
主要由软件实现
访问速度的比值
(第一级比第二级)
几比一
几万比一
典型的块(页)大小
几十个字节
几百到几千个字节
CPU对第二级的访问方式
可直接访问
均通过第一级
不命中时CPU是否切换
不切换
切换到其他进程
在存储层次中的问题:
(1)映像规则:
当把一个块调入高一层存储器时,可以放到哪些位置上。
(2)查找算法:
当所要访问的块在高一层存储器中时,如何找到该块。
(3)替换算法:
当发生失效时,应替换哪一块。
(4)写策略:
当进行写访问时,应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构
![提示](https://static.bdocx.com/images/bang_tan.gif)