CN102207852A - 动态可重构处理器内子单元间进行数据交互的系统和方法 - Google Patents

动态可重构处理器内子单元间进行数据交互的系统和方法 Download PDF

Info

Publication number
CN102207852A
CN102207852A CN2011101403608A CN201110140360A CN102207852A CN 102207852 A CN102207852 A CN 102207852A CN 2011101403608 A CN2011101403608 A CN 2011101403608A CN 201110140360 A CN201110140360 A CN 201110140360A CN 102207852 A CN102207852 A CN 102207852A
Authority
CN
China
Prior art keywords
subelement
data
data interaction
interaction
reconfigurable processor
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.)
Pending
Application number
CN2011101403608A
Other languages
English (en)
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 CN2011101403608A priority Critical patent/CN102207852A/zh
Publication of CN102207852A publication Critical patent/CN102207852A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

本发明提供了一种动态可重构处理器内子单元间进行数据交互的系统和方法,在动态可重构处理器器中增加了子单元间数据交互暂存器、内部数据写出装置、子单元间数据交互装置,某一子单元运行完毕时产生的结果数据,其他的子单元以及该子单元需要这个结果数据时,通过内部数据写出装置把该子单元的结果数据写出到子单元间数据交互暂存器,再通过子单元间数据交互装置把需要的结果数据写入目的子单元(需要结果数据的子单元)内部的数据存储器,从而实现了处理器并行处理时各个独立子单元之间的数据交互。

Description

动态可重构处理器内子单元间进行数据交互的系统和方法
技术领域
本发明涉及嵌入式系统领域中的动态可重构处理器技术领域,特别是涉及一种动态可重构处理器内子单元间进行数据交互的系统和方法。
背景技术
动态可重构处理器是一种新生的处理器构架,其较之以往的单核处理器、专用芯片、现场可编程逻辑阵列有着显著的优势,是未来电路结构发展的一个方向。
首先,动态可重构处理器内往往含有多个算数逻辑单元,且数量巨大,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算数逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。
其次,较传统的静态可重构电路——现场可编程逻辑阵列而言,动态可重构处理器有动态的特点,即在电路运行过程中可动态的切换电路的功能,而非以往静态可重构电路一沉不变的不改变电路功能,只是在电路运行之前烧写电路功能,对电路进行初始化。这样做的好处在于通过时分复用的方式减少了电路的规模,原因在于之前的电路结构的全映射现在变为分块映射,而块与块之间恰好采取了动态切换的方式。
动态可重构处理器内的子单元间往往存在进行数据交互的需求,因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够创新地提出一种有效的措施,以解决现有技术中存在的问题,实现了处理器并行处理时各个独立子单元之间的数据交互。
发明内容
本发明所要解决的技术问题是提供一种动态可重构处理器内子单元间进行数据交互的系统和方法,用于解决子单元间交换数据的机制,通过数据流的方式解释了数据交互的详细过程,有效实现了处理器并行处理时各个独立子单元之间的数据交互。
为了解决上述问题,本发明公开了一种动态可重构处理器内子单元间进行数据交互的系统,所述系统包括:
子单元间数据交互暂存器,用于存储子单元间需要交互的数据;
子单元间数据交互装置,用于按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据;所调用数据运算后的结果数据存储于子单元数据存储器中;
内部数据写出装置,用于读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中。
优选的,所述动态可重构处理器内子单元间进行数据交互的系统包括一个或多个子单元间数据交互装置。
优选的,所述子单元间数据交互装置位于动态可重构处理器中的子单元内、和\或子单元外。
优选的,所述动态可重构处理器内子单元间进行数据交互的系统包括一个或多个内部数据写出装置。
优选的,所述内部数据写出装置位于动态可重构处理器中的子单元内、和\或子单元外。
本发明还公开了一种动态可重构处理器内子单元间进行数据交互的方法,所述方法包括:
按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据进行运算,并将运算的结果数据存储于子单元数据存储器中;
读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中。
优选的,所述按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据的工作由一个或多个子单元间数据交互装置完成。
优选的,所述动态可重构处理器内多个子单元共享一个子单元间数据交互装置,或各自独享一个子单元间数据交互装置。
优选的,所述读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中的工作由一个或多个内部数据写出装置完成。
优选的,所述动态可重构处理器内多个子单元共享一个内部数据写出装置,或各自独享一个内部数据写出装置。
与现有技术相比,本发明具有以下优点:
本发明所述的方案,在动态可重构处理器器中增加了子单元间数据交互暂存器、内部数据写出装置、子单元间数据交互装置,某一子单元运行完毕时产生的结果数据,其他的子单元以及该子单元需要这个结果数据时,通过内部数据写出装置把该子单元的结果数据写出到子单元间数据交互暂存器,再通过子单元间数据交互装置把需要的结果数据写入目的子单元(需要结果数据的子单元)内部的数据存储器,从而实现了处理器并行处理时各个独立子单元之间的数据交互。
附图说明
图1是本发明具体实施方式中所述的一种典型的动态可重构处理器的结构示意图;
图2是本发明实施例所述一种动态可重构处理器内子单元间进行数据交互的系统的结构图示意图;
图3是本发明实施例所述的一种动态可重构处理器内子单元间进行数据交互的方法流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
一种典型的动态可重构处理器的结构示意图如图1所示。结合图1,动态可重构处理器的运转流程可概括为如下步骤:动态可重构处理器由外部数据读入装置将处理器外存储器内待处理的数据读入处理器内,分发至多个子单元处理内的外部数据缓存器;多个子单元将数据从各自的外部数据缓存器读出,再进行处理。多个子单元同时处理,以达并行处理的效果。各子单元处理完后,将结果数据存于各自的内部数据缓存器;外部数据写出装置将结果数据从各子单元的内部数据缓存器读出,并写出到处理器外部存储器。
此外,子单元间的同步机制通过子单元间同步控制器来实现。动态可重构处理器可从数据流和配置流的角度去被描述。数据流的角度是指从对数据流的处理的角度出发,遍历数据流所经过的动态可重构处理器内的各模块,提出各模块所需的功能。从数据流的角度出发,动态可重构处理器在结构上可分为以下四个部分:
1.数据转移装置
a)数据转移装置用于将数据从数据存储装置读出,并写入另一数据存储装置,使数据在数据存储装置之间转移。最终实现将数据写入处理单元阵列,处理单元阵列运行完后,将处理单元阵列的结果数据读出。
b)数据转移装置分为5个:外部数据读入装置,内外部数据转换装置,内部数据读入装置,内部数据写出装置,外部数据写出装置。按数据流的流动方向,具体说明如下。
c)外部数据读入装置:
i.用于将动态可重构处理器外待处理的数据读入动态可重构处理器内,缓存于外部数据缓存器。
d)内外部数据转换装置:
i.用于将外部数据缓存器内缓存的外部数据分发至内部数据存储器或直接分发至处理单元阵列,这取决于此外部数据是否可直接被处理单元阵列处理和此数据是否将多次被处理。
e)内部数据读入装置
i.用于将内部数据存储器内存储的当前子单元的内部数据,并在一定程度上进行整合,最终将整合后的数据写入到处理单元阵列。
f)内部数据写出装置
i.用于将处理单元阵列的结果数据读出,再写入至处理单元阵列供紧接着运行处理单元阵列时使用,或写入至内部数据存储器将数据缓存起来,或写入内部数据缓存器待输出至处理器外。
g)外部数据写出装置:
i.用于将缓存于内部数据缓存器的子单元的结果数据输出至处理器外。
2.数据存储装置
a)分为4个,具体说明如下。
b)外部数据缓存器:
i.用于将读入的外部数据缓存,待需要时被读出。
c)内部数据存储器
i.用于对处理单元阵列的结果数据进行暂存,待需要时被读出,还供在处理器内部使用。
d)内部数据缓存器
i.用于对处理单元阵列的结果数据进行缓存,待输出至处理器外。
3.运算单元
a)运算单元即处理单元阵列,详见图1。
b)处理单元是一个算术逻辑运算单元,可实现基本的算术运算功能和逻辑运算功能以及一些定制的算术逻辑运算功能。
c)处理单元之间通过路由单元连接,以实现处理单元之间的灵活且快速的数据传递。
d)整个处理单元阵列通过时序控制单元控制,以协调处理单元阵列的输入、运算、输出之间的时序关系。
e)处理单元阵列可实现对大批量数据进行循环操作的快速处理。
4.同步控制装置
a)同步控制装置即子单元间同步控制器。
b)其实现多个子单元(1个至N个,N为子单元个数)均完成其各自的指定子任务后多个子单元(此处的多个可与之前的多个不一致)才可执行其各自子任务序列中的下一个子任务。
c)子单元间同步控制器实现了某任务在被划分为多个子任务后,分发至多个子单元并行执行,多个子单元并行执行完多个子任务后的同步。同步后才可开始下一任务的并行化执行。
实施例:
参照图2,示出了本发明的一种动态可重构处理器内子单元间进行数据交互的系统的示意图,所述系统包括:
子单元间数据交互暂存器201,用于存储子单元间需要交换的数据;
子单元间数据交互装置202,用于按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据;所调用数据运算后的结果数据存储于子单元数据存储器204中;
内部数据写出装置203,用于读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中。
子单元间数据交互暂存器内部储存的数据为子单元间交互的数据,由内部数据写出装置对子单元间数据交互暂存器进行写操作,子单元间数据交互装置对子单元间数据交互暂存器进行读操作。
内部数据写出装置读取的是子单元间的交互数据,取的数据来源于子单元内部的存储器,此装置被多个子单元共享或每个子单元内部都有一个内部数据写出装置,供每个子单元单独使用
子单元间数据交互装置,读取的数据是子单元间数据交互暂存器里面存储的数据,更为具体的讲是子单元需要从其他子单元调用的数据。
写的对象是各个子单元内部的内部数据存储器。
当此装置位于子单元外部,是共享装置,用此装置向任何需要数据的子单元写入数据,当此装置位于各个子单元内部时,任何子单元需要其他子单元的数据,直接由内部的子单元间数据交互装置读入数据。
也即,一个动态可重构处理器内子单元间进行数据交互的系统包括一个或多个子单元间数据交互装置,该装置位于动态可重构处理器中的子单元内、和\或子单元外。
同样的,一个动态可重构处理器内子单元间进行数据交互的系统包括一个或多个内部数据写出装置,该装置位于动态可重构处理器中的子单元内、和\或子单元外。
参见图3,示出了本发明所述的一种动态可重构处理器内子单元间进行数据交互的方法流程图,所述方法具体包括:
步骤S301,按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据进行运算,并将运算的结果数据存储于子单元数据存储器中;
步骤S302,读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中。
实际应用中,通常是将需要交互的结果数据通过内部数据写出装置从子单元内读出,写入子单元间数据交互暂存器,将暂存在子单元间数据交互暂存器内的交互数据读出,通过子单元间数据交互装置写入另一个需要交互数据的子单元内的数据存储器。
交互数据写入到子单元间数据交互暂存器可采用两种方式:子单元内的内部数据写出装置和位于子单元外部的共享的内部数据写出装置。
从子单元间数据交互暂存器读取交互数据到子单元内部数据存储器可采用两种方式:位于子单元外部的共享的子单元间数据交互装置和位于子单元内部的供每个子单元独立使用的子单元间数据交互装置。
子单元间数据交互时的同步控制通过动态可重构处理器内的同步控制单元来保证。
也即,实际应用中按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据的工作由一个或多个子单元间数据交互装置完成,具体的,动态可重构处理器内多个子单元共享一个子单元间数据交互装置,或各自独享一个子单元间数据交互装置。
同样的,读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中的工作由一个或多个内部数据写出装置完成,具体的,动态可重构处理器内多个子单元共享一个内部数据写出装置,或各自独享一个内部数据写出装置。
下面通过列举几种实际应用中的实例对本发明的内容做进一步介绍:
假设子单元1需要子单元2的结果数据。第一步:当子单元2运算结束后,子单元2的结果数据通过内部数据写出装置写入到子单元间数据交互暂存器;当子单元1做好接受交互数据的时候(由子单元间同步控制器控制),由子单元间数据交互装置读出子单元间数据交互暂存器内存放的交互数据并写入到子单元1的内部数据存储器。
假设子单元1需要子单元2和子单元3的结果数据。当子单元2运算结束后,子单元2的结果数据通过内部数据写出装置写入到子单元间数据交互暂存器;当子单元3运算结束后,子单元3的结果数据通过内部数据写出装置写入到子单元间数据交互暂存器;当子单元1做好接受交互数据的时候(由子单元间同步控制器控制),由子单元1子单元间数据交互装置读出子单元间数据交互暂存器内存放的交互数据并写入到子单元1的内部数据存储器。
假设子单元4,5需要子单元2,3的结果数据。当子单元2运算结束后,子单元2的结果数据通过子单元2的内部数据写出装置写入到子单元间数据交互暂存器;当子单元3运算结束后,子单元3的结果数据通过子单元3的内部数据写出装置写入到子单元间数据交互暂存器;当子单元4做好接受交互数据的时候(由子单元间同步控制器控制),由子单元4的子单元间数据交互装置读出子单元间数据交互暂存器内存放的交互数据并写入到子单元4的内部数据存储器;当子单元5做好接受交互数据的时候(由子单元间同步控制器控制),由子单元5的子单元间数据交互装置读出子单元间数据交互暂存器内存放的交互数据并写入到子单元5的内部数据存储器。
以上对本发明所提供的一种动态可重构处理器内子单元间进行数据交互的系统和方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种动态可重构处理器内子单元间进行数据交互的系统,其特征在于,所述系统包括:
子单元间数据交互暂存器,用于存储子单元间需要交互的数据;
子单元间数据交互装置,用于按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据;所调用数据运算后的结果数据存储于子单元数据存储器中;
内部数据写出装置,用于读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中。
2.如权利要求1所述系统,其特征在于:
所述动态可重构处理器内子单元间进行数据交互的系统包括一个或多个子单元间数据交互装置。
3.如权利要求1所述的系统,其特征在于:
所述子单元间数据交互装置位于动态可重构处理器中的子单元内、和\或子单元外。
4.如权利要求1所述的系统,其特征在于:
所述动态可重构处理器内子单元间进行数据交互的系统包括一个或多个内部数据写出装置。
5.如权利要求1所述的系统,其特征在于:
所述内部数据写出装置位于动态可重构处理器中的子单元内、和\或子单元外。
6.一种动态可重构处理器内子单元间进行数据交互的方法,其特征在于,所述方法包括:
按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据进行运算,并将运算的结果数据存储于子单元数据存储器中;
读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中。
7.如权利要求6所述的方法,其特征在于:
所述按照子单元的运算需求从子单元间数据交互暂存器中读取其需从其它子单元调用的数据的工作由一个或多个子单元间数据交互装置完成。
8.如权利要求6所述的方法,其特征在于:
所述动态可重构处理器内多个子单元共享一个子单元间数据交互装置,或各自独享一个子单元间数据交互装置。
9.如权利要求6所述的方法,其特征在于:
所述读取子单元数据存储器中的子单元间交互数据,并写到子单元数据交互暂存器中的工作由一个或多个内部数据写出装置完成。
10.如权利要求6所述的方法,其特征在于:
所述动态可重构处理器内多个子单元共享一个内部数据写出装置,或各自独享一个内部数据写出装置。
CN2011101403608A 2011-05-27 2011-05-27 动态可重构处理器内子单元间进行数据交互的系统和方法 Pending CN102207852A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101403608A CN102207852A (zh) 2011-05-27 2011-05-27 动态可重构处理器内子单元间进行数据交互的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101403608A CN102207852A (zh) 2011-05-27 2011-05-27 动态可重构处理器内子单元间进行数据交互的系统和方法

Publications (1)

Publication Number Publication Date
CN102207852A true CN102207852A (zh) 2011-10-05

Family

ID=44696703

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101403608A Pending CN102207852A (zh) 2011-05-27 2011-05-27 动态可重构处理器内子单元间进行数据交互的系统和方法

Country Status (1)

Country Link
CN (1) CN102207852A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105283872A (zh) * 2013-04-19 2016-01-27 甲骨文国际公司 为sql处理缓存外部数据源

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
EP0935189A2 (en) * 1998-02-04 1999-08-11 Texas Instruments Incorporated Reconfigurable co-processor with multiple multiply-accumulate units
CN1391178A (zh) * 2001-06-12 2003-01-15 西门子公司 具有共享工作存储器的多处理器系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
EP0935189A2 (en) * 1998-02-04 1999-08-11 Texas Instruments Incorporated Reconfigurable co-processor with multiple multiply-accumulate units
CN1391178A (zh) * 2001-06-12 2003-01-15 西门子公司 具有共享工作存储器的多处理器系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105283872A (zh) * 2013-04-19 2016-01-27 甲骨文国际公司 为sql处理缓存外部数据源
CN105283872B (zh) * 2013-04-19 2019-01-22 甲骨文国际公司 为sql处理缓存外部数据源

Similar Documents

Publication Publication Date Title
CN100535850C (zh) 用于在编程引擎之间传送数据的方法和装置
CN101055644B (zh) 绘图处理装置及其处理指令、数据和逻辑单元操作的方法
CN108470009B (zh) 处理电路及其神经网络运算方法
US11803508B2 (en) Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit
EP2372530A1 (en) Data processing method and device
CN112463719A (zh) 一种基于粗粒度可重构阵列实现的存内计算方法
CN102073543A (zh) 通用处理器与图形处理器融合系统及其融合方法
CN102402415B (zh) 一种动态可重构阵列内数据缓存的装置及方法
CN102306141B (zh) 一种描述动态可重构阵列配置信息的方法
CN101625635B (zh) 一种处理循环任务的方法、系统和设备
CN102279818A (zh) 支持有限共享的向量数据访存控制方法及向量存储器
CN103714026A (zh) 一种支持原址数据交换的存储器访问方法及装置
CN108874730B (zh) 一种数据处理器及数据处理方法
US10659396B2 (en) Joining data within a reconfigurable fabric
US20180212894A1 (en) Fork transfer of data between multiple agents within a reconfigurable fabric
CN102236632B (zh) 一种层次化描述动态可重构处理器配置信息的方法
CN102279729A (zh) 动态可重构阵列调用配置信息的方法、缓存器和处理器
CN102184090B (zh) 一种动态可重构处理器及其固定数的调用方法
CN102207850B (zh) 一种动态可重构处理器中层次化执行配置流的方法
CN102207852A (zh) 动态可重构处理器内子单元间进行数据交互的系统和方法
CN102200961B (zh) 一种动态可重构处理器内子单元的扩展方法
CN102393814B (zh) 一种由软件方式生成动态可重构处理器配置信息的系统
CN102207851B (zh) 一种动态可重构处理器内调用立即数的方法
CN112486904A (zh) 可重构处理单元阵列的寄存器堆设计方法及装置
CN102207892B (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20111005