【计算机系统结构】第一章:概论

第一节:计算机系统的层次结构

从使用语言的角度,一台由软、硬件组成的通用计算机系统可以被看成是按功能划分的多层机器级组成的层次结构。

层级结构由高到低依次为:

M5

应用语言机器级

应用语言

应用语言程序 经 应用程序包、翻译成高级语言程序

软件/逻辑结构

软件

性能:

越高性能越好

越低性能越差

翻译:

从高到低

解释:

从低到高

M4

高级语言机器级

高级语言

高级语言程序 经 编译程序 译成汇编语言程序

M3

汇编语言机器级

汇编语言

汇编语言程序 经 汇编程序 译成机器程序

M2

操作系统机器级

作业控制等语言

一般用机器语言程序解释作业控制语句等

接口

M1

传统机器语言机器级

机器指令系统

用微指令程序解释机器指令

硬件/物理结构

硬件

M0

微程序机器级

微指令系统

微指令由硬件直接执行

性能:

越高性能越好、越低性能越差

软硬件区分:

M5-M2 软件 M1-M0 硬件

结构区分:

M5-M2 属于逻辑结构 M1-M0 物理结构

固件:

是一种具有软件功能的硬件。

以软件为主实现的机器称为虚拟机,以区别于由硬件或固件实现的实际机器。虚拟机也不一定全由软件实现,有些操作也可以用固件或硬件实现。

“机器”被定义为能存储和执行相应语言程序的算法和数据结构的集合体。实际上,只有二进制机器指令,既传统所讲的机器语言与机器硬件直接对应,方可直接被硬件识别和执行。各机器级的实现采用翻译技术或解释技术,或者是这两种技术的结合。

翻译与解释:

翻译:翻译技术是转换程序将高一级的机器级上的程序整个的变换成低一级机器级上等效的程序,然后再低一级机器级上实现的技术。

解释:解释技术则是在低级机器级上用它的一串语句或指令来仿真高级机器级上的一条语句或指令的功能,是通过对高级机器级语言程序中的每条语句或指令逐条解释来实现的技术。

第二节:计算机系统结构、计算机组成和计算机实现

计算机系统结构的定义和内涵:

计算机系统结构也称计算机系统的体系结构,它只是系统结构中的一部分,指的是传统机器语言机器级的系统结构。其界面之上包括操作系统级、汇编语言级、高级语言级、和应用语言级中所有的软件功能,该界面之下包括所有硬件和固件的功能。因此,它是软件和硬件/固件的交界面,是机器语言、汇编语言程序设计者或编译程序设计者看到的机器物理系统的抽象。

结论:

计算机系统结构,研究的是软、硬件之间的功能分配以及对传统机器级界面的确定。为机器语言、汇编语言程序设计者或编译程序生成系统设计或生成的程序能在机器上正确运行提供应看到和遵守的计算机属性。

九大属性:

就目前的通用机来说,计算机系统结构的属性包括:

1)硬件能直接识别和处理的数据类型及格式等的数据表示。

2) 最小可寻址单位、寻址种类、地址计算等的寻址方式。

3)通用/专用 寄存器的设置、数量、字长、使用约定等的寄存器组织。

4) 二进制或汇编指令的操作类型、格式、排序方式、控制机构等的指令系统。

5)主存的最小编址单位、编址方式、容量、最大可编址空间等的存储系统组织。

6) 中断的分类与分级、中断处理程序功能及入口地址等的中断机构。

7) 系统机器级的管态和用户态的定义与切换。

8)输入/输出设备的连接、使用方式、流量、操作结束、出错指示等的机器级I/0。

9) 系统各部分的信息保护方式和保护机构等属性。

计算机组成与计算机实现的定义和内涵:

1.计算机的组成:

计算机组成(Computer Organization)指的是计算机系统结构的逻辑实现,包括机器级内部的数据流和控制流的组成以及逻辑设计等。

20世纪60年代以来,计算机组成设计主要是围绕提高速度,着重提高操作的并行度、重叠度,以及功能的分散和设置专用功能部件来进行的。

指令(取址 -> 分析 -> 执行)

计算机组成设计要确定的方面一般应包括:

1) 数据通路宽度(数据总线一次并行传送的信息位数)。

2) 专用部件的设置(是否设置乘除法、浮点运算、字符处理、地址运算等专用部件,设置的数量与机器要达到的速度、价格及专用部件的使用频率等有关)。

