微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 克服嵌入式CPU性能瓶颈

克服嵌入式CPU性能瓶颈

时间:11-12 来源:3721RD 点击:

过去几年,采用多线程或多内核CPU的微处理器架构有了长足的发展。现在它们已经成为台式电脑的标准配置,并且在高端嵌入式市场的CPU中也已非常普及。这种发展是想要获得更高性能的处理器设计师推动的结果。但硅片技术已经达到性能极限。满足不断提高的处理能力需求的解决方案,高度依赖于像在基于微处理器的系统级芯片(SoC)中复制内核处理器这样的架构化解决方案。

戈登.摩尔在1965年提出的摩尔定律指出,随着晶体管尺寸的缩小,每平方英寸硅片面积上可以集成的晶体管数量每两年会翻一番。当然,这个"定律"并不是一种物理规律,而是根据60年代和70年代对技术的观察经验得出的一个猜想。但它从第一次被提出到现在都非常准确--并且至少在下一个十年中有望延续其正确性。

摩尔定律一直能保持正确性的原因是,缩小芯片上元件尺寸的能力使得设计师能够不断提高处理器、存储器等器件中的晶体管密度。由于晶体管越来越小,设计师可以在处理器中增加更多的功能单元,并在相同面积上实现更加复杂的架构。

由于这种更高的密度,像分支预测或乱序执行等技术在现代处理器中已经很普及,虽然它们非常耗用资源。这些技术提高了每周期执行指令数(IPC),即提高了指令吞吐量,这是影响处理器总体性能的两大基本根源之一。更小的晶体管尺寸还可以支持更高的时钟速率。当晶体管的栅极长度缩短1/k时,电路延时也可以减少同样的量。随着电路延时的减少,晶体管开关时间也相应缩短,因此时钟速率可以提高k倍。处理器工作在更高频率可以提供更高的性能,但需要付出一定的代价。

然而,现在设计遇到了一些实际的限制。随着晶体管尺寸的进一步缩小,晶体管密度和芯片频率的提高显得非常有限,而影响越来越大。其中更高的功耗和更大的传输延时是最令人担心的两大因素,也是影响进一步发展的主要障碍。

芯片功耗

芯片功耗和相关的散热问题正在成为硬件设计师面临的一个巨大障碍。随着晶体管数量的不断增加,当前处理器在很小的面积上就需要相当大的能量。这意味着需要散发很高的功率密度。问题不仅在于晶体管的数量,高的工作频率对功耗也有很大的影响,下面还会讨论到。

为了对过去几十年中这些参数的演变有一个印象,图1显示了在20年时间内Intel的x86架构中晶体管数量和工作频率的增加情况,最早的数据来自80386架构--第一个32位x86处理器。



图1:X86架构中的晶体管数量和频率演变。

注意,上述两个参数都是用对数刻度标示的,这也表明了它们进步幅度之大。在功耗方面,图2显示了这些处理器的典型功耗演变情况,这次采用的是线性刻度。



图2:不同代X86处理器的功耗演变。

晶体管数量在持续增加,一些最新的Intel Core i7处理器中的晶体管数量已经超过22亿个。功耗也在缓慢增加,高的可达130W,当然这取决于具体型号。然而,这些新处理器的时钟频率却不再增加,保持在3.5GHz左右。

时钟频率停滞不前的原因之一是目前的集成电路已经达到功率密度的物理极限,产生的热量已经达到芯片封装能够散发的极限,因此硬件设计师必须限制频率的提高。Intel的确从未为功效而牺牲性能,但如今的物理限制使得他们只能在功耗上面做文章。

一些公式可以更好地展示频率和晶体管数量是如何影响芯片功耗的。一些简单的数学关系可以让我们清楚地看出为什么这些参数在当前设计中是如此重要。

下列公式显示了芯片功耗与工作频率和其它系数的关系。



这是用于当前集成电路的主流半导体技术--CMOS技术的功耗表达式。公式的第一部分(加数)是芯片的动态功耗(也就是晶体管开关时由容性负载充放电引起的功耗),代表芯片执行的有用工作。A是活跃系数,代表每个时钟周期中进行开关的晶体管比例(因为每个时钟周期中并不是所有晶体管都必须开关);C是晶体管的容性负载;V是电压;f是频率。

公式中的第2个加数是由于短时间短路电流(ISC)引起的少量动态功耗,这个电流是在有限的上升或下降时间t内从晶体管电压源流到地的电流。最后一个加数是静态功耗,即由于漏电流(Ileak)引起的功耗,这也是唯一在加电,但不活动的电路中存在的功耗。这种功耗适用于整个电路,与晶体管状态无关,因此该项中没有活跃系数。

从公式的第一项可以看出为何功耗只是呈线性增加,而频率呈对数增加,这是因为电压是二次方的关系。

工程师能够将这个电压从5V减小到1V以下,从而帮助他们控制住功耗同时不降低性能。遗憾的是,许多因素是相互影响的,工程师必须不断进行折衷。例如,想象一下我们想要通过降低最初设置在2V的电源电压来减小芯片的动态功耗(只考虑公式中的第一项)。如果我们能够将电源电压降低到1.7V,虽然电压只下降了15%,但功耗可以显著下降28%.然而,降低电源电压对电路的最大频率和晶体管的阈值电压(晶体管的导通电压)有副作用。



在我们这个例子中,如果阈值电压为0.5V,电路工作频率为4GHz,那么为了保持相同的工作频率,必须将阈值电压降低到大约0.32V.然而,这样做也许是不可行的,因为阈值电压依赖于一些技术参数,当超出一定的范围时,不改变半导体制造工艺是不可能继续减小的。如果不改变阈值电压,最大频率将降低到3GHz,降幅为25%.

另一方面,即使你能够降低电源电压和阈值电压并且不影响性能,但漏电流与阈值电压呈指数依赖关系:


电压VT是热电压,取决于绝对温度T.k是玻尔兹曼常数,q是电子上的电荷量。在常温时热电压值大约为30mV.当相比于热电压有较大的阈值电压时,漏电流效应可以忽略,但当阈值电压较小--大约在100mV左右时,漏电流效应就变得突出了。

另外,不仅热电压与温度有关,阈值电压通常也随温度变化而变化,这两种变化将叠加在一起共同影响漏电流。漏电流增加意味着静态功耗的增加,因此对于低电压值而言,电压降低技术存在一定的实用性限制。

图3显示了两个不同温度下的这些效应。T=300K的第一条曲线显示了与阈值电压的指数关系。T=330K的第二条曲线是考虑了阈值电压随温度变化因素下的估计数据。这样,横坐标仍然代表标称阈值电压,但晶体管的实际阈值电压因温度效应而偏向更低的值,因此对漏电流有较大的影响。


图3:阈值电压和温度对漏电流的影响。

漏电流还与绝缘栅厚度有关。当采用非常薄的栅极电介质时,电子可以穿过绝缘层形成隧道效应,进而形成隧道电流,导致高功耗。鉴于使用32nm及以下工艺时的实际栅极长度,这种效应在当前半导体技术工艺中是非常重要的。

当然,处理器内核并不是芯片中唯一耗能的器件。比如内存也消耗相当大的能量,现代处理器专门开辟了大块裸片区域来集成多级缓存。

工程师通常会应用多种设计技术来减少内存的漏电流或活动系数(功耗公式中的A系数),进而达到降低功耗的目的。

例如,缓存等级的层次化组织不仅可以改善数据访问时间,而且有助于降低消耗的功率,因为更小更近的缓存所需能量比更大更远的缓存要少。这种结构化解决方案在降低功耗的同时能保持性能不变。与这种想法类似,另外一个常用的解决方案是将内存组织成库的形式来提高效率。这种情况下可以只激活正在访问的库,从而节省能量。

然而,追求更高性能并不总是正确的做事方式。有时以一定的吞吐量代价来降低功耗就足够了。有些处理器专门用于特定的应用,它们总是做相同类型的运算,比如DSP.音频处理、数字滤波器或数据压缩算法是这些器件的典型应用,评估这些应用的指标是一次操作需要多少能量、这些处理器做这些运算需要花多长时间。

一个处理器如果在执行算法时一开始就比其它处理器花更多的时间但消耗更少的功率,那么最终就具有更高的能效值。衡量这种效率的一个指标是MIPS/W(每秒每瓦百万指令数)。虽然必须关注指标MIPS,但一般来说具有更高MIPS/W的器件被认为具有更高的效率,这对嵌入式设备特别是电池供电设备来说尤其让人感兴趣。事实上,如今在服务器和数据中心领域人们更乐意使用更高能效的处理器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top