计算机系统的层次结构
从使用语言的角度,一台由软、硬件组成的通用计算机系统可以被看成是按功能划分的多层机器级组成的层次结构。具体的计算机系统,其层次数的多少可以有所不同。
计算机系统的层次结构说明:
- M0用硬件实现,M1用微程序(固件)实现,M2到M5大多是用软件实现。所谓固件是一种具有软件功能的硬件。
- 操作系统程序虽然已经发展到用高级语言(如C语言)编写,但最终还是要用机器语言程序或微指令程序来解释。它提供了传统机器语言机器级M1所没有,但为汇编与高级语言使用和实现所用的基本操作,
命令及数据结构。
翻译技术:先用转换程序将高一级机器级上的程序整个地变成低一级机器级上等效的程序,然后在低一级机器级上实现的技术。
解释技术:在低级机器级上用它的一串语句或指令来仿真高级机器级上的一条语句和指令的功能,是通过对高级机器级语言程序中的每条语句或指令逐条解释来实现的技术。
计算机系统结构、计算机组成与计算机实现
1.计算机系统结构的定义和内涵
透明(Transparent):如果客观存在的事物或属性从某个角度看不到,则称对她是透明的。
计算机系统结构研究的是软、硬件之间的功能分配以及对传统机器级界面的确定。为机器语言、汇编语言程序设计者或编译程序生成系统设计或生成的程序能在机器上正确运行提供应看到和遵循的计算机属性。
就目前的通用机来说,计算机系统结构的属性包括:
- 硬件能直接识别和处理的数据类型及格式等的数据表示。
- 最小可寻址单位、寻址种类、地址计算等的寻址方式。
- 通用/专用寄存器的设置、数量、字长、使用约定等的寄存器组织。
- 二进制或汇编指令的操作类型、格式、排序方式、控制机构等的指令系统。
- 主存的最小编址单位、编码方式、容量、最大可编址空间等的存储系统组织。
- 中断的分类与分级、中断处理程序功能及入口地址等的中断机构。
- 系统机器级的管态与用户态的定义与切换。
- 输入/输出设备的连接、使用方式、数量、操作结束、出错指示等的机器级I/O结构。
- 系统各部分的信息保护方式和保护机构等属性。
2.计算机组成与计算机实现的内涵
计算机组成
计算机组成指计算机系统结构的逻辑实现,包括机器级内部的数据流和控制流的组成以及逻辑设计等。
计算机组成着眼于机器级内部各时间的排列方式和控制机构、各部件的功能及各部件之间的联系。它要解决的问题是希望达到的性能和价格的情况下,如何更好、更合理地把各种设备和部件组织成计算机,实现所确定的系统结构。
计算机组成设计要确定的方面一般包括:
- 数据通路宽度(数据总线一次并行传送的信息位数)。
- 专用部件的设置
- 各种操作对部件的共享程度
- 功能部件的并行度
- 控制机构的组成方式
- 缓冲和排队技术
- 预估、预判技术
- 可靠性技术
计算机实现
计算机实现指的是计算机组成的物理实现。包括处理机、主存等部件的物理结构,器件的集成度与速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术、信号传输,电源、冷却及整机装配技术等。
计算机实现的设计着眼于器件技术和微组装技术。
机器/汇编指令系统、数据表示、是否采用通道方式输入/输出的确定数据计算机系统结构;指令采用顺序、重叠、流水还是其他方式解释,数据通路宽度的确定,通道采用结合性还是独立型,则属于计算机实现。
3.计算机系统结构、组成和实现的相互关系和影响
- 计算机系统结构、组成、实现三者互不相同,但又相互影响。
- 相同结构的计算机可以采用不同的组成,一种组成也可有多种不同的实现。
- 组成也会影响结构,组成设计向上结构,向下受限于实现技术。
- 计算机组成和计算机实现关系密切,可以合称为计算机实现,即计算机系统的逻辑实现和物理实现。
计算机系统的软、硬件取舍及定量设计原理
1.软、硬件取舍的基本原则
原则1 应考虑在现有硬、器件(主要是逻辑器件和存储器件)条件下,系统要有高的性能价格比,主要从实现费用、速度和其他性能要求来总和考虑。
原则2 要考虑到准备采用和可能采用的组成技术,使之尽可能不要过多或不合理地限制各种组成、实现技术的采用。
原则3 不能仅从"硬"的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的发展,还应从"软"的角度把如何为编译和操作系统的实现以及为高级语言程序设计提供更多、更好的硬件支持放在首位。
应当进一步缩短高级语言与机器语言、操作系统与计算机系统结构、程序设计环境等与计算机系统结构之间存在的语义差距。计算机系统结构、机器语言是用硬件和固件实现的,而这些语义差距是用软件来填补的。语义差距的大小实际上取决于软、硬件的功能分配,差距缩小了,系统结构对软件设计的支持就加强了。
2.计算机系统的定量设计原理
使用者:响应时间
管理员:吞吐量
哈夫曼(Huffman)压缩原理
尽可能加速处理高概率的事件远比加速处理概率低的事件对性能的提高要显著。
Amdahl定律
Amdahl定律定义了一台计算机系统采用某种改进措施所取得的加速比。
Amdahl定律表明了性能提高量的递减规律,如果只对系统中的一部分进行性能改进,改进得越多,整体性能提高的增量却越小。也就是说,提高系统的整体性能应是各部分性能均能平衡地得到提高,不能只是其中某个功能部件性能的提高。
程序访问的局部性定律
时间上的局限性是指现在正使用的信息可能不久还要使用,因为程序存在着循环;
空间上的局限性是指最近的将来要用的信息很可能与现在正在使用的信息在程序位置上是邻近的,因为指令通常是顺序存放、顺序执行的。
软件、应用、器件的发展对系统结构的影响
软件的可移植性:只需要少量的修改或者不经过修改就能从计算机上移植到另外一台计算机上。
软件兼容性:
- 向上兼容
- 向下兼容
- 向前兼容
- 向后兼容
实现软件移植的技术主要有统一高级语言、采用系列机、模拟和仿真。
应用的发展对系统结构的影响
计算机工业在处理性能和价格的关系上大致是两种趋势:维持价格,提高性能;维持性能,降低价格。
从系统结构的观点看,各型计算机性能随时间的推移,其实就是在低档(型)机上引用甚至照搬高档(型)机的结构和组成。
系统结构中的并行性开发及计算机系统的分类
1.并行性的概念与开发
并行性的含义
并行性:(parallelism)是指在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作。
- 同时性:(simultaneity)是指两个或多个事件在同一时刻发生。
- 并发性:(concurrency)是指两个或多个事件在同一时间间隔内发生的并行性。
并行的级别
从计算机系统中执行程序的角度来看,并行性等级从低到高可以分为四级。它们分别是:指令内部、指令之间、任务或进程之间、作业或程序之间;
从计算机系统中处理数据的并行性来看,并行性等级从低到高可以分为:位串字串、位并字串、位片串字并、全并行;
并行性是贯穿于计算机信息加工的各个步骤和阶段的,从这个角度来看,并行性等级又可分为:存贮器操作并行、处理器操作步骤并行、处理器操作并行、指令任务作业并行。
并行的途径
实现并行性的途径有时间重叠、资源重复和资源共享等。
时间重叠(time-interleaving):在并行性概念中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。(流水线)
资源重复(resource-replication):在并行性概念中引入空间因素,通过重复设置硬件资源,可以大幅度提高并行处理能力。(多核、多cpu、集成)
资源共享(Resource Sharing):它是指多个任务按一定时间顺序轮流使用同一套硬件设备,这样既降低了成本,又提高了计算机设备的利用率。(分时调度)
- 时间重叠是实现并行性中的并发性。
- 资源重复是实现并行性中的同时性。
2.计算机系统的分类
Flynn分类法
- 指令流(instruction stream)——机器执行的指令序列。
- 数据流(data stream)——由指令流调用的数据序列,包括输入数据和中间结果。
- 多倍性(multiplicity)——在系统最受限制的元件上同时处于同一执行阶段的指令或数据的最大可能个数。
按照指令流和数据流两种不同的组合,把计算机系统的结构分为以下四类:
-
单指令流单数据流SISD(Single Instruction Stream Single Datastream)
-
单指令流多数据流SIMD(Single Instruction Stream Multiple Datastream)
-
多指令流单数据流MISD(Multiple Instruction Stream Single Datastream)
-
多指令流多数据流MIMD(Multiple Instruction Stream Multiple Datastream)
时间重叠是实现并行性中的并发性。
资源重复是实现并行性中的同时性。
网友评论