CPU芯片是现代信息技术的引擎,是数据处理的核心。我们生活中用到的电脑、智能手机、电视机、电冰箱、汽车……其中都有芯片的身影,它的质量直接关系到千家万户的日常生活。
如今,芯片使用量正在呈指数级增长,对其质量的要求也越来越高。验证、测试和容错技术则是芯片质量保障的三道技术关卡。
中国科学院计算技术研究所,计算机体系结构国家重点实验室常务副主任李晓维研究员带领团队自2000年起,在科技部、国家自然科学基金委和北京市科委相关项目的资助下,紧密结合国产高性能CPU芯片的研制,实现了测试验证和片上容错设计关键技术的突破。系列研究成果曾获国家技术发明奖和国家科学技术进步奖,最新研究成果已在多款高性能CPU的设计验证、测试与容错设计中转化应用,并获得了2017年度北京市科学技术奖二等奖。
芯片也有“生病烦恼”
芯片虽然没有生命,但也和其它生命体一样面临可靠性问题,通俗可以理解为芯片的“健康”问题。
修复软件的故障(通常称之为Bug)可以通过修改源代码来实现,但是芯片的故障就不那么容易修复了。
例如在芯片设计的过程中可能会由于考虑不周,导致制造出的芯片发生功能故障。制造的过程中也会遭受芯片缺陷,导致逻辑正确的芯片仍然不能成为合格的产品,即便在服役期也会由于一些物理机理的作用产生老化等问题。
就像我们通过体检可以查验出身体可能会出现的健康问题一样,对于芯片来说,“体检”也是十分有必要的。
“简单地说,设计过程中的问题需要通过验证的方法来解决,制造过程中遭受的一些随机杂质等因素造成的缺陷可以通过芯片测试来筛除,而服役期的可靠性则必须通过设置一定的容错机制来保障了。”李晓维说。
这在很多特殊的应用领域具有非常重要的意义,也对芯片设计正确性的验证和制造缺陷的检测提出了迫切的需求。例如飞行在深空的航天装备中的芯片如果出了问题很难更换,所以对可靠性的要求尤其严苛。
给芯片做“产检”
要想让CPU芯片一出生就“健康茁壮”,在芯片的IC设计阶段,就要通过设计验证来检验设计方案是否符合规范,发现不同设计阶段引入的设计Bug。
“芯片作为人类工业史上最复杂的产业之一,设计验证是其设计流程中的瓶颈,复杂芯片设计验证所投入的人员和时间都已超过设计本身。”李晓维说。
测试和验证是非常重要的环节。如果测试和验证的环节有问题,将会导致有问题的处理器芯片组装到系统里,将可能造成巨大的经济损失。
例如,1994年Intel奔腾芯片的浮点除法错误,使Intel公司损失近5亿美元,就是因为芯片在投产前未能保证设计的正确性,事后又未能测试出该问题。
据介绍,测试验证使用的最主要的方法是模拟。该方法主要的难点在于输入的数量巨大,想要完全地测试验证处理器,需要的时间非常长。为了加速测试验证的过程,需要把输入进行分类,仅挑选每一类中的代表对处理器进行测试验证。
但处理器的设计非常复杂,输入的组合和分类情况同样是极其复杂的。于是,项目研发团队对测试验证的方法进行探索,提出了一系列形式化和半形式化的方法解决了这一难题。
【转载自中国分析测试协会:http://www.caia.org.cn/erJiDetial/65-14337.html】