CN107423256B - 可重构处理器及可重构处理器的时序控制方法 - Google Patents
可重构处理器及可重构处理器的时序控制方法 Download PDFInfo
- Publication number
- CN107423256B CN107423256B CN201710161517.2A CN201710161517A CN107423256B CN 107423256 B CN107423256 B CN 107423256B CN 201710161517 A CN201710161517 A CN 201710161517A CN 107423256 B CN107423256 B CN 107423256B
- Authority
- CN
- China
- Prior art keywords
- rca
- timing control
- control information
- processor
- rcm
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7892—Reconfigurable logic embedded in CPU, e.g. reconfigurable unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Signal Processing (AREA)
- Logic Circuits (AREA)
Abstract
本发明提出一种可重构处理器及可重构处理器的时序控制方法。该可重构处理器包括可重构单元阵列RCA和控制单元,RCA包括多个可重构单元RC;控制单元,用于生成并向RCA发送时序控制信息;RCA,用于根据时序控制信息执行运算任务,RCA中的RC接收到时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序,在RCA内将时序控制信息传递至下一级RC;当RCA完成时序控制信息对应的运算任务时,销毁时序控制信息,运算任务包括接收到时序控制信息的各级RC所执行的运算。本发明实施例提高了RCA的运算效率,进而优化了处理器的性能。
Description
技术领域
本发明涉及微电子技术领域,尤其涉及一种可重构处理器及可重构处理器的时序控制方法。
背景技术
密码处理器芯片是一种常用的密码处理装置,主要用于对数据采用加密算法进行加密。密码处理器芯片从体系结构和设计方法上来说主要可分为两大类。第一大类是基于专用集成电路(Application Specific Integrated Circuit,ASIC),第二类是基于指令集结构微处理器(Instruction Set Architecture Processor,ISAP)。其中,ASIC方式往往会针对算法做出优化,故而运算速度远超ISAP方式,但ASIC方式在设计完成后,硬件结构不能改变,无法满足密码这种应用场景对灵活性的要求,一旦若被破解只能废弃。而ISAP实现方式的密码处理器最大的优势在功能灵活性上,灵活性的取得往往是以牺牲能量效率为代价的,即此类处理器很难克服能量效率不高的重要缺陷。
为了平衡灵活性和能量效率,在ASIC和ISAP的基础上,又出现了可重构处理器,可重构处理器能够在ASIC和ISAP这两种处理器之间取得一定的平衡,从而实现面向应用的最优折衷方案。
具体来说,在现有技术中的可重构处理器中,每个可重构单元(ReconfigurableCell,RC)连在路由单元上,由路由单元来控制RC的输入输出。RC可以配置成与相邻RC连接在一起交互数据,也可以通过先入先出寄存器(First In First Out,FIFO)直接与外界通信,或者直接连到阵列缓存进行存储。
现有技术中的可重构处理器为了提高处理器的性能,往往会通过流水线技术进行加速设计,可以用较少的硬件资源提高数据处理速度。但由于采用了流水线技术使得可重构处理器只能工作在同步时序下,这就使得可重构处理器不能发挥到最优性能,同时增加了处理被物理攻击的可能性。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种可重构处理器,以实现保证灵活性的同时,能够在一定程度上优化处理器的性能。
本发明的第二个目的在于提出一种可重构处理器的时序控制方法。
为达上述目的,本发明第一方面实施例提出了一种可重构处理器,所述可重构处理器包括可重构单元阵列RCA和控制单元,所述RCA包括多个可重构单元RC;
所述控制单元,用于生成并向所述RCA发送时序控制信息;
所述RCA,用于根据所述时序控制信息执行运算任务,所述RCA中的RC接收到所述时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序,在所述RCA内将所述时序控制信息传递至下一级RC;当所述RCA完成所述时序控制信息对应的运算任务时,销毁所述时序控制信息;所述运算任务包括接收到所述时序控制信息的各级RC所执行的运算。
根据本发明实施例的可重构处理器,在RCA所包含的各个RC之间传递时序控制信息,使各个RC根据时序控制信息执行异步的运算。相对于同步时序的运算来说,增强了RC运算的灵活性,提高了RCA的运算效率,进而优化了处理器的性能。
为达上述目的,本发明第二方面实施例提出了一种可重构处理器的时序控制方法,所述可重构处理器包括可重构单元阵列RCA和控制单元,所述RCA包括多个可重构单元RC,所述时序控制方法包括:
所述控制单元生成并向所述RCA发送时序控制信息;
所述RCA中的RC接收到所述时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序,在所述RCA内将所述时序控制信息传递至下一级RC;
当所述RCA完成所述时序控制信息对应的运算任务时,销毁所述时序控制信息,所述运算任务包括接收到所述时序控制信息的各级RC所执行的运算。
根据本发明实施例的可重构处理器的时序控制方法,在RCA所包含的各个RC之间传递时序控制信息,使各个RC根据时序控制信息执行异步的运算。相对于同步时序的运算来说,增强了RC运算的灵活性,提高了RCA的运算效率,进而优化了处理器的性能。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种可重构处理器的结构示意图;
图2为本发明实施例提供的另一种可重构处理器的结构示意图;
图3为本发明实施例提供的一种可重构处理器的时序控制方法的流程示意图;
图4为本发明实施例提供的另一种可重构处理器的时序控制方法的流程示意图;以及
图5为令牌传递的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的基于可重构处理器及可重构处理器的时序控制方法。
本发明实施例提供了一种可重构处理器(Reconfigurable Processing Unit,RPU)。图1为本发明实施例所提供的一种可重构处理器的结构示意图。如图1所示,可重构处理器包括:可重构单元阵列10(Reconfigurable Cell Array,RCA)和控制单元20。其中,RCA10包括多个RC。
具体来说,控制单元20,用于生成并向RCA 10发送时序控制信息。RCA 10,用于根据时序控制信息执行运算任务。RCA 10中的RC接收到时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序,在RCA 10内将时序控制信息传递至下一级RC。当RCA 10完成时序控制信息对应的运算任务时,销毁时序控制信息。
需要说明的是,运算任务包括接收到同一时序控制信息的各级RC所执行的运算。在一个运算任务中,各个RC所执行的运算之间是异步的,异步执行的各运算共同构成了一个运算进程。
作为一种可能的实现方式,预设顺序包括:所述时序控制信息在所述RCA中从上一级RC传递到下一级RC,或者在同一级RC之间任意传递。
这里的每一级RC包括至少一个RC,或者包括至少一行RC,或者包括由至少一个RC构成的子阵列。
由于预设顺序以及各级RC的构成均具有一定的灵活性,因此,能够给RCA带来一定程度的灵活性,有助于优化处理器的性能。
进一步地,RCA 10,具体用于当完成所述时序控制信息对应的运算任务时,由RCA10内部最后一个接收到所述时序控制信息的RC,将运算任务的执行结果写入输出先入先出寄存器(Out FIFO,OFIFO)和/或存储器(Memory Device,MEM),并销毁所述时序控制信息。
根据本发明实施例的可重构处理器,在RCA所包含的各个RC之间传递时序控制信息,使各个RC根据时序控制信息执行异步的运算。相对于同步时序的运算来说,增强了RC运算的灵活性,提高了RCA的运算效率,进而优化了处理器的性能。
如图1所示,控制单元可以实时从外部接收配置信息Config_data,也可预先接收配置信息Config_data并存储在其存储器中。在运算过程中,RCA从外部接收输入数据Data_in,运算结束后输出运算结果Data_out或将其存储内部存储器中。
进一步地,在一个实施例中,控制单元20可以包括可重构调度管理器(Reconfigurable Schedule Manager,RSM)21和可重构配置管理器(ReconfigurableContext Manager,RCM)22。图2为本发明实施例提供的另一种可重构处理器的结构示意图,如图2所示,RCM22与RCA 21连接。其中,RCM 22用于解析配置信息Config_data,并将解析结果发送至RCA 10,以配置RCA 10中的至少一部分RC的运算功能。可见,在RCM 22的配置下,RC主要用于实现运算,因此在本文中也将RC称为算子。
需要说明的是,在具体实现上,控制单元20可以实现模块RCM 22与RSM 21的功能,也就是说RCM 22与RSM 21可集成在同一个单元中,或者控制单元20也可进一步拆分为更多的模块。
具体来说,在一个实施例中,RCA 10包括可重构计算数据通路和存储单元。其中,可重构计算数据通路由RC阵列构成,存储单元包括FIFO和MEM。
在一个实施例中,在实现加密功能的应用场景下,基于图2所提供的可重构处理器,RCA 10从外部接收待加密的输入数据,即Data_in,然后在RSM 21和RCM 22的控制下,实现各种加密算法运算以及中间数据的存储。运算结束后,将加密后的数据Data_out存入FIFO中的OFIFO,以通过OFIFO将处理结果发送至外部。应理解的是,通过OFIFO存储并传递加密数据仅是本发明的一个实施例,本发明的保护范围不限于此。
进一步,处于节约能耗的考虑,在一个实施例中,RCA 10还用于关闭空闲RC的电源和时钟。
为了清楚说明本实施例中RSM 21和RCM 22对RCA 10的控制过程,下面将着重对RSM21和RCM 22进行介绍。
具体地,如图2所示,RCM 22从外部接收配置信息Config_data,RCM 22对配置信息进行存储和解析后发送至RCA 10,以配置RCA 10中至少一部分RC算子的功能,以便这部分RC执行相应的运算。这样,可重构处理器通过已配置的这部分算子实现了配置信息所对应的功能。
可选地,以上配置信息可以预先存储在RCM 22中,还可以根据用户需求对配置信息进行更新。其中,RCM 22所存储的配置信息可以包含多种功能对应的多套配置信息,每套配置信息可以包括数据配置信息及计算操作配置信息。例如,计算操作配置信息包括用于配置算子功能和时序等的信息。RCM 22可以根据当前的功能需求,选择对应的配置信息送入RCA 10,以对RCA 10进行功能配置。
需要说明的是,前述功能包括但不限于数据处理、图像处理等各种可以由本实施例的可重构处理器实现的功能。例如,以加密功能为例,假设RCM 22中的配置信息包括多种加密算法对应的配置信息,这样RCM 22可以根据当前的加密需要,解析并选择其中一个或多种加密算法发送至RCA 10,以配置RCA 10中至少一部分算子的功能。这样,完成配置后,RCA 10根据配置的加密算法对输入数据Data_in进行加密处理,然后输出加密后的数据Data_out。
此外,RCM 22与RSM 21连接,RCM 22还用于将计算操作配置信息发送至RSM 21,以便RSM 21产生对应的时序控制信息。
RSM 21用于从RCM 22接收配置信息,具体来说是配置信息中的计算操作配置信息,并根据配置信息生成时序控制信息。
可选地,RSM 21可以动态地从RCM 22接收计算操作配置信息。这样,RSM 21根据计算操作配置信息生成时序控制信息,并向RCA 10输出该时序控制信息,从而实现对RCA 10运算过程中的时序控制。其中,计算操作配置信息可以包括循环的令牌环长度和循环的令牌气泡等,时序控制信息包括令牌(Token,TOK)。
进一步地,RSM 21所控制的运算过程不仅包括RCA 10的运算时序,还包括设置在RCA10内部的FIFO的数据存取的时序,以及设置在RCA 10内部的MEM的数据操作的时序。
具体来说,在一个实施例中,RSM 21还用于在MEM、OFIFO和/或RCM 22出现异常情况下,进行相应的控制。
在一种实际的应用场景中,MEM和/或OFIFO发生阻塞。在这种情况下,RSM 21停止生成令牌,并生成第一阻塞信号。相应地,当RCA 10中的RC接收到第一阻塞信号时,暂停对应的运算。
另一种应用场景中,当时钟周期到来时未完成本时钟周期的解析时,RCM 21生成第二阻塞信号。当RSM 21监控到RCM 22生成第二阻塞信号时,停止生成令牌。相应地,当RCA10中的RC接收到第二阻塞信号时,暂停对应的运算。
需要说明的是,在正常情况下,RCM 22应在时钟周期到来时已完成本时钟周期的解析,将已执行完时序控制信息对应运算的RC,切换为下一个运算任务所需的配置。
进一步地,在一个实施例中,RSM 21根据计算操作配置信息,生成RCA 10执行当前功能所需要的时序控制信息,然后将该时序控制信息发送至RCA 10。RCA 10根据接收到的时序控制信息执行对应的运算功能,并在执行过程中向RSM 21返回执行结果,从而RSM 21可以根据返回的执行结果进一步对RCA 10进行时序控制。可选地,当RSM 21得到RCA 10的执行结果时,向RCM 22发送每一级RC的释放信号。相应地,当RCM 22接收到释放信号时,将释放信号对应的各级RC切换为下一个运算任务所需的配置。
为了清楚说明前述实施例所提供的可重构处理器,本发明实施例还提供了一种可重构处理器的时序控制方法。该时序控制方法可以由图1所示的可重构处理器执行,具体地,图3为本发明实施例提供的一种可重构处理器的时序控制方法的流程示意图,包括以下步骤:
步骤201,控制单元生成并向RCA发送时序控制信息。
在一个实施例中,时序控制信息包括令牌。
步骤202,RCA中的RC接收到时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序,在RCA内将时序控制信息传递至下一级RC。在一个实施例中,预设顺序包括:所述时序控制信息在所述RCA中从上一级RC传递到下一级RC,或者在同一级RC之间任意传递。
步骤203,当RCA完成时序控制信息对应的运算任务时,销毁时序控制信息。在一个实施例中,运算任务包括接收到时序控制信息的各级RC所执行的运算。
可选地,当完成时序控制信息对应的运算任务时,由RCA内部最后一个接收到时序控制信息的RC,将运算任务的执行结果写入OFIFO和/或MEM,并销毁时序控制信息。
根据本发明实施例的可重构处理器,在RCA所包含的各个RC之间传递时序控制信息,使各个RC根据时序控制信息执行异步的运算。相对于同步时序的运算来说,增强了RC运算的灵活性,提高了RCA的运算效率,进而优化了处理器的性能。
为了清楚说明可重构处理器的时序控制方法,下面将基于图2所提供的可重构处理器,对该时序控制方法进行详细说明。
具体来说,在RCA执行每一个运算任务时,需要经历时序控制信息的产生、传播和销毁三个阶段。但是,在RCA执行本次运算任务之前,还需要对RCA进行配置。具体来说,图4为本发明实施例提供的另一种可重构处理器的时序控制方法的流程示意图,包括:
步骤301,RCM解析配置信息,并将解析结果发送至RCA,以配置RCA中的至少一部分RC的运算功能。
可选地,配置信息可以预先存储在RCM中,还可以根据用户需求对配置信息进行更新。其中,RCM所存储的配置信息可以包含多种功能对应的多套配置信息,每套配置信息可以包括数据配置信息及计算操作配置信息。例如,计算操作配置信息包括用于配置算子功能和时序等的信息。RCM可以根据当前的功能需求,选择对应的配置信息送入RCA,以对RCA进行功能配置。
步骤302,RSM从RCM接收配置信息,并根据该配置信息生成时序控制信息。具体地,在一个实施例中,在时序控制信息的产生阶段,RSM生成MEM和/或OFIFO的读使能信号时,由RSM生成时序控制信息。在本实施例中,所提及的时序控制信息可以具体为令牌。
作为一种可能的实现方式,可以在RSM内部为每个运算任务设置一个gap_cnt计数器,当计数到i_procx_gap时产生一个MEM和/或OFIFO的读使能信号,相应地随之产生一个令牌。而当MEM/OFIFO发生阻塞时,gap_cnt计数器暂停计数,也就中止了令牌的产生。其中,i_procx_gap可以为预设的自然数。
例如,运算任务0的i_procx_gap取值为3,RSM内部有一个0至3循环的计数器,在运算任务0使能时,计数器开始计数,根据计数器循环产生MEM和/或OFIFO的读使能信号,并随之产生令牌。
步骤303,RSM向RCA发送时序控制信息,以对RCA进行时序控制。具体地,在时序控制信息的传播阶段,RCA中的RC接收控制单元所生成的时序控制信息。由接收到时序控制信息的RC根据时序控制信息执行对应的运算,并在运算执行完毕后依据预设传递顺序,在RCA内部所包含的各RC之间对时序控制信息逐级传递。
优选地,每一个层级包括一个RC,也就是以单个RC为粒度进行时序控制,但是需要消耗较多的控制资源。因此,在实际应用中,可以以行为粒度进行时序控制,也就是说每一个层级包括一行RC。
例如,RCA阵列一共有2N行,每行对应一个行使能信号,只有当行使能信号取值为1时,该行的RC才能进行计算;当行使能信号取值为0时,该行的RC输出被锁存,无法继续进行计算。
这里的行使能信号是指,当RSM中的计数器计数到i_procx_gap从而产生令牌。令牌取值为1,RSM同步产生运算任务对应的行使能信号,将令牌与行使能信号进行逻辑运算后,该行RC的行使能为1,该行RC能够执行对应的运算。这样执行完对应的运算后,该行RC可以将令牌传递给下一行RC。
又例如,图5为令牌传递的示意图。如图5所示,每一个圆点对应一个RC,圆圈内“_”之前的数字为行号,“_”之后的数字为列号,通过行和列的方式对RC进行表示,箭头的方向对应了令牌(T)的传递方向。每个RC完成运算后,将令牌传递给下一个RC。如图5所示,可以按照以下方向进行传递:行内可以从左向右,也可以从右向左;行间只能上一行传递至下一行。图5中没有示出子阵列的划分,也就是块的划分,若在实际中还划分了子阵列,可以实现由任一块到任一块的传递。
可见,在行内以及子阵列内对令牌传递顺序没有限制,而在行间要求令牌只能由上一级运算的RC传递至下一级运算的RC。这样,可以在RCA内部灵活地传递令牌,因而提高了RCA的运算效率,进而提高了处理器的性能。
作为一种异常的情况,由于需要利用存储单元对中间运算结果以及最终运算结果进行存储,当存储单元中的MEM和/或OFIFO发生阻塞时,RSM停止生成令牌,并开始生成第一阻塞信号。RCA中的RC接收到第一阻塞信号时,暂停对应的运算。例如,在发生阻塞时,前述的gap_cnt计数器暂停计数,RSM产生block_flag信号,并暂停生成令牌。
步骤304,当RSM接收到RCA的执行结果时,向RCM发送释放信号,RCM接收到释放信号后,将各RC切换为下一个运算任务所需的配置。
具体地,在时序控制信息的销毁阶段,当RCA完成时序控制信息对应的运算任务时,由RCA内部最后一个接收到时序控制信息的RC将执行结果写入OFIFO和/或MEM,并释放时序控制信息。进而,RSM接收到RCA的执行结果时,向RCM发送释放信号,RCM接收到释放信号后,将各RC切换为下一个运算任务所需的配置。
可见,采用令牌流水的方式,通过异步方式控制RC阵列中的每个RC算子,每个RC算子可以对应1bit令牌使能,RC只有在获得令牌使能时,才能执行运算任务。当前运算执行完毕,将令牌传递给下一级RC。如此,通过控制令牌的产生、销毁以及传递来控制RC阵列的时序,从而完成对RC阵列中每个RC算子的调度及时序控制。
在采用1bit令牌分别对应一个RC的方式进行时序控制时,能够实现对每个算子RC的灵活控制。进一步,为了便于对RC的管理,可以将整个RCA分为若干子阵列,每个子阵列分别实现对应的功能。也就是说,整个RCA可以映射一套算法或同时映射多套算法,从而提高了RC阵列的灵活性以及利用率。
进一步,由于整个RCA中的每个RC都基于令牌进行时序控制,因此可以将RCA设计为没有时序信息的异步组合电路。同时,由于在前述过程中存在一部分空闲的RC未参与运算任务,可以对于RCA中空闲的RC关闭电源和时钟,达到提高性能和降低功耗的目的。
在一种可能的实现方式中,在RC执行完运算后,RSM可以按行或按子阵列或单个RC进行释放,释放后的RC还可被RCM重新配置,以执行新的运算。由于每一个RC都基于令牌进行时序控制,当RC完成其运算任务时,令牌被传递或者销毁,就可以对RC进行配置切换。这样实现了局部动态配置切换,而不必等到整行RC或者整个RCA完成对应的运算任务再进行配置切换。可见,本发明实施例在进行功能配置时,不中断RCA所正在执行的运算任务,降低了配置时间对运算任务的影响,因而提高了处理器的工作效率。
作为另一种异常的情况,当所述RCM在时钟周期到来时未完成本时钟周期的解析时,也就是解析的速度慢于运算的速度,在本次运算完成之后由于未完成下一次运算所需的配置解析导致了这种异常。在这种情况下,RCM生成第二阻塞信号,RCA中的RC接收到所述第二阻塞信号时,暂停对应的运算。
根据本发明实施例的可重构处理器及其时序控制方法,在RCA所包含的各个RC之间传递时序控制信息,使各个RC根据时序控制信息执行异步的运算。相对于同步时序的运算来说,增强了RC运算的灵活性,提高了RCA的运算效率,进而优化了处理器的性能。
本实施例所提供的时序控制方法由前述实施例所提供的可重构处理器执行,相关内容可参见前述装置实施例中的描述,本实施例中对此不再赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (20)
1.一种可重构处理器,其特征在于,
所述可重构处理器包括可重构单元阵列RCA和控制单元,所述RCA包括多个可重构单元RC,所述控制单元包括可重构配置管理器RCM和可重构调度管理器RSM;
所述RCM,用于解析配置信息,并将解析结果发送至所述RCA,以配置RCA中的至少一部分RC的运算功能;
所述RSM,用于从所述RCM接收配置信息,根据所述配置信息生成时序控制信息,并向所述RCA发送所述时序控制信息,其中所述时序控制信息包括令牌;
所述RCA,用于根据所述时序控制信息执行运算任务,所述RCA中的RC接收到所述时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序,在所述RCA内将所述时序控制信息传递至下一级RC;当所述RCA完成所述时序控制信息对应的运算任务时,销毁所述时序控制信息,所述运算任务包括接收到所述时序控制信息的各级RC所执行的运算。
2.根据权利要求1所述的可重构处理器,其特征在于,
所述RSM,还用于当存储器MEM和/或输出先入先出寄存器OFIFO发生阻塞时,停止生成所述令牌,并生成第一阻塞信号;
所述RCA,还用于当所述RCA中的RC接收到所述第一阻塞信号时,暂停对应的运算。
3.根据权利要求2所述的可重构处理器,其特征在于,
所述RCM,还用于当时钟周期到来时未完成本时钟周期的解析时,生成第二阻塞信号;
所述RCA,还用于当所述RCA中的RC接收到所述第二阻塞信号时,暂停对应的运算。
4.根据权利要求3所述的可重构处理器,其特征在于,
所述RSM,还用于当监控到所述RCM生成所述第二阻塞信号时,停止生成所述令牌。
5.根据权利要求2所述的可重构处理器,其特征在于,
所述RCM,还用于当时钟周期到来时已完成本时钟周期的解析时,将已执行完所述时序控制信息对应运算的RC,切换为下一个运算任务所需的配置。
6.根据权利要求1所述的可重构处理器,其特征在于,
所述RCA,具体用于当完成所述时序控制信息对应的运算任务时,由所述RCA内最后一个接收到所述时序控制信息的RC,将所述运算任务的执行结果写入OFIFO和/或MEM,并销毁所述时序控制信息。
7.根据权利要求1所述的可重构处理器,其特征在于,
所述RSM,还用于当得到所述RCA的执行结果时,向所述RCM发送每一级RC的释放信号;
所述RCM,用于当接收到所述释放信号时,将所述释放信号对应的各级RC切换为下一个运算任务所需的配置。
8.根据权利要求1-7中任一项所述的可重构处理器,其特征在于,
所述RCA,还用于关闭空闲RC的电源和时钟。
9.根据权利要求1-7中任一项所述的可重构处理器,其特征在于,所述预设顺序包括:所述时序控制信息在所述RCA中从上一级RC传递到下一级RC,或者在同一级RC之间任意传递。
10.根据权利要求9所述的可重构处理器,其特征在于,每一级RC包括至少一个RC,或者包括至少一行RC,或者包括由至少一个RC构成的子阵列。
11.一种可重构处理器的时序控制方法,其特征在于,所述可重构处理器包括可重构单元阵列RCA和控制单元,所述RCA包括多个可重构单元RC,所述控制单元包括可重构配置管理器RCM和可重构调度管理器RSM,所述时序控制方法包括:
所述RCM解析配置信息,并将解析结果发送至所述RCA,以配置RCA中的至少一部分RC的运算功能;
所述RSM从所述RCM接收配置信息,根据所述配置信息生成时序控制信息,并向所述RCA发送所述时序控制信息,其中所述时序控制信息包括令牌;
所述RCA中的RC接收到所述时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序,在所述RCA内将所述时序控制信息传递至下一级RC;
当所述RCA完成所述时序控制信息对应的运算任务时,销毁所述时序控制信息,所述运算任务包括接收到所述时序控制信息的各级RC所执行的运算。
12.根据权利要求11所述的时序控制方法,其特征在于,所述时序控制方法还包括:
当存储器MEM和/或输出先入先出寄存器OFIFO发生阻塞时,所述RSM停止生成所述令牌,并生成第一阻塞信号;
当所述RCA中的RC接收到所述第一阻塞信号时,所述RCA暂停对应的运算。
13.根据权利要求12所述的时序控制方法,其特征在于,所述时序控制方法还包括:
当时钟周期到来时未完成本时钟周期的解析时,所述RCM生成第二阻塞信号;
当所述RCA中的RC接收到所述第二阻塞信号时,所述RCA暂停对应的运算。
14.根据权利要求13所述的时序控制方法,其特征在于,所述RCM生成第二阻塞信号之后,还包括:
当监控到所述RCM生成所述第二阻塞信号时,所述RSM停止生成所述令牌。
15.根据权利要求12所述的时序控制方法,其特征在于,所述时序控制方法还包括:
当时钟周期到来时已完成本时钟周期的解析时,所述RCM将已执行完所述时序控制信息对应运算的RC,切换为下一个运算任务所需的配置。
16.根据权利要求11所述的时序控制方法,其特征在于,所述销毁所述时序控制信息,包括:
当完成所述时序控制信息对应的运算任务时,由所述RCA内最后一个接收到所述时序控制信息的RC,将所述运算任务的执行结果写入OFIFO和/或MEM,并销毁所述时序控制信息。
17.根据权利要求11所述的时序控制方法,其特征在于,所述RCA完成所述时序控制信息对应的运算任务之后,还包括:
当得到所述RCA的执行结果时,所述RSM向所述RCM发送每一级RC的释放信号;
当所述RCM接收到所述释放信号时,将所述释放信号对应的各级RC切换为下一个运算任务所需的配置。
18.根据权利要求11-17任一项所述的时序控制方法,其特征在于,所述时序控制方法,还包括:
所述RCA关闭空闲RC的电源和时钟。
19.根据权利要求11-17任一项所述的时序控制方法,其特征在于,所述预设顺序包括:所述时序控制信息在所述RCA中从上一级RC传递到下一级RC,或者在同一级RC之间任意传递。
20.根据权利要求19所述的时序控制方法,其特征在于,每一级RC包括至少一个RC,或者包括至少一行RC,或者包括由至少一个RC构成的子阵列。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710161517.2A CN107423256B (zh) | 2017-03-17 | 2017-03-17 | 可重构处理器及可重构处理器的时序控制方法 |
US15/922,511 US10311017B2 (en) | 2017-03-17 | 2018-03-15 | Reconfigurable processor and timing control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710161517.2A CN107423256B (zh) | 2017-03-17 | 2017-03-17 | 可重构处理器及可重构处理器的时序控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423256A CN107423256A (zh) | 2017-12-01 |
CN107423256B true CN107423256B (zh) | 2019-03-01 |
Family
ID=60423809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710161517.2A Active CN107423256B (zh) | 2017-03-17 | 2017-03-17 | 可重构处理器及可重构处理器的时序控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10311017B2 (zh) |
CN (1) | CN107423256B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976357A (zh) * | 2019-04-28 | 2019-07-05 | 北京超维度计算科技有限公司 | 一种自动驾驶控制系统和方法 |
CN110069434A (zh) * | 2019-04-28 | 2019-07-30 | 北京超维度计算科技有限公司 | 一种高性能弹性计算hec的终端算力部署系统和方法 |
CN114510450A (zh) * | 2021-05-25 | 2022-05-17 | 无锡沐创集成电路设计有限公司 | 加密算法的加速计算方法、装置和阵列单元算子系统 |
CN113934681B (zh) * | 2021-12-15 | 2022-09-13 | 北京清微智能信息技术有限公司 | 一种可重构计算阵列及构建方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008142767A1 (ja) * | 2007-05-21 | 2008-11-27 | Renesas Technology Corp. | 半導体装置 |
CN102411555A (zh) * | 2011-08-17 | 2012-04-11 | 清华大学 | 一种可伸缩式动态可重构阵列配置信息方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6091263A (en) * | 1997-12-12 | 2000-07-18 | Xilinx, Inc. | Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM |
CN102541809B (zh) | 2011-12-08 | 2015-03-04 | 清华大学 | 一种动态可重构处理器 |
-
2017
- 2017-03-17 CN CN201710161517.2A patent/CN107423256B/zh active Active
-
2018
- 2018-03-15 US US15/922,511 patent/US10311017B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008142767A1 (ja) * | 2007-05-21 | 2008-11-27 | Renesas Technology Corp. | 半導体装置 |
CN102411555A (zh) * | 2011-08-17 | 2012-04-11 | 清华大学 | 一种可伸缩式动态可重构阵列配置信息方法 |
Non-Patent Citations (1)
Title |
---|
关键循环到可重构阵列映射中的时序参数分析;朱敏等;《计算机工程》;20121120;第38卷(第22期);全文 |
Also Published As
Publication number | Publication date |
---|---|
US10311017B2 (en) | 2019-06-04 |
US20180267928A1 (en) | 2018-09-20 |
CN107423256A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423256B (zh) | 可重构处理器及可重构处理器的时序控制方法 | |
US7353516B2 (en) | Data flow control for adaptive integrated circuitry | |
US7774286B1 (en) | GPSTP with multiple thread functionality | |
US7743236B2 (en) | Reconfigurable processor | |
US8918646B2 (en) | Data processing apparatus | |
US20180089139A1 (en) | Hybrid programmable many-core device with on-chip interconnect | |
US9461815B2 (en) | Virtualized AES computational engine | |
US20200250525A1 (en) | Lightweight, highspeed and energy efficient asynchronous and file system-based ai processing interface framework | |
US11502934B2 (en) | EZ-pass: an energy performance-efficient power-gating router architecture for scalable on-chip interconnect architecture | |
Abdelfattah et al. | Design and applications for embedded networks-on-chip on FPGAs | |
CN100409179C (zh) | 具有终止信号传播的机制的可编程流水线结构 | |
Ram et al. | Dynamic partial reconfiguration enchanced with security system for reduced area and low power consumption | |
CN103858393A (zh) | 网络包的并行处理 | |
CN105224286B (zh) | 用于可重构密码处理器的缓存装置 | |
US9992053B1 (en) | Multi-channel, multi-lane encryption circuitry and methods | |
CN103455367B (zh) | 用于实现可重构系统中多任务调度的管理单元和方法 | |
CN107066900A (zh) | 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法 | |
Christoforakis et al. | Dithering-based power and thermal management on FPGA-based multi-core embedded systems | |
KR100947446B1 (ko) | Vliw 프로세서 | |
CN115412241A (zh) | 实现后量子密码算法Kyber和Saber的融合密码安全处理器 | |
JP4743581B2 (ja) | データ処理システムおよびその制御方法 | |
Wang et al. | Efficient AES cipher on coarse-grained reconfigurable architecture | |
CN117097457B (zh) | 一种数据处理系统、方法、设备及介质 | |
CN118432817B (zh) | 基于risc-v处理器的量子密钥分发后处理片上系统 | |
Yang et al. | Ray tracing on a networked processor array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |