首页> 中国专利> 一种Pattern文件加载方法及系统

一种Pattern文件加载方法及系统

摘要

为了克服现有技术的不足,本发明提供了一种ATE设备中Pattern文件加载方法,包括:引入redis内存数据库,以两个hash表组合的数据结构,对所述Pattern文件进行保存;在进行加载时,通过所述hash组合的数据结构加载所述Pattern文件至内存中;通过N个线程,将Pattern文件从内存加载到FPGA中;所述两个hash组合的数据结构,包括:由key1构建的hash1;由key2和value2构建的hash2。本发明具有数据结构简单占用内存小的优点;同时由于引入了redis数据库,能够通过导入解析好的数据库避免重复加载pattern中的相同的向量数据,减少了内存消耗和时间消耗。

著录项

  • 公开/公告号CN113535258B

    专利类型发明专利

  • 公开/公告日2022.09.27

    原文格式PDF

  • 申请/专利权人 杭州加速科技有限公司;

    申请/专利号CN202110714062.9

  • 发明设计人 凌云;金运帅;

    申请日2021.06.25

  • 分类号G06F9/445(2018.01);G06F8/41(2018.01);

  • 代理机构深圳智趣知识产权代理事务所(普通合伙) 44486;

  • 代理人李兴生

  • 地址 311121 浙江省杭州市余杭区余杭街道文一西路1818-1号1幢103M室

  • 入库时间 2022-11-28 17:49:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-27

    授权

    发明专利权授予

说明书

技术领域

本发明涉及一种新型的数据结构,适用于ATE系统的Pattern文件加载,以及类似于Pattern文件结构的数据保存或加载等,尤其涉及一种利用上述数据结构进行Pattern文件加载的方法、系统及电子装置。

背景技术

在半导体自动测试设备(Automatic Test Equipment,简称ATE)的测试领域中,通常将芯片引脚的测试结果与引脚目标结果进行对比,在半导体器件制造后进行测试,或帮助确定故障原因。

如图1-2,现有的pattern文件load时需要创建的数据结构及数据结构间的关系如图1所示;在利用该结构加载pattern文件至内存的过程如下:

S100.按行读取pattern文件,为map创建key(wft+wfc)、为map创建key(sequence);

S200.创建vector与map和map之间的指向关系;

S300.通过以DIO单元每个通道要输出的wfc为map创建key,同时根据timing计算出VCTDATA(wfc)保存到PST_VCT_PE_DATA中;

S400.根据seq指令码创建seq数据(cmd+parm)保存到PST_VCT_SEQ中。

现有pattern文件在load时,通过以上四个步骤完成pattern文件到二进制数据的转换,并保存在内存中;Load时,每个PE单元创建一个线程,遍历vector,按照上述创建的关系,把Pattern文件加载到FPGA中。

通过以上步骤可知,现有的pattern文件在加载时,需重新创建多种数据结构,占用较大内存,而且数据结构间指向繁琐,load时需要多次查找,较为耗时;而且,在现有技术中,如图7,如果要更新一条vector时,其过程为:

S10.判断map的key,即要更新成的wft+wfc,是否存在,如果不存在,则创建新的key;

S20.再判断map的key,即每个通道要输出的wfc,是否存在,如果存在,使PST_VCT_DATA中的iterator指向map;如果key不存在,则创建新的key,再使PST_VCT_DATA中的iterator指向新的map

S30.根据vectline使PST_PAT_MAP的iterator指向map

通过以上步骤可知,现有技术中的更新方式需要通过层层关系去查找待更新的目标,创建文件,再修改文件,较为耗时。

发明内容

为了克服现有技术的不足,本发明提供了一种Pattern文件加载方法及系统,用于解决前述技术问题中的至少一个。

具体地,其技术方案如下:

一种Pattern文件加载方法,包括:

以两个hash表组合的数据结构,将所述Pattern文件加载至内存中;

通过N个线程,将Pattern文件从内存加载到FPGA中;N=1,2,3……;

两个所述hash表组合的数据结构,包括:

由key1构建的hash1;

由key2和value2构建的hash2。

所述“以hash表组合的数据结构,将所述Pattern文件加载至内存中”,包括:

加载时,按行读取所述Pattern文件,以vector中的行数数据为所述hash2的key2;

以每条vector的wft、wfc、seq共同拼凑成hash1中的key1;

获取key1的index后,将所述index保存在hash2中的value2;

其中,wft为:波形时间数据,wfc为:波形的类型,seq为:微指令,index为索引;vector为所述pattern文件中的一条记录。

所述“将Pattern文件从内存加载到FPGA中”,包括:

遍历hash2获取key1的index;

通过所述index获取所述key1的内容;

通过所述key1中的wft和wfc的内容得到VCTDATA;

通过所述key1中的seq得到SEQDATA;

其中,VCTDATA表示:vector向量的二进制表现形式;SEQDATA表示vector向量中微指令的二进制表现形式。

上述的一种Pattern文件加载方法,还包括:

以两个hash表组合的数据结构,对所述Pattern文件进行更新的步骤,包括:

根据更新的参数在hash2中找到value2即index;

通过所述index,在所述hash1中获得对应的key1;

根据更新的参数更新所述key1值;

根据所述更新后的key1值对所述hash表组合的数据进行更新。

所述“根据所述更新后的key1值对所述hash表组合的数据进行更新”,包括:

根据更新后的key1值,在所述hash1寻找是否存在所述更新后的key1值,若:

存在,则将对应的所述index回填到所述hash2;

不存在,则将所述更新后的key1值插入到所述hash1中即创建新的key1,同时将所述hash1对应的所述index回填到hash2内。

一种Pattern文件加载系统,包括:

PE单元,与所述数据模块进行数据交换,用于加载所述Pattern文件;

FPGA模块,由M个所述PE单元构成,用于将所述Pattern文件加载到所述FPGA模块中;M=1,2,3……。

所述数据模块,包括:

hash1单元;

hash2单元,与所述hash1单元并行设置;

键值key1,与所述hash1单元对应设置,用于形成第一键值对;

键值key2,与所述hash2单元对应设置;

value2模块,与所述key2单元对应设置;

所述hash2模块与所述key2模块、所述value2模块形成第二键值对。

一种Pattern文件加载电子装置,包括:存储介质和处理单元;存储介质,用于存储计算机程序;处理单元与所述存储介质进行数据交换,用于在进行Pattern文件加载时,通过所述处理单元执行所述计算机程序,进行如上所述的Pattern文件加载方法的步骤。

一种如上所述的方法在自动化测试设备中的应用。

本发明至少具有以下有益效果:

本发明所述的方法,引入redis内存数据库,以两个hash组合的数据结构对Pattern文件进行存储,利用timing和seq计算出二进制VCTDATA,将Pattern文件加载到FPGA中,就可以完成Pattern文件的加载,具有数据结构简单,占用内存小的优点;并且,本发明所述的方法因为使用hash的key来保存pattern数据,所以能够实现去重,极大的节省了内存,简化了pattern解析的步骤。

本发明所述的方法直接使用vector的内容来代替原技术方案中的内容索引值,无需层层索引查找内容,提高了pattern解析速度;并且,可通过redis数据库的持久化,在进行load时,能够直接通过数据库的导入来复用解析好的pattern数据,避免了重复加载pattern带来的时间消耗。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为现有的Pattern文件加载到内存的流程图。

图2为现有的一个PE线程将Pattern文件从内存Load到FPGA中的流程图。

图3为本发明所述pattern文件加载时的数据结构图。

图4为本发明所述pattern文件加载时数据结构间的关系图。

图5为本发明所述Pattern文件加载到内存的流程图。

图6为本发明中N为1时,将Pattern文件从内存加载到FPGA中的流程图。

图7为现有的更新vector的流程图。

图8为本发明提供的Pattern文件动态更新流程图。

图9为本发明所述系统的结构框图。

其中,100.数据模块;200.PE单元;300.FPGA模块。

具体实施方式

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

概念解释:

ATE:Automatic Test Equipment的缩写,自动化测试设备,用于检测集成电路功能之完整性,为集成电路生产制造之最后流程,以确保集成电路生产制造之品质。

Pattern:ATE的DIO信号的波形描述文件。

Redis:Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(key-Value)存储数据库。

hash表:由key和value组成,如hash表中一个键值对(张三,1318888999)那“张三”就是key,1318888999就是value;key和value均为hash表中的要素。

为了解决现有技术的问题,本发明公开以下实施例:

实施例I:

如图3-6,一种Pattern文件加载方法,包括:引入redis内存数据库,以hash表组合的数据结构,对所述Pattern文件进行保存;在进行加载时,通过所述key和hash组合的数据结构加载所述Pattern文件至内存中;通过N个线程,将Pattern文件从内存加载到FPGA中;N=1,2,3……;所述hash组合的数据结构,包括:通过hash1的key1构建第一映射关系;通过hash2的key2和value2构建第二映射关系。

如图5,所述“通过所述hash组合的数据结构加载所述Pattern文件至内存中”,包括:加载时,按行读取所述Pattern文件,以每条vector的wft、wfc、seq拼凑成hash1的key1;hash1的结构中只保留key1,以保证数据的唯一性,且不需要使用value1;获取key1的index保存在hash2的value2。

由于Hash表结构通过hash函数可以实现一个key的唯一性,优选的,以vector的wft、wfc、seq共同构成key1,实现去重;以vector的行号作为hash2的key2;获取所述key1的index保存在hash2的value2内,使所述key1的index即是value2;在此处,由于本实施例所述的方法实现了去重;在去重后,一般几千万条的大pattern,只需要保存的几千条的记录,大大节省了内存占用。

如图6,所述“将Pattern文件从内存加载到FPGA中”,包括:通过wft、wfc、seq共同创建hash1的key1时,返回这个key的位置,得到index(索引),即key1的index;通过index(索引)就可以遍历hash1,如index=2,那hash1中的第2个值就是想要的key,从而获得vector的wft、wfc、seq;通过vector的wft与wfc的内容得到VCTDATA;加载所述VCTDATA,通过预设的seq得到SEQDATA;根据所述SEQDATA判断所述hash2是否结束;在本实施例所述的方法中,由于使用VCT的内容代替了现有技术中的内容索引值,不需要通过层层索引去查找内容,提高了pattern解析速度。

同时,本发明所述的方法,将pattern的解析结果保存在redis数据库,能过数据库的持久化保存到硬盘,当再次需要解析pattern时,在本机台上甚至可以跨机台拷备redis数据库,可以直接导入数据库,来避免重复加载pattern。

结果验证:

由图1-2可知,现有的pattern文件加载过程中,需要创建多种数据结构:假设有20个PE单元,每个signal占用一个PE单元一个通道,加载图1所示的10000条pattern,且每一条wfc和seq都不同的情况下:

map最小占用内存为(15(key的大小)+8*20)*10000byte;

map最小占用内存为(3(key的大小)+8*20)*10000byte;

map最小占用内存为(8(key的大小)+16)*10000byt;

vector最小占用内存为16*10000byte;

总内存为3.78M。

可见,传统的pattern文件加载过程占用较大内存,数据结构之间指向繁琐,load时需要多次遍历查找,比较耗时;

而利用本实施例所述的方法,同样以20个PE单元,每个signal占用一个PE单元一个通道,加载图1所示的10000条pattern,且每一条pattern内容都不同的情况下:

key1大小为18byte(pattern内容)

key2大小为4byte

Value2大小为4byte

总内存为(18+4+4)*10000=0.26M。

可见,本实施例通过去重、所述的方法仅仅占用0.26M内存,现有的加载方法占用3.78M内存,二者相比,本实施例所述的方法占用内存非常小。

具体实施例II:

针对现有技术中的更新方式较为耗时的问题,如图8,本发明所述的Pattern文件加载方法,还包括:以key和hash表组合的数据结构,对所述Pattern文件进行更新的步骤。由于更新的参数一般是行号,hash表中有hash函数,通过key(行号),就可以获取到value,具体包括:根据更新的参数,如根据vector的line num,在hash2中找到value2即index;通过所述index,在所述hash1中获得对应的key1;此时key1由wft、wfc、seq共同构成;VCTDATA是通过wft、wfc、seq合并后对应得到的,可通过软件自定义获得;根据更新的参数,即引入的新的wft、wfc、seq拼合后的值,更新所述key1的值;根据更新后的VCTDATA值,在所述hash1寻找是否存在所述更新后VCTDATA值,若存在,则将对应的所述index回填到所述hash2;若不存在,则将所述更新后的VCTDATA值插入到所述hash1内,同时将所述hash1对应的所述index回填到hash2内;在本发明所述的更新过程中,各个步骤的复杂度均为O(1),更新过程临时占用存储空间较小,利于更新过程的进行。

具体实施例III:

如图9,一种Pattern文件加载系统,包括:数据模块100、PE单元200以及FPGA模块300;PE单元200与所述数据模块100进行数据交换,用于加载所述Pattern文件;FPGA模块300由M个所述PE单元构成,用于将所述Pattern文件加载到所述FPGA模块中;M=1,2,3……;优选的,M为4。

所述数据模块100,包括:hash1单元、hash2单元、key1模块、key2模块以及value2模块;hash2单元与所述hash1单元并行设置;key1模块,与所述hash1单元对应设置,用于形成第一键值对;key2模块与所述hash2单元对应设置;value2模块与所述key2单元对应设置;所述hash2模块与所述key2模块、所述value2模块形成第二键值对,具体结构参见图3。

具体实施例IV:

一种Pattern文件加载电子装置,包括:存储介质和处理单元;存储介质,用于存储计算机程序;处理单元与所述存储介质进行数据交换,用于在进行Pattern文件加载时,通过所述处理单元执行所述计算机程序,进行如上所述的Pattern文件加载方法的步骤。

上述的电子装置中,存储介质优选为,移动硬盘或固态硬盘或U盘等存储设备;处理单元,优选为CPU,与所述存储介质进行数据交换,用于在进行Pattern文件加载时,通过所述处理单元执行所述计算机程序,进行如上所述的Pattern文件加载方法的步骤。

上述CPU可以根据存储在存储介质中的程序执行各种适当的动作和处理。所述电子设备还包括以下外设,包括键盘、鼠标等的输入部分,也可以包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;特别地,根据本发明公开的实施例,如图4~6、8中任一描述的过程均可以被实现为计算机软件程序。

本发明提供的一种实施例,包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行如图4~6、8中任一所述流程图所示的方法的程序代码。该计算机程序可以从网络上被下载和安装。在该计算机程序被CPU执行时,执行本发明的系统中限定的上述功能。

本发明提供还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序;所述计算机程序在运行时,执行如上所述的Pattern文件加载方法步骤。在本发明中,计算机可读的存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。上述本发明序号仅仅为了描述,不代表实施场景的优劣。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号