CN118153516A - 一种处理器功能仿真验证方法及系统 - Google Patents
一种处理器功能仿真验证方法及系统 Download PDFInfo
- Publication number
- CN118153516A CN118153516A CN202410564339.8A CN202410564339A CN118153516A CN 118153516 A CN118153516 A CN 118153516A CN 202410564339 A CN202410564339 A CN 202410564339A CN 118153516 A CN118153516 A CN 118153516A
- Authority
- CN
- China
- Prior art keywords
- processor
- simulation
- performance
- test
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012795 verification Methods 0.000 title claims abstract description 26
- 238000012360 testing method Methods 0.000 claims abstract description 132
- 238000005265 energy consumption Methods 0.000 claims abstract description 68
- 230000006399 behavior Effects 0.000 claims abstract description 59
- 238000013461 design Methods 0.000 claims abstract description 46
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 29
- 238000004458 analytical method Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000013515 script Methods 0.000 claims abstract description 16
- 230000007246 mechanism Effects 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 30
- 238000007726 management method Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 15
- 230000007849 functional defect Effects 0.000 claims description 13
- 238000013468 resource allocation Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 8
- 238000003062 neural network model Methods 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000003542 behavioural effect Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000007613 environmental effect Effects 0.000 claims description 3
- 230000014509 gene expression Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010223 real-time analysis Methods 0.000 claims description 3
- 238000000611 regression analysis Methods 0.000 claims description 3
- 230000001105 regulatory effect Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013209 evaluation strategy Methods 0.000 description 2
- 235000003642 hunger Nutrition 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000037351 starvation Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013210 evaluation model Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及处理器测试验证技术领域,具体涉及一种处理器功能仿真验证方法及系统,包括以下步骤:设计一套模拟处理器内核的虚拟仿真环境,通过动态配置算法,根据不同的处理器设计目标和参数自动选择和配置仿真环境的资源;在仿真环境中,实施基于符号执行机制;利用脚本驱动框架,自动化部署生成的测试用例,并在虚拟仿真环境中执行;采用智能分析算法,在仿真测试执行过程中,分析监控到的性能数据和运行状态;引入自适应能源管理仿真功能,根据仿真数据自动调整处理器的能耗模式,评估处理器在能耗敏感型应用中的表现。本发明,通过符号执行深入测试处理器行为,系统地识别所有可能的状态和行为,确保发现潜在的设计缺陷。
Description
技术领域
本发明涉及处理器测试验证技术领域,尤其涉及一种处理器功能仿真验证方法及系统。
背景技术
在现代处理器设计和制造领域,准确的仿真验证方法是确保产品满足性能和能源效率要求的关键,随着处理器架构的复杂化及其应用场景的多样化,传统的仿真技术面临着多方面的挑战,传统方法往往不能充分模拟多核处理器或特定应用(如移动设备和高性能计算平台)的行为,特别是在能源管理和性能优化方面。此外,传统仿真往往缺乏灵活性,无法实时调整和优化设计以应对测试过程中发现的新问题。
针对这些问题,现代仿真方法需要集成更先进的技术,如动态资源配置、符号执行、智能数据分析和自适应能源管理,这些技术可以系统地探索处理器的所有可能状态和行为,实时识别和调整性能瓶颈或功能缺陷,并优化能源消耗策略以满足特定应用的需求。通过这种方式,仿真验证不仅可以提高处理器设计的精度和可靠性,还可以大幅提升其市场竞争力,满足对高效能和低能耗日益增长的需求。
发明内容
基于上述目的,本发明提供了一种处理器功能仿真验证方法及系统。
一种处理器功能仿真验证方法,包括以下步骤:
S1:设计一套模拟处理器内核的虚拟仿真环境,并初始化虚拟仿真环境,在初始化虚拟仿真环境时,通过动态配置算法,根据不同的处理器设计目标和参数自动选择和配置仿真环境的资源;
S2:在仿真环境中,实施基于符号执行机制,并依据预定的处理器性能指标和行为模型来生成测试用例;
S3:利用脚本驱动框架,自动化部署生成的测试用例,并在虚拟仿真环境中执行;
S4:采用智能分析算法,在仿真测试执行过程中,分析监控到的性能数据和运行状态,以确定处理器是否达到设计规格,并识别是否存在性能瓶颈或功能缺陷;
S5:引入自适应能源管理仿真功能,在虚拟仿真环境中模拟不同的能源消耗策略,并根据仿真数据自动调整处理器的能耗模式,评估处理器在能耗敏感型应用中的表现,如可穿戴设备或物联网设备。
进一步的,所述S1具体包括:
S11,输入分析阶段:接收输入,输入包括处理器的核心数、时钟频率、功耗限制、目标应用类型(如移动设备、高性能计算或嵌入式系统);
S12,资源需求映射:基于输入参数,使用神经网络模型来预测所需的资源配置,该模型训练基于历史数据,包括不同处理器设计的资源使用效率和性能结果;
S13,资源匹配与优化:查询一个预先定义的资源配置数据库,资源配置数据库根据不同的设计目标分类存储各类资源配置方案,包括内存配置、处理速度、I/O接口类型,选择与预测需求最匹配的配置方案;
S14,参数调整与验证:选定资源配置方案后,实施细粒度的调整,根据仿真初步运行结果微调内存大小或调整缓存策略;
S15,环境搭建与反馈循环:完成资源配置后,初始化仿真环境并开始基线测试,基线测试结果将反馈至模型,用于调整和优化模型预测的准确性。
进一步的,所述S2中的符号执行机制具体包括:
S21,定义符号变量:定义处理器的核心数、时钟频率、功耗限制、目标应用类型作为符号变量,所述符号变量代表不同的输入配置,而不是具体的数值;
S22,建立处理器行为模型:创建一个处理器的行为模型,其中包含处理器的操作逻辑、状态转换和对环境变量的响应,再构建符号化处理器模型,将行为模型中的决策点、条件判断和计算表达式使用符号变量表示,使行为模型的行为可根据符号变量的不同取值而变化,
S23,符号执行:使用符号执行工具,如 KLEE 或 Microsoft's Z3,对处理器行为模型进行执行,符号执行工具探索所有可能的执行路径,每条执行路径都对应于一组符号变量取值,在每个条件判断点,符号执行将评估所有可能的条件结果(例如,一个条件判断可能依赖于符号变量表示的时钟频率),并相应地分叉执行路径;
S24,生成测试用例:从每个独立的执行路径中提取出测试用例,每条执行路径的结束点(如异常、错误状态或重要的行为输出)均转换为一个测试用例,测试用例将具体化符号变量,提供具体输入值,以重现该执行路径,选择覆盖新路径或未测试代码段的测试用例,确保生成的测试集具有高覆盖率;
S25,测试用例验证与迭代:在实际的虚拟仿真环境中执行生成的测试用例,验证处理器性能是否符合预期,根据测试结果调整行为模型或符号执行的参数设置,优化测试用例生成过程。
进一步的,所述创建一个处理器的行为模型包括:
设性能参数:核心数为n、时钟频率为f、功耗为P、目标应用类型为type,处理器的基本行为描述为处理指令、管理内存请求和调节功耗,创建一个基本行为模型,计算表示为:
功耗计算公式:,其中,/>是与处理器的设计和技术相关的常数;
性能评分perf:,其中,/>是根据目标应用类型调整的系数,不同的应用类型(如游戏、服务器、移动设备)可能对性能的需求不同;
符号化处理器模型:将性能参数转化为符号变量,、/>、/>以及perf都被视为符号,不赋予具体数值;
行为条件符号化:
功耗超过设定阈值的条件:;
性能达到应用需求的条件:。
进一步的,所述符号执行还包括使用符号执行工具对行为模型进行分析,探索所有可能的执行路径,包括:
每种type对应的c{text{type}}值的不同路径;
不同n和f组合下的功耗是否超过P{text{max}};
性能评分是否满足特定应用需求的perf{text{requirement}};
根据符号执行的结果,生成具体化的测试用例:
对于每个符号化条件,提取实现该条件的n和f值;
生成覆盖所有关键行为(功耗超标、性能不足)的测试用例集。
进一步的,所述S4中的智能分析算法采用最小角回归LAR模型,具体包括:
S41,获取处理器的性能数据和运行状态参数,包括处理器的时钟频率、核心温度、功耗、核心使用率以及缓存命中率,同时进行预处理;
S42,设置最小角回归LAR模型,以处理器是否达到设计规格作为响应变量(如性能是否符合预期),其他性能数据和运行状态参数作为预测变量;
S43,执行最小角回归分析,在仿真测试数据上应用LAR模型,逐步引入对输出变量影响最大的预测变量,持续直到达到预定停止准则,如达到一个预定的错误率或包含足够的变量,根据初步结果,调整模型参数,包括引入更多变量或调整正则化强度,以优化模型的性能和准确性;
S44,分析和诊断,配置显示单元,显示哪些变量被选入模型以及它们的系数大小,从而指示变量对性能的影响程度,通过分析模型结果,识别性能瓶颈和功能缺陷。
进一步的,最小角回归LAR模型的变量选择和回归方法表达如下:
标准化预测变量:对于所有预测变量,进行标准化处理,使得每个变量的均值为0,标准差为1:/>,其中,/>是变量/>的均值,/>是其标准差;
初始化:初始化系数(对所有/>),计算响应变量/>与每个预测变量/>的相关系数/>;
迭代选择变量:在每一步迭代中,选择与当前残差相关系数最大的预测变量,设是选择的变量,其中,初始时残差/>;更新系数/>以使得/>和/>的相关性最小化,使用等角方向更新:
,其中,/>是步长,(通过计算路径上的一组标准化预测变量的“等角”方向确定);
更新残差以反映新的回归线:/>。
进一步的,所述S5中的自适应能源管理仿真功能具体包括:
S51,模拟能源消耗策略:在虚拟仿真环境中设置不同的能源消耗策略,通过设置不同的运行场景和应用负载,模拟处理器在各种工作条件下的能源消耗,具体操作如下:
动态电压频率调整(DVFS)模拟:根据处理器负载动态调整处理器的电压和频率,如果处理器负载增加,增加电压和频率以保持性能;如果负载减少,则相应降低电压和频率以减少能耗;
电源门控技术模拟:在处理器的不同部分根据需要关闭电源,以减少空闲部分的能耗;
睡眠模式模拟:在处理器不活跃时,模拟进入低功耗睡眠状态;
S52,数据监控与收集:在仿真执行过程中,实时监控和记录处理器的能耗数据,为分析和调整提供输入;
S53,智能调整算法实施:根据收集到的能耗数据,实施智能调整算法,分析当前的能源消耗模式和处理器性能,自动调整能耗策略以达到预定的能效目标;
S54,性能与能耗评估:仿真测试完成后,评估处理器在不同能源消耗策略下的性能表现,确定处理器在节能和性能保持之间的最优平衡点。
评估策略对处理器响应时间和处理能力的影响,特别是在能耗敏感的应用场景中。
进一步的,所述能耗数据包括时钟频率、核心数/>、核心使用率/>、功耗/>、温度/>,智能调整算法使用以下计算进行能耗优化决策:
功耗预测模型:,其中,/>是功耗,/>是时钟频率,/>是核心使用率,/>是核心数,/>是与处理器硬件特性相关的常数;/>起到调整因子的作用,表示实际参与计算的核心与总核心的比例,进而影响总体功耗;
调整决策:当高于预定阈值/>时,将计算一个新的频率/>以减少功耗,通过解下列方程得到:
,其中,/>是新的目标功耗,低于/>。
一种处理器功能仿真验证系统,用于实现上述的一种处理器功能仿真验证方法,包括以下模块:
动态配置管理模块:负责初始化和配置虚拟仿真环境;根据输入的处理器核心数、时钟频率、功耗限制和目标应用类型自动选择和配置资源;使用神经网络模型预测所需资源配置,并根据历史数据优化资源分配;
测试用例生成模块:通过符号执行机制生成测试用例,探索处理器行为模型的所有执行路径;定义符号变量,建立和符号化处理器行为模型;使用符号执行工具探索并生成针对处理器功能的测试用例;
自动化测试部署与执行模块:利用脚本驱动框架自动化部署和执行生成的测试用例;监控测试执行过程并收集性能数据和运行状态;
智能分析模块:采用最小角回归算法对监控到的数据进行实时分析;识别性能瓶颈或功能缺陷,并提供调整建议;
自适应能源管理模块:模拟和管理不同的能源消耗策略,包括动态电压频率调整和电源门控技术;根据仿真数据自动调整处理器的能耗模式,优化能源效率;
性能与能耗评估模块:在仿真测试完成后,评估处理器在不同能源消耗策略下的性能表现;分析策略对处理器响应时间和处理能力的影响;
反馈与优化模块:根据测试结果和性能评估反馈调整设计和测试策略;不断迭代和优化仿真模型及其参数以适应新的测试条件和性能要求。
本发明的有益效果:
本发明,通过动态配置算法和符号执行机制,此仿真验证方法使得设计团队能够在产品实际制造前预测并优化处理器的各项性能指标。基于预测模型自动调整仿真环境的参数,确保仿真环境与实际应用场景的高度匹配。通过符号执行深入测试处理器行为,系统地识别所有可能的状态和行为,确保发现潜在的设计缺陷。这不仅减少了开发周期中可能出现的返工和错误,也显著提升了产品最终的市场表现,因为它能够更好地满足性能和安全性需求。
本发明,采用最小角回归(LAR)和智能调整算法的实施,使得处理器在仿真测试过程中的性能数据和运行状态可以实时监控和分析。智能分析算法能够实时识别性能瓶颈或功能缺陷,并提供具体的改进建议。这样的反馈机制不仅增加了问题解决的速度,而且提高了设计的总体质量。通过分析核心使用率和其他关键指标,智能算法调整处理器的运行状态,优化能耗与性能之间的平衡,特别是在能耗敏感的应用如移动设备和嵌入式系统中尤为重要。
本发明,引入的自适应能源管理仿真功能使得处理器设计可以在不同的能源消耗策略下进行测试,模拟不同能源消耗策略,如DVFS和电源门控技术,使设计团队能够在保持性能的同时优化能源使用。通过实际的仿真数据评估不同策略的效果,优化处理器设计以达到最佳的能效比,特别是对于电池驱动的设备来说,这可以大幅延长电池寿命并提高用户满意度。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的验证方法流程示意图;
图2为本发明实施例的仿真验证系统功能模块示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。
需要说明的是,除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如图1所示,一种处理器功能仿真验证方法,包括以下步骤:
S1:设计一套模拟处理器内核的虚拟仿真环境,并初始化虚拟仿真环境,在初始化虚拟仿真环境时,通过动态配置算法,根据不同的处理器设计目标和参数自动选择和配置仿真环境的资源,根据处理器的目标应用(如移动设备、高性能计算或嵌入式系统),自动调整内存管理和处理速度的模拟参数,以匹配实际应用场景的需求;
S2:在仿真环境中,实施基于符号执行机制,并依据预定的处理器性能指标和行为模型来生成测试用例;
S3:利用脚本驱动框架,自动化部署生成的测试用例,并在虚拟仿真环境中执行;
a.生成的测试用例将与相应脚本关联,每个脚本负责设置测试用例所需的特定仿真环境参数,包括处理器核心数、时钟频率、功耗限制等,此外,脚本还将配置仿真环境以模拟不同的操作条件,如温度变化、电源波动等。
b.部署一个脚本驱动框架,该框架能够读取测试脚本,解析其中的指令,并在虚拟仿真环境中自动配置必要的硬件和软件资源,框架支持多种脚本语言,以适应不同的测试需求和技术栈。
c.通过脚本驱动框架,自动化地部署测试用例,框架将调用相应的脚本来配置仿真环境,然后自动启动仿真测试,测试过程中,框架监控并记录测试的执行状态和结果。
d.测试完成后,脚本驱动框架将收集仿真结果,包括处理器的性能数据、功耗记录以及任何异常或错误信息,这些数据随后被用于评估处理器的性能和稳定性,以及确定是否满足预定的性能指标。
S4:采用智能分析算法,在仿真测试执行过程中,分析监控到的性能数据和运行状态,以确定处理器是否达到设计规格,并识别是否存在性能瓶颈或功能缺陷;
S5:引入自适应能源管理仿真功能,在虚拟仿真环境中模拟不同的能源消耗策略,并根据仿真数据自动调整处理器的能耗模式,评估处理器在能耗敏感型应用中的表现,如可穿戴设备或物联网设备。
S1具体包括:
S11,输入分析阶段:接收输入,输入包括处理器的核心数、时钟频率、功耗限制、目标应用类型(如移动设备、高性能计算或嵌入式系统);
S12,资源需求映射:基于输入参数,使用神经网络模型来预测所需的资源配置,该模型训练基于历史数据,包括不同处理器设计的资源使用效率和性能结果;
S13,资源匹配与优化:查询一个预先定义的资源配置数据库,资源配置数据库根据不同的设计目标分类存储各类资源配置方案,包括内存配置、处理速度、I/O接口类型,选择与预测需求最匹配的配置方案;
S14,参数调整与验证:选定资源配置方案后,实施细粒度的调整,根据仿真初步运行结果微调内存大小或调整缓存策略;
S15,环境搭建与反馈循环:完成资源配置后,初始化仿真环境并开始基线测试,基线测试结果将反馈至模型,用于调整和优化模型预测的准确性。
神经网络模型具体如下:
步骤1: 数据收集和预处理;
收集数据:首先需要收集大量关于不同处理器设计及其对应的成功仿真配置的数据,数据包括处理器的核心数、时钟频率、功耗、目标应用类型(例如,移动设备、高性能计算、嵌入式系统),以及与这些参数相对应的资源配置(内存大小、I/O接口配置、网络带宽等)。
预处理数据:清洗数据,填补缺失值,对数据进行标准化或归一化处理,使之适合用于训练神经网络,将分类数据(如目标应用类型)进行独热编码。
步骤2: 设计神经网络结构;
输入层:设计输入层以接收处理器设计的特征,如核心数、时钟频率等。
隐藏层:构建多个隐藏层,使用激活函数以增加网络的非线性能力,这对于捕捉复杂的模式很重要。
输出层:输出层的设计取决于要预测的资源配置类型,如果资源配置包括内存大小和I/O接口类型,则输出层可以具有多个节点,每个节点代表一种资源的配置。
步骤3: 训练神经网络;
选择损失函数和优化器:对于回归任务(如预测具体的资源量),使用均方误差MSE作为损失函数;对于分类任务(选择几种类型的I/O接口),使用交叉熵损失,选择优化器来最小化损失函数。
分批训练模型:使用批处理的方式输入数据,进行前向传播、反向传播,根据损失函数更新网络权重,使用验证数据集来测试网络的性能,根据需要调整网络结构或参数。
步骤4: 模型评估和部署;
评估模型:使用测试数据集评估模型的准确性和泛化能力,使用混淆矩阵、精确率指标评估分类任务,使用决定系数、均方误差评估回归任务;将训练好的模型部署到仿真系统中,实时接收新的处理器设计参数,预测并配置仿真环境。
符号执行的测试用例生成技术,通过使用符号值而非具体的输入值来执行程序,能够系统地探索程序的执行路径,应用符号执行算法来生成针对处理器功能仿真验证的测试用例,可以高效地覆盖处理器设计中的各种可能的状态和行为,下面是如何利用符号执行算法依据预定的处理器性能指标和行为模型来生成测试用例的步骤:
S21,定义符号变量:定义处理器的核心数、时钟频率、功耗限制、目标应用类型作为符号变量,符号变量代表不同的输入配置,而不是具体的数值;
S22,建立处理器行为模型:创建一个处理器的行为模型,其中包含处理器的操作逻辑、状态转换和对环境变量的响应,再构建符号化处理器模型,将行为模型中的决策点、条件判断和计算表达式使用符号变量表示,使行为模型的行为可根据符号变量的不同取值而变化,
S23,符号执行:使用符号执行工具,如 KLEE 或 Microsoft's Z3,对处理器行为模型进行执行,符号执行工具探索所有可能的执行路径,每条执行路径都对应于一组符号变量取值,在每个条件判断点,符号执行将评估所有可能的条件结果(例如,一个条件判断可能依赖于符号变量表示的时钟频率),并相应地分叉执行路径;
S24,生成测试用例:从每个独立的执行路径中提取出测试用例,每条执行路径的结束点(如异常、错误状态或重要的行为输出)均转换为一个测试用例,测试用例将具体化符号变量,提供具体输入值,以重现该执行路径,选择覆盖新路径或未测试代码段的测试用例,确保生成的测试集具有高覆盖率;
S25,测试用例验证与迭代:在实际的虚拟仿真环境中执行生成的测试用例,验证处理器性能是否符合预期,根据测试结果调整行为模型或符号执行的参数设置,优化测试用例生成过程。
通过这种方法,符号执行不仅能够系统地覆盖处理器设计的所有可能状态和行为,还能生成能够触发或验证处理器在各种预定性能指标下的表现的高效测试用例。这种技术特别适合于复杂的处理器设计,可以确保测试的全面性和深入性。
创建一个处理器的行为模型包括:
设性能参数:核心数为n、时钟频率为f、功耗为P、目标应用类型为type,处理器的基本行为描述为处理指令、管理内存请求和调节功耗,创建一个基本行为模型,计算表示为:
功耗计算公式:,其中,/>是与处理器的设计和技术相关的常数;
性能评分perf:,其中,/>是根据目标应用类型调整的系数,不同的应用类型(如游戏、服务器、移动设备)可能对性能的需求不同;
符号化处理器模型:将性能参数转化为符号变量,、/>、/>以及perf都被视为符号,不赋予具体数值;
行为条件符号化:
功耗超过设定阈值的条件:;
性能达到应用需求的条件:。
符号执行还包括使用符号执行工具对行为模型进行分析,探索所有可能的执行路径,包括:
每种type对应的c{text{type}}值的不同路径;
不同n和f组合下的功耗是否超过P{text{max}};
性能评分是否满足特定应用需求的perf{text{requirement}};
根据符号执行的结果,生成具体化的测试用例:
对于每个符号化条件,提取实现该条件的n和f值;
生成覆盖所有关键行为(功耗超标、性能不足)的测试用例集。
在符号执行中,处理器的关键性能参数(时钟频率f,核心数n,功耗P)被定义为符号变量,这些符号变量代表的是输入配置的抽象表示,而非具体数值。
设有一个基本的处理器行为模型,其中包括一个决策点,例如判断处理器是否超过了功耗阈值,可以表示为一个简单的条件语句:P>PMax,其中,P是功耗的符号变量,P_{\text{max}}是允许的最大功耗阈值。
在符号执行过程中,工具会探索上述条件的两个可能结果:
路径1(P<=P_{\text{max}}):处理器功耗在正常范围内,系统继续正常操作。
路径2(P>P_{\text{max}}):处理器功耗超过阈值,系统可能需要降频或采取其他节能措施。
对于每个路径,符号执行工具将生成相应的测试用例。为了具体化这个过程,需要计算各个路径条件的具体化值。
设处理器的功耗P与时钟频率f和核心数n相关,用以下公式表示:
P=k·n·f2,其中,k是与处理器架构相关的常数,上式说明处理器的功耗与核心数和时钟频率的平方成正比。
利用上式,可以为每条路径生成具体的测试用例,例如,如果P_{\text{max}}是100瓦特,k假定为0.01,需要生成不同n和f组合的测试用例,满足或不满足功耗条件:
测试用例1(路径1,满足条件):令n=4,f=2.5GHz,计算得P=0.01\cdot4\cdot(2.5)^2=25W,小于100瓦特,满足功耗要求。
测试用例2(路径2,不满足条件):令n=8,f=4GHz,计算得P=0.01\cdot8\cdot(4)^2=128W,超过100瓦特,不满足功耗要求。
这些测试用例将被用于在仿真环境中验证处理器设计的功耗管理策略是否有效,以及处理器在不同负载下的性能表现,根据测试结果,进一步调整模型和测试参数,优化设计。
最小角回归(LAR)适合于变量选择和处理高维数据,在处理器仿真测试数据分析中,LAR 在构建模型的过程中逐步引入变量,提供了自然的变量选择机制。这对于确定哪些性能指标对于识别性能瓶颈和功能缺陷最为关键尤其有价值。在处理器测试中,可能会产生大量的性能监控数据,特别是在多核处理器和复杂应用中。LAR 能有效处理这些高维数据集,找到最有信息量的特征,S4中的智能分析算法采用最小角回归LAR模型,具体包括:
S41,获取处理器的性能数据和运行状态参数,包括处理器的时钟频率、核心温度、功耗、核心使用率以及缓存命中率,同时进行预处理;
S42,设置最小角回归LAR模型,以处理器是否达到设计规格作为响应变量(如性能是否符合预期),其他性能数据和运行状态参数作为预测变量,LAR模型在模型建立过程中逐步选择变量,这一特性使其非常适合处理高维数据集,帮助确定对处理器性能影响最大的因素;
S43,执行最小角回归分析,在仿真测试数据上应用LAR模型,逐步引入对输出变量影响最大的预测变量,持续直到达到预定停止准则,如达到一个预定的错误率或包含足够的变量,根据初步结果,调整模型参数,包括引入更多变量或调整正则化强度,以优化模型的性能和准确性;
S44,分析和诊断,配置显示单元,显示哪些变量被选入模型以及它们的系数大小,从而指示变量对性能的影响程度,通过分析模型结果,识别性能瓶颈和功能缺陷。
将分析结果反馈到设计和测试流程中,用于指导后续的设计改进和测试策略调整,根据测试结果和设计变更不断迭代和优化LAR模型,确保模型始终适应最新的性能数据和测试条件。
最小角回归LAR模型的变量选择和回归方法表达如下:
标准化预测变量:对于所有预测变量,进行标准化处理,使得每个变量的均值为0,标准差为1:/>,其中,/>是变量/>的均值,/>是其标准差;
初始化:初始化系数(对所有/>),计算响应变量/>与每个预测变量/>的相关系数/>;
迭代选择变量:在每一步迭代中,选择与当前残差相关系数最大的预测变量,设是选择的变量,其中,初始时残差/>;更新系数/>以使得/>和/>的相关性最小化,使用等角方向更新:
,其中,/>是步长,(通过计算路径上的一组标准化预测变量的“等角”方向确定);
更新残差以反映新的回归线:/>。
在处理器性能数据的分析中,最小角回归用于确定哪些性能指标(如时钟频率、核心使用率、功耗等)对于处理器性能有最大影响,通过逐步引入影响最大的变量,LAR帮助识别出对性能和稳定性影响最关键的因素,从而优化处理器的设计和改进测试策略。
变量选择的优势:通过精确地选择最有影响的性能参数,可以避免在模型中包含无关的预测变量,从而提高模型的解释力和预测准确性。
诊断性能瓶颈和功能缺陷:通过分析系数的大小和符号,可以判断各性能指标如何影响整体性能,特别是哪些指标导致性能下降或系统不稳定,为设计优化提供依据。
S5中的自适应能源管理仿真功能具体包括:
S51,模拟能源消耗策略:在虚拟仿真环境中设置不同的能源消耗策略,通过设置不同的运行场景和应用负载,模拟处理器在各种工作条件下的能源消耗,具体操作如下:
动态电压频率调整(DVFS)模拟:根据处理器负载动态调整处理器的电压和频率,如果处理器负载增加,增加电压和频率以保持性能;如果负载减少,则相应降低电压和频率以减少能耗;
电源门控技术模拟:在处理器的不同部分根据需要关闭电源,以减少空闲部分的能耗;
睡眠模式模拟:在处理器不活跃时,模拟进入低功耗睡眠状态;
S52,数据监控与收集:在仿真执行过程中,实时监控和记录处理器的能耗数据,为分析和调整提供输入;
S53,智能调整算法实施:根据收集到的能耗数据,实施智能调整算法,分析当前的能源消耗模式和处理器性能,自动调整能耗策略以达到预定的能效目标;
S54,性能与能耗评估:仿真测试完成后,评估处理器在不同能源消耗策略下的性能表现,确定处理器在节能和性能保持之间的最优平衡点。
评估策略对处理器响应时间和处理能力的影响,特别是在能耗敏感的应用场景中。
能耗数据包括时钟频率、核心数/>、核心使用率/>、功耗/>、温度/>,智能调整算法使用以下计算进行能耗优化决策:
功耗预测模型:,其中,/>是功耗,/>是时钟频率,/>是核心使用率,/>是核心数,/>是与处理器硬件特性相关的常数;/>起到调整因子的作用,表示实际参与计算的核心与总核心的比例,进而影响总体功耗;
调整决策:当高于预定阈值/>时,将计算一个新的频率/>以减少功耗,通过解下列方程得到:
,其中,/>是新的目标功耗,低于/>。通过控制时钟频率/>,可以动态调整处理器的功耗以适应不同的性能需求和能源效率目标。
如图2所示,一种处理器功能仿真验证系统,用于实现上述的一种处理器功能仿真验证方法,包括以下模块:
动态配置管理模块:负责初始化和配置虚拟仿真环境;根据输入的处理器核心数、时钟频率、功耗限制和目标应用类型自动选择和配置资源;使用神经网络模型预测所需资源配置,并根据历史数据优化资源分配;
测试用例生成模块:通过符号执行机制生成测试用例,探索处理器行为模型的所有执行路径;定义符号变量,建立和符号化处理器行为模型;使用符号执行工具探索并生成针对处理器功能的测试用例;
自动化测试部署与执行模块:利用脚本驱动框架自动化部署和执行生成的测试用例;监控测试执行过程并收集性能数据和运行状态;
智能分析模块:采用最小角回归算法对监控到的数据进行实时分析;识别性能瓶颈或功能缺陷,并提供调整建议;
自适应能源管理模块:模拟和管理不同的能源消耗策略,包括动态电压频率调整和电源门控技术;根据仿真数据自动调整处理器的能耗模式,优化能源效率;
性能与能耗评估模块:在仿真测试完成后,评估处理器在不同能源消耗策略下的性能表现;分析策略对处理器响应时间和处理能力的影响;
反馈与优化模块:根据测试结果和性能评估反馈调整设计和测试策略;不断迭代和优化仿真模型及其参数以适应新的测试条件和性能要求。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明旨在涵盖落入权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种处理器功能仿真验证方法,其特征在于,包括以下步骤:
S1:设计一套模拟处理器内核的虚拟仿真环境,并初始化虚拟仿真环境,在初始化虚拟仿真环境时,通过动态配置算法,根据不同的处理器设计目标和参数自动选择和配置仿真环境的资源;
S2:在仿真环境中,实施基于符号执行机制,并依据预定的处理器性能指标和行为模型来生成测试用例;
S3:利用脚本驱动框架,自动化部署生成的测试用例,并在虚拟仿真环境中执行;
S4:采用智能分析算法,在仿真测试执行过程中,分析监控到的性能数据和运行状态,以确定处理器是否达到设计规格,并识别是否存在性能瓶颈或功能缺陷;
S5:引入自适应能源管理仿真功能,在虚拟仿真环境中模拟不同的能源消耗策略,并根据仿真数据自动调整处理器的能耗模式,评估处理器在能耗敏感型应用中的表现。
2.根据权利要求1所述的一种处理器功能仿真验证方法,其特征在于,所述S1具体包括:
S11,输入分析阶段:接收输入,输入包括处理器的核心数、时钟频率、功耗限制、目标应用类型;
S12,资源需求映射:基于输入参数,使用神经网络模型来预测所需的资源配置,该模型训练基于历史数据,包括不同处理器设计的资源使用效率和性能结果;
S13,资源匹配与优化:查询一个预先定义的资源配置数据库,资源配置数据库根据不同的设计目标分类存储各类资源配置方案,包括内存配置、处理速度、I/O接口类型,选择与预测需求最匹配的配置方案;
S14,参数调整与验证:选定资源配置方案后,实施细粒度的调整,根据仿真初步运行结果微调内存大小或调整缓存策略;
S15,环境搭建与反馈循环:完成资源配置后,初始化仿真环境并开始基线测试,基线测试结果将反馈至模型,用于调整和优化模型预测的准确性。
3.根据权利要求2所述的一种处理器功能仿真验证方法,其特征在于,所述S2中的符号执行机制具体包括:
S21,定义符号变量:定义处理器的核心数、时钟频率、功耗限制、目标应用类型作为符号变量,所述符号变量代表不同的输入配置,而不是具体的数值;
S22,建立处理器行为模型:创建一个处理器的行为模型,其中包含处理器的操作逻辑、状态转换和对环境变量的响应,再构建符号化处理器模型,将行为模型中的决策点、条件判断和计算表达式使用符号变量表示,使行为模型的行为可根据符号变量的不同取值而变化,
S23,符号执行:使用符号执行工具,对处理器行为模型进行执行,符号执行工具探索所有执行路径,每条执行路径都对应于一组符号变量取值,在每个条件判断点,符号执行将评估所有条件结果,并相应地分叉执行路径;
S24,生成测试用例:从每个独立的执行路径中提取出测试用例,每条执行路径的结束点均转换为一个测试用例,测试用例将具体化符号变量,提供具体输入值,以重现该执行路径,选择覆盖新路径或未测试代码段的测试用例,确保生成的测试集具有高覆盖率;
S25,测试用例验证与迭代:在实际的虚拟仿真环境中执行生成的测试用例,验证处理器性能是否符合预期,根据测试结果调整行为模型或符号执行的参数设置,优化测试用例生成过程。
4.根据权利要求3所述的一种处理器功能仿真验证方法,其特征在于,所述创建一个处理器的行为模型包括:
设性能参数:核心数为n、时钟频率为f、功耗为P、目标应用类型为type,处理器的基本行为描述为处理指令、管理内存请求和调节功耗,创建一个基本行为模型,计算表示为:
功耗计算公式:,其中,/>是与处理器的设计和技术相关的常数;
性能评分perf:,其中,/>是根据目标应用类型调整的系数;
符号化处理器模型:将性能参数转化为符号变量,、/>、/>以及perf都被视为符号,不赋予具体数值;
行为条件符号化:
功耗超过设定阈值的条件:;
性能达到应用需求的条件:。
5.根据权利要求4所述的一种处理器功能仿真验证方法,其特征在于,所述符号执行还包括使用符号执行工具对行为模型进行分析,探索所有执行路径,包括:
每种type对应的c{text{type}}值的不同路径;
不同n和f组合下的功耗是否超过P{text{max}};
性能评分是否满足特定应用需求的perf{text{requirement}};
根据符号执行的结果,生成具体化的测试用例:
对于每个符号化条件,提取实现该条件的n和f值;
生成覆盖所有关键行为的测试用例集。
6.根据权利要求2所述的一种处理器功能仿真验证方法,其特征在于,所述S4中的智能分析算法采用最小角回归LAR模型,具体包括:
S41,获取处理器的性能数据和运行状态参数,包括处理器的时钟频率、核心温度、功耗、核心使用率以及缓存命中率,同时进行预处理;
S42,设置最小角回归LAR模型,以处理器是否达到设计规格作为响应变量,其他性能数据和运行状态参数作为预测变量;
S43,执行最小角回归分析,在仿真测试数据上应用LAR模型,逐步引入对输出变量影响最大的预测变量,持续直到达到预定停止准则,根据初步结果,调整模型参数,包括引入更多变量或调整正则化强度,以优化模型的性能和准确性;
S44,分析和诊断,配置显示单元,显示哪些变量被选入模型以及它们的系数大小,从而指示变量对性能的影响程度,通过分析模型结果,识别性能瓶颈和功能缺陷。
7.根据权利要求6所述的一种处理器功能仿真验证方法,其特征在于,最小角回归LAR模型的变量选择和回归方法表达如下:
标准化预测变量:对于所有预测变量,进行标准化处理,使得每个变量的均值为0,标准差为1:/>,其中,/>是变量/>的均值,/>是其标准差;
初始化:初始化系数,计算响应变量/>与每个预测变量/>的相关系数/>;
迭代选择变量:在每一步迭代中,选择与当前残差相关系数最大的预测变量,设/>是选择的变量,其中,初始时残差/>;更新系数/>以使得/>和/>的相关性最小化,使用等角方向更新:
,其中,/>是步长;
更新残差以反映新的回归线:/>。
8.根据权利要求1所述的一种处理器功能仿真验证方法,其特征在于,所述S5中的自适应能源管理仿真功能具体包括:
S51,模拟能源消耗策略:在虚拟仿真环境中设置不同的能源消耗策略,通过设置不同的运行场景和应用负载,模拟处理器在各种工作条件下的能源消耗,具体操作如下:
动态电压频率调整模拟:根据处理器负载动态调整处理器的电压和频率,如果处理器负载增加,增加电压和频率以保持性能;如果负载减少,则相应降低电压和频率以减少能耗;
电源门控技术模拟:在处理器的不同部分根据需要关闭电源,以减少空闲部分的能耗;
睡眠模式模拟:在处理器不活跃时,模拟进入低功耗睡眠状态;
S52,数据监控与收集:在仿真执行过程中,实时监控和记录处理器的能耗数据,为分析和调整提供输入;
S53,智能调整算法实施:根据收集到的能耗数据,实施智能调整算法,分析当前的能源消耗模式和处理器性能,自动调整能耗策略以达到预定的能效目标;
S54,性能与能耗评估:仿真测试完成后,评估处理器在不同能源消耗策略下的性能表现,确定处理器在节能和性能保持之间的最优平衡点。
9.根据权利要求8所述的一种处理器功能仿真验证方法,其特征在于,所述能耗数据包括时钟频率、核心数/>、核心使用率/>、功耗/>、温度/>,智能调整算法使用以下计算进行能耗优化决策:
功耗预测模型:,其中,/>是功耗,/>是时钟频率,/>是核心使用率,/>是核心数,/>是与处理器硬件特性相关的常数;
调整决策:当高于预定阈值/>时,将计算一个新的频率/>以减少功耗,通过解下列方程得到:
,其中,/>是新的目标功耗,低于/>。
10.一种处理器功能仿真验证系统,用于实现如权利要求1-9任一项所述的一种处理器功能仿真验证方法,其特征在于,包括以下模块:
动态配置管理模块:负责初始化和配置虚拟仿真环境;根据输入的处理器核心数、时钟频率、功耗限制和目标应用类型自动选择和配置资源;使用神经网络模型预测所需资源配置,并根据历史数据优化资源分配;
测试用例生成模块:通过符号执行机制生成测试用例,探索处理器行为模型的所有执行路径;定义符号变量,建立和符号化处理器行为模型;使用符号执行工具探索并生成针对处理器功能的测试用例;
自动化测试部署与执行模块:利用脚本驱动框架自动化部署和执行生成的测试用例;监控测试执行过程并收集性能数据和运行状态;
智能分析模块:采用最小角回归算法对监控到的数据进行实时分析;识别性能瓶颈或功能缺陷,并提供调整建议;
自适应能源管理模块:模拟和管理不同的能源消耗策略,包括动态电压频率调整和电源门控技术;根据仿真数据自动调整处理器的能耗模式,优化能源效率;
性能与能耗评估模块:在仿真测试完成后,评估处理器在不同能源消耗策略下的性能表现;分析策略对处理器响应时间和处理能力的影响;
反馈与优化模块:根据测试结果和性能评估反馈调整设计和测试策略;不断迭代和优化仿真模型及其参数以适应新的测试条件和性能要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410564339.8A CN118153516A (zh) | 2024-05-09 | 2024-05-09 | 一种处理器功能仿真验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410564339.8A CN118153516A (zh) | 2024-05-09 | 2024-05-09 | 一种处理器功能仿真验证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118153516A true CN118153516A (zh) | 2024-06-07 |
Family
ID=91300880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410564339.8A Pending CN118153516A (zh) | 2024-05-09 | 2024-05-09 | 一种处理器功能仿真验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118153516A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120290282A1 (en) * | 2011-05-10 | 2012-11-15 | International Business Machines Corporation | Reachability analysis by logical circuit simulation for providing output sets containing symbolic values |
WO2020043999A1 (fr) * | 2018-08-31 | 2020-03-05 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Outil et procédé de conception et de validation d'un système flots de données par un modèle formel |
US20200285900A1 (en) * | 2019-03-06 | 2020-09-10 | Wuhan University | Power electronic circuit fault diagnosis method based on optimizing deep belief network |
US20210342254A1 (en) * | 2019-07-08 | 2021-11-04 | Joel Arthur Epstein | Automated electronics to difficult sail lowering in quickly changing wind spee |
CN115168861A (zh) * | 2022-06-10 | 2022-10-11 | 阿里云计算有限公司 | 数据安全验证方法、装置、设备及存储介质 |
CN117131823A (zh) * | 2023-08-29 | 2023-11-28 | 中国科学院上海高等研究院 | 一种处理器形式化验证方法及系统 |
-
2024
- 2024-05-09 CN CN202410564339.8A patent/CN118153516A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120290282A1 (en) * | 2011-05-10 | 2012-11-15 | International Business Machines Corporation | Reachability analysis by logical circuit simulation for providing output sets containing symbolic values |
WO2020043999A1 (fr) * | 2018-08-31 | 2020-03-05 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Outil et procédé de conception et de validation d'un système flots de données par un modèle formel |
US20200285900A1 (en) * | 2019-03-06 | 2020-09-10 | Wuhan University | Power electronic circuit fault diagnosis method based on optimizing deep belief network |
US20210342254A1 (en) * | 2019-07-08 | 2021-11-04 | Joel Arthur Epstein | Automated electronics to difficult sail lowering in quickly changing wind spee |
CN115168861A (zh) * | 2022-06-10 | 2022-10-11 | 阿里云计算有限公司 | 数据安全验证方法、装置、设备及存储介质 |
CN117131823A (zh) * | 2023-08-29 | 2023-11-28 | 中国科学院上海高等研究院 | 一种处理器形式化验证方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11328206B2 (en) | Systems and methods for optimizing operations of computing devices using deep neural networks | |
Islam et al. | Predicting application failure in cloud: A machine learning approach | |
Jung et al. | Supervised learning based power management for multicore processors | |
Ipek et al. | Efficient architectural design space exploration via predictive modeling | |
CN106991030B (zh) | 一种基于在线学习的系统功耗优化的轻量级方法 | |
CN116450486B (zh) | 多元异构计算系统内节点的建模方法、装置、设备及介质 | |
Jichang et al. | Water quality prediction model based on GRU hybrid network | |
Dogani et al. | K-agrued: A container autoscaling technique for cloud-based web applications in kubernetes using attention-based gru encoder-decoder | |
Storlie et al. | Modeling and predicting power consumption of high performance computing jobs | |
Shu et al. | Resource demand prediction of cloud workloads using an attention-based GRU model | |
CN114648103A (zh) | 用于处理深度学习网络的自动多目标硬件优化 | |
Lee et al. | Energy-efficient control of mobile processors based on long short-term memory | |
JP2022023420A (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
Kunas et al. | Neuropar, a neural network-driven EDP optimization strategy for parallel workloads | |
Palermo et al. | Robust optimization of SoC architectures: A multi-scenario approach | |
De Carvalho et al. | Autonomous power management for embedded systems using a non-linear power predictor | |
Michanan et al. | Predicting data structures for energy efficient computing | |
Ni et al. | Online performance and power prediction for edge TPU via comprehensive characterization | |
CN118153516A (zh) | 一种处理器功能仿真验证方法及系统 | |
Tu et al. | Unveiling energy efficiency in deep learning: Measurement, prediction, and scoring across edge devices | |
JP7060130B1 (ja) | 運用支援装置、運用支援方法及びプログラム | |
US11644882B2 (en) | System and method for predicting power usage of network components | |
Nana et al. | Energy Concerns with HPC Systems and Applications | |
Vinay et al. | Light weight rl based run time power management methodology for edge devices | |
CN117873690B (zh) | 运算器芯片功耗管理方法、计算子系统以及智能计算平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |