一种面向输入缓冲交换机的多VC共享预取结构

时间:2022-10-26 02:17:51

一种面向输入缓冲交换机的多VC共享预取结构

摘要:针对目前交换机的输入缓冲区读延迟增大导致交叉开关吞吐率下降的问题,提出了多VC共享预取结构SPB,用于隐藏数据缓冲区SRAM的读延迟.设计了旁路写入控制、读写地址管理、预取管理等关键功能,用Verilog语言实现了SPB结构,通过模拟器测试了SPB结构的读写性能.模拟和分析结果表明,采用SPB结构的输入缓冲区能够降低读写延迟,提高输入缓冲区的写入和读出吞吐率.SPB结构能够被方便地应用于静态分配多队列或动态分配多队列缓冲区中,加快缓冲区的读写速度,从而提高整个交换机的吞吐率.

关键词:交换机;缓冲电路;访问控制

中图分类号:TP338 文献标识码:A

A Multi-VC Shared Prefetch Structure for Input-buffered Switch

ZHANG He-ying, WANG Ke-fei, LIU Lu, XIAO Li-quan

(College of Computer, National Univ of Defense Technology, Changsha, Hunan 410073, China)

Abstract: At present, the read latency of input buffer in switch is increasing, which greatly decreases the throughput of crossbar. To address this issue, a multi-VC shared prefetch structure was proposed in order to hide the read latency of data buffer implemented by SRAM with registered output. Some critical functions of SPB were designed, such as bypass write control, the management of write and read address, prefetch control, etc. Moreover, the SPB structure was implemented in Verilog and its performance was tested by cycle accurate simulator. The simulation results and analysis show that input buffer with SPB structure will not only decrease the read and write latency but also increase the throughput of the input buffer. The SPB structure proposed can be used in combination with either SAMQ or DAMQ buffer to speed up the read and write operation of the buffer, and further improve the throughput of the whole switch.

Key words: switches; buffer circuits; access control

高速互连网络是超级计算机中的关键部件之一,在很大程度上决定了超级计算机的通信性能和整机性能.交换机是高速互连网络的主要组成部分,其交换结构、缓冲区管理、微体系结构等关键技术一直是研究的热点[1-5].根据缓冲区的位置可以将交换机划分为:输入缓冲交换机、输出缓冲交换机、交叉点缓冲交换机等[6].其中输入缓冲交换机无需交叉开关加速,容易实现,是目前高速互连网络交换机的常用结构.

在高速互连网络中,为了提高链路的利用率,单根物理链路通常被多个虚信道(Virtual Channel,简称VC)共享[7].相应地,输入缓冲区需要接收多个VC的数据,并分别存放,这种缓冲区称为多VC共享缓冲区.根据实现方式,可以将多VC共享缓冲区分为静态多VC共享缓冲区和动态多VC共享缓冲区[8].静态多VC共享缓冲区也称为静态分配多队列SAMQ(Statically Allocated Multi-Queue),为每个VC分配独立的缓冲区空间,每个VC只能使用固定位置、确定数量的缓冲空间.动态多VC共享缓冲区的典型代表是动态分配多队列DAMQ(Dynamically Allocated Multi-Queue),所有共享缓冲区的VC的数据在缓冲区中随机存放,每个VC占用的空间可以根据需要动态变化,只要缓冲区中有空闲空间,理论上任何一个VC都可以申请占用,除非出于缓冲区分配的公平性考虑,限制某些VC占用过多的缓冲区空间[9].动态多VC共享缓冲区相比于静态多VC共享缓冲区能够有效提高缓冲区利用率,但是实现复杂.随着采用瓦片结构的大规模交叉开关的普及[3,10],交换芯片内部需要的存储资源极大地增加,导致芯片面积开销急剧增大.为了减少缓冲区占用的面积资源,DAMQ结构被用于构建大规模交叉开关的输入缓冲区和行列缓冲区.

在输入缓冲交换机的缓冲区实现中,无论是静态多VC共享缓冲区还是动态多VC共享缓冲区,一般都采用标准SRAM(Static Random Access Memory)存储器来实现.随着工作频率的提高,为了保证读出数据的稳定可靠,SRAM的读时序发生了重大变化.工作频率低于700 MHz的SRAM读延迟通常为1个时钟周期,工作频率大于700 MHz的SRAM读延迟普遍增加为2个时钟周期.这种SRAM一般被称为寄存型SRAM,增加的延迟是由于将输出的数据在SRAM内部寄存一拍(时钟周期也称为拍)才输出而导致的.仅仅1个时钟周期的延迟,对于交换机调度性能的影响非常大.在交换机输入端口输入的数据量比较大的情况下,从输入缓冲区中连续读出数据可以隐藏单个数据的读出延迟.但是,当交换机的输入端口输入的数据量比较小,读出数据非连续时,单个数据的读出延迟无法隐藏,导致交换机吞吐率下降,数据转发延迟增加.为了提高交换机的吞吐率,需要隐藏输入缓冲区的读出延迟,最理想的读出时序是在读请求输入的同一时钟周期读出数据.

文献[8]采用预取方法隐藏缓冲区的读出延迟,用寄存器组为每个VC构造独立的预取缓冲区,将数据提前从共享数据缓冲区读出,保存到预取缓冲区.当交换机的端口数比较多,或者VC数量比较多的情况下,寄存器组占用的存储空间比较大,而且不方便芯片设计的后端布局布线.为此,本文提出一种基于标准存储单元RA(寄存器阵列Register Array)的多VC共享预取结构用于隐藏缓冲区读出延迟,同时减少面积资源开销.采用本文提出的预取结构,可以保证交换机的输入缓冲区具有零延迟的读写性能,从而提高输入缓冲交换机的吞吐率.

1 多VC共享预取结构

输入缓冲交换机主要包括输入端口、输入缓冲区、仲裁器、输出端口等.目前,出于节约成本和IP(Intellectual property)资源可获得性考虑,高速互连网络交换机的输入缓冲区主要采用SRAM来实现.输入缓冲区的深度是物理链路传输带宽与点到点往返传输延迟之积,宽度是网络中传输的最小数据单元,例如报文微片flit.随着芯片工作频率的提高,为了保证从SRAM中读出数据的信号完整性和驱动能力,SRAM将读出数据寄存输出,导致读延迟增大.工作频率大于700 MHz的SRAM读延迟为2个时钟周期,即第一个时钟周期收到读请求和读地址,第三个时钟周期输出数据.增加的读延迟对交换机交叉开关的设计产生了较大的影响,需要屏蔽增加的读延迟,才能够保证交叉开关的吞吐率.

为此,本文提出了用快速多端口存储器RA构建预取缓冲区以屏蔽SRAM读延迟的输入缓冲区结构,称为SPB(Shared Prefetch Buffer).RA能够在读请求有效的当拍输出数据,但是容量一般比SRAM小,适合用于保存少量数据、要求读写延迟比较低的场合.为了隐藏2个时钟周期的SRAM读延迟,每个VC在RA中至少需要占用3个存储单元.为了避免计算地址时的加法运算,在预取缓冲区RA中为每个VC分配4个固定位置的存储单元.不失一般性,假设n个VC共享同一个物理链路,n一般为大于1的自然数.输入缓冲区需要保存n个VC的数据,预取缓冲区RA的深度为4n,宽度与数据缓冲区SRAM相同.在预取缓冲区RA中分配给每个VC的存储空间地址见表1.

1.1 带SPB结构的输入缓冲区总体结构

带有多VC共享预取结构SPB的输入缓冲区总体结构如图1所示,主要包括数据缓冲区SRAM,SRAM读写地址管理模块,预取缓冲区RA,RA旁路写入及读写地址管理模块等.数据缓冲区SRAM用于保存从交换机输入端口的物理链路上输入的多个VC的数据,每个VC的数据按照FIFO(First-In First-Out)方式组织;SRAM读写地址管理模块根据对SRAM的读写请求,生成读写SRAM的读地址和写地址;预取缓冲区RA用于保存提前从SRAM中读出的数据,由于RA需要能够同时接收从SRAM读出的数据和旁路写入的数据,因此选择具有两个写端口和一个读端口的RA作为预取缓冲区,每个VC的数据在预取缓冲区中也以FIFO方式组织.RA旁路写入及读写地址管理模块主要实现如下功能:1)根据数据写入请求和数据读出请求,计算每个VC在SRAM中保存的数据数量;2)根据每个VC在SRAM和RA中保存的数据数量,决定将输入端口写入的数据直接保存到预取缓冲区RA中还是写入到SRAM中,分别生成RA旁路写入请求和SRAM写入请求;3)根据接收到的数据读出请求和每个VC在SRAM中保存数据的计数值,生成SRAM读请求;4)根据每个VC对RA的占用情况,生成预取缓冲区RA的两个写地址和一个读地址,其中从SRAM读出的数据通过写端口1保存到RA中,旁路写入的数据通过写端口2保存到RA中.

SRAM读写地址管理模块的具体实现与采用静态方式或动态方式在VC之间分配数据缓冲区有关,文献[8]给出了采用动态方式分配数据缓冲区的详细实现细节.采用静态方式分配数据缓冲区的实现比较简单,一般是将数据缓冲区平均分配给n个VC,每个VC的数据存放在固定的存储区域,按照FIFO方式组织.SRAM读写地址管理模块分别根据对数据缓冲区的读请求和写请求递增读地址和写地址.该模块的具体实现不是本文的研究重点,在此不再赘述,本文主要研究RA旁路写入及读写地址管理模块的详细实现.

1.2 SPB预取缓冲区读写管理

预取缓冲区读写管理集中在RA旁路写入及读写地址管理模块,主要根据接收到的数据写入请求决定将数据写入SRAM还是RA,以及写入到RA中的位置;根据接收到的数据读出请求决定从RA的哪个位置输出数据.每个VC具有独立的RA旁路写入及读写地址管理模块,相互之间的连接关系如图2所示.RA旁路写入及读写地址管理模块的输入信号包括数据写入请求、数据读出请求、SRAM读响应,输出信号包括RA旁路写入请求、RA写地址1、RA写地址2、RA读地址、SRAM读请求、SRAM写入请求等.

每个VC的RA旁路写入及读写地址管理模块从交换机的输入端口接收数据写入请求,从交换机的交叉开关仲裁器接收数据读出请求,从数据缓冲区SRAM接收SRAM读响应;生成SRAM写入请

求和SRAM读请求发送到SRAM读写地址管理模块及数据缓冲区SRAM中;生成RA旁路写入请求发送到预取缓冲区RA,每个时钟周期最多有一个VC的RA旁路写入请求有效,n个VC的RA旁路写入请求中只要有一个有效,即在预取缓冲区RA的写端口2生成写请求;当SRAM读响应有效时,生成写请求发送到预取缓冲区RA的写端口1;根据预取缓冲区RA的写端口1的写入请求,在n个VC的RA写地址1中进行多路选择,写入请求有效的VC的RA写地址1将被选中作为RA的写端口1的写地址,从SRAM中预取的数据将被保存到预取缓冲区的写地址1指向的位置.类似地,根据预取缓冲区RA的写端口2的写入请求,在n个VC的RA写地址2中进行多路选择,写入请求有效的VC的RA写地址2将被选中作为RA的写端口2的写地址,旁路写入的数据将被写入到预取寄存器RA的写地址2指向的位置.

RA旁路写入及读写地址管理模块根据数据读出请求,生成对RA的读请求,每个时钟周期最多有一个VC的数据读出请求有效,只要有VC的数据读出请求有效即生成对预取缓冲区RA的读请求;根据数据读出请求,从n个VC的RA读地址中进行多路选择,数据读出请求有效的VC的RA读地址被选中作为预取缓冲区RA的读地址.从读地址输出的数据将被发送到交换机的交叉开关仲裁器,通过交叉开关转发到输出端口.

1.3 RA旁路写入及读写地址管理

每个VC的RA旁路写入及读写地址管理模块的结构均相同,如图3所示.主要包括RA旁路写入管理模块、SRAM数据计数模块、SRAM读请求生成模块、RA读地址管理模块、SRAM读响应写入管理模块等.

1.3.1 RA旁路写入管理模块

RA旁路写入管理模块接收数据写入请求,生成RA旁路写入请求和RA写地址2,或者生成SRAM写入请求.RA写地址2是预取缓冲区RA的第2写端口的写地址.

每个VC在预取缓冲区RA中占用4个存储空间,为了记录每个存储空间是否保存了有效数据,为每个存储空间设置状态变量.该状态变量有3种取值,分别为:

0:没有保存数据,也没有请求从数据缓冲区SRAM中读数据;

1:没有保存数据,但是已经请求从数据缓冲区SRAM中读数据;

2:保存了有效数据.

输入缓冲区电路复位时,预取缓冲区RA中分配给每个VC的4个存储单元的状态被设置为0.收到VC的数据写入请求时,根据该VC在SRAM中保存的数据的计数值和预取缓冲区4个存储单元的状态决定是否可以将输入端口输入的数据旁路写入到预取缓冲区.具体判断方法如下:若该VC在SRAM中保存的数据的计数值为0,而且预取缓冲区4个存储单元中至少有一个的状态为0,则生成RA旁路写入请求;否则,生成SRAM写入请求.如果预取缓冲区的4个存储单元中仅有一个状态为0,将该存储单元的地址作为RA写地址2,发送到预取缓冲区RA的写端口2,将该存储单元的状态改为2;否则,若预取缓冲区的4个存储单元中有多个状态为0,需要将旁路写入的数据保存到最早进入0状态的存储单元,以保持数据写入的顺序.为此,需要标识最早进入状态0的存储单元,本文采用基于顺序号的识别方法.根据进入状态0的顺序,为4个存储单元分配顺序号,编号为1到4.相应地,为每个旁路写入请求按照到达顺序分配顺序号,编号也为1到4.两个顺序号匹配的存储单元被选择用于存储当前旁路写入的数据,将其地址作为写地址2,发送到预取寄存器RA的写端口2.两个顺序号被循环使用.匹配顺序号的写入方式能够保证旁路写入的数据以FIFO方式被保存在预取寄存器中.

1.3.2 SRAM数据计数模块

SRAM数据计数模块负责生成每个VC保存在SRAM中的数据的总数,实现方法比较简单.输入缓冲区复位时,将计数值初始化为0;接收到SRAM写入请求时,对计数值加1;接收到SRAM读请求时,对计数值减1;同时接收到这两个信号,计数值保持不变.将生成的计数值发送到RA旁路写入管理模块和SRAM读请求生成模块,作为相关判断依据.

1.3.3 SRAM读请求生成模块

SRAM读请求生成模块接收到数据读出请求时,如果该VC在SRAM中的数据计数值大于0,表明该VC有数据保存在SRAM中,交叉开关仲裁器从预取缓冲区读出数据的同时,SRAM读请求生成模块生成对SRAM的读请求.这样可以保证预取缓冲区有数据被读出时,能够及时从数据缓冲区SRAM中读出数据,提前保存到预取缓冲区RA中.此外,由于交叉开关仲裁器发出的数据读出请求在每个时钟周期最多对一个VC有效,由该读请求触发对SRAM的读请求,可以保证每个时钟周期最多有一个VC将会发出SRAM读请求,避免了多个VC同时读SRAM的情况的发生.

1.3.4 RA读地址管理模块

