一种fabric实现结构和方法技术

技术编号:23084887 阅读:68 留言:0更新日期:2020-01-11 01:05
一种fabric实现结构和方法,在不降低性能的前提下,采用读写共享同一条总线,有效的减少了绕线的数量。两个LLC之间共享两条总线,一条是LLC1读/LLC0写,另一条是LLC0读/LLC1写,数据使用端Cx根据需要把数据请求分别发到两条总线上。例如,LLC1读出的数据被Cx取走,此时总线出现一个空洞,Cx或者之后的数据请求端发送写LLC0的请求,正好填补这个空洞,使总线的利用率得到保证。本发明专利技术的数据总线共享,没有额外的浪费;数据之间的仲裁比较简单,避免数据大量集中竞争总线,带来布局布线问题;各个数据请求端使用率可以通过仲裁器控制,可以全部平均或者局部平均,甚至某个独享,且不影响效率。

A fabric implementation structure and method

【技术实现步骤摘要】
一种fabric实现结构和方法
本专利技术属于数据传送领域,具体涉及一种fabric实现结构和方法。
技术介绍
超算芯片中,运算单元离数据存储必然有比较远的距离,数据传送是芯片中的难点之一,为每个单元配备单独总线,显得太浪费,尤其是功耗;共享总线则带来绕线和带宽的问题。所以在平衡带宽和功耗的之间,找到合适的方法尤为重要。
技术实现思路
本专利技术针对现有技术中的不足,提供一种fabric实现结构和方法。为实现上述目的,本专利技术采用以下技术方案:一种fabric实现结构,其特征在于,包括:最后一级缓存LLC0和LLC1、数据使用端C0~Cn-1、写请求仲裁器WRA0和WRA1、读请求仲裁器RDA0和RDA1、数据存放寄存器Rs0和Rs1;最后一级缓存LLC0和LLC1之间共享两条总线B0和B1,总线B0同时用于读最后一级缓存LLC1和写最后一级缓存LLC0,总线B1同时用于读最后一级缓存LLC0和写最后一级缓存LLC1,总线B0和B1分别对应于数据存放寄存器Rs0和Rs1,每个数据存放寄存器都包括节点D0~Dn-1,数据流在各节点上每个时钟周期往前滚动一次;写请求仲裁器WRA0和读请求仲裁器RDA0之间通讯,用于保证读写在总线B0上不冲突;写请求仲裁器WRA1和读请求仲裁器RDA1之间通讯,用于保证读写在总线B1上不冲突;数据使用端C0~Cn-1根据需要将数据请求发送到各总线上,用于传送数据到节点以及获取各节点的数据。为优化上述技术方案,采取的具体措施还包括:进一步地,数据使用端C0~Cn-1的数量可扩展,每个数据使用端平均享受1/n总线带宽。进一步地,数据使用端C0~Cn-1可关闭其中任意m个,m<n,总线效率不降低,剩余数据使用端平均享受1/(n-m)总线带宽。此外,本专利技术还提出了一种如上所述的fabric实现结构的实现方法,其特征在于,包括:对于总线B0,所有读最后一级缓存LLC1的请求进入读请求仲裁器RDA0,所有写最后一级缓存LLC0的请求进入写请求仲裁器WRA0;读请求仲裁器RDA0记录仲裁历史,根据仲裁历史和当前请求派发仲裁结果,同时对最后一级缓存LLC1进行读数据,读取的数据流在数据存放寄存器Rs0的节点D0~Dn-1上每个时钟周期往前滚动一次,数据使用端C0~Cn-1根据仲裁结果从节点D0~Dn-1上拿相应数据,数据被拿走后,对应的节点用于写数据使用;写请求仲裁器WRA0记录仲裁历史,根据仲裁历史、当前请求和读请求仲裁器RDA0的仲裁结果派发仲裁结果,同时通知数据使用端C0~Cn-1把写数据放到对应的节点上,最终数据写到最后一级缓存LLC0;对于总线B1,所有读最后一级缓存LLC0的请求进入读请求仲裁器RDA1,所有写最后一级缓存LLC1的请求进入写请求仲裁器WRA1;读请求仲裁器RDA1记录仲裁历史,根据仲裁历史和当前请求派发仲裁结果,同时对最后一级缓存LLC0进行读数据,读取的数据流在数据存放寄存器Rs1的节点D0~Dn-1上每个时钟周期往前滚动一次,数据使用端C0~Cn-1根据仲裁结果从节点D0~Dn-1上拿相应数据,数据被拿走后,对应的节点用于写数据使用;写请求仲裁器WRA1记录仲裁历史,根据仲裁历史、当前请求和读请求仲裁器RDA1的仲裁结果派发仲裁结果,同时通知数据使用端C0~Cn-1把写数据放到对应的节点上,最终数据写到最后一级缓存LLC1。进一步地,仲裁历史记录了过去的每个时刻点数据使用端C0~Cn-1的总线节点使用情况。进一步地,根据仲裁历史,读请求仲裁器与对应的写请求仲裁器互相检查对方状态,保证读写共享数据总线时,不产生冲突。进一步地,仲裁结果包括读写使能,以及对应的ID,数据使用端C0~Cn-1根据ID和总线交换数据。本专利技术的有益效果是:1.数据总线共享,没有额外的浪费;2.数据之间的仲裁比较简单,分节点传送到总线上(或者从总线获取),避免数据大量集中竞争总线,带来布局布线问题;3.各个请求端使用率可以通过仲裁器控制,可以全部平均或者局部平均,甚至某个独享,且不影响效率。附图说明图1是fabric实现结构和方法的框架示意图。具体实施方式现在结合附图对本专利技术作进一步详细的说明。传统fabric,读写数据线采用两条独立的总线,浪费了绕线资源。本专利技术在不降低性能的前提下,采用读写共享同一条总线,有效的减少了绕线的数量。如图1所示,C0~Cn-1代表数据请求端/使用端,两个LLC(lastlevelcache,最后一层缓存器)之间共享两条总线,左边总线B0是LLC1读/LLC0写,右边总线B1是LLC0读/LLC1写,Cx,0≤x≤n-1根据需要把数据请求分别发到左边或者右边的总线上。以左边为例,LLC1读出的数据会被某个Cx取走,此时总线出现一个空洞,Cx或者之后的请求端可以发送写LLC0的请求,正好填补这个空洞。使总线的利用率得到保证。左边总线上的数据调度由下方的仲裁器决定,同理,右边总线数据调度由上方的仲裁器负责。上下都分别有两个仲裁器(一个控制读,一个控制写,上方的虚线表示未完全画出,与下方一致),两个之间有通讯:1.保证读写在总线上不冲突;2.读写充分使用总线,比如读请求仲裁器读数据被数据使用端C2取走,则写请求仲裁器控制该时刻点数据使用端C3写数据到总线,这样总线不会空洞出现;3.仲裁器记录仲裁历史(传统仲裁器只记录累计次数),记录过去的每个时刻点哪个使用端在使用总线的哪个节点4.上下仲裁器无需通讯,物理上易于实现,数据流往一个方向流动;5.数据使用端可以扩展到任意个数,无需额外控制;每个数据使用端平均享受1/n总线带宽(假设都在工作);6.数据使用端可以关闭其中任意m个,总线效率不降低;剩余数据使用端平均享受1/(n-m)总线带宽;7.仲裁器可以控制每个数据使用端的带宽。进一步参见图1所示的数据流程图,各部分的含义和功能如下:RDarbitration:读请求仲裁器,记录仲裁历史,以及根据历史和当前请求派发仲裁结果(身份证号),同时对LLC1进行读数据,数据流在D0~Dn-1上按箭头方向每个时钟周期往前滚动一次,数据使用端根据身份证号从数据线上拿相应数据,数据被拿走后,对应寄存器就可以给写数据使用。WRarbitration:写请求仲裁器,记录仲裁历史,以及根据自身历史和当前请求和读请求仲裁器结果派发仲裁结果(身份证号),同时通知数据使用端把写数据放到对应的寄存器上,最终数据写到LLC0。R0~Rn-1:读数据请求,其中0~n-1表示不同的请求源。W0~Wn-1:写数据请求,其中0~n-1表示不同的请求源。C0~Cn-1:数据使用端,其中0~n-1表示不同的源。D0~Dn-1:数据存放寄存器,每个节点存放一笔独立的数据,下一个周期自动传到下一个节点(除非被横向的数据使用端取走)。LLC0/LL本文档来自技高网...

【技术保护点】
1.一种fabric实现结构,其特征在于,包括:最后一级缓存LLC0和LLC1、数据使用端C0~Cn-1、写请求仲裁器WRA0和WRA1、读请求仲裁器RDA0和RDA1、数据存放寄存器Rs0和Rs1;最后一级缓存LLC0和LLC1之间共享两条总线B0和B1,总线B0同时用于读最后一级缓存LLC1和写最后一级缓存LLC0,总线B1同时用于读最后一级缓存LLC0和写最后一级缓存LLC1,总线B0和B1分别对应于数据存放寄存器Rs0和Rs1,每个数据存放寄存器都包括节点D0~Dn-1,数据流在各节点上每个时钟周期往前滚动一次;写请求仲裁器WRA0和读请求仲裁器RDA0之间通讯,用于保证读写在总线B0上不冲突;写请求仲裁器WRA1和读请求仲裁器RDA1之间通讯,用于保证读写在总线B1上不冲突;数据使用端C0~Cn-1根据需要将数据请求发送到各总线上,用于传送数据到节点以及获取各节点的数据。/n

【技术特征摘要】
1.一种fabric实现结构,其特征在于,包括:最后一级缓存LLC0和LLC1、数据使用端C0~Cn-1、写请求仲裁器WRA0和WRA1、读请求仲裁器RDA0和RDA1、数据存放寄存器Rs0和Rs1;最后一级缓存LLC0和LLC1之间共享两条总线B0和B1,总线B0同时用于读最后一级缓存LLC1和写最后一级缓存LLC0,总线B1同时用于读最后一级缓存LLC0和写最后一级缓存LLC1,总线B0和B1分别对应于数据存放寄存器Rs0和Rs1,每个数据存放寄存器都包括节点D0~Dn-1,数据流在各节点上每个时钟周期往前滚动一次;写请求仲裁器WRA0和读请求仲裁器RDA0之间通讯,用于保证读写在总线B0上不冲突;写请求仲裁器WRA1和读请求仲裁器RDA1之间通讯,用于保证读写在总线B1上不冲突;数据使用端C0~Cn-1根据需要将数据请求发送到各总线上,用于传送数据到节点以及获取各节点的数据。


2.如权利要求1所述的一种fabric实现结构,其特征在于:数据使用端C0~Cn-1的数量可扩展,每个数据使用端平均享受1/n总线带宽。


3.如权利要求1所述的一种fabric实现结构,其特征在于:数据使用端C0~Cn-1可关闭其中任意m个,m<n,总线效率不降低,剩余数据使用端平均享受1/(n-m)总线带宽。


4.一种如权利要求1~3中任一所述的fabric实现结构的实现方法,其特征在于,包括:
对于总线B0,所有读最后一级缓存LLC1的请求进入读请求仲裁器RDA0,所有写最后一级缓存LLC0的请求进入写请求仲裁器WRA0;读请求仲裁器RDA0记录仲裁历史,根据仲裁历史和当前请求派发仲裁结果,同时对最后一级缓存LL...

【专利技术属性】
技术研发人员:王永流邹云晓李先彧
申请(专利权)人:南京天数智芯科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1