CN101699392B - 流处理器中io单元复用方法 - Google Patents
流处理器中io单元复用方法 Download PDFInfo
- Publication number
- CN101699392B CN101699392B CN2009100447480A CN200910044748A CN101699392B CN 101699392 B CN101699392 B CN 101699392B CN 2009100447480 A CN2009100447480 A CN 2009100447480A CN 200910044748 A CN200910044748 A CN 200910044748A CN 101699392 B CN101699392 B CN 101699392B
- Authority
- CN
- China
- Prior art keywords
- stream
- unit
- buffering
- mux
- data
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种流处理器中IO单元复用方法,要解决的技术问题是在流处理器的设计中克服一个IO单元只能执行一个流的限制,实现少量IO单元对大量输入输出流的扩展支持,降低硬件开销。技术方案是修改编译器,在编译器中增加IO单元复用处理模块,给每个流分配一个流标识符,将IO操作调度到流标识符指定的IO单元上执行;改进流处理器中运算簇的硬件结构,在IO单元和流缓冲之间增加K个多路选择器;IO单元对流标识符部分进行译码,译码结果作为仲裁信号,各多路选择器根据仲裁信号对流的访问进行仲裁以实现流的输入输出。采用本发明可使输入输出流的数目不再受IO单元数量的限制,大幅减少IO单元数目,硬件开销小。
Description
技术领域
本发明涉及流处理器的设计方法,尤其是流处理器设计中的IO单元复用方法。
背景技术
流处理器是新一代面向密集计算的高性能微处理器的典型代表,专门面向流应用。流应用具有计算密集性的特征:与传统的桌面应用相比,流式应用对每次从内存取出的数据都要进行大量的算术运算。
流处理器由标量核、DRAM控制器、存储控制器、流控制器、微控制器、流寄存器文件SRF(Stream Register File)、多个运算簇Cluster组成,各部件之间通过片上通用总线连接。流处理的主要思想是将应用程序划分为一个个计算核心函数(kernel),产生具有明确生产者--消费者局域性的数据流图,由这些核心函数按顺序完成对数据的密集计算。这些核心函数通过编译器(运行于PC机上的软件)进行编译产生二进制的VLIW(Very Long Instruction Word,超长指令字)代码在流处理器上执行。生成的VLIW代码存放在微控制器的微码存储器中,当核心程序启动时,微控制器逐条广播VLIW代码到各运算簇,控制各运算簇以SIMD(Single Instruction Multiple Data,单指令多数据)方式执行。
同计算相关的输入数据流、输出数据流以及中间数据都被存放在流寄存器文件SRF中,保证数据能够在处理器内部循环利用而不产生对外部存储器DRAM的访问。运算簇和流寄存器文件之间通过双向的流缓冲连接,所有对流寄存器文件的访问都通过流缓冲SB(Stream Buffer)完成。流处理器中所有的计算操作由运算簇完成,每个运算簇一般包括若干个功能单元(包括运算单元ALU和非运算单元)、本地寄存器文件LRF(Local Register File)以及它们之间的簇内互联开关,其中运算单元、通信单元、IO单元是最基本的、必须的,它们均包含译码部件和执行部件。运算单元完成基本的运算功能,通信单元完成运算簇之间的数据通信,IO单元则负责在本地寄存器文件LRF与流寄存器文件SRF之间传输数据。
当今的流处理器如Imagine、FT64、MASA、STORM,都在运算簇中设置了大量的IO单元,数目都为8个,可以同时支持支持8个流,每个IO单元执行一个流。每个IO单元与一个流缓冲相连,多个流缓冲与流寄存器文件相连。数据流输入时,数据首先存放在流寄存器文件中,然后根据需要传送到流缓冲、再由流缓冲传到与之相连的IO单元,最后存放到运算簇内部的本地寄存器文件中供运算单元使用;数据流输出时,数据首先存放在运算簇内部的本地寄存器文件中,然后传送到IO单元,再由与IO单元相连的流缓冲存放到流寄存器文件中。这种执行方式有如下几个缺点:
(1)VLIW在执行时被分成位数不等的若干段代码,这些分割好的代码按照事先定义好的规则发送到不同的功能单元,每个功能单元对一段代码进行译码,根据译码结果执行相应的操作,每个功能单元对应的一段代码即为该功能单元在VLIW中对应的指令域。每个IO单元都需要在VLIW中有一个指令域来决定其操作,多个IO单元会造成VLIW位宽太长,对微码存储器的容量要求较高。实验结果显示MASA流处理器的微码存储器占芯片面积的26%,这个比例是很高的。
(2)运算簇内部的簇内互联开关本质上为一系列的选择器,所有功能单元的输出都与其相连,簇内互联开关根据编译器的指定选择输入,然后输入到本地寄存器文件中。大量的IO单元会使得簇内互联开关中的选择器的规模变得很大,选择器的数目也随着IO单元数目的增加而增加,这会带来设计面积和延迟的急剧增加。此外,每个IO单元需要专门的译码单元、执行单元,较大数目的IO单元也会消耗一定的硬件逻辑。
(3)最重要的,每个IO单元只能执行一个流,也限制了处理器支持流的数目,一旦需要同时传输的数据流超出IO单元的数目,系统将无法再提供支持,需要程序员调整程序,给程序员编程带来不便。
因此如何实现对大量输入输出流的支持,实现流处理器中输入输出流数目的可扩展性是本领域研究人员一直关注的问题。
发明内容
本发明要解决的技术问题是在流处理器的设计过程中如何克服一个IO单元只能执行一个流的限制,实现少量IO单元对大量输入输出流的扩展支持,同时降低硬件开销。
本发明的技术方案是:采用IO单元复用方法,将逻辑上的多个流分配到物理上的少数几个IO单元上执行,同一个IO单元执行多个输入输出流,大幅减少IO单元的数量。为了对同一个IO单元上的多个流进行区分,编译器给每个流分配一个流标识符,IO单元在执行IO操作时,根据流标识符对流进行区分,然后对流标识符指定的流缓冲存取数据。从理论上讲,每个运算簇只需要有一个IO单元就可以完成所有的流传输。
为方便下面的叙述,先对有关变量进行说明:
K:一个运算簇中IO单元的数目;
N:流处理器中与一个运算簇相连的流缓冲SB的数目;
L:选择器的规模为L∶1;
K、N、L均为正整数。
本发明的具体步骤如下:
第一步,修改编译器,在编译器中增加IO单元复用处理模块,它是一个软件模块,对涉及到IO操作的部分进行以下处理:
1.1、为每一个流添加流标识符属性;
设总的输入输出流的数目为n(1≤n≤N),IO单元复用处理模块在编译器解析输入输出流时首先对所有输入输出流从0到n-1统一进行编号,并指定流输入时0号流的数据存放在0号流缓冲,然后由0号流缓冲经IO单元传送到本地寄存器文件LRF中;1号流的数据先存放在1号流缓冲,然后由1号流缓冲经IO单元传送到本地寄存器文件LRF中;……;n-1号流的数据先存放在n-1号流缓冲,然后由n-1号流缓冲经IO单元传送到本地寄存器文件LRF中;流输出时IO单元将0号流的数据传送到0号流缓冲,再由0号流缓冲传送到流寄存器文件SRF中;IO单元将1号流的数据传送到1号流缓冲,再由1号流缓冲传送到流寄存器文件SRF中;……;IO单元将n-1号流的数据传送到n-1号流缓冲,再由n-1号流缓冲传送到流寄存器文件SRF中。对每一个流增加一个流标识符stream_ID,编译器将所有的输入输出流解析成能够被IO单元执行的IO操作,该流所附带的流标识符也添加到解析出来的IO操作中。每个流标识符通过以下方式确定:
编号为t(0≤t≤n-1)的流的流标识符stream_ID的值通过下面的公式计算得出: 的含义是下取整,即将0~K-1号流的stream_ID设为0,K~2K-1号流的stream_ID设为1,……,i*K~(i+1)*K-1号流的stream_ID设为i,i为整数。
1.2、对IO操作进行调度;
在指令调度前,对IO操作进行按以下方法进行调度:将stream_ID为k(0≤k≤K-1)的IO操作调度到第k个IO单元,即将stream_ID为0的IO操作调度到0号IO单元;stream_ID为1的IO操作调度到1号IO单元;……;stream_ID为K-1的IO操作调度到K-1号IO单元。即假设实现4个IO单元支持8个流,则编译器将0号、4号流解析产生的IO操作调度到0号IO单元执行,将1号、5号流解析产生的IO操作调度到1号IO单元执行,将2号、6号流解析产生的IO操作调度到2号IO单元执行,将3号、7号流解析产生的IO操作调度到3号IO单元执行。因为编译器每次只能选择一个操作进行调度,决定执行该操作的功能单元及流出的执行时间,所以stream_ID相同的多个IO操作在同一个IO单元上在不同的时间流出执行,不会出现IO操作的冲突问题。
1.3、在最终生成的VLIW中加入相应的流标识符域。
在最终生成的二进制VLIW代码中有一个与IO单元对应的指令域来指示IO单元如何工作,每个指令域由(op、stage、bus)三部分组成,总共约有10位的二进制代码,op代表该功能单元要执行的操作,stage代表该操作所属的软件流水栈,bus代表功能单元获取数据的总线。为支持IO单元复用,IO单元复用处理模块在编译器生成VLIW时在每个IO单元的指令域中增加流标识符部分。
流标识符部分的值就是该IO单元所执行的IO操作的stream_ID的值。
第二步,改进流处理器中运算簇的硬件结构,方法是:
每个多路选择器均与一个IO单元相连,即0号多路选择器与0号IO单元相连;1号多路选择器与1号IO单元相连;……;K-1号多路选择器与K-1号IO单元相连。
多路选择器与流缓冲的连接方式是:0号、K号、……、(L-1)*K号流缓冲与0号多路选择器相连;1号、K+1号、……、(L-1)*K+1号流缓冲与1号多路选择器相连;……;K-1号、2K-1号、……、N-1号流缓冲与K-1号多路选择器相连。假设要实现4个IO单元支持8个流,则有8个流缓冲,每个IO单元执行2个流,增加4个2∶1选择器,其中0号、4号流缓冲与0号多路选择器相连;1号、5号流缓冲与1号多路选择器相连;2号、6号流缓冲与2号多路选择器相连;3号、7号流缓冲与3号多路选择器相连。
第三步,K个IO单元根据VLIW代码通过复用并行执行多个流:
程序执行时,微控制器首先将VLIW广播到运算簇,IO单元对VLIW中与之对应的指令域中的流标识符部分进行译码,译码结果作为仲裁信号,各多路选择器从IO单元获得仲裁信号,根据仲裁信号对流的访问进行仲裁,在执行输入操作时,k号多路选择器选择从j*K+k号流缓冲传来的数据发送给k号IO单元,由k号IO单元将数据传送到运算簇的本地寄存器文件LRF中,j为流标识符部分译码的值;在执行输出操作时,数据先由本地寄存器文件LRF传送到k号IO单元,k号IO单元将数据传送到k号多路选择器,k号多路选择器将数据传送到第j*K+k号流缓冲,经第j*K+k号流缓冲将数据传送到流寄存器文件SRF中。同一时刻,多个IO单元可以同时执行多个IO操作,实现指令级并行。在不同的时刻,同一个IO单元根据译码产生的仲裁信号对不同的流缓冲存取数据,实现了分时执行多个流,解决了一个IO单元只能对一个流缓冲进行存取、只能执行一个流的缺点,实现了IO单元的复用。
采用本发明可以达到以下技术效果:
1、本发明提供了一种IO单元复用方法来实现对输入输出流的数目的扩展的支持。这种方法使得流的数目增加时不需要增加程序员的负担就能实现对流的支持,程序员可以把精力集中在程序的设计上,力求达到最优性能。
2、采用本发明能够在相同的输入输出流数目下使用少量的IO单元实现对流的支持,减少IO单元数目可以极大降低运算簇内部的大规模选择器的开销、减少选择器的数目,进而大幅降低运算簇内部的交叉开关和整个运算簇的硬件开销。
虽然在改进流处理器的硬件结构时增加了k个多路选择器,但这种硬件开销相对于运算簇内部的大规模选择器的开销、交叉开关和整个运算簇的硬件开销是相当小的。
3、采用本发明可以大幅减少IO单元数目,这些减少的IO单元在VLIW中对应的指令域将不再需要,可以减少最终生成的VLIW中IO单元对应的指令域,缩短最终的VLIW位宽,使得对微控制器的微码存储器容量需求降低。
附图说明
图1是当前通用的一种流处理器——Imagine系列的逻辑结构图。
图2为图1所示流处理器中通用的运算簇的逻辑结构图。
图3为本发明总体流程图。
图4为流处理器编译器的主要流程图及本发明第一步对编译器进行修改后的流程图。
图5为本发明第二步对运算簇进行改进后的逻辑结构图。
具体实施方式
图1是目前Imagine系列流处理器的逻辑结构图。流处理器由主处理器、DRAM存储器、存储控制器、流控制器、微控制器、流寄存器文件SRF及多个运算簇组成,各部件之间通过片上通用总线连接。流处理器中所有的计算操作由运算簇完成,同计算相关的输入数据流、输出数据流以及中间数据都被存放在流寄存器文件SRF中,保证数据能够在处理器内部循环利用而不必对外部DRAM存储器进行访问。核心程序经编译生成的VLIW代码存放在微控制器中的微码存储器中,当核心程序启动时,微控制器将VLIW代码逐条广播到各运算簇,控制各运算簇以SIMD方式执行。
图2是图1所示流处理器中运算簇的逻辑结构图。流处理器中所有的计算指令由运算簇完成,它是一个相对独立的模块,每个运算簇包括若干个功能单元(包括运算单元ALU和非运算单元)、本地寄存器文件LRF以及它们之间的簇内互联开关,其中运算单元、通信单元COMM、IO单元是最基本的、必须的。运算单元完成基本的运算功能,通信单元通过簇间通信总线完成运算簇之间的数据通信,本地寄存器文件LRF负责为所有的功能单元提供数据,IO单元则负责在本地寄存器文件LRF与流寄存器文件SRF之间传输数据,IO单元和流寄存器文件通过双向的流缓冲SB连接,所有对流寄存器文件的访问都通过流缓冲完成,每个IO单元与一个流缓冲相连,执行一个流。输入时,数据首先从流寄存器文件传输到流缓冲,IO单元从与之相连的流缓冲获取数据,通过簇内互联开关将数据传送到运算簇内部的本地寄存器文件中供运算单元使用。每个IO单元通过簇内互联开关同时与多个本地寄存器文件相连,每个本地寄存器文件也通过簇内互联开关与多个IO单元相连。输入时每个IO单元在什么时候经由哪个互联开关将数据发送到哪个本地寄存器文件由编译器决定;输出时,最终计算的结果首先存放在运算簇的本地寄存器文件中,IO单元通过簇内互联开关从本地寄存器文件获取数据,将它发送给与该IO单元相连的流缓冲,最后将数据存放在流寄存器文件中,同样,每个IO单元在何时通过哪个互联开关从哪个本地寄存器文件获取数据也由编译器决定。
图3为本发明总体流程图。首先对编译器进行修改,在编译器中添加IO单元复用处理模块。在对所有的输入输出流进行排序的基础上为输入输出流添加流标识符属性,将所有的输入输出流解析成不同的IO操作,编译器将不同的IO操作调度到流标识符指定的IO单元上执行,同一个IO单元在不同的时刻分时执行调度到该IO单元上的由多个流解析生成的多个IO操作;在生成VLIW代码时为每个IO单元对应的指令域增加一个流标识符部分,其值就是该IO单元执行的流的流标识符的值,并将它一起打包到最后生成的VLIW中。然后对硬件结构进行改进,在IO单元和流缓冲SB之间增加K个多路选择器M,用于对流的访问进行仲裁。最后是多个IO单元并行执行实现IO单元复用,微控制器将VLIW广播到运算簇,IO单元对其所对应的指令域进行译码。IO单元将对流标识符stream_ID部分的译码结果作为仲裁信号直接发送到与之相连的多路选择器,多路选择器根据仲裁信号的指定动态的建立流缓冲与IO单元之间的数据通路,完成最终的流输入输出功能。
图4为本发明第一步对编译器进行修改后的流程图。虚线框内的为对编译器修改所做的工作,其余部分为改进前编译器的流程图。编译器的原始输入包括:程序员编写的源程序、流处理器的硬件结构描述,输出为能在流处理器上正确高效执行的二进制VLIW代码。首先是预处理,对程序进行词法语法分析,然后分析其数据流和控制流,建立数据依赖关系图(DAG图)。然后是VLIW调度:根据DAG图和流处理器的硬件结构对每个操作进行调度,分配各种处理器资源,打包生成VLIW。接下来是寄存器分配,采用经典的图着色算法对寄存器进行分配。最后是可执行代码产生,产生能在流处理器上执行的二进制VLIW代码。修改后编译器所添加的IO单元复用处理模块被分成不同的阶段插入到编译器的流程中。首先在预处理结束后为每个流添加一个流标识符;然后在VLIW调度时对IO操作的调度进行特殊的处理,根据流标识符将不同的IO操作调度到相应IO单元上执行;最后在产生可执行代码时为每个IO单元对应的指令域添加流标识符部分并一起打包到最终生成的VLIW中。
图5为本发明第二步对运算簇进行改进后的逻辑结构图。IO单元与运算簇内的簇内互联开关、LRF、功能单元的连接方式不变,流缓冲与流寄存器文件的连接方式也不变,改变的是IO单元和流缓冲之间的连接。在IO单元和流缓冲之间增加K个多路选择器,用于对流的访问进行仲裁。流缓冲与IO单元的数目都是K,它们之间存在一一对应的连接关系。流缓冲的数目为N,选择器的规模为L∶1,多路选择器与流缓冲的连接方式如下:0号、K号、……、(L-1)*K号流缓冲与0号多路选择器相连;1号、K+1号、……、(L-1)*K+1号流缓冲与1号多路选择器相连;……;K-1号、2K-1号、……、N-1号流缓冲与K-1号多路选择器相连。IO单元将对流标识符stream_ID部分的译码结果作为仲裁信号直接发送到与之相连的多路选择器,多路选择器根据仲裁信号决定从哪个流缓冲存取数据。输入时,多路选择器根据仲裁信号从指定的流缓冲获取传过来的数据,将其传送给IO单元,再由IO单元传送到本地寄存器文件中;输出时,IO单元先从本地寄存器文件获取数据,将其发送给多路选择器,多路选择器根据仲裁信号将IO单元传来的数据发送给指定的流缓冲,再由流缓冲传送到流寄存器文件中。
Claims (2)
1.一种流处理器中IO单元复用方法,其特征在于包括以下步骤:
第一步,修改编译器,在编译器中增加IO单元复用处理模块,它是一个软件模块,对涉及到IO操作的部分进行以下处理:
1.1为每一个流添加流标识符属性,方法是:IO单元复用处理模块在编译器解析输入输出流时首先对所有输入输出流从0到n-1统一进行编号,并指定流输入时0号流的数据存放在0号流缓冲,然后由0号流缓冲经IO单元传送到本地寄存器文件LRF中;1号流的数据先存放在1号流缓冲,然后由1号流缓冲经IO单元传送到本地寄存器文件LRF中;……;n-1号流的数据先存放在n-1号流缓冲,然后由n-1号流缓冲经IO单元传送到本地寄存器文件LRF中;流输出时IO单元将0号流的数据传送到0号流缓冲,再由0号流缓冲传送到流寄存器文件SRF中;IO单元将1号流的数据传送到1号流缓冲,再由1号流缓冲传送到流寄存器文件SRF中;……;IO单元将n-1号流的数据传送到n-1号流缓冲,再由n-1号流缓冲传送到流寄存器文件SRF中;对每一个流增加一个流标识符stream_ID,编译器将所有的输入输出流解析成能够被IO单元执行的IO操作,输入输出流所附带的流标识符也添加到解析出来的IO操作中;其中n为总的输入输出流的数目,1≤n≤N,N为流处理器中与一个运算簇相连的流缓冲SB的数目;每个流标识符通过以下方式确定:编号为t的流的流标识符 的含义是下取整,K为一个运算簇中IO单元的数目,0≤t≤n-1;
1.2对IO操作按以下方法进行调度:将流标识符stream_ID为k的IO操作调度到第k个IO单元,0≤k≤K-1;
1.3 IO单元复用处理模块在编译器生成二进制代码时在每个IO单元的指令域中增加流标识符部分,流标识符部分的值就是该IO单元所执行的IO操作的流标识符stream_ID的值;
第二步,改进流处理器中运算簇的硬件结构,方法是:在IO单元和流缓冲之间增加K个多路选择器,多路选择器的规模为L:1,L满足: 表示上取整;每个多路选择器均与一个IO单元相连,即0号多路选择器与0号IO单元相连;1号多路选择器与1号IO单元相连;……;K-1号多路选择器与K-1号IO单元相连;多路选择器与流缓冲的连接方式是:0号、K号、……、(L-1)*K号流缓冲与0号多路选择器相连;1号、K+1号、……、(L-1)*K+1号流缓冲与1号多路选择器相连;……;K-1号、2K-1号、……、N-1号流缓冲与K-1号多路选择器相连;
第三步,K个IO单元根据VLIW代码通过复用并行执行多个流:
程序执行时,IO单元对VLIW中与之对应的指令域中的流标识符部分进行译码,译码结果作为仲裁信号,各多路选择器从IO单元获得仲裁信号,根据仲裁信号对流的访问进行仲裁;在执行输入操作时,k号多路选择器选择从j*K+k号流缓冲传来的数据发送给k号IO单元,k号IO单元将数据传送到运算簇的本地寄存器文件LRF中,j为流标识符部分译码的值;在执行输出操作时,数据先由本地寄存器文件LRF传送到k号IO单元,k号IO单元将数据传送到k号多路选择器,k号多路选择器将数据传送到第j*K+k号流缓冲,经第j*K+k号流缓冲将数据传送到流寄存器文件SRF中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100447480A CN101699392B (zh) | 2009-11-12 | 2009-11-12 | 流处理器中io单元复用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100447480A CN101699392B (zh) | 2009-11-12 | 2009-11-12 | 流处理器中io单元复用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101699392A CN101699392A (zh) | 2010-04-28 |
CN101699392B true CN101699392B (zh) | 2012-05-09 |
Family
ID=42147852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100447480A Expired - Fee Related CN101699392B (zh) | 2009-11-12 | 2009-11-12 | 流处理器中io单元复用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101699392B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662637B (zh) * | 2012-03-30 | 2014-10-15 | 中国人民解放军国防科学技术大学 | 超长指令字处理器指令发射方法 |
CN108681556B (zh) * | 2018-04-08 | 2021-01-29 | 华中科技大学 | 分布式指令域数据的访问方法及其系统 |
CN111865168A (zh) * | 2020-06-29 | 2020-10-30 | 苏州金峰物联网技术有限公司 | 偏转电机的控制方法、控制系统、可读存储介质及偏转设备 |
CN114756180B (zh) * | 2022-06-15 | 2022-12-09 | 广东睿江云计算股份有限公司 | 覆盖写入数据块分配方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0118830A2 (en) * | 1983-03-14 | 1984-09-19 | International Business Machines Corporation | Pipelined processor |
CN101021830A (zh) * | 2007-03-29 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 一种流处理器中多核扩展的方法 |
CN101034345A (zh) * | 2007-04-16 | 2007-09-12 | 中国人民解放军国防科学技术大学 | 流处理器中数据流、指令流的控制方法 |
-
2009
- 2009-11-12 CN CN2009100447480A patent/CN101699392B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0118830A2 (en) * | 1983-03-14 | 1984-09-19 | International Business Machines Corporation | Pipelined processor |
CN101021830A (zh) * | 2007-03-29 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 一种流处理器中多核扩展的方法 |
CN101034345A (zh) * | 2007-04-16 | 2007-09-12 | 中国人民解放军国防科学技术大学 | 流处理器中数据流、指令流的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101699392A (zh) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10380063B2 (en) | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator | |
US10564980B2 (en) | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator | |
US11307873B2 (en) | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging | |
US10915471B2 (en) | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator | |
US10445451B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US10496574B2 (en) | Processors, methods, and systems for a memory fence in a configurable spatial accelerator | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US10416999B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US10467183B2 (en) | Processors and methods for pipelined runtime services in a spatial array | |
US10387319B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features | |
US11086816B2 (en) | Processors, methods, and systems for debugging a configurable spatial accelerator | |
US10817291B2 (en) | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator | |
CN117762484A (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
US20190303297A1 (en) | Apparatus, methods, and systems for remote memory access in a configurable spatial accelerator | |
US20190018815A1 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US20190004878A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features | |
US10140124B2 (en) | Reconfigurable microprocessor hardware architecture | |
US10853073B2 (en) | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator | |
US10678724B1 (en) | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator | |
US20220100680A1 (en) | Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits | |
US11037050B2 (en) | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator | |
CN101699392B (zh) | 流处理器中io单元复用方法 | |
US11940940B2 (en) | External exchange connectivity | |
KR20060004929A (ko) | 데이터 처리 시스템 및 군집성 명령 레벨 병렬성 프로세서 | |
Panda et al. | Software Managed Distributed Memories in MPPAs |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120509 Termination date: 20121112 |