常用性能评价指标执行时间CPUTime峰值速度Peak

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《现代微处理器—90分钟简介》学习报告-蒋林洋

常用性能评价指标:执行时间(CPU Time)、峰值速度(Peak Performance)、负载(load)开销(overhead)、利用率(utilization ratio)、饱和性能(saturate performance)、带宽(bandwidth)、延迟(latency)、吞吐率(throughout)、加速比(speedup)、Amdahi 定律(amdahi law)、效率(efficiency)、基准测试(benchmark)、响应时间(response time)等等

1、CISC计算机指令集结构的功能设计

目标:增强指令功能,减少指令的指令条数,以提高系统性能

面向目标程序的优化,面向高级语言和编译器的优化

对大量的目标程序机器执行情况进行统计分析,找出使用频度高,执行时间长的指令或指令串

对于那些使用频度高的指令,用硬件加快其执行,对于那些使用频度高的指令串,用一条新的指令来代替它

2、RISC计算机指令结构的功能设计

通过简化指令系统,用最高效的方法实现最常用的指令

充分发挥流水线的效率,减少CPI

硬件方面:硬布线控制逻辑,减少指令和寻址方式的种类,使用固定格式,采用

Load/Store,指令执行过程中设置多级流水线。

软件方面:十分强调优化编译的作用

1、流水线技术

(一)流水线技术要点

流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率

流水线中的瓶颈——最慢的那一段

多个任务同时执行,但使用不同的资源

其潜在的加速比=流水线的级数

流水段所需时间不均衡将降低加速比

流水线存在装入时间和排空时间,使得加速比降低

由于存在相关问题,会导致流水线停顿

(二)充分利用数据通路

当前指令执行时,启动下一条指令

(三)性能受限于花费时间最长的段

解决办法:

串联:将最慢段进一步划分

并联:增加部件

(四)更深的流水线、超流水

目的:可以让处理器跑在更高的主频下,处理器在每秒内完成的指令数目会更多。

(五)多发射、超标量

目的:并发执行多个指令,每条指令都由其分配到的功能单元负责

(六)指令依赖与延时

后果:较深流水线的处理器会被插入更多的气泡,相互依赖的指令不能并行执行,没办法多发射了,处理器效率低。

(七)分支与分支预测

背景:指令中存在如条件等指令,所以必须等到条件分支指令抵达执行级才能最终确定,但对于较深流水线处理器而言,这就需要好多个时钟周期了,这样会使处理器效率变低。

解决:编译器可能可以在分支指令处做一些标志,从而高速处理器应该走哪条路。

这被称为静态分支预测。

或者让处理器可以在运行时做出猜测。

还有就是通过基于断言的分支消除技术,消除分支。

2、指令调度、寄存器重命名与乱序执行

背景:分支和长延时指令会造成流水线气泡,可以让空出来的时钟做些其他的工作,在某条指令等待的时候,对程序中其他指令进行乱序处理,使之可以执行。

目的:充分利用处理器的功能单元。

解决:一种方法是通过硬件在运行时实现乱序。

另外一种实现乱序的方法是:通过编译器优化代码,并重新排布指令。

这里出现了一个问题?OoO的硬件可以挖掘更多的指令级并行度,因为很多事儿只有在运行时才能被触发(无法事先预计,比如cache缺失事件)。另一方面,简单的顺序处理器设计可以实现更小、功耗更低的核,这就使得我们可以在相同大小的硅片上放上更多的顺序核。那么问题来了,您是愿意用个4的nb核呢,还是愿意用8个简单的顺序核呢?

3、多线程、超线程与多核

背景:通过超标量执行方式挖掘指令级并行度的方法并不太好,因为绝大多数普通应用中没有那么多细粒度并行度可供挖掘。如果在被执行的程序中不存在额外的独立指令,则可

能存在另外一类独立指令的来源:即其他执行的程序(或者同一个程序中的其他线程)。

核心的想法:利用有用的指令填充流水线中的气泡,但这一次,有用的指令不在来自于同一个程序中,而是来自于并行执行的多个线程(注意这些线程都在同一个处理器核上运行)。因此,从系统来看SMT处理器就像是多个独立的处理器,与真多核系统非常类似。

4、设计更多的核还是更宽的核?

非常宽的超标量处理器设计相对于芯片面积和时钟频率而言,scaling效果非常差。其中最主要的问题是:复杂的多发射dispatch逻辑与发射宽度之间存在2次方,甚至指数型scaling。此外,非常宽的超标量设计需要较高的多端口寄存器和cache。上述这些因素不仅会增加面积,还会在电路级大幅增加互联线的数目,从而导致处理器的时钟频率上不去。因此一款10发射的处理器事实上会比2个5发射的处理器面积更大、速度更慢。从电路设计的角度来看,20发射的SMT处理器基本不可行。

5、存储系统

存储系统主要讲cache(提高访存速度)和虚存技术(提高主存容量)。

Cache与虚存技术的区别

目的不同:Cache是为了提高访存速度,虚存技术是为了提高存储容量

替换的控制者不同:Cache失效由硬件处理,虚存技术的页失效通常由OS处理

一般页失效开销很大,因此替换算法非常重要。

存储层次结构

(一)cache查找方法

查找时,只需比较 tag,index无需参加比较

主存地址格式

Cache结构中主存地址格式:Cache Tag放在高位段,Cache Index放中间,字节选择位放在低位段

Cache Tag Cache Index Block offset

Cache标记块地址块内地址

Cache地址格式

块地址Block offset

(二)Cache失效

如果程序执行时,所需块由于容量不足,不能全部调入Cache,则当某些块被替换后,若又重新被访问,就会发生失效。

可能会发生“抖动”现象

相关文档
最新文档