掌桥专利:专业的专利平台
掌桥专利
首页

一种数据聚合方法及聚合系统

文献发布时间:2023-06-19 16:04:54



技术领域

本发明属于半导体设计和生产技术领域,特别涉及一种数据聚合方法及相应的数据聚合系统。

背景技术

在先进工艺的整个生命周期中,存在一个影响产品成品率的重要风险因素:工艺开发阶段作为相对简单的环境,其主要目的是针对某个工艺节点开发出平台工艺,而产品导入和量产阶段作为相对复杂多变的环境,则是以实际产品结果为导向的。芯片产品是多样化的,每个芯片的设计成熟度和对工艺的敏感度均不同,甚至可能存在巨大差异,因此在芯片导入的过程中,会出现很多在工艺开发阶段未发现或未重视的各种问题,导致工艺开发和产品导入脱节。

在传统测试芯片工艺下,客户只能通过对测试芯片中的测试结构进行测试,来推断产品芯片中相应器件的状态。然而,随着工艺节点的不断演进,产品芯片中器件与测试芯片中测试结构所面临的物理环境不同而产生的差异逐渐体现。因此,如何利用真实的产品芯片来设计内置测试芯片,从而实现对产品芯片关键器件在真实物理环境下的测试,对芯片产品成品率的提升具有重大的意义。

在内置测试芯片的设计中,如何根据庞大的器件信息来筛选出需要进行测试的器件是至关重要的一步,这就涉及到对器件数据进行聚合处理。器件数据一般以二维行列表形式(device list)存储,存储方式包括面向行和面向列,两种存储方式各有优缺点。面向行:器件数据按行存储,能高效添加数据,特别是在数据的实时存储上具有优势,但是,在查询数据时显得低效且缓慢,比如在查询某一行数据时,需要读取该行中的每一列字段。面向列:器件数据按列存储,在数据添加上效率不高,特别是实时数据的添加,但是,在整个二维表上执行集合范围操作时具有优势,可以更精确且快速地响应数据查询。

例如表1所示的一批数据(device list),表中有一些行的内容是完全相同的,聚合计数将统计各个不相同的行分别出现了多少次。聚合结果如表2所示,其中,Length(长度)、Width(宽度)、Model(器件模型)三列称为聚合条件,最后一列为体现聚合结果的计数字段。聚合过程有效地减小了数据量,从聚合前的28行,减小到聚合后的8行。

表1.一批数据

表2.聚合结果

聚合不一定要针对所有列,也可以针对部分列,如下表3所示为只针对Model列聚合的结果,即聚合条件仅为Model列。

表3.Model列聚合的结果

聚合也不一定要针对原生列,还可以针对派生列,如下表4所示为针对Length×Width≥0.0008且Length×Width≤0.001进行聚合的结果。

表4.派生列聚合的结果

在实际应用中,聚合前的device list总行数最多能达到十亿数量级,而聚合后的结果总行数能达到百万数量级。聚合过程中需要将聚合结果始终保存在内存中,而始终保存上百万行的聚合结果,会给内存带来极大的压力,甚至不可能完成。因此,如何解决大数据量的信息在聚合过程中内存压力过大的问题,对于完成大数据量的器件数据聚合进而完成测试器件的选定具有重要的意义。

发明内容

本发明提供一种数据聚合方法,为解决大数据量的信息在聚合过程中内存压力过大的问题提供解决方案。

本发明的其他目的和优点可以从本发明所揭露的技术特征中得到进一步的了解。

为达上述之一或部分或全部目的或是其他目的,本发明一技术方案提供一种数据聚合方法,定义待聚合数据的每一行为一条数据,每一列为一个字段;所述数据聚合方法包括:获取待聚合数据进行聚合,并根据内存使用情况触发对所述待聚合数据基于若干字段进行分批,将所述待聚合数据分成若干个批次,在内存中按所述批次对所述待聚合数据分批聚合;将完成聚合的批次的聚合结果数据从内存移入聚合结果文件中,继续在内存进行下一批次的数据的聚合,直至完成对全部所述待聚合数据的聚合,获得最终聚合结果文件;其中,所述聚合结果数据包括聚合条件和计数字段,所述计数字段用于表征满足该聚合条件的数据条数。通过对待聚合数据进行实时分批并分批聚合,能有效缓解大数据量的信息在聚合过程中的内存压力。

所述待聚合数据采用面向列方式存储;所述获取待聚合数据进行聚合是通过按列读取对应位置的字段以获得一条数据进行聚合。

所述聚合条件为若干个用于聚合的字段,包括若干原生列或/和若干派生列;所述原生列为所述待聚合数据中某一列的字段,所述派生列为对所述待聚合数据中若干列中的字段进行逻辑组合后生成的字段。

预设内存用于存储聚合结果数据的行数上限;所述数据聚合方法还包括:判断所述内存中当前已暂存的聚合结果数据是否达到所述上限,若已达到且存在未聚合的数据,则触发对所述待聚合数据进行分批。

在分批聚合时,将存储在内存中的不再属于当前进行聚合的批次的聚合结果数据暂存至临时文件;并在结束当前批次的聚合后,再将临时文件中的聚合结果数据移入内存中。

所述上限的计算方式具体如下:获取当前可用内存字节数,记作Mem;获取所述待聚合数据中每条数据所占用的字节数,记作Agg;通过公式M=[Mem×α/Agg],计算得到M,即最大行数;其中,公式中的符号[]表示对计算结果取整数;所述α为预设的占用处理器可用内存的比重值。

设所述待聚合数据的总行数为N,内存用于存储聚合结果数据的最大行数为M;所述数据聚合方法的执行过程包括:步骤1):初始化i=1,j=0;其中,i∈[1,N],j∈[0,M];设置用于表征过滤条件的filter,以及所述filter中的过滤条件数量m;初始化filter为空(filter为空表示任意数据都满足该过滤条件),m=0;创建临时文件;设置聚合起始位置集合A;步骤2):读取所述待聚合数据中作为聚合条件的各列数据中的第i个字段值,以组成一条数据并记为R;判断R是否满足filter:若满足,则至步骤3);若不满足,则至步骤5);步骤3):判断内存中是否已存储有与R的聚合条件相同的聚合结果数据:若是,则将该聚合结果数据的计数字段+1,至步骤5);若否,则内存新增一条聚合结果数据,该聚合结果数据的聚合条件即R的聚合条件,该聚合结果数据的计数字段为1;令j=j+1;步骤4):判断j是否等于M:若否,则直接至步骤5);若是,则令m=m+1,获取第m列字段的所有字段值,并利用这些字段值将所有所述待聚合数据分成若干个批次,确定其中一个批次作为当前聚合批次,将用于筛选当前批次的字段值作为最新的一个过滤条件添加到filter中;将内存中不满足filter的聚合结果数据移入所述临时文件中,并令元素a

所述待聚合数据、所述聚合结果文件和所述临时文件存储在相同或不同的存储设备中,所述存储设备为数据库、磁盘和硬盘中的一种。

本发明还提供一种数据聚合系统,包括存储设备,所述存储设备中存储有若干条指令,所述若干条指令由处理器加载并执行本发明的数据聚合方法。

与现有技术相比,本发明的有益效果主要包括:

1、本发明的数据聚合方法,既能够利用面向列存储数据的查询方便的特点,且通过分批次多次读取以及设置过滤项又能有效解决大数据量的数据在进行聚合时的内存不足问题,为高效完成大数据量的器件数据聚合进而更高效可靠地完成测试器件的选定提供了切实可行的解决方案。

2、本发明的数据聚合系统,因能执行本发明的数据聚合方法而具有相应优势。

附图说明

为了更清楚地说明本发明具体实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的数据聚合方法过程示意图。

图2为本发明实施例的数据聚合流程图。

具体实施方式

有关本发明的前述及其他技术内容、特点与功效,在以下配合参考图式的优选实施例的详细说明中,将可清楚的呈现。

本发明的实施例示例的数据聚合方法中,定义待聚合数据的每一行为一条数据,每一列为一个字段。如图1所示,数据聚合方法包括:获取待聚合数据进行聚合,并根据内存使用情况触发对待聚合数据基于若干字段进行分批,将待聚合数据并分成若干个批次,在内存中按批次对待聚合数据分批聚合;将完成聚合的批次的聚合结果数据从内存移入聚合结果文件中,继续在内存进行下一批次的数据的聚合,直至完成对全部待聚合数据的聚合,获得最终聚合结果文件;其中,聚合结果数据包括聚合条件和计数字段,计数字段用于表征满足该聚合条件的数据条数。

一些具体的实施例中,待聚合数据采用面向列方式存储;获取待聚合数据进行聚合是通过按列读取对应位置的字段以获得一条数据进行聚合。

示例的聚合条件为若干个用于聚合的字段,包括若干原生列或/和若干派生列;原生列为待聚合数据中某一列的字段,派生列为对待聚合数据中若干列中的字段进行逻辑组合后生成的字段。

一些具体的示例中,预设内存用于存储聚合结果数据的行数上限。示例的数据聚合方法还包括:判断内存中当前已暂存的聚合结果数据是否达到上限,若已达到且存在未聚合的数据,则触发对待聚合数据进行分批。示例的数据聚合方法中是同时聚合并实时判断是否需要分批。在分批聚合时,将存储在内存中的不再属于当前进行聚合的批次的聚合结果数据暂存至临时文件;并在结束当前批次的聚合后,再将临时文件中的聚合结果数据移入内存中。进行分批是对所有数据进行分批,即使分批后有部分数据已经聚合完成,也会移入临时文件,等直至处理该批数据时,再存入内存以及后续正式移入聚合结果数据。

示例的上限的计算方式具体如下:获取当前可用内存字节数,记作Mem;获取待聚合数据中每条数据所占用的字节数,记作Agg。示例的情况中每条数据所占用的字节数是相同的。通过公式M=[Mem×α/Agg],计算得到M即最大行数;其中,符号[]表示对计算结果取整数;α为预设的占用处理器可用内存的比重值。一个较好的示例中,α=80%。

在一些实施例中,如图2所示,设待聚合数据的总行数为N,内存用于存储聚合结果数据的最大行数为M;数据聚合方法的具体执行流程如下:步骤1):初始化i=1,j=0;其中,i∈[1,N],j∈[0,M];设置用于表征过滤条件的filter,以及filter中的过滤条件数量m;初始化filter为空(filter为空表示任意数据都满足该过滤条件),m=0;创建临时文件;设置聚合起始位置集合A;步骤2):读取待聚合数据中作为聚合条件的各列数据中的第i个字段值,以组成一条数据并记为R;判断R是否满足filter:若满足,则至步骤3);若不满足,则至步骤5);步骤3):判断内存中是否已存储有与R的聚合条件相同的聚合结果数据:若是,则将该聚合结果数据的计数字段+1,至步骤5);若否,则内存新增一条聚合结果数据,该聚合结果数据的聚合条件即R的聚合条件,该聚合结果数据的计数字段为1;令j=j+1;步骤4):判断j是否等于M:若否,则直接至步骤5);若是,则令m=m+1,获取第m列字段的所有字段值,并利用这些字段值将所有待聚合数据分成若干个批次,确定其中一个批次作为当前聚合批次,将用于筛选当前批次的字段值作为最新的一个过滤条件添加到filter中(获取该字段的全部字段值,进行二分叉分批甚至多分叉分批,而不采用限定某一字段值进行二分叉分批,故后续可能会多次回溯至该位置进行不同批次的聚合处理);将内存中不满足filter的聚合结果数据移入临时文件中,并令a

本实施例中提供的数据聚合系统包括存储设备,存储设备中存储有若干条指令,若干条指令由处理器加载并执行本实施例的数据聚合方法。示例的待聚合数据、聚合结果文件、临时文件可以分别存储在不同的存储设备中或者存储在一个存储设备中,并不限定。存储设备可以是数据库、磁盘、硬盘等。示例采用数据库存储可以是云端存储,或者分布式存储等,并不限定。

下面的实施例可以使本领域的专业技术人员更全面地理解具体的聚合过程本发明,但不以任何方式限制本发明。需要说明的是,为便于描述,此实施例中使用的参数都较小。示例的参数不限定可能的实际情况。

以待聚合的N=28的数据进行示例如下,为便于描述,如下表5所示,在表5的最左侧增加了一列代表行序号,此列可以存储到实际数据库中,也可以不存储。设定M=6,即内存用于存储聚合结果数据的最大行数为6。聚合Length(长度)、Width(宽度)、Model(器件模型)三列,表中的sa是指stress(应力)到晶体管a侧的距离。

表5.待聚合数据

逐列读取Length、Width、Model三列的字段值以获得一条数据进行聚合,此时sa列会被忽略,仅考虑三列;直到i=20,此时内存中存储有如下表6所示的聚合结果数据,已达到内存的最大行数,且内存中没有与第i=20行数据相同聚合条件的聚合结果数据。

表6.聚合结果数据

此时满足j=M,将Length=0.010加入到过滤条件filter中,并将内存中Length=0.016的两行写入到临时文件中,此时内存数据如下表7所示。

表7.内存数据

此时的参数i=20,filter中只有一个条件Length=0.010。由于i=20至28的Length都为0.016,可以执行聚合,即完成i=28的聚合后,所有满足filter条件的数据都已完成聚合,因此可以直接写入文件F,即得到如下表8所示的文件F,内存数据变成如下表9所示。

表8.文件F

表9.内存数据

之后,将临时文件中的两行移入内存,内存数据如下表10所示。

表10.内存数据

此时的filter事实上等价于Length不等于0.010,回到i=20,继续进行聚合直至i=28完成所有数据聚合,将内存中的聚合结果数据写入文件F,得到最终如下表11所示的聚合结果文件,完成对如上表5所示的待聚合数据的聚合。

表11.聚合结果文件

以上所述,仅为本发明的优选实施例,不能以此限定本发明实施的范围,即所有依本发明权利要求书及说明书所作的简单的等效变化与修改,皆仍属本发明专利涵盖的范围内。另外,本发明的任一实施例或权利要求不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和发明名称仅是用来辅助专利文件检索之用,并非用来限制本发明的权利范围。

相关技术
  • 秘密聚合最大值系统、秘密聚合最小值系统、秘密计算装置、秘密聚合最大值方法、秘密聚合最小值方法以及程序
  • 一种分布式海洋在线监测数据的实时聚合系统及聚合方法
技术分类

06120114692475