Innovative practices session 1C: Post-silicon validation

N. Hakim, C. Meissner
{"title":"Innovative practices session 1C: Post-silicon validation","authors":"N. Hakim, C. Meissner","doi":"10.1109/VTS.2013.6548887","DOIUrl":null,"url":null,"abstract":"In the processor functional verification field, pre-silicon verification and post-silicon validation have traditionally been divided into separate disciplines. With the growing use of high-speed hardware emulation, there is an opportunity to join a significant portion of each into a continuous workflow [2], [1]. Three elements of functional verification rely on random code generation (RCG) as a primary test stimulus: processor core-level simulation, hardware emulation, and early hardware validation. Each of these environments becomes the primary focus of the functional verification effort at different phases of the project. Focusing on random-code-based test generation as a central feature, and the primary feature for commonality between these environments, the advantages of a unified workflow include people versatility, test tooling efficiency, and continuity of test technology between design phases. Related common features include some of the debugging techniques - e.g., software-trace-based debugging, and instruction flow analysis; and some of the instrumentation, for example counters that are built into the final hardware. Three key use cases that show the value of continuity of a pre-/post-silicon workflow are as follows: First, the functional test coverage of a common test can be evaluated in a pre-silicon environment, where more observability for functional test coverage is available, by way of simulation/emulation-only tracing capabilities and simulation/emulation model instrumentation not built into actual hardware [3]. The second is having the the last test program run on the emulator the day before early hardware arrives being the first validation test program on the new hardware. This allows processor bringup to proceed with protection against simple logic bugs and test code issues, having only to be concerned with more subtle logic bugs, circuit bugs and manufacturing defects. The last use case is taking an early hardware lab observation and dropping it seamlessly into both the simulation and emulation environments. Essential differences exist in the three environments, and create a challenge to a common workflow. These differences exist in three areas: The first is observability & controllability, which touches on checking, instrumentation & coverage evaluation, and debugging facilities & techniques. For observability, a simulator may leverage instruction-by-instruction results checking; bus trace analysis and protocol verification; and many more error-condition detectors in the model than in actual hardware. For hardware a fail scenario must defined, considering how behavior would propagate to checking point. For example “how do I know if this store wrote the wrong value to memory?” For hardware, an explicit check in code, a load and compare, would be required. The impact of less controllabilty is also that early hardware tests require more elaborate test case and test harness code, since fewer simulator crutches are available to help create desired scenarios. Where a simulator test may specify “let an asynchronous interrupt happen on this instruction”, a hardware test may have to run repeatedly with frequent interrupts until the interrupt hits on the desired instruction. The second difference is in speed of execution, which typically involves a 10,000x-100,000x difference between each of the environments. This affects both the wallclock time needed to create a condition - whether or not the condition can be observed or debugged - and also the “scale” of software that can be run on a given environment, from 1000 instruction segments up to a full operating system. The final difference is that much larger systems are built than simulated, and this is an issue going from the pre-silicon environments to early hardware, especially in testing scenarios that involve large numbers of caches and memories. These methodology issues, both in terms of taking advantage of the pre-/post-silicon environment commonalities, and also contending with the differences, have aided and impacted several generations of IBM POWER server processors, [4].","PeriodicalId":138435,"journal":{"name":"2013 IEEE 31st VLSI Test Symposium (VTS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-04-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 IEEE 31st VLSI Test Symposium (VTS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/VTS.2013.6548887","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

In the processor functional verification field, pre-silicon verification and post-silicon validation have traditionally been divided into separate disciplines. With the growing use of high-speed hardware emulation, there is an opportunity to join a significant portion of each into a continuous workflow [2], [1]. Three elements of functional verification rely on random code generation (RCG) as a primary test stimulus: processor core-level simulation, hardware emulation, and early hardware validation. Each of these environments becomes the primary focus of the functional verification effort at different phases of the project. Focusing on random-code-based test generation as a central feature, and the primary feature for commonality between these environments, the advantages of a unified workflow include people versatility, test tooling efficiency, and continuity of test technology between design phases. Related common features include some of the debugging techniques - e.g., software-trace-based debugging, and instruction flow analysis; and some of the instrumentation, for example counters that are built into the final hardware. Three key use cases that show the value of continuity of a pre-/post-silicon workflow are as follows: First, the functional test coverage of a common test can be evaluated in a pre-silicon environment, where more observability for functional test coverage is available, by way of simulation/emulation-only tracing capabilities and simulation/emulation model instrumentation not built into actual hardware [3]. The second is having the the last test program run on the emulator the day before early hardware arrives being the first validation test program on the new hardware. This allows processor bringup to proceed with protection against simple logic bugs and test code issues, having only to be concerned with more subtle logic bugs, circuit bugs and manufacturing defects. The last use case is taking an early hardware lab observation and dropping it seamlessly into both the simulation and emulation environments. Essential differences exist in the three environments, and create a challenge to a common workflow. These differences exist in three areas: The first is observability & controllability, which touches on checking, instrumentation & coverage evaluation, and debugging facilities & techniques. For observability, a simulator may leverage instruction-by-instruction results checking; bus trace analysis and protocol verification; and many more error-condition detectors in the model than in actual hardware. For hardware a fail scenario must defined, considering how behavior would propagate to checking point. For example “how do I know if this store wrote the wrong value to memory?” For hardware, an explicit check in code, a load and compare, would be required. The impact of less controllabilty is also that early hardware tests require more elaborate test case and test harness code, since fewer simulator crutches are available to help create desired scenarios. Where a simulator test may specify “let an asynchronous interrupt happen on this instruction”, a hardware test may have to run repeatedly with frequent interrupts until the interrupt hits on the desired instruction. The second difference is in speed of execution, which typically involves a 10,000x-100,000x difference between each of the environments. This affects both the wallclock time needed to create a condition - whether or not the condition can be observed or debugged - and also the “scale” of software that can be run on a given environment, from 1000 instruction segments up to a full operating system. The final difference is that much larger systems are built than simulated, and this is an issue going from the pre-silicon environments to early hardware, especially in testing scenarios that involve large numbers of caches and memories. These methodology issues, both in terms of taking advantage of the pre-/post-silicon environment commonalities, and also contending with the differences, have aided and impacted several generations of IBM POWER server processors, [4].
创新实践环节1C:后硅验证
在处理器功能验证领域,硅前验证和硅后验证传统上被划分为独立的学科。随着高速硬件仿真的使用越来越多,有机会将每个硬件的很大一部分加入到一个连续的工作流中[2],[1]。功能验证的三个要素依赖于随机代码生成(RCG)作为主要的测试刺激:处理器核心级仿真、硬件仿真和早期硬件验证。这些环境中的每一个都成为项目不同阶段功能验证工作的主要焦点。将基于随机代码的测试生成作为中心特征,以及这些环境之间的共性的主要特征,统一工作流的优点包括人员的多功能性,测试工具的效率,以及设计阶段之间测试技术的连续性。相关的通用特性包括一些调试技术——例如,基于软件跟踪的调试和指令流分析;还有一些仪器,比如内置在最终硬件中的计数器。三个关键用例显示了pre-silicon /post-silicon工作流程连续性的价值如下:首先,一个普通测试的功能测试覆盖可以在pre-silicon环境中进行评估,在这个环境中,功能测试覆盖的可观察性是可用的,通过模拟/仿真跟踪能力和模拟/仿真模型仪器而不是内置到实际硬件中[3]。第二种是在早期硬件到达的前一天在模拟器上运行最后一个测试程序,作为新硬件上的第一个验证测试程序。这使得处理器可以继续对简单的逻辑错误和测试代码问题进行保护,而只需要关注更微妙的逻辑错误、电路错误和制造缺陷。最后一个用例是进行早期的硬件实验室观察,并将其无缝地放入模拟和仿真环境中。这三种环境中存在着本质上的差异,这给通用工作流带来了挑战。这些差异存在于三个方面:首先是可观察性和可控性,涉及检查、工具和覆盖评估,以及调试工具和技术。对于可观察性,模拟器可以利用指令对指令的结果检查;总线跟踪分析和协议验证;模型中的错误条件检测器比实际硬件中的要多得多。对于硬件,必须定义故障场景,考虑行为如何传播到检查点。例如,“我如何知道这个存储是否向内存写入了错误的值?”对于硬件,需要显式的检入代码、加载和比较。可控性降低的影响还在于,早期的硬件测试需要更详细的测试用例和测试工具代码,因为可以帮助创建所需场景的模拟器拐杖较少。当模拟器测试可能指定“让异步中断发生在这条指令上”时,硬件测试可能必须在频繁中断的情况下重复运行,直到中断击中所需的指令。第二个差异是执行速度,这通常涉及每个环境之间10,000 -100,000倍的差异。这既影响创建条件所需的时钟时间(无论是否可以观察或调试条件),也影响可以在给定环境中运行的软件的“规模”,从1000条指令段到一个完整的操作系统。最后一个区别是,构建的系统比模拟的大得多,这是一个从pre-silicon环境到早期硬件的问题,特别是在涉及大量缓存和内存的测试场景中。这些方法论问题,无论是在利用前/后硅环境的共性方面,还是在应对差异方面,都帮助并影响了几代IBM POWER服务器处理器,[4]。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信