超低延时网络缓冲存储的制作方法

文档序号:8324162阅读:439来源:国知局
超低延时网络缓冲存储的制作方法
【专利说明】超低延时网络缓冲存储
[0001]相关申请的交叉引用
[0002]本申请要求于2012年9月18日提交的、题为“超低延时网络缓冲存储”的美国临时申请N0.61/702,326的优先权,该临时申请的整体通过引用被合并于此。
技术领域
[0003]本公开总体涉及最小化网络设备中的缓冲存储。
【背景技术】
[0004]超低延时网络是例如由高频交易(HFT)客户用来交易金融资产的特殊的计算网络类型。在这样的应用中,即使轻微的传输时间延时也可能带来金融影响。具体地,具有比竞争者更快的数据连接可以使得HFT客户在波动时期捕捉机会、增加订单流、流动资产、并且加速价格发现以获得竞争优势。
[0005]用于计算网络(甚至是超低延时网络)中的传统联网设备会因为临时将接收到的数据分组存储在网络缓冲器中以吸收仲裁、转发或拥塞延迟而引发不想要的延时。例如,交叉开关(crossbar)和端口逻辑架构可以存储分组多达四次(例如,输入端口、输入交叉开关、输出交叉开关、以及输出端口)。另外,共享的存储器架构可以导致存储数据多达三次(例如,输入端口、缓冲存储器、以及输出端口)。这些存储操作中的每个均增加了不想要的延时。
【附图说明】
[0006]图1根据本文所呈现的技术示出了网络设备的框图,该网络设备被配置来执行从存储器读取分组和向存储器写入分组。
[0007]图2是多个缓冲器和针对每个缓冲器的相关联的写入逻辑的详细框图。
[0008]图3是多个缓冲器和针对多个缓冲器的相关联的读取逻辑的详细框图。
[0009]图4是示出队列结构、调度器和队列管理器的框图,其中,队列管理器被配置为在某些情况下绕过队列结构和/或调度器。
[0010]图5是总体描绘了本文所呈现的缓冲配置的读取操作和写入操作的流程图。
【具体实施方式】
[0011]臟
[0012]本文呈现了网络设备中的缓冲设计和缓冲的写入/读取配置。在网络设备的端口处接收分组。根据一个方面,分组的第一部分被写入网络设备中的缓冲器的多个单元格(cell)的第一单元格。每个单元格具有比该网络设备所接收的分组的最小尺寸更小的尺寸。可以从第一单元格读取分组的第一部分,并且同时将分组的第二部分写入第二单元格。
【具体实施方式】
[0013]
[0014]诸如交换机之类的网络设备将延时测量为分组的第一位的发送时间(出发)减去该分组的该第一位的接收时间(到达)。该延时的一个原因是对到达分组的缓冲(即,临时存储接收到的分组以吸收仲裁、转发或拥塞延迟)。期望网络设备中的缓冲器具有写入和读取总共2* (M个输入端口 *N Gbps)的能力以维持线速率(wire rate)。高端口密度计数和高端口性能速度为架构方面带来了巨大的挑战。
[0015]缓冲器写入应该以防止分组丢失的方式被执行。高带宽操作(例如,高效写入网络缓冲器)具有在数据存储之前建立分页(page)单元的输入缓冲阶段。该操作经由输入端口缓冲器的预分段导致分页延时。例如,10十亿位/秒(Gbps)的100字节分页可能增加另外的160纳秒(ns)的延时(80ns用于写入,80ns用于读取)。
[0016]本文呈现了减少或消除输入缓冲阶段(即,输入累加)从而降低延时的技术。这些技术通过将缓冲存储器分页存储单元减小(分离)为单元格来操作。例如,200字节分页可以被划分为二十个10字节单元格。每个10字节单元格是单个的存储器组(bank)列,该存储器组列可以以提供对一个或多个单元格列的完全访问的方式被写入,从而无延时地存储分组。独立的列访问有助于保证数据不会因线速度的高带宽写入而被丢弃(传统上,这通过输入缓冲来实现)。举例来说,还可以通过减小单元格的尺寸、通过将单元格划分为子单元格等来实现附加的优化。
[0017]本文所呈现的技术使用共享的存储器架构、多个存储器单元格以及工作保存仲裁器来减少存储和仲裁延时量,其中,共享的存储器架构、多个存储器单元格以及工作保存仲裁器均为缓冲延时的关键部件。降低延时对于超低延时网络用户至关重要。本文所呈现的技术可以实现在特定情形下低达零的延时存储,实现独立于分组尺寸的延时,对于单播、2层多播和3层多播而言实现相同的线速率低延时,和/或实现维持非常高的密度和高性能端口的能力。
[0018]现在参照图1,提供了网络设备10的高层框图,网络设备10被配置以用于超低延时缓冲存储。网络设备10包括多个端口 12(l)-12(p),在这些端口处,分组可以到达网络设备10并且从网络设备离开。端口 12 (I)-12 (P)被親合于交换机结构(switch fabric) 14。交换机结构14包括对分组执行处理决定的数字逻辑和相关联的存储器。交换机结构14可以被实现于一个或多个专用集成电路(ASIC)中。网络设备10还包括中央处理单元(CPU) 16和存储器18。其他部件可以存在于网络设备10中,但未在图1中示出,因为它们不属于本文所呈现的低延时缓冲存储技术。图1示出了交换机结构14包括一组缓冲器20 (I)-20 (C)、一组相对应的写入逻辑30 (I)-30 (C)以及读取逻辑40。因此,对于缓冲器20(1),存在写入逻辑框30(1),等等。
[0019]存储器18可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪存设备、电、光、或其他物理/有形存储器存储设备。因此,一般地,存储器18可以包括一个或多个有形(非易失性)计算机可读存储介质(例如,存储器设备),该一个或多个有形(非易失性)的计算机可读存储介质被编码有包括计算机可执行的指令的软件,并且当该软件被(CPU 16)运行时其可操作来执行本文所描述的操作。
[0020]网络设备10可以是现在已知或者之后开发的任意网络设备,包括交换机、路由器、网关、主机设备上的软件栈、虚拟网络接口卡(VNIC)虚拟交换机、物理网络接口卡(包括支持虚拟化的那些物理网络接口卡)。
[0021]为对缓冲器20 (I)-20 (C)以及相关联的写入逻辑30 (I)-30 (C)进行更加详细的描述,现在参照图2。每个缓冲器20 (I)-20 (C)包括多个单元格22(1)-22(C)。每个单元格22 (I) -22 (C)是可以被独立写入的单个存储器组列,如上面所一般解释的。对于缓冲器的一行存储器中总共N个字节,一行存储器中存在C个单元格。另外,每个单元格具有比网络设备预期要接收的分组的最小尺寸更小的尺寸。
[0022]端口 12(1)_12(P)被连接到每个写入逻辑30 (I)-30 (C)。更具体地,每个写入逻辑框包括输入累加器32 (I) -32 (P),并且每个输入累加器32 (I) -32 (P)被连接到端口12 (I)-12 (P)中相应的一个端口。每个输入累加器32 (I)-32 (P)在分组内容可以被写入相关联的缓冲器中的多个单元格中的任意一个单元格之前累加N/C个字节。此外,每个写入逻辑框包括C个并行的写入仲裁器34 (I)-34 (C)。在端口 12 (I)-12 (P)之一处接收到的分组的数据已在输入累加器32(1)-32 (P)之一中被充分累加之后,该数据被连接到写入仲裁器34(1)-34(C)之一。来自给定端口的分组数据被一次一个单元格地写入缓冲器中,然后穿过缓冲器中的单元格直到整个分组已被写入。在任意给定的时间,C个写入仲裁器可以写入C个单元格。因此,当分组数据从端口 12 (I)-12 (P)之一到达输入累加器32 (I)-32 (P)之一时,输入累加器等待累加N/C个字节,并且等待最多P/C个周期以获得对缓冲存储器的访问。
[0023]可以设计缓冲器的每个单元格22⑴-22(C)的尺寸,以使得与将分组写入缓冲器和从缓冲器读取分组相关联的延时独立于分组的尺寸。类似地,可以设计缓冲器的每个单元格22(1)-22(C)的尺寸,以使得与将分组写入缓冲器和从缓冲器读取分组相关联的延时独立于端口速度(例如,1Mbps或10Gbps)。
[0024]写入仲裁器34(1)-34(C)独立且并行地进行操作,以使得分组可以在多个端口12 (I)-12 (P)处被接收,并且来自那些分组的各部分可以被同时写入相关联的缓冲器(例如,缓冲器20 (I))内的不同的单元格。该写入仲裁方案是这样的方案,即,缓冲器的P个单元格对于到达P个端口 12(1)-12(P)的分组的数据而言是无写入冲突的。例如,对于所有分组在相同时间到达的20端口系统,所有的20个分组的第一部分在相同的瞬时(即,时间)被写入。无写入冲突的延伸是对低延时多目的地分组进行写复制的能力。例如,如果多目的地(多播)分组M从端口 12(1)到达并去往端口 12(2)至12 (20),并且没有即将到来的数据到达端口 12(2)至12(20),则分组M通过并行写入到每个输出队列被同时发送出端口12(2)至 12(20) ο
[0025]现在参照图3。图3示出与多个缓冲器20(1)_20(C)相关联的读取逻辑40的更多细节,其中,缓冲器20(1)-20(C)
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1