一种动态可重构处理器内子单元的扩展方法
技术领域
本发明涉及嵌入式系统领域中的动态可重构处理器技术领域,特别是涉及一种动态可重构处理器内子单元的扩展方法。
背景技术
动态可重构处理器是一种新生的处理器构架,其较之以往的单核处理器、专用芯片、现场可编程逻辑阵列有着显著的优势,是未来电路结构发展的一个方向。
首先,动态可重构处理器内往往含有多个算数逻辑单元,且数量巨大,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算数逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。
其次,较传统的静态可重构电路——现场可编程逻辑阵列而言,动态可重构处理器有动态的特点,即在电路运行过程中可动态的切换电路的功能,而非以往静态可重构电路一沉不变的不改变电路功能,只是在电路运行之前烧写电路功能,对电路进行初始化。这样做的好处在于通过时分复用的方式减少了电路的规模,原因在于之前的电路结构的全映射现在变为分块映射,而块与块之间恰好采取了动态切换的方式。
实际应用中,动态可重构处理器往往有扩展子单元个数的需求,因此,本发明创新地提出一种动态可重构处理器内子单元的扩展方法,以满足实际应用的需求。
发明内容
本发明所要解决的技术问题是提供一种动态可重构处理器内子单元的扩展方法,实现基于现有动态可重构处理器构架的处理器内子单元的任意扩展,更好的满足实际应用需求。
为了解决上述问题,本发明公开了一种动态可重构处理器内子单元的扩展方法,所述方法包括:
当处理器需要增加一个子单元进行数据处理时,外部数据读入装置增加一个目标新增子单元内的外部数据缓存器,外部数据写出装置增加一个源新增子单元内的内部数据缓存器,外部数据通过外部数据读入装置进入新增子单元,子单元内运算数据通过外部数据写出装置写出新增子单元;
子单元间交互装置增加一个目标新增子单元内的内部数据缓存器,子单元间数据交互暂存器增加一个源新增子单元的内部数据写出装置,新增子单元内需要数据交互的数据通过写入子单元间数据交互暂存器与新增子单元之外的其他子单元进行交互,新增子单元从子单元数据交互装置中获取新增子单元之外的其他子单元中新增子单元所需数据;
同步控制器中增加一个子单元同步控制器,同时,同步信息扩展一位,新增子单元通过同步控制器中新增的子单元同步控制器以及修改过的同步信息实现与新增子单元之外的其他子单元的同步;
配置字接口增加一个目标新增子单元子任务队列缓存器,子单元配置信息队列存储器增加一组接口,处理单元阵列配置信息存储器增加一组接口,新增子单元通过配置字接口获得新增子单元的配置信息,通过读取子单元配置信息队列存储器和处理单元阵列配置信息存储器,获得新扩展的子单元的相应的配置信息。
优选的,所述外部数据读入装置增加一个目标,用于保证新增子单元外部数据缓存器中数据来源。
优选的,所述外部数据写出装置增加一个源,用于保证新增子单元内部数据缓存器中数据写出。
优选的,所述子单元间交互装置增加一个目标,用于完成新增子单元内部的内部数据缓存器获取存储于子单元间数据交互暂存器中需要进行交互的数据。
优选的,所述子单元间数据交互暂存器增加一个源,用于完成新增子单元中产生的数据通过内部数据写出装置写入子单元间数据交互暂存器与其他子单元进行数据交互。
优选的,所述同步控制器中增加一个子单元同步控制器,用以完成同步控制器对新增子单元进行同步任务控制。
优选的,所述配置字接口增加一个目标,用于完成新增子单元子任务队列缓存器获取准确的配置信息,对外部数据进行正确处理。
优选的,所述子单元配置信息队列存储器增加的一组接口中,一个为从新增子单元内“子任务队列缓存器”向“子单元配置信息队列存储器”的地址接口,用于索引该新增子单元的配置信息;另一个为“子单元配置信息队列存储器”向新增子单元内“本地子单元配置信息队列存储器”写入子单元配置信息队列的数据接口。
优选的,所述处理单元阵列配置信息存储器增加的一组接口中,一个为从新增子单元内“本地子单元配置信息队列存储器”向“处理单元阵列配置信息存储器”的地址接口,用于索引处理单元阵列的配置信息;另一个为“处理单元阵列配置信息存储器”向新增子单元内“处理单元阵列配置信息寄存器”写出处理单元阵列配置信息队列的数据接口。
优选的,所述同步信息扩展一位,原有N比特同步信息变为N+1比特同步信息,新增的第N+1位同步信息与新增子单元相对应。
与现有技术相比,本发明具有以下优点:
本发明中当处理器需要增加一个子单元进行数据处理时,外部数据读入装置增加一个目标-新增子单元内的外部数据缓存器,外部数据写出装置增加一个源-新增子单元内的内部数据缓存器,子单元间交互装置增加一个目标-新增子单元内的内部数据缓存器,子单元间数据交互暂存器增加一个源-新增子单元的内部数据写出装置,同步控制器中增加一个子单元同步控制器,配置字接口增加一个目标-新增子单元子任务队列缓存器,子单元配置信息队列存储器增加一组接口,处理单元阵列配置信息存储器增加一组接口,有效的完成子单元的扩展,极大的满足了实际应用的需求。
附图说明
图1是本发明具体实施方式中所述的一种典型的动态可重构处理器的示意图;
图2是本发明实施例所述的一种动态可重构处理器内子单元的扩展方法流程图;
图3是本发明实施例所述的增加的子单元结构示意图;
图4是本发明实施例所述的配置信息装置示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
一种典型的动态可重构处理器的结构示意图如图1所示,动态可重构处理器的运转流程可概括为如下步骤:
1.动态可重构处理器由外部数据读入装置将处理器外存储器内待处理的数据读入处理器内,分发至多个子单元处理内的外部数据缓存器。
2.多个子单元将数据从各自的外部数据缓存器读出,再进行处理。多个子单元同时处理,以达并行处理的效果。各子单元处理完后,将结果数据存于各自的内部数据缓存器。
3.外部数据写出装置将结果数据从各子单元的内部数据缓存器读出,并写出到处理器外部存储器。
除上述步骤外,还需说明的是:子单元间的同步机制通过子单元间同步控制器来实现;子单元间的数据交互通过由子单元A向子单元间数据交互暂存器写入数据,子单元B从子单元间数据交互暂存器读出此数据来实现。使用时还需结合子单元间的同步机制,即子单元A向子单元间数据交互暂存器写完数据后,子单元B才可开始读取子单元间数据交互暂存器。
动态可重构处理器可从数据流和配置流的角度去被描述。数据流的角度是指从对数据流的处理的角度出发,遍历数据流所经过的动态可重构处理器内的各模块,提出各模块所需的功能。从数据流的角度出发,动态可重构处理器在结构上可分为以下四个部分:
1.数据转移装置
a)数据转移装置用于将数据从数据存储装置读出,并写入另一数据存储装置,使数据在数据存储装置之间转移。最终实现将数据写入处理单元阵列,处理单元阵列运行完后,将处理单元阵列的结果数据读出。
b)数据转移装置分为6个:外部数据读入装置,子单元间数据交互装置,内外部数据转换装置,内部数据读入装置,内部数据写出装置,外部数据写出装置。按数据流的流动方向,具体说明如下。
c)外部数据读入装置:
i.用于将动态可重构处理器外待处理的数据读入动态可重构处理器内,缓存于外部数据缓存器。
d)子单元间数据交互装置:
i.用于将子单元间数据交换暂存器内存储的其他子单元的结果数据读出,并在一定程度上进行整合,最终将整合后的数据分发至当前子单元的内部数据存储器或直接分发至处理单元阵列,这取决于此外单元的结果数据是否可直接被处理单元阵列处理和此数据是否将多次被处理。
e)内外部数据转换装置:
i.用于将外部数据缓存器内缓存的外部数据分发至内部数据存储器或直接分发至处理单元阵列,这取决于此外部数据是否可直接被处理单元阵列处理和此数据是否将多次被处理。
f)内部数据读入装置
i.用于将内部数据存储器内存储的当前子单元的内部数据,并在一定程度上进行整合,最终将整合后的数据写入到处理单元阵列。
g)内部数据写出装置
i.用于将处理单元阵列的结果数据读出,再写入至处理单元阵列供紧接着运行处理单元阵列时使用,或写入至内部数据存储器将数据缓存起来,或写入子单元间数据交互暂存器供子单元间数据交互使用,或写入内部数据缓存器待输出至处理器外。
h)外部数据写出装置:
i.用于将缓存于内部数据缓存器的子单元的结果数据输出至处理器外。
2.数据存储装置
a)分为4个,具体说明如下。
b)外部数据缓存器:
i.用于将读入的外部数据缓存,待需要时被读出。
c)内部数据存储器
i.用于对处理单元阵列的结果数据进行暂存,待需要时被读出,还供在处理器内部使用。
d)内部数据缓存器
i.用于对处理单元阵列的结果数据进行缓存,待输出至处理器外。
e)子单元间数据交互暂存器
i.用于暂存子单元A的结果数据,待子单元B读出,以实现子单元间的数据交互。
3.运算单元
a)运算单元即处理单元阵列,详见图1。
b)处理单元是一个算术逻辑运算单元,可实现基本的算术运算功能和逻辑运算功能以及一些定制的算术逻辑运算功能。
c)处理单元之间通过路由单元连接,以实现处理单元之间的灵活且快速的数据传递。
d)整个处理单元阵列通过时序控制单元控制,以协调处理单元阵列的输入、运算、输出之间的时序关系。
e)处理单元阵列可实现对大批量数据进行循环操作的快速处理。
4.同步控制装置
a)同步控制器;
i.同步控制器为动态可重构处理器中控制子单元之间同步的装置,其中包含多个子单元同步控制器,个数由子单元个数决定;
ii.子单元同步控制器接受来自子单元内的子单元配置字缓存器即子任务队列缓存器的子任务同步信息。子单元同步控制器根据子任务同步信息进行判断,如果无需同步,则直接向子单元配置字缓存器返回使能信号为真。如果需要同步,子单元同步控制器通过检查任务执行情况,在满足条件的情况下向子单元配置字缓存器返回使能信号为真;
b)同步信息
i.子单元之间的同步是通过子任务的同步信息进行传达,同步信息中包含子单元是否需要同步以及如需同步其同步对象;
ii.子单元的同步信息为N比特,对应于动态可重构处理器中的N个子单元,同步信息中的为真的位数对应需要进行同步的子单元,若N比特皆为假,则不需同步。
iii.当前子单元所对应的1比特用于指示当前子单元是否进行同步,如果同步则此1比特为真,如果不同步则此1比特为假。
iv.除当前子单元对应的1比特之外的N-1比特用于指示当前子单元与其余哪些子单元进行同步。如果当前子单元需与某个子单元进行同步,则此子单元对应的1比特为真;如果无需同步,则此1比特为假。当前子单元可与其余N-1个子单元中的任意个子单元进行同步。
实施例:
参照图2,示出了本发明的一种动态可重构处理器内子单元的扩展方法流程图,所述方法包括:
步骤S201,当处理器需要增加一个子单元进行数据处理时,外部数据读入装置增加一个目标-新增子单元内的外部数据缓存器,外部数据写出装置增加一个源-新增子单元内的内部数据缓存器,外部数据通过外部数据读入装置进入新增子单元,子单元内运算数据通过外部数据写出装置写出新增子单元;
步骤S202,子单元间交互装置增加一个目标-新增子单元内的内部数据缓存器,子单元间数据交互暂存器增加一个源-新增子单元的内部数据写出装置,新增子单元内需要数据交互的数据通过写入子单元间数据交互暂存器与其他子单元进行交互,新增子单元从子单元数据交互装置中获取其他子单元中新增子单元所需数据;
步骤S203,同步控制器中增加一个子单元同步控制器,同时,同步信息扩展一位,新增子单元通过同步控制器中新增的子单元同步控制器以及修改过的同步信息实现与其他子单元的同步;
步骤S204,配置字接口增加一个目标-新增子单元子任务队列缓存器,子单元配置信息队列存储器增加一组接口,处理单元阵列配置信息存储器增加一组接口,新增子单元通过配置字接口获得新增子单元的配置信息,通过读取子单元配置信息队列存储器和处理单元阵列配置信息存储器,获得新扩展的子单元的相应的配置信息。
结合前面所介绍的典型动态可重构处理器构架,其动态重构处理器每增加一个子单元,参照图3,增加的子单元内包含如下装置及存储单元,
1.数据转移装置
a)内外部数据转换装置。
b)内部数据读入装置。
c)内部数据写出装置。
2.数据存储装置
a)外部数据缓存器。
b)内部数据存储器。
c)内部数据缓存器。
3.运算单元
a)处理单元阵列。
本发明针对动态可重构处理器内子单元个数的扩展,提出一种扩展方法,动态重构处理器每增加一个子单元,动态可重构处理器内部结构的相应变化。
1.数据转移装置
a)外部数据读入装置
i.外部数据读入装置用于将动态可重构处理器外待处理的数据读入动态可重构处理器内,缓存于子单元内的外部数据缓存器;
ii.动态可重构处理器扩展一个子单元,外部数据读入装置需增加一个目标——新增子单元内的外部数据缓存器,以保证新增子单元外部数据缓存器中数据来源。
b)外部数据写出装置
i.外部数据写出装置用于将缓存于子单元内的内部数据缓存器内的子单元的结果数据输出至处理器外;
ii.动态可重构处理器扩展一个子单元,外部数据写出装置需增加一个源——新增子单元内的内部数据缓存器,以保证新增子单元内部数据缓存器中数据写出。
c)子单元间数据交互装置
i.子单元间数据交互装置用于将子单元间数据交换暂存器内存储的其他子单元的结果数据读出,并在一定程度上进行整合,最终将整合后的数据分发至当前子单元的内部数据存储器或直接分发至处理单元阵列;
ii.动态可重构处理器扩充一个子单元,子单元间交互装置需增加一个目标——新增子单元内的内部数据缓存器,以保证新增子单元内部数据存储器能够获取存储于子单元间数据交互暂存器中需要进行交互的数据。
2.数据存储装置
a)子单元间数据交互暂存器
i.子单元间数据交互暂存器用于暂存子单元A的结果数据,待子单元B读出,以实现子单元间的数据交互。
ii.动态可重构处理器扩充一个子单元,子单元间数据交互暂存器需增加一个源——新增子单元的内部数据写出装置,以保证新增子单元中产生的数据能够通过内部数据写出装置写入子单元间数据交互暂存器与其他子单元进行数据交互。
3.同步控制装置
i.同步控制器为动态可重构处理器中控制子单元之间同步的装置,其中包含多个子单元同步控制器,个数由子单元个数决定。
ii.同步信息为包含在配置信息中告知子单元包括同步对象等同步所需信息,同步信息中的每一位对应着动态可重构处理器中每一个子单元。
iii.动态可重构处理器扩展一个子单元,同步控制器中需增加一个子单元同步控制器,对应于新增子单元,以保证同步控制器通过新增子单元同步控制器对新增子单元进行同步任务控制。
iv.动态可重构处理器扩展一个子单元,同步信息需扩展一位,原有N比特同步信息变为N+1比特同步信息,新增的第N+1位同步信息与新增子单元相对应。
4.配置信息装置,具体参照图4:
a)配置字接口
i.配置字接口是动态可重构处理器中配置信息发送装置,负责向动态可重构处理器各个子单元子任务队列缓存器发送配置字,配置子单元及其内部装置;
ii.动态可重构处理器扩展一个子单元,配置字接口增加一个目标——新增子单元子任务队列缓存器,以保证新增子单元子任务队列缓存器获取准确的配置信息,对外部数据进行正确处理。
b)子单元配置信息队列存储器
i.子单元配置信息队列存储器是将所有的子单元配置信息队列存于处理器内一个固定的存储器,层次化的配置信息中只存储子单元配置信息队列的地址,采用用地址去索引子单元配置信息队列的方法将子单元配置信息队列中的某个子单元配置信息队列索引出,并写入子单元内的“本地子单元配置信息队列存储器”。
ii.动态可重构处理器扩展一个子单元,子单元配置信息队列存储器需增加一组接口,其中一个为从新增子单元内“子任务队列缓存器”向“子单元配置信息队列存储器”的地址接口,用于索引该子单元的配置信息;另一个为“子单元配置信息队列存储器”向新增子单元内“本地子单元配置信息队列存储器”写入子单元配置信息队列的数据接口。
c)处理单元阵列配置信息存储器
i.处理单元阵列配置信息队列存储器是将所有的处理单元阵列配置信息队列存于处理器内一个固定的存储器,层次化的配置信息中只存储处理单元阵列配置信息队列的地址,采用用地址去索引处理单元阵列配置信息队列的方法将处理单元阵列配置信息队列中的某个处理单元阵列配置信息队列索引出,并写入子单元内的“处理单元阵列配置信息寄存器”;
ii.动态可重构处理器扩展一个子单元,处理单元阵列配置信息存储器需增加一组接口,其中一个为从新增子单元内“本地子单元配置信息队列存储器”向“处理单元阵列配置信息存储器”的地址接口,用于索引处理单元阵列的配置信息;另一个为“处理单元阵列配置信息存储器”想新增子单元内“处理单元阵列配置信息寄存器”写出处理单元阵列配置信息队列的数据接口。
下面以一个动态可重构处理器进行处理器内子单元扩展为例,来说明动态可重构处理器内子单元的扩展机制。
为了便于说明,首先对于参数进行一些设定,具体如下:
1)动态可重构处理器原本有4个子单元。
2)动态可重构处理器扩充1个子单元。
动态可重构处理器按照本发明中扩展机制,其内部结构产生如下变化:
1)外部数据读入装置增加一个目标,由原本4个目标变为5个;
2)外部数据写出装置增加一个源,由原本4个源变为5个;
3)子单元间数据交互装置增加一个目标,由原本4个目标变为5个;
4)子单元间数据交互暂存器增加一个源,由原本4个源变为5个;
5)同步控制器中增加一个子单元同步控制器,由原本包含4个子单元同步控制器变为5个;
6)同步信息增加一位,由原本5位同步信息变为5位;
7)配置字接口增加一个目标,由原本4个目标变为5个;
8)子单元配置信息队列存储器增加一组接口,由原本4组接口变为5个;
9)处理单元阵列配置信息存储器增加一组接口,由原本4组接口变为5个。
动态可重构处理器由4个子单元结构扩展为5个子单元结构后,数据流运转及配置相关的变化如下:
1)外部数据通过外部数据读入装置进入新增子单元,子单元内运算数据通过外部数据写出装置写出新增子单元;
2)新增子单元内需要数据交互的数据通过写入子单元间数据交互暂存器与其他子单元进行交互,新增子单元从子单元数据交互装置中获取其他子单元中新增子单元所需数据;
3)新增子单元通过同步控制器中新增的子单元同步控制器以及修改过的同步信息实现与其他子单元的同步;
4)新增子单元通过配置字接口获得新增子单元的配置信息,通过读取子单元配置信息队列存储器和处理单元阵列配置信息存储器,获得新扩展的子单元的相应的配置信息。
以上对本发明所提供的一种动态可重构处理器内子单元的扩展方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。