一种基于相位的芯片片上总线调度装置及调度方法转让专利

申请号 : CN202110133653.7

文献号 : CN112949247B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓军

申请人 : 上海天数智芯半导体有限公司

摘要 :

本发明涉及一种基于相位的芯片片上总线调度装置及调度方法,包括相位产生器和1至N级转发器,其中,第2级转发器上连接有两个用于连接用户的第1级转发器,第3级转发器上连接有两个第2转发器,依此类推。第N级转发器上连接有若干用于连接设备的第1级转发器,每一第1级转发器上连接的用户或设备数量相等,并且,用户和设备总数相等。相位产生器用于产生相位,授权各用户和各设备间的访问权限。本发明通过相位来控制访问权限,使得设备对用户的发送请求以及用户对设备的发送请求响应做到完全公平,具有硬件需求资源少,总线网络的面积和功耗大幅度缩小,设备对用户的响应及时,响应延迟更小等优点。

权利要求 :

1.一种基于相位的芯片片上总线调度装置,其特征在于,包括相位产生器和1至N级转发器,其中,第2级转发器上连接有两个用于连接用户的第1级转发器,第3级转发器上连接有两个第2级转发器,依此类推;第N级转发器上连接有若干用于连接设备的第1级转发器,每一第1级转发器上连接的用户或设备数量相等,并且,用户和设备总数相等;相位产生器用于产生相位,授权各用户和各设备间的访问权限。

2.根据权利要求1所述的基于相位的芯片片上总线调度装置,其特征在于,相邻级转发器间,第1级转发器和用户间,第1级转发器和设备间通过中继器相连。

3.根据权利要求1所述的基于相位的芯片片上总线调度装置,其特征在于,相位产生器采用计数器,计数器产生的每一个数代表一个相位。

4.根据权利要求3所述的基于相位的芯片片上总线调度装置,其特征在于,N=3,第3级转发器路数至少为8路,第2级转发器路数至少为4路,第1级转发器路数至少为2路。

5.根据权利要求4所述的基于相位的芯片片上总线调度装置,其特征在于,用户和设备总数均为8个,每一第1级转发器上连接两个用户或两个设备;计数器最大值为7,产生八个数,每个数代表一个相位,总共产生八个相位。

6.一种如权利要求5所述的基于相位的芯片片上总线调度装置的调度方法,其特征在于,转发器根据输入信息中携带的转发信息,分配输入端到相应的输出端;在每一个相位时刻,由两个用户构成的用户组只能发送到一个由相位决定的某个特定的由两个设备构成的设备组,而不能发送到其他设备组;同样地,由两个设备构成的一个设备组,在某个相位时刻,只能发送到由相位决定的某个特定的由两个用户构成的用户组,而不能发送到其他用户组。

说明书 :

一种基于相位的芯片片上总线调度装置及调度方法

技术领域

[0001] 本发明属于芯片设计技术领域,具体涉及一种基于相位的芯片片上总线调度装置及调度方法。

背景技术

[0002] 现代芯片功能越来越丰富强大,面积也越来越大,芯片系统的功能和性能获得大幅提高,如何构建一种有效和简单的片上总线网络在大型芯片设计中非常的关键。现代大
型芯片一般使用传统的总线网络结构,如crossbar,mesh,butterfly等。在多核CPU芯片中,
mesh网络是一种大量使用的片上总线。而在GPU芯片设计中,crossbar是普遍使用的片上总
线结构。Mesh网络是各个节点与所有相邻节点都进行相互连接,其优点是速度快,结构规
整,利于布局实现。Crossbar总线网络,每一个设备节点与所有用户节点都实现互联,而不
像mesh网络,设备节点与设备节点之间,用户节点与用户节点也有连线。
[0003] Mesh、crossbar以及其他的一些传统总线网络,都需要用到大量的逻辑电路资源以及连线资源,并且随着电路资源以及连线资源的增加,导致整个总线网络面积增加。为了
满足电路的时序性能,相应的又需要增加中继器。这些都导致了总线面积的快速增长,对后
端的布局布线带来了挑战。同时随着总线延迟的增加,需要大量缓存来掩盖总线延迟带来
的性能损失。同时,总线上多个用户竞争一个设备端资源一般都是通过仲裁器。多个用户发
送请求到设备端,请求访问设备,由仲裁器授权某个请求获得访问权限,而其他用户的请求
需要继续等待,直到获得相应的设备访问权限。这些没有响应的请求可能暂存在总线,导致
总线额外的面积开销,同时也可能带来性能的损失。
[0004] 目前大型芯片使用的这些传统总线网络都存在资源以及互联连线过多而导致面积过大,布局布线困难,功耗也相应过大的缺点。对于片上网络总线的设计,如何减少硬件
资源以及互连线数量同时提高网络总线的吞吐率是总线设计中值得研究的课题。

发明内容

[0005] 本发明所要解决的技术问题是克服现有网络总线的调度机制中相互连资源以及硬件资源过多导致的总线网络面积过大,总线网络延迟过长,功耗过大的缺陷,提供一种基
于相位的芯片片上总线调度装置及调度方法。
[0006] 本发明所采用的技术方案为:
[0007] 一种基于相位的芯片片上总线调度装置,包括相位产生器和1至N级转发器,其中,第2级转发器上连接有两个用于连接用户的第1级转发器,第3级转发器上连接有两个第2级
转发器,依此类推;第N级转发器上连接有若干用于连接设备的第1级转发器,每一第1级转
发器上连接的用户或设备数量相等,并且,用户和设备总数相等;相位产生器用于产生相
位,授权各用户和各设备间的访问权限。
[0008] 进一步地,相邻级转发器间,第1级转发器和用户间,第1级转发器和设备间通过中继器相连。
[0009] 进一步地,相位产生器采用计数器,计数器产生的每一个数代表一个相位。
[0010] 进一步地,N=3,第3级转发器路数至少为8路,第2级转发器路数至少为4路,第1级转发器路数至少为2路。
[0011] 进一步地,用户和设备总数均为8个,每一第1级转发器上连接两个用户或两个设备;计数器最大值为7,产生八个数,每个数代表一个相位,总共产生八个相位。
[0012] 一种如上述的基于相位的芯片片上总线调度装置的调度方法,转发器根据输入信息中携带的转发信息,分配输入端到相应的输出端;在每一个相位时刻,由两个用户构成的
用户组只能发送到一个由相位决定的某个特定的由两个设备构成的设备组,而不能发送到
其他设备组;同样地,由两个设备构成的一个设备组,在某个相位时刻,只能发送到由相位
决定的某个特定的由两个用户构成的用户组,而不能发送到其他用户组。
[0013] 本发明的有益效果在于:
[0014] 本发明通过相位来控制各个用户发送请求而代替传统网络总线调度中使用仲裁器而获得相应发送请求权限,从而使得设备对用户的发送请求以及用户对设备的发送请求
响应做到完全公平。通过用户与转发器相连,转发器与转发器相连,最后转发器与设备相
连,各个用户到各个设备之间的连线可以互相共用,从而极大的减少了互连线,中继器,仲
裁器等硬件资源。总线网络的面积和功耗大幅度缩小,设备对用户的响应及时,响应延迟更
小,几乎不会出现用户的请求出现长时间得不得响应的现象,让芯片内部数据和控制信息
能在使用较少硬件资源的条件下,有效的从用户流向设备或者让设备流向用户。

附图说明

[0015] 图1为本发明的基于相位的芯片片上总线调度装置的结构示意图;
[0016] 图2为2路转发器结构图;
[0017] 图3为4路转发器结构图;
[0018] 图4为中继器的结构图。

具体实施方式

[0019] 下面结合附图和具体的实施例对本发明的技术方案做进一步的详细说明。
[0020] 如图1所示,一种基于相位的芯片片上总线调度装置,包括相位产生器和1至N级转发器,其中,第2级转发器上连接有两个用于连接用户的第1级转发器,第3级转发器上连接
有两个第2级转发器,依此类推。第N级转发器上还连接有若干用于连接设备的第1级转发
器,每一第1级转发器上连接的用户或设备数量相等,并且,用户和设备总数相等。相位产生
器用于产生相位,授权各用户和各设备间的访问权限。
[0021] 本实施例中,相邻级转发器间,第1级转发器和用户间,第1级转发器和设备间通过中继器相连。如图4所示,中继器,一般由寄存器实现,实现数据中继,中继器用于用户与转
发器、转发器与转发器、设备与转发器的连接,目的是为了改善整个总线时序特性,让总线
获得更高的性能。
[0022] 本实施例中,相位产生器采用计数器(其他逻辑电路亦可)来产生多个不同的信号,用于表示多种相位(例如一个最大值为7的计数器可以产生八个数,每个数可以代表一
个相位,总共可以产生八个相位)。
[0023] 总线调度装置所需要的转发器级数以及转发器总数量由用户数以及设备数决定。本实施例中,N=3,第3级转发器路数至少为8路,第2级转发器路数至少为4路,第1级转发器
路数至少为2路。转发器有多个输入输出,例如2路转发器有两个输入端a0路和a1路,两个输
出端b0路和b1路,根据输入相位信号,a0路可以输出到b0路,a1路可以输出到b1路或者a0路
输出到b1路,a1路输出到b0路,参见图2。
[0024] 用户和设备总数均为8个,每一第1级转发器上连接两个用户或两个设备。计数器最大值为7,产生八个数,每个数代表一个相位,总共产生八个相位。
[0025] 一种基于相位的芯片片上总线调度装置的调度方法,转发器根据输入信息中携带的转发信息,分配输入端到相应的输出端。在每一个相位时刻,由两个用户构成的用户组只
能发送到一个由相位决定的某个特定的由两个设备构成的设备组,而不能发送到其他设备
组。同样地,由两个设备构成的一个设备组,在某个相位时刻,只能发送到由相位决定的某
个特定的由两个用户构成的用户组,而不能发送到其他用户组。对于无法访问设备的请求,
在用户就被禁止发出,总线网络上运行的请求都是可以得到立即响应的,并且保证各个用
户到各个设备的请求以及数据运行的时间都是相同的,也同样保证各个设备到用户的数据
运行时间都是相同的。
[0026] 下面以图1中8个用户和8个设备的示例对本发明进行具体说明。
[0027] (A)从用户发送访问请求以及数据到设备
[0028] 表1给出了访问请求以及数据是如何依据相位从各个用户发送到各个设备的。根据表1,每两个用户构成一个用户组发送访问请求和数据到对应的两个设备构成的设备组。
用户组1由用户1和用户2构成,用户组2由用户3和用户4构成,用户组3由用户5和用户6构
成,用户组4由用户7和用户8构成。设备组1由设备1和设备2构成,设备组2由设备3和设备4
构成,设备组3由设备5和设备6构成,设备组4由设备7和设备8构成。
[0029] 在各个相位,用户组只能发送访问请求和数据到由相位决定的各自对应设备组,而不能发给其他设备组。例如在相位1时刻,用户组1只能发送访问请求(读写请求或者其他
请求)到设备组1,用户组2只能发送访问请求到设备组2,用户组3的访问请求发送给设备组
3,用户组4的访问请求发送给设备组4。在相位2时刻,用户组1只能发送访问数据(写数据或
者其他数据)给设备组1,用户组2只能发送访问数据(写数据或者其他数据)给设备组2,用
户组3只能发送访问数据(写数据或者其他数据)给设备组3,用户组4只能发送访问数据(写
数据或者其他数据)给设备组4。
[0030] 用户组中的单个用户与对应设备组中的单个设备如何发送由轮循仲裁器决定。例如相位1时刻,用户组1对应设备组1,用户1可以发送读写请求到设备1,用户2发送读写请求
到设备2或者用户2发送读写请求到设备1,用户1发送读写请求到设备2。
[0031] 用户发送的请求或者数据携带相位信息以及用户组轮循控制信息。相位信息由相位产生器产生,用户组轮循控制信息由各个用户组内的仲裁器产生。用户组轮循控制信息,
用于控制2路转发器中用户组内用户与对应设备组内设备的对应关系。相位信息控制4路转
发器以及8路转发器。
[0032] 举例说明各个相位用户发送请求或者数据到设备的调度过程。如表1所示,在各个相位,每个用户组对应一个特定的设备组。各个用户组内的用户与对应设备组内的设备的
发送关系由用户组内产生的轮循控制信息所控制,例如相位1时用户组1对应设备组1,用户
1发送到设备1,用户2发送到设备2或者用户1发送到设备2,用户2发送到设备1,由轮循控制
信息决定发送方式。用户发送请求或者数据会携带相位信息以及用户组轮循控制信息,这
些信息用来控制各个转发器。如图1所示,2路转发器‑5/6/7/8由用户发送请求或者数据中
携带的用户组轮循控制信息控制。根据轮循控制信息,2路转发器‑5由两种转发方式,如图1
所示,输入b1转发到c1,b2转发到c2或者b1转发到c2,b2的转发到c1。类似于2路转发器‑5,
其他2路转发器‑6/7/8也由各自携带的用户轮循控制信息决定对用户输入信号如何转发。2
路转发器‑5/6/7/8的输出端口通过中继器与4路转发器‑1/2相连接,4路转发器由相位信息
控制转发逻辑。如图1所示,c1/c2/c3/c4作为4路转发器‑1的输入端转发到m1/m2/m3/m4端
口,c5/c6/c7/c8作为4路转发器‑2的输入转发到输出m5/m6/m7/m8。在相位1,相位2,相位3
和相位4时刻,c1/c2通过4路转发器‑1发送到m1/m2,c3/c4通过4路转发器‑1发送到m3/m4,
c5/c6通过4路转发器‑2发送到m5/m6,c7/c8通过4路转发器‑2发送到m7/m8。在相位5,相位
6,相位7和相位8时刻,c1/c2通过4路转发器‑1发送到m3/m4,c3/c4通过4路转发器‑1发送到
m1/m2,c5/c6通过4路转发器‑2发送到m7/m8,c7/c8通过4路转发器‑2发送到m5/m6。4路转发
器的输出通过中继器作为8路转发器的输入。d1/d2/d3/d4/d5/d6/d7/d8作为8路转发器的
输入由两种转发方式。在相位1,相位2,相位5和相位6时刻,d1/d2/d3/d4通过8路转发器发
送到e1/e2/e3/e4,d5/d6/d7/d8通过8路转发器发送到e5/e6/e7/e8。在相位3,相位4,相位7
和相位8,d1/d2/d3/d4通过8路转发器发送到e5/e6/e7/e8,d5/d6/d7/d8通过8路转发器发
送到e1/e2/e3/e4。8路转发器的输出通过中继器与2路转发器‑1/2/3/4相连接。用户发送请
求或者数据到设备的过程中,2路转发器‑1/2/3/4的转发关系始终是固定的。e1/e2通过2路
转发器‑1分别发送到f1/f2(设备1/设备2)。e3/e4通过2路转发器‑2发送到f3/f4(设备3/设
备4)。e5/e6通过2路转发器‑3发送到f5/f6(设备5/设备6)。e7/e8通过2路转发器‑4发送到
f7/f8(设备7/设8)。
[0033] 表1
[0034]
[0035]
[0036] (B)从设备发送数据到用户
[0037] 表2给出了数据是如何依据相位从各个设备发送到各个用户的。根据表2,每两个设备构成一个设备组发送数据到对应的两个用户构成的用户组。设备组1由设备1和设备2
构成,设备组2由设备3和设备4构成,设备组3由设备5和设备6构成,设备组4由设备7和设备
8构成。用户组1由用户1和用户2构成,用户组2由用户3和用户4构成,用户组3由用户5和用
户6构成,用户组4由用户7和用户8构成。
[0038] 在各个相位,设备组只能发送数据到各自对应的用户组。例如在相位1时刻,设备组1的数据只能发送到用户组1,设备组2的数据发送到用户组2,设备组3的数据发送到用户
组3,设备组4的数据发送给设备组4。设备组中的单个设备与对应用户组中的单个用户如何
发送由设备组的轮循仲裁器决定。例如相位1时刻,设备组1发送数据到用户组1,设备1可以
发送数据到用户1,设备2发送数据到用户2或者设备2可以发送数据到用户1,设备1发送数
据到用户2,由设备组轮循仲裁控制信息决定。
[0039] 设备发送的数据携带相位信息以及设备组轮循控制信息。相位信息由相位产生器产生,设备组轮循控制信息由各个设备组内的仲裁器产生。设备组轮循控制信息,用于控制
2路转发器‑1/2/3/4的转发逻辑,从而控制设备组内设备与对应用户组内用户的发送关系。
相位信息控制4路转发器以及8路转发器。
[0040] 举例说明设备发送数据到用户的调度过程。如表2所示,在各个相位时刻,每个设备组只对应一个特定的用户组。各个设备组内的设备与对应用户组内的用户的对应关系由
设备组内产生的轮循控制逻辑所控制,例如相位1时设备组1对应用户组1,设备1发送到用
户1,设备2发送到用户2或者设备1发送到用户2,设备2发送到用户1,由轮循控制信息决定
发送方式。设备发送数据会携带相位信息以及设备组轮循控制信息,这些信息用来控制各
个转发器。如图1所示,2路转发器‑1/2/3/4由输入信息中携带的设备组轮循控制信息控制,
根据轮循控制信息,2路转发器‑1由两种转发方式,输入f1转发到e1,f2转发到e2或者f1转
发到e2,f2的转发到e1。类似于2路转发器‑1,2路转发器的‑2/3/4也有各自携带的设备轮循
控制信息决定对输入信号如何转发。2路转发器‑1/2/3/4的输出端口通过中继器与8路转发
器相连接,8路转发器由相位信息控制转发逻辑。根据输入相位,e1/e2/e3/e4转发到d1/d2/
d3/d4,e5/e6/e7/e8转发到d5/d6/d7/d8或者e1/e2/e3/e4转发到d5/d6/d7/d8,e5/e6/e7/
e8转发到d1/d2/d3/4。在相位1和相位3时刻,e1/e2/e3/e4依次转发到d1/d2/d3/d4,而e5/
e6/e7/e8依次转发到d5/d6/d7/d8。在相位2和相位4,e1/e2/e3/e4依次转发到d5/d6/d7/
d48,而e5/e6/e7/e8依次转发到d1/d2/d3/d4。8路转发器输出d1/d2/d3/d4/d5/d6/d7/d8通
过中继器分别与m1/m2/m3/m4/m5/m6/m7/m8连接。m1/m2/m3/m4作为4路转发器‑1的输入端
转发到c1/c2/c3/c4端口,m5/m6/m7/m8作为4路转发器‑2的输入转发到输出c5/c6/c7/c8。
在相位1和相位2,m1/m2通过4路转发器‑1转发到c1/c2,m3/m4转发到c3/c4,m5/m6通过4路
转发器‑2转发到c5/c6,m7/m8转发到c7/c8。在相位3和相位4,m1/m2通过4路转发器‑1转发
到c3/c4,m3/m4转发到c1/c2,m5/m6通过4路转发器‑2转发到c7/c8,m7/m8转发到c1/c2。C1/
c2/c3/c4/c5/c6/c7/c8通过中继器分别与b1/b2/b3/b4/b5/b6/b7/b8相连接,b1/b2/b3/
b4/b5/b6/b7/b8作为2路转发器‑5/6/7/8的输入。在设备发送数据到用户这个过程中,2路
转发器‑5/6/7/8不受相位控制,转发连接关系始终保持固定。b1/b2通过2路转发器‑5分别
发送到a1/a2(用户1/用户2)。b3/b4通过2路转发器‑6分别发送到a3/a4(用户3/用户4)。b5/
b6通过2路转发器‑7分别发送到a5/a6(用户5/用户6)。b7/b8通过2路转发器‑7分别发送到
a7/a8(用户7/用户8)。
[0041] 表2
[0042]
[0043] 如图2所示的2路转发器,包含2个输入信息端,一个转发控制端,2个输出信息端,一个反相器以及2个选择器。转发器控制信号为”0”时,输入端0路转发到输出端0路,输入端
1路转发到输出端1路。转发控制信号为”1”时,输入端0路转发到输出端1路,输入端1路转发
到输出端0路。
[0044] 如图3所示的4路转发器,与2路转发器类似。4路转发器比2路转发器硬件资源增加一倍,包含4个输入信息端,4个输出信息端,一个转发控制端,一个反向器以及4个选择器。
转发器控制信号为“0”时,输入端0路和输入端1路分别转发到输出端0路和输出端1路,输入
端2路和输入端3路转发到输出端2路和输出端3路。转发控制信号为“1”时,输入端0路和输
入端1路分别转发到输出端2路和输出端3路,输入端2路和输入端3路转发到输出端0路和输
出端1路。
[0045] 8路转发器,结构设计与4路转发器类似。8路转发器硬件资源比4路转发器增加一倍,包含8个输入信息端,8个输出信息端,一个转发控制端,一个方向器以及8个选择器。
[0046] 如图4所示,中继器包含一个输入信息端,一个始终端以及一个输出端。中继器用于改善整个网络的时序特性。
[0047] 本发明的优点有四个方面,一,各个用户访问设备的延迟都是固定且比较小,每个用户访问各个设备的时间都是固定在一个常数。二,该总线调度装置需要用到的硬件资源
很少。相比于其他调度机制,所用到连线资源,中继器资源,仲裁器资源都比较少。三,该总
线调度装置实现总体面积小,有利于芯片布局布线;四,该总线调度装置功耗小。
[0048] 基于本发明的总线调度装置实现的总线装置效果理想。总线访问的延迟很小,总线速度性能突出,总线占用的硬件资源,功耗以及总面积都很小。
[0049] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术方法范围内,可轻易想到的替换或变换方
法,都应该涵盖在本发明的保护范围之内。