一种布尔电路编码方法、装置及系统与流程

文档序号:18410949发布日期:2019-08-13 18:08阅读:257来源:国知局
一种布尔电路编码方法、装置及系统与流程

本发明涉及计算机数据处理技术领域,特别地,涉及一种布尔电路编码方法、装置及系统。



背景技术:

布尔电路是很多密码学算法的基础,目前布尔电路的主流格式为bristol格式,bristol格式为文本格式,电路文件相对较大。特别对于复杂的计算逻辑,转换生成的布尔电路可能及其复杂,电路表示也非常大,而电路文件的大小直接影响了电路数据存储、传输及执行的效率。因此,本技术领域亟需一种可以有效压缩布尔电路的编码方法。



技术实现要素:

本说明书实施例的目的在于提供一种布尔电路编码方法、装置及系统,可以有效实现对布尔电路文件的大幅度压缩。

本说明书提供一种布尔电路编码方法、装置及系统是包括如下方式实现的:

一种布尔电路编码方法,包括:

获取目标布尔电路文件中的待处理电路数据;

对所述待处理电路数据的有效位进行编码处理,获得所述待处理电路数据的编码电路数据,所述编码电路数据包括一个或者多个字节,所述字节的最高比特位用于标识该字节的下一个字节是否属于所述编码电路数据。

本说明书提供的所述方法的另一个实施例中,所述对所述待处理电路数据进行编码处理,包括:

将所述待处理电路数据与预设值进行比较;

若所述待处理电路数据小于预设值,则将所述待处理电路数据的最低八比特位作为一个字节写入存储。

本说明书提供的所述方法的另一个实施例中,所述对所述待处理电路数据进行编码处理,包括:

若所述待处理电路数据大于等于预设值,获取所述待处理电路数据的最低七比特位作为一个字节的较低七比特位写入存储,并将该字节的第八比特位设置为1;

将所述待处理电路数据右移七比特位,并执行下述迭代步骤:

将上次迭代右移后的电路数据与所述预设值进行比较;

若上次迭代右移后的电路数据大于等于所述预设值,则获取上次迭代右移后的电路数据的最低七比特位作为一个字节的较低七比特位写入存储,并将该字节的第八比特位设置为1;

将上次迭代右移后的电路数据右移七比特位,获得本次迭代右移后的电路数据;

重复上述迭代步骤,直至右移后的电路数据小于所述预设值,则将最后一次迭代右移后的电路数据的最低位八比特位作为一个字节写入存储。

本说明书提供的所述方法的另一个实施例中,所述方法还包括:

根据编码后的布尔电路文件中各字节的最高比特位对编码后的布尔电路文件进行解码。

本说明书提供的所述方法的另一个实施例中,所述对编码后的布尔电路文件进行解码,包括:

读取编码后的布尔电路文件中的字节,提取该字节的较低七比特位叠加至预设初始化数据,获得初始叠加数据;

判断该字节的第八比特位是否为1,如果判断结果为否,则将所述初始叠加数据输出。

本说明书提供的所述方法的另一个实施例中,所述对编码后的布尔电路文件进行解码,包括:

如果判断结果为是,则继续读取下一个字节,并执行下述迭代步骤:

提取本次迭代待处理的字节的较低七比特位叠加至所述初始叠加数据,获得本次迭代的叠加数据;

判断本次迭代待处理的字节的第八比特位是否为1,如果判断结果为是,则继续读取下一个字节作为下次迭代待处理的字节;

直至判断结果为否,则结束上述迭代,将最后一次迭代获得的叠加数据输出。

本说明书提供的所述方法的另一个实施例中,所述获取待处理布尔电路数据之前还包括:

将目标布尔电路文件中的电路数据根据逻辑门的依赖关系进行排序。

本说明书提供的所述方法的另一个实施例中,所述获取待处理布尔电路数据之前还包括:

在目标布尔电路文件的逻辑门信息中增加预测标识,所述预测标识用于标识相应的逻辑门的输入线是否继续使用。

另一方面,本说明书实施例还提供一种布尔电路解码方法,包括:

获取编码后的布尔电路文件,所述编码后的布尔电路文件包括一个或者多个字节,所述字节根据对布尔电路文件中的电路数据的有效位进行编码处理后获得,所述字节的最高比特位用于标识所述字节的下一个字节与所述字节是否属于同一电路数据;

根据所述编码后的布尔电路文件中各字节的最高比特位对编码后的布尔电路文件进行解码。

另一方面,本说明书实施例还提供一种布尔电路编码装置,所述装置包括:

数据获取模块,用于获取目标布尔电路文件中的待处理电路数据;

数据编码模块,用于对所述待处理电路数据的有效位进行编码处理,获得所述待处理电路数据的编码电路数据,所述编码电路数据包括一个或者多个字节,所述字节的最高比特位用于标识该字节的下一个字节是否属于所述编码电路数据。

另一方面,本说明书实施例还提供一种布尔电路解码装置,所述装置包括:

数据获取模块,用于获取编码后的布尔电路文件,所述编码后的布尔电路文件包括一个或者多个字节,所述字节根据对布尔电路文件中的电路数据的有效位进行编码处理后获得,所述字节的最高比特位用于标识所述字节的下一个字节与所述字节是否属于同一电路数据;

数据解码模块,用于根据所述编码后的布尔电路文件中各字节的最高比特位对编码后的布尔电路文件进行解码。

另一方面,本说明书实施例还提供一种布尔电路编码设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:

获取目标布尔电路文件中的待处理电路数据;

对所述待处理电路数据的有效位进行编码处理,获得所述待处理电路数据的编码电路数据,所述编码电路数据包括一个或者多个字节,所述字节的最高比特位用于标识该字节的下一个字节是否属于所述编码电路数据。

另一方面,本说明书实施例还提供一种布尔电路编码系统,所述系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个实施例所述方法的步骤。

本说明书一个或多个实施例提供的布尔电路编码方法、装置及系统,可以基于布尔电路文件中各电路数据的有效位对相应的电路数据进行编码处理,获得由一系列字节组成的编码后的布尔电路文件。其中,字节的最高比特位可以用来标识该字节对应的待处理电路数据是否对应有更高的有效位,字节的较低七比特位可以由相应的待处理电路数据依次写入的有效位确定。布尔电路文件中的电路数据通常由正整数值表示,且大部分整数值较小,相对应的有效位数也较少。本说明书实施例中通过仅提取电路数据的有效位,基于该有效位对相应的电路数据进行编码处理,可以有效实现对布尔电路文件的大幅度压缩。

附图说明

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

图1为本说明书提供的一种布尔电路编码方法实施例的流程示意图;

图2为本说明书提供的另一种布尔电路编码方法实施例的流程示意图;

图3为本说明书提供的另一种布尔电路编码方法实施例的流程示意图;

图4为本说明书提供的一个实施例中的布尔电路编码流程示意图;

图5为本说明书提供的另一种布尔电路编码方法实施例的流程示意图;

图6为本说明书提供的一种布尔电路编码装置实施例的模块结构示意图;

图7为本说明书提供的另一种布尔电路编码装置实施例的模块结构示意图;

图8为根据本说明书的一个示例性实施例的服务器的示意结构图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。

布尔电路是很多密码学算法的基础,目前布尔电路的主流的格式为bristol格式,bristol格式为文本格式,电路文件相对较大。特别对于复杂的计算逻辑,转换生成的布尔电路可能及其复杂,电路表示也非常大,而电路的大小直接影响了电路的加载和执行效率。

