CN108804379B - 可重构处理器及其配置方法 - Google Patents

可重构处理器及其配置方法 Download PDF

Info

Publication number
CN108804379B
CN108804379B CN201710312282.2A CN201710312282A CN108804379B CN 108804379 B CN108804379 B CN 108804379B CN 201710312282 A CN201710312282 A CN 201710312282A CN 108804379 B CN108804379 B CN 108804379B
Authority
CN
China
Prior art keywords
data
output
unit
logic
path
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
CN201710312282.2A
Other languages
English (en)
Other versions
CN108804379A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201710312282.2A priority Critical patent/CN108804379B/zh
Publication of CN108804379A publication Critical patent/CN108804379A/zh
Application granted granted Critical
Publication of CN108804379B publication Critical patent/CN108804379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提出一种可重构处理器及其配置方法,该可重构处理器的可重构单元阵列包括多个基本运算单元BFU。其中,所述BFU包括数据输入端口、计算模块以及数据输出端口。计算模块,用于根据所述数据输入端口的输入数据进行计算,得到计算结果;数据输出端口,包括结果输出端口和旁路输出端口。其中,所述结果输出端口,用于输出所述计算结果;所述旁路输出端口,用于输出所述计算模块在计算过程中得到的中间结果,或者用于输出所述输入数据。本发明实施例能够提升处理器的运算性能。

Description

可重构处理器及其配置方法
技术领域
本发明涉及微电子技术领域,尤其涉及一种可重构处理器及其配置方法。
背景技术
可重构处理器(Reconfigurable Processing Unit,RPU)是一种结合计算灵活性和计算的高效性为一体的新型计算架构,可以应用于包括汽车、航空航天、国防等在内各个领域中,适用范围较广。
可重构单元阵列(Reconfigurable Cell Array,RCA)为可重构处理器的计算核心,其基本运算单元(Basic Functional Unit,BFU)的效率和灵活性,会对可重构处理器的性能产生极大影响。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种可重构处理器,以解决现有技术中RPU的运算能力较低的技术问题。
本发明的第二个目的在于提出一种可重构处理器的配置方法。
为达上述目的,本发明第一方面实施例提出了一种可重构处理器,所述可重构处理器的可重构单元阵列RCA包括多个基本运算单元BFU;
其中,所述BFU包括数据输入端口、计算模块以及数据输出端口;
所述计算模块,用于根据所述数据输入端口的输入数据,进行计算,得到计算结果;
所述数据输出端口,包括结果输出端口和旁路输出端口;其中,所述结果输出端口,用于输出所述计算结果;所述旁路输出端口,用于输出所述计算模块在计算过程中得到的中间结果,或者用于输出所述输入数据。
根据本发明实施例提供的可重构处理器,结果输出端口输出计算结果,同时旁路输出端口输出计算模块在计算过程中得到的中间结果或者输入数据,丰富了BFU的输出结果,满足了灵活性的需求,进而提升了处理器的运算性能。
为达上述目的,本发明第二方面实施例提出了一种可重构处理器的配置方法,用于对如第一方面所述的可重构处理器的基本运算单元BFU进行配置;所述BFU包括控制模块、计算模块、数据输入端口和数据输出端口;
所述控制模块获取配置信息;其中,所述配置信息包括用于对所述计算模块进行重构的运算功能配置信息,以及用于对所述数据输出端口进行配置的输出端口配置信息;
所述控制模块根据所述配置信息,配置所述计算模块的运算功能以及数据输出端口。
根据本发明实施例的配置方法,由配置单元对可重构处理器的基本运算单元进行配置,可以切换基本运算单元的运算功能,而且配置参数多样化、输出数据可选择,提升了基本运算单元的灵活性和处理器的运算性能。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种可重构处理器的结构示意图;
图2为本发明实施例所提供的一种BFU的结构示意图;
图3为本发明实施例所提供的一种AU的示意图;
图4为本发明实施例所提供的一种SU的示意图;
图5为本发明实施例所提供的一种LU的示意图;以及
图6为本发明实施例提供的一种配置方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的可重构处理器及其配置方法。
图1为本发明实施例所提供的一种可重构处理器的结构示意图。如图1所示,可重构处理器包括RCA。RCA包括多个BFU,也将BFU称为可重构处理器的基本算子。
作为一种可能的实现方式,在RCA中,按行组织及管理BFU,每行BFU称为一个行计算单元(Row Calculated Unit,RCU)。例如,如图1所示,RCU内部包含了若干个BFU、非线性置换单元(substitution box,SBOX)(图中未标出)等基本算子。这些算子可以并行排列,算子之间可以进行数据交互。
需要说明的是,图1仅是一种示意性描述,图中所标示出的BFU的位置和数量不能构成对本发明实施例的限制。
具体地,在一种可能的应用场景中,若干个RCU串接组成了一个块计算单元(BlockCalculated Unit,BCU),BCU中后一个RCU中的算子的输入为前一个RCU的算子的输出,BCU中所串接的最后一个RCU的输出结果作为这个BCU的输出结果。RCA内部有若干个BCU,BCU间可以进行数据交互,任意一个BCU的输出可以作为其他BCU的输入,输入至其他BCU内部的第一个RCU。在这种场景下,RCA中的各个BFU构成了连接网络,使得RCA可以同时处理多个进程,提高了阵列计算的效率和处理速度。
图2为本发明实施例所提供的一种BFU的结构示意图,如图2所示,BFU包括数据输入端口10、计算模块20以及数据输出端口30。
计算模块20,用于根据数据输入端口10的输入数据,进行计算,得到计算结果。数据输出端口30包括结果输出端口31和旁路输出端口32。其中,结果输出端口31,用于输出计算结果。旁路输出端口32,用于输出计算模块20在计算过程中得到的中间结果,或者用于输出输入数据。
根据本发明实施例提供的可重构处理器,结果输出端口输出计算结果,同时旁路输出端口输出计算模块在计算过程中得到的中间结果或者输入数据,丰富了BFU的输出结果,满足了灵活性的需求,进而提升了处理器的运算性能。
在本发明的一个实施例中,BFU为三输入两输出结构。
具体地,在数据输出端口30包括结果输出端口31和旁路输出端口32的基础上,数据输入端口10包括第一路数据输入端口11、第二路数据输入端口12和第三路数据输入端口13。也就是说,三输入是指数据输入端口包括第一路数据输入端口11、第二路数据输入端口12和第三路数据输入端口13;两输出是指数据输出端口包括结果输出端口31和旁路输出端口32。
这样,在需要多个数据输入的场景中,采用三输入的算子结构,可以平衡资源使用率和设计面积,能够在设计面积较小的情况下得到较高的资源使用率。同时在本实施例中,采用两输出的方案,增加了旁路输出端口输出数据,优化了算法的执行方式,提升了算法的执行效率。
假设对于BFU来说,算子的三个输入数据分别为a、b和c,输出数据为d,而下一级算子需要用到a和d,这样在本级算子输出d的同时,可以通过旁路输出端口输出数据a至下一级算子,从而优化了算法的执行,提升了算法的执行效率。
例如,假设计算任务为:本级算子执行运算c=(a>>6)a>>13;下一级算子执行运算d=ac
那么,本级算子的输入为a,结果输出端口的输出为c,旁路输出端口的输出为a,从而可以通过旁路输出端口将本级算子的输入a传递给下一级算子,提升了算法的执行效率。
又如,假设计算任务为:本级算子执行运算c=(a>>6)a>>13,其中,b=a>>13;下一级算子执行运算:d=b|c。
那么,本级算子输入为a,输出为c,旁路输出端口的输出为b(本级运算的中间结果)和c,从而可以通过旁路输出端口将本级算子的中间结果b传递给下一级算子。
进一步地,在一个实施例中,配置计算模块20中的多个数字逻辑单元,使所述计算模块20重构为逻辑运算器(logical Unit,LU)、移位器(Shifter Unit,SU)和/或加法器(Adder Unit,AU)。此外,BFU还包括控制模块40,用于配置BFU的运算功能及数据输出端口。
可选地,控制模块40用于根据配置信息,配置所述计算模块的运算功能和/或数据输出端口。其中,所述配置信息包括用于对所述计算模块进行重构的运算功能配置信息,以及用于对所述数据输出端口进行配置的输出端口配置信息。
具体来说,在一个实施例中,控制模块40可以包括模式控制单元41和输出控制单元42。在又一实施例中,控制模块40还可以包括输入控制单元43(图中未示出)。
其中,模式控制单元41,用于根据所述运算功能配置信息,配置所述计算模块中的至少一个数字逻辑单元,使所述计算模块重构为逻辑运算器LU、移位器SU或加法器AU,以对所述第一路数据输入端口、所述第二路数据输入端口和所述第三路数据输入端口的输入数据进行计算。
输出控制单元42,用于根据所述输出端口配置信息,配置所述结果输出端口31和/或所述旁路输出端口32的输出。
作为一种可能的实现方式,数据输入端口有三个的情况下,输入控制单元43可以针对每一个数据输入端口进行配置,以确定各个数据输入端口的输入数据来源。其中,这里的输入数据来源包括:数据缓存单元、其他算子的输出数据等等。
为了清楚说明计算模块20重构为所述LU、所述SU和所述AU时,该计算模块20的结构,下面将分别对重构得到的LU、SU和AU的结构进行详细介绍。
AU是加法器,能实现多种加法运算。具体来说,在一个实施例中,AU能实现常用的模28、模216以及模232等运算,而且也能实现例如模(231)-1这样特殊的加法运算。通过对AU进行配置,可以选择AU的计算结果为模加法运算的结果,或者为模加法运算的结果和第三个操作数的逻辑结果。这样,本发明实施例有效地扩大了可操作的数据,使算子更加灵活。其中,这里的逻辑包括与、或、异或等。
本实施例给出了AU一种可能实现方式,图3为本发明实施例提供的一种AU的示意图。如图3所示,AU包括:第一逻辑单元AU1、模加法单元AU2和第一逻辑输出单元AU3。
其中,第一逻辑单元AU1,用于根据所述第一路数据输入端口11的输入数据和所述第二路数据输入端口12的输入数据进行逻辑运算;以及用于输出所述第一路数据输入端口11的输入数据或者逻辑运算得到的计算结果。
模加法单元AU2,用于根据第三路数据输入端口13的输入数据,以及第一逻辑运算单元AU1的输出数据进行模加法运算。
第一逻辑运算输出单元AU3,用于根据所述模加法单元AU2的计算结果,以及所述第二路数据输入端口12的输入数据进行逻辑运算。
相应地,基于计算模块20所重构的AU结构,数据输出端口30的结果输出端口31,具体用于输出所述模加法单元AU2的计算结果,或所述第一逻辑运算输出单元AU1的计算结果。另外,旁路输出端口32,具体用于输出所述第一路数据输入端口11、第二路数据输入端口12或第三路数据输入端口13的输入数据。
为了清楚说明前述结构,本实施例提供了一种可能的AU的具体结构,例如:计算模块20所重构的AU中,第一逻辑单元AU1具体可以对应第一异或运算单元XOR1和第一复用单元MUX1,模加法单元AU2具体可以对应模加法单元ADD32,第一逻辑运算输出单元AU3具体可以对应模式单元MOD、第一逻辑单元LBC1和第二复用单元MUX2。
若以A表示第一路数据输入端口11的输入数据,T表示第二路数据输入端口12的输入数据,B表示第三路数据输入端口13的输入数据,X表示结果输出端口31的输出数据,Y表示旁路输出端口32的输出数据。
那么,第一异或运算单元XOR1,用于对第一路数据输入端口的输入数据A和第二路数据输入端口的输入数据T,进行异或计算。
第一复用单元MUX1,用于输出第一路数据输入端口11的输入数据A或者第一异或运算单元XOR1的计算结果。
模加法单元ADD32,用于对所述第一复用单元MUX1输出的数据进行模加法运算。
模式单元MOD,用于输出所述模加法单元ADD32的计算结果,以及用于设定所述模加法单元ADD32所执行的模加法类型。
第一逻辑单元LBC1,用于对所述第二路数据输入端口12的输入数据T和所述模式单元MOD输出的计算结果进行逻辑运算。
第二复用单元MUX2,用于通过结果输出端口31,输出所述第一逻辑单元LBC1的计算结果或者所述模式单元MOD输出的计算结果。
基于此,旁路输出端口32具体用于输出所述第一路数据输入端口11、第二路数据输入端口12或第三路数据输入端口13的输入数据(即输出A、B或T)。
本发明实施例提供的AU,不是单纯的加法器,不但能完成各种模加法,而且还可以实现先逻辑后加法再逻辑的运算。这样的结构就使得AU能够完成多样化的运算,有利于数据的扩散。而且由于增加了逻辑运算的器件,相对于单纯的加法器,不需要再使用其他算子来完成逻辑运算,有效的减小了AU的设计面积,提高了运算效率。
例如:AU可选择并行4路模28加法,或者并行2路模216加法,或者1路模232加法,或者1路模232-1加法。
SU是移位器,能够实现逻辑左移、逻辑右移、循环左移、循环右移等移位运算。SU根据配置的移位信息执行移位运算,这里的移位信息包括移动的位数和移动的模式。其中,移动的模式至少包括了逻辑左移、逻辑右移、循环左移、循环右移。
具体来说,SU可以采用双桶型32比特移位器结构,单个算子可同时实现2个移位操作;2个移位操作数移位前可选择与第三个操作数进行逻辑操作。另外,算子结果可选择输出一侧桶型移位器的输出结果、或者两侧桶型移位器输出数据的异或结果、或者两侧桶型移位器输出数据以及第三个操作数的异或结果。
本实施例给出了SU一种可能实现方式,图4为本发明实施例提供的一种SU的示意图。如图4所示,计算模块20重构为SU时,包括:第一移位单元SU1、第二逻辑单元SU2、第二移位单元SU3、第三逻辑单元SU4、输出处理单元SU5和第二逻辑运算输出单元SU6。
其中,第二逻辑单元SU2,用于根据所述第一路数据输入端口11和第二路数据输入口12的输入数据进行逻辑运算。
第一移位单元SU1,用于根据第二逻辑单元SU2的计算结果进行移位计算。
第三逻辑单元SU4,用于根据所述第二路数据输入端口12和第三路数据输入口13的输入数据进行逻辑运算。
第二移位单元SU3,用于根据所述第三逻辑单元SU4的计算结果进行移位计算。
输出处理单元SU5,用于对所述第一移位单元SU1的计算结果和所述第二移位单元SU3输出的计算结果进行异或输出;或者,用于择一地输出所述第一移位单元SU1的计算结果和所述第二移位单元SU3输出的计算结果。
第二逻辑输出单元SU6,用于根据所述输出处理单元SU5输出的计算结果,以及所述第一路数据输入端口11的输入数据进行逻辑运算。
相应地,结果输出端口31,具体用于根据所述第一移位单元SU1的计算结果、所述第二移位单元SU3的计算结果和所述数据输入端口10的输入数据中的一个或多个进行输出。
旁路输出端口32,具体用于输出第一路数据输入端口11、第二路数据输入端口12或第三路数据输入端口13的输入数据,或者输出所述第一移位单元SU1、第二逻辑单元SU2、第二移位单元SU3、第三逻辑单元SU4、输出处理单元SU5和第二逻辑运算输出单元SU6的计算结果。
为了清楚说明前述结构,本实施例提供了一种可能的SU的具体结构,SU包括:对应第一移位单元SU1的第一移位单元Shift1、对应第二逻辑单元SU2的第二逻辑单元LBC2、对应第二移位单元SU3的第二移位单元Shift2、对应第三逻辑单元SU4的第三逻辑单元LBC3,以及对应输出处理单元SU5的第二异或运算单元XOR2和第三复用单元MUX3。
第二逻辑单元LBC2,用于对所述第一路数据输入端口11和第二路数据输入口的输入数据12进行逻辑运算。第一移位单元Shift1,用于对所述第二逻辑单元LBC2的计算结果进行移位计算。第三逻辑单元LBC3,用于对所述第二路数据输入端口12和第三路数据输入口13的输入数据进行逻辑运算。第二移位单元Shift2,用于对所述第三逻辑单元LBC3的计算结果进行移位计算。第二异或运算单元XOR2,用于对所述第一移位单元Shift1的计算结果和所述第二移位单元Shift2输出的计算结果进行异或运算。第三复用单元MUX3,用于输出所述第一移位单元Shift1的计算结果,或者所述第二异或运算单元XOR2的计算结果。
进一步地,SU还包括:对应第二逻辑运算输出单元SU6的第三异或运算单元XOR3和第四复用单元MUX4。第三异或运算单元XOR3,用于对所述第一路数据输入端口11的输入数据A和所述第三复用单元MUX3输出的计算结果,进行异或运算。第四复用单元MUX4,用于通过所述结果输出端口31,输出所述第三异或运算单元XOR3的计算结果,或者所述第三复用单元MUX3输出的计算结果。
基于此,旁路输出端口32,具体用于输出所述第一路数据输入端口11、第二路数据输入端口12或第三路数据输入端口13的输入数据(即输出A、B或T,或者第二移位单元Shift2的计算结果B’)。
本发明实施例提供的SU,不同于一般的移位运算单元。本实施例的SU有两组移位单元,即第一移位单元Shift1和第二移位单元Shift2。这两组移位单元可以在算子内通过第二逻辑单元LBC2和第三逻辑单元LBC3参与逻辑运算,实现了先逻辑运算后移位运算的运算方式。本发明实施例提供的SU在执行方式方面,具有了较高的灵活性,同时可以避免采用其他算子进行逻辑运算,提高了运算效率。
LU是逻辑运算器,实现了逻辑操作与、或、异或,可以配置实现三输入的任意逻辑表达式,运算的中间结果皆可以配置得到。
具体地,在一个实施例中,计算模块20重构为LU时,包括:至少两层串行连接的逻辑结构。每一层逻辑结构中包括至少一个LBC,每一个LBC可以通过对逻辑运算模式的配置,实现与、或、异或运算。
其中,在LU中的第一层逻辑结构,用于根据第一路数据输入端口、第二路数据输入端口和第三路数据输入端口的输入数据进行逻辑运算。后一层逻辑结构,用于根据前一层逻辑结构的计算结果进行逻辑运算。
本实施例给出了重构得到的LU一种可能实现方式,图5为本发明实施例提供的一种LU的示意图,如图5所示,LU包括三层逻辑结构。
第一层逻辑结构,用于对第一路数据输入端口11和第二路数据输入端口12的输入数据进行逻辑运算得到第一逻辑结果,以及对第一路数据输入端口11和第三路数据输入端口13的输入数据进行逻辑运算得到第二逻辑结果,以及对第二路数据输入端口12和第三路数据输入端口13的输入数据进行逻辑运算得到第三逻辑结果。具体来说,针对图5,第一层逻辑结构包括三个逻辑单元,分别为LBC4、LBC5和LBC6。LBC4对输入数据A、B进行逻辑运算得到第一逻辑结果,LBC5对输入数据T和A进行逻辑运算得到第二逻辑结果,LBC6对输入数据B和T进行逻辑运算得到第三逻辑结果。
第二层逻辑结构,用于对第一逻辑结果和第二逻辑结果进行逻辑运算得到第四逻辑结果,以及对第二逻辑结果和第三逻辑结果进行逻辑运算得到第五逻辑结果。具体来说,针对图5,第二层逻辑结构包括两个逻辑单元,分别为LBC7和LBC8。LBC7对第一逻辑结果和第二逻辑结果进行逻辑运算得到第四逻辑结果,LBC8对第二逻辑结果和第三逻辑结果进行逻辑运算得到第五逻辑结果。
第三层逻辑结构,用于对所述第四逻辑结果和第五逻辑结果进行逻辑运算得到所述LU的计算结果,并通过所述结果输出端口输出所述LU的计算结果。具体来说,针对图5,第三层逻辑结构包括一个逻辑单元,即LBC9,LBC9对所述第四逻辑结果和第五逻辑结果进行逻辑运算得到所述LU的计算结果,将其作为结果输出端口的输出数据X。
基于此,旁路输出端口32,具体用于输出所述第一路数据输入端口11、第二路数据输入端口12或第三路数据输入端口13的输入数据。
为了使得前述实施例提供的可重构处理器能够在正常运行,需要预先对可重构处理器中的BFU进行配置。在进行配置时,可以根据所需执行的计算任务,由可重构处理器中的配置单元对可重构处理器的基本运算单元BFU进行配置,从而使得BFU在接收到用于进行时序控制的令牌时,依据配置参数,对输入数据进行运算。
下面将对配置参数的过程进行详细介绍。本发明实施例中,控制模块通过用于配置的接口与计算模块相连,从而控制模块实现对计算模块的配置,图6为本发明实施例提供的一种配置方法的流程图,如图6所示,该配置方法包括:
步骤101,控制模块获取配置信息。
其中,所述配置信息包括用于对所述计算模块进行重构的运算功能配置信息,以及用于对所述数据输出端口进行配置的输出端口配置信息。
步骤102,控制模块根据配置信息,配置计算模块的运算功能以及数据输出端口。
具体地,控制模块的模式控制单元根据所述运算功能配置信息,配置所述计算模块中的至少一个数字逻辑单元,使所述计算模块重构为逻辑运算器LU、移位器SU或加法器AU,以对所述第一路数据输入端口、所述第二路数据输入端口和所述第三路数据输入端口的输入数据进行计算。控制模块的输出控制单元根据所述输出端口配置信息,配置所述数据输出端口中的结果输出端口和旁路输出端口的输出。
作为一种可能的实现方式,数据输入端口有三个的情况下,控制模块还可以针对每一个数据输入端口进行配置,以确定各个数据输入端口的输入数据来源。其中,这里的输入数据来源包括:数据缓存单元、其他算子的输出数据等等。
控制模块还可以配置数据输出端口中的旁路输出端口,以使所述旁路输出端口输出所述输入数据或者所述计算模块在计算过程中得到的中间结果。
需要说明的是,为了描述方便,在本发明实施例中,A表示图2中第一路数据输入端口11的输入数据,T表示第二路数据输入端口12的输入数据,B表示第三路数据输入端口13的输入数据,X表示结果输出端口31的输出数据,Y表示旁路输出端口32的输出数据。
例如:针对旁路输出端口Y,可以通过2比特的配置信息进行配置,从而使得旁路输出端口根据配置信息,选择第一路数据输入端口A、第二路数据输入端口B或第三路数据输入端口T的输入数据,或者选择中间结果B’,作为旁路输出端口的输出数据Y进行输出。
模式控制单元配置所述计算模块,以使所述计算模块根据所述运算功能配置信息,重构为所述LU、SU和AU中的至少一者进行计算。进一步地,还可以配置LU、SU和AU的内部结构。
例如:假设配置单元通过24比特的运算功能配置信息配置接口对计算模块进行配置。其中,2比特用于配置计算模块重构为所述LU、所述SU和所述AU中的至少一者进行计算,其余用于配置LU、SU或AU的内部结构。
其中,配置单元在对LU、SU和AU进行配置时,具体可以采用如下方式。
当模式控制单元选择LU进行计算时,配置单元配置LU中各层逻辑结构的逻辑单元的逻辑运算模式。这里的逻辑运算模式包括:与、或、异或。
具体来说,图5所示的LU内部包括六个逻辑单元,每个逻辑单元需要3比特来配置逻辑的模式,一共需要18比特。
例如:若需要实现输出数据X=((A|B)^~T)&(T&(B&T)),针对图5所示的LU,可以将第四逻辑单元LBC4配置成A|B,第五逻辑单元LBC5配置成~A,第六逻辑单元LBC6配置成A&B,第七逻辑单元LBC7配置成A^B,第八逻辑单元LBC8配置成~A&B,第九逻辑单元LBC9配置成A&B。
当模式控制单元选择AU进行计算时,对所述模加法单元的模加法的位数进行配置;和/或,对所述第一逻辑单元和第一逻辑运算输出单元的逻辑运算模式进行配置。
当模式控制单元选择SU进行计算时,配置单元配置SU中第一移位单元和第二移位单元的移位信息;和/或,配置第二逻辑单元和第三逻辑单元的逻辑运算模式。这里的移位信息至少包括移动的位数和移动的模式。
根据本发明实施例的配置方法,由配置单元根据所需执行的计算任务对可重构处理器的基本运算单元进行配置,可以切换基本运算单元的运算功能,而且配置参数多样化、输出数据可选择,提升了基本运算单元的灵活性和处理器的运算性能。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种可重构处理器,其特征在于,所述可重构处理器的可重构单元阵列RCA包括多个基本运算单元BFU;
其中,所述BFU包括数据输入端口、计算模块、数据输出端口以及控制模块;
所述计算模块,用于根据所述数据输入端口的输入数据进行计算,得到计算结果,其中,所述数据输入端口包括第一路数据输入端口、第二路数据输入端口和第三路数据输入端口;
所述数据输出端口,包括结果输出端口和旁路输出端口;其中,所述结果输出端口,用于输出所述计算结果;所述旁路输出端口,用于输出所述计算模块在计算过程中得到的中间结果,或者用于输出所述输入数据;
所述控制模块用于根据配置信息,配置所述计算模块的运算功能和/或数据输出端口,其中所述配置信息包括用于对所述计算模块进行重构的运算功能配置信息,以及用于对所述数据输出端口进行配置的输出端口配置信息,其中,所述控制模块包括模式控制单元和输出控制单元;
所述模式控制单元,用于根据所述运算功能配置信息,配置所述计算模块中的至少一个数字逻辑单元,使所述计算模块重构为加法器AU,以对所述第一路数据输入端口、所述第二路数据输入端口和所述第三路数据输入端口的输入数据进行计算;
所述输出控制单元,用于根据所述输出端口配置信息,配置所述结果输出端口和/或所述旁路输出端口的输出;
其中,所述计算模块重构为加法器AU时,所述计算模块包括:第一逻辑单元、模加法单元和第一逻辑运算输出单元;
所述第一逻辑单元,用于根据所述第一路数据输入端口的输入数据和所述第二路数据输入端口的输入数据进行逻辑运算,以及用于输出所述第一路数据输入端口的输入数据或者逻辑运算得到的计算结果;
所述模加法单元,用于根据所述第三路数据输入端口的输入数据,以及所述第一逻辑单元的输出数据进行模加法运算;
所述第一逻辑运算输出单元,用于根据所述模加法单元的计算结果,以及所述第二路数据输入端口的输入数据进行逻辑运算。
2.根据权利要求1所述的可重构处理器,其特征在于,
所述结果输出端口,具体用于输出所述模加法单元的计算结果,或所述第一逻辑运算输出单元的计算结果;
所述旁路输出端口,具体用输出所述第一路数据输入端口、第二路数据输入端口或第三路数据输入端口的输入数据。
3.一种可重构处理器,其特征在于,所述可重构处理器的可重构单元阵列RCA包括多个基本运算单元BFU;
其中,所述BFU包括数据输入端口、计算模块、数据输出端口以及控制模块;
所述计算模块,用于根据所述数据输入端口的输入数据进行计算,得到计算结果,其中,所述数据输入端口包括第一路数据输入端口、第二路数据输入端口和第三路数据输入端口;
所述数据输出端口,包括结果输出端口和旁路输出端口;其中,所述结果输出端口,用于输出所述计算结果;所述旁路输出端口,用于输出所述计算模块在计算过程中得到的中间结果,或者用于输出所述输入数据;
所述控制模块用于根据配置信息,配置所述计算模块的运算功能和/或数据输出端口,其中所述配置信息包括用于对所述计算模块进行重构的运算功能配置信息,以及用于对所述数据输出端口进行配置的输出端口配置信息,其中,所述控制模块包括模式控制单元和输出控制单元;
所述模式控制单元,用于根据所述运算功能配置信息,配置所述计算模块中的至少一个数字逻辑单元,使所述计算模块重构为移位器SU,以对所述第一路数据输入端口、所述第二路数据输入端口和所述第三路数据输入端口的输入数据进行计算;
所述输出控制单元,用于根据所述输出端口配置信息,配置所述结果输出端口和/或所述旁路输出端口的输出;
其中,所述计算模块重构为移位器SU时,所述计算模块包括:第一移位单元、第二逻辑单元、第二移位单元、第三逻辑单元、输出处理单元和第二逻辑运算输出单元;
所述第二逻辑单元,用于根据所述第一路数据输入端口和第二路数据输入口的输入数据进行逻辑运算;
所述第一移位单元,用于根据所述第二逻辑单元的计算结果进行移位计算;
所述第三逻辑单元,用于根据所述第二路数据输入端口和第三路数据输入口的输入数据进行逻辑运算;
所述第二移位单元,用于根据所述第三逻辑单元的计算结果进行移位计算;
所述输出处理单元,用于对所述第一移位单元的计算结果和所述第二移位单元输出的计算结果进行异或输出;或者,用于择一地输出所述第一移位单元的计算结果和所述第二移位单元输出的计算结果;
所述第二逻辑运算输出单元,用于根据所述输出处理单元输出的计算结果,以及所述第一路数据输入端口的输入数据进行逻辑运算。
4.根据权利要求3所述的可重构处理器,其特征在于,
所述结果输出端口,具体用于根据所述第一移位单元的计算结果、所述第二移位单元的计算结果和所述数据输入端口的输入数据中的至少一个进行输出;
所述旁路输出端口,具体用于输出所述第一路数据输入端口、第二路数据输入端口或第三路数据输入端口的输入数据,或者输出所述第一移位单元、第二逻辑单元、第二移位单元、第三逻辑单元、输出处理单元和第二逻辑运算输出单元的计算结果。
5.一种可重构处理器,其特征在于,所述可重构处理器的可重构单元阵列RCA包括多个基本运算单元BFU;
其中,所述BFU包括数据输入端口、计算模块、数据输出端口以及控制模块;
所述计算模块,用于根据所述数据输入端口的输入数据进行计算,得到计算结果,其中,所述数据输入端口包括第一路数据输入端口、第二路数据输入端口和第三路数据输入端口;
所述数据输出端口,包括结果输出端口和旁路输出端口;其中,所述结果输出端口,用于输出所述计算结果;所述旁路输出端口,用于输出所述计算模块在计算过程中得到的中间结果,或者用于输出所述输入数据;
所述控制模块用于根据配置信息,配置所述计算模块的运算功能和/或数据输出端口,其中所述配置信息包括用于对所述计算模块进行重构的运算功能配置信息,以及用于对所述数据输出端口进行配置的输出端口配置信息,其中,所述控制模块包括模式控制单元和输出控制单元;
所述模式控制单元,用于根据所述运算功能配置信息,配置所述计算模块中的至少一个数字逻辑单元,使所述计算模块重构为逻辑运算器LU,以对所述第一路数据输入端口、所述第二路数据输入端口和所述第三路数据输入端口的输入数据进行计算;
所述输出控制单元,用于根据所述输出端口配置信息,配置所述结果输出端口和/或所述旁路输出端口的输出;
其中,所述计算模块重构为逻辑运算器LU时,所述计算模块包括至少两层串行连接的逻辑结构;
第一层逻辑结构,用于根据第一路数据输入端口、第二路数据输入端口和第三路数据输入端口的输入数据进行逻辑运算;
后一层逻辑结构,用于根据前一层逻辑结构的计算结果进行逻辑运算。
6.根据权利要求5所述的可重构处理器,其特征在于,所述计算模块包括三层逻辑结构,第一层逻辑结构包括第一逻辑单元、第二逻辑单元和第三逻辑单元,第二层逻辑结构包括第四逻辑单元和第五逻辑单元,第三层逻辑结构包括第六逻辑单元;
第一逻辑单元,用于对第一路数据输入端口和第二路数据输入端口的输入数据进行逻辑运算得到第一逻辑结果,以及第二逻辑单元,用于对第一路数据输入端口和第三路数据输入端口的输入数据进行逻辑运算得到第二逻辑结果,以及第三逻辑单元,用于对第二路数据输入端口和第三路数据输入端口的输入数据进行逻辑运算得到第三逻辑结果;
第四逻辑单元,用于对第一逻辑结果和第二逻辑结果进行逻辑运算得到第四逻辑结果,以及第五逻辑单元,用于对第二逻辑结果和第三逻辑结果进行逻辑运算得到第五逻辑结果;
第六逻辑单元,用于对所述第四逻辑结果和第五逻辑结果进行逻辑运算得到所述LU的计算结果,并通过所述结果输出端口输出所述LU的计算结果。
7.根据权利要求5所述的可重构处理器,其特征在于,
所述旁路输出端口,具体用于输出所述第一路数据输入端口、第二路数据输入端口或第三路数据输入端口的输入数据。
8.一种可重构处理器的配置方法,其特征在于,用于对权利要求1-7任一项所述的可重构处理器的基本运算单元BFU进行配置;所述BFU包括控制模块、计算模块、数据输入端口和数据输出端口;
所述控制模块获取配置信息,其中所述配置信息包括用于对所述计算模块进行重构的运算功能配置信息,以及用于对所述数据输出端口进行配置的输出端口配置信息;
所述控制模块根据所述配置信息,配置所述计算模块的运算功能以及数据输出端口;其中,所述控制模块的模式控制单元根据所述运算功能配置信息,配置所述计算模块中的至少一个数字逻辑单元,使所述计算模块重构为逻辑运算器LU、移位器SU或加法器AU,以对第一路数据输入端口、第二路数据输入端口和第三路数据输入端口的输入数据进行计算。
9.根据权利要求8所述的可重构处理器的配置方法,其特征在于,所述控制模块根据配置信息,配置数据输出端口,包括:
所述控制模块的输出控制单元,根据所述输出端口配置信息,配置所述数据输出端口中的结果输出端口和旁路输出端口的输出。
10.根据权利要求9所述的可重构处理器的配置方法,其特征在于,所述配置旁路输出端口的输出,包括:
所述控制模块的输出控制单元配置所述数据输出端口中的旁路输出端口,以使所述旁路输出端口输出所述输入数据或者所述计算模块在计算过程中得到的中间结果。
CN201710312282.2A 2017-05-05 2017-05-05 可重构处理器及其配置方法 Active CN108804379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710312282.2A CN108804379B (zh) 2017-05-05 2017-05-05 可重构处理器及其配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710312282.2A CN108804379B (zh) 2017-05-05 2017-05-05 可重构处理器及其配置方法

Publications (2)

Publication Number Publication Date
CN108804379A CN108804379A (zh) 2018-11-13
CN108804379B true CN108804379B (zh) 2020-07-28

Family

ID=64053750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710312282.2A Active CN108804379B (zh) 2017-05-05 2017-05-05 可重构处理器及其配置方法

Country Status (1)

Country Link
CN (1) CN108804379B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262996B (zh) * 2019-05-15 2023-11-24 青岛海阔天高信息技术有限公司 一种基于高性能可重构计算的超级计算机
CN112379868B (zh) * 2020-11-12 2021-06-18 无锡沐创集成电路设计有限公司 基于可重构芯片的网络数据包处理的编程方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011082690A1 (en) * 2010-01-08 2011-07-14 Shanghai Xin Hao Micro Electronics Co. Ltd. Reconfigurable processing system and method
CN102541809A (zh) * 2011-12-08 2012-07-04 清华大学 一种动态可重构处理器
CN105634567A (zh) * 2015-12-21 2016-06-01 东南大学—无锡集成电路技术研究所 一种面向mimo检测系统的可重构计算单元微结构及配置机制

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011082690A1 (en) * 2010-01-08 2011-07-14 Shanghai Xin Hao Micro Electronics Co. Ltd. Reconfigurable processing system and method
CN102541809A (zh) * 2011-12-08 2012-07-04 清华大学 一种动态可重构处理器
CN105634567A (zh) * 2015-12-21 2016-06-01 东南大学—无锡集成电路技术研究所 一种面向mimo检测系统的可重构计算单元微结构及配置机制

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
An Energy-Efficient Coarse-Grained Reconfigurable Processing Unit for Multiple-Standard Video Decoding;Leibo Liu,等;《IEEE TRANSACTIONS ON MULTIMEDIA》;20151031;第17卷(第10期);第1706-1720页 *
Dynamic context management for low power coarse-grained reconfigurable architecture;Yoonjin Kim,等;《GLSVLSI 09 Proceedings of the 19th ACM Great Lakes symposium on VLSI》;20090512;第33-38页 *
嵌入式粗颗粒度可重构处理器的软硬件协同设计流程;于苏东,等;《电子学报》;20090531;第37卷(第5期);第1136-1140页第2节 *

Also Published As

Publication number Publication date
CN108804379A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
US10417004B2 (en) Pipelined cascaded digital signal processing structures and methods
JP5866128B2 (ja) 算術プロセッサ
TWI343541B (en) Digital signal processors with configurable dual-mac and dual-alu
US20090300336A1 (en) Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US20070083733A1 (en) Reconfigurable circuit and control method therefor
CN108804379B (zh) 可重构处理器及其配置方法
CN105335331A (zh) 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
CN106294278B (zh) 用于动态可重构阵列计算系统的自适硬件预配置控制器
US20040252829A1 (en) Montgomery modular multiplier and method thereof using carry save addition
CN109993272B (zh) 卷积及降采样运算单元、神经网络运算单元和现场可编程门阵列集成电路
US9727526B2 (en) Apparatus and method of vector unit sharing
US7958179B2 (en) Arithmetic method and device of reconfigurable processor
WO2016205155A1 (en) Mixed-radix carry-lookahead adder architecture
JP4255475B2 (ja) データ駆動型情報処理装置
CN111381882B (zh) 数据处理装置及相关产品
CN101923459A (zh) 一种用于数字信号处理的可重构乘加算数运算单元
US20060105802A1 (en) Communication system with reconfigurable hardware structure and reconfiguration method therefor
US9164728B1 (en) Ternary DSP block
US20040199558A1 (en) DSP execution unit for efficient alternate modes of operation
EP1674986A1 (en) Data processing device
CN112380799B (zh) 基于siou的微总线型dsp电路架构
CN109947391A (zh) 一种数据处理方法和装置
CN117112033B (zh) 随机指令生成方法、装置、设备以及存储介质
CN109992255B (zh) 具有进位链结构的双输出查找表及可编程逻辑单元
CN110598172B (zh) 一种基于csa加法器的卷积运算方法和电路

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