一种动态可重构处理器间一对一数据交互方法及装置 【技术领域】
本发明涉及嵌入式系统领域, 特别是动态可重构处理器领域。背景技术 动态可重构处理器是一种新生的处理器构架, 其较之以往的单核处理器、 专用芯 片、 现场可编程逻辑阵列有着显著的优势, 是未来电路结构发展的一个方向。
首先, 动态可重构处理器内往往含有多个算数逻辑单元, 且数量巨大, 称之为众核 阵列。阵列内部配以灵活度高的路由单元, 实现算数逻辑单元之间多样化的互联。因此, 经 路由单元连接后的众核阵列可实现对数据流的高速处理, 较传统的单核以及少核处理器在 性能上有着巨大的优势。同时, 较固化的专用电路在灵活性上也有着巨大的优势。
其次, 较传统的静态可重构电路——现场可编程逻辑阵列而言, 动态可重构处理 器有动态的特点, 即在电路运行过程中可动态的切换电路的功能, 而非以往静态可重构电 路一沉不变的不改变电路功能, 只是在电路运行之前烧写电路功能, 对电路进行初始化。 这 样做的好处在于通过时分复用的方式减少了电路的规模, 原因在于之前的电路结构的全映 射现在变为分块映射, 而块与块之间恰好采取了动态切换的方式。
但是, 现有的单个动态可重构处理器会因为处理器规模不够大而产生数据处理速 度慢, 数据并行效率低的问题。
发明内容 本发明所要解决的技术问题是提供一种动态可重构处理器间一对一数据交互方 法及装置, 提高数据的并行效率。
为了解决上述问题, 本发明公开了一种 1 动态可重构处理器间一对一数据交互方 法, 包括 :
步骤 101、 第一动态可重构处理器的子单元的数据通过第一动态可重构处理器的 主交互接口写入第二动态可重构处理器的数据交互存储器 ;
步骤 102、 第二动态可重构处理器的处理器间数据交互装置读取本处理器内数据 交互存储器里存储的数据至第二动态可重构处理器的子单元。
进一步的, 步骤 101 具体包括 :
A1、 第一动态可重构处理器子单元的数据通过子单元的内部数据写出装置竞争机 制获取的主交互接口的使用权 ;
A2、 当第二动态可重构处理器的数据交互存储器不可写, 则所述数据进行等待 ;
当第二动态可重构处理器的数据交互存储器可写, 则写指针指向数据交互存储器 的其中一个半区, 将所述数据写入所述数据交互存储器的其中一个可写的半区, 所述数据 交互存储器的写寄存器数据 +1 ;
A3、 当所述数据交互存储器的写寄存器数据小于 N 时, 转入步骤 A1 ;
当第二动态可重构处理器的写寄存器数据等于 N 时, 写指针从所述其中一个可写
的半区跳至数据交互存储器的另一半区, 写寄存器清零, 转入步骤 A1。
进一步的, 步骤 102 具体包括 :
B1、 当第二动态可重构处理器的数据交互存储器不可读, 则第二动态可重构处理 器的处理器间数据交互装置进行等待 ;
当第二动态可重构处理器的数据交互存储器可读, 则读指针指向其中一个可读的 半区, 由第二动态可重构处理器的处理器间数据交互装置将所述数据交互存储器可读的半 区里存储的数据读取至第二动态可重构处理器, 数据交互存储器的读寄存器数据 +1 ;
B2、 当所述数据交互存储器的读寄存器数据等于 M, 读指针跳转至另一半区, 所述 读寄存器清零, 转入步骤 B1 ; 当数据交互存储器的读寄存器数据小于于 M, 转入步骤 B1。
进一步的, 所述的竞争机制包括先导先得制, 或固定优先级制。
进一步的, 所述的 N 为可配置信息。
进一步的, 所述的 M 为可配置信息。
本发明还公开了一种动态可重构处理器间一对一数据交互装置, 包括动态可重构 处理器一和动态可重构处理器二, 其中,
动态可重构处理器一, 包括主交互接口、 子单元、 数据交互存储器和处理器间数据 交互装置 ; 主交互接口与动态可重构处理器二的数据交互存储器相连接 ; 处理器间数据交 互装置与数据交互存储器相连接 ; 主交互接口通过子单元与处理器间数据交互装置连接 ;
动态可重构处理器二, 包括主交互接口、 子单元、 数据交互存储器和处理器间数据 交互装置 ; 主交互接口与动态可重构处理器一的数据交互存储器相连接 ; 处理器间数据交 互装置与数据交互存储器相连接 ; 主交互接口通过子单元与处理器间数据交互装置连接 ;
进一步的, 动态可重构处理器一的每个子单元包括内部数据存储器一、 内部数据 存储器二和内部数据写出装置 ; 内部数据存储器二与内部数据写出装置连接 ; 内部数据写 出装置与动态可重构处理器一的主交互接口连接 ; 内部数据存储器一与所动态可重构处理 器一的处理器间数据交互装置连接 ;
动态可重构处理器二的每个子单元包括内部数据存储器一、 内部数据存储器二和 内部数据写出装置 ; 内部数据存储器二与内部数据写出装置连接 ; 内部数据写出装置与动 态可重构处理器二的主交互接口连接 ; 内部数据存储器一与所第二动态可重构处理器的处 理器间数据交互装置连接。
与现有技术相比, 本发明具有以下优点 :
本发明通过在第一动态可重构处理器里和第二动态可重构处理器里各增加一个 主交互接口和数据交互存储器, 第一动态可重构处理器的主交互接口连接第二动态可重构 处理器的数据交互存储器, 而第二动态可重构处理器的主交互接口连接第一动态可重构处 理器的数据交互存储器, 使得两个动态处理器间的数据可以以一对一的方式交互, 从而提 高动态可重构处理器的数据处理速度和数据的并行效率。 附图说明
图 1 是本发明一种动态可重构处理器间一对一数据交互方法的流程图 ; 图 2 是本发明一种动态可重构处理器间一对一数据交互方法数据写入的流程图 ; 图 3 是本发明一种动态可重构处理器间一对一数据交互方法数据读取的流程图 ;图 4 是本发明的一种动态可重构处理器间一对一数据交互装置的结构示意图 ; 图 5 是本发明优选的一种动态可重构处理器间一对一数据交互装置的结构示意图。 具体实施方式
为使本发明的上述目的、 特征和优点能够更加明显易懂, 下面结合附图和具体实 施方式对本发明作进一步详细的说明。
参照图 1, 示出了本发明一种动态可重构处理器间一对一数据交互方法的流程图。
步骤 101、 第一动态可重构处理器的子单元的数据通过主交互接口写入第二动态 可重构处理器的数据交互存储器。
第一动态可重构处理器的主交互接口连接第二动态可重构处理器的数据交互存 储器。当第二动态可重构处理器需要第一动态可重构处理器的某些数据时, 第一动态可重 构处理器的子单元的数据通过主交互接口写入第二处理器的数据交互存储器。
其中, 参照图 2, 示出了本发明一种动态可重构处理器间一对一数据交互方法数据 写入的流程图。 步骤 101 具体包括 :
A1、 第一动态可重构处理器子单元的数据通过子单元的内部数据写出装置竞争机 制获取的主交互接口的使用权。
一般动态可重构处理器中含有多个子单元, 每个子单元需要进行一对一数据交互 的数据都通过内部数据写出装置竞争本处理器的主交互接口的使用权。其中, 每个子单元 中需要进行一对一数据交互的数据来此数据其所在子单元的内部存储器二。
其中, 内部数据写出装置的竞争本动态可重构处理器的主交互接口的竞争机制包 括了先到先得机制或者固定优先级机制。
所述的先到先得机制即当某个第一动态可重构处理器内某个子单元的数据先准 备完毕, 并且需要进行一对一数据交互, 那么此时这数据通过其所在子单元的内部数据写 出装置就先得到本动态可重构处理器的主交互接口的使用权。
所述的固定优先级机制即将动态可重构处理器内部的子单元的数据按事先设定 的子单元优先级顺序使用本动态可重构处理器的主交互接口。例如, 某动态可重构处理器 含有子单元一, 子单元二, 子单元三和子单元四, 设定使用此动态可重构处理器的主交互接 口的优先级为 : 子单元四排第一, 子单元二排第二, 子单元一排第三, 子单元三排第四。 那么 即使子单元二、 子单元三或者子单元四先有需要进行一对一数据交互的数据, 当子单元四 出现需要进行一对一数据交互的数据时, 子单元四的内部数据写出装置就按优先级直接获 得本动态可重构处理器的主交互接口的使用权。其他情况可以据此原理类推。
A2、 当第二动态可重构处理器的数据交互存储器不可写, 则所述数据进行等待 ;
当第二动态可重构处理器的数据交互存储器可写, 则写指针指向数据交互存储器 的其中一个半区, 将所述数据写入所述数据交互存储器的其中一个可写的半区, 所述数据 交互存储器的写寄存器数据 +1。
在步骤 A1 中第一动态可重构处理器内部的某个子单元的内部数据写出装置竞争 到了本动态可重构处理器的主交互接口的使用权后, 先判断第二动态可重构处理器的数据
交互存储器是否可写。
当第二动态可重构处理器的数据交互存储器不可写, 那么第一动态可重构处理器 的某个子单元中需要进行一对一数据交互的数据继续存储在此数据所在的子单元的内部 数据存储器二中。
当第二动态可重构处理器的数据交互存储器可写, 那么写指针指向其中一个半 区, 第一动态可重构处理器的某个子单元中需要进行一对一数据交互 的数据通过此数据 所在的子单元的内部数据写出装置将数据写入第二动态可重构处理器的数据交互存储器 的可写的半区, 并将此数据交互存储器中的写寄存器内的数据 +1, 其中一般写寄存器初始 状态的数据为零。
A3、 当第二动态可重构处理器的写寄存器数据小于 N 时, 转入步骤 A1 ;
当第二动态可重构处理器的写寄存器数据等于 N 时, 写指针从所述其中一个可写 的半区跳至数据交互存储器的另一半区, 写寄存器清零, 转入步骤 A1。
在步骤 A2 数据写入第二动态可重构处理器的数据交互装置后, 先判断此数据交 互装置的写寄存器的数据与 N 的关系, 其中, N 为可配置信息。
当写寄存器的数据小于 N 时, 说明需要进行一对一数据交互的数据个数还不够, 需要继续将数据写入此半区, 那么转入步骤 A1 继续进行本轮一对一数据交互的写入过程。 当写寄存器的数据等于 N 时, 说明需要进行一对一数据交互的数据个数达到要 求, 写指针从所述其中一个可写的半区跳至数据交互存储器的另一半区, 写寄存器清零, 转 入步骤 A1 进行下一轮数据写入工作。
步骤 102、 第二动态可重构处理器的处理器间数据交互装置读取本处理器内数据 交互存储器里存储的数据至第二动态可重构处理器的子单元。
当第一动态可重构处理器中需要进行一对一数据交互的数据写入第二动态可重 构处理器的数据交互存储器中后, 由第二动态可重构处理器的处理器间数据交互装置读取 数据交互存储器里存储的数据至第二动态可重构处理器的子单元。
其中, 参照图 3, 示出了本发明一种动态可重构处理器间一对一数据交互方法数据 写入的流程图。
步骤 102 具体包括 :
B1、 当第二动态可重构处理器的数据交互存储器不可读, 则第二动态可重构处理 器的处理器间数据交互装置进行等待 ;
当第二动态可重构处理器的数据交互存储器可读, 则读指针指向其中一个可读的 半区, 由第二动态可重构处理器的处理器间数据交互装置将所述数 据交互存储器可读的 半区里存储的数据读取至第二动态可重构处理器, 数据交互存储器的读寄存器数据 +1。
首先判断第二动态可重构处理器中的数据交互存储器是否可读。
当第二动态可重构处理器数据交互存储器不可读, 那么第二动态可重构处理器的 处理器间数据交互装置等待出现可读的半区进行读取工作。
当第二动态可重构处理器数据交互存储器可读, 则读指针指向其中一个半区, 第 二态可重构处理器的处理器间数据交互装置从所述数据交互存储器中读取数据, 发送至第 二动态可重构处理器的某一个子单元, 并将读寄存器内的数据 +1。 实际中, 此被读取的数据 发送至第二动态可重构处理器的某一个子单元的内部数据存储器一, 一般读寄存器初始状
态的数据为零。
B2、 当所述的数据交互存储器的读寄存器数据等于 M, 读指针跳转至另一半区, 读 寄存器清零, 转入步骤 B1 ; 当数据交互存储器的读寄存器数据小于于 M, 转入步骤 B1。
当所述的处理器间数据交互装置从所述的数据交互存储器的可读半区读取数据 后, 对所述的读寄存器的数据与 M 进行判断。其中 M 为可配置信息。
当读寄存器中的数据小于 M 时, 说明需要进行一对一数据交互的数据读取不够, 需要继续从此半区读取, 即转入步骤 B1。
当读寄存器中的数据等于 M 时, 说明此轮一对一数据交互的数据已经读取完毕, 读指针跳转至另一半区, 读寄存器清零, 转入步骤 B1 进行下一轮读取工作。
下面以一个动态可重构处理器间进行数据交互为例, 来说明本发明一种动态可重 构处理器间一对一数据交互方法。其中数据可以是多个。
为了便于说明, 首先对于参数进行一些设定, 具体如下 :
(a) 进行一对一数据交互的两个动态可重构处理器内分别有 2 个子单元 ;
(b) 第一动态可重构处理器向第二动态可重构处理器传送 2 个半区交互数据, 交 互数据分 3 次写入, 2 次读取 ;
具体数据交互流程如下 : (1) 第一动态可重构处理器内子单元 1a, 子单元 1b 通过竞争获得主交互接口使用权; (2) 第二动态可重构处理器的数据交互存储器上下两个半区可写, 写指先针指向 上半区, 获得主交互接口使用权的子单元内部数据写出装置将交互数据写入第二动态可重 构处理器的数据交互存储器, 第二动态可重构处理器的数据交互存储器的写寄存器内数据 加1; 若第二动态可重构处理器的数据交互存储器不可写则等待 ;
(3) 重复 1, 2 操作直至第二动态可重构处理器的数据交互存储器写寄存器内数据 为 3, 此半区写入完毕, 写指针跳转至数据交互存储器的下半区, 并将第二动态可重构处理 器的数据交互存储器的写寄存器内数据清零 ;
(4) 重复 1, 2 操作将交互数据写入数据交互存储器下半区, 当第二动态可重构处 理器的数据交互存储器写寄存器内数据为 3 时, 第一动态可重构处理器向第二动态可重构 处理器传送数据完毕, 第二动态可重构处理器数据交互存储器内写寄存器清零, 写指针跳 转至上半区 ;
(5) 第二动态可重构处理器内的处理器间数据交互装置检测处第二动态可重构处 理器内的数据交互存储器状态, 当第二动态可重构处理器的数据交互存储器半区写入完成 后, 第二动态可重构处理器的数据交互存储器可读 ;
(6) 第二动态可重构处理器内的处理器间数据交互装置读取数据交互存储器内交 互数据至第二动态可重构处理器内的子单元 2a 或子单元 2b 的内部数据存储器一, 读取完 成后数据交互存储器读寄存器内数据加 1 ;
(7) 重复 6 操作, 直至数据交互存储器读寄存器数据为 2 时, 上半区读取完毕, 读指 针跳转至数据交互存储器下半区, 并将数据交互存储器读寄存器内数据清零 ;
(8) 重复 5, 6 操作, 直至数据交互存储器读寄存器数据为 2 时, 下半区读取完毕, 读 指针跳转至数据交互存储器上半区, 并将数据交互存储器读寄存器内数据清零 ;
(9) 数据交互完毕。 参照图 4, 示出本发明的一种动态可重构处理器间一对一数据交互装置的结构示意图。 包括动态可重构处理器 100 一和动态可重构处理器二 200, 其中,
动态可重构处理器一 100, 包括主交互接口 101、 子单元、 数据交互存储器 102 和处 理器间数据交互装置 103 ; 主交互接口 101 与动态可重构处理器二 200 的数据交互存储器 202 相连接 ; 处理器间数据交互装置 103 与数据交互存储器 102 相连接 ; 主交互接口 101 通 过子单元与处理器间数据交互装置 103 连接 ;
动态可重构处理器二 200, 包括主交互接口 201、 子单元、 数据交互存储器 202 和处 理器间数据交互装置 203 ; 主交互接口 201 与动态可重构处理器一 100 的数据交互存储器 102 相连接 ; 处理器间数据交互装置 203 与数据交互存储器 202 相连接 ; 主交互接口 201 通 过子单元与处理器间数据交互装置 203 连接 ;
其中, 参照图 5, 示出本发明优选的一种动态可重构处理器间一对一数据交互装置 的结构示意图。
动态可重构处理器一 100 的每个子单元包括内部数据存储器一 105、 内部数据存 储器二 106 和内部数据写出装置 107 ; 内部数据存储器二 106 与内部数据写出装置连接 107 ; 内部数据写出装置 107 与动态可重构处理器一 100 的主交互接口 101 连接 ; 内部数据 存储器一 105 与所动态可重构处理器一 100 的处理器间数据交互装置 103 连接 ;
动态可重构处理器二 200 的子单元包括内部数据存储器一 205、 内部数据存储器 二 206 和内部数据写出装置 207 ; 内部数据存储器二 206 与内部数据写出装置 207 连接 ; 内 部数据写出装置 207 与动态可重构处理器二 200 的主交互接口 201 连接 ; 内部数据存储器 一 205 与所第二动态可重构处理器 200 的处理器间数据交互装置 203 连接。
下面对各个装置进行统一描述 :
1. 子单元内部装置 :
a) 内部数据写出装置 :
i. 内部数据写出装置位于动态可重构处理器的子单元内部, 每个子单元的内部数 据写出装置通过竞争获得主交互接口使用权, 将处理器内需要进行一对一数据交互的数据 通过主交互接口写入另一处理器内的数据交互存储器 ;
ii. 当内部数据写出装置获得主交互接口的使用权, 且另一处理器内的数据交互 存储器为可写时, 内部数据写出装置通过主交互接口向另一处理器内的数据交互存储器写 入交互数据 ;
iii. 内部数据写出装置每次占用主交互接口, 向另一动态可重构处理器的数据交 互存储器写入数据完毕后, 将数据交互存储器内的写寄存器内数据加 1 ;
iv. 内部数据写出装置所写出的交互数据来自于子单元内的内部数据存储器二 ;
v. 内部数据写出装置竞争主交互接口使用权的竞争机制可以采用先到先得或者 固定优先级的方式。
b) 内部数据存储器二
i. 内部数据存储器二用于存储子单元中需要写出的交互数据, 以供子单元的内部 数据写出装置使用。
c) 内部数据存储器一 i. 内部数据存储器一用于存储从处理器间数据交互装置中读取的数据, 以供子单元使用。 2. 主交互接口
a) 主交互接口位于动态可重构处理器内, 用于控制自身处理器多个子单元的内部 数据写出装置向另一动态可重构处理器的数据交互存储器写入交互数据, 在同一时刻只能 有一个内部数据写出装置占用主交互接口 ;
b) 主交互接口一端为动态可重构处理器子单元的内部数据写出装置, 多 个子单 元的内部数据写出装置通过竞争获得主交互接口的使用权 ; c) 主交互接口另一端为另一 动态可重构处理器的交互数据存储器, 当主交互接口被内部数据写出装置占用, 且另一处 理器交互数据存储器可写时, 主交互接口允许内部数据写出装置向另一处理器写出交互数 据。
3. 数据交互存储器
a) 数据交互存储器位于动态可重构处理器内, 用于接收从另一动态可重构处理器 主交互接口写入的交互数据, 并为本处理器内的处理器间数据交互装置提供数据 ;
b) 数据交互存储器按地址被等分为上下两个半区, 采用先入先出的读写机制 ;
c) 当上 ( 下 ) 半区数据写完后, 只有等到下 ( 上 ) 半区数据读完成, 才能继续向下 ( 上 ) 半区写入数据, 在此过程中数据交互存储器状态为满, 不可被写入, 防止误写入 ; 当上 ( 下 ) 半区数据读完成后, 只有等到下 ( 上 ) 半区数据写完成, 才能继续从下 ( 上 ) 半区读 出数据, 在此过程中数据交互存储器状态为空, 不可被读取, 防止误读出。
d) 当上 ( 下 ) 半区数据写完后, 写指针跳转至下 ( 上 ) 半区, 若下 ( 上 ) 半区数据 读完成, 则继续向下 ( 上 ) 半区写入数据 ; 当上 ( 下 ) 半区数据读完成后, 读指针跳转至下 ( 上 ) 半区, 若下 ( 上 ) 半区数据写完成, 则继续从下 ( 上 ) 半区读出数据 ;
e) 数据交互存储器内分别设有读寄存器和写寄存器
i. 读寄存器用于记录处理器内的处理器间数据交互装置对数据交互存储器的读 取情况, 处理器间数据交互装置每读取一次数据交互存储器内的交互数据后, 数据交互存 储器内读寄存器内数据加 1 ;
ii. 写寄存器用于记录处理器内的主交互接口对数据交互存储器的写入情况, 内 部数据写出装置通过主交互接口向数据交互装置每写入一次数据后, 数据交互存储器内写 寄存器内数据加 1 ;
iii. 当读寄存器内数据为 M 时, 表示半区内数据被读取 M 次, 则该半区读取完毕, 读指针跳转并将读寄存器数据清零, 其中 M 为可配置信息 ;
iv. 当写寄存器内数据为 N 时, 表示半区内被写入 N 次, 则改版去写入完毕, 写指针 跳转并将写寄存器数据清零, 其中 N 为可配置信息
4. 处理器间数据交互装置
a) 处理器数据交互装置位于动态可重构处理器内部, 用于读取动态可重构处理器 内数据交互存储器中的交互数据, 并发送给处理器内各个子单元中的内部数据存储器一 ;
b) 当数据交互存储器为可读时, 处理器间数据交互装置对数据交互存储器进行读 操作, 将数据发送到处理器子单元的内部数据存储器 1 中, 以供动态可重构处理器子单元
使用 ; 本说明书中的各个实施例均采用递进的方式描述, 每个实施例重点说明的都是与 其他实施例的不同之处, 各个实施例之间相同相似的部分互相参见即可。对于系统实施例 而言, 由于其与方法实施例基本相似, 所以描述的比较简单, 相关之处参见方法实施例的部 分说明即可。
以上对本发明所提供的一种动态可重构处理器间一对一数据交互方法及装置, 进 行了详细介绍, 本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施 例的说明只是用于帮助理解本发明的方法及其核心思想 ; 同时, 对于本领域的一般技术人 员, 依据本发明的思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明 书内容不应理解为对本发明的限制。