冯诺依曼机特点
早期:存储程序、运算器为中心、集中控制。
现代:存储程序、存储器为中心,总线结构、分散控制。
器件发展
电子管->晶体管->小规模集成电路(SSI)->大规模集成电路(LSI)->超大规模集成电路(VLSI)。
器件划分
(1)非用户片:功能由制造厂商生产时确定。如逻辑类的门、触发器、寄存器、计数器、加法器;存储类的ROM。
(2)现场片:用户可在机器组装现场设定内容。如PROM、EPROM、FPLA。
(2.5)半用户片:用户可根据自己需求烧结成用户片,如PAL、GAL。
(3)用户片:完全按用户要求定制。
以上从上到下,生产性价比变大、设计成本变高。
提高机器速度的两大因素
(1)提高主频,(2)改进系统结构。主要是(2)的效应好。
计算机应用
数据处理、信息处理、知识处理、智能处理。
计算机系统功能模型层级
(0)硬联逻辑
(1)微程序控制(微指令由硬件直接执行)
(2)机器指令系统
(3)操作系统
(4)汇编程序
(5)高级语言编译或解释程序
(6)应用程序
(7)应用系统算法和数学模型
透明性
A对B透明,即B感觉不到A的存在。
不妨分个级,越往底层不透明的东西越多。画张图记录一下规则:
表格中绿色位置的事物,对蓝色位置的人员都不透明,对橙色位置的人员都透明。下面是具体表格:
人员类别 | 从该类人员,包括该人员及以下就已经不透明的东西 |
---|---|
应用程序员 | - |
高级语言程序员 | - |
汇编语言程序员 | 数据表示、运算指令、通用寄存器、条件码、中断字 |
机器语言程序员 | |
系统程序员 | 存储器容量、总线宽度、微程序、虚存 |
硬件设计和高级维修人员 | 主存地址寄存器、指令缓冲寄存器、cache、数据通路 |
计算机系统结构定义
对机器语言计算机的软、硬件功能分配和对界面的定义。
由程序设计者所看到的一个计算机系统的属性,即概念性结构和功能特性。
- 机器工作状态
- 信息保护
- 数据
计算机组成
计算机组成:计算机系统结构的逻辑实现。
- 确定数据通路的宽度
- 确定各种操作对功能部件的共享程度
- 确定专用的功能部件
- 确定功能部件的并行度
- 设计缓冲和排队策略
- 设计控制机构
- 确定采用何种可靠性技术
计算机实现
计算机实现:计算机系统结构的物理实现。
- 处理机、主存储器等部件的物理结构
- 芯片的集成度和速度
- 专用芯片的设计
- 器件、模块、插件、底板的划分与连接
- 信号传输技术
- 电源、冷却及装配技术,制造工艺及技术等
系列机
具有相同的系统结构,但组成和实现技术不同的一系列计算机。
软件的”上下”兼容和”前后”兼容
向上兼容(尽量):低档机器的机器语言级程序不加修饰运行在高档机器。
向下兼容:高档机器的机器语言级程序不加修饰运行在低档机器。
向后兼容(必须):系列机内,旧上市的机器的机器语言级程序不加修饰运行在新上市的机器。
向前兼容:系列机内,新上市的机器的机器语言级程序不加修饰运行在旧上市的机器。
模拟和仿真
模拟:用机器语言程序(2层级)解释实现程序移植的方法。A上模拟B,则A为宿主机,B称虚拟机。
仿真:用微程序(1层级)去解释另一机器指令实现程序移植的方法。A上仿真B,则A为宿主机,B称目标机。
模拟慢但通用。适合运行时间短,使用次数少的程序。
仿真快但限制多。适合系统结构差距小,不需I/O和存储系统的机器间。
实现程序移植的主要途径
- 统一高级语言
- 模拟
- 仿真
- 系列机
软硬件取舍的价格因素
硬件单机上价格:
软件单机上价格:
计算机系统设计的定量原则
加快经常性事件的速度,即加速使用频率较高的事件的速度。
Amdahl定律
系统中某部件速度加快后,整个系统性能的提高与其使用频率和占总执行事件的比例有关。我认为Amdahl定律非常片面,但是用在考察程序的执行速度上却非常合适。
一些需要知道的量:
改进后整个任务执行时间 Tn= T n = :
改进前后整个系统的加速比 Sn= S n = :
CPU性能公式
若多种CPU指令的CPI各自是 CPIi C P I i ,相应的指令条数各自是 Ii I i ,则CPU时间=:
反过来,用指令的比例为 CPIi C P I i 加权可以计算平均时钟周期数:
指令执行速度
引入每条指令所需的平均时钟周期数CPI的倒数——每个时钟周期平均能执行的指令数IPC。
则可以用
∗IPS
∗
I
P
S
如
MIPS
M
I
P
S
、
GIPS
G
I
P
S
、
TIPS
T
I
P
S
表达指令执行速度,即每秒能执行的指令数,第一位数字仅仅代表单位,显然:
计算机系统的设计基准点
自上而下:适合专用计算机的设计。
自下而上:完全是早期计算机的设计。
从中间向上下(目前比较好的方法):
Flynn分类法(计算机系统结构分类)
指令流:机器执行的指令序列。
数据流:由指令调用的数据序列。
多倍性:在系统受限的部件上,同时处于统一执行阶段的指令或数据的最大个数。
(1)单指令流单数据流(SISD):指令部件一次只对一条指令进行译码,并且只对一个执行部件分配数据。
SISD如IBM360。
(2)单指令流多数据流(SIMD):所有处理单元PU接受从控制部件CU传来的同一条指令,但操作对象却是不同数据流的数据组。
SIMD如并行处理机(阵列处理机)、相联处理机。
(3)多指令流单数据流(MISD):每个PU接收不同的指令,往往来自不同CU,操作的却是同一个数据流及其派生数据流,每个处理器的输出结果是下一处理器的输入。目前没有实际机器是MISD的。
(4)多指令流多数据流(MIMD):n个处理机之间相互作用,所有数据流均来源于由全体处理机共享的一个数据空间(紧密耦合),也可以来源于共享存储器的不相邻子空间(松散耦合,或称MSISD)。
紧密耦合MIMD如IBM3081/3084,松散耦合MIMD如D-825,Cmmp,CRAY-2。
最大并行度
最大并行度:计算机系统在单位时间内理应能处理的最大的二进制位数。
平均并行度
平均并行度:对多个时钟周期内能处理的二进制位数
Pi
P
i
的观测。
平均利用率
平均利用率:因为
Pm
P
m
是理论上的,
Pa
P
a
是测出来的,这个值实际上就是反映了现实于理论的比例。