CN101625635A - 一种处理循环任务的方法、系统和设备 - Google Patents

一种处理循环任务的方法、系统和设备 Download PDF

Info

Publication number
CN101625635A
CN101625635A CN200910090000A CN200910090000A CN101625635A CN 101625635 A CN101625635 A CN 101625635A CN 200910090000 A CN200910090000 A CN 200910090000A CN 200910090000 A CN200910090000 A CN 200910090000A CN 101625635 A CN101625635 A CN 101625635A
Authority
CN
China
Prior art keywords
configuration information
module
input
arithmetic element
fifo
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
CN200910090000A
Other languages
English (en)
Other versions
CN101625635B (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.)
Wuxi Research Institute of Applied Technologies of 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 CN2009100900004A priority Critical patent/CN101625635B/zh
Publication of CN101625635A publication Critical patent/CN101625635A/zh
Application granted granted Critical
Publication of CN101625635B publication Critical patent/CN101625635B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

本发明实施例提供了一种处理循环任务的方法、系统和设备,其特征在于,所述方法包括:配置信息寄存器模块接收来自总线的配置信息,循环控制器模块从所述配置信息寄存器模块获取所述配置信息;所述输入FIFO模块根据所述输入FIFO配置信息读取数据;所述输入选择模块根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;所述可重构单元阵列根据运算单元配置信息执行循环任务,产生运算结果——RC的输出;所述输出选择模块根据运算单元配置信息将RC的输出按特定的顺序写入到输出FIFO;所述输出FIFO模块根据所述输出FIFO配置信息发送数据。通过本发明实施例提供的方案,解决循环任务在处理器上执行时间较长的问题,提高循环任务的运行速度,降低应用程序总的运行时间。

Description

一种处理循环任务的方法、系统和设备
技术领域
本发明涉及片上系统芯片领域,特别涉及一种处理循环任务的方法、系统和设备。
背景技术
随着计算机技术的发展,片上系统芯片的应用程序的数据量越来越大,运行时间也越来越长,而应用程序中的循环任务在程序的总运行时间中占据了较高的比例。
目前,在处理应用程序中的循环任务时,主要有两种方式:
一种是采用片上系统芯片的处理器来执行循环任务,需要将循环任务展开,串行的执行每一个循环;对于循环体内并行的运算,也需要将其转化为串行的执行顺序。
另一种是采用片上系统芯片中的处理器和硬件加速模块协同工作的方式执行循环任务。其中,处理器在处理数据时灵活性高且善于对数据进行控制,但其运算能力较差;硬件加速模块运算能力强,善于进行大规模的运算,被集成在片上系统芯片内,克服了处理器运算能力差的缺陷。
在实现本发明的过程中,发明人发现上述现有技术至少具有以下缺点:
采用处理器来执行循环任务,尤其是计算量很大的循环任务,由于处理器自身结构的限制,内部只有一个运算单元,串行的执行每个循环使得运行时间很长,降低了用户的使用体验;采用片上系统芯片中的处理器和硬件加速模块协同工作的方式执行循环任务,由于目前硬件加速模块为专用电路,只执行某一种类型的循环任务,对于其他类型的循环任务无法执行,导致执行的循环任务单一受限。
发明内容
为了解决循环任务在处理器上执行时间较长的问题,提高循环任务的运行速度,降低应用程序总的运行时间,本发明实施例提供了一种处理循环任务的方法、系统和设备,具体如下:。
本发明实施例提供了一种处理循环任务的方法,所述方法应用于可重构阵列协处理器,所述方法包括:
配置信息寄存器模块接收来自总线的配置信息,所述配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块从所述配置信息寄存器模块获取所述配置信息,并将所述输入FIFO配置信息发送给所述输入FIFO模块、所述输出FIFO配置信息发送给所述输出FIFO模块、所述运算单元配置信息发送给所述运算单元;
所述输入FIFO模块根据所述输入FIFO配置信息读取数据;
所述输入选择模块根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
所述可重构单元阵列根据运算单元配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
所述输出选择模块根据运算单元配置信息将所述可重构单元阵列输出的运算结果按特定的顺序写入到所述输出FIFO模块;
所述输出FIFO模块根据所述输出FIFO配置信息发送数据。
其中,所述输入FIFO配置信息、所述输出FIFO配置信息、所述运算单元配置信息分别对所述输入FIFO模块、所述输出FIFO模块、所述运算单元配置,所述输入FIFO模块、所述输出FIFO模块、所述运算单元的控制相互独立且分别有多套配置信息寄存器。
其中,所述循环控制器模块从所述配置信息寄存器模块获取所述配置信息的步骤,还包括:
所述循环控制器模块根据可重构阵列协处理器的内部状态寄存器控制所述配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入所述配置信息寄存器模块中的第几套配置信息寄存器。
其中,所述可重构单元阵列根据运算单元配置信息执行循环任务,并将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,具体包括:
所述运算单元执行循环任务时,以流水线的工作方式将多次循环同时在可重构单元阵列上执行,将每一行可重构单元阵列的运算结果通过路由模块输入到下一行,如果当前行为可重构单元阵列的最后一行,则通过路由模块将运算结果输入到可重构单元阵列的第一行;并根据运算单元配置信息将运算结果输入到所述临时数据模块缓存,以便于根据运算单元配置信息在某个执行步骤中获取所缓存的数据。
本发明实施例提供了一种处理循环任务的系统,所述系统包括:控制单元和运算单元,其中,
所述控制单元包括:配置信息寄存器模块、循环控制器模块、输入FIFO模块、输出FIFO模块、输入选择模块和输出选择模块;
所述配置信息寄存器模块,用于接收来自总线的配置信息,所述配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块,用于从所述配置信息寄存器模块获取所述配置信息,并将所述输入FIFO配置信息发送给所述输入FIFO模块、所述输出FIFO配置信息发送给所述输出FIFO模块、所述运算单元配置信息发送给所述运算单元;
所述输入FIFO模块,用于根据所述输入FIFO配置信息读取数据;
所述输入选择模块,用于根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
所述输出选择模块,用于根据运算单元配置信息将所述可重构单元阵列输出的运算结果按特定的顺序写入到所述输出FIFO模块;
所述输出FIFO模块,用于根据所述输出FIFO配置信息发送数据。
所述RC输入寄存器组,用于根据所述运算单元配置信息将存储的数据输入到所述运算单元中;
所述运算单元包括:可重构单元阵列、路由模块和临时数据模块,
所述可重构单元阵列,用于根据运算单元配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
所述路由模块,用于将每一行可重构单元阵列产生的运算结果输入到下一行可重构单元阵列;
所述临时数据模块,用于根据运算单元配置信息缓存可重构单元阵列的运算结果,并根据运算单元配置信息将缓存的运算结果输入到指定的可重构单元阵列中。
其中,所述输入FIFO配置信息、所述输出FIFO配置信息、所述运算单元配置信息分别对所述输入FIFO模块、所述输出FIFO模块、所述运算单元配置,所述输入FIFO模块、所述输出FIFO模块、所述运算单元的控制相互独立且分别有多套配置信息寄存器。
本发明实施例还提供了一种可重构阵列协处理器设备,所述设备包括:控制单元和运算单元,
所述控制单元,用于控制所述运算单元同时执行多次循环任务,并将最后产生的输出结果输出;
所述运算单元,用于在所述控制单元的控制下执行多次循环任务。
其中,所述控制单元包括:配置信息寄存器模块、循环控制器模块、输入FIFO模块、输出FIFO模块、输入选择模块和输出选择模块,
所述配置信息寄存器模块,用于接收来自总线的配置信息,所述配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块,用于从所述配置信息寄存器模块获取所述配置信息,并将所述输入FIFO配置信息发送给所述输入FIFO模块、所述输出FIFO配置信息发送给所述输出FIFO模块、所述运算单元配置信息发送给所述运算单元;
所述输入FIFO模块,用于根据所述输入FIFO配置信息读取数据;
所述输入选择模块,用于根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
所述输出选择模块,用于根据运算单元配置信息将所述可重构单元阵列输出的运算结果按特定的顺序写入到所述输出FIFO模块;
所述输出FIFO模块,用于根据所述输出FIFO配置信息发送数据。
所述RC输入寄存器组,用于根据所述运算单元配置信息将存储的数据输入到所述运算单元中。
其中,所述运算单元包括:可重构单元阵列、路由模块和临时数据模块,
所述可重构单元阵列,用于根据运算单元配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
所述路由模块,用于将每一行可重构单元阵列产生的运算结果输入到下一行可重构单元阵列;
所述临时数据模块,用于根据运算单元配置信息缓存可重构单元阵列的运算结果,并根据运算单元配置信息将缓存的运算结果输入到指定的可重构单元阵列中。
其中,所述配置信息寄存器模块,具体用于分别对所述输入FIFO模块、所述输出FIFO模块、所述运算单元配置所述输入FIFO配置信息、所述输出FIFO配置信息、所述运算单元配置信息,以使得所述输入FIFO模块、所述输出FIFO模块、所述运算单元的控制相互独立且分别有多套配置信息寄存器。
其中,所述循环控制器模块,还用于根据可重构阵列协处理器的内部状态寄存器控制所述配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入所述配置信息寄存器模块中的第几套配置信息寄存器。
其中,所述可重构单元阵列具体用于,执行循环任务时,以流水线的工作方式将多次循环同时在可重构单元阵列上执行,将每一行可重构单元阵列的运算结果通过路由模块输入到下一行,如果当前行为可重构单元阵列的最后一行,则通过路由模块将运算结果输入到可重构单元阵列的第一行;并根据运算单元配置信息将运算结果输入到所述临时数据模块缓存;并将最后产生的输出结果输出。
本发明实施例提供的方案的有益效果为:
通过本发明实施例提供的方案,通过可重构阵列协处理器的控制单元根据配置信息控制运算单元在可重构单元阵列上同时执行多次循环任务,并将最后产生的输出结果输出通过控制单元的输出,解决循环任务在处理器上执行时间较长的问题,提高循环任务的运行速度,降低应用程序总的运行时间,并且克服了现有的硬件加速模块处理任务单一的缺陷。
附图说明
图1是本发明实施例1提供的方法流程示意图;
图2是本发明实施例2提供的处理器上执行循环任务的过程示意图;
图3是本发明实施例2提供的可重构阵列协处理器的结构示意图;
图4是本发明实施例2提供的映射RCA的结果示意图;
图5是本发明实施例2提供的RCA以流水线的工作方式执行循环任务的时序图;
图6是本发明实施例2提供的提供的方法流程示意图;
图7是本发明实施例3提供的系统结构示意图;
图8是本发明实施例4提供的设备结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例提供了一种处理循环任务的方法,方法应用于可重构阵列协处理器,参见图1,该方法包括:
101:配置信息寄存器模块接收来自总线的配置信息,配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
102:循环控制器模块从配置信息寄存器模块获取配置信息,并将输入FIFO配置信息发送给输入FIFO模块、输出FIFO配置信息发送给输出FIFO模块、运算单元配置信息发送给运算单元;
103:输入FIFO模块根据输入FIFO配置信息读取数据;
104:输入选择模块根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
105:可重构单元阵列根据运算单元配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
106:输出选择模块根据运算单元配置信息将可重构单元阵列输出的运算结果按特定的顺序写入到输出FIFO模块;
107:输出FIFO模块根据输出FIFO配置信息发送数据。
其中,输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息分别对输入FIFO模块、输出FIFO模块、运算单元配置,输入FIFO模块、输出FIFO模块、运算单元的控制相互独立且分别有多套配置信息寄存器。
其中,循环控制器模块从配置信息寄存器模块获取配置信息的步骤,还包括:
循环控制器模块根据可重构阵列协处理器的内部状态寄存器控制配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入配置信息寄存器模块中的第几套配置信息寄存器。
其中,可重构单元阵列根据运算单元配置信息执行循环任务,并将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,具体包括:
运算单元执行循环任务时,以流水线的工作方式将多次循环同时在可重构单元阵列上执行,将每一行可重构单元阵列的运算结果通过路由模块输入到下一行,如果当前行为可重构单元阵列的最后一行,则通过路由模块将运算结果输入到可重构单元阵列的第一行;并根据运算单元配置信息将运算结果输入到临时数据模块缓存,以便于根据运算单元配置信息在某个执行步骤中获取所缓存的数据。
本发明实施例提供的方法,通过可重构阵列协处理器的控制单元根据配置信息控制运算单元在可重构单元阵列上同时执行多次循环任务,并将最后产生的输出结果输出通过控制单元的输出,解决循环任务在处理器上执行时间较长的问题,提高循环任务的运行速度,降低应用程序总的运行时间,并且克服了现有的硬件加速模块处理任务单一的缺陷。
实施例2
本发明实施例提供了一种处理循环任务的方法,其中,本发明实施例首先提供了一种可重构阵列协处理器(Reconfigurable Cell Array CoProceseeor,RCACP),而本发明实施例提供的方法是基于该可重构阵列协处理器基础上实现的,具体内容如下:
首先以图2为例对在处理器上执行循环任务的过程简单介绍:
参见图2,循环任务的任务图的步数为5,循环需要执行2次。在处理器上执行循环任务的过程为:首先将任务图中并行的运算调整为串行的执行顺序,调整后的执行顺序为:1→2→3→4→5→6→7,任务图的步数增加为7;串行的执行2次循环,2次循环的执行顺序:
1.1→1.2→1.3→1.4→1.5→1.6→1.7→2.1→2.2→2.3→2.4→2.5→2.6→2.7其中“1.2”表示执行第1次循环的第2步。串行执行完2次循环总的步数为14。
由图2可以看出,在处理器上执行循环任务的时间较长。针对处理器与硬件加速模块的特点,在对应用程序进行划分时,首先,将应用程序中运算量大的部分划分到硬件加速模块上执行,称之为应用程序的硬件部分;其次,由处理器来执行应用中的控制部分以及运算量小的部分,称之为应用程序的软件部分。
本发明实施例提供的可重构阵列协处理器来执行循环任务,尤其是关键循环(运行时间大于程序总运行时间1%的循环),并且能与处理器进行高速的数据交互。参见图3,下面对可重构阵列协处理器的结构和功能进行具体说明:
图3中,可重构阵列协处理器分为运算单元和控制单元,下面分别对运算单元和控制单元进行详细说明:
(一)运算单元
运算单元由可重构单元阵列(Reconfigurable Cell Array,RCA)、路由模块、临时数据模块3部分构成;下面具体描述各个模块:
1、可重构单元阵列(RCA)
其中,可重构单元阵列RCA的规模可以根据循环任务的规模定制,典型的RCA的规模为8×8。本发明实施例中为了便于说明,图2的RCA的规模为4×4。RCA的说明如下:
(1)RCA内每个RC经配置后可实现算术运算功能和逻辑运算功能;
(2)RCA以行为单位,一行内的多个RC经配置后在一个时钟周期内并行的完成运算;
(3)RCA的行按从上至下的顺序对应于任务图内的时钟周期。
其中,以图2的循环任务为例:循环任务的步数为5,以图2(a)的前4个时钟周期为例,将其映射到图3的RCA的结果如图4所示:
节点“1”、“2”处于任务图的第1个时钟周期,被映射到RCA的第1行;
节点“3”处于任务图的第2个时钟周期,被映射到RCA的第2行;
节点“4”、“5”处于任务图的第3个时钟周期,被映射到RCA的第3行;
节点“6”处于任务图的第4个时钟周期,被映射到RCA的第4行;
节点“7”处于任务图的第5个时钟周期,被映射到RCA的第1行。因为之前任务图中处于第4个时钟周期的节点“6”被映射到RCA的第4行,本发明实施例中的RCA只有4行,所以节点“7”被映射到第1行,由RCA的第1行来执行任务图的第5个时钟周期。至于节点“7”被映射到第1行的第3列(右起),是因为第1、2列已被映射为任务图第1个时钟周期的节点“1”和节点“2”。
(4)RCA执行循环任务时,以流水线的工作方式将多次循环同时在RCA上执行,这将大幅提升可重构阵列协处理器执行循环任务时的性能。以任务图2(a)映射到图3的RCA上为例,映射的结果如图4所示,RCA以流水线的工作方式执行循环任务的时序图如图5所示,具体如下:
第1个时钟周期:
RCA的第1行执行第1次循环的第1步,记为“1.1”;
第2个时钟周期:
RCA的第1行执行第2次循环的第1步,记为“2.1”;
RCA的第2行执行第1次循环的第2步,记为“1.2”;
第3个时钟周期:
RCA的第1行执行第3次循环的第1步,记为“3.1”;
RCA的第2行执行第2次循环的第2步,记为“2.2”;
RCA的第3行执行第1次循环的第3步,记为“1.3”;
第4个时钟周期:
RCA的第1行执行第4次循环的第1步,记为“4.1”;
RCA的第2行执行第3次循环的第2步,记为“3.2”;
RCA的第3行执行第2次循环的第3步,记为“2.3”;
RCA的第4行执行第1次循环的第4步,记为“1.4”;
第5个时钟周期:
RCA的第1行执行第1次循环的第5步和第5次循环的第1步,记为“1.5 &5.1”;
RCA的第2行执行第4次循环的第2步,记为“4.2”;
RCA的第3行执行第3次循环的第3步,记为“3.3”;
RCA的第4行执行第2次循环的第4步,记为“2.4”;
第6个时钟周期:
RCA的第1行执行第2次循环的第5步和第6次循环的第1步,记为“2.5 &6.1”;
RCA的第2行执行第5次循环的第2步,记为“5.2”;
RCA的第3行执行第4次循环的第3步,记为“4.3”;
RCA的第4行执行第3次循环的第4步,记为“3.4”;
2、路由模块
其中,路由模块将每行RC连接起来,路由模块的输入来自三个方面:RC输入寄存器组、上一行RC的输出、临时数据模块;
(1)路由模块的功能是为RC选择输入,其选择RC输入寄存器组、上一行RC的输出、临时数据模块的输入输出给RC,作为RC的输入;
(2)最后一行RC的输出经路由模块选择后可作为第一行RC的输入,这一结构使得RCA可以映射关键路径长度大于自身行数的任务图。以任务图2(a)为例,其关键路径为5(大于图3的RCA的行数4),将其映射到图3的RCA的结果如图4所示:
节点“7”处于任务图的第5个时钟周期,被映射到RCA的第1行。这是因为之前任务图中处于第4个时钟周期的节点“6”被映射到RCA的第4行,在RCA执行完第4行后,即任务图的第4个时钟周期后,节点“6”将通过路由模块1将节点“6”的输出输入给RCA的第1行,由RCA的第1行来执行任务图的第5个时钟周期。所以节点“7”被映射到RCA的第1行。至于节点“7”被映射到第1行的第3列(右起),是因为第1、2列已被映射为任务图第1个时钟周期的节点“1”和节点“2”。
3、临时数据模块:
其中,临时数据模块的输入来自每个RC的输出;
临时数据模块的功能是将RC的输出延迟若干个时钟周期,并在需要的时钟周期输出给路由模块。然后,经路由模块选择后,输出给RC作为输入。以将任务图2(a)映射到图3的RCA上为例,映射结果如图4所示:
处于任务图第3周期的节点“5”的一个输入来自第1周期的节点“2”,所以节点“2”在第1个时钟周期运算完后,需要将其输出输入给临时数据模块,数据在临时数据模块中延迟1个时钟周期,即在第3个时钟周期输出给路由模块3,经路由模块3选择后将数据输入给节点“5”。
(二)控制单元
控制单元由配置信息寄存器模块、循环任务控制器、输入FIFO(First InputFirst Output,先入先出队列)模块、输出FIFO模块、输入选择模块、输出选择模块和RC输入寄存器组模块7个部分构成;下面具体描述各个模块:
1、配置信息寄存器模块
(1)配置信息分为三个部分:输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息(包括循环任务的配置信息),且每部分的配置信息有多套配置信息,说明如下:
首先,将配置信息分为三个部分,可以做到对输入FIFO、输出FIFO、运算单元这三个硬件模块控制的相互独立。即输入FIFO的配置信息传输完后输入FIFO模块即开始运行,无需等待运算单元的配置信息传输完后才开始运行。同理,运算单元的配置信息传输完后运算单元即开始运行,无需等待输出FIFO的配置信息传输完后才开始运行;
其次,每个模块享有多套配置信息寄存器,这可以提前存储之后的循环任务用到的配置信息,尽量保证硬件模块无需等待自己的配置信息传输完后才开始运行;
总的来说,配置信息分为三部分,且每部分享有多套配置信息,保证了输入FIFO模块、输出FIFO模块、运算单元这三个硬件模块相互独立且持续不断的运行,这对可重构阵列协处理器性能的提升是有益的。
(2)配置信息寄存器模块是“先进高性能总线”(AdvancedHigh-performance Bus,AHB)上的从设备(slave),即配置信息寄存器模块只能被动的接收来自总线上的主设备发出的数据。
2、循环控制器模块
循环控制器模块读入来自配置信息寄存器模块的循环任务的配置信息,依据读入的配置信息对协处理器中其余模块进行控制,协调其余模块共同完成循环任务;
首先,循环任务控制器模块不仅从配置信息寄存器模块读入配置信息。它还根据可重构阵列协处理器的内部状态寄存器控制配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入其自身的第几套配置信息寄存器;
其次,循环控制器模块根据读入的输入FIFO配置信息控制输入FIFO模块的读取数据;
再次,循环控制器模块根据读入的运算单元配置信息(包括循环任务的配置信息)控制运算单元的运行过程,这包括以下内容:
循环控制模块将RCA中选定的RC配置成与任务图中各节点对应的运算;
循环控制模块配置临时数据模块,控制临时数据模块在某一时钟周期读入某一行的RC的输出,延迟若干个时钟周期后,输出给某一行的RC作为输入;
循环控制模块通过配置路由模块建立选定的RC之间的连接关系,这一连接关系与任务图中各节点之间的连接关系相一致;
循环控制模块根据循环任务的配置信息,对一次循环内的读取输入FIFO模块、运算单元、写入输出FIFO模块这三个步骤的时钟周期进行计数:
首先,经过若干个时钟周期,读取输入FIFO模块中的数据存入RC输入寄存器组;
然后,经过若干个时钟周期,完成数据在运算单元中的运算,产生输出结果;
最后,经过若干个时钟周期,将运算单元的输出结果写入输出FIFO模块。
循环控制模块根据循环任务的配置信息,控制2次循环之间的时间间隔,使得多次循环同时在RCA上以流水线的工作方式运行;
循环控制模块根据循环任务的配置信息,对循环次数进行计数。当循环次数达到配置的次数时,当前循环任务执行完成。此外,循环控制模块还根据循环任务的配置信息,在当前循环任务完成之后,判断运算单元配置信息是否跳转到下一个循环任务的运算单元配置信息,以及下一个循环任务的运算单元配置信息是运算单元配置信息寄存器中的第几套,否则停止运算单元;
最后,循环控制器模块根据读入的输出FIFO配置信息控制输出FIFO的工作过程;
3、输入FIFO模块
输入FIFO模块可以被配置成为“先进高性能总线”(AdvancedHigh-performance Bus,AHB)上的从设备(slave),被动的接收连接在总线上的主设备发出的数据;
输入FIFO也可以被配置成为“先进高性能总线”(AdvancedHigh-performance Bus,AHB)上的主设备(master),主动的读取连接在总线上的存储器的数据;
输入FIFO采取不对称的结构,连接到可重构阵列协处理器内部一侧的数据的读取速度要大于连接到总线一侧的数据的写入速度。这是因为内部的数据读取速度快可减小将输入FIFO中的数据写入RC输入寄存器组的时间,提升可重构阵列协处理器的性能。
4、输出FIFO模块
输出FIFO模块可以被配置成为“先进高性能总线”(AdvancedHigh-performance Bus,AHB)上的从设备(slave),被动的被接收连接在总线上的主设备读取数据;
输出FIFO也可以被配置成为“先进高性能总线”(AdvancedHigh-performance Bus,AHB)上的主设备(master),主动的向连接在总线上的存储器写数据;
输出FIFO采取不对称的结构,连接到可重构阵列协处理器内部一侧的数据的写入速度要大于连接到总线一侧的数据的读取速度。这是因为内部的数据写入速度快可减小将RC的输出写入输出FIFO的时间,提升可重构阵列协处理器的性能。
5、输入选择模块
输入选择模块的功能是根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置,即写入到特定的RC的输入寄存器,待运算时使用;
6、输出选择模块
输出选择模块的功能是根据运算单元配置信息将特定的RC的输出写入到输出FIFO中,完成运算结果的输出;
7、RC输入寄存器组
RC输入寄存器组的大小由RCA中RC的个数来决定,每个RC有两个输入寄存器,由RC的编号来确定其输入寄存器在RC输入寄存器组中的位置。
参见图6,下面以图3为例对上述可重构阵列协处理器处理循环任务的过程进行具体表述:
步骤201:配置信息寄存器模块接收来自总线的配置信息,该配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
其中,输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息分别针对输入FIFO模块、输出FIFO模块、运算单元三部分所配置,使得这三个模块的控制相互独立;其中,每个模块享有多套配置信息寄存器,这可以提前存储之后的循环任务用到的配置信息,尽量保证硬件模块无需等待自己的配置信息传输完后才开始运行;
配置信息分为三部分,且每部分享有多套配置信息,保证了输入FIFO模块、输出FIFO模块、运算单元这三个硬件模块相互独立且持续不断的运行,这对可重构阵列协处理器性能的提升是有益的。
步骤202:循环控制器模块读入来自配置信息寄存器模块的配置信息,依据读入的配置信息对可重构阵列协处理器中其余模块进行控制,协调其余模块共同完成循环任务;
其中,循环任务控制器模块不仅从配置信息寄存器模块读入配置信息。它还根据可重构阵列协处理器的内部状态寄存器控制配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入其自身的第几套配置信息寄存器;
步骤203:输入FIFO模块根据输入FIFO配置信息读取数据;
其中,由循环控制器模块根据读入的输入FIFO配置信息控制输入FIFO模块读取数据;
输入FIFO模块可以被配置成为“先进高性能总线”(AdvancedHigh-performance Bus,AHB)上的从设备(slave),被动的接收连接在总线上的主设备发出的数据;
输入FIFO也可以被配置成为“先进高性能总线”(AdvancedHigh-performance Bus,AHB)上的主设备(master),主动的读取连接在总线上的存储器的数据;
输入FIFO采取不对称的结构,连接到可重构阵列协处理器内部一侧的数据的读取速度要大于连接到总线一侧的数据的写入速度。这是因为内部的数据读取速度快可减小将输入FIFO中的数据写入RC输入寄存器组的时间,提升可重构阵列协处理器的性能。
步骤204:输入选择模块根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
其中,由循环控制器模块根据读入的运算单元配置信息控制输入选择模块将输入FIFO中的数据写入到RC输入寄存器组特定的位置,即写入到特定的RC的输入寄存器,待运算时使用。
步骤205:运算单元根据运算单元配置信息执行循环任务,具体包括:
RCA执行循环任务时,以流水线的工作方式将多次循环同时在RCA上执行,仍以任务图2(a)映射到图3的RCA上为例,映射的结果如图4所示,RCA以流水线的工作方式执行循环任务的时序图如图5所示,具体如下:
第1个时钟周期:
RCA的第1行执行第1次循环的第1步,记为“1.1”;并将执行的结果通过路由模块2输入到第2行;
第2个时钟周期:
RCA的第1行执行第2次循环的第1步,记为“2.1”;并将执行的结果通过路由模块2输入到第2行;
RCA的第2行执行第1次循环的第2步,记为“1.2”;并将执行的结果通过路由模块3输入到第3行;
第3个时钟周期:
RCA的第1行执行第3次循环的第1步,记为“3.1”;并将执行的结果通过路由模块2输入到第2行;
RCA的第2行执行第2次循环的第2步,记为“2.2”;并将执行的结果通过路由模块3输入到第3行;
RCA的第3行执行第1次循环的第3步,记为“1.3”;并将执行的结果通过路由模块4输入到第4行;
第4个时钟周期:
RCA的第1行执行第4次循环的第1步,记为“4.1”;并将执行的结果通过路由模块2输入到第2行;
RCA的第2行执行第3次循环的第2步,记为“3.2”;并将执行的结果通过路由模块3输入到第3行;
RCA的第3行执行第2次循环的第3步,记为“2.3”;并将执行的结果通过路由模块4输入到第4行;
RCA的第4行执行第1次循环的第4步,记为“1.4”;并将执行的结果通过路由模块1输入到第1行;
第5个时钟周期:
RCA的第1行执行第1次循环的第5步和第5次循环的第1步,记为“1.5 &5.1”;并将执行的结果通过路由模块2输入到第2行;
RCA的第2行执行第4次循环的第2步,记为“4.2”;并将执行的结果通过路由模块3输入到第3行;
RCA的第3行执行第3次循环的第3步,记为“3.3”;并将执行的结果通过路由模块4输入到第24行;
RCA的第4行执行第2次循环的第4步,记为“2.4”;并将执行的结果通过路由模块1输入到第1行;
第6个时钟周期:
RCA的第1行执行第2次循环的第5步和第6次循环的第1步,记为“2.5 &6.1”;并将执行的结果通过路由模块2输入到第2行;
RCA的第2行执行第5次循环的第2步,记为“5.2”;并将执行的结果通过路由模块3输入到第3行;
RCA的第3行执行第4次循环的第3步,记为“4.3”;并将执行的结果通过路由模块4输入到第4行;
RCA的第4行执行第3次循环的第4步,记为“3.4”;并将执行的结果通过路由模块1输入到第1行;
其中,处于任务图第3周期的节点“5”的一个输入来自第1周期的节点“2”,所以节点“2”在第1个时钟周期运算完后,需要将其输出输入给临时数据模块,数据在临时数据模块中延迟1个时钟周期,即在第3个时钟周期输出给路由模块3,经路由模块3选择后将数据输入给节点“5”。
其中,由循环控制器模块根据读入的运算单元配置信息控制运算单元执行循环任务,具体为:循环控制器模块将RCA中选定的RC配置成与任务图中各节点对应的运算;配置临时数据模块,控制临时数据模块在某一时钟周期读入某一行的RC的输出,延迟若干个时钟周期后,输出给某一行的RC作为输入;通过配置路由模块建立选定的RC之间的连接关系,这一连接关系与任务图中各节点之间的连接关系相一致;另外,循环控制模块还根据循环任务的配置信息,对一次循环内的读取输入FIFO模块、运算单元、写入输出FIFO模块这三个步骤的时钟周期进行计数。
步骤206:运算单元完成循环任务中的运算,产生输出结果,将运算单元的输出结果通过输出选择模块写入输出FIFO模块。
循环控制模块根据循环任务的配置信息,控制2次循环之间的时间间隔,使得多次循环同时在RCA上以流水线的工作方式运行;
循环控制模块根据循环任务的配置信息,对循环次数进行计数。当循环次数达到配置的次数时,当前循环任务执行完成。此外,循环控制模块还根据循环任务的配置信息,在当前循环任务完成之后,判断运算单元配置信息是否跳转到下一个循环任务的运算单元配置信息,以及下一个循环任务的运算单元配置信息是运算单元配置信息寄存器中的第几套,否则停止运算单元;
其中,由循环控制器模块根据读入的输出FIFO配置信息控制输出FIFO模块对外输出数据。
本发明实施例提供的方法,通过可重构阵列协处理器的控制单元根据配置信息控制运算单元在可重构单元阵列上同时执行多次循环任务,并将最后产生的输出结果输出通过控制单元的输出,解决循环任务在处理器上执行时间较长的问题,提高循环任务的运行速度,降低应用程序总的运行时间,并且克服了现有的硬件加速模块处理任务单一的缺陷。
实施例3
本发明实施例提供了一种处理循环任务的系统,参见图7,该系统包括:控制单元701和运算单元702,其中,
控制单元701包括:配置信息寄存器模块7011、循环控制器模块7012、输入FIFO模块7013、输出FIFO模块7014、输入选择模块7015、输出选择模块7016和RC输入寄存器组7017;
配置信息寄存器模块7011,用于接收来自总线的配置信息,配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块7012,用于从配置信息寄存器模块7011获取配置信息,并将输入FIFO配置信息发送给输入FIFO模块7013、输出FIFO配置信息发送给输出FIFO模块7014、运算单元配置信息发送给运算单元702;
输入FIFO模块7013,用于根据输入FIFO配置信息读取数据;
输入选择模块7015,用于根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组7017特定的位置;
输出选择模块7014,用于根据运算单元配置信息将可重构单元阵列输出的运算结果按特定的顺序写入到输出FIFO模块7016;
输出FIFO模块7016,用于根据输出FIFO配置信息发送数据。
RC输入寄存器组7017,用于根据运算单元配置信息将存储的数据输入到运算单元中;
运算单元702包括:可重构单元阵列7021、路由模块7022和临时数据模块7023,
可重构单元阵列7021,用于根据运算单元702配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块7023中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
路由模块7022,用于将每一行可重构单元阵列7021产生的运算结果输入到下一行可重构单元阵列7021;
临时数据模块7023,用于根据运算单元配置信息缓存可重构单元阵列7021的运算结果,并根据运算单元配置信息将缓存的运算结果输入到指定的可重构单元阵列7021中。
其中,输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息分别对输入FIFO模块7013、输出FIFO模块7014、运算单元702配置,输入FIFO模块7013、输出FIFO模块7014、运算单元702的控制相互独立且分别有多套配置信息寄存器。
本发明实施例提供的系统,通过可重构阵列协处理器的控制单元根据配置信息控制运算单元在可重构单元阵列7021上同时执行多次循环任务,并将最后产生的输出结果输出通过控制单元的输出,解决循环任务在处理器上执行时间较长的问题,提高循环任务的运行速度,降低应用程序总的运行时间,并且克服了现有的硬件加速模块处理任务单一的缺陷。
实施例4
本发明实施例还提供了一种可重构阵列协处理器设备,参见图8,该设备包括:控制单元和运算单元,
控制单元801,用于控制运算单元802同时执行多次循环任务,并将最后产生的输出结果输出;
运算单元802,用于在控制单元801的控制下执行多次循环任务。
其中,该控制单元801包括:配置信息寄存器模块8011、循环控制器模块8012、输入FIFO模块8013、输出FIFO模块8014、输入选择模块8015、输出选择模块8016和RC输入寄存器组8017;
配置信息寄存器模块8011,用于接收来自总线的配置信息,配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块8012,用于从配置信息寄存器模块获取配置信息,并将输入FIFO配置信息发送给输入FIFO模块8013、输出FIFO配置信息发送给输出FIFO模块8014、运算单元配置信息发送给运算单元;
输入FIFO模块8013,用于根据输入FIFO配置信息读取数据;
输入选择模块8015,用于根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器8017组特定的位置。
输出选择模块8014,用于根据运算单元配置信息将可重构单元阵列输出的运算结果按特定的顺序写入到输出FIFO模块8016;
输出FIFO模块8016,用于根据输出FIFO配置信息发送数据。
RC输入寄存器组8017,用于根据运算单元配置信息将存储的数据输入到运算单元中;
其中,运算单元802包括:可重构单元阵列8021、路由模块8022和临时数据模块8023,
可重构单元阵列8021,用于根据运算单元802配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块8023中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
路由模块8022,用于将每一行可重构单元阵列8021产生的运算结果输入到下一行可重构单元阵列8021;
临时数据模块8023,用于根据运算单元配置信息缓存可重构单元阵列8021的运算结果,并根据运算单元配置信息将缓存的运算结果输入到指定的可重构单元阵列8021中。
其中,配置信息寄存器模块,具体用于分别对输入FIFO模块8013、输出FIFO模块8014、运算单元配置输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以使得输入FIFO模块8013、输出FIFO模块8014、运算单元的控制相互独立且分别有多套配置信息寄存器。
其中,循环控制器模块8012,还用于根据可重构阵列协处理器的内部状态寄存器控制配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入配置信息寄存器模块中的第几套配置信息寄存器。
其中,可重构单元阵列8021具体用于,执行循环任务时,以流水线的工作方式将多次循环同时在可重构单元阵列8021上执行,将每一行可重构单元阵列8021的运算结果通过路由模块8022输入到下一行,如果当前行为可重构单元阵列8021的最后一行,则通过路由模块8022将运算结果输入到可重构单元阵列8021的第一行;并根据运算单元配置信息将运算结果输入到临时数据模块8023缓存;并将最后产生的输出结果输出。
本发明实施例提供的设备,通过可重构阵列协处理器的控制单元根据配置信息控制运算单元在可重构单元阵列8021上同时执行多次循环任务,并将最后产生的输出结果输出通过控制单元的输出,解决循环任务在处理器上执行时间较长的问题,提高循环任务的运行速度,降低应用程序总的运行时间,并且克服了现有的硬件加速模块处理任务单一的缺陷。
本发明实施例可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,例如,路由器的硬盘、缓存或光盘中。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种处理循环任务的方法,其特征在于,所述方法应用于可重构阵列协处理器,所述方法包括:
配置信息寄存器模块接收来自总线的配置信息,所述配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块从所述配置信息寄存器模块获取所述配置信息,并将所述输入FIFO配置信息发送给所述输入FIFO模块、所述输出FIFO配置信息发送给所述输出FIFO模块、所述运算单元配置信息发送给所述运算单元;
所述输入FIFO模块根据所述输入FIFO配置信息读取数据;
所述输入选择模块根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
所述可重构单元阵列根据运算单元配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
所述输出选择模块根据运算单元配置信息将所述可重构单元阵列输出的运算结果按特定的顺序写入到所述输出FIFO模块;
所述输出FIFO模块根据所述输出FIFO配置信息发送数据。
2.如权利要求1所述的方法,其特征在于,所述输入FIFO配置信息、所述输出FIFO配置信息、所述运算单元配置信息分别对应所述输入FIFO模块、所述输出FIFO模块、所述运算单元配置,所述输入FIFO模块、所述输出FIFO模块、所述运算单元的控制相互独立且分别有多套配置信息寄存器。
3.如权利要求1所述的方法,其特征在于,所述循环控制器模块从所述配置信息寄存器模块获取所述配置信息的步骤,还包括:
所述循环控制器模块根据可重构阵列协处理器的内部状态寄存器控制所述配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入所述配置信息寄存器模块中的第几套配置信息寄存器。
4、如权利要求1所述的方法,其特征在于,所述可重构单元阵列根据运算单元配置信息执行循环任务,并将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,具体包括:
所述运算单元执行循环任务时,以流水线的工作方式将多次循环同时在可重构单元阵列上执行,将每一行可重构单元阵列的运算结果通过路由模块输入到下一行,如果当前行为可重构单元阵列的最后一行,则通过路由模块将运算结果输入到可重构单元阵列的第一行;并根据运算单元配置信息将运算结果输入到所述临时数据模块缓存,以便于根据运算单元配置信息在某个执行步骤中获取所缓存的数据。
5.一种处理循环任务的系统,其特征在于,所述系统包括:控制单元和运算单元,其中,
所述控制单元包括:配置信息寄存器模块、循环控制器模块、输入FIFO模块、输出FIFO模块、输入选择模块和输出选择模块;
所述配置信息寄存器模块,用于接收来自总线的配置信息,所述配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块,用于从所述配置信息寄存器模块获取所述配置信息,并将所述输入FIFO配置信息发送给所述输入FIFO模块、所述输出FIFO配置信息发送给所述输出FIFO模块、所述运算单元配置信息发送给所述运算单元;
所述输入FIFO模块,用于根据所述输入FIFO配置信息读取数据;
所述输入选择模块,用于根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
所述输出选择模块,用于根据运算单元配置信息将所述可重构单元阵列输出的运算结果按特定的顺序写入到所述输出FIFO模块;
所述输出FIFO模块,用于根据所述输出FIFO配置信息发送数据。
所述RC输入寄存器组,用于根据所述运算单元配置信息将存储的数据输入到所述运算单元中;
所述运算单元包括:可重构单元阵列、路由模块和临时数据模块,
所述可重构单元阵列,用于根据运算单元配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
所述路由模块,用于将每一行可重构单元阵列产生的运算结果输入到下一行可重构单元阵列;
所述临时数据模块,用于根据运算单元配置信息缓存可重构单元阵列的运算结果,并根据运算单元配置信息将缓存的运算结果输入到指定的可重构单元阵列中。
6.如权利要求5所述的系统,其特征在于,所述输入FIFO配置信息、所述输出FIFO配置信息、所述运算单元配置信息分别对所述输入FIFO模块、所述输出FIFO.模块、所述运算单元配置,所述输入FIFO模块、所述输出FIFO模块、所述运算单元的控制相互独立且分别有多套配置信息寄存器。
7.一种可重构阵列协处理器设备,其特征在于,所述设备包括:控制单元和运算单元,
所述控制单元,用于控制所述运算单元同时执行多次循环任务,并将最后产生的输出结果输出;
所述运算单元,用于在所述控制单元的控制下执行多次循环任务。
8、如权利要求7所述的设备,其特征在于,所述控制单元包括:配置信息寄存器模块、循环控制器模块、输入FIFO模块、输出FIFO模块、输入选择模块和输出选择模块,
所述配置信息寄存器模块,用于接收来自总线的配置信息,所述配置信息包括输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息;
循环控制器模块,用于从所述配置信息寄存器模块获取所述配置信息,并将所述输入FIFO配置信息发送给所述输入FIFO模块、所述输出FIFO配置信息发送给所述输出FIFO模块、所述运算单元配置信息发送给所述运算单元;
所述输入FIFO模块,用于根据所述输入FIFO配置信息读取数据;
所述输入选择模块,用于根据运算单元配置信息将输入FIFO中的数据写入到RC输入寄存器组特定的位置;
所述输出选择模块,用于根据运算单元配置信息将所述可重构单元阵列输出的运算结果按特定的顺序写入到所述输出FIFO模块;
所述输出FIFO模块,用于根据所述输出FIFO配置信息发送数据。
RC输入寄存器组,用于根据所述运算单元配置信息将存储的数据输入到所述运算单元中。
9、如权利要求7所述的设备,其特征在于,所述运算单元包括:可重构单元阵列、路由模块和临时数据模块,
所述可重构单元阵列,用于根据运算单元配置信息执行循环任务,将每一行可重构单元阵列产生的运算结果根据运算单元配置信息输入到临时数据模块中和通过路由模块输入到下一行可重构单元阵列,并将产生的运算结果输出;
所述路由模块,用于将每一行可重构单元阵列产生的运算结果输入到下一行可重构单元阵列;
所述临时数据模块,用于根据运算单元配置信息缓存可重构单元阵列的运算结果,并根据运算单元配置信息将缓存的运算结果输入到指定的可重构单元阵列中。
10.如权利要求8所述的设备,其特征在于,所述配置信息寄存器模块,具体用于分别对所述输入FIFO模块、所述输出FIFO模块、所述运算单元配置所述输入FIFO配置信息、所述输出FIFO配置信息、所述运算单元配置信息,以使得所述输入FIFO模块、所述输出FIFO模块、所述运算单元的控制相互独立且分别有多套配置信息寄存器。
11.如权利要求8所述的设备,其特征在于,所述循环控制器模块,还用于根据可重构阵列协处理器的内部状态寄存器控制所述配置信息寄存器模块是否从总线上读取输入FIFO配置信息、输出FIFO配置信息、运算单元配置信息,以及将读入的某一项配置信息写入所述配置信息寄存器模块中的第几套配置信息寄存器。
12、如权利要求9所述的设备,其特征在于,所述可重构单元阵列具体用于,执行循环任务时,以流水线的工作方式将多次循环同时在可重构单元阵列上执行,将每一行可重构单元阵列的运算结果通过路由模块输入到下一行,如果当前行为可重构单元阵列的最后一行,则通过路由模块将运算结果输入到可重构单元阵列的第一行;并根据运算单元配置信息将运算结果输入到所述临时数据模块缓存;并将最后产生的输出结果输出。
CN2009100900004A 2009-07-31 2009-07-31 一种处理循环任务的方法、系统和设备 Expired - Fee Related CN101625635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100900004A CN101625635B (zh) 2009-07-31 2009-07-31 一种处理循环任务的方法、系统和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100900004A CN101625635B (zh) 2009-07-31 2009-07-31 一种处理循环任务的方法、系统和设备

