一种全互联路由结构动态可重构处理器的制作方法

文档序号:6425727阅读:209来源:国知局
专利名称:一种全互联路由结构动态可重构处理器的制作方法
技术领域
本发明涉及动态可重构处理器领域,特别涉及一种全互联路由结构动态可重构处理器。
背景技术
可重构计算是一种将软件的灵活性和硬件的高效性结合在一起的计算方式,比如现场可编程逻辑门阵列(Field Programmable Gate Array, FPGA)就是一个可重构计算应用的具体实例。和普通微处理器之间的区别在于它不仅可以改变控制流,还可以改变数据通路(Data Path)的结构,具有高性能、低硬件开销和功耗、灵活性好、扩展性好的优点。目前主要应用于媒体处理、模式识别、基带处理等计算密集型的算法。随着嵌入式处理器普遍要求缩短设计周期、降低设计和开发成本,另外最终市场和技术的不确定性越来越大,可重构处理逐步成为嵌入式处理器国际发展的趋势。不仅如此,在很多高性能计算的领域它也有所涉足,包括结构分析、计算流体力学、分子模拟、生物信息、计算化学、地震地质(油气勘探)、数值气象、宇宙学研究等。新的半导体工艺为可重构硬件带来千万门级电路的技术,从而为可重构硬件提供足够的面积;在速度上,可重构硬件的性能正在接近专用定制芯片。在这些变化影响下,可重构计算在技术路线上逐步走上动态重构、粗颗粒度并行硬件、异构多核的道路。例如欧洲微电子中心(IMEC)的ADRES处理器由紧耦合的超长指令字(Very Long Instruction fford,VLIff)处理器内核和粗颗粒度并行矩阵计算的可重构硬件构成。而惠普(HP)的CHESS 处理器则由大量可重构算术可重构阵列模块构成。可重构处理器的基本组成包括主控制器和可重构运算单元。可重构运算单元均采用阵列的形式(阵列是并行化硬件的基本形式),来加大处理能力,同时通过灵活的互联结果来保证阵列的通用性。运算单元之间动态可重构的互联是动态可重构处理器芯片实现的关键技术之一。互联结构需要保证阵列灵活性的同时,考虑外部连接开关带宽,提高芯片的计算吞吐量。现有的互联结构,有的采取FPGA中connecting-box和switching-box的结构,非常灵活,但问题在于配置点过多,重构的信息量过大,导致无法动态完成,降低面积利用效率,限制了应用范围(比如嵌入式)。动态可重构阵列模块中也有使用NoC上的mesh全互联结构和传输协议包的形式=Mesh全互联面积代价巨大,同样大小的芯片面积上可容纳的计算单元数量减少,故也存在面积效率不高的问题,无法满足应用所需要的越来越大的计算规模的需求。而传输协议包的结构类似以太网中节点之间的数据交换形式,引入额外协议电路的同时也较为显著的降低了传输效率。

发明内容
本发明所要解决的技术问题是提供一种全互联路由结构动态可重构处理器,提高面积效率和传输效率。
为了解决上述问题,本发明公开了一种全互联路由结构动态可重构处理器,包括输入缓存阵列模块,可重构阵列模块,输出缓存阵列模块,连接开关开关一,连接开关二,连接开关三和连接开关四;可重构阵列模块相邻两列之间全互联;连接开关一宽度与输入缓存阵列模块列宽相同,连接开关二和连接开关三宽度与可重构阵列模块列宽相同,连接开关四与输入缓存阵列模块列宽相同;输入缓存阵列模块与连接开关一互联,连接开关一与连接开关二全互联,连接开关二与可重构阵列模块互联,可重构阵列模块与连接开关三互联,连接开关三与连接开关四全互联,连接开关四与输出缓存阵列模块互联。优选的,所述的输入缓存阵列模块为输入FIFO,所述的输出缓存阵列模块为输出 FIFO。优选的,所述的可重构阵列模块按列互联形成一维环状结构。优选的,所述的连接开关一包括与输入缓存阵列模块行的宽个数相同的子开关, 所述的连接开关一的每个子开关连接输入缓存阵列的一行缓存单元。优选的,所述的连接开关二包括与可重构阵列模块行的个数相同的子开关,所述的连接开关二的每个子开关的一端连接可重构阵列模块的一行计算单元。优选的,所述的连接开关三包括与可重构阵列模块的行的个数相同的子开关,所述的连接开关三的每个子开关的一端连接可重构阵列模块的一行计算单元。优选的,所述的连接开关四包括与输出缓存阵列模块行的个数相同的子开关,所述的连接开关四的每个子开关的一端连接输出缓存阵列模块的一行缓存单元。与现有技术相比,本发明具有以下优点本发明采用分层全互联的方式,输入缓存阵列模块通过两个独立的相互全互联连接开关连接计算阵列模,可重构阵列模块又通过两个独立的相互全互联的连接开关连接输出缓存阵列模块,降低了硬件开销和配置信息的开销,提高了面积效率。


图1是本发明的一种分层全互联结构示意图;图2是传统全互联结构示意图;图3是本发明一种实施例的输入缓存选1到连接开关一电路示意图;图4是本发明一种实施例连接开关一到连接开关二电路示意图;图5是本发明一种实施例案连接开关二到可重构阵列模块的选1电路示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。参照图1示出了本发明的一种分层全互联结构示意图。包括输入缓存阵列模块11,可重构阵列模块14,输出缓存阵列模块17,连接开关一 12,连接开关二 13,连接开关三15和连接开关四16 ;可重构阵列模块相邻两列之间全互联;连接开关一 12宽度与输入缓存阵列模块11列宽相同,连接开关二 13和连接开关三15 宽度与可重构阵列模块14列宽相同,连接开关四16与输入缓存阵列模块17列宽相同;
输入缓存阵列模块11与连接开关一 12互联,连接开关一 12与连接开关二 13全互联,连接开关二 13与可重构阵列模块14互联,可重构阵列模块14与连接开关三15互联, 连接开关三15与连接开关四16全互联,连接开关四16与输出缓存阵列模块17分互联;其中输入缓存阵列模块规模为2mlx2nl,其中2ml为行数,2nl为列数;可重构阵列模块规模为2m2x2n2,其中2m2为行数,2"2为列数;输出缓存阵列模块规模为2m3x2n3,其中2m3为行数,2n3为列数;并和输入缓存规模一致。数据由输入缓存阵列模块11输入,然后输入缓存阵列模块11选择一列数据到连接开关一 12,连接开关一 12将数据输送到连接开关二 13,连接开关13选择输入到可重构阵列模块14的一列进行计算单元,数据只可从此列传入相全互联的下一列计算单元进行处理,当可重构阵列模块数据在某一列处理完毕后,处理完数据的那一列计算单元连接到连接开关15,将数据从可重构阵列模块输送到连接开关15,连接开关15将数据输送到连接开关16,连接开关16选择输出缓存的一列连接将数据输出。其中输入缓存阵列模块的每行按需求与连接开关一全互联;可重构阵列模块的每行按需求与连接开关二全互联;可重构阵列模块的每行按需求与连接开关三全互联;输出缓存的每行按需求与连接开关四全互联;其中输入缓存阵列模块优选为输入FIFO (First In Out,一种先进先出的数据缓存器),输出缓存阵列模块优选为输出FIFO。优选的,可重构阵列模块按列互联形成一维环状结构,例如可重构阵列模块从左至右有4列,那么第1列连接第2列,第2列连接第3列,第3列连接第4列,第4列连接第 1列,并且相邻两列之间采取全互联。其中,连接开关一包括与输入缓存阵列模块行的个数相同的子开关,所述的连接开关一的每个子开关连接输入缓存阵列的一行缓存单元。连接开关二包括与可重构阵列模块行的个数相同的子开关,所述的连接开关二的每个子开关的一端连接可重构阵列模块的一行计算单元。连接开关三包括与可重构阵列模块行的个数相同的子开关,所述的连接开关三的每个子开关的一端连接可重构阵列模块的一行计算单元。连接开关四包括与输出缓存阵列模块行的个数相同的子开关,所述的连接开关四的每个子开关的一端连接输出缓存阵列模块的一行缓存单元。为了充分说明本发明的优点,下面给示出了传统传互联结构作为对比。参照图2,示出了传统全互联结构示意图。传统结构中输入缓存模块21的所有单元与可重构阵列模块22的所有单元之间全互联,可重构阵列模块22的所有单元相互全互联,可重构阵列模块22的所有单元与输出缓存模块23的所有单元之间全互联。比如输入缓存模块为虹2的阵列,可重构阵列模块为 4x4的阵列,输出缓存模块为4x2的阵列,那么输入缓存模块的8个单元每个都与与可重构阵列模块的16个单元都相连接,可重构阵列模块的16个单元之间相互连接,输出缓存模块的8个单元每个都与可重构阵列模块的16个单元相连接。其中输入缓存阵列模块规模为 2mlx2n1,可重构阵列模块规模为2-^2"2,输出缓存阵列模块规模为2m3x2n3并和输入缓存规模一致。在传统的全互联结构中,可重构阵列模块为了保证足够的灵活性,需要采用全互联的策略。如上所述,互联的位置分成三个部分1)输入端到计算单元之间的互联2)计算单元之间的互联3)计算单元到输出端之间的互联图中给出的数种数据互联方式均为示例。图中输入缓存的宽度为2ml个数据,一次运算所需的数据深度为2nl行。(由于一个任务图所需的数据可能大于缓存宽度2ml,故存在大于等于1的2nl参数。)(使用2的幂指数表示是为了更好的和硬件实现对应,指数上的数据即为编码地址)阵列规模为2m2x2n2,数据沿着2112的方向流动。(由于计算电路总是带有方向性,故可重构阵列模块总能划归成一维的计算数据流。)同理输出缓存的宽度为2m3x2n3,和输入缓存一致。为了更清楚地说明互联的硬件规模,这里先举一个简单的例子当两排数据之间采用全互联结构,第一排有2m个数据,是源,第二排有2n个数据,是目标。1)先从m个数据中选择1个数据给目标地址1 mux 开销2-^+2°1-2+. . . +2° = 2m_l (mux 为 2 选 1 基本电路单元)2)再重复上述操作2n_l次,使得2n个目标均获得输入数据按乘法乘法原理得Qm-I) *2n所以,图1中三部分的全互联结构硬件结构的开销如下1)输入端到计算单元之间的互联(2ml*2nl-lM2m、2n2)(1.1)2)计算单元之间的互联(2m2-l)*2m^K2n2-l+l)/2*(2n2-l) = (2m2_l) * ^l2-I) *2m、2n2-l (1.2)3)计算单元到输出端之间的互联(2m2*2n2-l)*(2m3*2n3)(1.3)假定m和η等比例增加,硬件规模和2m*2n成正比。而图1为本发明的一种分层全互联结构示意图。输入缓存从2nl行中选择一列到连接开关一,连接开关一到连接开关二采用全互联,再从2"2行中选择一列连接到连接开关二,如此完成输入缓存到阵列的互联。阵列到输出缓存的连接方式同理。可重构阵列模块只采用行与行之间的全互联。这种互联方式利用算法中数据的局域性,即中相邻的数据大部分情况下在存储器中位置接近。故输入数据可以使用同一行的多个数据,而阵列输入数据位置的调整可以通过阵列中空闲单元进行数据直传,即可以到达所需要的输入位置。当算法映射至可重构阵列模块的过程中,也应当使得计算路径相对比较均衡,这样整个电路图在循环流水的过程中也能取得较高的效率。这说明行间互联也具备算法映射的合理性。这里硬件开销的计算如下先选择2nl中的一行2ml个数据,需要(2nl_l) *2ml个mux ;再实现2ml到2m2个数据之间的全互联,需要(2ml-l)*2m2个mux ;最后实现阵列2nl行中选择一行2m2个数据,需要 Qnl-I) Mm2 个 mux。故,图2三部分互联结构的硬件开销如下
1)输入端到计算单元之间的互联(2nl-l) *2m1+ (2ml-l) *2m2+ (2^-1) *2m2(2.1)2)计算单元之间的互联(2m2-l)*2m2*(2n2-l)(2.2)3)计算单元到输出端之间的互联(2112-!) *2m2+ (2m2-l) *2m3+ (2n3-l) *2m3(2.3)比较本发明和传统方案中输入互联的部分,
r\ m 1 + nl+ m 2 + η 2
(1.1)/(2.1) = ^—--, 一般情况下 nl 较小(物理
\ -7 \-7nl ^ m 1+ m 2 ^ m 2 + η 2 ,
意义由于输入缓存的宽度较大,一次循环输入用到的缓存行数较小),则可以得到
rs VnXjTnI
(1.1)/(2.1) = 2"1 + ^n2。故当一次循环用到缓存的行数为2,阵列的行数为16,输入缓
存一行数据个数为16(即nl = 1,n2 = 4,ml = 4)时,本专利方案的硬件开销约为原来的 1/16,善加利用了算法映射的特性,在保持阵列灵活性的同时,大大减小阵列的硬件开销。比较本发明和传统方案中阵列互联的部分,(1.1)/(2.1)三T1'1。当阵列的行数为16 (即n2 = 4)时,本专利方案的硬件开销约为原来的1/8。对比三个部分硬件开销的优化幅度如下1)输入端到计算单元之间的互联
权利要求
1.一种全互联路由结构动态可重构处理器,其特征在于包括输入缓存阵列模块,可重构阵列模块,输出缓存阵列模块,连接开关开关一,连接开关二,连接开关三和连接开关四;可重构阵列模块相邻两列之间全互联;连接开关一宽度与输入缓存阵列模块列宽相同,连接开关二和连接开关三宽度与可重构阵列模块列宽相同,连接开关四与输入缓存阵列模块列宽相同;输入缓存阵列模块与连接开关一互联,连接开关一与连接开关二全互联,连接开关二与可重构阵列模块互联,可重构阵列模块与连接开关三互联,连接开关三与连接开关四全互联,连接开关四与输出缓存阵列模块互联。
2.如权利要求1所述的全互联路由结构动态可重构处理器,其特征在于所述的输入缓存阵列模块为输入FIFO,所述的输出缓存阵列模块为输出FIFO。
3.如权利要求1所述的全互联路由结构动态可重构处理器,其特征在于所述的可重构阵列模块按列互联形成一维环状结构。
4.如权利要求1所述的全互联路由结构动态可重构处理器,其特征在于所述的连接开关一包括与输入缓存阵列模块行的宽个数相同的子开关,所述的连接开关一的每个子开关连接输入缓存阵列的一行缓存单元。
5.如权利要求1所述的全互联路由结构动态可重构处理器,其特征在于所述的连接开关二包括与可重构阵列模块行的个数相同的子开关,所述的连接开关二的每个子开关的一端连接可重构阵列模块的一行计算单元。
6.如权利要求1所述的全互联路由结构动态可重构处理器,其特征在于所述的连接开关三包括与可重构阵列模块的行的个数相同的子开关,所述的连接开关三的每个子开关的一端连接可重构阵列模块的一行计算单元。
7.如权利要求1所述的全互联路由结构动态可重构处理器,其特征在于所述的连接开关四包括与输出缓存阵列模块行的个数相同的子开关,所述的连接开关四的每个子开关的一端连接输出缓存阵列模块的一行缓存单元。
全文摘要
本发明提供了一种全互联路由结构动态可重构处理器,包括输入缓存阵列模块,可重构阵列模块,输出缓存阵列模块,连接开关开关一,连接开关二,连接开关三和连接开关四;可重构阵列模块相邻两列之间全互联;连接开关一宽度与输入缓存阵列模块列宽相同,连接开关二和连接开关三宽度与可重构阵列模块列宽相同,连接开关四与输入缓存阵列模块列宽相同;输入缓存阵列模块与连接开关一互联,连接开关一与连接开关二全互联,连接开关二与可重构阵列模块互联,可重构阵列模块与连接开关三互联,连接开关三与连接开关四全互联,连接开关四与输出缓存阵列模块互联。通过本发明的分层式全互联,降低了硬件开销和配置信息的开销,提高了面积效率。
文档编号G06F15/78GK102214158SQ201110152238
公开日2011年10月12日 申请日期2011年6月8日 优先权日2011年6月8日
发明者刘雷波, 尹首一, 戚斌, 时龙兴, 曹鹏, 朱敏, 杨军, 王延升, 魏少军 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1