账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
崁入式系统之验证与最佳化
 

【作者: Jim Kenney】2004年06月01日 星期二

浏览人次:【4458】

在一个崁入式系统中,同时设计与开发软、硬体的挑战性,尤其是在现今复杂如SoC的设计中,在现有的文献中诸多记载。 (图一)是由Collet Internal研究单位所作之统计,根据受访者表示67%第一次晶片的失败是归因于逻辑以及功能设计的错误,值得一提的是,韧体方面的错误占整个第一次晶片失败的13%强,暴露出软体与硬体方面整合问题的严重性。


《图一 第一次芯片的失败率大多是由于逻辑与功能性设计的错误产生》
《图一 第一次芯片的失败率大多是由于逻辑与功能性设计的错误产生》

〈资料来源:Collet Intl. 2003 Survey〉


任何复杂的SoC设计在达到收敛前,都须经过反覆测试,然而由于设计平台的构建、验证、分析以及再精简都需要较长的时间,因而拉长了晶片的上市时间,使系统无法充分验证,甚至造成了晶片的失败。为了使产品能及时推出,事实上只是造成缩短设计流程,在验证晶片未完全符合规格前就付诸制造,显然是一个错误观念,因为根据Electronic Market Forecasters(June 2003),大多数的崁入式系统运行太慢,而且70%的设计中,未达当初设定目标效能的10%以上。


事实上一个好的软硬体设计与开发环境,能充分检测出功能与韧体方面的问题,并加速设计的收敛性,而且此种软硬体的设计环境,必须能解决与突破在现今软硬体协同工具或整套工具上的缺点与限制。


可行的解决方案

目前市面上的EDA工具厂商可提供一个软硬体协同验证的整合环境,从设计平台的建立、验证、分析与再精简以期达到符合系统的规格。在此紧密结合的发展工具中,可以加速设计平台的建立、验证、分析与再精简以期提升晶片首次成功的机率。此种解决方案涵盖了以下三种工具,每种工具都是针对晶片不同开发阶段所遭遇的问题提出解决之道。


  • Platform Express:能迅速的建构一个以设计平台为中心的验证环境。


  • Seamless CVE:能提供一个软硬体协同验证的环境,并提供高效能分析,以增进软硬体分割的依据。


  • Seamless ASAP:Seamless ASAP(Application-Specific Assistant Processor)是在一个崁入式的系统中,能确认系统功能性的问题,并能自动转换软体的功能呼叫成硬体模块,以期增加系统的效能。



《图二 IC设计周期》
《图二 IC设计周期》

〈注:在最初设计开发完成之后,一个崁入式系统需经过反覆测试才能达到设计收敛的目标〉


设计的建构与再精简

透过图形介面,当设计被修改时,验证环境很快的会重新建立。设计者可以使用此工具来建立一个系统时,把每一个模块视为是一个矽智财(IP),然后将不同的模块作连接的动作,在使用此颣工具时总共有四个步骤,其中包含选择矽智财、选择相关参数、立化模块与重建整个SoC平台。


选择矽智财

从现有的处理器中,设计者开始选择所需要的核心、记忆体与周边装置,这些都是由矽智财领先厂商或半导体制造商所提供。


《图三 图形接口设计工具范例》
《图三 图形接口设计工具范例》

〈注:Platform Express直接的GUI环境能让设计者建立一个设计平台经由选择相关参数与立化模块来实现〉


选择相关参数(Configuration)

设计者从元件库内,依据规格选择所需之矽智财,调整相关参数。


立化设计之模块(Instantiation)

在调整完元件相关参数后,设计者开始借着Platform Express的图形介面,利用滑鼠将元件移至相关的汇流排上。在Platform Express中提供标准汇流排如AMBA和VCI等,并能连接不同的矽智财,依据使用者的设定,Platform Express还能显示并具备硬体模块的自动定址功能(memory mapping)。


建立完整的SoC设计平台

当使用者借着图形介面完成立化时,设计工具会自动地生成系统设计,并连接软体驱动程式与激励,此外也可自动呼叫验证工具,以及产生并执行所需之角本(scripts),或产生硬体模拟工具如ModelSim的初始档案及所有信号波形图示等来执行硬体验证。


在软体方面,能自动连接驱动程式及硬体自我侦测程式,设计工具可以针对设计的周边装置和记忆体,产生C语言级的应用程式在软硬体协同验证平台上,透过呼叫软体除错器Xray对整个系统执行验证。


《图四 一致性内存服务器作业流程》
《图四 一致性内存服务器作业流程》

〈注:记忆体读/写的动作透过「一致性记忆体伺服器」来存取以取代启动硬体模拟器,可以提升整体系统效能〉


设计验证与分析

