计算机系统结构学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章计算机系统结构的基本概念
1..1计算机系统的多级层次结构
1..由高到低分6级
虚拟机器:
●M5:应用语言级。
经应用程序包翻译成高级语言程序;
●M4:高级语言级。
经编译程序翻译成汇编语言..中间语言程序..机器语言程序。
●M3:汇编语言级。
经汇编程序翻译成机器语言程序。
●M2:操作系统级。
用机器语言程序解释作业控制语句。
实际机器:
●M1:传统机器语言级。
用微指令解释机器指令。
●M0:微程序级。
由硬件直接执行微指令。
2..机器——被定义为能存储和执行相应语言程序和数据结构的集合体。
3..翻译——是先用转换程序将高一级的机器级的程序整个地变换成低一级机器级上等效的程序,然后再在低一级机器级上实现的技术。
4..解释——在低级机器级上用它的一串语句或指令来仿真高级机器级上的一条语句或指令的功能,通过高级机器语言程序中的每条语句或指令逐条解释来实现的技术。
5..虚拟机器不一定由软件实现,有些操作也可以用软硬件或硬件实现。
6..软件和硬件在逻辑功能上是等效的,只是性能..价格..实现的难易程序不同。
在满足应用的前提下,主要是看能否充分利用硬..器件技术的进展,使系统有较高的性价比。
因此,采用何种方式实现,就从系统的效率..速度..造价..资源状况等多方面考虑,对软件..硬件..固件取舍进行综合平衡。
7..计算机看成层次结构推动了计算机系统结构的发展:
可以重新调整软..硬件比例,充分利用更多..更好的硬件支持,改变硬..器件迅速发展而软件日益复杂..开销过大的状况;
可以将各虚拟机用真正的实处理机代替,摆脱各级功能都在同一台实机器上实现的状况,发展多处理机..分布处理..计算机网;
可以在一台宿主机上模拟或仿真另一台机器,推动自虚拟机..多种操作系统共行等技术的应用,从而促进软件移植..计算机性能评价..计算机设计自动化等的发展。
1..2计算机系统结构..组成与实现
1..系统结构——是对计算机系统中各级界面的划分..定义及其上下功能的分配。
2..透明——客观存在事物或属性从某个角度看不到,称对他透明。
3..计算机系统结构(计算机体系统结构)——它只是系统结构中的一部分,指的是传统机器级的系统结构。
其界面之上包括操作系统..汇编语言..高级语言级和应用语言级中所有软件功能,界面之下包括所有硬件和固件的功能。
因此,它是软件和硬件的交界面,是机器语言..汇编语言程序..编译程序设计者看到的机器物理系统抽象。
计算机系统结构研究的是软..硬件之间的功能划分以及对传统机器级界面的确定,提供机器语言..汇编语言..编译程序程序设计者为使其设计的系统能在机器上正确运行应看到和遵守的计算机属性。
4..机器级内部的数据流..控制流的组成,逻辑设计和器件设计等都不包含在计算机系统结构中。
5..计算机组成——是计算机系统的逻辑实现,包括机器级内的数据流和控制流的组成和
逻辑设计等。
它着眼于机器级内部各事件的排序方式与控制机构..各部件的功能及各部件的联系。
计算机组成设计要解决的问题是,在达到所希望的性能..价格下,如何更好地把各种设备和部件组织成计算机,来实现所确定的系统结构。
6..计算机实现——是指计算机组成的物理实现,它着眼于器件技术和微组装技术。
其中,器件技术在实现技术中起着主导作用。
7..设计何种系列机发球计算机系统结构,而系列机内不同型号计算机的组织属于计算机组成。
8..结合型通道——让通道的功能借用中央处理机的某些部件完成。
同一套硬件分时执行中央处理机和通道的功能。
速度低..成本低。
9..独立型通道——通道单独设置硬件,与中央处理机并行,成本高..速度高。
10..计算机系统结构..组成..实现的相互影响:
相同结构的计算机,可以采用不同的组成,一种组成可以有不同的实现。
不同的结构可能采用不同的组成技术,组成反过来也影响结构,如果没有组成技术的进步,结构进展是不可能的。
结构设计必须结合应用考虑,为软件和算法的实现提供更多更好的支持,同时要考虑可能采用和准备采用的组成技术。
结构设计应尽可能避免过多地或不合理地限制各种组成..实现技术的采用和发展,尽量做到既能方便地在低档机上用简单..便宜的组成实现,又能在高档机上用复杂..较贵的组成实现,使它们都能充分发挥出实现方法所带来的好处,这样结构才有生命力。
组成设计上面决定于结构,下面受限于实现技术,它们可以与实现折衷权衡。
组成与实现的权衡取决于器件来源..厂家技术特长..性价比能否优化。
结构..组成..实现所包含怕具体内容随不时期..不同的计算机系统会有差异。
在有些系统中作为结构的内容,在另一个系统中可能是组成和实现的内容。
11..从程序设计者看的计算机系统结构——着眼于软..硬件功能分配和确定程序设计者看到的机器级界面的计算机系统结构。
12..从计算机设计者看的计算机系统结构——着眼于如何更好..更合理地实现分配给硬件的功能的计算机组成。
1..3软硬件取舍与计算机系统设计思路
1..软硬件取舍的原则:
第一个基本原则:应考虑在现有的硬器件(主要是逻辑器件和存储器件)条件下,系统要有高的性价比。
(经常用的基本单元功能,才适宜用硬件实现;产量大的计算机系统,才适宜增加硬件功能实现的比例)
第二个基本原则:要考虑可能采用和准备采用的组成技术,尽可能不要过多地或不合理地限制各种组成..实现技术的采用。
第三个基本原则:不能仅从“硬”的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的发展,还应从“软”的角度把如何为编译和操作系统的实现以及为高级语言程序的设计者提供更多更好硬件支持放在首位,应进一步缩短语义差距,差距缩小了,系统结构对软件设计的支持就加强了。
2..计算机系统的设计思路:
由上往下,先考虑如何满足应用要求,定好面对使用者某级机器应有什么基本功能和特性,然后再逐级往下设计,每级都考虑怎样优化上一级。
适合于专用机设计,不适宜用于通用机设计。
因为应用对象和范围改变时,软..硬件分配会很不适应,系统效率会急剧下降。
由下往上,不管应用要求,只根据能拿到的器件,参照或吸收已有各种机器的特点,先
设计出微程序机器级..传统机器级,然后再为不同的应用配多种操作系统和编译系统软件,使应用人员根据所提供的语言种类..数据形式,采用合适的算法来满足相应的应用。
这是20世纪60-70年代常用的通用机设计思路。
但是,是在硬件不能改变的情况下被动地设计软件,软件因不能获得为优化软件设计而提供的硬件支持而显得繁杂。
而且,这样研制的硬件机器的某些性能指标可能是虚假的,如传统机器级的“每秒运算次数”。
因此,由下往上设计在硬件技术飞速发展而软件发展相对缓慢的今天,难以适应系统发展要求,已很少使用。
由中间开始(软..硬件设计分离和脱节是上述两思路的主要缺点,所以提出“由中间开始设计”。
“中间”指的是层次结构中的软..硬交界面,目前多数是传统机器级与操作系统机器级之间),进行软..硬件功能分配时,既要考虑能拿到的硬..器件,又要考虑可能的应用所需的算法和数据结构,先定义好软硬件功能分配这个交界面,然后由这个中间点分别往上..往下进行软件..硬件并行设计。
1..4结构设计要解决好软件的可移植性
1..软件的可移植性——指的是软件不修改或只经少量修改就可以由一台机器搬到另一台机器上运行,同一个软件可应用于不同的环境。
2..实现软件可移植性的几个基本技术:统一高级语言..采用系列机..模拟与仿真..异种机联网。
3..统一高级语言技术,就是要设计出一种完全通用的高级语言,为所有程序员所使用。
这样就能实现高级语言程序在结构相同..完全不同的机器之间移植(ADA语言是此方向的重要发展)。
4..至今没有一种是对各种应用真正通用的高级语言,原因是:
第一,不同的用途,要求的语言的语法..语义结构不同(例FORTRAN..COBOL)。
第二,人们对语言的基本结构看法不一(例GOTO语句)。
第三,同一种高级语言在不同厂家的机器上也不能完全通用(厂家为发展自己的行色常使用“方言”)。
第四,人们不愿抛弃惯用的语言和原语言开发的软件。
5..采用系列机技术,就是在结构相同(相近)..档次不同的机器间统一机器语言,实现软件移植。
依据由中间向两边设计思路,定义好软..硬件界面结构(系统结构)后,软件者按此设计软件,硬件设计者根据机器速度..性能..价格的不同,选择不同的硬..器件和组成..实现技术,研制并提供不同档次的机器。
确定系列结构最主要是确定好系列机的指令系统..数据表示..概念性结构。
6..向上(下)兼容——指的是某档机器编制的软件,不加修改就能运行在比它高(低)档的机器上。
(同系列..不同档。
一般应做到向上兼容,但向下兼容就不一定)
7..向前(后)兼容——指的是在按某个时期投入市场的访型号机器上编制的软件,不加修改就能运行于在它之前(后)投入市场的机器上。
(同系列..同档次。
8..各系列机必须保证向后兼容,力争向上兼容。
9..优化性价比——指的是在满足性能的前提下昼降低价格,或在某种价格情况下昼提高性能。
10..尽管软件兼容性要求到一定时候会阻碍计算机系统结构的发展,在设计新机器..新系列时仍要必须遵循系列机概念和软件兼容性约束。
只是到一定的时候,不要固守旧系列,而要发展新系列。
11..模拟——B机器的每条机器指令由A机器的一段机器语言程序解释,实现软件移植。
(宿主机..虚拟机)
12..仿真——用微程序直接解释另一种机器指令系统的方法。
(宿主机..目标机)
13..模拟和仿真可以实现不同系统结构间的软件移植,主要区别在于解释用的语言。
仿真用微程序解释,解释程序存在于控制存储器中。
模拟用机器语言程序解释,其解释程序存在于主存中。
不同系列间的软件移植一般是仿真与模拟并用。
频繁使用的..易于仿真的机器指令宜于仿真,以提高速度。
很少使用的..难于仿真的指令及I/O操作宜采用模拟。
14..解决软件移植问题技术的总结:
统一高级语言,可以解决结构相同..完全不同的机器间的软件移植,从长远看是方向,但目前难以解决,只能做相对统一。
系列机,是当前普遍采用的好方法,但只能实现同一系列内的软件兼容。
虽然允许发展变化,但兼容的约束一定时候会阻碍系统结构进行突破性发展。
模拟,灵活,可实现不同系统间的软件移植,但结构差异太大时,效率..速度会急剧下降。
仿真,在速度上损失小,不灵活,只能在差别不大的系统间使用,否则效率会过低且难于仿真,需与模拟结合才行。
1..5应用与器件的发展对系统结构的影响
1..从用户来讲,总希望机器的应用范围越宽越好,这样应用发生改变时不同购置新的机器。
采用系列机形式的多功能通用机的出现,标志着计算机工业开始走向成熟。
2..计算机应用分4类:数据处理..信息处理..知识处理..智能处理。
3..微型机发展的两年趋势:一是利用VLSI的进展,维持价格提高性能,向小型机靠拢;二是维持性能降低价格,发展更低档的亚微型和微微型计算机,进一步扩大应用。
4..巨..大型机一般采用维持价格提高性能..提高价格提高性能来不断研究和采用新的结构和组成。
5..器件的功能和使用方法发生了很大的变化,从非用户片,发展到现场片和用户片。
它影响着结构和组成技术的发展。
6..非用户片——也称通用片。
其功能是由器件厂生产时定死的,器件的用户只能用,不能改变内部功能。
7..现场片——用户根据需要可改变器件内部的功能。
如编程只读存储器PROM..现场可编程逻辑陈列FPLA。
由于是存储器件,规整通用,适宜大规模集成。
8..用户片——专门按用户要求生产的高集成度VLSI器件。
完全按用户要求设计的用户片称全用户片。
生产工序基本按通用片,仅最后门电路或触发器间的连线按用户要求制作,称半用户片。
9..逻辑类器件集成度难以提高,它的高度集成会使引线倍增,并影响通用性。
存储类器件容量增大一倍,只增加一个地址输入端,适合高度集成,通用性更强。
所以,人们在结构..组成中有意识地发展存储逻辑,用存储器件取代逻辑器件。
10..器件的发展改变了逻辑设计的传统方法:
●对于使用通用片的计算机,过去,逻辑设计主要是逻辑化简。
对于现在VLSI来说,
应着眼于在满足结构提出的功能和速度要求下,如何缩短设计周期..提高系统效能..
用上批量生产的通用片。
●对于使用现场片的计算机,不能用过去硬的逻辑设计方法,应主要用微汇编..微高
级语言..计算机辅助设计等软的方法来设计。
●对于使用用户片的计算机,机器设计的关键就是芯片设计,要保证芯片利用率,必
须采用计算机辅助设计。
11..器件的发展是推动结构和组成前进的关键因素:
●器件集成度没有提高,器件..机器的速度就可能有数量级的提高;
●器件可靠性没有数量级的提高,无法采用流水技术;
●没有高速..廉价的半导体存储器,高速缓冲存储器..虚拟存储器概念就无法真正实
现;
●没有现场型PROM器件,微程序技术就无法得到广泛应用;
●只有有了高速相联存储器器件,才有相联处理机结构的发展,才能推动向量机..数
组机..数据库机的发展;
●没有器件性价比的迅速提高,新的组成就无法下移,得不到推广应用,厂家也就不
能研制功能更强的VLSI器件。
说明,计算机组成的发展反过来也会促进器件的发
展。
12..器件的发展加速了结构的下移。
13..器件的发展促进了算法..语言和软件的发展。
微处理器性价比的迅速提高,加速了大规模..高性能的并行处理机MPP..通信网络..机群系统等新结构的发展,促进人们为它研究新的并行算法..并行语言..并行处理应用软件..并行操作系统软件,使系统的规模和处理速度能随节点处理数的增加而显著增加。
1..6系统结构中的并行性发展及计算机系统的分类
1..在同一器件技术水平上,进一步提高计算机性能的有效途径就是开发并行性,挖掘潜在的并行能力,提高处理..操作并行程度。
2..并行性——解题中,具有可以同时进行运算和操作的特性。
3..并行性实际包含同时性和并发性二重含义。
4..同时性——两个或多个事件在同一时间发生。
5..并发性——两个或多个事件在同一时间间隔内发生。
6..并行性等级划分:
按执行程序的角度:指令内部..指令之间..任务或进程之间..作业或程序之间;
按处理数据的角度:位串字串..位并字串..位片串字并..全并行;
按信息加工的阶段..步骤的角度:存储器操作并行..处理器操作步骤并行..筛器操作并行..指令(任务..作业)并行。
7..作业或程序间的并行关键在于并行算法,即怎样将有限的硬件..软件资源有效地同时分配给正在解题的多个程序;
任务或进程间的并行主要是如何进行任务分解和同步;
指令间并行主要是处理好指令间存在的相互关联;
指令内部的并行主要取决于硬件和组成设计。
并行性等级由高到低反映了硬件实现的比例在增大,所以并行性的实现是一个软..硬件功能分配问题,需折衷权衡。
随着硬件成本上降..软件成本上升,硬件实现比例在增大。
如过去在单处理机中进程..程序的并行,主要是通过操作系统中的进程管理..作业管理..并行语言..并发程序设计等软的方法实现,而在现在多处理机系统中,用能完成多个任务或作业的硬处理机就能完成。
8..位串字串——同时只对一个字的一位进行处理。
通常指传统的串行单处理机,没有并行性;
位并字串——同时对一个字的全部位进行处理。
通常指传统的并行单处理机,开始出现并行性;
位片串字并——同时对许多字的同一位(位片)进行处理。
全并行——同时对许多字的全部或部分位组进行处理。
9..存储器操作并行——用单体多字..多体单字..多体多字方式在一个存储周期内访问多
个字。
进而采用按内容访问方式在一个存储周期内用位片串字并或全并行方式实现对存储器中大量字的高速比较..检索..更新..变换等操作。
典型例子:并行存储器系统..以相联存储器为核心的相联处理机;
处理器操作步骤并行——指令的取指..分析..执行,浮点加法的求阶差..对阶..尾加..舍入..规格化等操作执行步骤在时间是重叠流水地进行。
典型例子是流水线处理机。
处理器操作并行——通过重复设置大量的处理单元,让它们在同一控制器控制下按同一指令要求对向量..数组中的各元素同时进行操作。
典型例子是阵列处理机。
指令..任务..作业并行——指令级以上的并行,是多个处理机对多条指令和相关多数据组进行处理,属多指令流多数据流计算机。
前述3种操作级并行是对同一条指令及其相关的数据组进行处理,属单指令流多数据流计算机。
10..开发并行性的途径:时间重叠..资源重复..资源共享。
11..时间重叠——在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠在使用同一套硬件设备的各个部分,加快硬件的周转来赢得速度。
时间重叠基本不必重复增加设备就可以提高计算机系统的性价比。
例,指令内各操作步骤的重叠流水。
12..资源重复——在并行性概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能。
例,双工系统提高可靠性..阵列处理机提高性能。
13..资源共享——用软件的方法让多个用户按一定的时间顺序轮流使用同一套资源来提高其利用率..提高系统性能。
资源共享不只是CPU..主存..外设等硬件资源的共享,也包括软件..信息资源的共享。
14..计算机系统的3T性能目标:1TFLOPS计算能力..1TBYTE主存容量..1TBYTE/S的I/O带宽。
15..计算机系统并行性的发展:
1960年前,算术运算的位并行..运算与I/O操作的并行;
1960-1970年,多道程序分时系统..多功能部件..流水线单处理机;
1970-1980年,VLSI普遍应用,大型..巨型的向量机..阵列机..相联处理机等并行处理系统结构;
1980-1990年,精简指令系统计算机(RISC)..超标量处理机(指令级并行)..超流水线处理机..超长指令字计算机(VLIW)..多微处理机系统..数据流计算机..智能计算机;
1990年后,大规模并行处理(MPP)。
多处理机..多向量机..机群系统将是今后并行处理计算机发展的主流。
16..并行处理机的结构,除分布处理..MPP..机群系统外,可以分为流水线计算机..阵列处理机..多处理机..数据流计算机。
17..流水线计算机——主要通过时间重叠,让多个部件在时间上交错重叠地并行执行运算和处理,以实现时间上的并行。
流水线计算机主要就解决好拥塞控制..冲突防止..分支处理..指令和数据的相关处理..流水线重组..中断处理..流水线调度..作业顺序控制等问题,尽可能将标量循环运算转成向量运算以消除循环,避免相关。
18..阵列计算机——主要通过资源重复实现空间上的并行。
主要解决处理单元灵活规律的互联模式和互联网络设计..存储器组织..数据在存储器中的分布算法..针对具体题目的高效并行算法等问题。
19..多处理机——主要通过资源共享输入输出子系统..数据库资源..共享或不共享主存的一组处理机在统一的操作系统全盘控制下,实现软件..硬件各级上的相互作用,达到时间..空间上异步并行。
多处理机主要解决处理机间互联..存储组织等硬件问题;存储管理..资源分配..任务分解..系统死锁的防止..进程间通讯和同步..多处理机调度..系统保护等操作系统功能;高效并行算法..并行语言的设计等问题。
20..数据流计算机——数据驱动。
设有共享变量的概念,不共享存储的数据。
指令执行的顺序只受指令中数据的相关性制约。
数据以表示某一操作数或参数已准备就绪的数据令牌形式在指令间传递。
数据流机主要研究合适的硬件组织和结构..数据流程序图..能高效并行执行的数据流语言..解决目前数据流机存在的某些问题。
21..多机系统包括多处理机系统和多计算机系统。
多处理机系统是由多台处理机组成的单一系统。
各处理机都有自己的控制部件,可带本地存储器,能执行各自的程序,受逻辑上统一的操作系统控制。
处理机以文件..单一数据..向量..数组等形式交互。
全面实现作业..任务..指令..数据的并行;
多计算机系统是由多台独立的计算机组成的系统,各自在逻辑上独立的操作系统控制下运行。
机间可不通讯,即使通讯也只是经通道或通信线路以文件或数据集形式进行,实现多个作业间的并行。
22..用耦合度来反映多机系统中各机间物理连接的紧密度和交叉作用能力的强弱。
有最低耦合..松散耦合..紧密耦合。
最低耦合系统——各种脱机系统。
除通过某种存储介质外,机间无物理连接,也无共享的联机硬件资源;
松散(间接)耦合系统——多台计算机通过通道或通信线路互联,共享磁盘..磁带等外围设备,以较低的频带在文件或数据集一级交互。
难以满足任务一级的并行处理,适合于仅存处理。
一般是非对称型系统;
紧密(直接)耦合系统——多台计算机经总线或高速开关互联,有较高的信息传输速率,可实现数据集级..任务级..作业级并行。
可以是非对称型系统,但更多是对称型多处理机系统。
23..计算机系统的分类:弗林分类法..库克分类法..冯式分类法..汉德勒分类法..按执行程序或指令的控制方式分类。
弗林分类法——按指令流..数据流的多倍性分类。
分SISD(传统的单处理器计算机..流水线机)..SIMD(阵列处理机..相联处理机)..MISD(处理机间的宏流水..脉动阵列流水机)..MIMD(共享主存的紧耦合多处理机..不共享主存的MSISD从)四类。
(指令流——机器执行的指令序列;数据流——由指令流调用的数据序列,包括输入数据和中间结果;多倍性——系统性能瓶颈部件上处于同一执行阶段的指令或数据最大可能的个数)。
只能对控制流型机器分类,不能对数据流机分类,对流水线处理机分类也不准确。
库克分类法——按指令流..执行流及其多倍性分类。
分SISE(单处理机)..SIME(带多操作部件的处理机)..MISE(带指令级多道程序的单处理机)..MIME(多处理机系统)。
冯式分类法(冯译云)——按数据处理的并行度分类。
分为字串位串WSBS(位串行机)..字串位并WSBP(位并行机)..字并位串WPBS(某些相联处理机..阵列处理机)..字并位并WPBP(某些相联处理机..大多数阵列处理机..多处理机)。
汉德勒分类法——在冯式法基础上,基于硬件结构所含可并行处理单元数和可流水处理的级数进行分类。
按执行程序或指令的控制方式分类——分为由控制驱动的控制流方式..由数据驱动的数据流方式..按需求驱动的归约方式..按模式驱动的匹配方式等。
第2章数据表示与指令系统。