Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3150130
  • 博文数量: 117
  • 博客积分: 10003
  • 博客等级: 上将
  • 技术积分: 5405
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-23 09:34
文章分类

全部博文(117)

文章存档

2011年(1)

2010年(10)

2009年(69)

2008年(37)

分类: LINUX

2008-03-01 21:57:18

许多芯片设计师正在寻求一种可以替代超标量结构体系的设计方法。虽然采用管线和缓冲技术能使超标量处理器的性能得到一定程度的提升,但这种设计方法明显已经过时。而不断得到发展的超长指令字(VLIW)结构近来得到了设计师们前所未有的欢迎,本文介绍其发展趋势和面临的挑战。

Alexander Wolfe
总编辑
《嵌入式系统编程》
Email:awolfe@cmp.com

VLIW的特点是它能从应用程序中提取高度并行的指令数据,并把这些机器指令均匀地分配给芯片中的众多执行单元。实际上采用VLIW技术的芯片设计要比相应的超标量设计简单得多,采用VLIW后,花少量的力气能做更多的事。

典型的VLIW芯片中具有上文提及的数量众多的执行单元,这些执行单元被布放在整齐的网格上,在每个时钟周期内能执行多条指令。不过下文我们将会看到,VLIW还需要智能化的编译软件配合以安排这些指令的执行。

关于VLIW技术可以追朔到80年代早期,当时许多微型计算机公司,其中最有名的要数Cydrome和Multiflow公司,联合起来企图设计出基于VLIW的大型系统。但该技术当时没有得到过充分认证,也没有广泛的市场基础,因此这次尝试以失败告终。

虽然如此,上述公司的一些主要设计师一直没有停止过VLIW技术的研究工作,他们默默无闻地做着技术改进工作。同时他们还招聘了许多硬件和软件工程师专职从事VLIW的开发工作,由此也可看出软件与硬件在VLIW设计中具有同等的重要性。(VLIW开发一直是在惠普实验室的Josh Fisher和Robert Rau领导下进行的)。

今天,VLIW芯片技术的研究成果已经展现在我们面前,无论是服务器领域,还是桌面领域或嵌入式领域都呈现了VLIW技术的勃勃生机。而对于嵌入式设计师来说,重要的是必须能区分大型VLIW和小型VLIW,因为目前的VLIW技术实现作为获得更佳性能的一种手段似乎仍遵循着发明者最初的想法-简单化。

实际上,英特尔公司的EPIC IA-64结构最能体现大型VLIW的特点,它要比该公司生产的同类32位系列微处理器复杂得多。虽然这里不对它作详细讨论,但这是千真万确的。

由于VLIW在嵌入式应用中有上佳的表现,市场上已经出现了好几种采用VLIW技术的最新处理器。首先进入市场的是具有VLIW概念的媒体处理器,比如飞利浦公司的TriMedia和Chromatic公司的Mpact媒体引擎。

紧随其后,德州仪器公司(TI)也发布了基于VLIW技术的称为VelociTI的C6X系列数字信号处理器(图1),该处理器主要用于蜂窝电话及相关设备。为了使潜在用户确信芯片的C编译器能将并行指令数据发送给DSP,TI公司花费了大量的时间与精力。在C6X系列处理器发布一年后,TI的努力终于取得了巨大成效。在DSP领域,还有其它竞争厂家如Ananlog Devices和StarCore(后者是摩托罗拉公司与朗讯公司的一家合资公司)也先后加入了VLIW阵营。

而在做传统嵌入式系统设计的厂家中,也许要数Transmeta公司推出的Crusoe系列处理器最值得关注了。

VLIW技术的发展趋势

展望未来,VLIW将会在嵌入式芯片设计中扮演重要角色。当然,也会面临来自系统级芯片、DSP和多内核芯片的挑战。值得注意的是,这并不是非它即你的唯一选择,因为一个采用VLIW技术的设计同样也能通过系统级芯片技术来完成。

那么VLIW芯片究竟是如何实现的呢?结构(或理论)上的描述相对来说比较简单,但真正实现起来还有许多困难(就是说,在家中尝试做这样的工作是不现实的)。

VLIW芯片的基本原理与超标量芯片截然相反,建立VLIW处理器时不需要花费太多的时间和硅片来决定做什么和什么时候做,所需的硬件只要能完成简单的计算就能在每个时钟周期执行大量的操作。

因此根据VLIW支持者的观点,VLIW芯片的布局结构会更加合理。比如说,片上的单元是可重复利用的(多重运算单元),单元相互间排列非常整齐,并且靠得很紧密。

另外一个优点是,与超标量处理器相比VLIW处理器的硬件设计周期会缩短很多。然而VLIW技术的根本优点还在于这样的事实:它具有足够的智能来安排并行指令数据的执行。根据定义,术语VLIW是指一个宽-位-长的字,该字中必须预先封装入不同的命令或操作码,并且在下一个时钟周期由VLIW处理器并行执行所有的指令。也就是说,在做VLIW设计时设计师可以预先知道可以并行处理的任务,并直接指示硬件去并行执行。

这种指令的安排是由被称为跟踪调度(trace scheduling)的编译器完成的。这样的编译器综合了多种技术,通过大量可能分支预测出数量巨大的操作顺序,最终完成并行任务的执行调度。

而超标量芯片的指令安排都是在运行期间进行的,因此VLIW具有无可比拟的优势。由于在一条VLIW指令的执行过程中,数据打包与调度都由编译器预先做好了,因此无需在运行期间做出最终的调度,而这样的调度需要在关键路径上耗费大量的硅片空间和时间。

那些反对VLIW的人认为,能够有效调度这么多并行指令的任何编译器都将是十分复杂而且难以编写。单从这一点来看,确实很难说他们是对还是错,因为VLIW软件(称为编译器)的绝大部分要比它所控制的硬件落后好几年(DSP是例外)。只有VLIW编译软件达到了所要求的完善程度,VLIW才能生存下来并得到发展,否则它只是二十几年后的一场梦。

不过,一些著名的计算机专家相信他们已经克服了最佳跟踪调度编译器设计中的大部分难题。另外,不断有编译器编写人员接受跟踪调度研究机构如Rice大学、Cornell大学和史丹弗大学的培训,并即将学有所成。事实上,这些人中有一些正在Fisher领导下的小组工作,另外一些在惠普实验室Palo Alto工作组的Rao领导下工作。IBM公司位于Yorktown Heights的研究中心也在悄悄地从事着VLIW的开发。任何想测试其代码的人都可以上网免费下载被称为Trimaran编译器的实验型编译器。

VLIW技术面临的挑战

尽管VLIW具有很多优点,但它仍有一个致命的弱点使其尚不能走出实验室进入实用领域。这种弱点表现为在单一格式下不能提供与已有芯片兼容的目标代码。举例来说,一个带3个执行单元的VLIW处理器不能兼容于带5个执行单元的处理器,同样,这二种处理器都不能兼容带10个执行单元的第三种处理器。

虽然解决这一兼容性问题的进程在过去几十年中进展非常缓慢,但目前已有所突破。事实上,Transmeda公司设计的Crusoe芯片之所以这么受青睐就是因为它采用了代码形态技术CMT(code morphing technology),从而使它能运行x86代码。

目前,围绕着是否尽快将该技术投入实际使用以及如何使它成为主流技术的问题仍有不断的争论。支持者坚信VLIW会给那些一开始就具有大量内含并行指令的应用带来良好的收益,特别是当它用来处理像素和声音时将更加得心应手。实际上,多媒体应用是最有可能获益的重要领域。

但是,VLIW还面临着若干技术性挑战,最重要的挑战莫过于如何解决预测出错的问题,这种问题常发生在处理器在程序分支前预先处理了某条指令,并希望该指令确实需要执行。然而,有时候会出现指令非法的错误,结果是程序停止运行,最坏情况下将导致程序出错。

另外一个问题是超标量CPU拥有VLIW芯片所不能提供的一个重要性能,它也是超标量芯片的一个突出优点,即在运行过程中能随时改变指令执行条件。而VLIW处理器不能作这样的调整,除非它采用增加了某些超标量单元的混合结构才有这样的可能。

再有像CPU死机的问题,可以通过预截取等手段达到最小化,不过有时候也失效。例如设计师正在截获一个包含有下一步所需内容地址的指针时,就可能被困住。所以说要准确预测出下一步所需内容的地址就困难重重。

但对于图像处理来说情况又有所不同,此时VLIW芯片的表现是上乘的,这是因为图像数据通常都是按线性地址空间排列的,可以简化象块挎贝这类操作的处理。这也是DSP成为嵌入式VLIW芯片初露峰芒的重要原因。欲了解更多信息,请访问:;;。

[Embedded Systems Programming]

作者简介:Alexander Wolfe是ESP的总编,曾获得过Cooper Union颁发的电子工程学士学位。在嵌入式系统的汇编语言代码编写方面有较好的经验。

阅读(2274) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:ARM体系结构发展

给主人留下些什么吧!~~