CN110674063B - 一种用于芯片内实现fabric的架构和方法 - Google Patents
一种用于芯片内实现fabric的架构和方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling 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的架构,其特征在于,包括:最后一级缓存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和总线交换数据。
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)
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)
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 |
-
2019
- 2019-09-16 CN CN201910869233.8A patent/CN110674063B/zh active Active
Patent Citations (5)
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 |