3) 各种操作对部件的共享程度(分时共享使用程度高,虽然限制了速度,但价格便宜。设置部件多降低共享程度,因操作并行度提高,可提高速度,但价格也会提高)。

4) 功能部件的并行度(是用顺序串行,还是用重叠、流水或分布式控制和处理)。

5) 控制机构的组成方式(用硬件还是微程序控制,是单机处理还是多机或功能分布处理)。

6))缓冲和排队技术(部件间如何设置及设置多大容量的缓冲器来协调它们的速度差。是用随机、先进先出、先进后出、优先级,还是用循环方式来安排事件处理的顺序)。

7) 预估、预判技术(用什么原则为优化性能预测未来行为)。

8) 可靠性技术(用何种冗余和容错技术来提高可靠性)。

2.计算机实现:

计算机实现(Computer Implementation)指的是计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术,信号传输,电源、冷却及整机装配技术等。

指令系统的确定属于计算机系统结构。指令的实现,如取指令、指令操作码译码、计算操作数地址、取数、运算、送结果等的操作安排和排序属于计算机组成。

结论:

机器/汇编指令系统、数据表示、是否采用通道方式输入/输出的确定属于计算采用结合型还是独立型,则属于计算机组成

第三节:计算机系统的软、硬件取舍及定量设计原理

一、软硬件取舍的基本原则:

软、硬件的功能分配是计算机系统结构的主要任务,而软件和硬件在逻辑功能上又是等效的、从原理上讲,软件的功能可以用硬件或固件完成的。硬件功能也可以用软件模拟完成,只不过在性能、价格、实现的难易程度上是不同的。具有相同功能的计算机系统,其软、硬件功能分配比例可以在很宽的范围内变化,

如图:

原则1:

应考虑在现有硬、器件(主要是逻辑器件和存储器件)条件下,系统要有的性能价格比,主要从实现费用,速度和其他性能要求来综合考虑。

仅从实现费用要求讨论,无论是硬件实现,还是软件实现,费用都应包括研制费用和重复生产费用。虽目前软件的设计效率底,但用硬件实现的设计费用还是明显地高于用软件实现的费用, 其是VLSI专用芯片的设计费用是比较高的。

原则2:

要考虑到准备采用和可能采用的组成技术,使之尽可能不要过多或不合理地限制各种组成、实现技术的采用。

原则3:

不能仅从“硬”的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的进展,还应从“软”的角度把如何为编译和操作系统的实现以及为高级语言程序的设计提供更多、更好的硬件支持放在首位。

3个基本原则结论:

应当进一步缩短高级语言与机器语言、操作系统与计算机系统结构、程序设计环境(如模块化、数据类型抽象)等与计算机系统结构之间存在的语义差距。计算机系统结构、机器语言是用硬件和固件实现的,而这些语义差距是用软件来填补的。语义差距的大小实质上取决于软、硬件功能的分配,差距缩小了、系统结构对软件设计的支持就加强了。

二、在设计计算机系统时,一般应遵循如下的定量设计原理。

1.哈夫曼(Huffman)压缩原理

尽可能加速处理高概率的事件运比加速处理概率很低的事件对性能的提高要显著。

如:CPU在运算中发生溢出的概率是限低的,为此,设计时可考虑加快不溢出时的运算速度、而对溢出时的速度不予考虑。

2.Amdahl定律

该定律是1967年IRM公司的Ammlabl在设计IBM360报列机时首先提出来的。该定律可用于确定对系统中性能癌颈部件采取措施提高速度后系统性能改进的程度,即系统加速比S,。系统加速比S,定义为系统改进后的性能与未改进时的性能的比值,或者定义为系统未改进时的程序执行时间Tola与改进后的程序执行时间Tnew的比值。系统加速比Sp与两个因素有关,即性能可改进比f new和部件加速比r newo

3.程序访问的局部性定律

程序访问的局部性包括了时间上和空间上的两个局部性。

①时间上的局部性指的是现在正使用的信息可能不久还要使用,这是因为程序存在着循环。

②空间上的局部性指的是最近的将来要用到的信息很可能与现在正在使用的信息在程序位置上是邻近的,这是因为指令通常是顺序存放、顺序执行的,数据也通常是以向量、阵列、树、表等形式簇聚地存放在一起的。

三、计算机系统设计的主要任务和方法

1.计算机系统的主要任务

计算机系统设计首先要根据市场和应用情况,确定用户对计算机系统的功能、性能和价格的要求。其中,应用软件对功能的确定起主要作用。如果某类应用软件基于某种指令系统且在市场上应用很普遍,就必须在系统结构设计时实现这种指令系统,以满足其应用需求。

1)要弄清其应用领域是专用的还是通用的。

2)要弄清软件兼容是放在哪级层次。

3)要弄清对操作系统有何种要求。

4)要如何保证有高的标准化程度。

2.计算机系统的设计方法

从多级层次结构出发,计算机系统的设计按多级层次结构的由上、下中开始设计可以有“由上往下”、“由下往上”、“由中间开始”3种不同的设计方法。

①“由上往下”设计,也称“由顶向底”设计。是一种串行设计方法,设计周期较长,是一种环境要求比较稳定的专用机的设计方法,无法用于通用机的设计。

②“由下往上”设计,也称“由底向顶”设计,是一种通用机的设计方法。由于硬件不改变,仅靠设计软件来被动适硬件,有时只需稍许改变或增加某些硬件的功能就能大大简化软件的设计,也做不到软、硬件脱节,软件因得不到硬件支持而显得繁杂。

③“从中间开始”向两边设计。这是通用机一般采用的方法。它可以克服“由上往下”和“由下往上”两种设计方法中,软、硬件设计分离和脱节的致命缺点。“从中间开始”设计是选择从层次结构的主要软、硬界面开始设计,即在传统机器语言机器级与操作系统机器级之间进行合理的软、硬件功能分配。

第四节:软件、应用、器件的发展对系统结构的影响

知识点1:软件发展对系统结构的影响

软件的可移植性指的是软件不修改或只经少量修改就可由一台机器称到另一合机器上运行、同一软件可应用于不同的环境。

实践证明可靠的软件就能长期使用、不会因机器更新需重新编写,这样、既大大减少了编制软件的工作量,又能迅速用上新的硬件技术、更新系统,让新系统立即发挥效能。同时,软件设计者也就有精力开发全新的软件。

1.统一高级语言

由于高级语言是面向题目和算法的,与机器的具体结构关系不大如果能统一出一种可满足各种应用需要的通用高级语言,如果操作系统的全部或一部分用这种高级语言编写,则系统软件中的这部分也可以移植。所以实现软件移植的一种技术就是如何统一高级语言,设计出一种完全通用的高级语言,为所有程序员所使用。

2.采用系列机

只能应用在结构相同敷相似的机器之间的汇编程序的软件移植。系列机从程序设计者角度看,都具有相同的属性,因此按此属性编制的机器语言程序及编译程序能不加修改地通用于各档机器。

对系列机来说,所谓优化性能价格比,指的是在满足性能的前提下尽量降低价格,或在某种价格情况下尽量提高性能。

软件兼容就有向前兼容和向后兼容。这是系列机最基本要求和特征。并必须保证向后兼容,力争向前兼容。

软件移植中采用系列机途径的方法:

在软、硬件界面上设定好一种系统结构。软件设计者按照此设计软件,硬件设计者根据机器速度、性能、价格的不同,选择不同器件、硬件和组成、实现技术,研制并提供不同档次的机器。

软件移植中采用系列机途径的优点:

①较好地解决了软件环境要求相对稳定和硬件、器件技术迅速发展的矛盾。

②软件环境相对稳定就可不断积累、丰富、完善软件,使软件产量、质量不断提高。

③同时又能不断采用新的器件和硬件技术,使之短期内即可提供新的、性能不断提高的机器。

3.模拟和仿真:

(1)模拟:

系列机只能在系统结构相同或相近(允许向后稍许发展)的机器之间实现汇编语言软件的移植。为实现不同系统结构的机器之间的机器语言软件移植,就必须做到在一种机器的系统结构上实现另一种机器的系统结构。从系统结构的主要方面一指令系统来看,就是要在一种机器上实现另一种机器的指令系统,即另一种机器语言。

注:模拟方法只适合于移植运行时间短、使用次数少、而且在时间关系上没有约束和受限制的软件。

(2)仿真:

如果宿主机本身采用微程序控制,那么模拟时,一条B机器指令的执行就需要通过二重解释:先经A机器的机器语言程序解释然后每条A机器指令又经一段微程序解释。如果能直接用微程序去解释B机器的指令,如图1-7所示,显然就会加快这一解释过程。这种用微程序直接解释另一种机器指令系统的方法就称为仿真。

