CN113741821B - 基于分类的数据存取方法、系统、介质及程序 - Google Patents

基于分类的数据存取方法、系统、介质及程序 Download PDF

Info

Publication number
CN113741821B
CN113741821B CN202111280153.2A CN202111280153A CN113741821B CN 113741821 B CN113741821 B CN 113741821B CN 202111280153 A CN202111280153 A CN 202111280153A CN 113741821 B CN113741821 B CN 113741821B
Authority
CN
China
Prior art keywords
data
classification
identifier
classified
storage
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
Application number
CN202111280153.2A
Other languages
English (en)
Other versions
CN113741821A (zh
Inventor
刘明
汪福全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenglong Singapore Pte Ltd
Original Assignee
Sunlune Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sunlune Technology Beijing Co Ltd filed Critical Sunlune Technology Beijing Co Ltd
Priority to CN202111280153.2A priority Critical patent/CN113741821B/zh
Publication of CN113741821A publication Critical patent/CN113741821A/zh
Application granted granted Critical
Publication of CN113741821B publication Critical patent/CN113741821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据存取技术领域,提供一种基于分类的数据存取方法、系统、介质及程序。其中方法包括:接收第一数据,并根据接收顺序得到所述第一数据的存储序号;根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器。本发明通过不同分类数据集实现了数据类型的区分、通过分类数据集的标识实现了数据数量的区分,并在此基础上实现了灵活的存储空间动态管理、降低了数据存入操作的复杂度、提升了数据数量的区分维度。

Description

基于分类的数据存取方法、系统、介质及程序
技术领域
本发明涉及数据存取技术领域,尤其涉及一种基于分类的数据存取方法、系统、介质及程序。
背景技术
在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。现在计算机存储和处理的对象十分广泛,表示这些对象的数据也随之变得越来越复杂。
对于不同的计算机运算任务,其所需的数据类型和数量是完全不同的,而基于现有技术的数据存取方法执行特定运算任务时,需要先行读取数据,再判断该数据是否符合运算任务所需的类型和数量,从而使得运算任务的效率降低。
因此,如何改进数据存取方法,以提升后续运算任务的执行效率,成为了业内亟需解决的技术问题。
发明内容
本发明提供一种基于分类的数据存取方法、系统、介质及程序,用以解决现有技术中运算任务的执行效率低的缺陷,实现基于数据类型和数量标签的高效数据存取。
本发明提供一种基于分类的数据存取方法,包括:
接收第一数据,并根据接收顺序得到所述第一数据的存储序号;
根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;
顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;
将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;
所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;
所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;
所述设定的二进制值为0或1。
根据本发明提供的一种基于分类的数据存取方法,还包括:
通过目标分类数据集,读取设定的数据;
所述目标分类数据集是根据分类数据集的标识确定的,数据数量满足拟定后续操作所需数量的分类数据集;所述拟定后续操作是所述数据被读取后拟进行的操作。
根据本发明提供的一种基于分类的数据存取方法,所述通过目标分类数据集,读取设定的数据的步骤包括:
根据第i个第二数据的存储序号,执行读取操作得到第i个第二数据;
其中,若i等于1,则所述第一个第二数据的存储序号是根据所述目标分类数据集的头数据关联参数确定的;若i大于1,则所述第i个第二数据的存储序号是通过第i-1个第二数据确定的;
所述读取操作是指:
根据所述第i个第二数据的存储序号确定第i个第二数据的起止位置:
Figure 933651DEST_PATH_IMAGE001
式中,
Figure 116371DEST_PATH_IMAGE002
Figure 833791DEST_PATH_IMAGE003
分别为第i个第二数据的起、止位置;
Figure 432263DEST_PATH_IMAGE004
为所述第i个第二数据的存储 序号;
Figure 682853DEST_PATH_IMAGE005
为所述第二数据的比特位数,且不同所述第二数据的比特位数相同;
根据所述第i个第二数据的起止位置,读取得到第i个第二数据。
根据本发明提供的一种基于分类的数据存取方法,所述通过目标分类数据集,读取设定的数据的步骤后,还包括:
将所述目标分类数据集的标识置为第一零标识。
根据本发明提供的一种基于分类的数据存取方法,所述第二标识为1比特的二进制标识;置为0的所述第二标识和置为1的所述第二标识这两者中,一者用于标识分类数据集中数据数量大于1,另一者用于标识分类数据集中数据数量等于1;
所述将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识的步骤包括:
确定所述第一标识为第一零标识,则通过更新头数据关联参数和/或更新所述第二标识置为用于标识分类数据集中数据数量等于1的值,将所述第一标识更新为第一非零标识;
确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量等于1的值,则将所述第二标识更新为用于标识分类数据集中数据数量大于1的值;
确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量大于1的值,则保持所述第二标识为用于标识分类数据集中数据数量大于1的值。
本发明还提供一种基于分类的数据存取系统,包括:
序号模块,用于接收第一数据,并根据接收顺序得到所述第一数据的存储序号;
分类模块,用于根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;
存储模块,用于顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;
更新模块,用于将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;
所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;
所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;
所述设定的二进制值为0或1。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于分类的数据存取方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于分类的数据存取方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于分类的数据存取方法的步骤。
本发明还提供一种芯片,包括逻辑功能部;所述逻辑功能部被芯片执行时实现如上述任一种所述基于分类的数据存取方法的步骤。
本发明提供的基于分类的数据存取方法、系统、介质及程序,具备如下有益效果:
1、通过不同分类数据集实现了数据类型的区分;
2、在第1点的基础上,分类数据集配合包括第一数据和相邻数据关联参数的第二数据,实现了灵活的存储空间动态管理、降低了数据存入操作的复杂度;
3、通过分类数据集的标识实现了数据数量的区分;
4、在第3点的基础上,分别基于第一标识和第二标识区分数据数量为零的分类和数据数量非零的分类,即在第二标识(即专用标识位)的基础上增加了第一标识(即该分类数据集的bit位是否全0或全1),从而使得数据数量的区分维度得以提升。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于分类的数据存取方法的流程示意图;
图2是本发明实施例提供的空链表的数据存储示意图;
图3是本发明实施例提供的非空链表的数据存储示意图;
图4是本发明实施例提供的数据读取示意图;
图5是本发明提供的电子设备的结构示意图;
图6是本发明提供的基于分类的数据存取系统的结构示意图。
附图标记:
1:序号模块; 2:分类模块; 3:存储模块;
4:更新模块; 510:处理器; 520:通信接口;
530:存储器; 540:通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图4描述本发明的基于分类的数据存取方法。
如图1所示,本发明实施例提供一种基于分类的数据存取方法,包括:
步骤101,接收第一数据,并根据接收顺序得到所述第一数据的存储序号;
步骤103,根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;
步骤105,顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;
步骤107,将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;
所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;
所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;
所述设定的二进制值为0或1。
值得说明的是,本实施例的步骤105和步骤107的执行顺序并不固定,即存在着如下三种执行方案:
第一种是先存储、再更新的方案,即顺序执行步骤105和步骤107;
第二种是先更新、再存储的方案,即先执行步骤107,再执行步骤105,在这一方案中,将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号的同时,应当记录更新前的头数据关联参数,以供步骤105中相邻数据关联参数取值时调用;
第三种是更新存储同步进行的方案,即步骤105和步骤107同步进行,由于本实施例中存在数据存储器和序号存储器这两个存储器,同步进行的方案存在实施基础。
本实施例中,所述序号存储器和所述数据存储器既可以是物理上相互独立的两个存储器结构,也可以是基于同一存储器作为物理介质进行逻辑分隔后得到的。其中,前者是更为优选的方案,其数据存取效率相比于后者有所提升,原因在于不同的两个存储器接口相互独立,从而使得分类数据集和第二数据的调用互不干扰。
在本实施例的一个优选方案中,所述分类数据集由固定字节长度的头数据关联参数和固定字节长度的标识位组成,且所述头数据关联参数和标识位的前后顺序固定,从而使得序号存储器中每个分类数据集所存储的空间固定,进而可以便捷地查找和调用每个分类数据集,节省了部分运算资源。
进一步地,本优选方案的第一标识是基于分类数据集中每个比特均为设定的二进制值设置的,具体来说:
所述分类数据集中每个比特位均为1的第一标识代表着该分类数据集对应类别的数据数量为零、所述分类数据集中各个比特位不全为1的第一标识代表着该分类数据集对应类别的数据数量不为零;
由于所述分类数据集包括头数据关联参数和标识位,则应当考虑所述头数据关联参数是否可能取全为1的值,进而误将存有头数据关联参数均为1的数据的分类数据集识别位空数据类别。
为避免上述误识别的问题,可以将头数据关联参数的固定字节长度设置为较大的数值,以使得本质为第一数据的存储序号的头数据关联参数的值不能取得在该固定字节长度下全为1的值;也可以将存储的第一数据的数量上限设置为在该固定字节长度下第一位为0、其余位为1的二进制值对应的十进制数字。
也就是说,本实施例通过牺牲半个字节的序号容量,获取了完整的第一标识自由度,例如对于存在10个比特位的存储结构,共存在1024中可能的存储组合,采用本实施例时,存在1个比特位的标识位(第二标识)和全为1时的第一标识,则排除标识位后仍然存在着511种存储组合(排除1个标识位剩余9个比特位/512种存储组合,排除全为1的存储组合,剩余511种);若不采用本实施例,则需要至少2个比特位作为标识位,分别用于标识分类数据集对应类别的数据数量是否为零、是否大于设定的阈值,则排除标识位后只剩下256种可能的存储组合。
更进一步地,若第二标识的数量判断阈值包括且仅包括1(即第二标识用于标识分类数据集对应类别的数据数量大于1或不大于1,事实上,本实施例中第二标识对应的阈值可以为多个)、且后续需要读取的用于运算的数据下限为2(即分类数据集对应类别的数据数量至少为2个,才能够进行后续的运算,数量为1或0时无法运算),则上述误识别的问题还可以通过如下方式予以规避:
由于第二标识的数量判断阈值包括且仅包括1,作为第二标识的标识位固定字节长度只需1个bit,即0和1两个取值分别代表分类数据集对应类别的数据数量大于1或不大于1;则规避误识别问题的方案如下:
所述分类数据集中每个比特位均为1的第一标识代表着该分类数据集对应类别的数据数量为零、所述分类数据集中每个比特位均为0的第一标识代表着该分类数据集对应类别的数据数量不为零;
第二标识中,代表分类数据集对应类别的数据数量大于1的二进制值设置为0、代表分类数据集对应类别的数据数量不大于1的二进制值设置为1。
原理说明如下:
A、数据数量为0的情况,分类数据集默认的每个bit取值均为1,不存在误识别为非零的可能;
B、数据数量为1的情况,第二标识被设置为1;当且仅当该类别中的第一个存入数据的序号为全1时,分类数据集对应的类别被识别为空,此时由于存入数据的序号已经到达上限,不存在后续有新的数据存入的情况,且分类数据集对应类别的数据数量至少为2个,才能够进行后续的运算,因此实际数据数量为1的类别被误识别为0不会影响后续读取,实际数据数量为0或1的类别不会被读取;
C、数据数量大于1的情况,第二标识被设定为0,分类数据集对应的类别不会被误识别为空。
此外,对于更大的阈值,可以选用更多位数的第二标识,或者增加额外的计数器结构;
更多位数的方案中,第二标识可以逐个标识分类数据集对应类别的数据数量,例如2个比特位的第二标识可以用于标识分类数据集中数量为1、2、3以及大于3的情况(分别对应00、01、10、11的第二标识)。也就是说,具有A个比特位的第二标识,能够标识小于2A的任意数量,同时能够标识分类数据集中数量大于等于的2A情况。
额外计数器结构的方案中,第二标识仍为1个比特位,通过计数器判断分类数据集对应类别的数据数量是否大于阈值,若大于阈值则调整第二标识的二进制值,以标识分类数据集对应类别的数据数量情况。
此外,在本实施例的一个优选方案中,每个分类数据集与数据类别一一对应,即特定的分类数据集中,头数据关联参数指向的第1个第二数据、第1个第二数据中相邻数据关联参数指向的第2个第二数据以及以此类推的第二数据链中,每个第二数据均属于同一个数据类别(这一点能够通过步骤103中,根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集,和步骤107中将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号的技术手段得以实现);
对应地,所有属于特定类别的第二数据均位于该特定类别对应的第二数据链中存储(该第二数据链的存储和读取有赖于该特定类别对应的分类数据集)。
所述第二数据属于同一类别是指第二数据中包括的第一数据属于同一类别;同时,第一数据中包括分类信息,该分类信息与数据类别同样是一一对应的,从而使得每个第一数据均存在唯一对应的数据类别。
本实施例中,所述第二数据的存储是顺序进行的,即不论该第二数据属于何种类别,数据存储器中均按照第二数据存入的先后顺序进行存储,从而使得每个第二数据都能通过其序号得以确定。
本实施例的有益效果在于:
1、通过不同分类数据集实现了数据类型的区分;
2、在第1点的基础上,分类数据集配合包括第一数据和相邻数据关联参数的第二数据,实现了灵活的存储空间动态管理、降低了数据存入操作的复杂度;
3、通过分类数据集的标识实现了数据数量的区分;
4、在第3点的基础上,分别基于第一标识和第二标识区分数据数量为零的分类和数据数量非零的分类,即在第二标识(即专用标识位)的基础上增加了第一标识(即该分类数据集的bit位是否全0或全1),从而使得数据数量的区分维度得以提升。
根据上述实施例,在本实施例中所述方法还包括:
通过目标分类数据集,读取设定的数据;
所述目标分类数据集是根据分类数据集的标识确定的,数据数量满足拟定后续操作所需数量的分类数据集;所述拟定后续操作是所述数据被读取后拟进行的操作。
所述通过目标分类数据集,读取设定的数据的步骤包括:
根据第i个第二数据的存储序号,执行读取操作得到第i个第二数据;
其中,若i等于1,则所述第一个第二数据的存储序号是根据所述目标分类数据集的头数据关联参数确定的;若i大于1,则所述第i个第二数据的存储序号是通过第i-1个第二数据确定的;
所述读取操作是指:
根据所述第i个第二数据的存储序号确定第i个第二数据的起止位置:
Figure 442999DEST_PATH_IMAGE001
式中,
Figure 647715DEST_PATH_IMAGE002
Figure 987561DEST_PATH_IMAGE003
分别为第i个第二数据的起、止位置;
Figure 107306DEST_PATH_IMAGE004
为所述第i个第二数据的存储 序号;
Figure 303932DEST_PATH_IMAGE005
为所述第二数据的比特位数,且不同所述第二数据的比特位数相同;
根据所述第i个第二数据的起止位置,读取得到第i个第二数据。
所述通过目标分类数据集,读取设定的数据的步骤后,还包括:
将所述目标分类数据集的标识置为第一零标识。
所述第二标识为1比特的二进制标识;置为0的所述第二标识和置为1的所述第二标识这两者中,一者用于标识分类数据集中数据数量大于1,另一者用于标识分类数据集中数据数量等于1。
本实施例在上一实施例的基础上,进一步提供了数据读取步骤,利用上一实施例中存入数据的标识配合本实施例提供的读取步骤,能够更为有效的数据读取和后续运算,即读取类别和数量满足后续运算需求的第二数据链,该第二数据链的读取是通过如下步骤实现的:
首先根据后续运算需求确定要读取的数据类别,从而确定该类别对应的一个或多个分类数据集作为目标分类数据集;
随后针对目标分类数据集的标识确定所述目标分类数据集对应的第二数据链中的数据数量是否满足后续运算需求:
若不满足,则跳过该分类数据集,并将该分类数据集中的每个比特位置1;
值得说明的是,所述将该分类数据集中的每个比特位置1的步骤的目的在于清空存储记录,因此也可在全部分类数据集均已完成读取操作(或者被跳过)后,将存储记录一并清除(即将存储器的每个比特位均置1).
若满足,则该分类数据集为目标分类数据集,通过该目标分类数据集读取头数据关联参数、通过所述头关联参数读取第1个第二数据得到第1个第二数据中的第一数据和相邻数据关联参数、通过第1个第二数据中的相邻数据关联参数读取第2个第二数据得到第2个第二数据中的第一数据和相邻数据关联参数…以此类推直至该目标分类数据集对应的第二数据链全部读取完成,并将该目标分类数据集中的每个比特位置1;
同样地,所述将该目标分类数据集中的每个比特位置1的步骤的目的在于清空存储记录,因此也可在全部分类数据集均已完成读取操作(或者被跳过)后,将存储记录一并清除(即将存储器的每个比特位均置1).
上述步骤完成后,针对下一目标分类数据集进行上述判断,直至全部的目标分类数据集均判断完成或者读取数据的数量已满足设定的条件。
值得说明的是,本实施例中的第二数据链、(目标)分类数据集、头数据关联参数、相邻数据关联参数的实现可以基于编程语言中的链表结构予以实现,即在一个优选的实施方案中,(目标)分类数据集以(目标)链表实现、头数据关联参数以所述(目标)链表的头指针实现、相邻数据关联参数以链表中的数据指针实现,这一链表中存储的数据链即为第二数据链。
下面将对本实施例中数据读取方法做更为详细的说明。
具体地,对于采用2个物理独立的SDRAM分别作为序号存储器和数据存储器的情 况,假定SDRAM的端口宽度为512bit、第二数据的比特位数为
Figure 995945DEST_PATH_IMAGE006
(一般
Figure 998536DEST_PATH_IMAGE007
,但本实 施例仍然支持
Figure 459604DEST_PATH_IMAGE008
时的数据存取);
针对对应第二数据链满足后续运算需求数据类别和数量的目标分类数据集,根据第i个第二数据的存储序号,执行读取操作得到第i个第二数据;
由于数据存储器中,每512个bit为一个存储单元,则上述读取操作应中应当确定 待读取的数据是否完整地存储在单个存储单元中(对于
Figure 325667DEST_PATH_IMAGE008
的情况,则无需确定, 直接执行后续的跨单元读取即可),即判断下式是否成立:
Figure 770555DEST_PATH_IMAGE009
其中
Figure 983361DEST_PATH_IMAGE010
Figure 767778DEST_PATH_IMAGE011
分别表示
Figure 542092DEST_PATH_IMAGE012
Figure 474276DEST_PATH_IMAGE013
向下取整后的数值。
若成立,则说明待读取的数据完整地存储在单个存储单元中,此时将该待读取的数据所在的存储单元整体读出后,去除无关数据即可;
若不成立,则说明待读取的数据没有完整地存储在单个存储单元中,而是分别存 储在至少两个存储单元中,此时将该待读取的数据所在的至少两个存储单元整体读出后 (所述至少两个存储单元的起、止序号分别为
Figure 490773DEST_PATH_IMAGE010
Figure 254330DEST_PATH_IMAGE011
),去除无关数据即可。(对于
Figure 963660DEST_PATH_IMAGE008
的情况,直接执行本步骤而无需进行判断)
所述去除无关数据的步骤可以由如下方式中的任一者或任多者组合实现:
1、删除前偏移量后,顺序保留前
Figure 616096DEST_PATH_IMAGE006
个bit的数据,得到读取数据;所述前偏移量的 取值为
Figure 436285DEST_PATH_IMAGE014
除以
Figure 726452DEST_PATH_IMAGE015
的余数;
2、删除前偏移量和后偏移量,得到读取数据;所述后偏移量的取值为
Figure 809945DEST_PATH_IMAGE015
Figure 687028DEST_PATH_IMAGE016
除 以
Figure 310907DEST_PATH_IMAGE015
的余数的差;
3、删除后偏移量后,顺序保留后
Figure 49056DEST_PATH_IMAGE006
个bit的数据,得到读取数据。
进一步地,在本实施例的一个优选方案中,所述将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识的步骤包括:
确定所述第一标识为第一零标识,则通过更新头数据关联参数和/或更新所述第二标识置为用于标识分类数据集中数据数量等于1的值,将所述第一标识更新为第一非零标识;
确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量等于1的值,则将所述第二标识更新为用于标识分类数据集中数据数量大于1的值;
确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量大于1的值,则保持所述第二标识为用于标识分类数据集中数据数量大于1的值。
根据上述任一实施例,本实施例将结合具体应用场景实例,提供一种Equihash算法数据的分类、存储与读取方法。
下面将简单介绍本实施例的相关背景。
zerocash工作量证明算法采用的Equihash(200,9)算法是由卢森堡大学的安全、可靠性和信任跨学科中心(SnT)开发的一种以内存为导向的工作证明算法,其理论依据是一个著名的计算法科学及密码学问题:广义生日悖论问题。
Equihash(n,k)算法具有其鲜明特点:它一方面是记忆性的,另一方面很容易验证。广义生日悖论就是在N个n比特的数据样本中找到2k个碰撞的样本。
具体到Zerocash的block header包括4个字节的区块版本号nVersion,它指示遵从哪个区块验证规则;32字节的hashPrevBlock,它表示前一区块的区块头block header;32字节的 hashMerkleRoot,本字段允许调整,通过对包含进区块的交易进行增删,或改变顺序,或者修改Coinbase交易的输入字段而产生变化;32字节的hashReserved,这是保留字段;4个字节的nTime,基本取机器开始哈希header时候的Unix时间戳;4个字节的nBits,它由全网算力决定,每产生一个新块都调整一次难度;32个字节的nNonce,提供2256种可能取值,通过改变nNonce来改变block header来最终产生一个小于或等于目标target的哈希。
一个有效的Equihash解应该满足下列条件: A:广义生日悖论条件即2k个样本异或结果为0; B:对于第r轮(0<r<k)2k个样本按字典顺序排列后每2r个样本数据异或后有rn/(k +1)个导0(leading zeros)。
为了找到有效的Equihash解,一般采用Wagner算法:在产生N个Xi后,对Xi进行排序,找到所有第一个n/(k+1)比特碰撞的Xi、Xj,然后保存他们之间的异或结果Xij;接着对所有Xij排序,找到下一个n/(k+1)碰撞的Xij、Xmn;重复上述过程共k-1轮,直到只有2n/(k+1)比特没有碰撞。最后一步,找到最后2n/(k+1)比特碰撞的结果X,即最终Equihash的解。
本实施例的Equihash算法数据的分类、存储与读取方法有赖于Equihash算法数据的分类、存储与读取装置实现。
所述Equihash算法数据的分类、存储与读取装置包括:
地址累加器,用于为接收到的数据编号,由0开始每收到一个数据则加1,即数据序号也标志排序数据存储的相对地址;
数据存储器,存储排序数据以及链表指针数据,用于将数据顺序存储,并根据多指针结构按照分类顺序将数据按顺序读取;
序号存储器,含有多行数据存储空间,每行代表一个链表,每行存储链表的链头指针p(其内容等于最后一个加入本链表的数据序号)以及本链表中是否只存在一个数据的标识位ds(链表中不存在数据该位为1,链表中只有1个数据该位为0,多余一个数据该位为1)。
上述装置中,利用一个多行数据存储空间实现一个多链表表头以及数据个数判断位(ds)。其中的每一行的内容都可以判断出链表中存在0个、1个或者1个以上数据,当多于一个数据时,可以通过链表表头数值,实现整个链表的数据顺序读取,极大的提高了算法效率。
针对地址累加器,每当Equihash算法中的一个数据输入,地址自动加1;当全部排序数据写完之后,地址累加器归位,输出的地址设置为0。
针对数据存储器,装置每收到一个数据,累加器为其计算数据序号,同时根据数据内容可以计算出数据的分类结果,数据存储器中存储着每个数据的内容以及与该数据同属于一个链表的前一个数据的序号(可以看作数据指针,当一个数据不存在前一个数据时,其前一个数据的序号为全1),当按分类结果读取数据时,可以根据序号存储器先将对应链表的最后一个数据以及该数据的前一个数据序号读出,而后顺着链表可以将所有数据全部读出。
针对序号存储器,含有多行数据存储空间,每行代表一个链表,每行存储链表的链头指针p(其内容等于最后一个加入本链表的数据序号)以及本链表中是否只存在一个数据的标识位ds(链表中不存在数据该位为1,链表中只有1个数据该位为0,多余一个数据该位为1)。初始化或开始新的分类存储时,初始化为二进制全1,表示全部为空链表。存储数据的时候,每一次接收到属于该指针链表的数据,则更新该序号存储器对应位置为接收到的数据序号,并将原本存储在序号存储器中的数据指针值与接收到的数据一并进行存储。当根据分类结果,按照指针链表读取数据时,首先读取序号存储器内的数据序号,并将序号存储器中对应位置置为全1。同时判断链表中数据是否多于1个,当数据多余1个时将沿着链表将数据从数据存储器中全部读出。
基于上述装置,本实施例的Equihash算法数据的分类、存储方法,包括以下步骤:
(1)当装置接收到一个新数据时,根据累加器输出为其分配1个序号。
(2)根据接收到的数据的某些位的数值计算判断该数据属于多个链表中的哪个链表,即分类。
(3)读取序号存储器中该链表内容,包括链表的链头指针p(其内容等于最后一个加入本链表的数据序号)以及本链表中是否只存在一个数据的标识位ds。
情况1:如果该链表内容为二进制全1,表明目前链表尚为空链表,将链表中指针值p赋值为接收到数据的序号,同时标识位ds赋值为0。同时,随同数据一同存储的序号值赋为二进制全1,表示在该数据之前链表已无其他数据。
情况2:如果该链表内容中,标识位ds值为0,表明该链表中只有1个数据。则标识位ds值置为1,将链头指针p中原值随同数据一同存储,同时将链表中指针值p赋值为接收到数据的序号。
情况3:如果该链表内容中,标识位ds值为1,链头指针p的值非二进制全1,表明该链表中有2个或者2个以上数据。则标识位ds值置为1,将链头指针p中原值随同数据一同存储,同时将链表中指针值p赋值为接收到数据的序号。
上述步骤(3)具体包括:
序号存储器含有多行数据存储空间,每一行表示一个链表,其中包含链头指针p(其内容等于最后一个加入本链表的数据序号)以及本链表中是否只存在一个数据的标识位ds(链表中不存在数据该位为1,链表中只有1个数据该位为0,多余一个数据该位为1)。利用数据分类、存储过程都是在各链表全为空链表的情况下开始,即每个链表都是从空链表状态变为1个数据状态在转变为2个或2个以上数据状态,利用链头指针p和标识位ds全1表示空链表。
当存入头一个数据时,标识位ds置为0,链头指针p赋值为存入数据的序号;当存入第二个以及后续数据时,标识位ds置为1,链头指针p赋值为最新存入数据的序号。
更为具体地,如图2所示,第K个数据存储前,首先判断其所述分类对应的链表(即图2中第3个链表)中数据存储情况,由于标识位ds和头指针p均为1,则获知第3个链表为空,因此直接将序号为K的数据附带空指针(即图2数据存储器的序号框中不包含任何指针)存入数据存储器后,更新第3个链表的头指针p为K、标识位ds为0后,完成存储;
后续数据的存储说明如下,假设第P个数据所述分类与第K个数据相同,均应存储至第3个链表,且K至P之间的其它数据均不属于第3个链表,则第P个数据的存储过程如图3所示:
首先判断第3个链表中数据存储情况,由于标识位ds为0,获知此时第3个链表中存有一个数据,因此将序号为P的数据附带指针K存入数据存储器后,更新第3个链表的头指针p为P、标识位ds为1后,完成存储.
本实施例提供一种Equihash算法数据的读取方法,包括以下步骤:
(1)在序号存储器中找到对应的链表位置,将链头指针p以及,标识位ds的值读取出来。
(2)根据链头指针p以及标识位ds的值进行如下操作:
情况1:当链头指针p以及标识位ds的值为二进制全1,则表明该链表为空链表,放弃数据读取操作,进行下一个链表的数据读取。
情况2:当标识位ds的值为二进制0,则表明该链表中只有1个数据,放弃数据读取操作,将链头指针p以及标识位ds的值置为二进制全1,并进行下一个链表的数据读取。
情况3:当链头指针p非二进制全1前标识位ds的值为二进制1,则表明该链表中的数据个数大于等于2个,读取指针p中数值,p值即该链表中最后一个数的序号,同时将序号存储中该链表的数值置为二进制全1。根据该序号计算该数据在数据存储器中的位置,将该数据以及一同存储的该数据在链表中前一个数据的序号一并读取。并根据前一个数据的序号读取下一个数据以及一并存储的数据序号读取。如此循环,直到读取到的前一个数据序号为二进制全1,表示该链表已全部读取完毕,进行下一个链表的数据读取。
上述步骤(2)具体包括:
利用序号存储器中对应链表中的链头指针p和标识位ds的数值预先判断该链表中存在0个、1个或者1个以上数据。当链表中不存在数据时直接放弃数据读取;当链表中只存在1个数据时,后续计算中无法进行后续的异或计算,也直接放弃数据读取;当链表中存在1个以上数据时,可利用与数据同时存储的前一个数据的序号进行整个链表的数据读取,并通过前一个数据的序号是否为二进制全1判断是否已经将数据全部读取完成。
更为具体地,如图4所示,读取操作首先判断链表中数据存储情况,对于标识位ds与头指针p均为二进制1(图4上)和标识为ds为0(图4中)的情况,放弃读取;对于标识为ds为1,且头指针不全为1(图4下)的情况,依次执行上述读取步骤,得到读取数据。
本实施例的有益效果在于:
在上述任一实施例的有益效果的基础上,本实施例由于可以提前判断链表中的数据个数,大幅提高了对于Equihash算法数据的分类、存储与读取效率。
下面对本发明提供的基于分类的数据存取系统进行描述,下文描述的基于分类的数据存取系统与上文描述的基于分类的数据存取方法可相互对应参照。
如图6所示,本发明实施例还提供一种基于分类的数据存取系统,包括:
序号模块1,用于接收第一数据,并根据接收顺序得到所述第一数据的存储序号;
分类模块2,用于根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;
存储模块3,用于顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;
更新模块4,用于将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;
所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;
所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;
所述设定的二进制值为0或1。
进一步地,本实施例还包括:
读取模块,用于通过目标分类数据集,读取设定的数据;
所述目标分类数据集是根据分类数据集的标识确定的,数据数量满足拟定后续操作所需数量的分类数据集;所述拟定后续操作是所述数据被读取后拟进行的操作。
标识重置模块,用于将所述目标分类数据集的标识置为第一零标识。
所述读取模块包括:
读取单元,用于根据第i个第二数据的存储序号,执行读取操作得到第i个第二数据;
其中,若i等于1,则所述第一个第二数据的存储序号是根据所述目标分类数据集的头数据关联参数确定的;若i大于1,则所述第i个第二数据的存储序号是通过第i-1个第二数据确定的;
所述读取操作是指:
根据所述第i个第二数据的存储序号确定第i个第二数据的起止位置:
Figure 100189DEST_PATH_IMAGE001
式中,
Figure 228682DEST_PATH_IMAGE002
Figure 889208DEST_PATH_IMAGE003
分别为第i个第二数据的起、止位置;
Figure 91650DEST_PATH_IMAGE004
为所述第i个第二数据的存储 序号;
Figure 313684DEST_PATH_IMAGE005
为所述第二数据的比特位数,且不同所述第二数据的比特位数相同;
根据所述第i个第二数据的起止位置,读取得到第i个第二数据。
所述更新模块4包括:
第一单元,用于确定所述第一标识为第一零标识,则通过更新头数据关联参数和/或更新所述第二标识置为用于标识分类数据集中数据数量等于1的值,将所述第一标识更新为第一非零标识;
第二单元,用于确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量等于1的值,则将所述第二标识更新为用于标识分类数据集中数据数量大于1的值;
第三单元,用于确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量大于1的值,则保持所述第二标识为用于标识分类数据集中数据数量大于1的值。
本实施例的有益效果在于:
1、通过不同分类数据集实现了数据类型的区分;
2、在第1点的基础上,分类数据集配合包括第一数据和相邻数据关联参数的第二数据,实现了灵活的存储空间动态管理、降低了数据存入操作的复杂度;
3、通过分类数据集的标识实现了数据数量的区分;
4、在第3点的基础上,分别基于第一标识和第二标识区分数据数量为零的分类和数据数量非零的分类,即在第二标识(即专用标识位)的基础上增加了第一标识(即该分类数据集的bit位是否全0或全1),从而使得数据数量的区分维度得以提升。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行基于分类的数据存取方法,该方法包括:接收第一数据,并根据接收顺序得到所述第一数据的存储序号;根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;所述设定的二进制值为0或1。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于分类的数据存取方法,该方法包括:接收第一数据,并根据接收顺序得到所述第一数据的存储序号;根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;所述设定的二进制值为0或1。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于分类的数据存取方法,该方法包括:接收第一数据,并根据接收顺序得到所述第一数据的存储序号;根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;所述设定的二进制值为0或1。
又一方面,本发明还提供一种芯片,包括逻辑功能部;所述逻辑功能部被芯片执行时实现以执行上述各方法提供的基于分类的数据存取方法,该方法包括:接收第一数据,并根据接收顺序得到所述第一数据的存储序号;根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;所述设定的二进制值为0或1。
值得说明的是,不同于电子设备实施例、计算机程序实施例以及存储介质实施例中,基于分类的数据存取方法的步骤是基于软件程序实现的,本发明实施例提供的芯片中,基于分类的数据存取方法的步骤是基于逻辑单元的固件实现的,换言之,通过与非门等逻辑门的结构设计(即芯片设计),使得本实施例提供的芯片能够得以执行基于分类的数据存取方法的步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种基于分类的数据存取方法,其特征在于,包括:
接收第一数据,并根据接收顺序得到所述第一数据的存储序号;
根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;
顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;
将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;
所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;
所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;
所述设定的二进制值为0或1。
2.根据权利要求1所述的基于分类的数据存取方法,其特征在于,还包括:
通过目标分类数据集,读取设定的数据;
所述目标分类数据集是根据分类数据集的标识确定的,数据数量满足拟定后续操作所需数量的分类数据集;所述拟定后续操作是所述数据被读取后拟进行的操作。
3.根据权利要求2所述的基于分类的数据存取方法,其特征在于,所述通过目标分类数据集,读取设定的数据的步骤包括:
根据第i个第二数据的存储序号,执行读取操作得到第i个第二数据;
其中,若i等于1,则所述第一个第二数据的存储序号是根据所述目标分类数据集的头数据关联参数确定的;若i大于1,则所述第i个第二数据的存储序号是通过第i-1个第二数据确定的;
所述读取操作是指:
根据所述第i个第二数据的存储序号确定第i个第二数据的起止位置:
Figure 559814DEST_PATH_IMAGE001
Figure 525496DEST_PATH_IMAGE002
式中,
Figure 143297DEST_PATH_IMAGE003
Figure 5073DEST_PATH_IMAGE004
分别为第i个第二数据的起、止位置;
Figure 842579DEST_PATH_IMAGE005
为所述第i个第二数据的存储序 号;
Figure 346373DEST_PATH_IMAGE006
为所述第二数据的比特位数,且不同所述第二数据的比特位数相同;
根据所述第i个第二数据的起止位置,读取得到第i个第二数据。
4.根据权利要求2所述的基于分类的数据存取方法,其特征在于,所述通过目标分类数据集,读取设定的数据的步骤后,还包括:
将所述目标分类数据集的标识置为第一零标识。
5.根据权利要求1至4中任一项所述的基于分类的数据存取方法,其特征在于,所述第二标识为1比特的二进制标识;置为0的所述第二标识和置为1的所述第二标识这两者中,一者用于标识分类数据集中数据数量大于1,另一者用于标识分类数据集中数据数量等于1;
所述将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识的步骤包括:
确定所述第一标识为第一零标识,则通过更新头数据关联参数和/或更新所述第二标识置为用于标识分类数据集中数据数量等于1的值,将所述第一标识更新为第一非零标识;
确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量等于1的值,则将所述第二标识更新为用于标识分类数据集中数据数量大于1的值;
确定所述第一标识为第一非零标识,且所述第二标识是用于标识分类数据集中数据数量大于1的值,则保持所述第二标识为用于标识分类数据集中数据数量大于1的值。
6.一种基于分类的数据存取系统,其特征在于,包括:
序号模块,用于接收第一数据,并根据接收顺序得到所述第一数据的存储序号;
分类模块,用于根据所述第一数据中的分类信息,确定所述第一数据所属的分类数据集;所述分类数据集存储在序号存储器中,包括用于指向设定数据的头数据关联参数和用于标识分类数据集中数据数量的标识;
存储模块,用于顺序存储包括第一数据和相邻数据关联参数的第二数据至数据存储器;所述相邻数据关联参数的取值为所述分类数据集在顺序存储时刻的头数据关联参数;
更新模块,用于将所述分类数据集的头数据关联参数更新为所述第一数据的存储序号,并更新所述分类数据集的标识;
所述标识包括用于标识分类数据集对应类别的数据数量是否为零的第一标识和用于标识分类数据集对应类别的数据数量是否大于设定阈值的第二标识;
所述第一标识包括第一零标识和第一非零标识;所述第一零标识为分类数据集中每个比特均为设定的二进制值的标识;所述第一非零标识为分类数据集中每个比特不均为设定的二进制值的标识;
所述设定的二进制值为0或1。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述基于分类的数据存取方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于分类的数据存取方法的步骤。
9.一种芯片,其特征在于,包括逻辑功能部;所述逻辑功能部被芯片执行时实现权利要求1至5任一项所述基于分类的数据存取方法的步骤。
CN202111280153.2A 2021-11-01 2021-11-01 基于分类的数据存取方法、系统、介质及程序 Active CN113741821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111280153.2A CN113741821B (zh) 2021-11-01 2021-11-01 基于分类的数据存取方法、系统、介质及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111280153.2A CN113741821B (zh) 2021-11-01 2021-11-01 基于分类的数据存取方法、系统、介质及程序

Publications (2)

Publication Number Publication Date
CN113741821A CN113741821A (zh) 2021-12-03
CN113741821B true CN113741821B (zh) 2022-03-01

Family

ID=78727189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111280153.2A Active CN113741821B (zh) 2021-11-01 2021-11-01 基于分类的数据存取方法、系统、介质及程序

Country Status (1)

Country Link
CN (1) CN113741821B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404009A (zh) * 2008-10-31 2009-04-08 金蝶软件(中国)有限公司 一种数据分类过滤方法、系统及设备
WO2013020002A1 (en) * 2011-08-02 2013-02-07 Cavium, Inc. Incremental update of rules for packet classification
CN103886007A (zh) * 2013-12-20 2014-06-25 广西大学 一种基于相互约束的模糊数据分类方法
CN110083663A (zh) * 2019-04-09 2019-08-02 北京中科智营科技发展有限公司 一种数据展示的分类优化方法和装置
CN110309912A (zh) * 2018-03-27 2019-10-08 北京深鉴智能科技有限公司 数据存取方法、装置、硬件加速器、计算设备、存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404009A (zh) * 2008-10-31 2009-04-08 金蝶软件(中国)有限公司 一种数据分类过滤方法、系统及设备
WO2013020002A1 (en) * 2011-08-02 2013-02-07 Cavium, Inc. Incremental update of rules for packet classification
CN103886007A (zh) * 2013-12-20 2014-06-25 广西大学 一种基于相互约束的模糊数据分类方法
CN110309912A (zh) * 2018-03-27 2019-10-08 北京深鉴智能科技有限公司 数据存取方法、装置、硬件加速器、计算设备、存储介质
CN110083663A (zh) * 2019-04-09 2019-08-02 北京中科智营科技发展有限公司 一种数据展示的分类优化方法和装置

Also Published As

Publication number Publication date
CN113741821A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
CN107122130B (zh) 一种数据重删方法及装置
CN109145080B (zh) 一种文本指纹获得方法及装置
CN106909575B (zh) 文本聚类方法和装置
CN106407224A (zh) 一种键值存储系统中文件压实的方法和装置
CN111597548B (zh) 实现隐私保护的数据处理方法及装置
CN110377276B (zh) 源代码文件管理方法及设备
CN111159497A (zh) 正则表达式的生成方法及基于正则表达式的数据提取方法
US9830326B2 (en) Identifying data offsets using binary masks
US11150993B2 (en) Method, apparatus and computer program product for improving inline pattern detection
CN111930924A (zh) 基于布隆过滤器的数据查重系统及方法
CN112559482B (zh) 一种基于分布式的二进制数据分类处理方法和系统
US20210203444A1 (en) Bit assignment estimating device, bit assignment estimating method, and program
CN113741821B (zh) 基于分类的数据存取方法、系统、介质及程序
CN111783088A (zh) 一种恶意代码家族聚类方法、装置和计算机设备
CN109783024B (zh) 数据存储处理方法及装置
CN111371818B (zh) 一种数据请求的验证方法、装置及设备
CN107248929B (zh) 一种多维关联数据的强关联数据生成方法
CN117271440B (zh) 一种基于freeRTOS文件信息存储方法、读取方法及相关设备
CN115374444B (zh) 基于虚拟主机行为分析的病毒检测方法和装置
CN113765852B (zh) 数据包的检测方法、系统、存储介质和计算设备
CN117729176B (zh) 基于网络地址和响应体的应用程序接口聚合方法及装置
CN115454983B (zh) 一种基于布隆过滤器的海量Hbase数据去重方法
CN111369352B (zh) 联合建模方法、设备及介质
CN111144509B (zh) 用于系统应用程序分类的方法、装置及计算机
EP3163512A1 (en) Data processing apparatus and method for recovering a correct code symbol sequence from multiple incorrect copies

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
TR01 Transfer of patent right

Effective date of registration: 20240318

Address after: 10 Jialeng Road, Singapore # 09-11

Patentee after: Shenglong (Singapore) Pte. Ltd.

Country or region after: Singapore

Address before: 1605, floor 16, No. 9, North Fourth Ring West Road, Haidian District, Beijing 100080

Patentee before: SUNLUNE TECHNOLOGY DEVELOPMENT (BEIJING) Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right