Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1997411
  • 博文数量: 433
  • 博客积分: 918
  • 博客等级: 准尉
  • 技术积分: 3218
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 18:21
个人简介

你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o

文章分类

全部博文(433)

分类:

2012-04-02 22:30:44

摘要 随着半导体工艺的飞速发展和芯片工作频率的进步,功耗已经成为深亚微米集成电路设计中的一个重要考虑因素。本文先容了低功耗微处理器的研究现状,讨论了几种常用的微处理器低功耗设计技术。最后,对夸后低功耗微处理器设计的研究方向进行了展看。
关键词 微处理器功耗低功耗芯片设计


随着半导体工艺的飞速发展和芯片工作频率的进步,芯片的功耗迅速增加,而功耗增加又将导致芯片发热量的增大和可靠性的下降。因此,功耗已经成为深亚微米集成电路设计中的一个重要考虑因素。为了使产品更具竞争力,产业界对芯片设计的要求已从单纯追求高性能、小面积转为对性能、面积、功耗的综合要求。而微处理器作为数字系统的核心部件,其低功耗设计对降低整个系统的功耗具有重要的意义。
2000年年初,Transmeta公司推出了 Crusoe处理器,以其独特的低功耗设计技术和非凡的超低功耗表现,在业界引起巨大轰动,引发了低功耗处理器设计的激烈竞争。
在2006年的英特尔开发者论坛大会(Intel DeveloperForum)上,英特尔展示了多款基于下一代技术的微处理器。其中,Metom主要用于笔记本电脑,最大功耗仅有5W,而将于2006 年底上市的超低电压版Merom的功耗则只有0.5W;Conroe主要面向台式机,其最大功耗为65W,远远低于现有Pentium 4处理器的95W;服务器处理器Woodcrest的最大功耗为80W,而现有的Xeon处理器的功耗为110W。
本文首先先容了微处理器的功耗来源,重点先容了常用的低功耗设计技术,并对今后低功耗微处理器设计的研究方向进行了展看。

1 微处理器的功耗来源
研究微处理器的低功耗设计技术,首先必须了解它的功耗来源。高层次仿真得出的结论如图1所示。

从图1中可以看出,时钟单元(Clock)功耗最高,由于时钟单元有时钟发生器、时钟驱动、时钟树和钟控单元的时钟负载;数据通路(Datapath)是仅次于时钟单元的部分,其功耗主要来自运算单元、总线和寄存器堆。除了上述两部分,还有存储单元(Memory),控制部分和输进/输出 (Control,I/O)。存储单元的功耗与容量相关。
如图2所示,CMOS电路功耗主要由3部分组成:电路电容充放电引起的动态功耗,结反偏时漏电流引起的功耗和短路电流引起的功耗。其中,动态功耗是最主要的,占了总功耗的90%以上,表达式如下:


式中:f为时钟频率,C1为节点电容,α为节点的翻转概率,Vdd为工作电压。

2 常用的低功耗设计技术
低功耗设计足一个复杂的综合性课题。就流程而言,包括功耗建模、评估以及优化等;就设计抽象层次而言,包括自系统级至版图级的所有抽象层次。同时,功耗优化与系统速度和面积等指标的优化密切相关,需要折衷考虑。下面讨论常用的低功耗设计技术。
2.1 动态电压调节
由式(1)可知,动态功耗与工作电压的平方成正比,功耗将随着工作电压的降低以二次方的速度降低,因此降低工作电压是降低功耗的有力措施。但是,仅仅降低工作电压会导致传播延迟加大,执行时间变长。然而,系统负载是随时间变化的,因此并不需要微处理器所有时刻都保持高性能。动态电压调节DVS (Dynarnic Voltage Scaling)技术降低功耗的主要思路是根据芯片工作状态改变功耗治理模式,从而在保证性能的基础上降低功耗。在不同模式下,工作电压可以进行调整。为了精确地控制DVS,需要采用电压调度模块来实时改变工作电压,电压调|

示功能的应用平台来说,此层也可以大量调用硬件提供的功能函数(经输出硬件无关层包装后的接口),从而实现特殊的作图效果。GUI在结构上提供了这种灵活性。作图治理层向上以作图原语集的形式为应用提供调用接口。
定时器:根据系统时钟来为应用提供计数信息。
资源治理:主要对字体、图片和调色板等进行治理,需要实现资源的存储以及为应用提供适当的接口两大功能。
对象治理:采取公道的机制来组织在屏幕上显示的对象。GUI把所有能在屏幕上显示的GUI元素称为“对象”,并通过对象树、Z序和剪切域等机制来实现对象的治理。窗口核心层还为应用提供了添加、删除、隐躲对象等操纵接口函数。
1.3 应用接口层
应用接口层封装了GUI为用户提供的一切接口,应用程序看到的GUI就是此层提供的所有接口函数,包括工具箱、作图原语集和对象操纵集等3部分。
工具箱:GUI为用户提供的控件集。这部分的大小是可根据应用的需要调整的,从而也在较大程度上影响了GUI库的大小。常用的控件有按钮、转动条、窗口和编辑框等。
作图原语集:作图治理层提供的绘图函数接口。工具箱也是在它的基础上实现的。
对象操纵集:主要实现GUI对象的添加和删除等操纵功能。

2 多任务GUI关键技术分析
本文中提到的“任务”,在同一个地址空间执行并且可以无约束地直接访问所有的共享资源。下面对多任务GUI设计中的关键技术进行分析。
2.1 多任务调度策略及治理
多任务系统需要一个公道的任务调度策略来治理所有的任务。启动GUI后,会默认产牛一个系统任务、一个事件任务和一个定时器任务;而应用任务的产生则要根据具体的用户需求。
(1)系统任务
桌面对象运行的任务称为“系统任务”。系统任务是整个图形用户系统运转的核心。它不断地从系统的主消息队列中取消息,并按消息的目的和用途将其派发到对应的目的任务;同时负责所有应用任务的治理和维护以及桌面治理等事务。一个系统中仅有一个系统任务。
(2)事件任务
事件任务负责收集外部事件,并将事件解释为与之对应的GUI消息,并放进系统的主消息队列中。用户的输进正是从这里传人GUI核心进行处理。一般情况下,一个系统中仅有一个事件任务。
(3)定时器任务
定时器任务是通过操纵系统的系统调用产生GUI定时器的。
(4)应用任务
除系统任务之外,窗口所运行的其他任务称为“应用任务”。应用任务是用户程序运行的基本单位。应用逻辑都在此任务中运行,拥有自己的消息队列,接收来自 GUI核心的消息,按一定规则独立进行消息循环。应用任务通过消息与系统任务交互,受系统任务的治理;通过应用接口层使用系统的软硬件资源。应用任务的上限数目仅受平台的资源数目限制。
在嵌进式GUI中,系统任务被赋予最高的优先权,其他任务可使用低于系统任务优先级的不同优先级;相同优先级应采用时间片轮转方式运行。总之,假如有必要,则嵌进式GUI系统会同时采取时间片轮转和优先级抢占的任务调度策略,如图3所示。

在没有消息到达或者在等待某个事件时,任务需要将自己挂起。一旦有消息进进消息队列,任务将会被唤醒以处理消息。这样,有限的CPU资源就能够被充分地利用。
此外,系统任务维护一个用于跟踪及治理应用任务的列表。每一个应用任务对应一个包含其属性信息的任务信息块。任务属性包括消息队列指针、任务句柄和任务进口等,对指定任务进行了具体的描述。一个信息块的创建与销毁必须与应用任务的创建与销毁保持同步。系统任务必须维护该列表,以保证这些信息块的正确性。多任务治理机制如图4所示。
对用户来说,只需要简单地指定任务的进口和优先级(假如有必要的话),其他所有的工作都由系统任务自动完成。采用这种调度和治理方法,能使系统变得更加易用和高效。
2.2 消息驱动机制
消息机制的提出

特殊的组件,这些组件可以让开发职员把JTAG扫描链分割成多个功能组,并通过唯一的地址来访问每个功能组。这是一种多支路(multi-drop)架构,经常被用于底板(Backplane)环境之中。在这里,有一个分别可编址的扫描链在底板内实现路由(Routed),从而使机箱中的每个底板都拥有自己专属的扫描链。这种架构的运行速度受限于可编址扫描端口的速度,最典型的情况是25MHz。

拥有先进多核调试工具

WindRiver拥有的JTAG加速器和服务器技术可以明显降低JTAG序列包之间的空闲时间,完全充分地利用了可用的JTAG带宽。与JTAG有关的另一个题目涉及到调试能力,例如用停止请求信号来立即停止某个内核,或者用停止指示信号来停止某个内核并同步其他的内核的停止。与其他所有的局限性一样,这类题目也依靠于厂商的实现方法。

WindRiveron-chipdebugging(片上调试)解决方案可以同时启动和停止多个内核。实际上,WindRiver提供的JTAG解决方案,也就是WorkbenchOn-ChipDebugging,是以集中化的方式来实现多核和多处理的调试功能。这个解决方案可以在单一扫描链(ScanChain)中同时调试多达8个内核。而窃冬不管这些内核处于同一个芯片之中、分布在线路板中的多个芯片或者分布在复杂系统中的多个线路板之中,WorkbenchOn-ChipDebugging都能够应付自如。

在WindRiver的多核解决方案中,开发职员可以同时停止或者启动任何内核,在一个或者多个内核上设置断点,其中还可以包括条件断点。此外,WorkbenchEclipse框架和基于代理的调试方式使开发职员在单一控终龚上即可治理多内核/多处理应用的开发。开发职员可以在JTAG调试和基于代理调试二者之间灵活地选择,例如在硬件Bring-Up、内核、中间件和其他应用功能调试的时候采用JTAG连接,然后在自己以为适当的时机平滑地转移到基于代理的调试,而这些调试工作都是围绕着同一个应用的。这些能力都会增加不同开发职员之间的协同能力,同时改善异常题目的判定效率。

结论

在多核开发中,JTAG调试可以承担非常有价值的角色,有效地改善“编辑-编译-调试”周期时间。然而,实现这一点的条件是把JTAG调试与基于标准的集成化开发环境(例如Eclipse)紧密地集成起来。最理想的技术方案是,在DaisyChain中采用遵从IEEE1149.1JTAG标准的单一的JTAG调试器,而JTAG的主要作用是改善系统的吞吐能力和性能。



(

Simple Methods Reduce Input Ri

运算放大器应用设计的几个技巧

阅读(2079) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~