进行仿真的A机器称为宿主机,被仿真的B机器称为目标机。为仿真所写的解释程序称为仿真微程序。与模拟一样,除了仿真目标机的指令系统之外,还要仿真其存储体系、I/0系统和控制台的操作。

仿真和模拟的主要区别在夫解释用的语言。仿真是用微程序解释其解释程序存储于控制存储器中;而模拟是用机器语言程序解释,其解释程序存储于主存中。

仿真方法可以提高被移植软件的运行速度,但由于微程序机器级结构深深依赖于传统机器级结构,故当两种机器结构差别较大时,就很难仿真,特别是I/0系统差别较大时更是如此。

(3)模拟和仿真的选择

不同系列间的软件移植一般是仿真和模拟并行。频繁使用的易于仿真的机器指令宜用仿真,以提高速度;很少使用的、难以仿真的指令及I/0操作宜用模拟。即使两种机器系统差别不大,往往也需要用模拟来完成机器间的映像

结论:

本节就解决软件移植问题提出了统一高级语言、设计系列机及模拟与仿真等方法。统一高级语言可以解决结构相同或完全不同的机器间的软件移植,从长远看是方向,但目前难以解决,只能做相对统一。系列机是当前普遍采用的办法,但只能实现同一系列内的软件兼容,虽然允许发展、变化、但兼容的约束反过来会阻碍系统结构取得突破性的进展。模拟灵活,可实现不同系统间的软件移植,但结构差异太大时,效率、速度会急剧下降。仿真在速度上损失小,但不灵活,只能在差别不大的系统之间使用,否则效率也会过低且难以仿真,需与模拟结合才行。此外,发展异种机联网也是实现软件移植的一种途径。

知识点2:应用发展对系统结构的影响

知识点3::器件的发展对系统结构的影响

非用户片也称为通用片,其功能是由器件厂家生产时固定的,器件的用户只能使用,不能改变器件内部功能。

20世纪70年代中期出现了现场片,用户根据需要可改变器件内部功能。例如,可编程只读存储器PROM、现场可编程逻辑阵列列FPLA等,使用灵活,功能强,可取代硬联组合网络,还可以构成时序网络。

用户片是专门按用户要求生成的高集成度VLSI器件,完全按用户要求设计的用户片称为全用户片。全用户片设计周期长,设计费用高,销量小,成本高。

第五节:系统结构中的并行性开发及计算机系统的分类

知识点1:并行性的概念与开发

1.并行性的含义与级别

①器件技术、尤其是微电子技术的迅速发展是促进计算机和系统性能迅速改进的关键和基础。

②无论是数值计算、数据处理、信息处理、知识处理、还是智能处理、都隐含有同时进行运算或操作的成分。解题中具有可以同时进行运算或操作的特性,称为并行性。

③并行性包含同时性和并发性二重含义。同时性(Simalhsmeity)指两个或多个事件在同一时刻发生。

④并发性(Cemcumemcy)指两个或多个事件在同一时间间隔内发生。

⑤开发并行性的目的是为了能并行处理、以提高计算机解题的效率。

2.以不同角度,并行性有不同的等级。

1)计算机系统执行程序的角度来看,并行性等级由低到高可分为四级。分别是;

①指令内部——条指令内部各个微操作之间的并行执行。

②指令之间——多条指令的并行执行。

③任务或进程之间——多个任务或程序段的并行执行。

④作业或程序之间——多个作业或多道程序的并行执行。

2)对计算机系统中处理数据的角度来看、并行性等级从低到高可以分为四级。分别是:

①位串字率——同时只对一个字的一位进行处理,这通常是指传统的串行单处理机,没有并行性。

②位并字串——同时对一个字的全部位进行处理,这通常是指传统的并行单处理机,开始出现并行性。

③位片串字并——同时对许多字的同一位(称位片)进行处理、开始进入并行处理领域。

④全并行——同时对许多字的全部或部分位组进行处理。

3)并行性是贯穿于计算机信息加工的各个参骤和阶段的、从这个角度来看,并行性等级又分为:

①存储器操作并行——可用单体单字、多体单字或多体多字方式在一个存储周期内访问多个字,进而采用按内容访问方式在一个存储周期内用位片串字并或全并行方式实现对存储器中大量字的高速并行比较、检索、更新、变换等操作。

典型的例子就是并行存储器系统和以相联存储器为核心构成的相联处理机。

②处理器操作步骤并行——指令的取指、分析、执行、浮点加法的求阶差、对阶、尾加、舍入、规格化等操作,执行步骤在时间上重叠流水地进行。典型的例子是流水线处理机。

③处理器操作并行——通过重复设置大量处理单元,让它们在同一控制器控制下按同一指令要求对向量、数组中各元素同时操作。典型的例子是阵列处理机。

④指令、任务、作业并行——这是较高级的并行。虽然它也可以包含操作、操作步骤等较低级的并行但与操作级并行不同。指令级以上的并行是多个处理机同时对多条指令和相关的多数据组进行处理,操作级并行是对同一条指令及其相关的数据组进行处理。前者属于多指令流多数据流计算机,后者属于单指令流多数据流计算机。典型的例子是多处理机。

知识点2:并行性开发的途径

1.并行性开发的途径有:时间重叠、资源重复、资源共享。

(1)时间重叠

时间重叠是在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,加快硬件周转来赢得速度。

(2)资源重复

资源重复是在并行概念中引人空间因素,资源来提高可靠性或性能。双工系统是通过使用两台相同的计算机完成同一任务来提高可靠性的。

在图1-10中,通过设置N个完全相同的处理单元,在同一控制下,给各处理单元分配不同的数据,完成指令要求的同一种运算或操作,以提高速度性能。它体现了并行性中的同时性。资源重复不仅可以提高可靠性,还可以进一步用成百上万台微处理机互连构成多计算机或机群系统,提高系统的速度性能。

(3)资源共享

资源共享(Resource Sharing)是用软件方法,让多个用户按一定时间顺序轮流使用同一套资源来提高资源利用率,相应地也就提高了系统的性能。

多道程序分时系统是典型的资源共享实例。它通过共享CPU、主存,以降低系统价格、提高设备利用率。共享主存、外设、通信线路的多处理机,计算机网络,分布处理系统都是典型的资源共享例子。资源共享不只是CPU、主存、外设等硬件资源的共享,也包括软件、信息资源的共享。

知识点3:多机系统的耦合度

多机系统包含多处理机系统和多计算机系统。多处理机系统与多计算机系统是有差别的。多处理机系统是由多台处理机组成的单一系统,各处理机都有自己的控制部件、可管本地存储器,能执行各自的程序,但都受逻辑上统一的操作系统控制。处理机之间以文件、单一数据或向量、数组等形式交互作用,全面实现作业、任务、指令、数据各级的并行。

一般用耦合度反映多机系统中各机器之间物理连接的紧密度和交叉作用能力的强弱,有最低耦合、松散耦合和紧密耦合之分。各种脱机处理系统是最低耦合系统,其耦合度最低,除通过某种存储介质外,各计算机之间无物理连接,也无共享的联机硬件资源。

例如:独立外围计算机系统由主机和外围计算机组成,后者脱机工作,只通过磁盘、磁带等对主机的输入/输出提供支持。

如果多台计算机通过通道或通信线路实现互连,共享某些如磁带、磁盘等外围奋,以较低频带在文件或数据集一级相互作用,则这种系统被称为松散耦合系统或间接耦合系统。

它有两种形式:一种是多台功能专用的计算机通过通道和共享的外围设备相连,各计算机以文件或数据集形式将结果送到共享的外设,供其他计算机继续处理,使系统获得较高效率;另一种是各计算机经通信线路互连成计算机网,各尽所长,求得更大范围内的资源共享。

如果多台计算机经总线或高速开关互连,共享主存,有较高的信息传输速率,可实现数据集一级、任务级、作业级并行,则称此系统为紧密耦合系统(Tightly Coupled System)或直接耦合系统(Directly Coupled System)。它可以是主辅机方式配合工作的非对称型系统,但更多的是对称型多处理机系统,在统一的操作系统管理下追求各处理机的高效率和负荷的均衡。

知识点4:计算机的分类

1966年,弗林提出按指令流和数据流的多倍性对计算机系统分类。指令流是指机器执行的指令序列。数据流是指由指令流调用的数据序列,包括输入数据和中间结果。多倍性是指在系统性能瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数。

据此,把计算机系统分成单指令流单数据流(SISD)、单指令流多数据流((SIMD)、多指令流单数据流(MISD)、多指令流多数据流(MIMD)四大类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值