相应的,本说明书实施例提供了一种布尔电路编码方法,可以基于布尔电路文件中各电路数据的有效位对相应的电路数据进行编码处理,获得由一系列字节组成的编码后的布尔电路文件。其中,字节的最高比特位可以用来标识该字节对应的待处理电路数据是否对应有更高的有效位,字节的较低七比特位可以由相应的待处理电路数据依次写入的有效位确定。布尔电路文件中的电路数据通常由正整数值表示,且大部分整数值较小,相对应的有效位数也较少。本说明书实施例中通过仅提取电路数据的有效位,基于该有效位对相应的电路数据进行编码处理,可以大幅度压缩编码后的数据的存储空间,实现对布尔电路文件的有效压缩,同时编码及解码方式均非常简单高效。

图1是本说明书提供的所述一种布尔电路编码方法实施例流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。

具体的一个实施例如图1所示,本说明书提供的布尔电路编码方法的一个实施例中,所述方法可以包括:

s102:获取目标布尔电路文件中的待处理电路数据。

可以获取待处理的目标布尔电路文件。一些实施方式中,所述布尔电路文件通常可以包括门线数目、逻辑门数目、输入比特数目、输出比特数目、逻辑门信息列表等,每个逻辑门信息可以包括门类型、输入线号、输出线号。布尔电路文件中上述电路信息通常为正整数,可以以文本或者二进制的形式保持在文件中。本说明书实施例中,所述布尔电路文件中的各电路数据可以为以二进制形式进行保持的数据。

s104:对所述待处理电路数据的有效位进行编码处理,获得所述待处理电路数据的编码电路数据,所述编码电路数据包括一个或者多个字节,所述字节的最高比特位用于标识该字节的下一个字节是否属于所述编码电路数据。

对于布尔电路文件中的任意一个电路数据,可以基于电路数据的有效位对相应电路数据进行编码处理,获得该电路数据对应的编码电路数据。

一些实施方式中,可以将待处理电路数据的有效位依次写入存储,实现对待处理电路数据的编码处理,获得编码电路数据。编码电路数据可以包括一个或者多个字节,每个字节可以包括八个比特位。其中,字节的最高第八比特位可以用来标识该字节对应的待处理电路数据是否对应有更高的有效位,即该字节的下一个字节是否与该字节属于一个待处理电路数据。字节的较低七比特位可以由相应的待处理电路数据依次写入的有效位确定。

布尔电路文件中的电路数据通常由正整数值表示,且大部分整数值较小,相对应的有效位数较少。例如,电路信息中每个逻辑门信息都包括一个电路类型,这个类型值通常为小于8的正整数。十进制整数值8对应的二进制数据的有效位为“1000”,其有效位数只有4位。本说明书实施例中,通过仅提取电路数据的有效位,基于该有效位对相应的电路数据进行编码处理,可以大幅度压缩编码后的数据的存储空间,实现对布尔电路文件的有效压缩。

例如,对于以int32数据类型进行存储的布尔电路数据,理想情况下可以将布尔电路文件压缩到原文件的25%。通过对多个布尔电路文件编码测试结果显示,一般也可以压缩到原电路文件的30%-45%。

本说明书的一个或者多个实施例中,可以将所述待处理电路数据与预设值进行比较,根据待处理电路数据相对于预设值的大小进行编码处理。一些实施方式中,所述预设值对应的十进制表示值可以为128。

一些实施例中,若所述待处理电路数据小于预设值,则可以直接将所述待处理电路数据的最低八比特位作为一个字节写入存储,完成对该待处理电路数据的编码处理,获得由一个字节组成的编码电路数据。

另一些实施例中,若所述待处理电路数据大于等于预设值,获取所述待处理电路数据的最低七比特位作为一个字节的较低七比特位写入存储,并将该字节的第八比特位设置为1;

将所述待处理电路数据右移七比特位,并执行下述迭代步骤:

将上次迭代右移后的电路数据与所述预设值进行比较;

若上次迭代右移后的电路数据大于等于所述预设值,则获取上次迭代右移后的电路数据的最低七比特位作为一个字节的较低七比特位写入存储,并将该字节的第八比特位设置为1;

将上次迭代右移后的电路数据右移七比特位,获得本次迭代右移后的电路数据;

重复上述迭代步骤,直至右移后的电路数据小于所述预设值,则将最后一次迭代右移后的电路数据的最低位八比特位作为一个字节写入存储。

编码处理后,如果待处理电路数据小于预设值,则该待处理电路数据编码后的数据仅包括一个字节。如果待处理电路数据大于等于预设值,则该待处理电路数据编码后的数据包括两个及两个以上的字节。而通常布尔电路文件中的电路数据大多数为较小的正整数,从而通过上述编码处理可以大幅度压缩编码后的数据的存储空间。

同时,通过上述简单的比对及移位运算,可以更加高效的完成目标布尔电路文件中各电路数据的编码处理,获得由一系列字节组成的编码后的布尔电路文件。

图2表示本说明书提供的另一种布尔电路编码方法实施例流程示意图。如图2所示,本说明书的另一个实施例中,所述方法还可以包括:

s106:根据编码后的布尔电路文件中各字节的最高比特位对编码后的布尔电路文件进行解码。

由上述实施例的内容可知,将布尔电路文件中的各个电路数据进行编码处理后,可以获得由一系列字节组成的数据,字节的最高比特位用于标识该字节的下一个字节是否与该字节属于一个电路数据。从而通过分析各字节的最高比特位的值,可以准确高效的提取出一个电路数据对应的各个字节,实现对该电路数据的准确解码。

本说明书的一个实施例中,可以采用下述方式进行解码:

读取编码后的布尔电路文件中的字节,提取该字节的较低七比特位叠加至预设初始化数据,获得初始叠加数据;

判断该字节的第八比特位是否为1,如果判断结果为否,则将所述初始叠加数据输出。

另一些实施方式中,如果判断结果为是,则可以继续读取下一个字节,并执行下述迭代步骤:

提取本次迭代待处理的字节的较低七比特位叠加至所述初始叠加数据,获得本次迭代的叠加数据;

判断本次迭代待处理的字节的第八比特位是否为1,如果判断结果为是,则继续读取下一个字节作为下次迭代待处理的字节;

直至判断结果为否,则结束上述迭代,将最后一次迭代获得的叠加数据输出。

由上述实施例的内容可知,如果字节的最高比特位为1,则表示该字节对应的下一个字节与该字节属于一个电路数据;如果字节的最高比特位为0,则表示该字节对应的下一个字节与该字节不属于一个电路数据。

具体实施时,可以依次读取编码后的电路文件中的字节。例如,可以获取编码后的布尔电路文件中的第一个字节,提取该字节的较低七比特位叠加至预设初始化数据,获得初始叠加数据。一些实施方式中,所述预设初始化数据可以为整数值0对应的二进制数据。可以通过将该字节的较低七比特位数据与该初始化数据的最低七比特位进行逻辑或运算,获得初始叠加数据。

然后,可以判断该第一字节最高比特位是否为1:

如果不为1,则输出该初始叠加数据,完成一个电路数据的解码处理。

如果为1,则进行下述迭代步骤:

继续获取下一个字节,提取该字节的较低七比特位数据,叠加至所述初始叠加数据上。一些实施方式中,可以对所述初始叠加数据进行移位及逻辑或运算,将该字节的较低七比特位与初始叠加数据的较低第8位至14位数据进行逻辑或运算,获得本次迭代的叠加数据;

判断本次迭代的字节第八比特位是否为1,如果判断结果为是,则继续读取下一个字节,重复上述步骤;

直至字节的最高比特位为0,则结束上述迭代,将最后一次迭代获得的叠加数据输出,完成一个电路数据的解码处理。

根据上述方案依次对电路文件中的各字节进行解码处理,直至将全部布尔电路数据解析处理,完成电路加载。

上述实施例提供的方案,通过分析字节的最高第八比特位,可以准确有效的提取出一个电路数据对应的各个字节,然后进一步通过移位及叠加处理,可以高效的实现对布尔电路文件的解码处理。

图3表示本说明书提供的一种布尔电路解码方法的流程示意图。如图3所示,本说明书一个或者多个实施例中,所述方法可以包括:

s202:获取编码后的布尔电路文件,所述编码后的布尔电路文件包括一个或者多个字节,所述字节根据对布尔电路文件中的电路数据的有效位进行编码处理后获得,所述字节的最高比特位用于标识所述字节的下一个字节与所述字节是否属于同一电路数据;

s204:根据所述编码后的布尔电路文件中各字节的最高比特位对编码后的布尔电路文件进行解码。

可以获取编码后的布尔电路文件。编码后的布尔电路文件可以包括一个或者多个字节,所述字节根据对布尔电路文件中的各电路数据的有效位进行编码处理后获得。字节的最高第八比特位可以用来标识该字节的下一个字节是否与该字节属于一个电路数据,字节的较低七比特位可以由相应的电路数据依次写入的有效位确定。

然后,可以依次读取编码后的布尔电路文件中的各个字节,根据各字节的最高比特位对编码后的布尔电路文件进行解码处理。通过分析各字节的最高比特位的值,可以准确高效的提取出一个电路数据对应的各个字节,实现对该电路数据的准确解码。

具体的实现方式可以参考上述实施例实施,这里不做一一赘述。

图4表示本说明书提供的应用上述实施例的方案进行电路数据编码处理的流程示意图。如图4所示,对于任意一个待处理电路数据,可以执行下述比对及移位运算方法进行编码处理:

1.1.输入待处理电路数据;

1.2.将待处理电路数据的十六进制值value与0x80(即十进制128)比较;

1.3.若value小于0x80,则直接将待处理电路数据的最低八个比特位写入存储,形成一个字节,然后继续输入下一个电路数据进行编码;

1.4.若value大于等于0x80,则将该待处理电路数据的最低七个比特位写入存储,并将写入存储后形成的字节的最高第八个比特位设置为1,形成一个字节;

如图4所示,一些实施方式中,可以将待处理电路数据的最低七个比特位与0x80对应的最低八位比特位(10000000)进行逻辑或运算,然后,可以将逻辑或后获得的八比特位数据写入存储,形成一个字节;

1.5.将该待处理电路数据的比特位右移七位;

1.6.继续将右移后的电路数据的value与0x80比较,若大于等于0x80,则重复执行步骤1.4-1.5;直至右移后的电路数据的value小于0x80,则按照步骤1.3的方法,将右移后的电路数据的最低八个比特位写入存储;然后继续输入下一个电路数据进行编码。

例如,某待处理电路数据的十进制整数值为8,其小于128,则可以直接获取其对应的最低八比特位“00001000”写入存储,完成该待处理电路数据编码。相应的编码后获得的字节为“00001000”,其中,第八比特位“0”为标识位,标识该待处理电路数据在编码后的电路文件中不存在更高有效位的字节。

若某待处理电路数据的十进制整数值为300,对应的有效位为“100101100”,其大于128,可以先获取较低七比特位“0101100”,并与“10000000”进行逻辑或运算,获得“10101100”,写入存储,形成该电路数据的一个字节“10101100”;其中,第八比特位“1”为标识位,标识该待处理电路数据在编码后的电路文件中存在更高有效位的字节;

然后,将待处理电路数据右移七个比特位,右移后的数据的有效位为“10”,其对应的十进制整数值为2,小于128,则可以直接获取其对应的最低八比特位“00000010”写入存储,形成该电路数据的另一个字节“00000010”,完成该待处理电路数据编码。

重复上述步骤,依次对目标布尔电路文件中的各电路数据进行编码处理,可以获得由一系列字节组成的编码后的布尔电路文件。

相应的解码步骤如下:

2.1.使用文件流或其他存储流,开始解码;

2.2.定义并初始化一个整数值value为0;

2.3.依次读取一个字节,提取字节的低7位值,叠加到value;

2.4.如果最高第八位为1,则回到步骤2.2,继续读取下一个字节;

2.5.如果最高第八位为0,读取完毕,输出读取的数据,完成一个电路数据的解码;

2.6.继续解码直至全部布尔电路信息解析出来,完成电路加载。

例如,若读取的字节为“10101100”,先提取该字节的较低七比特位进行叠加处理,叠加处理后获得的初始叠加数据的最低七个比特位为“0101100”。该字节的最高第八比特位为“1”,则继续读取下一个字节。

若读取的下一个字节为“00000010”,提取该字节的较低七比特位叠加至初始叠加数据:先将叠加位移动至初始叠加数据的第8至14位,然后进行逻辑或运算完成叠加,相应的,叠加后的数据的较低第1-14位为“00000100101100”。该字节的最高第八比特位为“0”,完成一个电路数据解码。相应的,解码输出的电路数据的有效位为“100101100”,对应的十进制值为300。

通过上述方式,可以简单高效的完成目标布尔电路文件中各电路数据的编码处理,大幅度压缩编码后的数据的存储空间,同时还可以简单高效的实现对布尔电路的解码加载处理。

图5表示本说明书提供的另一种布尔电路编码布尔电路编码方法实施例流程示意图。如图5所示,本说明书的另一个实施例中,所述方法还可以包括:

s100:将目标布尔电路文件中的电路数据根据逻辑门的依赖关系进行排序。

在编码处理之前,可以根据实际执行计算处理时各逻辑门的依赖关系对目标布尔电路文件中各电路数据的顺序重新进行排序。通过基于逻辑门的依赖关系对电路数据进行排序后,再进行编码处理,可以在执行电路时采用边加载边执行的方式。

通过一次性全部解码获得的布尔电路文件依然很大,会占用较大的内存空间,从而影响了执行的效率,本说明书上述实施例,通过将各逻辑门按照执行时的依赖关系进行排序,执行时即可采用边解码加载电路边执行电路的方式,从而降低了对内存的占用,大幅度减少了电路执行时对内存空间的需求。

如图5所示,本说明书的另一个实施例中,所述方法还可以包括:

s101:在目标布尔电路文件的逻辑门信息中增加预测标识,所述预测标识用于标识相应的逻辑门的输入线是否继续使用。

在编码处理之前,还可以在目标布尔电路文件的各个逻辑门信息中增加预测标识,相应的,每个逻辑门信息可以包括门类型、输入线号、输出线号及预测标识四类电路数据。所述预测标识可以用于标识相应的逻辑门的输入线是否继续使用。

相应的,在电路执行阶段,当执行完每个逻辑门时,可以根据预测标识来判断该逻辑门对应的输入线在后续执行时是否继续使用。如果不再使用,则可以将该输入线进行释放,从而在电路执行阶段可以实现电路的边执行边释放,进一步降低电路执行对内存的占用。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书一个或多个实施例提供的布尔电路编码方法,可以基于布尔电路文件中各电路数据的有效位对相应的电路数据进行编码处理,获得由一系列字节组成的编码后的布尔电路文件。其中,字节的最高比特位可以用来标识该字节对应的待处理电路数据是否对应有更高的有效位,字节的较低七比特位可以由相应的待处理电路数据依次写入的有效位确定。布尔电路文件中的电路数据通常由正整数值表示,且大部分整数值较小,相对应的有效位数也较少。本说明书实施例中通过仅提取电路数据的有效位,基于该有效位对相应的电路数据进行编码处理,可以有效实现对布尔电路文件的大幅度压缩。

基于上述所述的布尔电路编码方法,本说明书一个或多个实施例还提供一种布尔电路编码装置。所述的装置可以包括使用了本说明书实施例所述方法的系统、软件(应用)、模块、组件、服务器等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,图6表示说明书提供的一种布尔电路编码装置实施例的模块结构示意图,如图6所示,所述装置可以包括:

数据获取模块302,可以用于获取目标布尔电路文件中的待处理电路数据;

数据编码模块304,可以用于对所述待处理电路数据的有效位进行编码处理,获得所述待处理电路数据的编码电路数据,所述编码电路数据包括一个或者多个字节,所述字节的最高比特位用于标识该字节的下一个字节是否属于所述编码电路数据。

利用上述实施例提供的方案,可以对布尔电路文件所占内存进行大幅度压缩。

本说明书的另一个实施例中,所述数据编码模块304可以包括:

比较单元,可以用于将所述待处理电路数据与预设值进行比较;

第一编码单元,可以用于若所述待处理电路数据小于预设值,则将所述待处理电路数据的最低八比特位作为一个字节写入存储。

本说明书的另一个实施例中,所述数据编码模块304可以包括:

第二编码单元,可以用于若所述待处理电路数据大于等于预设值,获取所述待处理电路数据的最低七比特位作为一个字节的较低七比特位写入存储,并将该字节的第八比特位设置为1;

右移单元,可以用于将所述待处理电路数据右移七比特位;

迭代单元,所述迭代单元可以包括比较子单元、第一编码子单元、右移子单元及第二编码子单元,其中,

所述比较子单元,可以用于将上次迭代右移后的电路数据与所述预设值进行比较;

所述第一编码子单元,可以用于若上次迭代右移后的电路数据大于等于所述预设值,则获取上次迭代右移后的电路数据的最低七比特位作为一个字节的较低七比特位写入存储,并将该字节的第八比特位设置为1;

所述右移子单元,可以用于将上次迭代右移后的电路数据右移七比特位,获得本次迭代右移后的电路数据;

所述第二编码子单元,可以用于直至本次迭代右移后的电路数据小于所述预设值,则将本次迭代右移后的电路数据的最低位八比特位作为一个字节写入存储。

利用上述实施例提供的方案,可以高效准确的实现对布尔电路文件所占内存的有效压缩。

图7表示说明书提供的另一种布尔电路编码装置实施例的模块结构示意图。如图7所示,本说明书的另一个实施例中,所述装置还可以包括解码模块306,所述数据解码模块306可以用于根据编码后的布尔电路文件中各字节的最高比特位对编码后的布尔电路文件进行解码。

本说明书的另一个实施例中,所述数据解码模块306可以包括:

解码单元,可以读取编码后的布尔电路文件中的字节,提取该字节的较低七比特位叠加至预设初始化数据,获得初始叠加数据;

判断单元,可以用于判断该字节的第八比特位是否为1;

加载单元,可以用于如果判断结果为否,则将所述初始叠加数据输出。

本说明书的另一个实施例中,所述数据解码模块206可以包括:

迭代单元,所述迭代单元可以包括解码子单元及判断子单元,其中,

所述解码子单元,可以用于如果判断结果为是,则继续读取下一个字节作为本次迭代处理的字节,提取本次待处理的字节的较低七比特位叠加至所述初始叠加数据,获得本次迭代的叠加数据;

所述判断子单元,可以用于判断本次待处理的字节的第八比特位是否为1,如果判断结果为是,则返回解码子单元继续进行处理;

所述加载单元还可以用于当判断子单元的判断结果为否时,将最后一次迭代的叠加数据输出。

利用上述实施例提供的方案,可以高效准确的实现对编码后的布尔电路文件的解码处理。

如图7所示,本说明书的另一个实施例中,所述装置还可以包括:

排序模块300,可以用于将目标布尔电路文件中的电路数据根据逻辑门的依赖关系进行排序。

利用上述实施例提供的方案,可以降低电路执行时对内存空间的占用需求。

如图7所示,本说明书的另一个实施例中,所述装置还可以包括:

标识增加模块301,可以用于在目标布尔电路文件中的逻辑门信息中增加预测标识,所述预测标识可以用于标识相应的逻辑门的输入线是否继续使用。

利用上述实施例提供的方案,可以在电路执行时对输入线进行动态释放,从而进一步减小电路执行过程中对内存的占用,进一步降低电路执行时对内存空间的占用需求。

本说明书的另一个实施例中还提供一种布尔电路解码装置,所述装置可以包括:

数据获取模块,可以用于获取编码后的布尔电路文件,所述编码后的布尔电路文件包括一个或者多个字节,所述字节根据对布尔电路文件中的各电路数据的有效位进行编码处理后获得,所述字节的最高比特位用于标识所述字节的下一个字节与所述字节是否属于同一电路数据;

数据解码模块,可以用于根据所述编码后的布尔电路文件中各字节的最高比特位对编码后的布尔电路文件进行解码。

需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。

本说明书一个或多个实施例提供的布尔电路编码装置,可以基于布尔电路文件中各电路数据的有效位对相应的电路数据进行编码处理,获得由一系列字节组成的编码后的布尔电路文件。其中,字节的最高比特位可以用来标识该字节对应的待处理电路数据是否对应有更高的有效位,字节的较低七比特位可以由相应的待处理电路数据依次写入的有效位确定。布尔电路文件中的电路数据通常由正整数值表示,且大部分整数值较小,相对应的有效位数也较少。本说明书实施例中通过仅提取电路数据的有效位,基于该有效位对相应的电路数据进行编码处理,可以有效实现对布尔电路文件的大幅度压缩。

本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。因此,本说明书还提供一种布尔电路编码设备,包括处理器及存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:

获取目标布尔电路文件中的待处理电路数据;

对所述待处理电路数据的有效位进行编码处理,获得所述待处理电路数据的编码电路数据,所述编码电路数据包括一个或者多个字节,所述字节的最高比特位用于标识该字节的下一个字节是否属于所述编码电路数据。

需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。

本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图8是应用本说明书实施例的布尔电路编码服务器的硬件结构框图。如图8所示,服务器10可以包括一个或多个(图中仅示出一个)处理器20(处理器20可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器30、以及用于通信功能的传输模块40。本邻域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图8中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、gpu,或者具有与图8所示不同的配置。

存储器30可用于存储应用软件的软件程序以及模块,如本发明实施例中的搜索方法对应的程序指令/模块,处理器20通过运行存储在存储器30内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器30可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器30可进一步包括相对于处理器20远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块40用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块40包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块40可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。

上述实施例所述的布尔电路编码设备,可以基于布尔电路文件中各电路数据的有效位对相应的电路数据进行编码处理,获得由一系列字节组成的编码后的布尔电路文件。其中,字节的最高比特位可以用来标识该字节对应的待处理电路数据是否对应有更高的有效位,字节的较低七比特位可以由相应的待处理电路数据依次写入的有效位确定。布尔电路文件中的电路数据通常由正整数值表示,且大部分整数值较小,相对应的有效位数也较少。本说明书实施例中通过仅提取电路数据的有效位,基于该有效位对相应的电路数据进行编码处理,可以有效实现对布尔电路文件的大幅度压缩。

本说明书还提供一种布尔电路编码系统,所述系统可以为单独的布尔电路编码系统,也可以应用在多种计算机数据处理系统中。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述布尔电路编码系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。

需要说明的,上述所述的系统根据方法或者装置实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。

上述实施例所述的布尔电路编码系统,可以基于布尔电路文件中各电路数据的有效位对相应的电路数据进行编码处理,获得由一系列字节组成的编码后的布尔电路文件。其中,字节的最高比特位可以用来标识该字节对应的待处理电路数据是否对应有更高的有效位,字节的较低七比特位可以由相应的待处理电路数据依次写入的有效位确定。布尔电路文件中的电路数据通常由正整数值表示,且大部分整数值较小,相对应的有效位数也较少。本说明书实施例中通过仅提取电路数据的有效位,基于该有效位对相应的电路数据进行编码处理,可以有效实现对布尔电路文件的大幅度压缩。

需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

尽管本说明书实施例内容中提到利用逻辑或获得八位比特位等获取、定义、交互、计算、判断等操作和数据描述,但是,本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1