CN113254072A - 数据处理器、数据处理方法、芯片、计算机设备及介质 - Google Patents

数据处理器、数据处理方法、芯片、计算机设备及介质 Download PDF

Info

Publication number
CN113254072A
CN113254072A CN202110585822.0A CN202110585822A CN113254072A CN 113254072 A CN113254072 A CN 113254072A CN 202110585822 A CN202110585822 A CN 202110585822A CN 113254072 A CN113254072 A CN 113254072A
Authority
CN
China
Prior art keywords
data
processing
circuit
stage
result
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.)
Granted
Application number
CN202110585822.0A
Other languages
English (en)
Other versions
CN113254072B (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.)
Shanghai Power Tensors Intelligent Technology Co Ltd
Original Assignee
Shanghai Power Tensors Intelligent Technology 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 Shanghai Power Tensors Intelligent Technology Co Ltd filed Critical Shanghai Power Tensors Intelligent Technology Co Ltd
Priority to CN202110585822.0A priority Critical patent/CN113254072B/zh
Publication of CN113254072A publication Critical patent/CN113254072A/zh
Priority to PCT/CN2021/134278 priority patent/WO2022247193A1/zh
Application granted granted Critical
Publication of CN113254072B publication Critical patent/CN113254072B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)

Abstract

本公开提供了一种数据处理器、数据处理方法、芯片、计算机设备及介质,其中,该数据处理器包括:多级运算电路以及寄存器;所述多级运算电路中的每级运算电路,用于获取与该级运算电路对应的第一处理数据和第二处理数据,基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据;所述寄存器,用于存储对所述第一处理数据和所述第二处理数据进行预设处理对应的结果数据;其中,所述第一处理数据基于外部输入的原始待处理数据确定,或基于上一级运算电路输出的结果数据确定的。

Description

数据处理器、数据处理方法、芯片、计算机设备及介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理器、数据处理方法、芯片、计算机设备及存储介质。
背景技术
随着集成电路的不断发展,除法器被广泛的应用于各式芯片中。常用的除法算法大多基于加减法运算或者乘法实现,存在运算速度慢的问题,导致数据处理的效率降低。
发明内容
本公开实施例至少提供一种数据处理器、数据处理方法、芯片、计算机设备及存储介质。
第一方面,本公开实施例提供了一种数据处理器,包括:多级运算电路以及寄存器;所述多级运算电路中的每级运算电路,用于获取与该级运算电路对应的第一处理数据和第二处理数据,基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据;所述寄存器,用于存储对所述第一处理数据和所述第二处理数据进行预设处理对应的结果数据;其中,所述第一处理数据基于外部输入的原始待处理数据确定,或基于上一级运算电路输出的结果数据确定的。
这样,通过多级运算电路逐级通过结果数据查找操作得到每一级对应的结果数据,所需要的时间较之通过乘法运算结合比较运算得到除法运算的结果更少,因此具有更高的处理效率。
一种可选的实施方式中,所述第一处理数据包括:被除数;所述第二处理数据包括:除数;所述预设处理包括:利用所述除数对所述被除数进行除法运算处理;所述结果数据包括:对所述被除数进行除法运算处理得到的商和余数。
一种可选的实施方式中,针对运算电路为所述多级运算电路中第一级运算电路的情况,所述第一级运算电路对应的第一处理数据包括:所述原始待处理数据;针对运算电路为所述多级运算电路中除第一级运算电路外的其他任一级运算电路的情况,所述任一级运算电路对应的第一处理数据包括:所述任一级运算电路的上一级运算电路输出的结果数据中的余数。
这样,原始待处理数据作为第一级运算电路对应的第一处理数据,可以使第一级运算电路能够先对原始待处理数据进行分割,减少第二级运算电路需要处理的第一处理数据的数据量;利用第二级运算电路后的运算电路对上一级运算电路中确定结果数据进行处理,可以保证在高位的数据经过有效处理,直至不再能够被第二处理数据除尽,也即保证了数据处理的准确性。
一种可选的实施方式中,所述多级运算电路中的每级运算电路,在基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据时,用于:基于所述第二处理数据,在所述寄存器中查找与所述第二处理数据对应的目标查找表;基于所述第一处理数据,从所述目标查找表中查找与所述第一处理数据对应的所述结果数据。
这样,通过查表操作可以较为快速的根据第一处理数据以及第二处理数据确定结果数据。
一种可选的实施方式中,所述多级运算电路中的每级运算电路,在基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据时,用于:将所述第一处理数据切分为多个子数据;针对所述多个子数据中的每个子数据,基于该子数据和所述第二处理数据,从所述寄存器中获取利用所述第二处理数据对该子数据进行预设处理得到的中间结果数据;基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据。
一种可选的实施方式中,所述多个子数据占用的比特位数量相同。
一种可选的实施方式中,任一子数据对应的中间结果数据,包括该子数据对应的商、以及该子数据对应的余数;所述多级运算电路中的每级运算电路,在基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据时,用于:针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商;以及针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的余数进行数据移位操作,并将该子数据对应的余数的数据移位操作结果,与其他子数据对应的余数的数据移位操作结果相加,得到所述第一处理数据对应的余数。
这样,通过利用切分电路将第一处理数据切分为多个子数据,可以使得每级运算电路均可以对多个子数据并行处理,从而提高数据处理的效率。
一种可选的实施方式中,还包括:整合电路;所述整合电路,用于将多级运算电路分别对应的结果数据中的商相加,得到所述原始待处理数据对应的目标结果数据中的商,并将所述目标结果数据中的商输出。
一种可选的实施方式中,所述多级运算电路中的最后一级运算电路,还用于将所述最后一级运算电路对应的结果数据中的余数,作为所述原始待处理数据对应的目标结果数据中的余数输出。
这样,通过整合电路,可以较为容易的对各级运算电路输出的结果数据进行处理,并得到目标结果数据。
一种可选的实施方式中,所述多级运算电路中的每级运算电路,在针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商时,用于:针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果、其他子数据对应的商的数据移位操作结果、以及前一级运算电路的结果数据中的商相加,得到该级运算电路对应的结果数据中的商。
一种可选的实施方式中,所述多级运算电路中的最后一级运算电路,还用于将所述最后一级运算电路对应的结果数据,作为所述原始待处理数据对应的目标处理结果输出。
这样,从每一级运算电路均可以直接确定在该级运算电路以及该级运算电路之前,确定的商和余数,因此可以不必附加一个整合电路,即可以使最后一级运算电路输出目标结果数据,减小电路的体积开销,同时减少数据处理需要的耗时。
一种可选的实施方式中,所述多级运算电路中的每级运算电路,包括:数据切分电路、与所述数据切分电路连接的数据查找电路、以及与所述数据查找电路连接的拼接电路;所述数据切分电路,用于在接收到该级运算电路对应的第一处理数据后,将所述对应的第一处理数据切分为多个子数据,并将所述多个子数据传输至所述数据查找电路;所述数据查找电路,用于在接收到所述子数据后,基于获取的所述第二处理数据、以及所述子数据进行查表操作,得到所述子数据的中间结果数据,并向所述拼接电路发送所述子数据的中间结果数据;所述拼接电路,用于在接收到所述数据查找电路发送的所述子数据的中间结果数据后,基于所述数据查找电路发送的所述中间结果数据,得到所述第一处理数据的结果数据。
第二方面,本公开实施例还提供一种数据处理方法,应用于数据处理器;所述数据处理器包括多级运算电路以及寄存器;所述数据处理方法包括:所述多级运算电路中的每级运算电路获取与该级运算电路对应的第一处理数据和第二处理数据,基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据;所述寄存器存储对所述第一处理数据和所述第二处理数据进行预设处理对应的结果数据;其中,所述第一处理数据基于外部输入的原始待处理数据确定,或基于上一级运算电路输出的结果数据确定的。
一种可选的实施方式中,所述第一处理数据包括:被除数;所述第二处理数据包括:除数;所述预设处理包括:利用所述除数对所述被除数进行除法运算处理;所述结果数据包括:对所述被除数进行除法运算处理得到的商和余数。
一种可选的实施方式中,针对运算电路为所述多级运算电路中第一级运算电路的情况,所述第一级运算电路对应的第一处理数据包括:所述原始待处理数据;针对运算电路为所述多级运算电路中除第一级运算电路外的其他任一级运算电路的情况,所述任一级运算电路对应的第一处理数据包括:所述任一级运算电路的上一级运算电路输出的结果数据中的余数。
一种可选的实施方式中,所述多级运算电路中的每级运算电路基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据,包括:所述多级运算电路中的每级运算电路基于所述第二处理数据,在所述寄存器中查找与所述第二处理数据对应的目标查找表;基于所述第一处理数据,从所述目标查找表中查找与所述第一处理数据对应的所述结果数据。
一种可选的实施方式中,所述多级运算电路中的每级运算电路基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据,包括:将所述第一处理数据切分为多个子数据;针对所述多个子数据中的每个子数据,基于该子数据和所述第二处理数据,从所述寄存器中获取利用所述第二处理数据对该子数据进行预设处理得到的中间结果数据;基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据。
一种可选的实施方式中,所述多个子数据占用的比特位数量相同。
一种可选的实施方式中,任一子数据对应的中间结果数据,包括该子数据对应的商、以及该子数据对应的余数;所述多级运算电路中的每级运算电路基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据,包括:所述多级运算电路中的每级运算电路针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商;以及针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的余数进行数据移位操作,并将该子数据对应的余数的数据移位操作结果,与其他子数据对应的余数的数据移位操作结果相加,得到所述第一处理数据对应的余数。
一种可选的实施方式中,还包括:整合电路将多级运算电路分别对应的结果数据中的商相加,得到所述原始待处理数据对应的目标结果数据中的商,并将所述目标结果数据中的商输出。
一种可选的实施方式中,还包括:所述多级运算电路中的最后一级运算电路将所述最后一级运算电路对应的结果数据中的余数,作为所述原始待处理数据对应的目标结果数据中的余数输出。
一种可选的实施方式中,所述多级运算电路中的每级运算电路针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商,包括:多级运算电路中的每级运算电路针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果、其他子数据对应的商的数据移位操作结果、以及前一级运算电路的结果数据中的商相加,得到该级运算电路对应的结果数据中的商。
一种可选的实施方式中,还包括:所述多级运算电路中的最后一级运算电路将所述最后一级运算电路对应的结果数据,作为所述原始待处理数据对应的目标处理结果输出。
一种可选的实施方式中,所述多级运算电路中的每级运算电路,包括:数据切分电路、与所述数据切分电路连接的数据查找电路、以及与所述数据查找电路连接的拼接电路;所述数据处理方法还包括:所述数据切分电路在接收到该级运算电路对应的第一处理数据后,将所述对应的第一处理数据切分为多个子数据,并将所述多个子数据传输至所述数据查找电路;所述数据查找电路在接收到所述子数据后,基于获取的所述第二处理数据、以及所述子数据进行查表操作,得到所述子数据的中间结果数据,并向所述拼接电路发送所述子数据的中间结果数据;所述拼接电路接收到所述数据查找电路发送的所述子数据的中间结果数据后,基于所述数据查找电路发送的所述中间结果数据,得到所述第一处理数据的结果数据。
第三方面,本公开可选实施方式还提供一种芯片,包括如第一方面任一项所述的数据处理器。
第四方面,本公开可选实施方式还提供一种计算机设备,包括:指令存储器和如第一方面任一项所述的数据处理器,或如第三方面所述的芯片。
第五方面,本公开可选实施方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
关于上述数据处理方法、芯片、计算机设备、及计算机可读存储介质的效果描述参见上述数据处理器的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据处理器的示意图;
图2示出了本公开实施例所提供的一种数据处理器的具体内部电路结构的示意图;
图3示出了本公开实施例所提供的一种基于第一处理数据和第二处理数据从寄存器中进行查表操作的具体步骤的流程图;
图4示出了本公开实施例所提供的一种切分电路在对第一处理数据进行切分时的示意图;
图5示出了本公开实施例所提供的一种在寄存器中存储的多个查找表的示意图;
图6示出了本公开实施例所提供的一种确定第一级运算电路对应结果数据中余数的电路结构的示意图;
图7示出了本公开实施例提供的一种整合电路的示意图;
图8示出了本公开实施例提供的另一种整合电路的示意图;
图9示出了本公开实施例提供的一种数据处理方法的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,在利用例如除法器等数据处理器执行除法运算时,通常会将其转换为乘法运算,以较为简单的得到除法运算的目标结果数据。示例性的,在确定被除数M以及除数N后,通过确定一个预测的商A,可以确定该预测的商A与除数N的乘积C,然后利用比较器确定被除数M与乘积C的差值是否小于除数N,从而确定预测的商A是否为被除数M以及除数N对应的目标结果数据的商。在确定预测的商A时,例如可以将A先设置为1,然后逐次增加1,直至比较器确定被除数M与乘积C的差值小于除数N,则将此处的商A作为目标结果数据的商,并将此时确定的被除数M与乘积C的差值作为目标结果数据的余数。这种方式需要采用迭代的方式确定目标结果数据,在被除数与除数的数值差异较大时,需要耗费较多的时间,导致在对数据进行处理时效率较低。
基于上述研究,本公开提供了一种数据处理器,包括多级运算电路以及寄存器,每一级运算电路均可以利用其对应的第一处理数据和第二处理数据进行结果数据查找操作,也即从寄存器中存储的结果数据中确定对应的结果数据。这样,通过多级运算电路逐级通过结果数据查找操作得到每一级对应的结果数据,所需要的时间较之通过乘法运算结合比较运算得到除法运算的结果更少,因此具有更高的处理效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据处理器进行详细介绍,数据处理器可部署于具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。
下面对本公开实施例提供的数据处理器加以说明。
参见图1所示,为本公开实施例提供的一种数据处理器的示意图,在图1中,所述数据处理器包括多级运算电路10以及寄存器20,其中:
所述多级运算电路10中的每级运算电路10,用于获取与该级运算电路10对应的第一处理数据和第二处理数据,基于所述第一处理数据和所述第二处理数据从所述寄存器20中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据;
所述寄存器20,用于存储对所述第一处理数据和所述第二处理数据进行预设处理对应的结果数据;其中,所述第一处理数据基于外部输入的原始待处理数据确定,或基于上一级运算电路10输出的结果数据确定的。
在图2中,示出了数据处理器具体内部电路结构的示意图。
在将数据处理器用于除法运算时,第一处理数据包括被除数,表示为M;第二处理数据包括除数,表示为N。由于计算机在对第一处理数据以及第二处理数据进行处理时,使用的数据是二进制数据,因此在对本公开实施例提供的数据处理器进行说明时,利用下角标“(2)”表示对应的数据为二进制数据;利用下角标“(10)”表示对应的数据为十进制数据。
参见图3所示,为本公开实施例提供的一种基于第一处理数据和第二处理数据从寄存器中进行查表操作的具体步骤的流程图,包括:
S301:将第一处理数据切分为多个子数据。
在一种可能的实施方式中,多个子数据占用的比特位数量相同。
具体地,在利用多级运算电路10中的每级运算电路10对对应的第一处理数据和第二处理数据进行数据处理时,对应的第一处理数据和第二处理数据不同。对于多级运算电路10中的第一级运算电路10,其对应的第一处理数据包括:原始待处理数据。
此处,原始待处理数据例如可以包括需要进行除法运算的一个被除数M0。被除数M0以二进制数表示时,可能占据多个比特位,例如在被除数M0为16(10)时,对应的二进制数为1111(2),占据4个比特位;在被除数M0为256(10)时,对应的二进制数为11111111(2),占据8个比特位。也即,当被除数M0以十进制数据表示的值越大时,对应的二进制数占据的比特位数会增加。因此,在利用第一级运算电路10对第一处理数据进行数据处理时,会先将第一处理数据进行切分,并利用切分后占用比特位数量较少的数据进行查表操作,以确定第一处理数据对应的结果数据。
其中,在对第一处理数据进行切分,得到多个子数据时,例如可以利用第一级运算电路10中的切分电路对第一处理数据进行切分处理。参见图2所示,在第一级运算电路10中,包括切分电路11。
切分电路11对第一处理数据进行切分时,可以根据确定的多级运算电路10的级数确定切分电路在对第一处理数据进行切分后,得到的子数据占据的比特位数量。例如,确定第一处理数据利用二进制数据表示,占据32个比特位、并且多级运算电路10对应的级数为3级,可以确定需要将第一级运算电路10中对应的第一处理数据切分为多个占据8个比特位的子数据。
示例性的,由于多级运算电路10的结构会在确定后被固化到芯片中,因此要预先根据实际要处理的数据所占用的最高比特数,确定运算电路的级数。在对运算电路使用过程中,无论要处理的数据是否达到最高比特数,都会利用级数固化后的多级运算电路10对其进行处理。在一种可能的情况下,若要处理的数据未达到最高比特数,可以对该处理的数据进行补零操作,使得补零操作后的数据达到最高比特数,以能够实现利用多级运算电路10对其进行处理。
在确定多级运算电路10的级数时,例如可以根据预先确定的第一处理数据以及第二处理数据分别对应的比特数确定。
示例性的,在确定第一处理数据的比特位数量最多为4位,而第二处理数据的比特位数量最少为2位时,可以确定在利用2比特位对第一处理数据对应的4个比特位进行切分后,利用第二处理数据对切分出的子数据进行数据处理后,高两位得到的子数据在左移两位后对应的数值还可以再与第二处理数据进行下一步的数据处理。也即,共需要设置两级运算电路10,以对第一处理数据进行处理。
参见图4所示,为本公开实施例提供的一种切分电路在对第一处理数据进行切分时的示意图,在第一级运算电路10接收到第一处理数据后,其中的切分电路11将第一处理数据切分为4个子数据。利用切分电路11可以将第一处理数据中各个比特位的数据,传输到对应的4个子数据分别对应的比特位上,以实现将第一处理数据切分为4个子数据的数据处理过程。在图4中,第一处理数据41包括占据32个比特位的二进制数据10101011101010101010100110101000(2),在输入时例如可以先经过切分电路11的多个数据输入通路,确定为如图4中42所示的形式,也即每个数据输入通路完成其对应位置数据的传输,如第一个数据通路,将第一处理数据41中第一个比特位对应的数据“0”传输至切分电路中。利用图4中所示的切分电路11可以切分出4个子数据43,包括10101011(2)、10101010(2)、10101001(2)、以及10101000(2),利用十进制表示,则分别为171(10)、170(10)、169(10)、以及168(10)
此处,针对一个数据处理器而言,其内部的切分电路11的结构是预先确定的,例如上述图4中切分电路11可以将第一处理数据切分为4个分别占据8个比特位的子数据。因此对于第一处理数据对应的比特位数小于切分电路11可以处理的最大比特位数的情况,例如在图4中切分电路11切分的第一处理数据占据的比特位为30位时,切分电路可以对该30个比特位的数据进行切分;但对于第一处理数据最高的8比特位对应的子数据,由于其最高2个比特位没有数据,因此例如可以对其进行补位处理,例如在该2个比特位补0,以在保证子数据的数值没有变化的情况下,使得利用切分电路11切分得到的多个子数据占据的比特位数量相同。
这样,由于数据处理器中的各个电路在预先设计时均保证了在第一处理数据最大时可以正确的处理数据,也即各个电路均会按照最大的数据处理量设计,因此在对第一处理数据进行处理时,为了避免电路中的部分数据通路由于不传输数据而导致输出错误数值的情况,可以选择在切分电路得到的子数据前补位,以保证后续对该子数据进行处理的安全性和准确性。或者,也可以在保证安全性和准确性的情况下不进行补位操作。具体地可以根据实际情况确定,在此不再赘述。
在切分电路11确定多个子数据后,即可以将多个子数据分别传输至对应的数据查找电路中,以使第一级运算电路10中的数据查找电路对此多个子数据进行下一步数据处理的步骤。
对于多级运算电路10中除第一级运算电路10外的其他运算电路10,其对应的第一处理数据包括:上一级运算电路10输出的结果数据;其他运算电路10将第一处理数据切分为多个子数据的方式,与第一级运算电路10将对应得第一处理数据切分为多个子数据的方式类似,在此不再赘述。
S302:针对多个子数据中的每个子数据,基于该子数据和第二处理数据,从寄存器中获取利用第二处理数据对该子数据进行预设处理得到的中间结果数据。
其中,在从寄存器中获取利用第二处理数据对该子数据进行预设处理得到的中间结果数据时,例如可以采用查表操作。以第一级运算电路10为例,例如可以利用第一级运算电路10中的数据查找电路对寄存器20中的多个查找表进行查找。参见图2所示,在第一级运算电路10中,还包括数据查找电路12。
具体地,第一级运算电路10中的数据查找电路12在接收到多个子数据后,可以根据获取的第二处理数据以及子数据进行查表操作,得到对子数据的中间结果数据。
在一种可能的实施方式中,数据查找电路12可以包括一个或多个。在数据查找电路12仅包括一个的情况下,数据查找电路12例如可以根据确定的第二处理数据,确定与第二处理数据对应的查找表,然后再根据利用子数据对该确定的查找表进行查表操作。此处,数据查找电路12可以访问多个查找表。
在数据查找电路12包括多个的情况下,多个数据查找电路12例如可以分别对应于不同的查找表。在确定第二处理数据的情况下,可以根据第二处理数据确定与第二处理数据对应的数据查找电路12,然后该数据查找电路12根据子数据访问其对应的查找表进行查表操作。也即,数据查找表12访问与其对应的查找表。
参见图5所示,为本公开实施例提供的一种在寄存器中存储的多个查找表的示意图。在寄存器20中存储有与多个可能的第二处理数据对应的查找表。示例性的,第二处理数据例如可以包括2(10)、3(10)、5(10)、以及9(10),在寄存器20中对应的查找表51可以包括在图5的(a)中示出的四个查找表T1、T2、T3、以及T4。在确定子数据占据的比特位为8位的情况下,对于任一查找表,例如T1,其中包含的数据包括该子数据对应的中间结果数据,包括在图5的(b)中示出的数据。在图5的(b)中,第一列的数据为可能的第一处理数据,第二列与第三列数据分别为对应第一处理数据的商以及余数。
以一个子数据10101011(2)为例,在第二处理数据包括2(10)时,数据查找电路可以根据第二处理数据,在寄存器20存放的多个查找表T1、T2、T3、以及T4中,确定第二处理数据2(10)对应的查找表T1,作为目标查找表。然后,在目标查找表T1中,数据查找电路确定与子数据10101011(2)对应的数据,也即在目标查找表T1中可以查找到的1010101(2)以及00000001(2)。类似的,数据查找电路还可以确定其余的子数据10101010(2)、10101001(2)、以及10101000(2)分别在目标查找表T1中对应的数据。这样,数据查找电路即可以得到在第一级运算电路10中确定的商和余数。
在得到第一级运算电路10中确定的中间结果数据后,第一级运算电路10中的数据查找电路12即可以将中间结果数据传输至拼接电路中,以使第一级运算电路10中的拼接电路对此中间结果数据进行下一步数据处理的步骤。
类似的,对于多级运算电路10中除第一级运算电路10外的其他运算电路10,其他运算电路10从寄存器20中进行查表操作,得到其他运算电路10对应的子数据的中间结果数据的过程,与第一级运算电路10得到中间结果数据的过程类似,在此不再赘述。
S303:基于多个子数据分别对应的中间结果数据,得到第一处理数据对应的结果数据。
其中,在根据中间结果数据确定第一处理数据对应的结果数据时,例如可以采用拼接电路完成拼接操作。参见图2所示,在第一级运算电路10中,还包括拼接电路13。
仍然以第一级运算电路10为例,拼接电路13在接收到所述多个数据查找电路分别发送的中间结果数据后,可以基于所述多个数据查找电路分别发送的中间结果数据,得到所述对应的第一处理数据的结果数据。
此处,对于第一级运算电路10,其对应的商可以直接保留并用于计算目标结果数据,而其对应的余数则由于对应的子数据可能为高位数据,因此需要还原为在原始待处理数据中的真实值后再进行计算。
在具体实施中,第一级运算电路10在基于多个子数据分别对应的中间结果数据,得到第一处理数据对应的结果数据时,可以采用下述方法:
针对多个子数据中的每个子数据,根据该子数据在第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到第一处理数据对应的商;以及针对多个子数据中的每个子数据,根据该子数据在第一处理数据中的位置,对该子数据对应的余数进行数据移位操作,并将该子数据对应的余数的数据移位操作结果,与其他子数据对应的余数的数据移位操作结果相加,得到第一处理数据对应的余数。
示例性的,在4个子数据包括10101011(2)、10101010(2)、10101001(2)、以及10101000(2)的情况下,可以确定第一个子数据10101011(2)对应的中间结果数据包括表示商和余数的数据1010101(2)以及00000001(2);确定第二个子数据10101010(2)对应的中间结果数据包括表示商和余数的数据1010101(2)以及00000000(2);确定第三个子数据10101001(2)对应的中间结果数据包括表示商和余数的数据1010100(2)以及00000001(2);确定第四个子数据10101000(2)对应的中间结果数据包括表示商和余数的数据1010100(2)以及00000000(2)
由于第一个子数据10101011(2)对应第一级运算电路10中第一处理数据的第31位至第24位,因此其实际的数值应当为10101011(2)左移24位后的数值。对应的,第一个子数据的商1010101(2)实际的数值应当为1010101(2)向左移位16位后的数值;第一个子数据的余数00000001(2)实际的数值应当为00000001(2)向左移位24位后的数值。
类似的,可以用上述确定第一个子数据的中间结果数据的方法,确定第二个子数据至第四个子数据分别对应的中间结果数据。
在确定第一个子数据至第四个子数据分别在查找表中确定的商和余数,并将其通过移位操作确定其实际的数值后,即可以将第一个子数据至第四个子数据进行数据移位操作后,得到的数据移位操作结果相加,得到在第一级运算电路10对应的结果数据。
参见图6所示,为本公开实施例提供的一种确定第一级运算电路对应结果数据中余数的电路结构的示意图。图6中包括的四个子数据对应的余数61~64,分别对应了原始待处理数据占据比特位的第0位至第7位、第8位至第15位、第16位至第23位、第24位至第31位,因此在利用拼接电路完成拼接操作时,例如可以先将子数据61~64按照其对应原始待处理数据占据比特位的位数,确定将中间结果数据中的每一位数据传输的数据通路。利用65所示的电路结构,可以将多个子数据对应的中间结果数据中的余数进行移位,得到第一级运算电路10对应的结果数据中的余数66。
类似的,除第一级运算电路10外的其他级运算电路10在对第一处理数据以及第二处理数据进行数据处理时,利用与第一级运算电路10相似的处理步骤。但对于除第一级运算电路10外的其他级运算电路10,对应的第一处理数据包括上一级运算电路10输出的结果数据。这样,可以将一个较大的外部输入的原始待处理数据利用多级运算处理的方式减少直接对其进行运算时的数据量级,从而减少耗费的时间。
在利用多级运算电路10确定原始待处理数据对应的目标处理结果时,例如可以采用但不限于下述(A)和(B)中任一种方法。
(A):利用整合电路,将多级运算电路10分别对应的结果数据中的商相加,得到原始待处理数据对应的目标结果数据中的商,并将目标结果数据中的商输出;多级运算电路10中的最后一级运算电路10,将最后一级运算电路10对应的结果数据中的余数,作为原始待处理数据对应的目标结果数据中的余数输出。
下面对确定原始待处理数据对应的目标结果数据中的商进行说明。
此时,在多级运算电路10中,还包括一个整合电路,该整合电路可以将每一级输出的结果数据中的商进行相加,也即在多级运算电路10中的每一级运算电路10中,均存在将结果数据中的商传输至整合电路的数据通路。该整合电路中,例如可以包括至少一个结果数据寄存器。
在整合电路包括多个结果数据寄存器的情况下,多个结果数据寄存器20可以分别对应一级运算电路10,并分别存储每一级运算电路10输出的结果数据中的商。在最后一级运算电路10对其对应的第一处理数据以及第二处理数据处理完毕后,整合电路可以将多个结果数据寄存器中分别存储的每一级运算电路10得到的结果数据中的商相加,得到目标结果数据中的余数。
参见图2所示,在数据处理器中还包括整合电路14。具体地,参见图6所示,为本公开实施例提供的一种整合电路14的示意图。在图7所示的整合电路中,包括与三级运算电路10分别对应的结果数据寄存器71、72、73,分别与第一级运算电路10的拼接电路、第二级运算电路10的拼接电路以及第三级运算电路10的拼接电路相连接,以存储每一级运算电路10输出的结果数据中的商。
在整合电路仅存在一个结果数据寄存器的情况下,结果数据寄存器仅存储当前一级运算电路10的前一级运算电路10中输出的结果数据中的商,然后利用整合电路将在此结果数据寄存器中存储的前一级运算电路10中输出的商与当前一级运算电路10输出的结果数据中的商相加,则在最后一级运算电路10完成对其对应的第一处理数据和第二处理数据的处理后,即可以在此结果数据寄存器中得到原始待处理数据对应的目标结果数据中的余数。
参见图8所示,为本公开实施例提供的另一种整合电路的示意图。在整合电路14中,包括一个结果数据寄存器81,在每一级运算电路10确定其对应的结果数据中的商后,将商存储至结果数据寄存器81中,并在下一级运算单元计算对应的结果数据后,利用此下一级运算单元对应的结果数据中的商、以及已存储至结果数据寄存器81中的商整合为新的商,并重新存储在结果数据寄存器81中。
在确定原始待处理数据对应的目标结果数据中的商后,还可以将最后一级运算电路10对应的结果数据中的余数作为原始待处理数据对应的目标结果数据中的余数输出。
(B):针对多个子数据中的每个子数据,根据该子数据在第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果、其他子数据对应的商的数据移位操作结果、以及前一级运算电路10的结果数据中的商相加,得到该级运算电路10对应的结果数据中的商;将最后一级运算电路10对应的结果数据,作为原始待处理数据对应的目标处理结果输出。
以存在三级运算电路为例,在每一级运算电路中,均可以输出对应于该运算电路的结果数据,也即在每一级运算电路中均可以输出对应的商。针对于第一级运算电路10,其对应的结果数据例如可以包括对4个子数据进行除法运算后得到的、与4个子数据分别对应的商。基于4个商分别对应的子数据分别对应的比特位,可以对得到的4个商进行数据移位操作,得到第一级运算电路10的输出结果中的商,例如可以表示为q1。
然后,将第一级运算电路10确定的商q1输出至第二级运算电路10。在第二级运算电路对其对应的子数据(例如可以包括2个子数据)进行除法运算后,例如可以得到2个子数据对应的商。基于该2个商分别对应的子数据分别对应的比特位,可以对得到的2个商进行数据移位操作,得到第二级运算电路10在对其对应的子数据进行处理后得到的商,表示为q2’。此处,由于第二级运算电路10是对第一级运算电路10得到的余数进行进一步除法运算得到的,因此在该第二级运算电路10中,例如可以将第一级运算电路10向第二级运算电路输入的q1与第二级运算电路确定的q2’相加,得到结果数据q2。此时,对于第二级运算电路10而言,可以得到的输出结果数据中的商q2。
然后,将第二级运算电路10确定的商q2输出至第三级运算电路10,此处,该第三级运算电路例如是多级运算电路中的最后一级运算电路,对应的子数据例如包括由第二级运算电路进行除法运算后得到的一个余数。在第三级运算电路10对该一个余数进行除法运算后,将处理后得到的商q3’以及上一层级,也即第二级运算电路10输出的商q2相加,并将得到的结果q3作为第三级运算电路10的结果数据。此处,由于第三级运算电路10为最后一级运算电路,因此可以将该级运算电路对应的结果数据中的商q3作为原始待处理数据对应的目标结果数据中的商。
针对余数而言,确定原始待处理数据对应的目标结果数据中的余数的过程,与上述确定原始待处理数据对应的目标结果数据中的余数商的过程相似,在此不再重复赘述。
此时,即可以将最后一级运算电路10中对应的结果数据,作为原始待处理数据对应的目标处理结果输出。
本公开实施例提供了一种利用数据处理器对原始待处理数据m进行数据处理的具体示例。在确定数据处理器对应的层级数量时,例如可以根据原始待处理数据最多可以占据的比特位数、第二处理数据占据的比特位数、以及切分电路切分数据后子数据占据的比特位数决定;或者,还可以设置一个较大的层级数量,以满足占据比特位数不同的原始待处理数据在进行数据处理时的要求。在对原始待处理数据m进行数据处理时,对应的除数为n,例如包括9(10)。其中,原始待处理数据A包括11011011110110111101101111011011(2),对应十进制表示为3688618971(10)
在第一级运算电路10中,原始待处理数据m即为第一处理数据。利用切分电路将第一处理数据进行切分,可以得到四个子数据,分别为11011011(2)、11011011(2)、11011011(2)、以及11011011(2),对应十进制表示为219(10)
在确定四个子数据后,第一级运算电路10中的数据查找电路依据第二处理数据,也即除数9(10),可以在对应的多个查找表中,确定与第二处理数据对应的查找表T4。数据查找电路在T4中依据多个子数据,可以确定对应的中间结果数据,包括11000(2)以及011(2),分别表示中间结果数据中的商和余数。
此时,在第一级运算电路10中,可以利用拼接电路确定对应的结果数据中的商为00011000000110000001100000011000(2),并确定对应的结果数据中的余数为00000011000000110000001100000011(2);以及,将结果数据中的商00011000000110000001100000011000(2)存储至整合电路中第一级运算电路10对应的存储单元中。
在第二级运算电路10中,以第一级运算电路10中确定的结果数据中的余数00000011000000110000001100000011(2)作为第二级运算电路10对应的第一处理数据。在对第一处理数据进行划分后,可以对其进行八个比特位对应数据的拼接,确定两个子数据,包括0000001100000011(2)
按照与上述确定第一级运算电路10对应的结果数据的方式,可以确定在第二级运算电路10中的中间结果数据,包括01010101(2)(也即85(10))以及110(2)(也即6(10)),分别表示商和余数。
此时,在第二级运算电路10中,可以利用拼接电路确定其对应的结果数据中的商为010101010000000001010101(2),并确定对应的结果数据中的余数为000000000000000000110(2);以及,将结果数据中的商010101010000000001010101(2)存储至整合电路中第二级运算电路10对应的存储单元中。
……
直至在最后一级运算电路10中,依据最后一级运算电路10,确定其输出的结果数据中的余数,即为原始待处理数据对应的目标结果数据中的余数;以及根据每一级运算电路10中确定的结果数据中的商,确定原始待处理数据对应的目标结果数据中的商。其中,确定目标结果数据中的商的方式例如可以包括上述(A)以及(B)中的任一种,在此不再重复赘述。则对应于原始待处理数据A 11011011110110111101101111011011(2),其在第二处理数据为9时,对应的商为11000011011011100001100011000(2),对应的余数为10(2)
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据处理器对应的数据处理方法,由于本公开实施例中的方法解决问题的原理与本公开实施例上述数据处理器相似,因此方法的实施可以参见装置的实施,重复之处不再赘述。
参照图9所示,为本公开实施例提供的一种数据处理方法的流程图,所述数据处理方法应用于数据处理器;所述数据处理器包括多级运算电路以及寄存器;所述数据处理方法包括:
S901:多级运算电路中的每级运算电路获取与该级运算电路对应的第一处理数据和第二处理数据,基于第一处理数据和第二处理数据从寄存器中获取对第一处理数据和第二处理数据进行预设处理得到的结果数据;
S902:寄存器存储对第一处理数据和第二处理数据进行预设处理对应的结果数据;其中,第一处理数据基于外部输入的原始待处理数据确定,或基于上一级运算电路输出的结果数据确定的。
一种可选的实施方式中,所述第一处理数据包括:被除数;所述第二处理数据包括:除数;所述预设处理包括:利用所述除数对所述被除数进行除法运算处理;所述结果数据包括:对所述被除数进行除法运算处理得到的商和余数。
一种可选的实施方式中,针对运算电路为所述多级运算电路中第一级运算电路的情况,所述第一级运算电路对应的第一处理数据包括:所述原始待处理数据;针对运算电路为所述多级运算电路中除第一级运算电路外的其他任一级运算电路的情况,所述任一级运算电路对应的第一处理数据包括:所述任一级运算电路的上一级运算电路输出的结果数据中的余数。
一种可选的实施方式中,所述多级运算电路中的每级运算电路基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据,包括:所述多级运算电路中的每级运算电路基于所述第二处理数据,在所述寄存器中查找与所述第二处理数据对应的目标查找表;基于所述第一处理数据,从所述目标查找表中查找与所述第一处理数据对应的所述结果数据。
一种可选的实施方式中,所述多级运算电路中的每级运算电路基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据,包括:将所述第一处理数据切分为多个子数据;针对所述多个子数据中的每个子数据,基于该子数据和所述第二处理数据,从所述寄存器中获取利用所述第二处理数据对该子数据进行预设处理得到的中间结果数据;基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据。
一种可选的实施方式中,所述多个子数据占用的比特位数量相同。
一种可选的实施方式中,任一子数据对应的中间结果数据,包括该子数据对应的商、以及该子数据对应的余数;所述多级运算电路中的每级运算电路基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据,包括:所述多级运算电路中的每级运算电路针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商;以及针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的余数进行数据移位操作,并将该子数据对应的余数的数据移位操作结果,与其他子数据对应的余数的数据移位操作结果相加,得到所述第一处理数据对应的余数。
一种可选的实施方式中,还包括:整合电路将多级运算电路分别对应的结果数据中的商相加,得到所述原始待处理数据对应的目标结果数据中的商,并将所述目标结果数据中的商输出。
一种可选的实施方式中,还包括:所述多级运算电路中的最后一级运算电路将所述最后一级运算电路对应的结果数据中的余数,作为所述原始待处理数据对应的目标结果数据中的余数输出。
一种可选的实施方式中,所述多级运算电路中的每级运算电路针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商,包括:多级运算电路中的每级运算电路针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果、其他子数据对应的商的数据移位操作结果、以及前一级运算电路的结果数据中的商相加,得到该级运算电路对应的结果数据中的商。
一种可选的实施方式中,还包括:所述多级运算电路中的最后一级运算电路将所述最后一级运算电路对应的结果数据,作为所述原始待处理数据对应的目标处理结果输出。
一种可选的实施方式中,所述多级运算电路中的每级运算电路,包括:数据切分电路、与所述数据切分电路连接的数据查找电路、以及与所述数据查找电路连接的拼接电路;所述数据处理方法还包括:所述数据切分电路在接收到该级运算电路对应的第一处理数据后,将所述对应的第一处理数据切分为多个子数据,并将所述多个子数据传输至所述数据查找电路;所述数据查找电路在接收到所述子数据后,基于获取的所述第二处理数据、以及所述子数据进行查表操作,得到所述子数据的中间结果数据,并向所述拼接电路发送所述子数据的中间结果数据;所述拼接电路接收到所述数据查找电路发送的所述子数据的中间结果数据后,基于所述数据查找电路发送的所述中间结果数据,得到所述第一处理数据的结果数据。
关于数据处理方法的处理流程可以参照上述数据处理器对应实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种芯片,包括如本公开任一实施例所述的数据处理器。
本公开实施例还提供一种计算机设备,包括:指令存储器和如本公开实施例任一项所述的数据处理器,或如本公开实施例所述的芯片。
本公开实施例提供的数据处理器可以包括芯片、AI芯片等。本公开实施例提供的计算机设备可以包括手机等智能终端,或者也可以是其他可以用于进行数据处理的设备、服务器等,这里并不限制。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (16)

1.一种数据处理器,其特征在于,包括多级运算电路以及寄存器;
所述多级运算电路中的每级运算电路,用于获取与该级运算电路对应的第一处理数据和第二处理数据,基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据;
所述寄存器,用于存储对所述第一处理数据和所述第二处理数据进行预设处理对应的结果数据;
其中,所述第一处理数据基于外部输入的原始待处理数据确定,或基于上一级运算电路输出的结果数据确定的。
2.根据权利要求1所述的数据处理器,其特征在于,所述第一处理数据包括:被除数;所述第二处理数据包括:除数;所述预设处理包括:利用所述除数对所述被除数进行除法运算处理;
所述结果数据包括:对所述被除数进行除法运算处理得到的商和余数。
3.根据权利要求2所述的数据处理器,其特征在于,针对运算电路为所述多级运算电路中第一级运算电路的情况,所述第一级运算电路对应的第一处理数据包括:所述原始待处理数据;
针对运算电路为所述多级运算电路中除第一级运算电路外的其他任一级运算电路的情况,所述任一级运算电路对应的第一处理数据包括:所述任一级运算电路的上一级运算电路输出的结果数据中的余数。
4.根据权利要求1-3任一项所述的数据处理器,其特征在于,所述多级运算电路中的每级运算电路,在基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据时,用于:
基于所述第二处理数据,在所述寄存器中查找与所述第二处理数据对应的目标查找表;
基于所述第一处理数据,从所述目标查找表中查找与所述第一处理数据对应的所述结果数据。
5.根据权利要求1-4任一项所述的数据处理器,其特征在于,所述多级运算电路中的每级运算电路,在基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据时,用于:
将所述第一处理数据切分为多个子数据;
针对所述多个子数据中的每个子数据,基于该子数据和所述第二处理数据,从所述寄存器中获取利用所述第二处理数据对该子数据进行预设处理得到的中间结果数据;
基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据。
6.根据权利要求5所述的数据处理器,其特征在于,所述多个子数据占用的比特位数量相同。
7.根据权利要求5或6所述的数据处理器,其特征在于,任一子数据对应的中间结果数据,包括该子数据对应的商、以及该子数据对应的余数;
所述多级运算电路中的每级运算电路,在基于所述多个子数据分别对应的中间结果数据,得到所述第一处理数据对应的结果数据时,用于:
针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商;以及
针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的余数进行数据移位操作,并将该子数据对应的余数的数据移位操作结果,与其他子数据对应的余数的数据移位操作结果相加,得到所述第一处理数据对应的余数。
8.根据权利要求7所述的数据处理器,其特征在于,还包括:整合电路;
所述整合电路,用于将多级运算电路分别对应的结果数据中的商相加,得到所述原始待处理数据对应的目标结果数据中的商,并将所述目标结果数据中的商输出。
9.根据权利要求8所述的数据处理器,其特征在于,所述多级运算电路中的最后一级运算电路,还用于将所述最后一级运算电路对应的结果数据中的余数,作为所述原始待处理数据对应的目标结果数据中的余数输出。
10.根据权利要求7所述的数据处理器,其特征在于,所述多级运算电路中的每级运算电路,在针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果,与其他子数据对应的商的数据移位操作结果相加,得到所述第一处理数据对应的商时,用于:
针对多个子数据中的每个子数据,根据该子数据在所述第一处理数据中的位置,对该子数据对应的商进行数据移位操作,并将该子数据对应的商的数据移位操作结果、其他子数据对应的商的数据移位操作结果、以及前一级运算电路的结果数据中的商相加,得到该级运算电路对应的结果数据中的商。
11.根据权利要求10所述的数据处理器,其特征在于,所述多级运算电路中的最后一级运算电路,还用于将所述最后一级运算电路对应的结果数据,作为所述原始待处理数据对应的目标处理结果输出。
12.根据权利要求1-11任一项所述的数据处理器,其特征在于,所述多级运算电路中的每级运算电路,包括:数据切分电路、与所述数据切分电路连接的数据查找电路、以及与所述数据查找电路连接的拼接电路;
所述数据切分电路,用于在接收到该级运算电路对应的第一处理数据后,将所述对应的第一处理数据切分为多个子数据,并将所述多个子数据传输至所述数据查找电路;
所述数据查找电路,用于在接收到所述子数据后,基于获取的所述第二处理数据、以及所述子数据进行查表操作,得到所述子数据的中间结果数据,并向所述拼接电路发送所述子数据的中间结果数据;
所述拼接电路,用于在接收到所述数据查找电路发送的所述子数据的中间结果数据后,基于所述数据查找电路发送的所述中间结果数据,得到所述第一处理数据的结果数据。
13.一种数据处理方法,其特征在于,应用于数据处理器;所述数据处理器包括多级运算电路以及寄存器;所述数据处理方法包括:
所述多级运算电路中的每级运算电路获取与该级运算电路对应的第一处理数据和第二处理数据,基于所述第一处理数据和所述第二处理数据从所述寄存器中获取对所述第一处理数据和所述第二处理数据进行预设处理得到的结果数据;
所述寄存器存储对所述第一处理数据和所述第二处理数据进行预设处理对应的结果数据;
其中,所述第一处理数据基于外部输入的原始待处理数据确定,或基于上一级运算电路输出的结果数据确定的。
14.一种芯片,其特征在于,包括:如权利要求1-12任一项所述的数据处理器。
15.一种计算机设备,其特征在于,包括:处理器、存储器,以及如权利要求1-12任一项所述的数据处理器,或者包括如权利要求14所述的芯片。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被数据处理器运行时执行如权利要求13所述的数据处理方法的步骤。
CN202110585822.0A 2021-05-27 2021-05-27 数据处理器、数据处理方法、芯片、计算机设备及介质 Active CN113254072B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110585822.0A CN113254072B (zh) 2021-05-27 2021-05-27 数据处理器、数据处理方法、芯片、计算机设备及介质
PCT/CN2021/134278 WO2022247193A1 (zh) 2021-05-27 2021-11-30 用于数据处理的装置、方法、芯片、计算机设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110585822.0A CN113254072B (zh) 2021-05-27 2021-05-27 数据处理器、数据处理方法、芯片、计算机设备及介质

Publications (2)

Publication Number Publication Date
CN113254072A true CN113254072A (zh) 2021-08-13
CN113254072B CN113254072B (zh) 2023-04-07

Family

ID=77184828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110585822.0A Active CN113254072B (zh) 2021-05-27 2021-05-27 数据处理器、数据处理方法、芯片、计算机设备及介质

Country Status (2)

Country Link
CN (1) CN113254072B (zh)
WO (1) WO2022247193A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022247193A1 (zh) * 2021-05-27 2022-12-01 上海阵量智能科技有限公司 用于数据处理的装置、方法、芯片、计算机设备及介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188468A (ja) * 1999-12-27 2001-07-10 Toyo Commun Equip Co Ltd ガロア体上の元の除算演算方法および除算演算回路
US20130173681A1 (en) * 2012-01-03 2013-07-04 International Business Machines Corporation Range Check Based Lookup Tables
CN103593159A (zh) * 2012-08-14 2014-02-19 重庆重邮信科通信技术有限公司 一种高效率高精度除法实现方法及装置
CN104375802A (zh) * 2014-09-23 2015-02-25 上海晟矽微电子股份有限公司 一种乘除法器及运算方法
US20160034256A1 (en) * 2014-08-01 2016-02-04 Imagination Technologies, Limited Fast integer division
US20170010862A1 (en) * 2015-07-10 2017-01-12 Arm Limited Apparatus and method for performing division
CN106354473A (zh) * 2015-07-16 2017-01-25 浙江大华技术股份有限公司 一种除法器和求商和余数的方法
CN106959840A (zh) * 2016-01-08 2017-07-18 瑞昱半导体股份有限公司 除法运算装置及其运算方法
CN107766031A (zh) * 2017-11-14 2018-03-06 京东方科技集团股份有限公司 分段式除法器、分段式除法运算方法、以及电子设备
CN108595146A (zh) * 2017-12-29 2018-09-28 珠海市杰理科技股份有限公司 除法运算方法、装置及设备
CN108897523A (zh) * 2018-07-02 2018-11-27 京东方科技集团股份有限公司 一种除法器及其运算方法、电子设备
CN110147217A (zh) * 2018-02-12 2019-08-20 北京忆芯科技有限公司 除法器
CN111399803A (zh) * 2019-01-03 2020-07-10 北京小米松果电子有限公司 除法运算方法、装置、存储介质及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60164837A (ja) * 1984-02-07 1985-08-27 Nec Corp 除算装置
JPH01286023A (ja) * 1988-05-12 1989-11-17 Fujitsu Ltd 除算命令処理装置
JP3259116B2 (ja) * 1994-01-19 2002-02-25 日本電気エンジニアリング株式会社 パイプライン型除算処理装置
CN113222132B (zh) * 2021-05-22 2023-04-18 上海阵量智能科技有限公司 乘法器、数据处理方法、芯片、计算机设备及存储介质
CN113254072B (zh) * 2021-05-27 2023-04-07 上海阵量智能科技有限公司 数据处理器、数据处理方法、芯片、计算机设备及介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188468A (ja) * 1999-12-27 2001-07-10 Toyo Commun Equip Co Ltd ガロア体上の元の除算演算方法および除算演算回路
US20130173681A1 (en) * 2012-01-03 2013-07-04 International Business Machines Corporation Range Check Based Lookup Tables
CN103593159A (zh) * 2012-08-14 2014-02-19 重庆重邮信科通信技术有限公司 一种高效率高精度除法实现方法及装置
US20160034256A1 (en) * 2014-08-01 2016-02-04 Imagination Technologies, Limited Fast integer division
CN104375802A (zh) * 2014-09-23 2015-02-25 上海晟矽微电子股份有限公司 一种乘除法器及运算方法
US20170010862A1 (en) * 2015-07-10 2017-01-12 Arm Limited Apparatus and method for performing division
CN106354473A (zh) * 2015-07-16 2017-01-25 浙江大华技术股份有限公司 一种除法器和求商和余数的方法
CN106959840A (zh) * 2016-01-08 2017-07-18 瑞昱半导体股份有限公司 除法运算装置及其运算方法
CN107766031A (zh) * 2017-11-14 2018-03-06 京东方科技集团股份有限公司 分段式除法器、分段式除法运算方法、以及电子设备
CN108595146A (zh) * 2017-12-29 2018-09-28 珠海市杰理科技股份有限公司 除法运算方法、装置及设备
CN110147217A (zh) * 2018-02-12 2019-08-20 北京忆芯科技有限公司 除法器
CN108897523A (zh) * 2018-07-02 2018-11-27 京东方科技集团股份有限公司 一种除法器及其运算方法、电子设备
CN111399803A (zh) * 2019-01-03 2020-07-10 北京小米松果电子有限公司 除法运算方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王迎春等: "NRS FPU中浮点乘、除运算的合并设计", 《计算机研究与发展》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022247193A1 (zh) * 2021-05-27 2022-12-01 上海阵量智能科技有限公司 用于数据处理的装置、方法、芯片、计算机设备及介质

Also Published As

Publication number Publication date
WO2022247193A1 (zh) 2022-12-01
CN113254072B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
KR102581403B1 (ko) 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법
CN106708468B (zh) 一种除法运算装置
US20160313976A1 (en) High performance division and root computation unit
GB2537371B (en) Modulo calculation using polynomials
US9047119B2 (en) Circular floating-point number generator and a circular floating-point number adder
KR102449169B1 (ko) 나눗셈 연산을 수행하는 장치, 그것을 포함하는 시스템 온 칩 및 그것의 방법
CN113254072B (zh) 数据处理器、数据处理方法、芯片、计算机设备及介质
US8868633B2 (en) Method and circuitry for square root determination
CN114296682A (zh) 浮点数处理装置、方法、电子设备、存储介质及芯片
CN107220025B (zh) 处理乘加运算的装置和处理乘加运算的方法
CN108021477B (zh) 执行递归操作的方法、计算机设备、制造和测试方法
JP2001222410A (ja) 除算器
US10230376B2 (en) Apparatus and method for performing division
JP2006172035A (ja) 除算・開平演算器
US20150012574A1 (en) Model calculation unit and control unit for calculating a data-based function model having data in various number formats
US10387492B2 (en) Information processing system, information processing method, and program
del Campo et al. A multi-cycle fixed point square root module for FPGAs
CN114385112A (zh) 处理模数乘法的装置及方法
RU2559771C2 (ru) Устройство для основного деления модулярных чисел
CN112363687A (zh) 一种整数取模运算方法、装置及终端设备
WO2021035230A2 (en) Methods and apparatus for quotient digit recoding in a high-performance arithmetic unit
CN114327360B (zh) 运算装置、浮点数计算的方法、装置、芯片和计算设备
KR100901478B1 (ko) 나눗셈기의 평균값 출력 장치 및 출력 방법
JP2010033275A (ja) データ処理方法及びデータ処理プロセッサ
CN117971879A (zh) 数据查找方法、装置、电子设备及存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40049956

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant