CN102207927B - 动态可重构处理器之间的数据传输方法、处理器和系统 - Google Patents
动态可重构处理器之间的数据传输方法、处理器和系统 Download PDFInfo
- Publication number
- CN102207927B CN102207927B CN201110140377.3A CN201110140377A CN102207927B CN 102207927 B CN102207927 B CN 102207927B CN 201110140377 A CN201110140377 A CN 201110140377A CN 102207927 B CN102207927 B CN 102207927B
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- dynamic reconfigurable
- memory
- writing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000005540 biological transmission Effects 0.000 title claims abstract description 18
- 230000015654 memory Effects 0.000 claims abstract description 59
- 230000003993 interaction Effects 0.000 claims description 48
- 108010001267 Protein Subunits Proteins 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Landscapes
- Logic Circuits (AREA)
Abstract
本发明公开了一种动态可重构处理器之间的数据传输方法、处理器和系统,方法包括:第一动态可重构处理器将数据写入到多个动态可重构处理器所连接的存储器内的对应区域,同时设置所述数据的访问次数;第二动态可重构处理器判断出所述访问次数有效,读取所述对应区域内数据。本发明还公开了一种动态可重构处理器、以及动态可重构处理器之间的数据传输系统。通过设定的访问次数,可有效实现处理器之间的数据传输。通过设置访问次数,在有效的访问次数结束后,防止其它处理器的误读、误写。本发明的实施例还可在读写之前,判断当前的存储器状态,从而避免处理器相互之间的干扰。
Description
技术领域
本发明涉及处理器之间的数据传输,特别是指一种动态可重构处理器之间的数据传输方法、处理器和系统。
背景技术
动态可重构处理器其较之以往的单核处理器、专用芯片、现场可编程逻辑阵列有着良好的技术优势,是未来电路结构发展的一个方向。
动态可重构处理器内通常具有多个子单元,各个子单元之间也可以进行数据交互和处理。每个子单元内往往含有多个算数逻辑单元,且数量巨大,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算数逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。
动态可重构处理器通常单独使用,每个子单元分别处理相应的任务。由于功能的需求,一些数据量较大的任务需要多个动态可重构处理器联合处理,但目前的多个动态可重构处理器之间,尚无法进行数据交互。
发明内容
有鉴于此,本发明的实施例在于提供一种动态可重构处理器之间的数据传输方法、处理器和系统,以解决上述一些数据量较大的任务需要多个动态可重构处理器联合处理,动态可重构处理器之间尚无法进行数据交互的问题。
为解决上述问题,本发明的实施例提供一种动态可重构处理器之间的数据传输方法,包括:
第一动态可重构处理器将数据写入到多个动态可重构处理器所连接的存储器内的对应区域,同时设置所述数据的访问次数;
第二动态可重构处理器判断出所述访问次数有效,读取所述对应区域内数据。
本发明的实施例提供一种动态可重构处理器,包括内部数据写出装置和处理器间数据交互装置;
所述内部数据写出装置,包括:
写入模块,用于将数据写入到其连接的存储器内各个区域中的一个对应区域;
赋值模块,用于在所述存储器内设置所述对应区域存储的数据的访问次数;
所述处理器间数据交互装置,包括:
判断模块,用于判断存储器内各个区域中的一个区域的访问次数是否有效;
读取模块,用于在所述判断模块判断有效后,读取区域内的数据。
本发明的实施例提供一种动态可重构处理器之间的数据传输系统,包括至少两个动态可重构处理器,以及所述动态可重构处理器连接的存储器;其中,
所述存储器内设置有每个动态可重构处理器对应的存储数据的区域、以及该区域访问次数的寄存器;
第一动态可重构处理器,用于将数据写入到多个动态可重构处理器所连接的存储器内的对应区域,同时在所述存储器中其自身对应的寄存器内设置所述数据的访问次数;
第二动态可重构处理器,用于判断出所述访问次数有效,读取所述对应区域内数据。
本发明的实施例的方法、处理器和系统,通过设定的访问次数,可有效实现处理器之间的数据传输。通过设置访问次数,可限定数据的读取次数,在有效的访问次数结束后,防止其它处理器的误读。本发明的实施例还可在读写之前,判断当前的存储器状态,从而避免处理器相互之间的干扰。
附图说明
图1是本发明的实施例中的结构示意图;
图2是本发明的实施例中动态可重构处理器之间的数据传输示意图;
图3是图2中数据处理器间数据交互暂存器的结构示意图;
图4是本发明实施例一的流程图;
图5是本发明实施例二的流程图;
图6是本发明实施例三的动态可重构处理器结构示意图;
图7是本发明实施例四的系统结构示意图。
具体实施方式
为清楚说明本发明中的方案,下面给出优选的实施例并结合附图详细说明。
本发明的实施例在多个动态可重构处理器之间进行数据交互,下面首先阐述本发明的实施例中选用的一种动态可重构处理器的工作流程,参见图1,包括:
1、动态可重构处理器由外部数据读入装置将处理器外存储器内待处理的数据读入处理器内,分发至多个子单元处理内的外部数据缓存器。
2、多个子单元将数据从各自的外部数据缓存器读出,再进行处理。多个子单元同时处理,以达并行处理的效果。各子单元处理完后,将结果数据存于各自的内部数据缓存器。
3、外部数据写出装置将结果数据从各子单元的内部数据缓存器读出,并写出到处理器外部存储器。
在上述的处理过程中,子单元间的数据交互时,由子单元1向子单元间数据交互暂存器写入数据,子单元2从子单元间数据交互暂存器读出此数据来实现。使用时还需结合子单元间的同步机制,即子单元1向子单元间数据交互暂存器写完数据后,子单元2才可开始读取子单元间数据交互暂存器。
子单元间的同步机制通过子单元间同步控制器来实现。子单元间数据交互装置,用于将子单元间数据交换暂存器内存储的其它子单元的结果数据读出,并在一定程度上进行整合,最终将整合后的数据分发至当前子单元的内部数据存储器或直接分发至处理单元阵列。
本发明的实施例采用图2所示的多个动态可重构处理器连接的结构示意图,在多个动态可重构处理器之间,加入了处理器间数据交互暂存器,在该实施例中,具有N个动态可重构处理器。每个动态可重构处理器内,设置有处理器间数据交互装置。在每个子单元内划分出两个用于存储数据的内部数据存储区域,例如子单元1内划分出的用于放置读取到的数据的内部数据存储器14和用于放置写出数据的内部数据存储器15。
图2中的处理器间数据交互暂存器的结构如图3所示,在其内部设置有一个处理器间数据交互存储器和N个可读寄存器,N为进行数据交互的多个动态可重构处理器的个数。其中,处理器间数据交互存储器具有N个存储区域,用于存储每个动态可重构处理器的数据,每个寄存器用于存储该区域的访问次数。
下面结合附图详细说明本发明方法的实施例一,在图2中的连接结构中,各个处理器、及其内部的子单元采用相同的结构,各个动态可重构处理器在相互传输数据的过程可参见图4,包括以下步骤:
步骤S41:第一动态可重构处理器将数据写入到多个动态可重构处理器所连接的存储器内的对应区域,同时设置所述数据的访问次数。
其中,第一动态可重构处理器为图2中的动态可重构处理器11,动态可重构处理器11可通过自身或内部的内部数据写出装置,读取放置需要写出数据的内部数据存储器15,将读取的数据写入到存储器,即处理器间数据交互暂存器中的对应区域,同时设置存储的数据的访问次数。
步骤S42:第二动态可重构处理器判断出所述访问次数有效,读取所述对应区域内数据。
其中,第二动态可重构处理器为图2中的动态可重构处理器12,其内部的处理器间数据交互装置需要读取第一动态可重构处理器写入的数据时,先读取对应区域内的访问次数,如果判断出访问次数在有效的范围内,则读取对应区域内数据。
通过上述的步骤,即可实现各个动态可重构处理器之间进行数据传输。通过设置访问次数,可限定数据的读取次数,在有效的访问次数结束后,防止其它处理器的误读。
参见图2和图5,图2中的动态可重构处理器11包括子单元1和子单元2等多个子单元;动态可重构处理器12包括子单元3和子单元4等多个子单元,子单元3内划分出的用于放置读取到的数据的内部数据存储器16和用于放置写出数据的内部数据存储器17。
下面说明本发明的实施例二,以说明子单元1的数据传输至另一个处理器的子单元3中的过程,包括以下步骤:
S51:子单元1的内部数据写出装置不断的判断处理器间数据交互暂存器是否被占用,可判断处理器间数据交互暂存器的工作状态的标志位判断是否占用,如果发现没有被占用,则执行步骤S52;
S52:子单元1的内部数据写出装置判断寄存器内最近一次自身设置的访问次数是否无效,如果无效,则执行步骤S53;
访问次数可以为零或正整数,如果为零,则表示无效;如果为正整数,则表示访问次数有效,即还会有其它处理器访问并读取数据。
子单元1的内部数据写出装置判断存储访问次数的寄存器,为其所在的动态可重构处理器11对应的寄存器。
S53:子单元1的内部数据写出装置读取数据;
子单元1的内部数据写出装置读取内部数据存储器15内存储的数据。
S54:子单元1的内部数据写出装置写出数据;
将读取的数据写出到处理器间数据交互暂存器内的一个对应区域,该对应区域位于处理器间数据交互暂存器内的处理器间数据交互存储器中,同时在处理器间数据交互暂存器内的动态可重构处理器11的对应寄存器中设置访问次数为1,该对应的寄存器可也可称为第一寄存器。
S55:子单元3连接的处理器间数据交互装置32不断的判断处理器间数据交互暂存器是否被占用,如果发现没有被占用,则执行步骤S56;
S56:处理器间数据交互装置32判断第一寄存器内的访问次数非零,属于有效的访问次数;
S57:处理器间数据交互装置32访问处理器间数据交互暂存器,读取子单元1存储在对应区域的数据。
S58:处理器间数据交互装置32将读取到的数据写入到子单元3的内部数据存储器16内。
S59:处理器间数据交互装置32修改处理器间数据交互暂存器内第一寄存器的访问次数。
处理器间数据交互装置32将访问次数减1,访问次数变为零。
通过上述的步骤,即可实现处理器之间的数据传输。同理,按照上述步骤,子单元3的内部数据写出装置也可读取内部数据存储器17内的数据,并写入到处理器间数据交换暂存器内,同时在处理器间数据交换暂存器内,修改动态可重构处理器12所对应寄存器内存储的访问次数。子单元1相连的处理器间数据交互装置31读取处理器间数据交互暂存器内数据,并写回至内部数据存储器14内。从而实现动态可重构处理器12的子单元3的数据传输至动态可重构处理器11的子单元1内。
上述的步骤中,各个处理器内的子单元之间进行数据交互的过程中,可按照预先设置的时序规则控制进行数据交互,如按照程序的触发,控制其中的某个子单元写出数据、写入数据。子单元在处理器间数据交换暂存器内的存储器和寄存器内的寻址规则,可固化在处理器内部,也可由外部芯片或程序控制其在指定位置寻址。
本发明的数据传输过程,不局限于在多个处理器之间,每个处理器内一个子单元参与数据交互,还可以是多个处理器之间,每个处理器内的多个子单元参与数据交互。
通过设置的访问状态和访问次数,可有效防止后续的误读、误写操作,并可保证有效的读写操作。提高了读写的有效性。
本发明的实施例三还提供一种动态可重构处理器,参见图5,包括:内部数据写出装置和处理器间数据交互装置;
所述内部数据写出装置,包括:
写入模块,用于将数据写入到其连接的存储器内各个区域中的一个对应区域;
赋值模块,用于在所述存储器内设置所述对应区域存储的数据的访问次数;
所述处理器间数据交互装置,包括:
判断模块,用于判断存储器内各个区域中的一个区域的访问次数是否有效;
读取模块,用于在所述判断模块判断有效后,读取区域内的数据。
优选地,所述处理器间数据交互装置还包括:
修改模块,用于在所述读取模块读取对应区域内数据之后,修改该区域对应的访问次数。
优选地,所述内部数据写出装置还包括:
写入状态判断模块,用于如果判断所述存储器处于空闲状态、且自身最近一次设置的访问次数处于无效状态,则触发所述写入模块;
所述处理器间数据交互装置还包括:
读取状态判断模块,用于在所述判断模块执行操作前,判断出所述存储器处于空闲状态,则触发所述判断模块。
优选地,所述动态可重构处理器包括多个子单元,每个子单元内包括一个所述内部数据写出装置,所述多个子单元连接一个处理器间数据交互装置。
本发明的实施例还四提供一种动态可重构处理器之间的数据传输系统,参见图7,包括至少两个动态可重构处理器,以及所述动态可重构处理器连接的存储器;其中,
所述存储器内设置有每个动态可重构处理器对应的存储数据的区域、以及该区域访问次数的寄存器;
第一动态可重构处理器,用于将数据写入到多个动态可重构处理器所连接的存储器内的对应区域,同时在所述存储器中其自身对应的寄存器内设置所述数据的访问次数;
第二动态可重构处理器,用于判断出所述访问次数有效,读取所述对应区域内数据。
对于本发明各个实施例中所阐述的方法、处理器和系统,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种动态可重构处理器之间的数据传输方法,其特征在于,包括:
第一动态可重构处理器通过自身或内部的内部数据写出装置,将数据写入到多个动态可重构处理器所连接的存储器内的对应区域,同时设置所述数据的访问次数;
第二动态可重构处理器内部的处理器间数据交互装置读取所述第一动态可重构处理器写入的数据时,读取所述对应区域内的访问次数并在判断出所述访问次数有效,读取所述对应区域内数据,将读取到的数据写入到内部数据存储器内,修改所述访问次数。
2.根据权利要求1所述的方法,其特征在于,所述写入之前,还包括:
如果判断所述存储器处于空闲状态、且自身最近一次设置的访问次数处于无效状态,则执行所述写入操作。
3.根据权利要求1所述的方法,其特征在于,所述判断出所述访问次数有效之前,还包括:
如果判断所述存储器处于空闲状态,则执行所述判断访问次数的操作。
4.根据权利要求1所述的方法,其特征在于,所述动态可重构处理器内包括多个子单元;
每个所述子单元内的内部数据写出装置执行所述写入操作;
所述多个子单元连接的处理器间数据交互装置执行所述读取操作。
5.一种动态可重构处理器,其特征在于,包括内部数据写出装置和处理器间数据交互装置;
所述内部数据写出装置,包括:
写入模块,用于将数据写入到动态可重构处理器连接的存储器内各个区域中的一个对应区域;
赋值模块,用于在所述存储器内设置所述对应区域存储的数据的访问次数;
所述处理器间数据交互装置,包括:
判断模块,用于判断存储器内各个区域中的一个区域的访问次数是否有效;
读取模块,用于在所述判断模块判断有效后,读取区域内的数据,将读取到的数据写入到内部数据存储器内;
修改模块,用于在所述读取模块读取对应区域内数据之后,修改该区域对应的访问次数。
6.根据权利要求5所述的处理器,其特征在于,所述内部数据写出装置还包括:
写入状态判断模块,用于如果判断所述存储器处于空闲状态、且自身最近一次设置的访问次数处于无效状态,则触发所述写入模块;
所述处理器间数据交互装置还包括:
读取状态判断模块,用于在所述判断模块执行操作前,判断出所述存储器处于空闲状态,则触发所述判断模块。
7.根据权利要求5所述的处理器,其特征在于,所述动态可重构处理器包括多个子单元,每个子单元内包括一个所述内部数据写出装置,所述多个子单元连接一个处理器间数据交互装置。
8.一种动态可重构处理器之间的数据传输系统,其特征在于,包括至少两个动态可重构处理器,以及所述动态可重构处理器连接的存储器;其中,
所述存储器内设置有每个动态可重构处理器对应的存储数据的区域、以及该区域访问次数的寄存器;
第一动态可重构处理器,用于通过自身或内部的内部数据写出装置,将数据写入到多个动态可重构处理器所连接的存储器内的对应区域,同时在所述存储器中其自身对应的寄存器内设置所述数据的访问次数;
第二动态可重构处理器,用于内部的处理器间数据交互装置读取所述第一动态可重构处理器写入的数据时,读取所述对应区域内的访问次数并在判断出所述访问次数有效,读取所述对应区域内数据,将读取到的数据写入到内部数据存储器内,修改所述访问次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110140377.3A CN102207927B (zh) | 2011-05-27 | 2011-05-27 | 动态可重构处理器之间的数据传输方法、处理器和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110140377.3A CN102207927B (zh) | 2011-05-27 | 2011-05-27 | 动态可重构处理器之间的数据传输方法、处理器和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102207927A CN102207927A (zh) | 2011-10-05 |
CN102207927B true CN102207927B (zh) | 2016-01-13 |
Family
ID=44696766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110140377.3A Active CN102207927B (zh) | 2011-05-27 | 2011-05-27 | 动态可重构处理器之间的数据传输方法、处理器和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102207927B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1159630A (zh) * | 1995-07-13 | 1997-09-17 | 富士通株式会社 | 信息处理系统 |
CN101136070A (zh) * | 2007-10-18 | 2008-03-05 | 复旦大学 | 基于可重构架构的多协议射频标签读写器基带处理器 |
CN101782893A (zh) * | 2009-01-21 | 2010-07-21 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
CN102057359A (zh) * | 2009-04-10 | 2011-05-11 | 松下电器产业株式会社 | 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 |
CN102073481A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 多核dsp可重构专用集成电路系统 |
-
2011
- 2011-05-27 CN CN201110140377.3A patent/CN102207927B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1159630A (zh) * | 1995-07-13 | 1997-09-17 | 富士通株式会社 | 信息处理系统 |
CN101136070A (zh) * | 2007-10-18 | 2008-03-05 | 复旦大学 | 基于可重构架构的多协议射频标签读写器基带处理器 |
CN101782893A (zh) * | 2009-01-21 | 2010-07-21 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
CN102057359A (zh) * | 2009-04-10 | 2011-05-11 | 松下电器产业株式会社 | 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路 |
CN102073481A (zh) * | 2011-01-14 | 2011-05-25 | 上海交通大学 | 多核dsp可重构专用集成电路系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102207927A (zh) | 2011-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296217B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
CN100375067C (zh) | 异构多核微处理器局部空间共享存储方法 | |
US8661440B2 (en) | Method and apparatus for performing related tasks on multi-core processor | |
CN103927277A (zh) | Cpu和gpu共享片上高速缓存的方法及装置 | |
US8392669B1 (en) | Systems and methods for coalescing memory accesses of parallel threads | |
GB2458554A (en) | Coalescing memory accesses from multiple threads in a parallel processing system | |
US7948498B1 (en) | Efficient texture state cache | |
EP3407184A2 (en) | Near memory computing architecture | |
TW201344435A (zh) | 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備 | |
CN113032162B (zh) | 一种基于共享内存备份机制的多进程通讯方法 | |
EP2800008A1 (en) | Method and system for multiprocessors to share memory | |
US8397005B2 (en) | Masked register write method and apparatus | |
CN102402422A (zh) | 处理器组件及该组件内存共享的方法 | |
US9606923B2 (en) | Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program | |
JP2012043031A (ja) | 共有キャッシュメモリ装置 | |
CN107544937A (zh) | 一种协处理器、数据写入方法和处理器 | |
CN102236622A (zh) | 提高动态存储器带宽利用率的动态存储器控制器及方法 | |
JP2009288977A (ja) | キャッシュメモリ制御装置、半導体集積回路、およびキャッシュメモリ制御方法 | |
CN102207927B (zh) | 动态可重构处理器之间的数据传输方法、处理器和系统 | |
US20090213755A1 (en) | Method for establishing a routing map in a computer system including multiple processing nodes | |
CN102542525A (zh) | 一种信息处理设备以及信息处理方法 | |
CN106057226B (zh) | 双端口存储系统的存取控制方法 | |
EP1231540A2 (en) | Direct memory access controller | |
CN106897021A (zh) | 一种读写数据的方法和装置 | |
CN113157602A (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 |