当完成系统建构或修改时,Seamless软硬体协同验证的环境里,在进入实体验证阶段之前,可以让设计者产生一个虚拟的系统环境,使一个实际的硬体线路模拟环境能执行崁入式软体,设计者可以提早侦测及修改软硬体介面的错误,此能力可以减低在系统整合前所浮现出来的问题,借着问题的修正,而使设计能够收敛,Seamless并可使设计者对整个硬体的信号,有足够的可观测性及控制性,对软体的原始代码(包含C及组合语言)执行侦错,并借着软体的最佳化来加速软体的运行,提升整个系统的效能。


动态最佳化

在一个虚拟软硬体协同验证的环境中,主要核心的问题就是去执行足够有意义的软体,在软体执行时,微处理器产生了数以万计的记忆体存取动作,其中包含了指令的存取与记忆体的读写,而在一个纯硬体模拟的环境中,以每秒执行10个或20个时钟的速度,来执行数百万个记忆体存取动作,可能需要数天时间,例如光是启动一个Lynx的即时系统开机,以每秒执行二十个时钟的速率来计算,就需要产生一千六百八十万个记忆体存取动作。


Seamless维持了一个独特的记忆体储存机制称为「一致性记忆体伺服器」,因此,处理器可以让设计者依实际状况选择,是透过硬体模拟器来产生读取信号,还是直接从记忆体伺服器中读取资料,而不产生时脉,因而比实际状况将近快了一万倍左右,例如在一开始的验证阶段。很重要的就是先确认整个记忆体系统的动作无误,以确保系统可以开机运行,一旦确立此种动作之后,就可以启动记忆体最佳化功能,来节省实际的模拟时间,此种最佳化也可随时打开或关闭,依照设计者对整个系统的掌握程度。


因为记忆体内容是存放在同一个位置(一致性记忆体伺服器内),因而无论是多少次存取方式的切换(从最佳化到非最佳化)可以保证资料的一致性,同时记忆体伺服器也支援多个处理器存取多个不同的记忆位址,Seamless所使用的记忆体为Denali模型,其本身提供了将近四千多种记忆体模型可供选择,如无适当模型,设计者也可利用Seamless所支援的模型来修改,而本身的崁入式软体则不需作任何更动。


所支援处理器种类

Seamless支援之处理器和数位信号处理器种类超过百种,最常用的有ARM、Ceva、IBM、LSI Logic、MIPS、Motorola、PMC、Renesas、Tensilica以及Texas Instrument,每种处理器的模型包含三部分,指令集模拟器(ISS)汇流排介面模型(BIM)和图形介面的软体除错器(Software debugger),因此软体可在ISS内运行,硬体无论是Verilog、VHDL或SystemC均可透过硬体模拟器来运行。


C语言的支援

Seamless内的C-Bridge支援用C语言来实现硬体模型,此特性乃是利用C模型的速度远较HDL来的优越,Seamless提供简单的API可以让Seamless与C模型连接在一起,设计者可以使用全部C语言模型或是部份以C语言,部份以HDL的混何方式来进行模拟.在C语言部份支援C,C++以及SystemC。


当设计者选择使用C来模拟部份或整个系统时,最后还是要转成HDL然后再验证整个系统,Seamless的C-Bridge是一转换工具,协助客户来度过此种变迁,因为它能使C与HDL整合在一起,而且设计者可以依据实际状况,对某些模块来作切换,而仅在Seamless中简单的重新配置记忆体即可。


高效能分析

内文:Seamless另一项特色就是提供以图形来显示系统效能的分析,此种功能使设计者了解系统的瓶颈,和设计改变后对于整个系统的影响,Seamless能够图示软体执行后,每个模块占整个执行时间的分布、记忆体存取的分析(包含Cache分析)、汇流排上的交易状况以及汇流排上的仲裁时间。


Seamless中的软体数据图表,能够统计和分析软体执行结果,包含每一个软体功能呼叫执行的顺序及时间,或是以一个长条图来标示每一个功能呼叫占整个执行时间的百分比,Gantt图表可以让设计者一目了然,重要的功能呼叫是否在正确时间被执行、帮助和预防错误的产生,例如资料传输的不充分,或是漏掉的封包等等,了解某一功能呼叫占用最多执行时间,有助于设计者增进这些功能呼叫的效率,以提升整个系统运作的效能。其中的解决方案不外乎重新改写C语言,而以组合语言的型式来表现,或是将软体的功能移至硬体。


显示记忆体存取的图表对照时间轴的图表,能够显示出记忆体存取的峰值,以便于平衡记忆体的使用率,此种图形也有助于显示处理器从记忆体的读写与汲取指令以及分析指令cache与资料cache的失误与击中,设计者可以使用此项资料来决定cache的大小和正确的置换cache对策,以减低处理器对主记忆体的存取,记忆体存取图形与软体数据图表可以交叉运用,呈现韧体执行与记忆体瓶颈的关联性,到底当时是哪个软体模块来读取此记忆体。


Seamless的汇流排分析,能使设计者观测到汇流排的负载与仲裁,在今日的SoC设计里,汇流排的频宽是由处理器、DMA控制器、周边装置与资料搜寻引擎等的竞争使用权来达到某一平衡,(图五)显示汇流排使用率对照时间轴的图表,当使用率达到百分之百时,表示汇流排频宽全部被占用,假如此种情况发生时,设计者可能必须修改系统,借着软体数据图表来决定是何种软体功能呼叫被执行,以解除汇流排的瓶颈。


汇流排的仲裁者有对汇流排的控制权,Seamless能以图表来显示一个汇流排主控器提出汇流排的使用权与得到控制权间的等待时间,设计者可以使用此项资讯来选择更有效率的仲裁机制,与系统软体功能呼叫的优先顺序。



《图五 总线使用率图表来显示总线带宽的瓶颈》
《图五 总线使用率图表来显示总线带宽的瓶颈》

《图六 Gantt图表显示软件功能呼叫的顺序与时间》
《图六 Gantt图表显示软件功能呼叫的顺序与时间》

《图七 显示每个软件功能呼叫所占处理器运行时间比率之统计图表》
《图七 显示每个软件功能呼叫所占处理器运行时间比率之统计图表》

设计的分析与再精简

@内文;当设计者使用Seamless的高效能分析的功能来评估整个崁入式系统时,也许可能会决定将一个或数个软体的功能移致硬体来实现,在决定转换之前,设计者必须先考虑以下几个问题,其中应包含:


  • ●与软体功能比较,以硬体实现需要多少个时脉?


  • ●当处理器与此硬体模块沟通时的瓶颈有多少?


  • ●新增加的硬体模块要占多少额外面积?


  • ●当转换成硬体时,效能的改进有多少?



Seamless ASAP能协助设计者回答以上的问题,ASAP能自动的将软体的模块转换成硬体来实现(产生一个或数个的硬体处理器),来提高系统的整体效能。


预估硬体处理器对系统所造成之冲击

ASAP的预估器能显示转换后的效能,无需经由冗长的再模拟的时间,其预估的项目包含硬体处理器的预估面积、执行该项功能所需之时间与对整个系统所造成之负载影响包含处理器与汇流排。基于以上评估,设计者来决定使用ASAP将软体功能转成硬体功能是否得宜。


产生硬体处理器

ASAP将一个以ANSI C实现的功能转换成一个可以综合的HDL,Seamless ASAP的硬体产生器,几乎支援所有崁入式系统中常用ANSI C的语法,与坊间的解决方案不同,大多数的崁入式C语言在本系统中,毋需经过特殊的修改或增加额外的语法。


产生适当的软/硬体介面

在产生硬体处理器之后,ASAP能再生成新的软体驱动程式以取代相对应之原软体,此驱动程式不仅修改了原软体,并呼叫新硬体产生之暂存器,ASAP同时也可产生工业标准的汇流排介面,例如AMBA或SRAM的介面,让设计者将此硬体处理器整合至主要的汇流排,或区域汇流排或辅助运算器的汇流排中。


产生Testbench

为了能验证硬体处理器的功能,ASAP能自动产生HDL的testbench──其中包含激励与预期结果,借此testbench来验证新产生之HDL的汇流排介面,与硬体处理器之功能,并利用之前所描述之高效能分析之步骤,所有的软体功能呼叫都会被一一执行,与硬体模拟器中执行该功能的结果比较,以确认软体与硬体的模拟结果是否正确,给予简单的通过或失败的结果。


Seamless ASAP也能将新产生的硬体加入至Platform Express的IP库中供日后使用,(图八)显示使用ASAP后效能的增进,在此例中四项功能从软体中移致硬体,分别是由人工转换或由ASAP产生,结果显示使用人工转换仅较ASAP产生的稍好(速度约差6.4%;面积约差14.8%),但显然需要较长开发时间(六个月vs.一星期)。


《图八 评估案例显示ASAP自动产生之执行结果与人工转换之比较》
《图八 评估案例显示ASAP自动产生之执行结果与人工转换之比较》

结语

整合上述三种工具,并与其他验证工具相结合,提供设计者一个直接与综合的环境,其中包含建构设计平台、验证与分析来精简一个崁入式系统,设计工具厂商借着提供以上工具来解决在开发软体/硬体时各阶段所遭遇的问题,并加速系统开发时程,以期减低设计风险,使设计能尽善尽美。


相关文章
EDA进化中!
先进制程推升算力需求 云端EDA带来灵活性与弹性
机器学习实现AI与EDA的完美匹配
抢占2014行动商机
IC卡芯片的发展趋势与机会
comments powered by Disqus
相关讨论
  相关新闻
» 英特尔Lunar Lake处理器将於2024年第三季上市 助AI PC扩展规模
» IBM与SAP协作 助企业运用生成式AI提高生产力、创新与获利
» 新思科技利用台积公司先进制程 加速新世代晶片创新
» 制造业Q1产值4.56%终结负成长 面板及汽车零组件制造创新高
» AMD Ryzen 8000 F系列处理器上市 提供更高AI效能


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK85LBVKRDSSTACUKP
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw