CN117215520B - 一种基于双端口fifo的交叉开关广播路由结构 - Google Patents
一种基于双端口fifo的交叉开关广播路由结构 Download PDFInfo
- Publication number
- CN117215520B CN117215520B CN202311473426.4A CN202311473426A CN117215520B CN 117215520 B CN117215520 B CN 117215520B CN 202311473426 A CN202311473426 A CN 202311473426A CN 117215520 B CN117215520 B CN 117215520B
- Authority
- CN
- China
- Prior art keywords
- data
- fifo
- station
- state
- broadcast
- 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
- 239000013598 vector Substances 0.000 claims abstract description 15
- 238000013461 design Methods 0.000 claims abstract description 12
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 5
- 230000003139 buffering effect Effects 0.000 claims abstract description 3
- 239000000872 buffer Substances 0.000 claims description 7
- 230000009977 dual effect Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000011160 research Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及芯片设计技术领域,具体涉及一种基于双端口FIFO的交叉开关广播路由结构,适用于具有N个节点的交叉开关设计中,其特征在于,所述广播路由结构包括:FIFO,设置N个,且每个节点设置一个FIFO,用于缓冲来自交叉节点上游模块的广播数据,广播数据中包含位向量,位向量表明数据的广播方向;读FIFO状态机,用于控制FIFO的读指针何时加一;译码逻辑,用于根据FIFO的头数据中的位向量译码出FIFO数据的广播方向,设置N‑1个,用于实现交叉开关的流水化设计;数据站台状态机,设置N‑1个,用于控制数据站台的状态。本发明在芯片小面积的情况下,实现了数据的高速广播。
Description
技术领域
本发明涉及芯片设计技术领域,具体涉及一种基于双端口FIFO的交叉开关广播路由结构。
背景技术
随着半导体技术的发展,晶体管的特征尺寸越来越小,特征尺寸的减小导致单位面积的集成度提升,从而能够为设计者提供更多的资源设计出高性能的芯片。高性能芯片的典型代表是多核处理器,多核处理器的片上互连结构一直是多核处理器的体系结构研究热点。目前主流的互连结构是片上网络互连,在片上网络结构中,交叉开关是不可或缺的一部分。随着多核处理器规模的增大,核心、设备之间的数据通信的数据量增大,广播通信是经常被采用的一种通信机制。交叉开关实现广播通信,需要充分考虑芯片的面积、通信的效率等因素。
双端口FIFO是交叉开关常用的存储体,为了在交叉开关中实现广播通信,一般在交叉开关的同一个节点设置多个FIFO,即每一个广播方向设置一个相应的FIFO。然而随着FIFO数量的增多,芯片的资源被大量消耗,不利于芯片实现更多的功能。在小面积高性能的前提下,实现广播通信是交叉开关一直研究的热点。
发明内容
针对现有技术,为了提高交叉开关的性能,交叉开关增加FIFO的数量,导致交叉开关在处理器中占用过多资源的问题,本发明公开一种基于FIFO的交叉开关广播路由结构。本发明通过减少FIFO的数量进而减小芯片面积,最终实现基于FIFO的交叉开关的高性能广播路由。
为解决上述技术问题,本发明提供了一种基于双端口FIFO的交叉开关广播路由结构,适用于具有N个节点的交叉开关设计中,所述广播路由结构包括:
FIFO,设置N个,且每个节点设置一个FIFO,用于缓冲来自交叉节点上游模块的广播数据,广播数据中包含位向量,位向量表明数据的广播方向;
读FIFO状态机,用于控制FIFO的读指针何时加一;
译码逻辑,用于根据FIFO的头数据中的位向量译码出FIFO数据的广播方向,每个位向量对应一个广播的方向,即交叉开关的一个节点;
数据站台,设置N-1个,用于实现交叉开关的流水化设计;
数据站台状态机,设置N-1个,用于控制数据站台的状态。
优选的,所述N个节点之间能够互相通信,且FIFO为双端口FIFO,FIFO满足数据先进先出的特征。
优选的,所述读FIFO状态机分为空闲状态和分配状态,FIFO中的数据全部广播到数据站台后处于空闲状态;FIFO中的数据未全部广播到站台处于分配状态;当FIFO非空且读FIFO的状态机下一状态在空闲状态下时,读FIFO状态机控制FIFO的读指针加一。
优选的,所述数据站台在各节点之间设置,且数据站台在对应的节点无法接收数据时,数据站台作为广播的缓冲;在数据站台能够连续的接收数据时,数据站台能够保证广播实现流水。
优选的,所述数据站台状态机主要有空闲状态、数据写入状态和数据等待分配状态;当数据站台中无数据,数据站台状态机处于空闲状态;当数据站台中有数据,FIFO中新的数据要写入数据站台,数据站台中的数据要被相应节点读走时,数据站台处于写入状态;当数据站台中有数据,FIFO中无新的数据写入,数据站台中的数据也未被相应节点读出,数据站台处于写入状态;当数据站台中有数据,FIFO中的数据要写入数据站台,数据站台中的数据也未被相应节点读出,数据站台处于等待分配状态。
本发明与现有技术相比,具有如下有益效果:
本发明公开一种基于双端口FIFO的交叉开关广播路由结构,在于在满足FIFO先进先出的特征下,通过减少FIFO数量进而减少芯片面积,最终能够高速的将FIFO中的数据在交叉开关中进行广播。为了实现FIFO的数据高速广播,上述交叉开关广播路由结构是由FIFO、读FIFO状态机、译码逻辑、数据站台、数据站台状态机组成。FIFO缓存来自于上游的数据,读FIFO状态机控制FIFO的读指针何时加一;数据站台保证广播的流水以及缓冲广播数据,数据站台状态机控制数据站台的状态;译码逻辑根据FIFO的数据译码出广播方向。本发明在芯片小面积的情况下,实现了数据的高速广播。
附图说明
图1为本发明4×4的交叉开关路由示意图。
图2为本发明一种基于双端口FIFO的交叉开关广播路由结构整体框图。
图3为本发明数据站台状态机示意图。
图4为本发明读FIFO状态机示意图。
图5为本发明图1和图2中交叉开关的广播时序图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
为了简化说明,本发明实施例将具有N个节点的交叉开关简化为具有4个节点的交叉开关。具有4个节点的交叉开关的通讯连接关系如图1所示,图1中黑色连接点表示可以通信。从图1中可知,节点1可以向节点2、3、4通信;节点2可以向节点1、3、4通信;节点3可以向节点1、2、4通信;节点4可以向节点1、2、3通信。
如图2所示,本发明实施例提供一种基于双端口FIFO的交叉开关广播路由结构,在满足FIFO先进先出的特征下,能够高速的将FIFO中的数据在交叉开关中进行广播,其主要包括FIFO、读FIFO状态机、N-1个数据站台、N-1个数据站台状态机和译码逻辑。
FIFO主要缓冲来自交叉节点上游模块的广播数据,广播数据中包含位向量,位向量表明数据的广播方向。对于N个节点的数据交叉开关,每个节点设置一个FIFO,共设置N个FIFO。其中FIFO_Wr表示FIFO的写使能,FIFO_Rd表示FIFO的读使能,Data表示写入FIFO中的数据,FIFO_Data表示从FIFO读出的数据,FIFO_Empty表示FIFO的空标志,FIFO_Full的满标志。
读FIFO状态机控制FIFO的指针何时加一。读FIFO状态机有两个状态,空闲状态和分配状。一、当FIFO中无数据,读FIFO状态机处于空闲状态;当FIFO中有数据,其头数据完成分配到对应的数据站台,读FIFO状态机处于空闲状态。二、当FIFO的头数据未完成分配到对应的数据站台,读FIFO状态机处于分配状态。读FIFO状态机的下一状态在空闲状态,当FIFO非空时,FIFO的读指针加一。
为了实现数据广播的流水化,需要在各节点之间设置数据站台。数据站台在对应的节点无法接收数据时,数据站台作为广播的缓冲;在数据站台能够连续的接收数据时,数据站台保证广播能够实现流水。数据站台的设计主要实现交叉开关的流水化设计,另外,交叉开关的下游模块无法接收数据时,交叉开关可以缓冲数据。由于数据每次广播的方向不同且本节点不需要广播,因此对于N个节点的交叉开关设置N-1个数据站台,保证每个节点都能被相应的数据站台广播到。
数据站台状态机的设计主要控制站台数据的状态,由于数据站台是流水化设计,因此数据站台状态机有三种状态。一、数据站台无数据,此时数据站台处于空闲状态。二、数据站台有数据且要被下游节点读走,同时也有新的数据要写入数据站台,此时数据站台处于写入状态;数据站台有数据,但下游节点无法读走,同时也没有新的数据写入数据站台,此时数据站台也处于写入状态;三、数据站台有数据且无法被下游节点读走,同时也有新的数据要写入数据站台,此时数据站台处于写入状态。其中Stage1_State、Stage2_State、Stage3_State、Stage4_State表示数据站台状态机的状态。
译码逻辑主要根据FIFO的头数据中的位向量译码出FIFO数据的广播方向,每个位向量对应一个广播的方向,即交叉开关的一个节点。其中Stage4_Wr、Stage4_Wr、Stage4_Wr、Stage4_Wr表示译码逻辑对站台1、站台2、站台3、站台4的译码有效。
由于本发明实施例以具有4个节点的交叉开关为例进行说明,节点1、2、3、4均具备广播需求,为了每个节点都能复用图2的结构,简化设计,因此基于FIFO的交叉开关广播路由结构设置了四个数据站台,数据站台Stage1-4分别对应节点1-4。但是在实际工作中只有三个站台有效,比如节点1广播的数据只会写入数据站台Stage2、数据站台Stage3、数据站台Stage4,节点2、3、4同理。其中Stage1_Valid、Stage2_Valid、Stage3_Valid、Stage4_Valid表示站台1、站台2、站台3、站台4的数据有效;Stage1_Rd、Stage2_Rd、Stage3_Rd、Stage4_Rd表示发向站台1、站台2、站台3、站台4的读使能;Stage1_Data、Stage2_Data、Stage3_Data、Stage4_Data表示从站台1、站台2、站台3、站台4读出的数据。
如图3所示为数据站台状态机示意图,数据站台状态机主要表明数据站台的状态。当数据站台无数据,数据站台处于空闲状态;空闲状态下,当数据站台为空,且有新的数据要写入数据站台时,数据站台状态机跳转到数据站台写入状态;数据站台写入状态下,当数据站台有新的数据写入且数据站台数据被读走时,数据站台保持在数据站台写入状态;数据站台写入状态下,当数据站台没有新的数据要写入且数据站台数据未被读走,数据站台保持在数据站台写入状态;数据站台写入状态下,数据站台数据被读走且没有新的数据写入,数据站台状态机跳转到空闲状态;数据站台写入状态下,数据站台数据未被读走且有新的数据写入,数据站台状态机跳转到数据站台分配状态;数据站台分配状态下,数据站台数据未被读走且有新的数据写入,数据站台状态机保持在分配状态;数据站台分配状态下,数据站台数据被读走且有新的数据写入,数据站台状态机跳转到写入状态。
如图4所示为读FIFO状态机示意图,在空闲状态下,FIFO的头数据一个时钟周期能写入到所分配的数据站台,读FIFO状态机保持在空闲状态;在空闲状态下,FIFO的头数据未能在一个时钟周期写入到所分配的数据站台,读FIFO状态机跳转到分配状态;在分配状态下,FIFO的头数据未能在若干个时钟周期写入到所分配的数据站台,数据站台状态机仍然处于分配状态;在分配状态下,FIFO的头数据在若干个时钟周期写入到所分配的数据站台,数据站台状态机跳转到空闲状态。由图3可知,只要数据站台的状态机不在数据站台分配状态,FIFO的头数据一定能写入数据站台,因此对于任意一个数据站台的数据站台状态机不在数据站台分配状态,FIFO的头数据就可以先写入对应的数据站台。在FIFO的头数据全部写入到数据站台时,所有的数据站台都不在数据站台数据分配状态,FIFO的读指针加一,以图2为例,当数据站台1-4的状态机的下一状态都处于非数据站台分配状态,此时读FIFO状态机的下一状态在空闲状态,FIFO的读指针加一。
如图5为广播时序图,该时序图是图1和图2交叉开关的时序图,其表示节点1向节点2、3、4进行广播,因此只有数据站台2、3、4会有广播数据,FIFO数据中的位向量2’b1111表示向节点4、3、2、1进行数据广播,为0则不广播。从图5中可知:第1拍FIFO中的数据写入数据站台2、3、4,各数据站台状态机均处于写入状态,FIFO为空;第2拍由于第1拍FIFO为空,如果数据站台的数据未被读走还保持在写入状态,如果数据站台数据被读走,数据站台保持在空闲状态;第3拍由于第2拍的FIFO的数据是2’b1110,数据站台2状态机在第2拍处于空闲状态,因此数据站台2在第3拍被写入数据,数据站台2状态机变为写入状态,数据站台3状态机在第2拍处于写入状态,但是第3拍数据站台的数据被写入到下游,同时有新的数据写入到数据站台3,其状态机仍然保持在写入状态;数据站台4状态机在第2拍处于写入状态,但是在第3拍数据站台数据未被读走,同时有新的数据写入,因此其状态机跳转到分配状态;节拍4、5、6同理。在节拍4和5,虽然数据站台4的数据一直未写入下游,但是FIFO的数据并不向数据站台4进行广播,因此依然可以向数据站台2、3进行广播。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (4)
1.一种基于双端口FIFO的交叉开关广播路由结构,适用于具有N个节点的交叉开关设计中,其特征在于,所述广播路由结构包括:
FIFO,设置N个,且每个节点设置一个FIFO,用于缓冲来自交叉节点上游模块的广播数据,广播数据中包含位向量,位向量表明数据的广播方向;
读FIFO状态机,用于控制FIFO的读指针何时加一;所述读FIFO状态机分为空闲状态和分配状态,FIFO中的数据全部广播到数据站台后处于空闲状态;FIFO中的数据未全部广播到站台处于分配状态;当FIFO非空且读FIFO的状态机下一状态在空闲状态下时,读FIFO状态机控制FIFO的读指针加一;
译码逻辑,用于根据FIFO的头数据中的位向量译码出FIFO数据的广播方向,每个位向量对应一个广播的方向,即交叉开关的一个节点;
数据站台,设置N-1个,用于实现交叉开关的流水化设计;
数据站台状态机,设置N-1个,用于控制数据站台的状态。
2.如权利要求1所述的一种基于双端口FIFO的交叉开关广播路由结构,其特征在于,所述N个节点之间能够互相通信,且FIFO为双端口FIFO,FIFO满足数据先进先出的特征。
3.如权利要求1所述的一种基于双端口FIFO的交叉开关广播路由结构,其特征在于,所述数据站台在各节点之间设置,且数据站台在对应的节点无法接收数据时,数据站台作为广播的缓冲;在数据站台能够连续的接收数据时,数据站台能够保证广播实现流水。
4.如权利要求1所述的一种基于双端口FIFO的交叉开关广播路由结构,其特征在于,所述数据站台状态机主要有空闲状态、数据写入状态和数据等待分配状态;当数据站台中无数据,数据站台状态机处于空闲状态;当数据站台中有数据,FIFO中新的数据要写入数据站台,数据站台中的数据要被相应节点读走时,数据站台处于写入状态;当数据站台中有数据,FIFO中无新的数据写入,数据站台中的数据也未被相应节点读出,数据站台处于写入状态;当数据站台中有数据,FIFO中的数据要写入数据站台,数据站台中的数据也未被相应节点读出,数据站台处于等待分配状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311473426.4A CN117215520B (zh) | 2023-11-08 | 2023-11-08 | 一种基于双端口fifo的交叉开关广播路由结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311473426.4A CN117215520B (zh) | 2023-11-08 | 2023-11-08 | 一种基于双端口fifo的交叉开关广播路由结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117215520A CN117215520A (zh) | 2023-12-12 |
CN117215520B true CN117215520B (zh) | 2024-02-13 |
Family
ID=89048482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311473426.4A Active CN117215520B (zh) | 2023-11-08 | 2023-11-08 | 一种基于双端口fifo的交叉开关广播路由结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215520B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542512B1 (en) * | 1999-07-02 | 2003-04-01 | Jenny Liu Fischer | Architecture and method for flushing non-transmitted portions of a data frame from a transmitted FIFO buffer |
CN105007226A (zh) * | 2015-07-23 | 2015-10-28 | 合肥工业大学 | 一种基于包电路交换技术的多播路由器及其工作方式 |
CN105871742A (zh) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
CN107577636A (zh) * | 2017-09-12 | 2018-01-12 | 天津津航技术物理研究所 | 一种基于soc的axi总线接口数据传输系统及传输方法 |
KR20200082892A (ko) * | 2018-12-31 | 2020-07-08 | 건국대학교 산학협력단 | 인공 신경망 가속 방법 및 장치 |
WO2022262341A1 (zh) * | 2021-06-15 | 2022-12-22 | 珠海一微半导体股份有限公司 | 一种数据调度系统、可重构处理器及数据调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070280224A1 (en) * | 2006-06-05 | 2007-12-06 | Via Technologies | System and method for an output independent crossbar |
CN105740168B (zh) * | 2016-01-23 | 2018-07-13 | 中国人民解放军国防科学技术大学 | 一种容错目录高速缓存控制器 |
-
2023
- 2023-11-08 CN CN202311473426.4A patent/CN117215520B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542512B1 (en) * | 1999-07-02 | 2003-04-01 | Jenny Liu Fischer | Architecture and method for flushing non-transmitted portions of a data frame from a transmitted FIFO buffer |
CN105007226A (zh) * | 2015-07-23 | 2015-10-28 | 合肥工业大学 | 一种基于包电路交换技术的多播路由器及其工作方式 |
CN105871742A (zh) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
CN107577636A (zh) * | 2017-09-12 | 2018-01-12 | 天津津航技术物理研究所 | 一种基于soc的axi总线接口数据传输系统及传输方法 |
KR20200082892A (ko) * | 2018-12-31 | 2020-07-08 | 건국대학교 산학협력단 | 인공 신경망 가속 방법 및 장치 |
WO2022262341A1 (zh) * | 2021-06-15 | 2022-12-22 | 珠海一微半导体股份有限公司 | 一种数据调度系统、可重构处理器及数据调度方法 |
Non-Patent Citations (2)
Title |
---|
基于NAND Flash的嵌入式大规模数据存储机制;张惠臻;周炎;王成;;华中科技大学学报(自然科学版)(第01期);全文 * |
基于加权Gray码及实时状态检测的异步FIFO设计;刘祥远;陈书明;;计算机工程与科学(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117215520A (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7042891B2 (en) | Dynamic selection of lowest latency path in a network switch | |
US5805589A (en) | Central shared queue based time multiplexed packet switch with deadlock avoidance | |
US20060136681A1 (en) | Method and apparatus to support multiple memory banks with a memory block | |
US6920512B2 (en) | Computer architecture and system for efficient management of bi-directional bus | |
US20080080548A1 (en) | Method and System for Managing Time Division Multiplexing (TDM) Timeslots in a Network Switch | |
US20060031565A1 (en) | High speed packet-buffering system | |
CN113114593B (zh) | 一种片上网络中双信道路由器及其路由方法 | |
US20040049613A1 (en) | Balanced linked lists for high performance data buffers in a network device | |
CN108390831B (zh) | 一种高阶路由器输入端口缓冲优化结构 | |
CN105426260A (zh) | 一种支持分布式系统的透明进程间通信系统及方法 | |
Nikologiannis et al. | Efficient per-flow queueing in DRAM at OC-192 line rate using out-of-order execution techniques | |
KR20240024188A (ko) | 네트워크 인터페이스 디바이스 | |
CN114153775B (zh) | 一种基于AXI总线的FlexRay控制器 | |
CN117215520B (zh) | 一种基于双端口fifo的交叉开关广播路由结构 | |
CN113126911B (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
WO2013177854A1 (zh) | 一种多核处理器的核间通信装置及方法 | |
CN114679423B (zh) | 一种面向流控机制的无死锁可扩展互连裸芯架构 | |
US20100238949A1 (en) | Fast and fair arbitration on a data link | |
CN112631985B (zh) | 一种链路共享的片上网络 | |
Mutter | A novel hybrid memory architecture with parallel DRAM for fast packet buffers | |
KR100335371B1 (ko) | 로컬 메모리 중재 및 인터페이스 장치 | |
Naqvi et al. | A multi-credit flow control scheme for asynchronous NoCs | |
Kondoh et al. | An efficient self-timed queue architecture for ATM switch LSIs | |
Khan | Efficient and Low-Power NoC Router Architecture | |
Fried | A VLSI chip set for burst and fast ATM switching |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |