欢迎来到天天文库
浏览记录
ID:13321877
大小:257.50 KB
页数:13页
时间:2018-07-22
《现代超标量处理器的减少能耗技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、现代超标量处理器的减少能耗技术摘要:现代超标量处理器利用各种技术提高性能的同时,还需要尽量减少处理器的能耗.本文从现代超标量处理器指令执行的各个阶段出发,介绍了当前常用的减少能耗技术,并对这些技术作了简要的分析和比较.关键词:超标量处理器;能耗;指令执行13131引言超标量处理器已经成为现代处理器的主流。现代高端处理器必须以一种高效能的方式提供高性能,尤其是高密集高性能的服务器,更需要高效利用能源。然而,随着处理器调度机的复杂度增加,指令执行的流水线长度不断扩大,虽然处理器性能也不断提高,但当前处理器的设计都面临一个不可避免的能耗问题。高能耗会严重
2、影响服务器的可扩展性,操作代价以及可靠性。因此,无论是服务器还是笔记本电脑,都需要高效能高性能的处理器作为芯片。尤其是笔记本电脑,处理器的能耗与电池的寿命直接相关[1]。2超标量处理器2.1超标量处理器简介超标量这一术语最早是在1987年提出的,它指的是为改善标量指令执行性能而设计的机器。与此相对照的是向量处理器。大多数应用中,大量操作都是对标量进行的。因此,超标量方法代表了高性能通用处理器发展的下一步。超标量方法的本质是,在不同流水线中不相关地执行指令的能力。此概念可进一步发展为,允许指令以不同于原程序顺序的次序来执行。超标量处理器是一种使用多条
3、相互独立的指令流水线的处理器。每条流水线由多个阶段组成,因此每条流水线能同时处理多条指令。多流水线引入了新一级并行性,允许同时处理多个指令流。超标量处理器开发了这种表示程序指令并行执行度的指令级并行性。过去20年,流水线的深度从1(Intel286处理器)增长5(Intel486处理器),然后又增长到10(Intel奔腾Pro处理器),后来又增长到近些年的40(Intel奔腾4处理器)。今后,流水线的深度还会继续增加以开发更多的指令级并行。13超标量方法依赖于并行执行多条指令的能力。指令级并行性指的是程序指令能并行执行的程度。硬件技术与编译器优化技
4、术的结合能够达到最大程度的指令级并行性。然而,超标量器处理器执行指令时,指令之间一般有如下三种相关性:数据相关,名字相关和控制相关。若两条指令是相关的,则它们无法并行执行,而只能以顺序的方式执行。正是由于指令之间的这种相关性,超标量处理器每次取多条指令,然后试图找出几条彼此不相关因而能够并行执行的指令。如果一条指令的输入取决于前面指令的输出,则这条指令不能同时更不能先于前面指令完成执行。一旦这种相关性被证实,处理器可以以不同于原来代码的顺序发射和完成指令。2.2超标量处理器的结构13在超标量微处理器中,指令首先从指令cache中取得,然后访问BTB
5、(转移目标缓存,用来存放转移后继指令的预测地址),最后调度机把指令放人指令窗口中等待发射。每个周期可发射指令都有个最大的指令数,即发射频率,也称为超标量微处理器的度。图1所示的超标量微处理器的指令窗口为深度N,度为M。N(M)度是超标量处理器中的一个很重要的概念,是衡量超标量微处理器性能的一个重要指标。为了增加发射指令的组合,执行单元的数目比处理器的度要大。事实上,为了提高性能,现代超标量处理器的度一直有增大的趋势。图1超标量处理器的一般结构2.3指令执行过程从图2可看出,超标量处理器指令执行的各个阶段如下:首先,取指单元从指令cache中取指令,
6、并且在一个时钟周期内利用转移预测器(一般是BTB,即转移目标缓存)来预取指令;其次,指令进入译码阶段(寄存器重命名,寄存器重命名能消除WAR和WAW数据冲突);第三,指令进入发射阶段,一旦指令的操作数准备好,指令就进行唤醒和选择操作;最后,指令读取寄存器文件,并进入流水线执行。图2超标量处理器的指令执行过程3超标量处理器的能耗分析3.1总体能耗分析超标量处理器取指机制和指令进入流水线的频率和准确度都对处理器的性能和能源利用率产生很大的影响。由于处理器的前端负责程序控制流的预测和取指令,所以超标量处理器的设计更多地致力于前端的处理机制。由于传统的指令
7、传送机制指令预测过少,没有完全开发出ILP(指令级并行)的能力,所以严重影响了处理器的性能。另一方面,过多的指令预测导致指令传送在执行错误预测的指令方面浪费了大量的能源,因为刷新进入错误转移的流水线的代价非常大。此外,指令流水线的深度增加,指令发射窗口的增大,以及相应越来越复杂的唤醒和选择操作,都不同程度地增加了处理器的功率。3.2指令传送的主要耗能阶段从超标量处理器的指令执行过程中可看出,除了不可避免的时钟耗能外,指令传送路径上的指令发射单元及其相关的操作是最耗能的。13因为随着发射队列长度的增加,唤醒并选择发射队列里的指令就会更加复杂,从而导致
8、更多的能源消耗。此外,由于取指单元获取指令时都要访问BTB,于是就有可能产生错误的指令流水线,从而导致大量的能量消耗在执行
此文档下载收益归作者所有