RA读地址管理模块负责生成预取缓冲区RA的读地址.当输入缓冲区电路复位时,RA读地址被初始化为0;接收到数据读出请求时,RA读地址加1,当RA读地址为3时,加1后变为0.将RA读地址发送到预取缓冲区RA的读端口,当数据读出请求有效时,从RA读地址指向的存储单元输出数据,发送到交叉开关的输出端口.此时,如果该VC在SRAM中保存的数据数量大于0,将RA读地址指向的存储单元的状态改为1,表明该存储单元请求从SRAM读出数据;否则,将RA读地址指向的存储单元的状态改为0,并分配顺序号,表明该存储单元可以接收相同顺序号的旁路数据.

1.3.5 SRAM读响应写入管理模块

从数据缓冲区SRAM中读出的数据将被保存到预取缓冲区RA中,等待交叉开关仲裁器读取.SRAM读响应中包含数据有效信号和从SRAM中读出的数据.当SRAM读响应有效时,预取缓冲区的4个存储单元中至少有一个存储单元可以接收SRAM读响应中携带的数据.若仅有一个存储单元可以接收,则将该存储单元的地址作为预取缓冲区写端口1的写地址,即RA写地址1,发送到预取缓冲区RA的写端口1.相应地,SRAM读响应的数据被保存到RA写地址1指向的存储单元中,将该存储单元的状态从1更新为2.如果有两个或两个以上的存储单元可以接收SRAM读响应的数据,需要将数据保存到最早变为可以接收SRAM读响应的存储单元.仍然采用顺序号来区别状态都为1的存储单元.顺序号的取值范围为1到4,当有存储单元状态变为1时,将当前的顺序号分配给该存储单元,将顺序号加1;当顺序号等于4时,加1后变为1,达到循环使用的目的.同时,对SRAM读响应也进行编号,编号范围为1~4,当SRAM读响应有效时,读响应携带的数据将被保存到相同顺序号的状态为1的存储单元中,将该存储单元的状态从1更新为2;同时,编号加1,当编号为4时,加1后变为1.匹配顺序号的写入方式能够保证从SRAM读出的数据以FIFO方式被保存在预取缓冲区中.

采用上述预取缓冲区读写管理实现了写入数据的旁路写入和SRAM写入,数据从预取缓冲区读出,并对数据缓冲区SRAM中的数据进行预取,以屏蔽读出延迟.下面,将对上述SPB结构进行实现和测试,证明其实现了快速读写的性能.

2 性能测试与分析

我们用Verilog硬件描述语言实现了本文提出的SPB预取结构,SRAM的管理采用文献[8]提出的DAMQ结构,6个VC共享输入缓冲区和预取缓冲区,采用模拟器对读写性能进行了模拟测试.文献[8]提出的DAMQ-PF缓冲区管理机制采用寄存器组构建预取缓冲区并设计了相应的预取缓冲区管理方法,采用本文提出的SPB结构作为预取缓冲区的缓冲区管理机制被称为DAMQ-SPB.通过比较DAMQ,DAMQ-PF和DAMQ-SPB的性能,发现DAMQ-SPB的读写延迟、吞吐率均与DAMQ-PF相当,读写延迟低于DAMQ,吞吐率高于DAMQ.

2.1 访问延迟

输入缓冲区的访问延迟包括数据写入延迟和数据读出延迟.传统DAMQ的写入延迟为3个时钟周期,读出延迟也为3个时钟周期[9].如果采用增加了读延迟的寄存型SRAM,传统DAMQ的读延迟将会大于3个时钟周期.由于采用预取缓冲区屏蔽SRAM的读延迟和空闲地址队列的读延迟,DAMQ-PF实现了零延迟写入和读出.DAMQ-SPB的写入过程与DAMQ-PF基本相同,区别在于DAMQ-PF将旁路写入的数据保存到寄存器组成的预取缓冲区,而DAMQ-SPB将旁路写入的数据保存到标准存储单元RA组成的预取缓冲区.由于DAMQ-SPB的旁路写入时序与DAM-PF相同,因此,DAMQ-SPB能够实现零延迟写入.与写入过程类似,从DAMQ-SPB读出数据时,是从预取缓冲区RA中读出,其读延迟为0.因此,DAMQ-SPB能够实现零延迟读出.

