计算机技术的飞速发展得益于
层次 | 语言 | 备注 |
---|---|---|
微程序机器 | 微指令系统 | 物理机 解释 |
传统机器语言机器 | 传统的机器指令系统 | 仿真emulation 物理机 解释 |
操作系统机器 | 传统机器级指令&操作系统级指令 | 虚拟机 解释 |
汇编语言机器 | 汇编语言 | 虚拟机 翻译 |
高级语言机器 | C等 | 虚拟机 翻译 |
应用语言机器 | 面向具体应用问题的语言 虚拟机 翻译 |
语言的实现:翻译 translation /解释 interpretation,解释花时间多,但占空间少。
固件 firmware :具有软件功能的硬件。
经典定义:指传统机器程序员所看到的计算机属性,即概念性结构与功能特性。
透明性 transparency
广义定义:指令系统结构、组成、硬件。
计算机组成 organization:逻辑实现,包括物理机器级的数据流和控制流的组成以及逻辑设计。
计算机实现 implementation:计算机组成的物理实现。
也就是说,确定有什么底层功能,属于计算机系统结构,而逻辑上如何实现,属于计算机组成,硬件上如何实现属于计算机实现。
系列机:同一厂家生产的系统结构相同但组成和实现不同的一系列不同型号的计算机。
S:single M:multiplicity I: instruction stream D:data
最大并行度 P m P_m Pm为计算机在单位时间内能够处理的最大二进制位数。字宽n x 位片宽度m
平均并行度 P a = ∑ i = 1 T P i T P_a=\frac{\sum_{i=1}^TP_i}{T} Pa=T∑i=1TPi
平均利用率 μ = P a P m \mu =\frac{P_a}{P_m} μ=PmPa
程序控制部件PCU的个数k
算术逻辑部件ALU或处理部件PE的个数d
基本逻辑线路ELC的套数w
t=(k,d,w)
1.以经常性时间为重点
2.Amdahl定律 (考)
加速比 = 改进前的执行时间 改进后的执行时间 加速比=\frac{改进前的执行时间}{改进后的执行时间} 加速比=改进后的执行时间改进前的执行时间
改进后的执行时间 T n = T 0 ( 1 − F e + F e S e ) T_n=T_0(1-Fe+\frac{Fe}{Se}) Tn=T0(1−Fe+SeFe)
3.CPU性能公式
CPU时间=时钟周期数x时钟周期时间=指令条数xCPIx时钟周期时间
时钟周期数也可不用平均计算,而是加权和。
4.程序的局部性原理 principle of locality
时间局部性、空间局部性
1.执行时间和吞吐率
吞吐率:单位时间内完成任务数
执行时间=IO时间+CPU时间(用户CPU时间、系统CPU时间)
2.基准测试程序
benchmark suites 基准测试程序套件
3.性能比较
总执行时间、算术平均值、调和平均值、几何平均值
冯诺依曼结构:
改进:
软件兼容、可移植性的实现:
1.统一高级语言,如java
2.采用系列机
向上、下、前、后兼容
兼容机:不同公司产的,但是系统结构一样的计算机。
3.模拟和仿真
模拟:用机器语言解释执行
仿真:用微程序解释执行,更快,更局限
器件发展
应用发展
包含同时性+并发性
等级1:字串位串、字串位并、字并位串、全并行
等级2:指令内部并行、指令级并行(流水线技术、超标量)、线程级、任务级、作业级
在多处理机系统中,其并行性是通过硬件实现的,而非软件(操作系统的进程管理、作业管理等)。
1.时间重叠:流水线技术
2.资源重复
3.资源共享
耦合度:紧密耦合(直接耦合)、松散耦合(简介耦合)
萌芽->向量机的发展和鼎盛阶段->MPP->各种体系结构并存->机群
根据存储单元,分为:
ALU指令中的操作数个数:0~3
三种分型各有优缺点
寄存器寻址、立即数寻址、偏移寻址、寄存器间接寻址、索引寻址、直接寻址或绝对寻址、存储器间接寻址、自增寻址、自减寻址、缩放寻址、PC相对寻址
表示寻址方式的方法:
按整数边界存储信息
完整性、规整性(对称性、均匀性)、正交性、高效率、兼容性
无条件:跳转 jump
有条件:分支 branch
过程调用call
过程返回return PC相对寻址
三种表示分支的方法:
指令的优化就是确定指令字的编码方式,包括操作码和地址码。
1.哈夫曼编码
优化程度用信息熵衡量,这是理论最短平均编码长度。
但哈夫曼编码是变长的,采用【扩展操作码】改进。
2.等长扩展码
15/15/15法和8/64/512法等
只要遵守短码不能是长码的前缀即可。
3.定长操作码
RISC
可变长度编码格式
固定长度编码格式 RISC
混合型
指令格式简单统一,在单周期完成
数据表示:基本数据类型,硬件实现
数据结构:软件实现的结构
操作数类型的表示方法:
实验一:MIPS指令系统和MIPS体系结构
32个64位通用寄存器,32个64位浮点数寄存器。
只有立即数和偏移量寻址两种方式。
每个流水线的子过程称为流水线的级或段stage。段与段相互连接形成流水线,段数称为流水线的深度depth。
设计问题:
计算机系统等级不同划分:
功能划分:
同一时间内多功能流水线中的各段是否只能按一种功能连接方式工作:
是否存在反馈回路:
任务流入流出顺序是否相同:
采用了流水线技术的处理机称为:流水线处理机
如果具有向量数据表示和指令,则称:向量(流水处理)机
否则称:标量流水处理机
T P = n T k TP=\frac{n}{T_k} TP=Tkn,n是任务数, T k T_k Tk是处理n个任务所用的时间
1.各段时间相等的流水线
T P = n ( k + n − 1 ) Δ t TP=\frac{n}{(k+n-1)\Delta t} TP=(k+n−1)Δtn
T P m a x = 1 Δ t TP_{max}=\frac{1}{\Delta t} TPmax=Δt1 很难达到,需要极限
2.各段时间不相等的流水线
任务必须按最大时间间隔进入流水线
T P = n ( n − 1 ) m a x ( Δ t 1 , Δ t 2 , . . . , Δ t k ) + ∑ i = 1 k Δ t i TP=\frac{n}{(n-1)max(\Delta t_1,\Delta t_2,...,\Delta t_k)+\sum_{i=1}^k\Delta t_i} TP=(n−1)max(Δt1,Δt2,...,Δtk)+∑i=1kΔtin
T P m a x = n m a x ( Δ t 1 , Δ t 2 , . . . , Δ t k ) TP_{max}=\frac{n}{max(\Delta t_1,\Delta t_2,...,\Delta t_k)} TPmax=max(Δt1,Δt2,...,Δtk)n
消除瓶颈段方式:
S = 顺序执行时间 流水处理时间 S=\frac{顺序执行时间}{流水处理时间} S=流水处理时间顺序执行时间
各段时间相等的流水线 S = n k k + n − 1 S=\frac{nk}{k+n-1} S=k+n−1nk,n>>k时,S=k
利用率 = 设备实际使用时间 整个运行时间 利用率=\frac{设备实际使用时间}{整个运行时间} 利用率=整个运行时间设备实际使用时间
e = n k + n − 1 = E e=\frac{n}{k+n-1}=E e=k+n−1n=E ,最高效率=1
E = T P ∗ Δ t = S k E=TP*\Delta t=\frac{S}{k} E=TP∗Δt=kS,即实际加速比/最大加速比
E = n 个任务实际占用的时空图的面积 k 个段总的时空图的面积 E=\frac{n个任务实际占用的时空图的面积}{k个段总的时空图的面积} E=k个段总的时空图的面积n个任务实际占用的时空图的面积
单功能非线性流水线的最优调度
启动距离,预约表->禁止表->冲突向量->状态转换图->最优调度方案
多功能非线性流水线的最优调度
n个功能,则有n个初始冲突矩阵,冲突向量有 n 2 n^2 n2个,状态图也更复杂
取指周期IF
指令译码/读寄存器周期ID
执行/有效地址计算周期EX
存储器访问/分支完成周期MEM
写回周期WB
另一种时空图
两指令存在依赖关系
结构冲突 硬件资源不足
数据冲突
解决:
控制冲突
冻结/排空流水线,出现分支延迟
解决方法:
实验二:流水线和流水线中的冲突