1.计算机系统结构基础及并行性的开发
1. 计算机系统结构基础及并行性的开发
基本要求
一、领会通用计算机系统的多级层次结构
-
应用语言机器机器级M5
- 应用语言
- 应用语言程序经应用程序包翻译成高级语言程序
-
高级语言机器级M4
- 高级语言
- 高举语言程序经编译程序翻译成汇编语言(或中间语言程序,或机器语言程序)
-
汇编语言机器级M3
- 汇编语言
- 汇编语言程序经汇编程序翻译成机器语言程序
-
操作系统机器级M2
- 作业控制语言
- 一般用机器语言解释作业控制语句
-
传统机器语言机器级M1
- 机器指令系统
- 用微指令程序解释机器指令
-
微程序机器级M0
- 微指令系统
- 微指令由硬件直接执行
二、领会计算机系统设计的方法
- 由上往下:考虑如何满足应用要求,定好面向应用的那个虚拟机器级的特性和工作环境
- 由下往上:根据目前能用的器件,参照吸收已有的各种及其特点,将微程序机器级和传统机器级研制出来。
- 从中间开始:考虑到硬件、器件的现状和发展,又考虑到可能使用的算法和数据结构,定义好这个界面,确定哪些功能由硬件实现,哪些功能由软件实现。
三、理解系统结构为什么要求解决好软件的可移植性
- 需要重新分配软、硬件功能,充分利用硬、器件技术发展带来的好处
- 积累了大量成熟的软件,软件生产率低,软件排错比编写难
- 因此系统结构设计时,应在新的系统结构上解决好软件的可移植性问题
四、领会并行性的定义,并行性的二重含义和开发并行性的三种途径
1)二重含义
同时性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在 同一时间间隔内发生
2)并行性开发的三种途径
时间重叠:并行性概念中引入时间因素。如流水线,让多个处理过程在时间上相互错开,轮流重叠地使用一套硬件设备地各个部分,加快硬件周转
资源重复:并行性概念中引入空间因素。通过重复设置硬件资源来提高可靠性或性能
资源共享:用软件方法让多个用户按一定时间顺序轮流使用同一套资源来提高资源的利用率,如多道程序分时系统
重点
一、计算机系统结构、计算机组成和计算机实现三者的定义,各自研究的方面和内容
1)计算机系统结构
定义:系统结构是对计算机系统各级界面的定义及其上下的功能分配
研究方面:软、硬件之间的功能分配以及对传统机器级界面的确定,为机器语言、汇编语言程序设计者或编译程序生成系统提供使其设计或生成的程序能在机器上正确运行而应看到和遵循的计算机属性
2)计算机组成
定义:计算机系统结构的逻辑实现,包括机器级内部的数据流和控制流的组成以及逻辑设计
研究方面:机器级内部各事件的排序方式与控制结构、各部件的功能及各部件间的联系。在所希望达到的性能和价格情况下,怎样更好、更合理地把各种设备和部件组织成计算机,来实现所确定的系统结构。
3)计算机实现
定义:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分和连接,专用器件的设计,微组装技术,信号传输,电源,冷却装置及整机装配技术等。
研究方面:器件技术和微组装技术,其中,器件技术起着主导作用
二、软件和硬件的功能分配原则
-
原则1:应考虑在现有硬件、器件条件下,系统要有高的性能价格比,主要从实现费用、速度和其他性能要求来综合考虑
-
原则2:考虑准备采用和可能采用的组成技术,使之尽可能不要过多或不合理地限制各种组成、实现技术的采用
-
原则3:不能仅从“硬”的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的进展,还应从“软”的角度把如何为编译和操作系统的实现以及如何为高级语言程序的设计提供更多、更好的硬件支持放在首位。
三、软件可移植的途径、方法、适用场合、存在问题和对策
1.统一高级语言
问题:
- 不同用途要求语言的语法、语义结构不同
- 人们对语言的基本结构看法不一
- 同一种高级语言在不同厂家的机器上不能完全通用
- 语言习惯
对策:
- 长远来看必须解决
2.采用系列机
方法:在一定范围内不同型号的机器之间统一汇编语言,就可以在一定程度上解决汇编语言软件的移植。
必须保证向后兼容,力争向上兼容
- 向后兼容:以前的软件能运行在以后的机器上
- 向上兼容:低档机器的软件能运行在高档机器上
问题:要求汇编语言程序兼容的前提下,系统结构的发展有限。
对策:已积累的大量汇编语言应用软件资源不应轻易抛弃,但到一定时候,不能固守旧系列,而要发展新系列。
3.模拟和仿真
模拟:
- 方法:在一种机器上实现另一种机器的指令系统,即另一种机器语言
- 问题:模拟程序的编制非常复杂和费时。虚拟机的每条机器指令不能直接被宿主机硬件执行,需要经多条宿主机机器指令构成的解释程序来解释,是的模拟的允许速度低显著降低,实时性变差
- 场合:移植运行时间短,使用次数少,时间关系上没有受约束和限制的软件
仿真
- 方法:用微程序直接解释另一种机器指令系统
- 问题:微程序机器级结构深深依赖于传统机器级结构,当结构差别较大时,很难仿真,特别是I/O系统差别较大时。
选择:不同系列间的软件移植一般是仿真和模拟并行。频繁使用的,易于仿真的机器指令用仿真以提高速度,很少使用的,难以仿真的指令及I/O操作宜用模拟。
四、有无并行性的概念
1)执行程序角度:
- 各微操作间的并行
- 多条指令间的并行
- 多个任务或进程间的并行
- 多个作业或程序间的并行
2)处理数据角度:
- 位串字串
- 位并字串
- 位片串字并
- 全并行
3)加工步骤和阶段角度:
- 存储器操作并行
- 处理器操作步骤并行
- 处理及操作并行
- 指令、任务、作业间的全面并行
五、系统结构中开发并行性的途径和类型
时间重叠:并行性概念中引入时间因素。如流水线,让多个处理过程在时间上相互错开,轮流重叠地使用一套硬件设备地各个部分,加快硬件周转
资源重复:并行性概念中引入空间因素。通过重复设置硬件资源来提高可靠性或性能
资源共享:用软件方法让多个用户按一定时间顺序轮流使用同一套资源来提高资源的利用率,如多道程序分时系统
难点
一、透明性的判断与分析
1)定义
客观存在的事务或属性,从某个角度去看,却看不到,称这些事务和属性对它是透明的。透明了就可以简化这部分的设计,然而因为透明而无法控制和干预,就会带来不利。
2)对于计算机系统结构
透明:
- 存储器的模m交叉存取
- 数据总线宽度
- 阵列运算部件
- 通道采用结合型还是独立型
- PDP-11系列的单总线结构
- 串行、重叠还是流水控制方式
- Cache存储器
不透明:
- 浮点数据表示
- I/O系统是采用通道方式还是外围处理及方式
- 字符行运算指令
- 访问方式保护
- 程序性中断
- 堆栈指令
- 存储器最小编址单位
3)对于机器(汇编)语言程序员/系统结构
透明:
- 指令缓冲器
- 时标发生器
- 乘法器
- 主存地址寄存器
- 先行进位链
- 移位器
不透明:
- 指令地址寄存器
- 条件码寄存器
- 磁盘外设
- 通用寄存器
- 中断字寄存器