图4给出了DAMQ-SPB的读写波形,图中,clk为700 MHz的工作时钟;w_en是输入缓冲区的数据写入请求,每一位对应一个VC;w_data是218位的写入数据;vc_r_en是数据读出请求,与数据写入请求类似,每一位对应一个VC;vci_r_data_reg是读出的数据,i为VC号,取值范围为0到5.从图中可以看出,数据写入请求可以连续有效,即每个时钟周期均可以向DAMQ-SPB缓冲区写入不同VC或者相同VC的数据.数据读出请求也可以连续有效,每一个时钟周期都可以从DAMQ-SPB缓冲区读出不同VC或相同VC的数据,而且在读请求有效的当拍输出数据,表明实现了零延迟的数据读出.

2.2 吞吐率

输入缓冲区的写入吞吐率定义为每个时钟周期平均接收的数据数量,具体计算公式为:写入吞吐率=写入数据的时钟周期总数/测试运行的时钟周期总数.类似地,输入缓冲区的读出吞吐率定义为每个时钟周期平均输出的数据数量,具体计算公式为:读出吞吐率=输出数据的时钟周期总数/测试运行的时钟周期总数.可以看出写入吞吐率和读出吞吐率的变化范围为0~1.表2给出了DAMQ,DAMQ-PF和DAMQ-SPB的最大写入吞吐率和读出吞吐率.最大写入吞吐率是指只要输入缓冲区可以接收数据,就写入数据到输入缓冲区.最大读出吞吐率是指只要输入缓冲区中有数据,就从输入缓冲区读出数据.

从表2可以看出,DAMQ的最大写入吞吐率和读出吞吐率最低,DAMQ-PF和DAMQ-SPB都能够获得很高的吞吐率.原因是DAMQ的写入延迟和读出延迟比较大,导致吞吐率下降.DAMQ-PF和DAMQ-SPB可以每个时钟周期接收数据,因此能够获得100%的写入吞吐率.由于读出操作受写入操作限制,只有写入数据到输入缓冲区之后,才能够从中读出数据,在相同的测试时间内读出数据的数量总小于写入数据的数量,因此3种算法的读出吞吐率略小于写入吞吐率.如果降低写入吞吐率,读出吞吐率也会随之降低,如表3所示.DAMQ-PF的测试结果与DAMQ-SPB相同,表中没有列出.表3中的写入吞吐率是测试激励可以控制的,读出吞吐率随着写入吞吐率或者流量注入率的改变而变化,一般会低于写入吞吐率,二者越接近表明缓冲区读延迟低,读出吞吐率高.

2.3 面积

为了提高超级计算机的组装密度,互连网络交换机的端口数呈现不断上升的趋势,世界知名超级计算机研制厂商已经陆续推出了多达48个或64个端口的交换机.这类多端换机的出现导致交换机内部微体系结构发生了巨大变化,目前普遍采用基于瓦片的多级交换结构.这种结构相比于传统的单级交换结构,具有结构规整,易于后端布局布线的突出优点,但是对存储资源的需求也急剧增加.以文献[3]提出的64端换机为例,传统的单级交换结构最少仅需64个缓冲区,而基于瓦片结构的交换机不仅需要输入缓冲区,还需要行缓冲区和列缓冲区,缓冲区的数目增加到1 088个.如果采用文献[8]提出的DAMQ-PF缓冲区,为了隐藏读延迟,需要的寄存器数量为1 088×6×3×Wflit,其中Wflit为一个微片的宽度,不同的网络可以定义不同宽度的flit.在DAMQ-SPB的实现中,Wflit为218 bit.如果DAMQ-PF也采用218 bit的微片,需要的寄存器数量为4 269 312个.在40 nm的芯片制造工艺下,每个寄存器的面积大约为9 μm2,寄存器占用的面积至少为38.4 mm2.这些寄存器之间还需要大量的连线,将会占用更大的面积.如果采用DAMQ-SPB结构,用RA代替寄存器构造预取缓冲区,需要的两写一读、深度为18、宽度为218 bit的RA的数量为1 088个,这些RA占用的面积约为1 088×42 013 μm2=45.7 mm2.为了避免计算读写地址时的加法运算,在预取缓冲区中为每个VC分配4个存储单元,需要采用深度为24的RA,占用的面积约为1 088×56 018 μm2=60.9 mm2,需要的寄存器数量为5 692 416个,占用的面积至少为51.2 mm2.可以看出,用RA实现的预取缓冲区占用的面积资源稍大于寄存器实现的预取缓冲区.但是,寄存器实现的预取缓冲区需要的连线资源远远大于RA实现的预取缓冲区.而且,RA实现的预取缓冲区除了控制逻辑占用面积资源之外,存储器本身不需要额外的连线资源,因此更易于布局布线的实现.

3 结 论

本文针对目前采用SRAM实现的交换机输入缓冲区读延迟增大的问题,提出了一种新的多VC共享预取结构SPB,用于隐藏数据缓冲区SRAM的读延迟.给出了旁路写入控制、读写地址管理、预取管理等功能模块的详细实现,利用Verilog语言实现了SPB结构,对其读写性能进行了测试.测试结果表明,带有SPB结构的缓冲区具有低延迟、高吞吐率的读写性能.SPB结构既可以与SAMQ缓冲区结合使用,也可以与DAMQ缓冲区结合使用,而且能够方便地扩展到用于隐藏数据缓冲区SRAM更大的读出延迟,具有良好的可扩展性和可用性.

参考文献

[1] JAMALI M, KHADEMZADEH A. Improving the performance of interconnection networks using DAMQ buffer schemes[J]. IJCSNS International Journal of Computer Science and Network Security, 2009, 9(7):7-13.

[2] KODI A, SARATHY A, LOURI A. Adaptive channel buffers in on-chip interconnection networks―a power and performance analysis[J]. IEEE Transactions on Computers, 2008, 57(9): 1169-1181.

[3] KIM J, DALLY W J, TOWLES B, et al. Microarchitecture of a high-radix router[C]//Proceedings of the 32nd Annual International Symposium on Computer Architecture. New York: ACM, 2005: 420-431.

[4] SCOTT S, ABTS D, KIM J, et al. The blackwidow high-radix clos network[C]//Proceedings of the 33rd Annual International Symposium on Computer Architecture. New York: ACM, 2006:16-28.

[5] AHN J H, CHOO S, KIM J. Network within a network approach to create a scalable high-radix router microarchitecture[C]//Proceedings of 2012 IEEE 18th International Symposium on High Performance Computer Architecture (HPCA). New York: IEEE, 2012:1-12.

[6] MCKEOWN N, MEKKITTIKUL A. Achieving 100% throughput in an input-queued switch[J]. IEEE Transactions on Communications, 1999, 47(8):1260-1267.

[7] DALLY W J, TOWLES B. Principles and practices of interconnection networks[M]. San Francisco: Morgan Kaufmann Publishers, 2004.

[8] ZHANG He-ying, WANG Ke-fei, DAI Yi, et al. A multi-VC dynamically shared buffer with prefetch for network on chip[C]//Proceedings of 2012 IEEE Seventh International Conference on Networking, Architecture, and Storage. Washington, DC: IEEE Computer Society, 2012:320-327.

[9] TAMIR Y, FRAZIER G L. Dynamically-allocated multi-queue buffers for VLSI communication switches[J]. IEEE Transactions on Computers, 1992, 14(6): 725-737.

[10]VISHNU A, TEN BRUGGENCATE M, OLSON R. Evaluating the potential of cray gemini interconnect for PGAS communication runtime systems[C]//Proceedings of 2011 IEEE 19th Annual Symposium on High Performance Interconnects. Washington, DC: IEEE Computer Society, 2011:70-77.

上一篇:一种路由表分布式存储转发架构及其查找算法 下一篇:关于高职院校自主招生的现状与对策研究