[go: up one dir, main page]

CN116796816A - 处理器、计算芯片和计算设备 - Google Patents

处理器、计算芯片和计算设备 Download PDF

Info

Publication number
CN116796816A
CN116796816A CN202311077779.2A CN202311077779A CN116796816A CN 116796816 A CN116796816 A CN 116796816A CN 202311077779 A CN202311077779 A CN 202311077779A CN 116796816 A CN116796816 A CN 116796816A
Authority
CN
China
Prior art keywords
arithmetic logic
output
processor
coupled
register
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
CN202311077779.2A
Other languages
English (en)
Other versions
CN116796816B (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.)
Shenzhen MicroBT Electronics Technology Co Ltd
Original Assignee
Shenzhen MicroBT Electronics 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 Shenzhen MicroBT Electronics Technology Co Ltd filed Critical Shenzhen MicroBT Electronics Technology Co Ltd
Priority to CN202311077779.2A priority Critical patent/CN116796816B/zh
Publication of CN116796816A publication Critical patent/CN116796816A/zh
Application granted granted Critical
Publication of CN116796816B publication Critical patent/CN116796816B/zh
Priority to TW113124239A priority patent/TWI890507B/zh
Priority to PCT/CN2024/102273 priority patent/WO2025044473A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Neurology (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本公开涉及处理器、计算芯片和计算设备。公开了一种处理器,其包括:N个寄存器;算术逻辑单元,包括多个算术逻辑子单元,每个算术逻辑子单元执行一种运算,其输入耦接到N个寄存器的输出;以及N个多路复用器,每个多路复用器的输入耦接到每个算术逻辑子单元的输出,每个多路复用器根据控制信号选择对应的一个算术逻辑子单元的输出,每个算术逻辑子单元包括:选择模块,耦接到N个寄存器的输出,根据控制信号选择对应的一个寄存器的输出并将其传递到运算模块,或者不选择任何一个寄存器的输出并将预定值传递到运算模块;以及运算模块,针对选择模块传递的寄存器的输出进行运算,其中,N是大于或等于2且小于或等于算术逻辑子单元的数量的整数。

Description

处理器、计算芯片和计算设备
技术领域
本发明涉及计算机领域。具体而言,本发明涉及一种处理器以及包括该处理器的计算芯片和计算设备,特别适用于神经网络相关的计算。
背景技术
在神经网络相关的应用场景中,通常需要利用处理器进行大量运算。处理器的运算效率、功耗、面积等对于整个计算设备的效率和成本至关重要。期望实现一种高效率、低功耗的处理器,从而提高计算效率,降低生产成本和运行成本。
因此,存在对于新技术的需求。
发明内容
本公开的目的之一是提供一种改进的处理器。
根据本发明的一个方面,提供了一种处理器,其包括:N个寄存器;算术逻辑单元,包括多个算术逻辑子单元,每个算术逻辑子单元用于执行一种运算,并且每个算术逻辑子单元的输入耦接到N个寄存器的输出;以及N个多路复用器,每个多路复用器的输入耦接到算术逻辑单元的每一个算术逻辑子单元的输出,并且每个多路复用器根据该多路复用器的控制信号选择对应的一个算术逻辑子单元的输出,其中,每个算术逻辑子单元包括:选择模块,耦接到N个寄存器的输出,用于根据该算术逻辑子单元的控制信号选择对应的一个寄存器的输出并将其传递到运算模块,或者不选择任何一个寄存器的输出并将表示不选择任何一个寄存器的输出的预定值传递到运算模块;以及运算模块,用于针对选择模块传递的寄存器的输出来进行运算,其中,N是大于或等于2且小于或等于算术逻辑子单元的数量的整数。
根据本发明的另一个方面,提供了一种计算芯片,其包括一个或多个上述处理器。
根据本发明的又一个方面,提供了一种计算设备,其包括一个或多个上述计算芯片。
根据参照附图的以下描述,本发明的其它特性特征和优点将变得清晰。
附图说明
所包括的附图用于说明性目的,并且仅用于提供本文所公开的发明性装置以及将其应用到计算设备的方法的可能结构和布置的示例。这些附图决不限制本领域的技术人员在不脱离实施方案的实质和范围的前提下可对实施方案进行的在形式和细节方面的任何更改。所述实施方案通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。
图1示出了现有技术的处理器的示意图。
图2示出了根据本发明的一个实施例的处理器的示意图。
图3示出了根据本发明的一个实施例的处理器中的一个算术逻辑子单元的连接方式的示意图。
图4示出了根据本发明的另一个实施例的处理器的示意图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的哈希引擎是以示例性的方式示出,来说明本公开中的电路的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
图1示出了现有技术的处理器100的示意图。处理器100可以用于实现多种算术逻辑计算。
处理器100包括寄存器110、算术逻辑单元120以及多路复用器130。
寄存器110用于存储数据,其输出耦接到算术逻辑单元120。算术逻辑单元120可以包括多个算术逻辑子单元A-H,每个算术逻辑子单元用于执行一种运算。每个算术逻辑子单元A-H的输入耦接到寄存器110的输出。多路复用器130的输入耦接到算术逻辑单元120的每一个算术逻辑子单元A-H的输出,并且根据多路复用器的控制信号(未示出)选择对应的一个算术逻辑子单元的输出。
在现有技术的处理器100运行时,寄存器110的数据被传递到算术逻辑单元120的每一个算术逻辑子单元A-H并进行运算。之后,每一个算术逻辑子单元A-H的运算结果被输出到多路复用器130,多路复用器130进而根据其控制信号选择对应的一个算术逻辑子单元的运算结果作为其输出。例如,多路复用器130可以根据其控制信号为0而选择算术逻辑子单元A的运算结果作为其输出。
但是,现有技术的处理器100存在一些问题。首先,在一个周期内,处理器100只能处理一个算术逻辑运算。因此,处理器100的运算性能有限,运算效率较低。其次,处理器100运行时,每一个算术逻辑子单元A-H都进行运算,但只有其中一个运算结果被选择并输出。换言之,处理器100进行了大量的无效运算,使得其功耗较大。
本公开旨在解决上述问题中的至少一部分。
图2示出了根据本发明的一个实施例的处理器200的示意图。处理器200可以用于实现多种算术逻辑计算,例如,加、减、乘、除、移位、截断、求倒数、取模等。
处理器200包括:N个寄存器211、212、213、214,包括多个算术逻辑子单元220A-220H的算术逻辑单元220,以及N个多路复用器231、232、233、234。
其中,N是大于或等于2且小于或等于算术逻辑子单元的数量的整数。在图2示出的实施例中,N为4,算术逻辑子单元的数量为8。在其他实施例中,二者均可根据实际应用的需求而适当地选择不同的值。例如,N可以为2。
寄存器211、212、213、214用于存储数据,其输出耦接到算术逻辑单元220。具体而言,每一个寄存器211、212、213、214的输出耦接到算术逻辑单元220的每一个算术逻辑子单元220A-220H的输入。为了清楚起见,图2中没有绘出每一个寄存器211、212、213、214的输出到每一个算术逻辑子单元220A-220H的输入的所有连接关系。
算术逻辑单元220可以包括多个算术逻辑子单元220A-220H,每个算术逻辑子单元用于执行一种运算。在一种实施例中,每个算术逻辑子单元用于执行以下运算中的一者:加、减、乘、除、移位、截断、求倒数、取模。如上所述,每个算术逻辑子单元220A-220H的输入耦接到N个寄存器211、212、213、214的输出。其中,每个算术逻辑子单元220A-220H分别包括选择模块221A-221H和运算模块A-H。
每个选择模块221A-221H耦接到N个寄存器211、212、213、214的输出,用于根据该算术逻辑子单元的控制信号选择对应的一个寄存器的输出并将其传递到运算模块,或者不选择任何一个寄存器的输出并将表示不选择任何一个寄存器的输出的预定值传递到运算模块。该预定值可以是预先指定的、表示不选择任何一个寄存器的输出的任何合适的值。在优选的实施例中,该预定值可以是零,从而进一步降低处理器的功耗。
在优选的实施例中,每个算术逻辑子单元220A-220H的控制信号可以包括N个值,分别对应于N个寄存器。例如,选择模块221A可以根据该算术逻辑子单元220A的控制信号280A为“1000”而选择寄存器211的输出并将其传递到运算模块A。或者,选择模块221A可以根据该算术逻辑子单元220A的控制信号280A为“0000”而不选择任何一个寄存器的输出并将预定值传递到运算模块A。为了清楚起见,图2中没有绘出其他算术逻辑子单元220B-220H的控制信号,但本领域技术人员应当理解,其他算术逻辑子单元220B-220H的控制信号可以与算术逻辑子单元220A的控制信号280A类似地工作。
运算模块A-H用于针对选择模块221A-221H传递的寄存器的输出来进行运算。特别地,在优选的实施例中,该预定值可以是零,并且当选择模块221A-221H传递的值为零时,运算模块A-H不需要进行运算。这使得处理器200的总体功耗大大降低。在一种实施例中,运算模块A-H可以分别用于执行以下运算中的一者:加、减、乘、除、移位、截断、求倒数、取模。
每个多路复用器231、232、233、234的输入耦接到算术逻辑单元220的每一个算术逻辑子单元220A-220H的输出,并且每个多路复用器231、232、233、234根据该多路复用器的控制信号291、292、293、294选择对应的一个算术逻辑子单元的输出作为运算结果。为了清楚起见,图2中没有绘出每一个算术逻辑子单元220A-220H的输出到每一个多路复用器231、232、233、234的输入的所有连接关系。每个多路复用器231、232、233、234可以由逻辑门器件实现。
每个多路复用器231、232、233、234的输出可以耦接到相应的寄存器211、212、213、214的输入,从而将运算结果传递到相应的寄存器211、212、213、214。此外,每个多路复用器231、232、233、234的输出可以耦接到处理器200的输出,从而在运算循环结束时输出运算结果。
在运算循环开始时,N个寄存器211、212、213、214可以分别从外部接收输入作为处理器100的输入。在运算循环进行中,N个多路复用器231、232、233、234分别将当前周期的运算结果反馈到相应的寄存器211、212、213、214,从而循环地进行进一步的运算。在运算循环结束时,N个多路复用器231、232、233、234可以分别输出运算结果。
在优选的实施例中,如图2所示,第1至N个多路复用器231、232、233、234的输出可以分别耦接到第1至N个寄存器211、212、213、214的输入,同时耦接到处理器200的输出。
在进一步优选的实施例中,在图2所示的处理器200中可以并行地处理N个不同的运算。即,在每个周期内,处理器200可以处理N个互不相同的运算。这样,第1至N个多路复用器231、232、233、234的控制信号291、292、293、294可以分别选择与第1至N个寄存器211、212、213、214对应的算术逻辑子单元的输出,并分别将其反馈到第1至N个寄存器211、212、213、214。也就是说,在图2所示的处理器200中可以针对N个寄存器211、212、213、214存储的数据并行地执行N个不同的运算。
例如,可以在当前周期内分别针对第1至4个寄存器的值进行A、B、C、D等4种运算。那么,算术逻辑子单元220A的选择模块221A可以选择寄存器211的输出并由运算模块A进行运算,而多路复用器231的控制信号291可以选择与寄存器211对应的算术逻辑子单元220A的输出,并将该输出反馈到寄存器211。例如,控制信号291可以为0以选择算术逻辑子单元220A的输出。类似地,算术逻辑子单元220B的选择模块221B可以选择寄存器212的输出并由运算模块B进行运算,而多路复用器232的控制信号292可以选择与寄存器212对应的算术逻辑子单元220B的输出,并将该输出反馈到寄存器212。例如,控制信号292可以为1以选择算术逻辑子单元220B的输出。算术逻辑子单元220C的选择模块221C可以选择寄存器213的输出并由运算模块C进行运算,而多路复用器233的控制信号293可以选择与寄存器213对应的算术逻辑子单元220C的输出,并将该输出反馈到寄存器213。例如,控制信号293可以为2以选择算术逻辑子单元220C的输出。算术逻辑子单元220D的选择模块221D可以选择寄存器214的输出并由运算模块D进行运算,而多路复用器234的控制信号294可以选择与寄存器214对应的算术逻辑子单元220D的输出,并将该输出反馈到寄存器214。例如,控制信号294可以为3以选择算术逻辑子单元220D的输出。
于是,在处理器200运行时,处理器200可以并行地处理N个不同的运算。这使得处理器200的运算效率提升为现有技术中的处理器100的N倍,显著提升了处理器的运算性能。
此外,在优选的实施例中,表示不选择任何一个寄存器的输出的预定值可以是零。这样,在处理器200运行时,在算术逻辑子单元220A-220H中的选择模块221A-221H的控制下,仅期望进行运算的算术逻辑子单元中的运算模块接收到相应的数值并进行运算,其他算术逻辑子单元中的运算模块接收到零值因而不进行运算。这样,在处理器200中消除了大量的无效运算,使得其功耗显著降低。
注意,在处理器200运行时,可以并行地处理N个不相关的运算,也可以对于N组数据并行地进行一系列相同的运算,只需确保在同一周期内同时进行的N个运算彼此不同。如果出现运算冲突(即在同一周期内同时进行的N个运算中的至少一部分运算相同),则可以调整相应的算术逻辑子单元的控制信号以使得至少一组运算等待一个或多个周期,从而彼此错开。
例如,如果期望分别针对N个寄存器211、212、213、214中的数据依次执行A、B、C、D等运算(即,对于N组数据并行地进行一系列相同的运算),则可以调整各个算术逻辑子单元的控制信号以执行以下操作:在第一个周期内令算术逻辑子单元220A选择寄存器211的输出并对其进行A运算,而多路复用器231的控制信号291选择与寄存器211对应的算术逻辑子单元220A的输出并将该输出反馈到寄存器211;在第二个周期内令算术逻辑子单元220A选择寄存器212的输出并对其进行A运算,并且令算术逻辑子单元220B选择寄存器211的输出并对其进行B运算,而多路复用器231、232的控制信号291、292分别选择分别与寄存器211、212对应的算术逻辑子单元220B、220A的输出并分别将该输出反馈到寄存器211、212;在第三个周期内令算术逻辑子单元220A选择寄存器213的输出并对其进行A运算,令算术逻辑子单元220B选择寄存器212的输出并对其进行B运算,并且令算术逻辑子单元220C选择寄存器211的输出并对其进行C运算,而多路复用器231、232、233的控制信号291、292、293分别选择分别与寄存器211、212、213对应的算术逻辑子单元220C、220B、220A的输出并分别将该输出反馈到寄存器211、212、213;在第四个周期内令算术逻辑子单元220A选择寄存器214的输出并对其进行A运算,令算术逻辑子单元220B选择寄存器213的输出并对其进行B运算,令算术逻辑子单元220C选择寄存器212的输出并对其进行C运算,并且令算术逻辑子单元220D选择寄存器211的输出并对其进行D运算,而多路复用器231、232、233、234的控制信号291、292、293、294分别选择分别与寄存器211、212、213、214对应的算术逻辑子单元220D、220C、220B、220A的输出并分别将该输出反馈到寄存器211、212、213、214;依此类推。这样,可以灵活地调整运算时序,以一定的延时为代价解决运算冲突的问题。
图3示出了根据本发明的一个实施例的处理器200中的一个算术逻辑子单元220A的连接方式的示意图。
算术逻辑子单元220A包括选择模块221A和运算模块A。其中,选择模块221A耦接到N个寄存器211、212、213、214的输出,用于根据该算术逻辑子单元220A的控制信号280A选择对应的一个寄存器的输出并将其传递到运算模块A,或者不选择任何一个寄存器的输出并将表示不选择任何一个寄存器的输出的预定值传递到运算模块A。
在优选的实施例中,控制信号280A可以包括N个值,分别对应于N个寄存器。在优选的实施例中,如图3所示,选择模块221A可以由N个与门以及包括N个输入端子的或门组成。其中,每个与门的第一端子可以耦接到对应的一个寄存器211、212、213、214的输出,第二端子可以耦接到该算术逻辑子单元220A的控制信号280A的N个值中的与耦接到该第一端子的寄存器211、212、213、214对应的一个值。或门的每个输入端子可以分别耦接到N个与门的输出端子,并且或门的输出端子可以耦接到该算术逻辑子单元220A的运算模块A。
举例而言,当期望针对寄存器211的值进行A运算时,控制信号280A可以为“1000”,使得值“1”“0”“0”“0”依次输入到4个与门的一个输入端子,而4个寄存器211、212、213、214的输出依次耦接到4个与门的另一个输入端子。这样,第1个与门的输出为寄存器211的值,而第2-4个与门的输出为表示不选择任何一个寄存器的输出的预定值。于是,寄存器211的值经由或门被输出到运算模块A,运算模块A接收到寄存器211的值并对其进行A运算。
另一示例中,当不期望进行A运算时,控制信号280A可以为“0000”,使得值“0”“0”“0”“0”依次输入到4个与门的一个输入端子,而4个寄存器211、212、213、214的输出依次耦接到4个与门的另一个输入端子。这样,4个与门的输出及或门的输出均为表示不选择任何一个寄存器的输出的预定值。在优选的实施例中,该预定值可以是零。于是,运算模块A接收到零值而不进行运算。这样,可以消除无效的运算,使得处理器200的总体功耗显著降低。
在优选的实施例中,选择模块221A可以由N个与非门以及包括N个输入端子的或非门组成。其中,每个与非门的第一端子可以耦接到对应的一个寄存器211、212、213、214的输出,第二端子可以耦接到该算术逻辑子单元220A的控制信号280A的N个值中的与耦接到该第一端子的寄存器211、212、213、214对应的一个值。或非门的每个输入端子可以分别耦接到N个与非门的输出端子,并且或非门的输出端子可以耦接到该算术逻辑子单元220A的运算模块A。在此实施例中,与非门、或非门和前述实施例中的与门、或门类似地工作,在此不再详细描述。
图4示出了根据本发明的另一个实施例的处理器400的示意图。在神经网络相关的计算中,经常需要对于大量的数据进行一系列相同的运算。图4所示的实施例中的处理器400可以实现流水线运行方式,因而特别适用于这种应用场景。
处理器400包括:N个寄存器411、412、413、414,包括多个算术逻辑子单元420A-420H的算术逻辑单元420,以及N个多路复用器431、432、433、434。每个算术逻辑子单元420A-420H包括选择模块421A-421H和运算模块A-H。其中,每个寄存器411、412、413、414的输出耦接到每个算术逻辑子单元420A-420H的输入,而每个多路复用器431、432、433、434的输入耦接到每个算术逻辑子单元420A-420H的输出。为了清楚起见,图4中没有绘出以上描述的寄存器、算术逻辑子单元和多路复用器之间的所有连接关系。
处理器400的构造与图2所示的处理器200基本类似,因此其细节不再赘述。
在处理器400中,每个选择模块421A-421H耦接到N个寄存器411、412、413、414的输出,用于根据该算术逻辑子单元的控制信号选择对应的一个寄存器的输出并将其传递到运算模块,或者不选择任何一个寄存器的输出并将表示不选择任何一个寄存器的输出的预定值传递到运算模块。为了清楚起见,图4中仅绘出了算术逻辑子单元220A的控制信号480A。
在如图4所示的实施例中,第1至N-1个多路复用器431、432、433的输出可以分别耦接到第2至N个寄存器412、413、414的输入,而第N个多路复用器434的输出可以耦接到处理器400的输出,用于在运算循环结束时输出运算结果。
在每个周期中,第1个寄存器411可以从外部接收输入作为处理器400的输入,并且该数值被传递到相应的算术逻辑子单元的运算模块以进行相应的运算。多路复用器431选择相应运算的运算结果,并将其输出到寄存器412以等待下一次运算。同时,第2至N-1个寄存器412、413中存储的数值(即,先前的运算结果)被传递到相应的算术逻辑子单元的运算模块以进行相应的运算,并且多路复用器432、433分别选择相应运算的运算结果并分别将其输出到寄存器413、414以等待下一次运算。与此同时,第N个寄存器414中存储的数值被传递到相应的算术逻辑子单元的运算模块以进行相应的运算,并且多路复用器434选择相应运算的运算结果并将其输出。
这样,处理器400可以以流水线运行方式不断地对于不同的数据进行一系列相同的运算。
注意,在这样的实施例中,在一系列运算的过程中,处理器400中的每个算术逻辑子单元420A-420H所对应的寄存器始终相同。例如,如果期望依次执行运算A、B、C、D,则算术逻辑子单元420A、420B、420C、420D始终分别从寄存器411、412、413、414接收数据。因此,在运算过程中,各个算术逻辑子单元的控制信号不需要改变,从而进一步降低了控制信号的翻转功耗。这样,与图2中所示的处理器200相比,处理器400的功耗得以进一步降低。
在进一步优选的实施例中,可以以图2中所示的处理器200的连接方式实现与图4中所示的处理器400类似的流水线运行方式。
如图2所示,在处理器200中,第1至N个多路复用器231、232、233、234的输出可以分别耦接到第1至N个寄存器211、212、213、214的输入,同时耦接到处理器200的输出。在此优选实施例中,第2至N个多路复用器232、233、234的控制信号可以分别选择与第1至N-1个寄存器211、212、213对应的算术逻辑子单元的输出,并且第1个多路复用器231的控制信号可以选择与第N个寄存器214对应的算术逻辑子单元的输出。
这样,可以调整各个算术逻辑子单元的控制信号以实现流水线运行方式。例如,如果期望以流水线方式依次执行运算A、B、C、D,则在每个周期中:第1个寄存器211可以从外部接收输入作为处理器200的输入,并且该数值被传递到相应的算术逻辑子单元(即算术逻辑子单元420A)的运算模块以进行相应的运算;第2个多路复用器232可以选择与第1个寄存器211对应的算术逻辑子单元(即算术逻辑子单元420A)的输出,并将其输出到第2个寄存器212以等待下一次运算。同时,第2至N-1个寄存器212、213中存储的数值被传递到相应的算术逻辑子单元(即算术逻辑子单元420B、420C)的运算模块以进行相应的运算;第3至N个多路复用器433、434分别选择与第2至N-1个寄存器212、213对应的算术逻辑子单元(即算术逻辑子单元420B、420C)的输出并分别将其输出到第3至N个寄存器213、214以等待下一次运算。与此同时,第N个寄存器214中存储的数值被传递到相应的算术逻辑子单元(即算术逻辑子单元420D)的运算模块以进行相应的运算;第1个多路复用器231选择与第N个寄存器214对应的算术逻辑子单元(即算术逻辑子单元420D)的输出,并将其作为处理器400的运算结果而输出。
于是,基于以上所述的N个多路复用器的控制信号,处理器200可以以流水线的形式不断地对于不同的数据进行一系列相同的运算。
此外,如前所述,处理器200还可以以并行方式运行。在优选的实施例中,可以通过硬件方式实现处理器200的连接方式,并且通过改变N个多路复用器的控制信号来改变处理器200的运行方式(即,并行方式或流水线方式)。这使得能够更加灵活地选择处理器的运行方式,而无需额外的硬件成本。
在一种实现方式中,一种计算芯片可以包括一个或多个上述处理器。在一种实现方式中,一种计算设备可以包括一个或多个计算芯片。多个计算芯片可以并行地执行计算任务。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
虽然已通过示例详细展示了本发明的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是说明性的而不限制本发明的范围。本领域技术人员应该理解,上述实施例可以在不脱离本发明的范围和实质的情况下被修改。本发明的范围是通过所附的权利要求限定的。

Claims (15)

1.一种处理器,包括:
N个寄存器;
算术逻辑单元,包括多个算术逻辑子单元,每个算术逻辑子单元用于执行一种运算,并且每个算术逻辑子单元的输入耦接到N个寄存器的输出;以及
N个多路复用器,每个多路复用器的输入耦接到算术逻辑单元的每一个算术逻辑子单元的输出,并且每个多路复用器根据该多路复用器的控制信号选择对应的一个算术逻辑子单元的输出,
其中,每个算术逻辑子单元包括:
选择模块,耦接到N个寄存器的输出,用于根据该算术逻辑子单元的控制信号选择对应的一个寄存器的输出并将其传递到运算模块,或者不选择任何一个寄存器的输出并将表示不选择任何一个寄存器的输出的预定值传递到运算模块;以及
运算模块,用于针对选择模块传递的寄存器的输出来进行运算,
其中,N是大于或等于2且小于或等于算术逻辑子单元的数量的整数。
2.如权利要求1所述的处理器,其中第1至N个多路复用器的输出分别耦接到第1至N个寄存器的输入,同时耦接到处理器的输出。
3.如权利要求2所述的处理器,其中第1至N个多路复用器的控制信号分别选择与第1至N个寄存器对应的算术逻辑子单元的输出。
4.如权利要求1所述的处理器,其中第1至N-1个多路复用器的输出分别耦接到第2至N个寄存器的输入,并且第N个多路复用器的输出耦接到处理器的输出。
5.如权利要求4所述的处理器,其中第1至N个多路复用器的控制信号分别选择与第1至N个寄存器对应的算术逻辑子单元的输出。
6.如权利要求2所述的处理器,其中第2至N个多路复用器的控制信号分别选择与第1至N-1个寄存器对应的算术逻辑子单元的输出,并且第1个多路复用器的控制信号选择与第N个寄存器对应的算术逻辑子单元的输出。
7.如权利要求1-6中任一项所述的处理器,其中表示不选择任何一个寄存器的输出的所述预定值为零。
8.如权利要求1-6中任一项所述的处理器,其中每个算术逻辑子单元的控制信号包括N个值,分别对应于N个寄存器。
9.如权利要求8所述的处理器,其中每个算术逻辑子单元的选择模块包括:
N个与门,每个与门的第一端子耦接到对应的一个寄存器的输出,第二端子耦接到该算术逻辑子单元的控制信号的N个值中的与耦接到该第一端子的寄存器对应的一个值;以及
包括N个输入端子的或门,或门的每个输入端子分别耦接到N个与门的输出端子,并且或门的输出端子耦接到该算术逻辑子单元的运算模块。
10.如权利要求8所述的处理器,其中每个算术逻辑子单元的选择模块包括:
N个与非门,每个与非门的第一端子耦接到对应的一个寄存器的输出,第二端子耦接到该算术逻辑子单元的控制信号的N个值中的与耦接到该第一端子的寄存器对应的一个值;以及
包括N个输入端子的或非门,或非门的每个输入端子分别耦接到N个与非门的输出端子,并且或非门的输出端子耦接到该算术逻辑子单元的运算模块。
11.如权利要求1-6中任一项所述的处理器,其中每个多路复用器由逻辑门器件实现。
12.如权利要求1-6中任一项所述的处理器,其中N为4。
13.如权利要求1-6中任一项所述的处理器,其中多个算术逻辑子单元中的每一个用于进行以下运算中的一者:加、减、乘、除、移位、截断、求倒数、取模。
14.一种计算芯片,包括一个或多个如权利要求1-13中任一项所述的处理器。
15.一种计算设备,包括一个或多个如权利要求14所述的计算芯片。
CN202311077779.2A 2023-08-25 2023-08-25 处理器、计算芯片和计算设备 Active CN116796816B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202311077779.2A CN116796816B (zh) 2023-08-25 2023-08-25 处理器、计算芯片和计算设备
TW113124239A TWI890507B (zh) 2023-08-25 2024-06-28 處理器、計算晶片和計算設備
PCT/CN2024/102273 WO2025044473A1 (zh) 2023-08-25 2024-06-28 处理器、计算芯片和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311077779.2A CN116796816B (zh) 2023-08-25 2023-08-25 处理器、计算芯片和计算设备

Publications (2)

Publication Number Publication Date
CN116796816A true CN116796816A (zh) 2023-09-22
CN116796816B CN116796816B (zh) 2024-05-14

Family

ID=88045023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311077779.2A Active CN116796816B (zh) 2023-08-25 2023-08-25 处理器、计算芯片和计算设备

Country Status (3)

Country Link
CN (1) CN116796816B (zh)
TW (1) TWI890507B (zh)
WO (1) WO2025044473A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025044473A1 (zh) * 2023-08-25 2025-03-06 深圳比特微电子科技有限公司 处理器、计算芯片和计算设备
WO2026016556A1 (zh) * 2024-07-19 2026-01-22 深圳比特微电子科技有限公司 算术逻辑单元、处理器、计算芯片和计算设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4323981A (en) * 1977-10-21 1982-04-06 Tokyo Shibaura Denki Kabushiki Kaisha Central processing unit with improved ALU circuit control
US20040039898A1 (en) * 2002-08-20 2004-02-26 Texas Instruments Incorporated Processor system and method providing data to selected sub-units in a processor functional unit
US20060190516A1 (en) * 2003-12-29 2006-08-24 Xilinx, Inc. Digital signal processing element having an arithmetic logic unit
US20060230094A1 (en) * 2003-12-29 2006-10-12 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7710427B1 (en) * 2004-05-14 2010-05-04 Nvidia Corporation Arithmetic logic unit and method for processing data in a graphics pipeline
CN101751244A (zh) * 2010-01-04 2010-06-23 清华大学 微处理器
CN108268944A (zh) * 2016-12-31 2018-07-10 上海兆芯集成电路有限公司 具有可重塑之存储器之神经网络单元
CN114691600A (zh) * 2018-08-16 2022-07-01 塔奇姆有限公司 用于处理器的算术逻辑单元布局

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230253B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Executing partial-width packed data instructions
TW501344B (en) * 2001-03-06 2002-09-01 Nat Science Council Complex-valued multiplier-and-accumulator
US9329835B1 (en) * 2011-10-19 2016-05-03 Marvell International Ltd. Systems and methods for performing mathematical functions
CN105468568B (zh) * 2015-11-13 2018-06-05 上海交通大学 高效的粗粒度可重构计算系统
US10417560B2 (en) * 2016-12-01 2019-09-17 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs efficient 3-dimensional convolutions
CN111459458B (zh) * 2020-06-03 2025-05-16 深圳比特微电子科技有限公司 运算电路、芯片和计算装置
CN116796816B (zh) * 2023-08-25 2024-05-14 深圳比特微电子科技有限公司 处理器、计算芯片和计算设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4323981A (en) * 1977-10-21 1982-04-06 Tokyo Shibaura Denki Kabushiki Kaisha Central processing unit with improved ALU circuit control
US20040039898A1 (en) * 2002-08-20 2004-02-26 Texas Instruments Incorporated Processor system and method providing data to selected sub-units in a processor functional unit
US20060190516A1 (en) * 2003-12-29 2006-08-24 Xilinx, Inc. Digital signal processing element having an arithmetic logic unit
US20060230094A1 (en) * 2003-12-29 2006-10-12 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7710427B1 (en) * 2004-05-14 2010-05-04 Nvidia Corporation Arithmetic logic unit and method for processing data in a graphics pipeline
CN101751244A (zh) * 2010-01-04 2010-06-23 清华大学 微处理器
CN108268944A (zh) * 2016-12-31 2018-07-10 上海兆芯集成电路有限公司 具有可重塑之存储器之神经网络单元
CN114691600A (zh) * 2018-08-16 2022-07-01 塔奇姆有限公司 用于处理器的算术逻辑单元布局

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025044473A1 (zh) * 2023-08-25 2025-03-06 深圳比特微电子科技有限公司 处理器、计算芯片和计算设备
WO2026016556A1 (zh) * 2024-07-19 2026-01-22 深圳比特微电子科技有限公司 算术逻辑单元、处理器、计算芯片和计算设备

Also Published As

Publication number Publication date
CN116796816B (zh) 2024-05-14
TW202509759A (zh) 2025-03-01
WO2025044473A1 (zh) 2025-03-06
TWI890507B (zh) 2025-07-11

Similar Documents

Publication Publication Date Title
TWI890507B (zh) 處理器、計算晶片和計算設備
WO2019218896A1 (zh) 计算方法以及相关产品
CN107229463B (zh) 计算设备和相应计算方法
JP2021508125A (ja) 行列乗算器
US10817304B2 (en) Calculating device
CN110210610A (zh) 卷积计算加速器、卷积计算方法及卷积计算设备
CN111651403A (zh) 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机
US12182532B1 (en) Mixed-precision multiply-and-accumulation tree structure to maximize memory bandwidth usage for computational acceleration of generative large language model
CN213879787U (zh) 处理器和计算系统
CN110609804A (zh) 半导体器件和控制半导体器件的方法
CN111930682A (zh) 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机
CN113419703A (zh) 33位加法器及其实现方法、运算电路及芯片
US9361065B2 (en) Processor and processing method
US10387118B2 (en) Arithmetic operation unit and method of controlling arithmetic operation unit
CN212515799U (zh) 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机
CA3200781A1 (en) Processor and computing system
CN112074810A (zh) 并行处理设备
CN111368986A (zh) 一种神经网络计算装置和方法
CN115390924B (zh) 指令执行方法、执行引擎、处理器、芯片及电子设备
CN115407823A (zh) 延时调节装置、延时控制方法、计算机设备及存储介质
CN114970848A (zh) 用于并行处理器的数据搬运装置及相应处理器
CN113407153A (zh) 16位加法器及其实现方法、运算电路及芯片
US7007059B1 (en) Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization
CN117573065B (zh) 一种处理器多功能移位运算装置及运算方法
TWI807927B (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
GR01 Patent grant
GR01 Patent grant