CN102236632B - 一种层次化描述动态可重构处理器配置信息的方法 - Google Patents
一种层次化描述动态可重构处理器配置信息的方法 Download PDFInfo
- Publication number
- CN102236632B CN102236632B CN 201110140942 CN201110140942A CN102236632B CN 102236632 B CN102236632 B CN 102236632B CN 201110140942 CN201110140942 CN 201110140942 CN 201110140942 A CN201110140942 A CN 201110140942A CN 102236632 B CN102236632 B CN 102236632B
- Authority
- CN
- China
- Prior art keywords
- configuration information
- subelement
- data
- array
- 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.)
- Active
Links
Images
Abstract
本发明提供的一种层次化描述动态可重构处理器配置信息的方法,将动态处理器中的配置信息层次化的存储于片内的存储器中,有效节省配置信息在片上存储器的存储空间,减少主处理器向可重构处理器传输的配置信息量。
Description
技术领域
本发明涉及嵌入式系统技术领域,特别是涉及一种层次化描述动态可重构处理器配置信息的方法。
背景技术
动态可重构处理器是一种新生的处理器构架,其较之以往的单核处理器、专用芯片、现场可编程逻辑阵列有着显著的优势,是未来电路结构发展的一个方向。
首先,动态可重构处理器内往往含有多个算数逻辑单元,且数量巨大,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算数逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。
其次,较传统的静态可重构电路--现场可编程逻辑阵列而言,动态可重构处理器有动态的特点,即在电路运行过程中可动态的切换电路的功能,而非以往静态可重构电路一沉不变的不改变电路功能,只是在电路运行之前烧写电路功能,对电路进行初始化。这样做的好处在于通过时分复用的方式减少了电路的规模,原因在于之前的电路结构的全映射现在变为分块映射,而块与块之间恰好采取了动态切换的方式。
目前,动态可重构处理器中往往存在配置信息存储量过大和传输量过大的问题,因此本发明创新的提出一种层次化描述动态可重构处理器配置信息的方法,以满足实际应用的需求。
发明内容
本发明所要解决的技术问题是提供一种层次化描述动态可重构处理器配置信息的方法,用以有效节省配置信息在片上存储器的存储空间,减少主处理器向可重构处理器传输的配置信息量。
为了解决上述问题,本发明公开了一种层次化描述动态可重构处理器配置信息的方法,所述方法包括:
每个处理单元的算术逻辑功能的选择信息、每个处理单元的输入选择信息、以及处理单元阵列的时序控制信息作为配置信息层次3存储于片内存储器;
阵列的配置信息、内外部数据转换装置的配置信息、内部数据读入装置的配置信息、以及内部数据写出装置的配置信息作为配置信息层次2存储于片内存储器;
子单元间数据交互装置的配置信息和子单元配置信息作为配置信息层次1存储于片内存储器;
外部数据读入装置的配置信息、外部数据写出装置的配置信息、子单元配置信息队列、以及与其他子单元同步的信息作为配置信息层次0存储于片内存储器。
优选的,所述子单元配置信息队列的序列与子任务序列对应。
优选的,每个子任务序列包括多个子任务,每个子任务包括多个子任务步骤。
优选的,子任务序列被分配到某一子单元上执行。
优选的,与子任务对应的动态可重构处理器的配置信息是配置信息队列。
优选的,与子任务中的步骤对应的配置信息是子单元配置信息。
优选的,所述子单元间数据交互装置的配置信息为一个或多个。
优选的,所述阵列的配置信息存于处理器内一个固定的存储器-处理单元配置信息存储器中。
与现有技术相比,本发明具有以下优点:
本发明提供的一种层次化描述动态可重构处理器配置信息的方法,将动态处理器中的配置信息层次化的存储于片内的存储器中,有效节省配置信息在片上存储器的存储空间,减少主处理器向可重构处理器传输的配置信息量。
附图说明
图1是本发明具体实施方式中所述的一种典型的动态可重构处理器的结构示意图;
图2是本发明实施例所述的一种层次化描述动态可重构处理器配置信息的方法流程图;
图3是本发明实施例所述的层次化的动态可重构处理器的配置信息存储于动态可重构处理器示意图;
图4是本发明实施例所述的配置流与数据流关系示意图;
图5是本发明实施例所述的应用算法关于动态可重构处理器的划分示意图;
图6是本发明实施例所述的动态可重构处理器的子单元的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
一种典型的动态可重构处理器的结构示意图如图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)同步控制装置即子单元间同步控制器。
b)其实现多个子单元(1个至N个,N为子单元个数)均完成其各自的指定子任务后多个子单元(此处的多个可与之前的多个不一致)才可执行其各自子任务序列中的下一个子任务。
c)子单元间同步控制器实现了某任务在被划分为多个子任务后,分发至多个子单元并行执行,多个子单元并行执行完多个子任务后的同步。同步后才可开始下一任务的并行化执行。
从配置流的角度出发去描述动态可重构处理器是以对动态可重构处理器的控制为主线,定义出一套有效的控制信息和一组有效的控制机制,不仅对动态可重构处理器内的各个模块的功能进行控制,更使得各个模块之间可正确的协同工作。配置流从底层出发,首先完成一个简单的子任务,再由多个子任务串联起一个任务,最终由多个任务串联起一个完整的应用算法。
实施例:
参照图2,示出了本发明的一种层次化描述动态可重构处理器配置信息的方法流程图,所述方法具体包括:
步骤S201,每个处理单元的算术逻辑功能的选择信息、每个处理单元的输入选择信息、以及处理单元阵列的时序控制信息作为配置信息层次3存储于片内存储器;
步骤S202,阵列的配置信息、内外部数据转换装置的配置信息、内部数据读入装置的配置信息、以及内部数据写出装置的配置信息作为配置信息层次2存储于片内存储器;
步骤S203,子单元间数据交互装置的配置信息和子单元配置信息作为 配置信息层次1存储于片内存储器;
步骤S204,外部数据读入装置的配置信息、外部数据写出装置的配置信息、子单元配置信息队列、以及与其他子单元同步的信息作为配置信息层次0存储于片内存储器。
本发明所述层次化的动态可重构处理器的配置信息存储于动态可重构处理器如图3所示,图中有存储层次化配置信息的存储装置,具体原因如下:
1.动态可重构处理器由于其高度的灵活性,使得对其进行配置的配置信息的信息量巨大,已达到与动态可重构处理器的数据流的数据量可比拟的程度,具体可参见图4给出的配置流与数据流关系示意图。
1.如果将配置信息存储于处理器外,即芯片外的板上存储器内,则传输配置信息的时间将大大增加。这将影响动态可重构处理器实时处理数据的性能。如图4(a)所示,当配置流传输及配置时间大于数据流处理时间时,前后数据流处理之间将产生空隙,这将降低动态可重构处理器连续处理数据流时的性能。
2.如果将配置信息存储于处理器内的片上存储器,则传输配置信息的时间将显著减小。如图4(b)所示,当配置流传输及配置时间小于数据流处理时间时,前后数据流将被连续处理,使得动态可重构处理器持续运转,不发生闲置的情况。
3.此外,往往芯片内外进行数据交互时只有一组接口信号,此组接口信号的带宽固定。动态可重构处理器的数据流对于芯片外的板上存储器的访问量很大,这将占用去此组接口信号的绝大部分带宽。如果将配置信息存于处理器外的板上存储器,由于配置信息的信息量也很大,读取配置信息时将再占用去此组接口信号的一部分带宽,额外增加的读取配置信息的带宽将造成片外数据访问时的拥塞。因此,采用将配置信息存于动态可重构处理器内的方式。
参见图5,示出了本实施中应用算法关于动态可重构处理器的划分示意图,在说明层次化的动态可重构处理器配置信息前,先根据图5对一个应用算法关于动态可重构处理器的划分进行说明:
1.一个应用算法根据其内部的数据相关性可被划为多个独立的子任务序列,如图5(a)中的子任务序列1和子任务序列2。
2.每个子任务序列内包含多个子任务,如图5(a)中的子任务序列1包含子任务1.1和子任务1.2。
3.每个子任务内包含多个步骤,如子任务1.1内的步骤1,步骤2。
4.以上对应用算法进行划分的目的是在算法内部寻求并行处理的可能性,以便于算法到支持并行处理的硬件-动态可重构处理器上的映射。
5.经划分后的子任务序列被分配至动态可重构处理器的某一个子单元上执行,与子任务序列对应的动态可重构处理器的配置信息是配置信息队列的序列。例如图5中子任务序列1被分配至子单元1执行,子任务序列1对应的配置信息是子单元1的配置信息队列的序列。
6.与子任务对应的动态可重构处理器的配置信息是配置信息队列,例如图5中的子任务1.1对应的配置信息是配置信息队列1.1。
7.与子任务中的步骤对应的配置信息是子单元配置信息,例如图5中的子任务1.1的步骤1对应的配置信息是配置信息队列1.1的子单元配置信息1。
层次化的动态可重构处理器的配置信息定义如下(为便于理解,采取自底向上的方式来层层描述动态可重构处理器的配置信息):
配置信息层次3--处理单元阵列的配置信息:
a)首先,动态可重构处理器的核心在于处理单元阵列,所以动态可重构处理器的配置信息是以处理单元阵列的配置信息为基石进行构造,处理单元阵列的配置信息是最底层的配置信息。
b)处理单元阵列的配置信息如下表,其具体包括:
i.每个处理单元的算术逻辑功能的选择信息。
ii.每个处理单元的输入选择信息,这体现了处理单元阵列的路由结构。
iii.处理单元阵列的时序控制信息。
c)配置信息层次3--处理单元阵列的配置信息体现了一个应用算法最底层的一组运算映射到动态可重构处理器上所需的配置信息,但这里面不包括对这一组运算进行数据准备和结果数据分发的信息。
2.配置信息层次2--动态可重构处理器的子单元的配置信息:
a)动态可重构处理器的子单元的结构如图6所示,其包括处理单元阵列,3个数据转移装置,3个数据存储装置。
b)动态可重构处理器的子单元的配置信息如下表所示,包括以下内容:
i.阵列的配置信息
1.此处的阵列配置信息本应包括完整的处理单元阵列的配置信息。但由于阵列配置信息的信息量大,故不采取存储完整的处理单元配置信息的形式。而是将所有的处理单元阵列的配置信息存于处理器内一个固定的存储器--处理单元配置信息存储器。此处只存储当前阵列配置信息的地址,采用用地址去索引阵列配置信息的方法获得完整的阵列配置信息。
ii.内外部数据转换装置的配置信息
1.内外部数据转换装置的功能如前面所述。
2.内外部数据转换装置的配置信息包括如下内容:
a)源存储器的选择,如果源存储器唯一,则无需选择。
b)被转移数据在源存储器中的地址。
c)被转移数据在源存储器中的数据量。
d)目标存储器的选择,如果目标存储器唯一,则无需选择。
e)被转移数据在目标存储器中的地址。
f)被转移数据在由源存储器转移至目标存储器时的数据整合需求,对被转移数据会有拼接或拆分等需求。
iii.内部数据读入装置的配置信息
1.内部数据读入装置的功能如前面所述。
2.内部数据读入装置的配置信息包括如下内容:
a)源存储器的选择,如果源存储器唯一,则无需选择。
b)被转移数据在源存储器中的地址。
c)被转移数据在源存储器中的数据量。
d)目标存储器的选择,如果目标存储器唯一,则无需选择。
e)被转移数据在目标存储器中的地址。
f)被转移数据在由源存储器转移至目标存储器时的数据整合需求,对被转移数据会有拼接或拆分等需求。
iv.内部数据写出装置的配置信息
1.内部数据写出装置的功能如前面所述。
2.内部数据写出装置的配置信息包括如下内容:
a)源存储器的选择,如果源存储器唯一,则无需选择。
b)被转移数据在源存储器中的地址。
c)被转移数据在源存储器中的数据量。
d)目标存储器的选择,如果目标存储器唯一,则无需选择。
e)被转移数据在目标存储器中的地址。
f)被转移数据在由源存储器转移至目标存储器时的数据整合需求,对被转移数据会有拼接或拆分等需求。
c)配置信息层次2--动态可重构处理器的子单元的配置信息体现了一个应用算法最底层的一组运算映射到动态可重构处理器上所需的配置信息,以及为这一组运算进行数据准备和结果数据分发的配置信息。如图5所示,图(b)为配置信息的层次关系,其与图(a)中的应用算法的层次关系一一对应,动态可重构处理器的子单元的配置信息可以完整的表述一个应用算法的一个子任务中的一个步骤。
3.配置信息层次1--动态可重构处理器的子单元配置信息队列:
a)如下表所示,子单元配置信息队列包括两部分内容,子单元间数据交互装置的配置信息和子单元配置信息。
i.子单元间数据交互装置的配置信息。
1.子单元间数据交互装置的功能如前面所述。
2.子单元间数据交互装置包括如下内容:
a)源存储器的选择,如果源存储器唯一,则无需选择。
b)被转移数据在源存储器中的地址。
c)被转移数据在源存储器中的数据量。
d)目标存储器的选择,如果目标存储器唯一,则无需选择。
e)被转移数据在目标存储器中的地址。
f)被转移数据在由源存储器转移至目标存储器时的数据整合需求,对被转移数据会有拼接或拆分等需求。
3.子单元间数据交互装置的配置信息可有多个,即当前子单元可能需要从子单元间数据交互暂存器中读入多个其他子单元的结果数据。
ii.子单元的配置信息如上文所述,多个子单元配置信息构成子单元配置信息阵列。
b)配置信息层次1--动态可重构处理器的子单元配置信息队列简略的体现了一个应用算法的一个子任务映射到动态可重构处理器上所需的配置信息。如图5所示,图(b)中的动态可重构处理器的子单元配置信息队列可以简略的表述图(a)中的一个应用算法的一个子任务中。
4.配置信息层次0--动态可重构处理器的配置字:
a)如下表所示,动态可重构处理器的配置字以子单元配置信息队列为核 心,配以读入此子单元配置信息队列执行所需外部数据的外部数据读入装置的配置信息、写出此子单元配置信息队列的结果数据所需的外部数据写出装置的配置信息,和此子单元配置信息队列执行完后与其他子单元同步的信息。具体内容如下:
i.外部数据读入装置的配置信息。
1.外部数据读入装置的功能如前面所述。
2.外部数据读入装置的配置信息包括如下内容:
a)源存储器的选择,如果源存储器唯一,则无需选择。
b)被转移数据在源存储器中的地址。
c)被转移数据在源存储器中的数据量。
d)目标存储器的选择,如果目标存储器唯一,则无需选择。
e)被转移数据在目标存储器中的地址。
f)被转移数据在由源存储器转移至目标存储器时的数据整合需求,对被转移数据会有拼接或拆分等需求。
ii.外部数据写出装置的配置信息。
1.外部数据写出装置的功能如前面所述。
2.外部数据写出装置的配置信息包括如下内容:
a)源存储器的选择,如果源存储器唯一,则无需选择。
b)被转移数据在源存储器中的地址。
c)被转移数据在源存储器中的数据量。
d)目标存储器的选择,如果目标存储器唯一,则无需选择。
e)被转移数据在目标存储器中的地址。
f)被转移数据在由源存储器转移至目标存储器时的数据整合需求,对被转移数据会有拼接或拆分等需求。
iii.子单元配置信息队列。
1.此处的子单元配置信息队列本应包括完整的子单元配置信息队列。但由于子单元配置信息队列的信息量大,故不采取存储完整的子单元配置信息队列的形式。而是将所有的处子单元配置信息队列存于处理器内一个固定的 存储器--子单元配置信息队列存储器,如图3所示。此处只存储当前子单元配置信息队列的地址,采用用地址去索引子单元配置信息队列的方法获得完整的子单元配置信息队列。
iv.同步信息:
1.动态可重构处理器的一个配置字是针对一个子单元而言,由于动态可重构处理器是由多个子单元并行执行去完成一个应用算法,这就需要每个子单元在执行完自身的配置字后可选择性的去与其他子单元进行同步。同步信息即体现了当前子单元完成当前的配置字后,与哪些子单元进行同步的信息。
2.同步采用如下机制:如果同步有效,当前子单元完成配置字后,待其他的子单元也完成包含同步有效的同步信息的配置字后,当前子单元才执行下一个配置字。
b)配置信息层次0--动态可重构处理器的配置字完整的体现了一个应用算法的一个子任务映射到动态可重构处理器上所需的配置信息,其相对于子单元配置信息队列丰富了输入、输出数据的信息以及同步信息。通过向动态可重构处理器写入配置字即可控制动态可重构处理器内的一个子单元独立的完成一个应用算法中的一个子任务,并与其他子单元分享结果数据和同步进度。通过此方式,即可将一个完整的应用算法层层划分后映射至动态可重构处理器,产生层次化的配置信息,由层次化的配置信息控制动态可重构处理器层次化的运转,完成一个完整的算法应用。
下文将以一个简单的应用算法为例,来说明与此应用算法对应的动态可重构处理器的层次化的配置信息。为便于说明,首先对于一些参数进行设定,具体如下:
1.动态可重构处理器内子单元内的处理单元阵列的规模为4,即有4个处理单元。
2.动态可重构处理器内子单元的个数为2。
3.对动态可重构处理器内的存储器进行编号,以简化配置信息内的说明,编号如下:
a)存储器0:处理器外数据存储器。
b)存储器1:外部数据暂存器(各子单元内)。
c)存储器2:内部数据存储器(各子单元内)。
d)存储器3:内部数据暂存器(各子单元内)。
e)存储器4:子单元间数据交互暂存器。
4.配置信息队列存于配置信息队列存储器内,假定每个配置信息队列的大小为0x80(128)byte,则配置信息队列存于配置信息队列存储器的0x100处表示配置信息队列存于存储器地址0x100起的0x80个byte。
5.处理单元阵列配置信息存于处理单元阵列配置信息存储器内,假定每个处理单元阵列配置信息的大小为0x100(256)byte,则处理单元阵列配置信息存于处理单元阵列配置信息存储器的0x200处表示处理单元阵列配置信息存于存储器地址0x200起的0x100个byte。
应用算法描述如下:
1.应用算法的C语言描述如下:
2.应用算法注释如下:
a)数组a[16]和数组b[8]为待处理的源数据。
b)首先,将数组a[16]内的奇偶元素相加,故相加之后的元素数减半,存于数组c[8]。
c)其次,将c[8]的所有元素乘以2,结果存于数组d[8]。
d)再其次,将数组d[8]与数组b[8]相加,结果存于数组e[8]。
e)再其次,将数组b[8]的前半部分与数组e[8]的后半部分相加,结果存于数组f[8]的f[0]~f[3]。
f)最后,将数组b[8]的后半部分与数组e[8]的前半部分相加,结果存于数组f[8]的f[4]~f[7]。
应用算法在动态可重构处理器上映射的方案,同时也是此应用算法在动态可重构处理器上的数据流程如下:
1.由于应用算法中运算的并行的规模均为8,又由于动态可重构处理器内的子单元内的处理单元阵列的规模为4,即一个子单元能并行处理4个运算,所以由2个子单元并行完成整个应用算法。
2.待处理的数组a[16]存于动态可重构处理器外的数据存储器的地址0~15,数组b[8]存于此数据存储器的地址16~23,数组a[16]和数组b[8]的单位均为字节,数据存储器的地址的单位也为字节。下文中如无特殊说明,数组的单位均为字节,且数据存储器的地址的单位也为字节。
3.动态可重构处理器内的外部数据读入装置将数组a[16]的a[0]~a[7]读入至子单元1内的外部数据缓存器的地址0~地址7,将数组b[8]的b[0]~b[3]读入至子单元1内的外部数据缓存器的地址8~地址11。
4.同时,动态可重构处理器内的外部数据读入装置将数组a[16]的a[8]~a[15]读入至子单元2内的外部数据缓存器的地址0~地址7,将数组b[8]的b[4]~b[7]读入至子单元2内的外部数据缓存器的地址8~地址11。
5.动态可重构处理器内的子单元1内的内外部数据转换装置将存于外部数据缓存器内的a[0]~a[7]读出,写入至处理单元阵列,处理单元阵列将a[0]~a[7]中的奇偶元素相加,产生中间结果c[0]~c[3],c[0]~c[3]由内部数据写出装置直接写回至处理单元阵列。
6.同时,动态可重构处理器内的子单元2内的内外部数据转换装置将存于外部数据缓存器内的a[8]~a[15]读出,写入至处理单元阵列,处理单元阵列将a[8]~a[15]中的奇偶元素相加,产生中间结果c[4]~c[7],c[4]~c[7]由内部数据写出装置直接写回至处理单元阵列。
7.动态可重构处理器内的子单元1内的处理单元阵列将c[0]~c[3]乘2,产生中间结果d[0]~d[3],d[0]~d[3]由内部数据写出装置写入至内部数据存储器的地址0~地址3。
8.同时,动态可重构处理器内的子单元2内的处理单元阵列将c[4]~c[7]乘2,产生中间结果d[4]~d[7],d[4]~d[7]由内部数据写出装置写入至内部数据存储器的地址0~地址3。
9.动态可重构处理器内的子单元1内的内外部数据转换装置先将存于外部数据缓存器的b[0]~b[3]读出并写入至内部数据存储器的地址4~地址7,再由内部数据将刚存于内部数据存储器内的b[0]~b[3]和之前存入的d[0]~d[3]读出,写入至处理单元阵列。处理单元阵列将b[0]~b[3]和d[0]~d[3]相加,产 生中间结果e[0]~e[3]。
10.同时,动态可重构处理器内的子单元2内的内外部数据转换装置先将存于外部数据缓存器的b[4]~b[7]读出并写入至内部数据存储器的地址4~地址7,再由内部数据将刚存于内部数据存储器内的b[4]~b[7]和之前存入的d[4]~d[7]读出,写入至处理单元阵列。处理单元阵列将b[4]~b[7]和d[4]~d[7]相加,产生中间结果e[4]~e[7]。
11.下一步是将b[8]的b[0]~b[3]与e[8]的e[4]~e[7]相加,和将b[8]的b[4]~b[7]与e[8]的e[0]~e[3]相加。此时,e[4]~e[7]在子单元2内,这就需要将e[4]~e[7]交换至子单元1内,同理,需要将在子单元1内的e[0]~e[3]交换至子单元2内。数据交换及处理过程如下:
a)紧接“9”,由子单元1内的内部数据写出装置将e[0]~e[3]写入至子单元间数据交换暂存器的地址0~地址3。
b)同时,紧接“10”,由子单元1内的内部数据写出装置将e[4]~e[7]写入至子单元间数据交换暂存器的地址4~地址7。
c)动态可重构处理器内的子单元间数据交互装置将存于子单元间数据交换暂存器的e[4]~e[7]读出,写入至子单元1的内部数据存储器的地址4~地址7。由于此处需要子单元2先将e[4]~e[7]写入子单元间数据交换暂存器,子单元间数据交换转置才能将其读出并写入至子单元1的内部数据存储器,所以此处需要将子单元1的执行和子单元2的执行进行同步。同步通过如下方式来实现:子单元1在将e[0]~e[3]写入至子单元间数据交换暂存器后,并不马上执行,而是待子单元2在将e[4]~e[7]写入至子单元间数据交换暂存器后,子单元间数据交换转置才将e[4]~e[7]写入至子单元1的内部数据存储器,子单元1开始执行。
d)同时,动态可重构处理器内的子单元间数据交互装置将存于子单元间数据交换暂存器的e[0]~e[3]读出,写入至子单元2的内部数据存储器的地址4~地址7。同步机理同子单元1,即子单元2在将e[4]~e[7]写入至子单元间数据交换暂存器后,并不马上执行,而是待子单元1在将e[0]~e[3]写入至子单元间数据交换暂存器后,子单元间数据交换转置才将e[0]~e[3]写入至子单 元2的内部数据存储器,子单元2开始执行。
e)动态可重构处理器内的子单元1内的内部数据将存于内部数据存储器内的b[0]~b[3]和e[4]~e[7]读出,写入至处理单元阵列。处理单元阵列将b[0]~b[3]和e[4]~e[7]相加,产生最终结果f[0]~f[3]。f[0]~f[3]首先由内部数据写出装置写入至内部数据缓存器的地址0~地址3,最终再由外部数据写出装置将f[0]~f[3]写出至动态可重构处理器外的数据存储器的地址24~地址27。
f)同时,动态可重构处理器内的子单元2内的内部数据将存于内部数据存储器内的b[4]~b[7]和e[0]~e[3]读出,写入至处理单元阵列。处理单元阵列将b[4]~b[7]和e[0]~e[3]相加,产生最终结果f[4]~f[7]。f[4]~f[7]首先由内部数据写出装置写入至内部数据缓存器的地址0~地址3,最终再由外部数据写出装置将f[4]~f[7]写出至动态可重构处理器外的数据存储器的地址28~地址31。
与此应用算法对应的层次化的动态可重构处理器的配置信息如下:
1.子单元1配置信息:
a)子单元1配置信息1:
i.配置字:
1.具体的配置字如下:
ii.配置信息队列:
1.配置信息队列存于配置信息队列存储器的0x0处,占用0x80 byte,具体信息如下:
iii.子单元配置信息:
1.配置信息队列中的子单元配置信息1、2、3如下:
iv.处理单元阵列配置信息:
1.子单元配置信息1中的阵列的配置信息存于处理单元阵列配置信息存储器的0x0处,占用0x100 byte,具体信息如下:
2.子单元配置信息2中的阵列的配置信息存于处理单元阵列配置信息存储器的0x100处,占用0x100 byte,具体信息如下:
3.子单元配置信息3中的阵列的配置信息存于处理单元阵列配置信息存 储器的0x200处,占用0x100 byte,具体信息如下:
b)子单元1配置信息2:
i.配置字:
1.具体的配置字如下:
ii.配置信息队列:
1.配置信息队列存于配置信息队列存储器的0x80处,占用0x80 byte,具体信息如下:
iii.子单元配置信息:
1.配置信息队列中的子单元配置信息1如下:
iv.处理单元阵列配置信息:
1.处理单元阵列配置信息与子单元1的配置信息1的第3个处理单元阵列配置信息相同,存于处理单元阵列配置信息存储器的0x200处,占用0x100byte,此处不再赘述。
2.子单元2配置信息:
a)子单元2配置信息1:
i.配置字:
1.具体的配置字如下:
ii.配置信息队列:
1.分配至子单元2的子任务序列1与子单元1的子任务序列1一致,所以配置信息队列也与子单元1的配置信息1的配置信息队列一致,存于配置信息队列存储器的0x0处,占用0x80 byte,此处不再详细描述。
iii.子单元配置信息:
1.由于子单元2的配置信息1的配置信息队列与子单元1的配置信息1的配置信息队列相同,所以子单元配置信息也与子单元1的子单元配置信息相同,此处不再详细描述。
iv.处理单元阵列配置信息:
1.子单元配置信息与子单元1的配置信息1的子单元配置信息相同,所以处理单元阵列配置信息也与子单元1的处理单元阵列配置信息相同,3个处理单元阵列配置信息分别存于处理单元阵列配置信息存储器的0x000、0x100、0x200处,都占用0x100 byte。
b)子单元2配置信息2:
i.配置字:
1.具体的配置字如下:
ii.配置信息队列:
1.配置信息队列存于配置信息队列存储器的0x100处,占用0x80 byte,具体信息如下:
iii.子单元配置信息:
1.配置信息队列中的子单元配置信息1如下:
iv.处理单元阵列配置信息:
1.处理单元阵列配置信息与子单元1的配置信息1的第3个处理单元阵列配置信息相同,存于处理单元阵列配置信息存储器的0x200处,占用0x100byte,此处不再赘述。
以上对本发明所提供的一种层次化描述动态可重构处理器配置信息的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种层次化描述动态可重构处理器配置信息的方法,其特征在于,所述方法包括:
每个处理单元的算术逻辑功能的选择信息、每个处理单元的输入选择信息、以及处理单元阵列的时序控制信息作为配置信息层次3存储于片内存储器;
阵列的配置信息、内外部数据转换装置的配置信息、内部数据读入装置的配置信息、以及内部数据写出装置的配置信息作为配置信息层次2存储于片内存储器;
子单元间数据交互装置的配置信息和子单元配置信息作为配置信息层次1存储于片内存储器;
外部数据读入装置的配置信息、外部数据写出装置的配置信息、子单元配置信息队列、以及与其他子单元同步的信息作为配置信息层次0存储于片内存储器。
2.如权利要求1所述的方法,其特征在于:
所述子单元配置信息队列的序列与子任务序列对应。
3.如权利要求2所述的方法,其特征在于:
每个子任务序列包括多个子任务,每个子任务包括多个子任务步骤。
4.如权利要求2所述的方法,其特征在于:
子任务序列被分配到某一子单元上执行。
5.如权利要求2所述的方法,其特征在于:
与子任务对应的动态可重构处理器的配置信息是配置信息队列。
6.如权利要求3所述的方法,其特征在于:
与子任务中的步骤对应的配置信息是子单元配置信息。
7.如权利要求1所述的方法,其特征在于:
所述子单元间数据交互装置的配置信息为一个或多个。
8.如权利要求1所述的方法,其特征在于:
所述阵列的配置信息存于处理器内一个固定的存储器-处理单元配置信息存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110140942 CN102236632B (zh) | 2011-05-27 | 2011-05-27 | 一种层次化描述动态可重构处理器配置信息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110140942 CN102236632B (zh) | 2011-05-27 | 2011-05-27 | 一种层次化描述动态可重构处理器配置信息的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102236632A CN102236632A (zh) | 2011-11-09 |
CN102236632B true CN102236632B (zh) | 2013-05-22 |
Family
ID=44887291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110140942 Active CN102236632B (zh) | 2011-05-27 | 2011-05-27 | 一种层次化描述动态可重构处理器配置信息的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102236632B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034617B (zh) | 2012-12-13 | 2015-09-30 | 深圳市同创国芯电子有限公司 | 用于实现可重构系统配置信息存储的缓存结构和管理方法 |
CN103942181B (zh) * | 2014-03-31 | 2017-06-06 | 清华大学 | 用于生成动态可重构处理器的配置信息的方法、装置 |
WO2017020165A1 (zh) * | 2015-07-31 | 2017-02-09 | 吴国盛 | 自适应芯片和配置方法 |
CN108717402B (zh) * | 2018-05-16 | 2021-03-30 | 清华大学 | 用于可重构处理系统的存储器和可重构处理系统 |
CN111897580B (zh) * | 2020-09-29 | 2021-01-12 | 北京清微智能科技有限公司 | 一种可重构阵列处理器的指令调度系统及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2854697Y (zh) * | 2005-12-02 | 2007-01-03 | 浙江大学 | 面向计算的通用型可重构计算阵列 |
CN101782893B (zh) * | 2009-01-21 | 2014-12-24 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
KR101581414B1 (ko) * | 2009-02-05 | 2015-12-30 | 삼성전자주식회사 | 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 |
CN101630275B (zh) * | 2009-07-31 | 2012-07-04 | 清华大学 | 一种实现生成循环任务配置信息的方法和装置 |
-
2011
- 2011-05-27 CN CN 201110140942 patent/CN102236632B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102236632A (zh) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102236632B (zh) | 一种层次化描述动态可重构处理器配置信息的方法 | |
CN1993709B (zh) | 信号处理设备 | |
US11907827B2 (en) | Schedule-aware tensor distribution module | |
CN102637157B (zh) | 一种片上数字模板系统dtsoc | |
CN102047241B (zh) | 本地与全局数据共享 | |
TW202014935A (zh) | 處理器、利用處理電路進行計算的方法及利用處理工具進行計算的方法 | |
CN108874745A (zh) | 原生张量处理器及张量缩并的分割 | |
CN102541809B (zh) | 一种动态可重构处理器 | |
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
US20050005084A1 (en) | Scalable processing architecture | |
KR20220147732A (ko) | 인공 신경망에서의 분산 및 협력 계산을 위한 방법 및 장치 | |
CN102306141B (zh) | 一种描述动态可重构阵列配置信息的方法 | |
CN102497411B (zh) | 面向密集运算的层次化异构多核片上网络架构 | |
CN1434380A (zh) | 图像处理装置和方法以及用于该装置的编译程序 | |
EP3938917B1 (en) | Moving data in a memory and command for memory control | |
CN105183698A (zh) | 一种基于多核dsp的控制处理系统和方法 | |
CN102279729A (zh) | 动态可重构阵列调用配置信息的方法、缓存器和处理器 | |
CN104915213A (zh) | 一种可重构系统的局部重构控制器 | |
CN107562549A (zh) | 基于片上总线和共享内存的异构众核asip架构 | |
CN108875957B (zh) | 原生张量处理器及使用原生张量处理器的系统 | |
JP2022508028A (ja) | 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末 | |
CN102207850B (zh) | 一种动态可重构处理器中层次化执行配置流的方法 | |
CN103761072A (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
US20180212894A1 (en) | Fork transfer of data between multiple agents within a reconfigurable fabric | |
CN102629238A (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 |