首页> 中国专利> 阵列处理器中簇内存储并行访问局部优先交换电路

阵列处理器中簇内存储并行访问局部优先交换电路

摘要

阵列处理器中簇内存储并行访问局部优先交换电路主要适用于阵列处理器中簇内分布式存储结构的数据并行访问功能,属于集成电路设计技术领域。目的在于通过多级交换结构及局部优先访问策略,降低存储访问延迟、提高访问带宽、提高资源利用率。本设计采用“局部交换+全局交换+局部交换”的三级交换结构,实现了4*4阵列处理器对16个分布式存储块的并行访问,提高了局部数据访问的并行性、降低了全局访问延迟、简化了存储结构。

著录项

  • 公开/公告号CN106547707A

    专利类型发明专利

  • 公开/公告日2017-03-29

    原文格式PDF

  • 申请/专利权人 西安邮电大学;

    申请/专利号CN201610837727.4

  • 申请日2016-09-21

  • 分类号G06F13/16;G06F13/18;

  • 代理机构

  • 代理人

  • 地址 710121 陕西省西安市长安区西长安街西安邮电大学

  • 入库时间 2023-06-19 01:51:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-05

    授权

    授权

  • 2017-04-26

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20160921

    实质审查的生效

  • 2017-03-29

    公开

    公开

说明书

技术领域

本发明属于集成电路设计技术领域,尤其涉及到阵列处理器中4*4处理器阵列簇内分布式存储结构的数据并行访问。

背景技术

随着集成电路技术的发展,仍然沿用传统的处理器性能提升方法:不断提高主频和开发指令集并行性,存在设计复杂度急剧增长和功耗过大的问题,并且主频的不断提高使得“存储墙”问题日益突出,为了适应集成电路工艺的发展,维持摩尔定律,单片上集成数十个、甚至上百个简单处理器核成为计算机体系结构发展的趋势。然而随着工艺的进步,片上集成的处理器核数越来越多,并行处理过程对数据传输带宽的要求也越来越高,“存储墙”问题变得越为突出,访问带宽受限、访问延迟过大是制约阵列处理器性能提升的主要瓶颈。

基于邻接互连的轻核阵列处理器,与众核处理器结构相比,具有执行操作级并行和数据级并行的特点,在进行算法实现时,尽可能的开发操作级并行和数据级并行,因此需要多个处理单元协同或者并行完成算法的运算。在处理一些算法时,例如图像算法中的滤波、卷积、直方图,视频算法中的运动估计、帧内预测,需要相邻的一块或者全部数据参与运算,这样就涉及到需要访问相邻的存储块。传统的NoC(Network on Chip)互连,一方面,数据访问延时较大,一般读/写延时高达数十个时钟周期,这与操作级或是数据级运算的1~2个周期相比,延时太大,导致难以满足应用的实时性需求;另一方面,轻核阵列处理器,单个处理单元的电路规模大概在2000个逻辑单元,而4通道的虚通道路由器占用资源大概是处理单元的六倍,导致通信资源远远大于计算资源,资源利用率低下。

簇内存储并行访问局部优先交换电路,充分考虑了数据级并行应用的存储访问特点,采用局部优先访问策略,并通过三级交换结构实现了4*4阵列处理器簇内16个处理单元对16个存储块的并行访问。

发明内容

本发明涉及到阵列处理器中簇内存储并行访问局部优先交换电路,目的在于通过多级交换结构及局部优先访问策略,降低存储访问延迟、提高访问带宽、提高资源利用率。

本发明实施例是这样实现的,簇内存储并行访问局部优先交换电路的功能是接收来自簇内16个处理单元的存储访问请求信号及相应的地址、数据信息,并根据地址信息进行判断,如果访问本地存储,则无冲突直接访问;如果访问2*2局部阵列存储块,通过局部交换单元完成数据访问;如果访问其它存储块,通过本地局部交换单元、全局交换单元、目的局部交换单元三级交换结构实现数据访问;其中本地存储指与发起访问请求的处理单元所对应的存储块;本地局部交换单元指发起访问请求的处理单元所在的局部交换单元;目的局部交换单元指被访问的存储块所在的局部交换单元。

所述的簇内存储并行访问局部优先交换电路,由16个判断模块、16个仲裁模块、4个局部交换单元、1个全局交换单元构成。

判断模块由6个“与”门、1个“或”门、1个比较器、1个触发器和1个二选一电路构成,主要功能是接收来自处理器的存储访问请求信号及相应的地址、数据信息,对当前请求类型进行译码,并且根据请求的地址信息,产生本地读/写请求信号及相应的地址、数据信息送给仲裁模块,或者产生外部读/写请求信号及相应的地址信息送给局部交换单元,同时根据接收到的外部请求响应信号和当前请求类型产生输出给处理器的请求响应信号。

仲裁模块由2个“与”门、2个“或”门、1个触发器、4个二选一电路和1个发散电路构成,主要功能是根据接收到的来自判断模块的本地读/写请求及来自局部交换单元的外部读/写请求,产生输出的本地存储块的读/写请求信号及相应的地址、数据信息,并将产生的响应信号送给局部交换单元;当本地写请求和外部写请求同时到达时,优先响应本地写请求,同样当本地读请求和外部读请求同时到达时,优先响应本地读请求。

局部交换单元由5个写仲裁单元、5个读仲裁单元和1个响应单元构成,主要功能是接收来自2*2局部阵列中4个判断模块和全局交换单元产生的访问外部存储块的读/写请求信号,并根据访问地址信息进行仲裁,将接收到的请求信号发送给对应的仲裁模块或者是全局交换单元,并产生相应的响应信号。

全局交换单元由4个写仲裁单元、4个读仲裁单元和1个响应单元构成,主要功能是接收来自4个局部交换单元产生的访问存储块的读/写请求信号,并根据访问地址信息进行仲裁,将接收到的请求信号发送给目的局部交换单元,并产生相应的响应信号。

本发明的特点是采用“局部交换+全局交换+局部交换”的三级交换结构,完成了4*4阵列处理器对16个分布式存储块的并行全访问,提高了局部数据访问的并行性、降低了全局访问延迟、简化了存储结构、降低了功耗。

附图说明

图1 簇内存储并行访问局部优先交换电路结构图;

图2 判断模块电路图;

图3 仲裁模块电路图;

图4 局部交换单元结构图;

图5 局部交换单元中写仲裁单元电路图;

图6局部交换单元中读仲裁单元电路图;

图7局部交换单元中响应单元电路图;

图8 全局交换单元结构图;

图9 全局交换单元中写仲裁单元电路图;

图10全局交换单元中读仲裁单元电路图;

图11全局交换单元中响应单元电路图。

具体实施方式

下面结合附图具体介绍本发明所采用的技术方案和工作原理。

电路端口说明:

信号名称信号说明含义reqOUT来自处理器端的请求信号,高有效r_wOUT来自处理器端的读写操作指示信号,高电平表示读操作,低电平表示写操作wr_data[31:0]OUT来自处理器端的写入数据信息addr[13:0]OUT来自处理器端的读/写地址信息ackIN来自处理器端的读/写响应信号rd_data[31:0]IN来自处理器端的读出的数据信息wr_ram_reqOUT发送给存储块的写请求,高有效wr_ram_addr[9:0]OUT发送给存储块的写地址信息wr_ram_data[31:0]OUT发送给存储块的写数据信息rd_ram_reqOUT发送给存储块的读请求,高有效rd_ram_addr[9:0]OUT发送给存储块的读地址信息rd_ram_data[31:0]IN接收来自存储块的读数据信息

本发明适用于4*4阵列处理器对16个分布式存储块的并行访问,因此需要16组来自处理器端的读/写请求接口信息和16组访问分布式存储块的读/写信息,上表对1组读/写请求接口信息进行了详细的说明。

电路工作原理说明:

本发明的簇内存储并行访问局部优先交换电路的功能是接收来自簇内16个处理单元的存储访问读/写请求信号及相应的地址信息,并根据地址信息进行判断,如果访问本地存储,则无冲突直接访问;如果访问2*2局部阵列存储块,通过局部交换单元完成数据访问;如果访问其它存储块,通过本地局部交换单元、全局交换单元、目的局部交换单元三级交换结构实现数据访问。其中本地存储指与发起读/写请求的处理单元所对应的存储块。本地局部交换单元指发起读/写请求的处理单元所在的局部交换单元。目的局部交换单元指被访问的存储块所在的局部交换单元。详细设计过程如下:

参照图1,本发明的簇内存储并行访问局部优先交换电路,由判断模块、仲裁模块、局部交换单元、全局交换单元构成。

其中,判断模块由6个“与”门、1个“或”门、1个比较器、1个触发器和1个二选一电路构成,参见图2。当接收到req、r_w、和addr[13:0]信号后,首先将req信号和r_w信号进行“与”操作,判断当前的请求是否为写操作请求;同时将req信号和“取反”后的r_w信号进行“与”操作,判断当前请求是否为读操作请求。将addr[13:10]与本地地址(local id)进行比较,判断是否读/写本地存储块,并根据判断的结果,通过四个“与”门,分别产生写本地存储块请求信号wr_local_req、写其它存储块请求信号wr_other_req、读本地存储块请求信号rd_local_req、和读其它存储块请求信号rd_other_req。通过将本地存储块读/写请求信号wr_local_req、rd_local_req和来自读/写其它存储块产生的响应信号wr_other_ack、rd_other_ack进行“或”运算产生请求的响应信号ack。将rd_local_req经过触发器缓存一拍,并根据触发器的输出结果,控制二选一电路,将接收到的数据信号rd_local_data[31:0]或者rd_other_data[31:0]信号分配给需要输出的数据信号rd_data[31:0]。

仲裁模块由2个“与”门、2个“或”门、1个触发器、4个二选一电路和1个发散电路构成,参见图3。当接收到本地写请求信号wr_local_req和外部写请求信号wr_sw_req时,将这两个信号进行“或”运算,即两个请求信号任意一个有请求时,产生本地存储块写请求信号wr_ram_req。选择输出写地址信息wr_ram_addr[9:0]时,当本地写请求信号wr_local_req有效时,通过二选一电路,优先将本地写地址信息wr_local_addr[9:0]发送,否则将外部写地址信息wr_sw_addr[9:0]发送。选择输出写数据信息wr_ram_data[31:0]的过程与选择输出写地址信息wr_ram_addr[9:0]的过程一致。将本地写请求信号wr_local_req“取反”后,与外部写请求信号wr_sw_req进行“与”操作,产生外部写请求的响应信号wr_sw_ack,即有外部写请求时,在本地写请求无效时,才能响应外部写请求信号。产生本地存储块读请求信号rd_ram_req、输出读地址信息rd_ram_addr[9:0]、和外部读请求响应信号rd_sw_ack的过程与产生本地存储块写请求信号wr_ram_req、输出写地址信息wr_ram_addr[9:0]和外部写请求响应信号wr_sw_ack的过程一致。将rd_local_req经过触发器缓存一拍,并根据触发器的输出结果,控制发散电路,将接收到的本地存储读数据信号rd_ram_data[31:0]分配给输出数据信号rd_local_data[31:0]或者rd_sw_data[31:0]。

局部交换单元由5个写仲裁单元、5个读仲裁单元和1个响应单元构成,参见图4。写仲裁单元0用来接收来自判断模块1、2、3和全局交换单元送来的写请求以及相应的地址、数据信息,采用轮询算法进行仲裁,选择其一发送给仲裁模块0;写仲裁单元1用来接收来自判断模块0、2、3和全局交换单元送来的写请求以及相应的地址、数据信息,采用轮询算法进行仲裁,选择其一发送给仲裁模块1;以此类推,通过5个写仲裁单元完成对写请求的仲裁及地址、数据传送。同样,读仲裁单元0用来接收来自判断模块1、2、3和全局交换单元送来的读请求以及相应的地址,采用轮询算法进行仲裁,选择其一发送给仲裁模块0,同时接收来自仲裁模块1、2、3和全局交换单元送来的读数据,并根据上一时钟周期来自判断模块0读请求的相关仲裁结果,选择其一,发送给判断模块0;读仲裁单元1用来接收来自判断模块0、2、3和全局交换单元送来的读请求以及相应的地址,采用轮询算法进行仲裁,选择其一发送给仲裁模块1,同时接收来自仲裁模块0、2、3和全局交换单元送来的读数据,并根据上一时钟周期来自判断模块1读请求的相关仲裁结果,选择其一,发送给判断模块1;以此类推,通过5个读仲裁单元完成对读请求的仲裁及地址、数据传送。响应单元用于接收来自仲裁模块0、1、2、3和全局交换单元送来的读/写响应信号,根据5个写仲裁单元和5个读仲裁单元的仲裁结果,产生输出给判断模块0、1、2、3和全局交换单元的请求响应信号。

写仲裁单元由1个仲裁器、1个“或”门和两个多路选择器构成,参见图5。仲裁器用来接收输入的四个请求信号,并对请求信号根据轮询算法进行仲裁,选择其一有效,并通过“或”门,产生输出的写请求信号wr_sw_req。根据仲裁的结果,通过多路选择器,选择输入的四个地址之一输出给写地址信号wr_sw_addr[13:0]。输出写数据信号wr_sw_data[31:0]产生过程与写地址信号wr_sw_addr[13:0]产生过程一致。

读仲裁单元由1个仲裁器、1个“或”门、1个触发器和两个多路选择器构成,参见图6。仲裁器用来接收输入的四个请求信号,并对请求信号根据轮询算法进行仲裁,选择其一有效,并通过“或”门,产生输出的写请求信号rd_sw_req。根据仲裁的结果,通过多路选择器,选择输入的四个地址之一输出给读地址信号rd_sw_addr[13:0]。根据接收到的来自其它四个读仲裁单元缓存一拍的仲裁结果,通过多路选择器,选择输入的四个数据信息之一输出给读数据信号rd_oth_data[31:0]。触发器用来缓存本次仲裁结果,用于其它四个仲裁单元对读取数据的选择。

响应单元由10个译码器和10个“或”门构成,参见图7。5个译码器根据接收到的来自5个写仲裁单元的仲裁结果,将接收到的来自仲裁模块0、1、2、3和全局交换单元的写响应信号进行译码,并将译码的结果进行组合后,通过5个“或”门,分别产生输出给判断模块0、1、2、3和全局交换单元的写响应信号。例如,译码器0产生的译码4位译码结果,依次送到“或”门1、2、3、4;同样译码器1产生的译码4位译码结果,依次送到“或”门0、2、3、4;以此类推。输出给判断模块0、1、2、3和全局交换单元的读响应信号产生过程与输出给判断模块0、1、2、3和全局交换单元的写响应信号产生过程一致。

全局交换单元由4个写仲裁单元、4个读仲裁单元和1个响应单元构成,参见图8。写仲裁单元0用来接收来自局部交换单元1、2、3的写请求以及相应的地址、数据信息,采用轮询算法进行仲裁,选择其一发送给局部交换单元0;写仲裁单元1用来接收来自局部交换单元0、2、3送来的写请求以及相应的地址、数据信息,采用轮询算法进行仲裁,选择其一发送给局部交换单元1;以此类推,通过4个写仲裁单元完成对写请求的仲裁及地址、数据传送。同样,读仲裁单元0用来接收来自局部交换单元1、2、3的读请求以及相应的地址,采用轮询算法进行仲裁,选择其一发送给局部交换单元0,同时接收来自局部交换单元1、2、3送来的读数据,并根据上一时钟周期来自局部交换单元0读请求的相关仲裁结果,选择其一,发送给局部交换单元0;读仲裁单元1用来接收来自局部交换单元0、2、3的读请求以及相应的地址,采用轮询算法进行仲裁,选择其一发送给局部交换单元1,同时接收来自局部交换单元0、2、3送来的读数据,并根据上一时钟周期来自局部交换单元1读请求的相关仲裁结果,选择其一,发送给局部交换单元1;以此类推,通过4个读仲裁单元完成对读请求的仲裁及地址、数据传送。响应单元用于接收来自局部交换单元0、1、2、3的读/写响应信号,根据4个写仲裁单元和4个读仲裁单元的仲裁结果,产生输出给局部交换单元0、1、2、3读/写请求的响应信号。写仲裁单元、读仲裁单元和响应单元的结构与局部交换单元中的结构类似,具体结构分别参见图9、图10、图11。

电路应用效果:

本发明已经在“三维视频处理系统芯片动态可重构可编程体系结构研究”项目中加以采用,经过了FPGA开发的实际测试,测试结果表明该设计电路的功能完全正确,各项功能及性能指标均符合要求,实现了发明的目的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号