CN110674063B - 一种用于芯片内实现fabric的架构和方法 - Google Patents

一种用于芯片内实现fabric的架构和方法 Download PDF

Info

Publication number
CN110674063B
CN110674063B CN201910869233.8A CN201910869233A CN110674063B CN 110674063 B CN110674063 B CN 110674063B CN 201910869233 A CN201910869233 A CN 201910869233A CN 110674063 B CN110674063 B CN 110674063B
Authority
CN
China
Prior art keywords
data
read
bus
write
arbitration
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
Application number
CN201910869233.8A
Other languages
English (en)
Other versions
CN110674063A (zh
Inventor
王永流
邹云晓
李先彧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Tiantian Smart Core Semiconductor Co ltd
Original Assignee
Shanghai Tiantian Smart Core Semiconductor Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Tiantian Smart Core Semiconductor Co ltd filed Critical Shanghai Tiantian Smart Core Semiconductor Co ltd
Priority to CN201910869233.8A priority Critical patent/CN110674063B/zh
Publication of CN110674063A publication Critical patent/CN110674063A/zh
Application granted granted Critical
Publication of CN110674063B publication Critical patent/CN110674063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

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

Description

一种用于芯片内实现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)总线带宽。
此外,本发明还提出了一种如上所述的架构的实现方法,其特征在于,包括:
对于总线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(last level cache,最后一层缓存器)之间共享两条总线,左边总线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所示的数据流程图,各部分的含义和功能如下:
RD arbitration:读请求仲裁器,记录仲裁历史,以及根据历史和当前请求派发仲裁结果(身份证号),同时对LLC1进行读数据,数据流在D0~Dn-1上按箭头方向每个时钟周期往前滚动一次,数据使用端根据身份证号从数据线上拿相应数据,数据被拿走后,对应寄存器就可以给写数据使用。
WR arbitration:写请求仲裁器,记录仲裁历史,以及根据自身历史和当前请求和读请求仲裁器结果派发仲裁结果(身份证号),同时通知数据使用端把写数据放到对应的寄存器上,最终数据写到LLC0。
R0~Rn-1:读数据请求,其中0~n-1表示不同的请求源。
W0~Wn-1:写数据请求,其中0~n-1表示不同的请求源。
C0~Cn-1:数据使用端,其中0~n-1表示不同的源。
D0~Dn-1:数据存放寄存器,每个节点存放一笔独立的数据,下一个周期自动传到下一个节点(除非被横向的数据使用端取走)。
LLC0/LLC1:最后一级缓存。
ID:身份证号。
箭头:表示数据流方向(或者控制信号方向)。
右上角的arbitration包含:读和写请求仲裁器,和下面的对应。下面负责读LLC1写LLC0,上面负责读LLC0写LLC1。
以下面的仲裁器为例,所有读LLC1的请求进入下面的读请求仲裁器RDA0,所有写LLC0的请求进入下面的写请求仲裁器WRA0。根据历史记录(保证公平性),读写请求仲裁器互相检查对方状态(保证读写共享数据总线时,不要有冲突),给出仲裁结果(结果包括读写使能,以及对应的身份证号,数据使用端根据身份证号和总线交互数据)。读请求仲裁器直接读取LLC1,按时钟往前滚动;写请求仲裁器通知数据使用端何时把数据送到数据总线。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (7)

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中任一所述的架构的实现方法,其特征在于,包括:
对于总线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。
5.如权利要求4所述的实现方法,其特征在于:仲裁历史记录了过去的每个时刻点数据使用端C0~Cn-1的总线节点使用情况。
6.如权利要求5所述的实现方法,其特征在于:根据仲裁历史,读请求仲裁器与对应的写请求仲裁器互相检查对方状态,保证读写共享数据总线时,不产生冲突。
7.如权利要求4所述的实现方法,其特征在于:仲裁结果包括读写使能,以及对应的ID,数据使用端C0~Cn-1根据ID和总线交换数据。
CN201910869233.8A 2019-09-16 2019-09-16 一种用于芯片内实现fabric的架构和方法 Active CN110674063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910869233.8A CN110674063B (zh) 2019-09-16 2019-09-16 一种用于芯片内实现fabric的架构和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910869233.8A CN110674063B (zh) 2019-09-16 2019-09-16 一种用于芯片内实现fabric的架构和方法

Publications (2)

Publication Number Publication Date
CN110674063A CN110674063A (zh) 2020-01-10
CN110674063B true CN110674063B (zh) 2021-03-23

Family

ID=69076942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910869233.8A Active CN110674063B (zh) 2019-09-16 2019-09-16 一种用于芯片内实现fabric的架构和方法

Country Status (1)

Country Link
CN (1) CN110674063B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742710A (zh) * 2008-11-25 2010-06-16 美国博通公司 一种构建网络的方法和系统
CN103765852A (zh) * 2011-08-31 2014-04-30 英特尔公司 为固定优先级仲裁器提供自适应带宽分配
CN104641608A (zh) * 2012-09-18 2015-05-20 思科技术公司 超低延时网络缓冲存储
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
CN108369553A (zh) * 2015-12-29 2018-08-03 英特尔公司 用于范围保护的系统、方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT501510B1 (de) * 2004-07-19 2009-05-15 Univ Wien Tech Dezentrale fehlertolerante taktgenerierung in vlsi chips
JP6774160B2 (ja) * 2013-12-06 2020-10-21 キヤノン株式会社 情報処理装置、並びに、データ転送装置の制御方法
US10911261B2 (en) * 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742710A (zh) * 2008-11-25 2010-06-16 美国博通公司 一种构建网络的方法和系统
CN103765852A (zh) * 2011-08-31 2014-04-30 英特尔公司 为固定优先级仲裁器提供自适应带宽分配
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
CN104641608A (zh) * 2012-09-18 2015-05-20 思科技术公司 超低延时网络缓冲存储
CN108369553A (zh) * 2015-12-29 2018-08-03 英特尔公司 用于范围保护的系统、方法和装置

Also Published As

Publication number Publication date
CN110674063A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
CN101841420B (zh) 面向片上网络的低延迟路由器结构
CN101650698B (zh) 直接存储器访问的实现方法
US20120151159A1 (en) Interface methods and apparatus for memory devices
CN103064807A (zh) 多通道直接存储器存取控制器
CN105260331A (zh) 一种双总线内存控制器
US20160246711A9 (en) Interface methods and apparatus for memory devices
CN102103565B (zh) 先进高性能系统总线连接装置及连接方法
JPH04119445A (ja) 計算機システム
US20090037635A1 (en) Bus arbitration device
CN109308283A (zh) 一种SoC片上系统及其外设总线切换方法
US20070239888A1 (en) Controlling transmission of data
CN206946471U (zh) 一种多通道共享读写sdram的电路装置
CN111611185A (zh) 一种多pcie端口的msi中断过滤装置
CN102253909A (zh) Fpga环境下多用途pci接口及其数据传输方法
CN102576338B (zh) 用于存储器设备的接口方法和装置
CN110674063B (zh) 一种用于芯片内实现fabric的架构和方法
CN101038571A (zh) 一种块传输的多端口存储控制器
CN116893991B (zh) 一种axi协议下的存储模块转换接口及其转换方法
CN112286844B (zh) 一种可适配业务地址映射的ddr4控制方法及装置
CN100356355C (zh) 仲裁器和仲裁方法
CN105354153A (zh) 一种紧耦合异构多处理器数据交换缓存的实现方法
CN109062857A (zh) 一种能高速实现多处理器间通信的新型消息控制器及其通信方法
US20240078200A1 (en) Memory operating method, memory and electronic device
CN100549928C (zh) 一种虚拟先入先出内存的实现方法和控制装置
CN111126584B (zh) 数据回写系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 201100 no.1628, sushao Road, Minhang District, Shanghai

Applicant after: Shanghai Tiantian smart core semiconductor Co., Ltd

Address before: 210012 4 floor, 5 software Avenue, Yuhuatai District, Nanjing, Jiangsu, 180

Applicant before: ILUVATAR COREX Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant