CN102541809B - 一种动态可重构处理器 - Google Patents

一种动态可重构处理器 Download PDF

Info

Publication number
CN102541809B
CN102541809B CN201110407463.6A CN201110407463A CN102541809B CN 102541809 B CN102541809 B CN 102541809B CN 201110407463 A CN201110407463 A CN 201110407463A CN 102541809 B CN102541809 B CN 102541809B
Authority
CN
China
Prior art keywords
data
routing unit
reconfigurable
calculates
input
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
CN201110407463.6A
Other languages
English (en)
Other versions
CN102541809A (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 CN201110407463.6A priority Critical patent/CN102541809B/zh
Publication of CN102541809A publication Critical patent/CN102541809A/zh
Application granted granted Critical
Publication of CN102541809B publication Critical patent/CN102541809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Logic Circuits (AREA)

Abstract

本申请提供了一种动态可重构处理器,包括:输入缓存器,用于缓存外部数据,将数据输出至第一计算路由单元;第一计算路由单元,用于接收输入缓存器的数据,并对数据进行运算处理,将运算结果数据输出至可重构阵列;可重构阵列,用于对输入数据进行运算操作,将运算结果数据输出至第三计算路由单元,所述可重构阵列包括:多个可重构单元,用于完成对输入数据的运算操作;多个第二计算路由单元,用于完成可重构单元间的数据连接,并对数据进行运算处理;所述处理器还包括:第三计算路由单元,用于接收可重构阵列的输出数据,对数据进行运算处理;输出缓存器,用于接收第三计算路由单元输出的结果数据,并将数据输出至外部装置。

Description

一种动态可重构处理器
技术领域
本申请涉及嵌入式系统技术领域,特别是涉及一种动态可重构处理器。
背景技术
动态可重构处理器是一种新生的处理器构架,其较之传统的单核处理器、专用芯片、现场可编程逻辑阵列有着显著的优势,是未来电路结构发展的一个方向。
首先,动态可重构处理器内往往含有多个算术逻辑单元,且数量巨大,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算术逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。
其次,较传统的静态可重构电路——现场可编程逻辑阵列而言,动态可重构处理器有动态的特点,即在电路运行过程中可动态的切换电路的功能,而非以往静态可重构电路一成不变的不改变电路功能,只是在电路运行之前烧写电路功能,对电路进行初始化。这样做的好处在于通过时分复用的方式减少了电路的规模,原因在于之前的电路结构的全映射现在变为分块映射,而块与块之间恰好采取了动态切换的方式。
图1中为传统的动态可重构处理器结构示意图,其中,可重构阵列内的可重构单元用于完成数据的算术逻辑运算,路由单元主要负责完成可重构单元间的数据连接。
在传统的动态可重构处理器内对于数据的运算全部由可重构单元执行,但是可重构阵列中不同的可重构单元计算通路的延时不一致,部分由与、或、非组成的简单组合逻辑、移位等简单的运算等,计算通路的延时很短,无需占用一个节拍,因此,通过可重构单元执行这些简单运算就会造成可重构单元的浪费,降低可重构阵列的工作效率;其次,对于消耗节拍数较长的矩阵转置和数据拼接等数据处理操作,需要映射在可重构单元上进行运算,这种运算占用大量的可重构单元,但是对阵列的使用效率相对较低,同样会造成可重构单元的浪费。
发明内容
本申请所要解决的技术问题是提供一种动态可重构处理器,采用可配置的计算路由单元用于单元之间的互联,提高可重构处理器的工作效率。
为了解决上述问题,本申请公开了一种动态可重构处理器,包括:
输入缓存器,用于缓存外部数据,将数据输出至第一计算路由单元;
第一计算路由单元,用于接收输入缓存器的数据,并对数据进行运算处理,将运算结果数据输出至可重构阵列;
可重构阵列,用于对输入数据进行运算操作,将运算结果数据输出至第三计算路由单元,所述可重构阵列包括:
多个可重构单元,用于完成对输入数据的运算操作;
多个第二计算路由单元,用于完成可重构单元间的数据连接,并对数据进行运算处理;
第三计算路由单元,用于接收可重构阵列的输出数据,对数据进行运算处理;
输出缓存器,用于接收第三计算路由单元输出的结果数据,并将数据输出至外部装置。
优选的,所述可重构单元按m行×n列的形式排列,每个第二计算路由单元对应一行可重构单元,其中,m和n为自然数。
优选的,所述可重构单元的输入数据来自第一计算路由单元,或者来自上一行可重构单元的运算结果,或者来自上一行的第二计算路由单元。
优选的,所述第一计算路由单元对数据进行的运算处理包括数据拼接和/或矩阵转置;
所述第三计算路由单元对数据进行的运算处理包括数据拼接和/或矩阵转置。
优选的,所述第二计算路由单元对数据进行的运算处理包括逻辑运算和/或位运算。
优选的,所述处理器还包括:
常数寄存器,用于存储可重构阵列进行运算所需的常数,将所述常数输出至第一计算路由单元。
优选的,所述可重构单元包括:
运算单元,用于对数据进行算术或者逻辑运算;
暂存单元,用于将数据寄存一拍,待需要时输出。
优选的,所述运算单元包括:
输入选择器,用于选择当前运算所需要的操作数;
算术逻辑单元,用于执行所述操作数的算术或者逻辑运算;
输出寄存器,用于寄存当前运算的计算结果。
与现有技术相比,本申请包括以下优点:
首先,本申请将传统的动态可重构处理器中可重构阵列内的路由单元设计成计算路由单元,采用可配置的计算路由单元用于可重构单元之间的互联。计算路由单元的配置信息中不仅包含路由单元上下两行可重构单元中,上一行每个可重构单元的输出与下一行每个可重构单元的输入的互联关系,还包含配置计算路由单元中简单运算形式的信息,实现了将计算和互联相结合。在可重构阵列内部,数据通过计算路由单元传输的过程中,计算路由单元可以对数据进行简单的运算处理,比如由与、或、非组成的简单组合逻辑以及移位等简单的位运算。这些简单运算处理时间比较短,无需占用一个节拍,利用计算路由单元进行运算处理避免了可重构单元的浪费,提高了可重构阵列的运算效率。
其次,在可重构阵列外部增加计算路由单元,数据经由可重构阵列外的计算路由单元传输至可重构阵列中或者输出至输出缓存器中时,可以通过配置计算路由单元实现对外部数据的处理,例如消耗节拍数较长的数据拼接、矩阵转置等操作,这样避免了这些操作占用大量可重构单元而降低运算效率。
附图说明
图1是传统的动态可重构处理器的结构示意图;
图2是本申请提出的一种动态可重构处理器的结构示意图;
图3是本申请动态可重构处理器中可重构单元的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图2,示出了本申请一种动态可重构处理器的结构示意图,包括:
输入缓存器,用于缓存外部数据,将数据输出至第一计算路由单元;
常数寄存器,用于存储可重构阵列进行运算所需的常数,将所述常数输出至第一计算路由单元;
第一计算路由单元,用于接收输入缓存器的数据,并对数据进行运算处理,将运算结果数据输出至可重构阵列;
对于一些消耗节拍数较长的矩阵转置和数据拼接等数据处理操作,如果映射在可重构单元中进行处理,则需要占用大量的可重构单元,但是这些数据处理操作实质上是大量的简单运算组成,数据处理时间比较短,因此对可重构单元的利用效率相对较低。
本申请在输入缓存器、常数寄存器和可重构阵列之间增加了第一计算路由单元。采用此互联结构后,输入可重构阵列的外部数据需要经过第一计算路由单元进入可重构阵列,可以通过配置该计算路由单元实现对外部数据的运算处理,这些运算处理包括数据拼接或者矩阵转置操作,也可以同时包括数据拼接和矩阵转置两种操作。这样在数据传输的过程中完成这些数据处理操作,避免了占用大量可重构单元而造成的资源浪费。
可重构阵列,用于对输入数据进行运算操作,将运算结果数据输出至第三计算路由单元,所述可重构阵列包括:
多个可重构单元,用于完成对输入数据的运算操作;可重构单元的输入数据可以来自第一计算路由单元,或者来自上一行可重构单元的运算结果,或者来自上一行的第二计算路由单元。
参照图3,示出了本申请动态可重构处理器中可重构单元的结构示意图,每个可重构单元包括一个运算单元和一个暂存单元。运算单元可以在一个节拍内完成算术或者逻辑运算,暂存单元只是单纯的将输入数据寄存一个节拍,待需要时将数据输出。
(1)运算单元
每个运算单元包括2个输入选择器、1个算术逻辑单元和1个输出寄存器。
每个输入选择器为运算单元选择当前运算所需要的一个操作数。操作数可以来自第一计算路由单元,也可以来自上一行运算单元的输出寄存器或者上一行的暂存单元。
算术逻辑单元,用于执行所述操作数的算术或者逻辑运算;
输出寄存器用于寄存当前运算的计算结果,计算结果可以作为下一行可重构单元的输入,也可以输出到输出缓存器进行缓存。
(2)暂存单元
暂存单元用于将输入数据寄存一拍,然后输出。它的输入可以来自第一计算路由单元,也可以来自上一行运算单元的输出寄存器或者上一行的暂存单元。它的输出可以作为下一行可重构单元的输入,也可以输出到输出缓存器进行缓存。
可重构阵列中还包括多个第二计算路由单元,用于完成可重构单元间的数据连接,并对数据进行运算处理;
所述可重构单元按m行×n列的形式排列,每个第二计算路由单元对应一行可重构单元,其中,m和n为自然数。
对于一些简单运算,其计算通路的延时很短,无需占用一个节拍。对于这些运算,可以通过配置第二计算路由单元,在数据传输的过程中完成对数据的运算处理,这些运算处理包括由与、或、非组成的逻辑运算或者移位等简单的位运算,也可以同时包括逻辑运算和位运算两种操作。
第二计算路由单元可以将来自第一计算路由单元的数据、或者来自上一行暂存单元的数据、或者来自上一行运算单元的输出寄存器的数据按照配置信息进行运算处理,并分配给指定的可重构单元,可重构单元将接收到的数据传递到输入选择器或者暂存单元。
在可重构阵列内,每一行的任意一个可重构单元都可以通过上一行的第二计算路由单元接收上一行任意一个可重构单元的输出结果(包括运算结果和暂存数据);第一行的任意一个可重构单元都可以接收最后一行任意一个可重构单元的输出结果(包括运算结果和暂存数据)。
本申请还在可重构阵列和输出缓存器之间增加了第三计算路由单元,用于接收可重构阵列的输出数据,对数据进行运算处理。
第三计算路由单元和第一计算路由单元的功能相似,对于一些消耗节拍数较长的操作,不需要在可重构单元中进行处理,将其放到第三计算路由单元进行运算处理,然后将运算结果输出至输出缓存器即可。这些运算处理包括数据拼接或者矩阵转置操作,也可以同时包括数据拼接和矩阵转置两种操作。
输出缓存器,用于接收第三计算路由单元输出的结果数据,并将数据输出至外部装置。
当然,在动态可重构处理器中还包括许多其他单元,如外部数据读入装置、外部数据写出装置等,本申请在这里不再详细介绍。
动态可重构处理器中,可重构阵列如何运转是由配置信息决定的,可重构阵列的配置信息包括两部分内容:多个可重构单元的配置信息和多个第二计算路由单元的配置信息。
可重构单元的配置信息包括:输入选择器A的配置信息、输入选择器B的配置信息、算术逻辑单元的配置信息、输出寄存器的配置信息和暂存单元的配置信息。
(a)输入选择器A的配置信息包括:
i)是否接收操作数A;
ii)操作数A的来源;
iii)操作数A的地址。
(b)输入选择器B的配置信息包括:
i)是否接收操作数B;
ii)操作数B的来源;
iii)操作数B的地址。
(c)算术逻辑单元的配置信息包括:
算术逻辑单元所要执行的操作类型,可以是算术运算,也可以是逻辑运算。
(d)输出寄存器的配置信息包括:
i)是否有计算结果输出到输出缓存器;
ii)计算结果输出到输出缓存器的具体地址。
(e)暂存单元的配置信息包括:
输入方面:
i)是否接收数据输入;
ii)输入数据的来源;
iii)输入数据的地址。
输出方面:
i)是否有数据输出到输出缓存器;
ii)数据输出到输出缓存器的具体地址;
iii)路由单元的配置信息。
第二计算路由单元的配置信息包括:
路由单元上下两行可重构单元中,上一行每个可重构单元的输出与下一行每个可重构单元的输入的互联关系;
每个第二计算路由单元中所需进行的运算的形式,包括由与、或、非组成的简单组合逻辑运算以及移位等简单的位运算。
同样,对于第一计算路由单元和第三计算路由单元来说,也是通过配置信息进行运转的。其配置信息包括第一计算路由单元和第三计算路由单元中所需进行的运算形式,包括数据拼接、矩阵转置等操作。
下面,通过一个具体的处理实例对本申请进行详细介绍。
可重构处理器需要对输入缓存器中的一块4行×4列的2d数据读出,并将其第1、2行数据拼接成一行,第3、4行数据拼接成一行,并对这两行数据进行求和,将结果存储在输出缓存器中。
若使用传统的可重构处理器,需要分4步进行操作:
S1,输入缓存器将数据输出至可重构阵列;
S2,配置可重构阵列,将读入的2d数据在动态可重构阵列中处理拼接;
S3,再次配置可重构阵列,对处理后的2d数据进行求和;
S4,从动态可重构阵列中将拼接处理后的数据传输到输出缓存器进行保存。
若使用本发明的动态可重构处理器的互联结构,待处理2d数据通过第一计算路由单元传入动态可重构阵列,由于计算路由单元可以在数据传输的过程中完成数据拼接处理,通过配置计算路由单元,即可一步实现单2d数据拼接操作。因此,对数据的处理过程为:
S1,配置第一计算路由单元,输入缓存器将数据输出至第一计算路由单元,由第一计算路由单元在数据传输的过程中完成数据拼接处理;
S2,配置可重构阵列,将读入拼接处理后的数据在动态可重构阵列中进行求和;
S3,从动态可重构阵列中将拼接处理后的数据经第三计算路由单元传输到输出缓存器进行保存。
可见,利用计算路由单元可以在数据进入可重构阵列之前完成对数据的拼接处理,而不用再占用可重构单元,提高了运算效率。
同样,对于第二计算路由单元和第三计算路由单元来说,也具有相似的效果,本申请在这里不再详细论述。
以上对本申请所提供的一种动态可重构处理器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (5)

1.一种动态可重构处理器,其特征在于,包括:
输入缓存器,用于缓存外部数据,将数据输出至第一计算路由单元;
第一计算路由单元,用于接收输入缓存器的数据,并对数据进行运算处理,将运算结果数据输出至可重构阵列;所述第一计算路由单元对数据进行的运算处理包括数据拼接和/或矩阵转置;可重构阵列,用于对输入数据进行运算操作,将运算结果数据输出至第三计算路由单元,所述可重构阵列包括:
多个可重构单元,用于完成对输入数据的运算操作;
多个第二计算路由单元,用于完成可重构单元间的数据连接,并对数据进行运算处理;所述第二计算路由单元对数据进行的运算处理包括逻辑运算和/或位运算;
所述可重构单元按m行×n列的形式排列,每个第二计算路由单元对应一行可重构单元,其中,m和n为自然数;
第三计算路由单元,用于接收可重构阵列的输出数据,对数据进行运算处理;所述第三计算路由单元对数据进行的运算处理包括数据拼接和/或矩阵转置;
输出缓存器,用于接收第三计算路由单元输出的结果数据,并将数据输出至外部装置。
2.根据权利要求1所述的处理器,其特征在于,所述可重构单元的输入数据来自第一计算路由单元,或者来自上一行可重构单元的运算结果,或者来自上一行的第二计算路由单元。
3.根据权利要求1所述的处理器,其特征在于,还包括:
常数寄存器,用于存储可重构阵列进行运算所需的常数,将所述常数输出至第一计算路由单元。
4.根据权利要求1所述的处理器,其特征在于,所述可重构单元包括:
运算单元,用于对数据进行算术或者逻辑运算;
暂存单元,用于将数据寄存一拍,待需要时输出。
5.根据权利要求4所述的处理器,其特征在于,所述运算单元包括:
输入选择器,用于选择当前运算所需要的操作数;
算术逻辑单元,用于执行所述操作数的算术或者逻辑运算;
输出寄存器,用于寄存当前运算的计算结果。
CN201110407463.6A 2011-12-08 2011-12-08 一种动态可重构处理器 Active CN102541809B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110407463.6A CN102541809B (zh) 2011-12-08 2011-12-08 一种动态可重构处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110407463.6A CN102541809B (zh) 2011-12-08 2011-12-08 一种动态可重构处理器

Publications (2)

Publication Number Publication Date
CN102541809A CN102541809A (zh) 2012-07-04
CN102541809B true CN102541809B (zh) 2015-03-04

Family

ID=46348736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110407463.6A Active CN102541809B (zh) 2011-12-08 2011-12-08 一种动态可重构处理器

Country Status (1)

Country Link
CN (1) CN102541809B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311017B2 (en) 2017-03-17 2019-06-04 Tsinghua University Reconfigurable processor and timing control method thereof

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207852B (zh) * 2013-04-03 2016-03-02 北京华清瑞达科技有限公司 多总线嵌入式处理装置
CN103178831B (zh) * 2013-04-03 2016-06-01 清华大学 降低可重构阵列结构功耗的方法和低功耗可重构阵列结构
CN103490854B (zh) * 2013-09-03 2017-08-29 华为技术有限公司 一种训练窗添加方法及芯片
CN103810142B (zh) * 2014-03-06 2017-04-12 中国人民解放军信息工程大学 可重构系统及其构建方法
CN104063356B (zh) * 2014-07-02 2017-02-15 东南大学 一种面向雷达应用动态可重构处理阵列扩展的方法
CN105447414B (zh) * 2015-10-21 2018-06-19 清华大学无锡应用技术研究院 可重构密码处理器
CN105718421B (zh) * 2016-01-25 2019-03-01 东南大学 一种面向多个粗粒度动态可重构阵列的数据缓存更新系统
CN106951394A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用fft处理器
CN108804379B (zh) * 2017-05-05 2020-07-28 清华大学 可重构处理器及其配置方法
CN107241603A (zh) * 2017-07-27 2017-10-10 许文远 一种多媒体编解码处理器
CN108537331A (zh) * 2018-04-04 2018-09-14 清华大学 一种基于异步逻辑的可重构卷积神经网络加速电路
CN110096474A (zh) * 2019-04-28 2019-08-06 北京超维度计算科技有限公司 一种基于可重构计算的高性能弹性计算架构及方法
CN110059038A (zh) * 2019-04-28 2019-07-26 北京超维度计算科技有限公司 一种基于可重构计算的高性能弹性连接架构及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214158A (zh) * 2011-06-08 2011-10-12 清华大学 一种全互联路由结构动态可重构处理器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214158A (zh) * 2011-06-08 2011-10-12 清华大学 一种全互联路由结构动态可重构处理器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
于苏东 等."基于循环映射的可重构处理器设计".《北京邮电大学学报》.2009,第32卷(第4期),10-14. *
于苏东 等."循环在可重构处理器上的软硬件划分技术".《电视技术》.2009,第33卷(第10期),21-23,40. *
于苏东 等."流水线配置技术在可重构处理器中的应用".《计算机工程》.2010,第36卷(第8期),227-229,232页. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311017B2 (en) 2017-03-17 2019-06-04 Tsinghua University Reconfigurable processor and timing control method thereof

Also Published As

Publication number Publication date
CN102541809A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102541809B (zh) 一种动态可重构处理器
CN109997132B (zh) 低时延矩阵乘法部件
EP3005139B1 (en) Incorporating a spatial array into one or more programmable processor cores
CN101782893B (zh) 可重构数据处理平台
CN111433758B (zh) 可编程运算与控制芯片、设计方法及其装置
CN111542826A (zh) 支持模拟协处理器的数字架构
KR20190117714A (ko) 하드웨어에서 매트릭스 곱셈을 수행
US9588773B2 (en) Software based application specific integrated circuit
CN102306141B (zh) 一种描述动态可重构阵列配置信息的方法
US20090300336A1 (en) Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US7162617B2 (en) Data processor with changeable architecture
CN113811859A (zh) 控制流屏障以及可重构数据处理器
CN102541749B (zh) 多粒度并行存储系统
EP1955176A2 (en) Vliw acceleration system using multi-state logic
CN102567279B (zh) 一种动态可重构阵列时序配置信息的生成方法
KR20220041226A (ko) 시스템 온 칩과 가속기 칩을 연결하는 메모리 칩
CN102262611B (zh) 一种16位的risc cpu系统结构
CN100444107C (zh) 优化的处理器和指令对准
CN113468102A (zh) 混合粒度的计算电路模块和计算系统
KR20060110362A (ko) 프로그래머블 논리 회로
CN104750659A (zh) 一种基于自动布线互连网络的粗粒度可重构阵列电路
JP2006011825A (ja) 再構成可能演算装置および半導体装置
CN102200961B (zh) 一种动态可重构处理器内子单元的扩展方法
CN102253920A (zh) 一种全互联路由结构动态可重构数据处理方法及处理器
CN112433760B (zh) 数据排序方法和数据排序电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant