当前位置 >>  首页 >> 研究成果 >> 获奖成果

2012年实验室获奖成果

撰稿: 摄影: 发布时间:2013年01月11日
1)成果名称:星载微处理器系统验证-测试-恢复技术及应用
主要完成人员:李晓维,李华伟,韩银和等
主要完成单位:中国科学院计算技术研究所等
获奖情况:2012年度国家技术发明奖二等奖

项目简介:
星载计算机(图1)是卫星系统的核心控制部件,关系到应用卫星在轨能否可靠运行并完成预定任务。长期以来,我国的星载微处理器一直依赖进口,适应空间环境的32位高性能高可靠星载微处理器系统的空缺,制约了我国星载计算机的发展。1998年以来,如何保证星载微处理器系统(图2)在轨十五年内适应复杂的空间环境、稳定可靠地工作,一直是星载微处理器系统研制中面临的首要问题。亟待解决以下关键技术问题:1、微处理器缺陷及其导致的软件错误的检测和避错;2、单粒子效应导致的芯片时序差错的测试和纠正;3、受限于星载计算机资源的星载微处理器系统的在轨故障维修。



  图1 项目组研制的某星载计算机   图2 项目组研制的某星载微处理器系统



图3 星载微处理器系统验证-测试-恢复技术体系(示意图)

在国家自然科学基金重点项目连续资助和多个卫星型号任务牵引下,中科院计算所集成电路测试团队与航天科技五院五〇二所、浙江大学合作,旨在构筑地面测试验证和在轨故障检测-隔离-恢复(FDIR)两道防线,来保障星载微处理器系统在轨十五年内适应复杂的空间环境、稳定可靠地工作。本项目突破了星载微处理器及其目标代码的缺陷检测、芯片时序容差测试、系统在轨故障检测-隔离-恢复等重大技术难题,形成了自主知识产权的星载微处理器系统验证-测试-恢复技术体系(图3),包括:(1)发明了微处理器及其目标代码的指令组合缺陷检测方法(包括可观测性覆盖分析与激励生成方法、目标代码指令组合缺陷检测方法等核心技术),解决了星载微处理器及其目标代码的指令组合缺陷检测问题,为星载计算机“零缺陷”在轨运行提供了可靠保障;(2)发明了微处理器单粒子效应的时序容差测试方法(包括精确串扰源时延测试方法、时空两维测试压缩方法等核心技术),解决了抗单粒子辐照的时序容差测试难题,为星载微处理器流水线的可靠时序设计提供了精准的依据;(3)发明了星载微处理器系统在轨FDIR新方法(包括满足拜占庭故障恢复约束条件的热备份冗余系统的通讯与同步数据交互方法、以模块为基础的星上软件在轨编程方法等核心技术),解决了星载计算机资源受限约束下的在轨故障恢复难题。

本项目成果包括13项发明专利(含2项国防专利)、12项软件著作权;发表SCI收录论文18篇,出版专著3部,Web of Science他引108次。整体处于国际先进水平,其中精确串扰源时延测试和时空两维测试压缩方法居同期国际领先水平。对我国微处理器系统,特别是星载微处理器系统的可靠性技术的发展,具有重大促进作用。

本项目成果已整体应用于我国八颗在轨通信卫星(含四颗整星出口卫星)、十颗二代导航卫星、嫦娥一号/二号卫星、新型遥感卫星、神舟八号手控线路、天宫一号、我国CAST968平台、CAST2000平台和CAST100平台小卫星的控制计算机,以及国产自主设计的卫星控制计算机核心芯片SoC2008的研制。某应用卫星在轨发生预想不到的技术问题时,通过预先设计好的故障检测、隔离和恢复机制,使卫星转危为安,挽回经济损失数亿元。2006年以来,应用本项目成果的在轨卫星已超过三十颗,在轨稳定工作时间最长的卫星已超过五年,具有显著的经济和社会效益。
 
2)成果名称:跨指令集虚拟机的性能优化技术
主要完成人员:武成岗,王振江,崔慧敏,李建军,远翔,王文文,马湘宁,唐锋,冯晓兵,张兆庆
主要完成单位:中国科学院计算技术研究所
获奖情况:北京市科学技术奖二等奖(技术发明类)

项目简介:
处理器厂商在开发新处理器时一般遵循向前兼容的原则,以使其新处理器能够继承已有的软件资源。这样做既增加新处理器的复杂度和功耗,又增加了成本,成为了处理器设计人员的一个沉重包袱。跨指令集虚拟化技术能通过软件手段将一种指令集体系结构上的可执行代码迁移到另一种指令集体系结构上运行。该项技术为处理器的设计人员摆脱向前兼容的束缚提供了一条可行的途径。

跨指令集虚拟化技术对我们的国产处理器来讲,还有其更重要的现实意义。出于战略考虑以及国际大公司的专利限制,国产微处理器大多都采用与X86不兼容的指令集体系结构。但X86系列机器作为当前的主流机型,占有绝对的市场份额,拥有极其丰富的应用软件资源。与之不兼容则会失去相应软件的支持,在市场竞争中处于劣势。跨指令集虚拟化技术,可以将X86处理器上的软件迁移到国产处理器上,增强国产处理器的竞争力。

中国科学院计算技术研究所在研制龙芯1号处理器的过程中,就意识到了龙芯处理器与X86 指令集的不兼容,会成为其将来市场推广中的一个严重的障碍。为此,在李国杰院士的倡导下,我们从2000年起开始了跨指令集虚拟化技术的探索工作,先后受到了计算所创新课题、国家自然科学基金、国家863项目的资助。在这些项目的资助下,我们经历了初步探索阶段、追赶国外同行的学习阶段,而后进入自主创新阶段。本项目在跨指令集虚拟机系统框架、指令翻译优化、动态访存优化等研究方向取得了一系列的研究成果,设计并实现了自主知识产权的跨指令集虚拟机系统(图4)。



图4. 本项目研制的跨指令集虚拟机系统框架示意图

本项目的主要技术内容有:1)发明了一种动静结合的跨指令集虚拟机系统框架和一些解决指令集语义差异的新方法,包括标志位优化、浮点栈处理等;2)针对存储墙问题,发明了一种改善代码局部性和数据局部性的方法,通过合理地管理代码缓冲区和改善内存池中数据布局,降低高速缓存和TLB的缺失率,提升了系统性能。3)针对非对齐访存会造成跨指令集虚拟机的性能严重下降的问题,发明了一种异常处理机制和动态剖析相结合的方法。通过动态剖析发现较早出现的非对齐访存指令,通过异常处理机制识别长时间隐藏的非对齐访存操作,并对它们进行实时处理。4)发明了一种将内存变量提升到寄存器的优化方法,通过减少访存量来提升程序的性能。利用页保护机制、虚存页和物理页之间别名映射机制,来动态识别潜在的内存别名关系,保证了优化的正确性。5)发明了一种基于图匹配的解析多目标分支语句及其跳转表的方法,挖掘出了间接跳转的目标,并设置快速目标跳转表,提高了系统性能。



图5. 使用X86到龙芯的二进制翻译器运行flash的效果图

基于以上核心技术,设计了面向国产处理器的跨指令集虚拟机系统,使X86程序能够运行在国产处理器平台上(图5),丰富了国产处理器平台的软件应用。目前,该项研究中产生了16项专利(其中12项授权,4项已受理),软件著作权登记4项,发表了21篇学术论文,其中7篇发表在顶级国际学术刊物和学术会议上。我们创新的成果已在国际上产生了较大的影响,该方向的学术带头人武成岗先后受intel 美国总部和微软美国总部邀请介绍我们的研究成果,他还被 编译领域重要国际会议CGO(IEEE/ACM 代码生成和优化会议)选为大会主席。所开发的系统为无锡江南计算技术研究所、北京品恩科技股份有限公司、龙芯中科技术有限公司等单位所采用,解决了他们面临的实际问题,产生了较好的社会及经济效益。
附件下载: