指令系统
-
堆栈
push A push B ADD pop C
-
累加器
LOAD A ADD B STORE C
-
R-S
LOAD R1,A ADD R1,B STORE C,R1
-
R-R
- 只有store和add能访问内存
LOAD R1,A LOAD R2,B ADD R3,R1,R2 STORE C,R3
控制器的基本组成
- 取指令(PC)
- PC具有计数功能,$PC +1 \rightarrow PC$(1是指一个指令字节,实际可能加4,6等)
- 分析指令(Intruction Register)
- 执行指令(CU)
取数整个过程:
PC -> MAR ->存储体 -> MDR -> IR -> CU -> MAR(取指令数) -> 存储体 -> ACC
存数整个过程:
PC -> MAR ->存储体 -> MDR -> IR -> CU -> MAR(取地址) ->ACC -> MDR -> 存储体
机器字长
CPU一次能处理数据的位数
与CPU的寄存器的位数有关
运算速度
主频
-
时钟频率
每个时钟信号周期完成一步操作。并不是越高越快。
-
吉普森法 \(T_M = \sum f_i^{*}τ_i\) 其中$f_i$表示某种指令占全部操作的百分数,$τ_i$为其执行时间
Million Instruction Per Second
Cycle Per Instruction=$\frac{\mbox{测试程序的总时钟周期}}{\mbox{测试程序的指令总条数}}$
Instruction Per Cycle
Floating Point Operation Per Second
MFLOPS,GFLOPS,TFLOPS
加速比 \(\mbox{系统加速比}=\frac{\mbox{系统性能}_{\mbox{改进后}}}{\mbox{系统性能}_{\mbox{改进前}}} = \frac{\mbox{总执行时间}_{\mbox{改进前}}}{\mbox{总执行时间}_{\mbox{改进后}}}\)
-
大概率事件优先
-
Amdahi定律(考研题)
-
部件在计算机里越重要,加速比越大
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# 定义 # num_int 为程序int类型计算指令数 # num_int_cyc 为int类型计算平均周期数 num_int = 45000 num_int_cyc = 1 num_tran = 75000 num_tran_cyc = 2 num_float = 8000 num_float_cyc = 4 num_branch = 1500 num_branch_cyc = 2 computer_clock = 400000000 #MHz # 计算步骤 all_num=(num_branch+num_float+num_tran+num_int) all_clock_cyc = num_int*num_int_cyc + num_tran*num_tran_cyc + num_float*num_float_cyc +num_branch*num_branch_cyc # 变量计算 CPI = all_clock_cyc / all_num excution_time = all_clock_cyc / computer_clock MIPS = all_num / excution_time # 输出 print("CPI:",CPI) print("MIPS:",MIPS/1000000,"MHz") print("excution_timeT:",excution_time*1000,"ms") """ 输出结果: CPI: 1.776061776061776 MIPS: 225.21739130434784 MHz excution_timeT: 0.575 ms """
???授课PPT上的性能评价例题最后一题
-
-
系统加速比依赖于
-
可改进比例
可改进系统运算时间比例。60s的程序中有20秒运算,比例则为20/60.
-
部件加速比
-
芯片集成度:
- 物理极限
- 按几何级数递增的制作成本
提高访存速度的措施
-
采用高速器件
-
SDRAM(同步DRAM)
-
在系统时钟的控制下进行读出和读入
-
CPU无需等待
普通L
$T_1$:CPU -> AddrBus
$T_2$: CPU -> R/W
$T_7$:CPU -> DBus
$T_8$: R/W
…
而在$T_2$到$T_3$期间,原本有约定的等待时间,但在SDRAM上,CPU在这段等待时间内撤走,去做其他的事务
-
突发访问
-
-
DDR SDRAM
- 双倍数据率:在$T_7$的上升沿和下降沿都送一次数据
-
DDR2 SDRAM
- 相比DDR SDRAM引脚变成了两面
-
RDRAM (Rambus)
- 主要解决存储器带宽问题
-
带
Cache
的DRAM
-
-
采用层次结构 Cache-主存
-
调整主存结构
-
单体多字系统
- 增加存储器的带宽
-
多体并行系统
-
高位交叉、顺序编址
体号+体内地址
比如111101
,可以增加前两位(已经增加,为11),代表多体的编号,从而实现并行- 总线存取周期为T,连续存储4个字所需的时间为$nT$
-
低位交叉、各个个体轮流编址
- 解释:
111101
,最后两位代表位数 -
特点:在不改变存取周期的情况下,增加存储器的带宽(低位可以直接让其连续读,每+1都不在一个存储体内)
- 例题
- 四位低位交叉存储器,存取周期为T,总线传输周期为$\tau$,应满足$T=4\tau$
- 连续存储4个字所需的时间为$T + (4-1)\tau$
- 解释:
-
-
?双通道内存???,两根内存条, 服务器内存
高速缓冲存储器(Cache)
-
命中
- 主存块
调入
缓存 - 主存块与缓存块建立了对应的关系
用标记记录对应相应的存储块
- 主存块
-
未命中
- …
-
Cache
的命中率- 定义
-
关系
-
与Cache的容量和块长有关
-
一般每块可取4-8个字
-
-
Cache-主存系统效率的概念
-
Cache的基本结构
-
读
-
写
要保证Cache和主存的一致性
- 写直达法
- 既写入Cache又写入主存
- 写回法
- 写操作时只把数据写入Cache而不写入主存,当Cache数据被替换才写回主存
- 写直达法
-