CN112069081B - 一种基于遗传算法的目录控制器测试激励生成方法 - Google Patents
一种基于遗传算法的目录控制器测试激励生成方法 Download PDFInfo
- Publication number
- CN112069081B CN112069081B CN202011019028.1A CN202011019028A CN112069081B CN 112069081 B CN112069081 B CN 112069081B CN 202011019028 A CN202011019028 A CN 202011019028A CN 112069081 B CN112069081 B CN 112069081B
- Authority
- CN
- China
- Prior art keywords
- chromosome
- population
- test
- cov
- genetic algorithm
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Physiology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Genetics & Genomics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Tests Of Electronic Circuits (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于遗传算法的目录控制器测试激励生成方法,本发明包括:S1:针对目录控制器的测试特征进行遗传算法的符号编码;S2:创建测试激励的初代种群,基于否定选择算法选择随机染色体加入种群;S3:进行变异操作生成新染色体,基于否定选择算法加入种群;S4:进行交叉操作生成新染色体,基于否定选择算法加入种群;S5:重复步骤S3‑S4直至达到最大遗传代数或出现适应度值大于等于设定阈值的染色体。本发明能够挖掘覆盖率与激励输入之间的关系,指导随机测试激励的生成,依据否定选择算法有监督选择新染色体加入种群,达到最少的冗余测试激励,尽快覆盖不同的覆盖率功能点,减少测试时间,提高了验证效率。
Description
技术领域
本发明涉及芯片设计技术,具体涉及一种基于遗传算法的目录控制器测试激励生成方法。
背景技术
片上多核处理器(CMP,Chip Multi-processors)已经成为处理器发展的方向,随着多核多线程之间数据通信需求的不断增强,片上集成大容量Cache(高速缓冲)实现数据共享和交互,从而降低访存延迟和减少访问冲突。如图1所示的一款64核处理器,采用CMP结构,包括了处理器核(core)、Cache、片上网络(Network on Chip,NoC)、目录控制器(Directory Control Unit,DCU)、存储控制器(Memory Control Unit)。图1中,Core是CPU核,完成指令的调度与执行;Cache是高速缓存,两个core共享一个Cache;NOC是片上互连网络,提供Cache之间、Cache和CPU外部存储器之间的信息报文交换;DCU是目录控制器,记录各个Cache中数据块的副本使用情况,完成各个Cache之间数据一致性的维护;MCU是存储控制器,外接DRAM存储器,实现存储器的读写访问控制;IOU是IO控制器,外接PCIE设备控制器等IO设备。
目录控制器的功能是支持全局数据共享,跟踪记录各个Cache数据的使用,产生到存储控制器MCU的访问请求,处理Cache一致性协议报文,发出监听请求,接受Cache的监听应答,完成Cache的请求。
目录协议实现方式分为集中式和分布式,集中式目录设计简单,目标控制器周围的网络流量常常是访问热点,进而影响一致性传输延迟,造成网络的功耗热点。为了提高多核处理器目录并行处理能力,如果目标系统的Cache一致性事务均匀分散到目录控制器,一个目标控制器对应高位地址编码相同的存储体。
为进一步提高一个目录控制器并行处理性能,目标控制器可由多个体(bank)实现,如双体按某位地址,如addr[6]交叉访问,目录表通常是组相联模式,如图2所示为24路64项组相联组织,该目标控制器由bank0和bank1两个体实现,每个体包括way0~way23一共24路,每一路下包括64个目录项entry0~entry63。目录项entry与Cache标志位(tag)的组织和寻址方式一般都相同,每个Cache数据块(Cacheline)填充Cache前,目标控制器都分配一个目录项(entry),记录Cacheline数据的使用,Cacheline被替换或不保留数据副本,目录将回收相应的目录项。
如表1所示:每个目录项的内容包括tag、busy、valid、vector、ecc校验等信息。目录的tag,即访存地址的高位,busy定义了目录项的忙状态,如监听请求没有完成,不能处理相同地址的新请求,valid是目录项有效,至少有一个Cache有数据副本,vector位向量,定义了有数据副本的Cache的向量。Ecc校验位,是目录项的海明校验位。
表1:目录项的字段信息表。
V | B | tag | vector | ecc |
图1中的DCU0管理是映射MCU0的访存地址空间的Cache数据一致性记录。如集中式目录控制器,则管理所有访存空间。图1的DCU0可以输入来自32个Cache、或IO控制器的请求,输入MCU响应,输入Cache的监听响应,输出监听Cache的请求,或访存、访问IOU请求。DCU0输入、输出Cache一致性信息都是以片上网络报文格式传输,可分为四类:Cache、IOU读写请求、监听请求、读写响应、监听应答。DCU0验证的主要功能,一是对Cache一致性报文的正确处理,二是目录控制状态机的处理正确性,包括目录命中、替换、目录忙命中、目录满命中、目录不命中等功能点,三是覆盖目录的协议报文各属性,四是关键寄存器属性,目录验证的功能点接近一千七百多个,如何有效覆盖功能点是验证关键。验证过程中采用随机测试,常会出现重复的测试序列,易于进入验证平台期,功能点覆盖率提升缓慢。目录控制器验证关键是,如何自动产生有效的测试激励,突破覆盖率瓶颈,加快覆盖目录的功能点。
芯片功能验证已经越来越成为大规模芯片设计的瓶颈,随着处理器结构多核化、众核化发展,但Cache(高速缓冲)一致性协议日趋复杂,如何保证一致性协议的正确性,一直是工业界和学术界的关注的研究热点。Cache一致性协议随着处理器核数增多,目录协议是最广泛应用的实现方法,与基于侦听的协议相比,其采用点对点的方式,精确发送一致性请求,具有良好可扩展性和可靠性。但是,基于目录的一致性协议形式化验证,会出现状态空间爆炸问题,软模拟验证方法一直是业界常见的验证手段。软模拟的测试激励主要来源是人工书写的测试、随机测试和基于反馈的测试产生器生成的测试激励。人工书写测试向量需要花费大量的时间和人力成本,有时也难于满足回归测试需要大量的、覆盖范围广泛的测试向量;随机测试向量,生成的测试向量的规模和长度灵活可控,但是测试向量易于重复覆盖,为减少冗余激励的生成,加速功能验证收敛,覆盖率反馈驱动随机测试生成方法,是目前随机测试生成技术研究的热点。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于遗传算法的目录控制器测试激励生成方法,本发明能够挖掘覆盖率与激励输入之间的关系,进而指导随机测试激励的生成,自动化随机测试平台产生的大量随机序列,有监督的生成否定选择遗传算法的初始种群;然后,否定选择交叉、变异产生的新的染色体,是否加入种群,进一步优化遗传算法的种群数据,达到最少的冗余测试激励,从而提高测试激励的质量,尽快覆盖不同的覆盖率功能点,减少测试时间,相比于手动构造激励,由于自动生成激励从而极大地缩短了验证工作周期,大幅度降低了人力成本;并且相比伪随机测试,减少冗余测试,提高了验证效率,由此验证工作人员可以投入更多的精力在参考模型的完善以及新项目上,大大加快了芯片验证的流程。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于遗传算法的目录控制器测试激励生成方法,包括:
S1:针对目录控制器的测试特征进行遗传算法的符号编码;
S2:创建测试激励的初代种群,基于否定选择算法生成种群数目M个测试激励集合;
S3:根据变异概率进行变异操作:生成新染色体t3,基于否定选择算法加入种群,计算种群每个染色体与新染色体t3的染色体差异性,若染色体差异性小于阈值则新染色体t3为非自我数据,将该新染色体t3删除,重新进行变异操作;否则新染色体t3为自我数据,将新染色体t3加入重组种群,变异完成后,重组种群所有染色体按照适应度值降序排序,重组种群保留固定种群数目M,删除多余染色体;
S4:根据交叉概率选择重组种群染色体进行交叉操作生成新染色体t4,基于否定选择算法加入次代种群,计算种群每个染色体与新染色体t4的染色体差异性,若染色体差异性小于阈值则新染色体t4为非自我数据,将该新染色体t4删除,重新进行交叉操作;否则新染色体t4为自我数据,将新染色体t4加入次代种群,交叉完成后,次代种群所有染色体按照适应度值降序排序,保留固定种群数目M,删除多余染色体;
S5:重复步骤S3-S4直至达到遗传算法的最大遗传代数或者种群出现适应度值大于等于设定阈值ε的染色体。
优选地,步骤S1中进行遗传算法的符号编码包括:生成测试向量,所述测试向量包括五个方面的特征:报文的操作类型、报文的源节点编号、报文的地址相关性、体编号、报文请求长度信息;然后将每一个测试向量视为一个基因,多个测试向量构成测试激励视为包含多个基因的染色体,从而完成遗传算法的符号编码,所述报文的操作类型包括操作码、无高速缓冲读、共享读、无高速缓冲写、高速缓冲维护命令,所述报文的源节点编号为高速缓冲或IO控制器的编号。
优选地,步骤S2的详细步骤包括:
S2a:随机生成初始的测试序列作为染色体t1,计算染色体t1的覆盖率,加入种群;
S2b:随机生成染色体t2,计算染色体t2的覆盖率;
S2d:重复步骤S2b和步骤S2c,直到种群中的染色体数目达到预定的种群数目M。
优选地,记任意染色体tk对功能j的覆盖率为covtk[j],则covtk[j]的计算函数表达式如下:
covtk[j]=covtk[1,j]|covtk[2,j]|covtk[3,j]|...|covtk[i,j]|...|covtk[C,j]
其中,covtk[1,j]~covtk[C,j]分别表示染色体tk中的第1个~第C个基因是否覆盖功能j,C为染色体tk中包含的基因数量,covtk[1,j]~covtk[C,j]中的任意covtk[i,j]取值为1或0,取值为1表示第i个基因覆盖功能j,取值为0表示第i个基因没有覆盖功能j。
优选地,所述染色体差异性是利用最小汉明距离定义,计算任意染色体tk和种群中染色体的染色体tl之间的最小汉明距离的函数表达式如下:
上式中,distancetk表示染色体tk与种群中染色体的染色体tl之间的最小汉明距离,N表示测试的功能点总数,covtk[j]表示染色体tk的覆盖率,covtl[j]表示种群中染色体的染色体tl的覆盖率,M为种群数目。
优选地,步骤S3中变异操作生成新染色体时变异操作的位置是基因的第一和第二个位置,对应是测试向量操作码和测试的请求源,且变异操作后检查变异的合法性,若变异操作为违法操作则将其删除后重新进行变异操作。
优选地,记种群或次代种群中任意染色体tm的适应度值为Fitnesstm,则Fitnesstm的计算函数表达式如下:
上式中,Fitnesstm表示染色体tm的适应度值,wj表示染色体tm的第j个功能点的权重系数,N表示测试覆盖的功能点总数,covtm[j]表示染色体tm对功能j的覆盖率。
此外,本发明还提供一种基于遗传算法的目录控制器测试激励生成系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于遗传算法的目录控制器测试激励生成方法的步骤,或者该计算机设备的存储器中存储有被编程或配置以执行所述基于遗传算法的目录控制器测试激励生成方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于遗传算法的目录控制器测试激励生成方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明将遗传算法应用在覆盖率反馈驱动随机测试,测试生成时,不需要复杂的领域先验知识,节约了大量的专家时间,只要根据输入和输出,自动地学习反馈测试向量和覆盖点之间的关系,提高了验证的自动化程度。
2、本发明将遗传算法应用在覆盖率反馈驱动随机测试,从而使得测试激励的有效生成问题,抽象转化为一个覆盖率进化提高的遗传算法。基于目录的一致性协议复杂,需要丰富的测试向量测试,随机测试产生大量冗余激励,为了突破覆盖率瓶颈,本发明采用遗传算法不用遍历整个搜索空间,而是根据所选择的适应度函数朝着最有希望的方向前进。
3、本发明将否定选择算法应用在覆盖率反馈驱动随机测试,减少冗余激励的生成,提高了验证效率。否定选择算法(Negative Selection Algorithm,NSA)是人工免疫系统的主要算法之一,根据免疫系统的自己/非己的区别原则,研究了一种检测变化的否定选择算法。本发明依据否定选择算法,应用到遗传算法染色体的生成选择策略,减少冗余测试激励,有监督的生成否定选择遗传算法的初始种群;然后,否定选择交叉变异产生的新染色体,进一步优化遗传算法的种群数据,达到最少的冗余测试激励,从而提高测试激励的质量,尽快覆盖不同的覆盖率功能点,减少测试时间。本发明否定选择算法的阈值设置,采用模拟退火的策略动态调整,早期的种群染色体测试覆盖功能点差异较大,后期覆盖率接近收敛,差异减低增加了算法的运行效率和自适应能力。通常遗传算法染色体的的生成选择策略,是采用轮盘赌选择或者精英保留策略,轮盘赌选择最简单,也是最常见的选择方法,在该方法中,各个测试的选择概率和其适应度值成比例,选择概率反映了染色体的适应度在整个种群的适应度总和中所占的比例,染色体的适应度越大,其被选择的概率越高,反之亦然。采用精英保留的选择策略,是将当前测试集合中适应度最高的测试直接保留到下一代的测试集合中,以避免质量最高的测试被破坏。轮盘赌选择或者精英保留策略对于覆盖率反馈驱动随机测试,出现的冗余测试激励相对较多,覆盖功能点均匀,容易出现覆盖率提升的平台现象。
4、本发明利用遗传算法在覆盖率反馈驱动随机测试,能够挖掘覆盖率与激励输入之间的关系,进而指导随机测试激励的生成,提高覆盖率的增长率,基于否定选择策略,减少冗余激励的模拟时间,提高验证效率。
附图说明
图1为现有的一种64核处理器的结构示意图。
图2为现有的一种24路64项组相联组织的目录控制器的结构示意图。
图3为本发明实施例方法的基本流程示意图。
图4为本发明实施例中的一条染色体实例。
图5为本发明实施例中变异操作的实例。
图6为本发明实施例中交叉操作前的实例。
图7为本发明实施例中交叉操作后的实例。
图8为针对目录控制器DCU构建模拟验证环境。
具体实施方式
如图3所示,本实施例基于遗传算法的目录控制器测试激励生成方法包括:
S1:针对目录控制器的测试特征进行遗传算法的符号编码;
S2:创建测试激励的初代种群,基于否定选择算法(Negative Select Algorithm)生成种群数目M个测试激励集合;
S3:根据变异概率进行变异操作:生成新染色体t3,基于否定选择算法加入种群,计算种群每个染色体与新染色体t3的染色体差异性,若染色体差异性小于阈值则新染色体t3为非自我数据,将该新染色体t3删除,重新进行变异操作;否则新染色体t3为自我数据,将新染色体t3加入重组种群,变异完成后,重组种群所有染色体按照适应度值降序排序,重组种群保留固定种群数目M,删除多余染色体;
S4:根据交叉概率选择重组种群染色体进行交叉操作生成新染色体t4,基于否定选择算法加入次代种群,计算种群每个染色体与新染色体t4的染色体差异性,若染色体差异性小于阈值则新染色体t4为非自我数据,将该新染色体t4删除,重新进行交叉操作;否则新染色体t4为自我数据,将新染色体t4加入次代种群,交叉完成后,次代种群所有染色体按照适应度值降序排序,保留固定种群数目M,删除多余染色体;
S5:重复步骤S3-S4直至达到遗传算法的最大遗传代数或者种群出现适应度值大于等于设定阈值ε的染色体。
测试向量包括的五个方面的特征中:报文的操作类型包括操作码(opcode)、无高速缓冲读(noCache读)、共享读、无高速缓冲写(noCache写)、高速缓冲维护命令(Cache维护命令)。报文的源节点编号即为sendid的编号,报文的源节点编号为高速缓冲或IO控制器的编号。报文的地址相关性为测试所包含的每一条报文的地址相关性(真/假),如果相关,那么读写的地址是相同的;体编号即为bank编号;报文请求长度信息具体为报文请求长度的编码,用于区分报文请求长度是1字节、2字节、16字节还是64字节。
测试激励由多个测试向量构成,即构成染色体,定义32个基因构成一条染色体,如图4所示,染色体是32个基因(gen)构成,gen0是Cache4发出了一条操作码是op5的请求,地址在本条染色体地址第一个地址,即随机地址,访问目录bank1,读取1字节的数据;基因1是Cache0发出了一条操作码是op1的请求,地址与本条染色体地址第一个基因地址相同,访问目录bank1,读取64字节的数据;基因31是IO设备2发出操作码是op0的请求,地址与本条染色体第一个基因地址不相同,读取16字节的数据。
本实施例中,步骤S1中进行遗传算法的符号编码包括:生成测试向量,所述测试向量包括五个方面的特征:报文的操作类型、报文的源节点编号、报文的地址相关性、体编号、报文请求长度信息;然后将每一个测试向量视为一个基因,多个测试向量构成测试激励视为包含多个基因的染色体,从而完成遗传算法的符号编码,所述报文的操作类型包括操作码、无高速缓冲读、共享读、无高速缓冲写、高速缓冲维护命令,所述报文的源节点编号为高速缓冲或IO控制器的编号。
本实施例中,步骤S2中创建测试激励的初代种群时,确定测试集合的大小,如定义种群大小是M个染色体,随机生成M个测试激励集合。需要确定测试集合的大小,即测试集合包含的测试的数目M。当M的取值较小时,算法的计算时间较短,但是算法收敛到最优解的可能性较低,即全局搜索能力较小,可能会得到局部最优解,而非全局最优解.随着M值的增大,算法收敛到最优解的可能性会随之增加,但是算法的计算时间也会随之显著增加。本实例M可取>=32的整数。
本实施例中,步骤S2的详细步骤包括:
S2a:随机生成初始的测试序列作为染色体t1,计算染色体t1的覆盖率,加入种群;
S2b:随机生成染色体t2,计算染色体t2的覆盖率;
S2d:重复步骤S2b和步骤S2c,直到种群中的染色体数目达到预定的种群数目M。
本实施例中,记任意染色体tk对功能j的覆盖率为covtk[j],则covtk[j]的计算函数表达式如下:
covtk[j]=covtk[1,j]|covtk[2,j]|covtk[3,j]|...|covtk[i,j]|...|covtk[C,j]
其中,covtk[1,j]~covtk[C,j]分别表示染色体tk中的第1个~第C个基因是否覆盖功能j,C为染色体tk中包含的基因数量,covtk[1,j]~covtk[C,j]中的任意covtk[i,j]取值为1或0,取值为1表示第i个基因覆盖功能j,取值为0表示第i个基因没有覆盖功能j。
以步骤S2a中计算染色体t1的覆盖率为例,染色体t1的覆盖率定义为covt1[j],j=1,...,N,N表示测试的功能点总数,covt1[j]=1表示染色体t1覆盖到功能j,covt1[j]=0表示染色体t1没有覆盖到功能j,j=1,...,N,染色体t1包括基因个数是C,则有:
上式中,“|”为按位的或操作,表示将covtk[1,j]~covtk[C,j]逐位进行或运算。
步骤S2b中计算染色体t2的覆盖率则记为covt2[j],j=1,2,...,N,N表示测试的功能点总数。
染色体差异性可以有多种距离的方式来进行计算,作为一种可选的实施方式,本实施例中染色体差异性是指最小汉明距离,且计算任意染色体tk和种群中染色体的染色体tl之间的最小汉明距离计算的函数表达式如下:
上式中,distancetk表示染色体tk与种群中染色体的染色体tl之间的最小汉明距离,N表示测试的功能点总数,covtk[j]表示染色体tk的覆盖率,covtl[j]表示种群中染色体的染色体tl的覆盖率,M为种群数目。例如,染色体t2的最小汉明距离的表达式为:
最小汉明距离定义了染色体覆盖率之间的差异性,t2为新染色体,tl为种群的任一个染色体,M为种群染色体个数,染色体t2的distancet2,表示了t2与种群中染色体的最小汉明距离。
上式中,表示第i次更新的阈值,表示第i-1次更新的阈值,mi-1为第i-1次的调节参数,第i次的调节参数mi的更新策略为mi=a*mi-1,a为小于1的更新系数。例如,本实施例中a为0.95,既有:mi=0.95*mi-1。本实施例通过阈值采用模拟退火的策略每使用一次则更新一次阈值的值,促使阈值随进化变得越来越小,早期的染色体覆盖功能点差异较大,后期覆盖率接近收敛,差异减低。最小汉明距离小于阈值则判定为非自我数据,删除;否则判定为自我数据,加入种群/次代种群。
本实施例中,步骤S3中根据变异概率进行变异操作。生成新染色体,基于否定选择算法(Negative Select Algorithm)加入种群,即计算种群每个染色体与新染色体的汉明距离,汉明距离小于阈值,则为非自我数据,删除,重新变异操作生成新染色体,否则为自我数据,加入重组种群。变异完成后,重组种群所有染色体按照适应度值降序排序,重组种群保留固定种群数目M,删除多余染色体。
本实施例中,步骤S3中变异操作生成新染色体时变异操作的位置是基因的第一和第二个位置,对应是测试向量操作码和测试的请求源,且变异操作后检查变异的合法性,若变异操作为违法操作则将其删除后重新进行变异操作。检查变异的合法性时,例如对于操作码的合法性检查时,IO设备只能发出请求是非Cacheable的读写,如发出Cacheable请求,这是违法操作需删除。图5所示一个变异操作的示例,对于染色体t1进行变异操作,其中特征位上有标志“*”的会发生变异,染色体t1通过变异产生全新的染色体t2。初代种群的变异操作全部完成后,生成的染色体计算适应度,种群所有染色体按照适应度参与降序排序,保留固定种群数目M组成重组种群,删除多余染色体。变异概率可参考定义0.1。
本实施例中,定义种群中任意染色体tm的适应度值为Fitnesstm,则Fitnesstm的计算函数表达式如下:
上式中,Fitnesstm表示染色体tm的适应度值,wj表示染色体tm的第j个功能点的权重系数,N表示测试覆盖的功能点总数,covtm[j]表示染色体tm对功能j的覆盖率。目录控制器验证的适应度函数,即达到最大覆盖功能点的百分比,全部覆盖功能点,其值则为100%。例如需要测试覆盖的功能点共有N个功能点时,对于一个染色体t3,其适应度值函数Fitnesst3为覆盖率,染色体t3覆盖到功能点j,covt3[j]=1,表示染色体t3覆盖功能j,covt3[j]=0表示染色体t3没有覆盖到功能j。其中,wj表示第j个功能点的权重和重要程度,其值可以根据被测试的设计特征进行调整,例如:当只测试目录表bank0的模块,或者目录表只包含一个bank0的模块时,可以将bank1的功能点权重设置为0。
本实施例中,步骤S4中交叉操作采用的为单点交叉,图6所示为交叉操作前的实例,图7所示为交叉操作后的实例,交叉操作前染色体T1的交叉点为1、染色体T2的交叉点为4,交叉操作后得到新的染色体T'1、新的染色体T'2,且新的染色体T'1中交叉点以变更为4,新的染色体T'2中交叉点以变更为1。步骤S4根据交叉概率选择重组种群染色体进行交叉操作生成新染色体,基于否定选择算法加入次代种群。交叉完成后,次代种群所有染色体按照适应度值降序排序,保留固定种群数目M,形成次代种群,删除多余染色体。重组种群按照交叉概率选择两个染色体进行交叉,常见的交叉有单点交叉、多点交叉、均匀交叉等,本实施例中选择单点交叉,期望将有益的特征组合在一起,产生更加有效积极的功能点覆盖情况,根据交叉率将两个染色体设定一个交叉点,然后将该交叉点的前、后两个染色体编码部分进行交换,形成两个新的染色体编码,也就是两个新的测试激励。交叉的频率越高可以越快地收敛最优解,但是太高会导致过早收敛,交叉概率可参考定义0.8。
本实施例中,步骤S5的适应度值设定阈值ε可参考定义95%~100%。
本实施例中,针对目录DCU构建模拟验证环境,如图8所示,为了加速模拟验证,利用功能模型替代真实设计,cache是IP设计,目录验证环境选用了cache的模型(Cache_model0~31)替代,这是一个时钟精确的功能模型,模拟实现了处理器中Cache功能,IOU(IOU0_model、IOU1_model)、MCU(MCU0)也选择了模型,基于时钟精确的功能模型,模拟IO事务、访存事务。经过测试证明,本实施例基于遗传算法的目录控制器测试激励生成方法利用遗传算法在覆盖率反馈驱动随机测试,能够挖掘覆盖率与激励输入之间的关系,进而指导随机测试激励的生成,提高覆盖率的增长率,基于否定选择策略,减少冗余激励的模拟时间,提高验证效率。
此外,本实施例还提供一种基于遗传算法的目录控制器测试激励生成系统,包括计算机设备,该计算机设备被编程或配置以执行前述基于遗传算法的目录控制器测试激励生成方法的步骤,或者该计算机设备的存储器中存储有被编程或配置以执行前述基于遗传算法的目录控制器测试激励生成方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于遗传算法的目录控制器测试激励生成方法的计算机程序。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种基于遗传算法的目录控制器测试激励生成方法,其特征在于,包括:
S1:针对目录控制器的测试特征进行遗传算法的符号编码;
S2:创建测试激励的初代种群,基于否定选择算法生成种群数目M个测试激励集合;
S3:根据变异概率进行变异操作:生成新染色体t3,基于否定选择算法加入种群,计算种群每个染色体与新染色体t3的染色体差异性,若染色体差异性小于阈值则新染色体t3为非自我数据,将该新染色体t3删除,重新进行变异操作;否则新染色体t3为自我数据,将新染色体t3加入重组种群,变异完成后,重组种群所有染色体按照适应度值降序排序,重组种群保留固定种群数目M,删除多余染色体;
S4:根据交叉概率选择重组种群染色体进行交叉操作生成新染色体t4,基于否定选择算法加入次代种群,计算种群每个染色体与新染色体t4的染色体差异性,若染色体差异性小于阈值则新染色体t4为非自我数据,将该新染色体t4删除,重新进行交叉操作;否则新染色体t4为自我数据,将新染色体t4加入次代种群,交叉完成后,次代种群所有染色体按照适应度值降序排序,保留固定种群数目M,删除多余染色体;
S5:重复步骤S3-S4直至达到遗传算法的最大遗传代数或者种群出现适应度值大于等于设定阈值ε的染色体;
步骤S1中进行遗传算法的符号编码包括:生成测试向量,所述测试向量包括五个方面的特征:报文的操作类型、报文的源节点编号、报文的地址相关性、体编号、报文请求长度信息;然后将每一个测试向量视为一个基因,多个测试向量构成测试激励视为包含多个基因的染色体,从而完成遗传算法的符号编码,所述报文的操作类型包括操作码、无高速缓冲读、共享读、无高速缓冲写、高速缓冲维护命令,所述报文的源节点编号为高速缓冲或IO控制器的编号。
3.根据权利要求2所述的基于遗传算法的目录控制器测试激励生成方法,其特征在于,记任意染色体tk对功能j的覆盖率为covtk[j],则covtk[j]的计算函数表达式如下:
covtk[j]=covtk[1,j]|covtk[2,j]|covtk[3,j]|...|covtk[i,j]|...|covtk[C,j]
其中,covtk[1,j]~covtk[C,j]分别表示染色体tk中的第1个~第C个基因是否覆盖功能j,C为染色体tk中包含的基因数量,covtk[1,j]~covtk[C,j]中的任意covtk[i,j]取值为1或0,取值为1表示第i个基因覆盖了功能j,取值为0表示第i个基因没有覆盖功能j。
6.根据权利要求1所述的基于遗传算法的目录控制器测试激励生成方法,其特征在于,步骤S3中变异操作生成新染色体时变异操作的位置是基因的第一和第二个位置,对应是测试向量操作码和测试的请求源,且变异操作后检查变异的合法性,若变异操作为违法操作则将其删除后重新进行变异操作。
8.一种基于遗传算法的目录控制器测试激励生成系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~7中任意一项所述基于遗传算法的目录控制器测试激励生成方法的步骤,或者该计算机设备的存储器中存储有被编程或配置以执行权利要求1~7中任意一项所述基于遗传算法的目录控制器测试激励生成方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~7中任意一项所述基于遗传算法的目录控制器测试激励生成方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011019028.1A CN112069081B (zh) | 2020-09-24 | 2020-09-24 | 一种基于遗传算法的目录控制器测试激励生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011019028.1A CN112069081B (zh) | 2020-09-24 | 2020-09-24 | 一种基于遗传算法的目录控制器测试激励生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069081A CN112069081A (zh) | 2020-12-11 |
CN112069081B true CN112069081B (zh) | 2022-06-03 |
Family
ID=73683409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011019028.1A Active CN112069081B (zh) | 2020-09-24 | 2020-09-24 | 一种基于遗传算法的目录控制器测试激励生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069081B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113050547B (zh) * | 2021-03-04 | 2022-03-25 | 宏晶微电子科技股份有限公司 | 测试激励生成方法、测试方法、电子设备、存储介质 |
CN113807046B (zh) * | 2021-10-09 | 2024-05-31 | 中国人民解放军国防科技大学 | 一种测试激励优化回归验证方法、系统及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480386A (zh) * | 2017-08-22 | 2017-12-15 | 哈尔滨工业大学 | 一种基于响应混叠性度量与遗传算法的测试激励优选方法 |
CN109800071A (zh) * | 2019-01-03 | 2019-05-24 | 华南理工大学 | 一种基于改进遗传算法的云计算任务调度方法 |
CN111667071A (zh) * | 2020-06-08 | 2020-09-15 | 西安工程大学 | 一种基于改进遗传算法的传统作业车间调度方法 |
-
2020
- 2020-09-24 CN CN202011019028.1A patent/CN112069081B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480386A (zh) * | 2017-08-22 | 2017-12-15 | 哈尔滨工业大学 | 一种基于响应混叠性度量与遗传算法的测试激励优选方法 |
CN109800071A (zh) * | 2019-01-03 | 2019-05-24 | 华南理工大学 | 一种基于改进遗传算法的云计算任务调度方法 |
CN111667071A (zh) * | 2020-06-08 | 2020-09-15 | 西安工程大学 | 一种基于改进遗传算法的传统作业车间调度方法 |
Non-Patent Citations (4)
Title |
---|
Research on annealing genetic hybrid optimization of test excitation in nonlinear analog circuit;Hai-jun Lin 等;《2010 IEEE Fifth International Conference on Bio-Inspired Computing: Theories and Applications (BIC-TA)》;20100926;全文 * |
基于否定选择遗传算法的路径覆盖测试数据生成;夏春艳等;《电子学报》;20191215(第12期);全文 * |
基于故障可诊性与遗传算法的模拟电路测试激励优化方法;姜媛媛等;《计算机应用研究》(第03期);全文 * |
遗传算法在层次化验证平台中的应用;万超等;《电子质量》;20070820(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112069081A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112069081B (zh) | 一种基于遗传算法的目录控制器测试激励生成方法 | |
EP2869194A1 (en) | Extended cache coherence protocol-based multi-level coherence domain simulation verification and test method | |
US11392488B2 (en) | Optimizing storage of application data in memory | |
CN106775476A (zh) | 混合内存系统及其管理方法 | |
US11210020B2 (en) | Methods and systems for accessing a memory | |
US20180336076A1 (en) | Parameter-sharing apparatus and method | |
CN104360825B (zh) | 一种混合内存系统及其管理方法 | |
WO2022025976A1 (en) | Regression neural network for identifying threshold voltages to be used in reads of flash memory devices | |
CN102306503A (zh) | 一种假容量存储器的检测方法及系统 | |
CN103999057A (zh) | 具有开关的相变存储器(pcms)的元数据管理和支持 | |
US20220374159A1 (en) | Command batching for a memory sub-system | |
CN106445725A (zh) | 一种闪存错误模式的测试方法和系统 | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
CN110837477B (zh) | 一种基于寿命预测的存储系统损耗均衡方法及装置 | |
CN107045423A (zh) | 存储器装置及其数据存取方法 | |
CN117155791B (zh) | 基于集群拓扑结构的模型部署方法、系统、设备及介质 | |
CN107506139B (zh) | 一种面向相变存储器的写请求优化装置 | |
CN103605833A (zh) | 一种对存储阵列系统的性能进行仿真的方法及装置 | |
CN116167310A (zh) | 一种验证多核心处理器缓存一致性的方法及装置 | |
CN117234720A (zh) | 动态可配置的存算融合数据缓存结构、处理器及电子设备 | |
CN108829866A (zh) | 一种基于区块链的数据访问系统 | |
CN112306420B (zh) | 一种基于存储池的数据读写方法、装置、设备及存储介质 | |
CN114746845A (zh) | 用于改进处理系统的系统和方法 | |
CN113268376B (zh) | 基于遗传算法的数据中心对象存储方法及系统 | |
KR20210093127A (ko) | Aim 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |