处理大数的方法、电子设备和存储介质技术

技术编号:36564407 阅读:25 留言:0更新日期:2023-02-04 17:20
本申请提供一种处理大数的方法、电子设备和存储节点,所述方法包括:接收目标大数,所述目标大数的宽度大于64位;将所述目标大数转换为依次链接的给定数量的多个节点数据,所述给定数量为目标大数宽度除以第一数值的向上取整,所述多个节点数据的每一个包括与所述节点数据对应的第一数值位的数据值、数据宽度的值、不定态值、高阻态值以及下一个节点数据的地址;接收与所述目标大数关联的计算指令,所述计算指令包括计算符和计算数;以及根据所述目标大数的多个节点数据、所述计算符和所述计算数确定计算值。采用本方法能够在EDA工具中进行算术计算时,无需额外的字符转换,能够保证计算机的性能。证计算机的性能。证计算机的性能。

【技术实现步骤摘要】
处理大数的方法、电子设备和存储介质


[0001]本申请涉及计算机软件
,尤其涉及一种处理大数的方法、电子设备和存储介质。

技术介绍

[0002]目前在计算机编程语言中,其数据类型所能表达的数值范围通常情况下会受到其数据类型位数的限制。用于计算的基本数据类型包括整型和浮点型两大类。常见编程语言中,整型数据类型中数值范围最大的是64位整型数据。通常情况下,用于算术计算的数字格式以32位整型类型的最为常见。对于数值等于或超过64位的数,通常可以称为大数。
[0003]目前,对于在硬件设计语言中通常是使用字符串类型的方式来表示一串数据,进而进行大数的算术计算。也就是说,需要将大数先转换为字符串类型进行存储,待到需要计算时,重新将字符串转换为数值进行计算。但是此种方式会额外的进行字符到值的转换和存储,过程较为繁琐,对于复杂度较高的运算会对产生计算机的额外的性能开销。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种进行大数的算术计算时,无需额外的字符转换,能够保证计算机的性能的处理大数的方法、电子设备和存储介质。
[0005]本申请的第一方面提供一种处理大数的方法,所述方法包括:
[0006]接收目标大数,所述目标大数的宽度大于64位;
[0007]将所述目标大数转换为依次链接的给定数量的多个节点数据,所述给定数量为目标大数宽度除以第一数值的向上取整,所述多个节点数据的每一个包括与所述节点数据对应的第一数值位的数据值、数据宽度的值、不定态值、高阻态值以及下一个节点数据的地址;
[0008]接收与所述目标大数关联的计算指令,所述计算指令包括计算符和计算数;以及
[0009]根据所述目标大数的多个节点数据、所述计算符和所述计算数确定计算值。
[0010]本申请的第二方面提供一种电子设备,包括:存储器,用于存储一组指令;以及至少一个处理器,配置为执行所述一组指令以使得所述电子设备执行如第一方面所述的方法。
[0011]本申请的第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行如第一方面所述的方法。
[0012]本申请提供的一种处理大数的方法,通过将目标大数转换为依次链接的给定数量的多个节点数据,能够将大于128位的数据,通过一定的方式进行存储。并且存储的方式仅仅为通过第一数据值进行拆分,因此无需对字符串的每一个字符进行额外的字符到值(0、1、x或z)的转换,在后续利用节点数据进行计算时,直接使用数字类型的节点数据进行计算,而无需反复转换后进行计算。节点数据进行计算的方式通常为C++中的计算方式,因此
其计算的复杂度较低,能够保证计算机的性能。x和z分别是Verilog语言中对不定态和高阻态的值。
附图说明
[0013]为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1示出了根据本申请实施例的示例性电子设备的结构示意图;
[0015]图2A示出了根据本申请实施例的示例性仿真工具的示意图;
[0016]图2B示出了根据本申请实施例的示例性编译器的示意图;
[0017]图3A示出了根据本申请实施例的依次链接的节点数据的示意图;
[0018]图3B示出了根据本申请实施例的节点数据的示意图;
[0019]图4A示出了根据本申请实施例的非大数的计算数的节点数据的示意图;
[0020]图4B示出了根据本申请实施例的大于第一数值位的计算数的节点数据的示意图;
[0021]图5示出了根据本申请实施例的示例性的处理大数的方法的流程图。
具体实施方式
[0022]为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
[0023]需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
[0024]图1示出了根据本申请实施例的电子设备100的结构示意图。电子设备100可以是运行仿真系统的电子设备。如图1所示,电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在电子设备内部的通信连接。
[0025]处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
[0026]存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。在一些实施例中,用于仿真测试设计的仿真测试系统可以是存储器104中存储的计算机程序。如图1所示,存储器存储的数据可以包括程序指令(例如,用于实现本申请的EDA工具中处理大数
的方法的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
[0027]网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理大数的方法,其特征在于,所述方法包括:接收目标大数,所述目标大数的宽度大于64位;将所述目标大数转换为依次链接的给定数量的多个节点数据,所述给定数量为目标大数宽度除以第一数值的向上取整,所述多个节点数据的每一个包括与所述节点数据对应的第一数值位的数据值、数据宽度的值、不定态值、高阻态值以及下一个节点数据的地址;接收与所述目标大数关联的计算指令,所述计算指令包括计算符和计算数;以及根据所述目标大数的多个节点数据、所述计算符和所述计算数确定计算值。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标大数的多个节点数据、所述计算符和所述计算数确定计算值,包括:响应于所述目标大数的不定态值或高阻态值非零,则根据每个节点数据中数值宽度的值,确定结果节点数据中不定态值;将所述计算数转换为依次链接的给定数量的至少一个节点数据;根据所述目标大数的每个节点数据中第一数值位的数据值、所述计算符和所述计算数的每个节点数据中第一数值位的数据值,确定结果节点数据中第一数值位的数据值。3.根据权利要求2所述的方法,其特征在于,所述计算符包括:加法运算符、乘法运算符或位运算符,所述根据所述目标大数的每个节点数据中第一数值位的数据值、所述计算符和所述计算数的每个节点数据中第一数值位的数据值,确定每个结果节点数据中第一数值位的数据值进一步包括:将所述目标大数的每个节点数据中第一数值位的数据值与所述计算数的每个节点数据中第一数值位的数据值,根据对应的计算符进行相加、相乘或者按照运算真值表进行处理,得到结果节点数据中第一数值位的数据值。4.根据权利要求2所述的方法,其特征在于,所述计算符包括:减法运算符,所述根据所述目标大数的每个节点数据中第一数值位的数据值、所述计算符和所述计算数的每个节点数据中第一数值位的数据值,确定每个结果...

【专利技术属性】
技术研发人员:岑崟于演石
申请(专利权)人:芯华章科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1