Publications (2)

Publication Number Publication Date
CN101625635A true CN101625635A (zh) 2010-01-13
CN101625635B CN101625635B (zh) 2011-11-30

Family

ID=41521491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100900004A Expired - Fee Related CN101625635B (zh) 2009-07-31 2009-07-31 一种处理循环任务的方法、系统和设备

Country Status (1)

Country Link
CN (1) CN101625635B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214157A (zh) * 2011-06-08 2011-10-12 清华大学 一种动态可重构阵列时序控制的方法
CN102253921A (zh) * 2011-06-14 2011-11-23 清华大学 一种动态可重构处理器
CN102253920A (zh) * 2011-06-08 2011-11-23 清华大学 一种全互联路由结构动态可重构数据处理方法及处理器
CN102279729A (zh) * 2011-06-14 2011-12-14 清华大学 动态可重构阵列调用配置信息的方法、缓存器和处理器
CN102298568A (zh) * 2011-06-14 2011-12-28 清华大学 一种动态可重构阵列的配置信息切换方法及装置
CN102306141A (zh) * 2011-07-18 2012-01-04 清华大学 一种描述动态可重构阵列配置信息的方法
CN102567279A (zh) * 2011-12-22 2012-07-11 清华大学 一种动态可重构阵列时序配置信息的生成方法
CN103646005A (zh) * 2012-03-16 2014-03-19 三星电子株式会社 基于微核的可重构处理器、调度设备及其方法
CN103761213A (zh) * 2014-02-14 2014-04-30 上海交通大学 基于循环流水计算的片上阵列系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4720436B2 (ja) * 2005-11-01 2011-07-13 株式会社日立製作所 リコンフィギュラブルプロセッサまたは装置
CN100419734C (zh) * 2005-12-02 2008-09-17 浙江大学 一种面向计算的通用型可重构计算阵列装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253920B (zh) * 2011-06-08 2013-03-27 清华大学 一种全互联路由结构动态可重构数据处理方法及处理器
CN102214157A (zh) * 2011-06-08 2011-10-12 清华大学 一种动态可重构阵列时序控制的方法
CN102253920A (zh) * 2011-06-08 2011-11-23 清华大学 一种全互联路由结构动态可重构数据处理方法及处理器
CN102253921B (zh) * 2011-06-14 2013-12-04 清华大学 一种动态可重构处理器
CN102298568A (zh) * 2011-06-14 2011-12-28 清华大学 一种动态可重构阵列的配置信息切换方法及装置
CN102279729A (zh) * 2011-06-14 2011-12-14 清华大学 动态可重构阵列调用配置信息的方法、缓存器和处理器
CN102298568B (zh) * 2011-06-14 2013-08-14 清华大学 一种动态可重构阵列的配置信息切换方法及装置
CN102253921A (zh) * 2011-06-14 2011-11-23 清华大学 一种动态可重构处理器
CN102306141A (zh) * 2011-07-18 2012-01-04 清华大学 一种描述动态可重构阵列配置信息的方法
CN102306141B (zh) * 2011-07-18 2015-04-08 清华大学 一种描述动态可重构阵列配置信息的方法
CN102567279A (zh) * 2011-12-22 2012-07-11 清华大学 一种动态可重构阵列时序配置信息的生成方法
CN102567279B (zh) * 2011-12-22 2015-03-04 清华大学 一种动态可重构阵列时序配置信息的生成方法
CN103646005A (zh) * 2012-03-16 2014-03-19 三星电子株式会社 基于微核的可重构处理器、调度设备及其方法
US9632978B2 (en) 2012-03-16 2017-04-25 Samsung Electronics Co., Ltd. Reconfigurable processor based on mini-cores, schedule apparatus, and method thereof
CN103761213A (zh) * 2014-02-14 2014-04-30 上海交通大学 基于循环流水计算的片上阵列系统

Also Published As

Publication number Publication date
CN101625635B (zh) 2011-11-30

Similar Documents

Publication Publication Date Title
CN101625635B (zh) 一种处理循环任务的方法、系统和设备
CN107301455B (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
CN105487838B (zh) 一种动态可重构处理器的任务级并行调度方法与系统
CN103699360B (zh) 一种向量处理器及其进行向量数据存取、交互的方法
CN112487750B (zh) 一种基于存内计算的卷积加速计算系统及方法
CN104615488A (zh) 异构多核可重构计算平台上任务调度的方法和装置
BRPI0807951B1 (pt) Processador de multimídia multi-encadeado sob demanda
CN110222818A (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
CN102306141B (zh) 一种描述动态可重构阵列配置信息的方法
CN103984560A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN107766079A (zh) 处理器以及用于在处理器上执行指令的方法
CN102279818A (zh) 支持有限共享的向量数据访存控制方法及向量存储器
CN104317770A (zh) 用于众核处理系统的数据存储结构及数据访问方法
CN100489830C (zh) 面向科学计算的64位流处理器芯片
CN103760525A (zh) 一种补齐式原地矩阵转置方法
CN106293736B (zh) 用于粗粒度多核计算系统的两级编程装置及其计算方法
CN104679670B (zh) 一种面向fft和fir的共享数据缓存结构及管理方法
CN114297097B (zh) 一种众核可定义分布式共享存储结构
Zha et al. Hetero-ViTAL: A virtualization stack for heterogeneous FPGA clusters
CN86106713A (zh) 具有内部单元控制和处理的阵列结构
EP3516515A1 (en) Scheduling of tasks in a multiprocessor device
CN104035898B (zh) 一种基于vliw类型处理器的访存系统
CN107562549B (zh) 基于片上总线和共享内存的异构众核asip架构
CN106598840B (zh) 基于软件自测试技术的慢速外设高效测试架构及方法
CN103713944B (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
ASS Succession or assignment of patent right

Owner name: WUXI APPLICATION TECHNOLOGY RESEARCH INSTITUTE OF

Free format text: FORMER OWNER: TSINGHUA UNIVERSITY

Effective date: 20150420

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100084 HAIDIAN, BEIJING TO: 214072 WUXI, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20150420

Address after: 214072, A3 building, No. 777 West Building Road, Binhu District, Jiangsu, Wuxi 4, China

Patentee after: Wuxi Research Institute of Applied Technologies Tsinghua University

Address before: 100084 Haidian District Tsinghua Yuan Beijing No. 1

Patentee before: Tsinghua University

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111130

Termination date: 20210731