至少部分地判定缓冲存储器字段的一个或多个各自量的制作方法

文档序号:6484899阅读:115来源:国知局
至少部分地判定缓冲存储器字段的一个或多个各自量的制作方法
【专利摘要】实施例可以包括:判定用于存储网络流量的至少一个各自部分的缓冲存储器的至少一个各自量。所述判定可以至少部分地基于与至少一个各自网络流量部分相关联的至少一个各自参数。所述至少一个各自量足以存储网络流量的至少一个各自部分。所述至少一个各自参数可以反映网络流量的至少一个各自部分的至少一个实际特性。本实施例还可以允许缓冲存储器的至少一个各自部分至少部分地存储至少一个各自网络流量部分,所述缓冲存储器的至少部分地对应于至少一个各自量的至少一个各自部分被选择性地通电以允许缓冲存储器的至少一个部分用于存储至少一个各自网络流量部分。
【专利说明】至少部分地判定缓冲存储器字段的一个或多个各自量
【技术领域】
[0001]本发明涉及至少部分地判定缓冲存储器的一个或多个各自量。
【背景技术】
[0002]在一个常规的网络布置中,在通信会话开始之前,第一主机和第二主机协商该会话的参数。每个主机建立各自的本地缓冲区(即对各自主机中的每个分别是本地的)以存储参与会话的分组。通常,各自的本地缓冲区的各自大小的建立独立于会话的实际参数,从而遵从期望常用于在会话期间的较差情况通信场景下的最大缓冲要求(即,为了防止缓冲区溢出)。这会造成为存储分组而分配和通电比实际用于存储分组更多的缓冲存储器。这可以使缓冲存储器使用和/或分配效率更差,并且也会增加能量消耗。
【专利附图】

【附图说明】
[0003]随着以下的【具体实施方式】的进行,并且参考本【专利附图】
附图
【附图说明】,实施例的特征和优点将会变得明显,其中相似的数字描述了相似的部分,其中:
[0004]图1示出了系统实施例。
[0005]图2示出了实施例中的特征。
[0006]图3示出了实施例中的特征。
[0007]尽管以下【具体实施方式】将伴随参考解释性实施例而进行,但对于本领域的技术人员来说其多种替代、改造和变化将会变得明显。因此,要求保护的主题旨在宽泛的理解。
【具体实施方式】
[0008]图1示出了系统实施例100。系统100可以包括一个或多个主机10,其可以经由一个或多个网络和/或链路50通信地耦合到一个或多个其他主机20。在本实施例中,一个或多个主机10和一个或多个主机20在地理上可以相互远离。在一个实施例中,术语“主机计算机”、“主机”、“服务器”、“客户端”、“网络节点”、“终端站”、“端节点”、“中间节点”、“中间站”和“节点”可以互换使用,并且可以没有限制地表示,例如一个或多个终端站、移动互联网设备、智能手机、媒体(例如音频和/或视频)设备,输入/输出(I/O)设备、平板计算机、电器、中间站、网络接口、客户端、服务器和/或其部分。
[0009]在本实施例中,“网络”或“链路”可以是或者包括任何机制、手段、形式和/或其部分,其至少部分地允许、促进和/或准许两个或更多个实体通信地耦合在一起。同样在本实施例中,如果第一实体能够将一个或多个命令和/或数据传送到第二实体和/或接收来自第二实体的一个或多个命令和/或数据,那么第一实体可以“通信地耦合”到第二实体。在本实施例中,“无线网络”可以表示至少部分地允许至少两个实体被至少部分无线通信地耦合的网络。在本实施例中,“有线网络”可以表示至少部分地允许至少两个实体被至少部分非无线地通信地耦合的网络。在本实施例中,数据和信息可以被互换使用,并且可以是或包括一个或多个命令(例如一个或多个程序指令),和/或一个或多个这样的命令可以是或者包括数据和/或信息。同样在本实施例中,“指令”可以包括数据和/或一个或多个命令。尽管所述一个或多个主机10和/或20,和/或一个或多个网络和/或链路50 (和/或这里描述的系统100的其他部件)可能以单数提及,但应当理解每个这样的各自部件可以包括多个这样的各自部件而不偏离本实施例。
[0010]在本实施例中,一个或多个主机20可以包括各自的部件,在它们各自的构造、操作和/或能力上与一个或多个主机10各自的部件的各自的构造、操作和/或能力(例如,本文描述的)至少部分地是相同的或者实质上相似的。当然,可替换地,不背离本实施例,一个或多个主机20 (和/或其一个或多个部件)各自的构造、操作和/或能力与一个或多个主机10 (和/或其一个或多个部件)各自的构造、操作和/或能力可以至少部分不相同。
[0011]一个或多个主机10可以包括电路118。电路118可以包括,例如,一个或多个电路板(CB) 110和/或一个或多个网络接口控制器(NIC)电路卡(CC) 120。在本实施例中,CBllO可以是或者包括一个或多个系统母板,其可以包括一个或多个单和/或多核主机处理器(HP)/中央处理单元(CPU)12、一个或多个芯片组(CS)15,和/或计算机可读/可写主机系统存储器21。所述一个或多个CBllO能够经由一个或多个未示出的总线连接器/插槽系统而物理地、电地和/或通信地耦合到所述一个或多个NIC CC120。当这样耦合时,一个或多个CBl 10、HP12、CS15和/或存储器21可以变成通信地耦合到一个或多个CC120和/或耦合到一个或多个CC120的一个或多个部件。例如,一个或多个CS15可以包括,例如,存储器、输入/输出控制器电路和/或网络接口控制器电路。当这样耦合时,一个或多个主机处理器12可以经由一个多个CS15通信地耦合到存储器21和/或一个或多个NIC CC120。
[0012]一个或多个NIC CC120可以至少部分地包括一个或多个电路119、一个或多个资源160、和/或缓冲存储器122。在这个实施例中,一个或多个资源160可以是或者包括,例如,分组加密和/或解密电路,其可以不同于(例如,至少部分差异于和/或除其之外)缓冲存储器122和/或缓冲存储器122的一个或多个部分。当然,不偏离本实施例,一个或多个资源160可以至少部分是或者包括:一个或多个其他和/或额外类型的资源,和/或可以至少部分包含于缓冲存储器122和/或缓冲存储器122的一个或多个部分中。在这个实施例中,作为附图中展示的内容之外或者作为其替代,一些或者所有的一个或多个NIC CC120和/或其功能和部件,可以包括在例如一个或多个主机处理器12、一个或多个CS15和/或CBllO 中。
[0013]在本实施例中,一个或多个操作系统(OS)31、一个或多个驱动程序33和/或一个或多个(例如,用户和/或应用级别)进程32可以被主机10中的一个或多个主机处理器12、电路119、一个或多个资源160和/或NIC CC120至少部分地执行。当这样执行时,一个或多个0S31、一个或多个驱动程序33和/或一个或多个进程32可以至少部分地驻留在存储器21中。
[0014]在本实施例中,“电路”可以包括,例如,单一的或者任意组合的模拟电路、数字电路、硬线电路、可编程电路、协处理器电路、处理器电路、控制器电路、状态机电路、和/或包括可被可编程电路执行的程序指令的存储器。同样在本实施例中,主机处理器、处理器、处理器核心、核心和/或控制器中的每个可以包括各自的电路,该电路能够至少部分地执行一个或多个算术和/或逻辑操作,例如,一个或多个各自的中央处理单元。尽管没有在附图中示出,但每个主机10和/或20可以包括各自的图形用户界面系统。没有示出的图形用户界面系统的每个可以包括,例如,各自的键盘、定点设备和显示系统,该显示系统允许人类用户对一个或多个主机10和/或20和/或系统100输入命令和监视其操作。
[0015]存储器21和/或缓冲存储器122可以包括一个或多个以下类型的存储器:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机访问存储器、闪存、磁盘存储器、相变存储器、光盘存储器、和/或其他或后来发展的计算机可读和/或可写存储器。因此,尽管在本实施例中缓冲存储器122包括静态随机访问存储器,但缓冲存储器122也可以包括其他和/或额外类型和/或配置的存储器(例如,不同于本文描述或者除了本文描述的之外),而不偏离本实施例。
[0016]一个或多个机器可读程序指令可以存储在存储器21、一个或多个主机处理器12、一个或多个CS15、一个或多个NIC CC120、一个或多个资源160、电路119和/或电路118。在操作中,一个或多个主机处理器12、一个或多个CS15、一个或多个NIC CC120、一个或多个资源160、电路119和/或电路118可以访问和执行这些指令。当这样访问并执行时,这些一个或多个指令会造成系统100的这些部件如被系统100的这些部件执行的一样执行本文描述的操作。
[0017]在本实施例中,实体的一部分、子集或片段可以包括所有、多于或少于所述实体。此外,在本实施例中,如果至少部分值和/或至少部分涉及生成和/或产生所述值的一个或多个算法、操作和/或进程是至少部分地预先确定的,那么所述值可以是“预先确定的”。同样,在本实施例中,进程、线程、守护进程、程序、驱动程序、虚拟机、虚拟机监控器、操作系统、应用和/或内核中的每个可以(I)至少部分包括,和/或(2)至少部分导致和/或归因于:一个或多个操作和/或程序指令的执行。在这个实施例中,资源可以是、参与、指定和/或包括一个或多个物理的、逻辑的和/或虚拟的(I)能力、功能和/或操作,(2)电路部分,
(3)进程,和/或(4)能力、功能和/或操作,其可以:归因于使用一个或多个这样的电路部分和/或进程、被一个或多个这样的电路部分和/或进程使用、和/或当使用一个或多个这样的电路部分和/或进程时是可实施的。
[0018]在本实施例中,主机10和20可以按照一个或多个协议经由网络50交换数据和/或命令。在本实施例中,这些一个或多个协议可以与例如一个或多个以太网和/或传送控制协议/互联网协议(TCP/IP)协议兼容。
[0019]例如,用于系统100中的一个或多个以太网协议可以至少部分遵从或兼容于IEEEStd.802.3-2008 (包括例如 Annex31B 标题为 “MAC Control Pause Operation”),2008 年12 月 26 日;IEEE Std.802.1Q-2005,2006年5月 19 日;IEEE Draft Standard P802.1Qau/D2.5,2009 年 12 月 18 日;IEEE Draft Standard P802.lQaz/Dl.2,2010 年 3 月 I 日;IEEE Draft Standard P802.1Qbb/Dl.3,2010 年 2 月 10 日;IEEE P802.lQat/D6.0,DraftStandard for Local and Metropolitan Area Networks-Virtual Bridged Local AreaNetworks-Amendment9: Stream Reservation Protocol (SRP), 2010 年 4 月 23 日,(以下称为“SRP”)。用于系统100中的TCP/IP协议可以至少部分遵从或兼容于发表于1981年8月的 Internet Engineering Task Force (IETF) Request For Comments (RFC) 791 和 793中描述的协议。许多不同的、额外的和/或其他的协议(包括例如上述协议)可以被用于这样的数据和/或命令交换,而不偏离本实施例(例如,前述、相关和/或其他协议的先前和/或后来发展的版本)。[0020]例如,在一个或多个主机10、一个或多个主机20、系统100和/或经由一个或多个链路50的通信等的或其中的复位或其他事件之后,一个或多个主机10和/或20可以在它们之间交换一个或多个自动协商交换75,例如,按照一个或多个自动协商技术,所述技术至少部分遵从和/或按照上述协议中的一个或多个。这些一个或多个交换75可以用于以下目的:促进和/或建立通信,所述通信至少部分地涉及可能至少部分遵从和/或兼容上述协议中的一个或多个的主机10和/或20。例如,这些一个或多个交换75可以至少部分包括一个或多个值156。这些一个或多个值156可以至少部分地指示、反映、体现、指定和/或判定:发生在主机10和/或20之间或之中(例如,至少部分作为在主机10和/或20之间或之中的自动协商的结果)的网络流量(NT) 58的一个或多个各自部分(例如,在本实施例中,多个各自部分60A…60N)的一个或多个实际特性(被一个或多个实际特性152象征性地示出)。在本实施例中,网络流量58和/或网络流量58的一个或多个各自部分60A-60N可以至少部分包括一个或多个分组。例如如图1所示,网络流量58的一个或多个各自部分60A可以至少部分包括待从主机10传送到主机20的一个或多个分组62A,和/或一个或多个部分60N可以至少部分包括主机10接收到的来自主机20的一个或多个分组62N。在本实施例中,分组可以包括一个或多个符号和/或值。
[0021 ] 在本实施例中,一个或多个驱动程序33可以至少部分地控制电路119和/或电路118的操作。例如,主机10中的一个或多个驱动程序33的执行会导致电路119和/或118至少部分地判定:至少部分地用于(至少临时地和/或至少部分地)存储网络流量58的一个或多个各自部分60A- 60N的缓冲存储器122的一个或多个各自量125A…125N。至少部分在网络流量58和/或网络流量58的一个或多个各自部分60A?"60N的传送和/或接收开始之前,电路119和/或118可以做出这个判定。例如,在本实施例中,至少部分地基于一个或多个各自参数(被一个或多个各自参数150象征性地示出),电路119和/或118可以至少部分做出缓冲存储器122的这些一个`或多个各自量125A…125N的这个判定。这些一个或多个各自参数150可以至少部分地关联到网络流量58的一个或多个各自部分60A…60N,其将会存储在缓冲存储器122的一个或多个各自量125A…125N。例如,缓冲存储器122这些一个或多个各自量125A…125N可以足够存储网络流量58的一个或多个各自部分60A-60N的一个或多个期望的(例如,各自的)存`储带宽(被一个或多个期望存储带宽(BW) 154象征性地示出)。
[0022]在本实施例中,存储器的量可以至少部分是、包括、指定、指示、暗指和/或有关于所述存储器的和/或在所述存储器中的一个或多个连续的和/或非连续的地址、存储单元、部分、行和/或存储大小(例如,字节)。同样在这个实施例中,存储带宽可以至少部分是、包括、指定、指示、暗指和/或有关于(I) 一个或多个存储器量,和/或(2) —个或多个延迟和/或访问存储器所暗指和/或涉及的其他特性。在本实施例中,访问存储器可以至少部分包括读和/或写存储器。
[0023]同样在本实施例中,在主机10中执行一个或多个驱动程序33会导致电路119和/或118至少部分地允许:缓冲存储器122的一个或多个各自部分124A…124N被选择性地通电,以准许所述一个或多个各自部分124A…124N至少部分地用于存储网络流量58的一个或多个各自部分60A…60N。缓冲存储器122的这些一个或多个各自部分124A…124N可以至少部分地对应于缓冲存储器122的一个或多个各自量125A…125N。例如,缓冲存储器122的一个或多个各自量124A…124N可以至少部分地等价于、在大小上等于和/或包括缓冲存储器122的一个或多个各自量125A…125N。
[0024]在本实施例中,至少部分地基于、包括和/或反映一个或多个实际特性152和/或一个或多个值156,电路119和/或118可以产生一个或多个参数150 (例如,至少部分归因于在主机10中执行一个或多个驱动程序33)。所述一个或多个实际特性152可以被至少部分地判定(例如被电路119、电路118和/或一个或多个驱动程序33),至少部分归因于在主机10和/或20之间或者之中的自动协商。例如,通过电路119、电路118和/或一个或多个驱动程序33的判定可以至少部分地基于例如一个或多个值156。
[0025]一个或多个参数150至少部分可以遵从、可以按照、可以兼容、和/或可以被判定和/或建立按照上述一个或多个协议和/或自动协商。如图2展示,一个或多个参数150可以至少部分包括:(I)网络流量58的一个或多个各自部分60A-60N的一个或多个各自实际传送率(ATR)202, (2)至少部分与一个或多个各自部分60A…60N的传送相关联的一个或多个各自链路类型(LT,例如,一个或多个链路50的)204 (例如,所述各自部分60A-60N通过其传送),(3)至少部分与所述一个或多个各自部分60A?"60N相关联(例如,所述各自部分60A-60N所遵从和/或兼容的)的一个或多个各自协议206,(4)至少部分地与所述一个或多个各自部分60A?"60N相关联的一个或多个各自带宽预留(BWR)208 (例如,根据SRP分配给所述一个或多个各自部分60A*“60N的一个或多个各自带宽预留),(5)至少部分与所述一个或多个各自部分60A*“60N相关联的一个或多个各自服务质量(Q0S)210要求,(6)一个或多个各自部分60A-60N的和/或与其至少部分关联的一个或多个优先级214,(7)一个或多个各自部分60A-60N的和/或与其至少部分关联的一个或多个网络层协议带宽要求(NLPBR)216,和/或(8)用于传送和/或接收一个或多个部分60A-60N的一个或多个各自链路50的一个或多个各自链路协商参数(LNP)218。此外或者作为替代,一个或多个参数150可以包括一个或多个各自用户偏好212,其可以被人类用户经由例如主机10的没有示出的用户界面和/或一个或多个应用级别进程32定义和/或输入。这些一个或多个偏好212可以至少部分地调整、修改、和/或指定一个或多个前述(和/或其他)参数150。例如,一个或多个偏好212可以至少部分地指示一个或多个最大支持分组大小(例如,一个或多个分组62A"?62N的)、一个或多个上协议层分组大小、和/或与部分60A?"60N和/或流量58相关联的传送/接收带宽要求。当然,前述仅仅是示例性的,可以对其进行多种增加、修改和/或变化而不偏离本实施例。在本实施例中,至少部分在一个或多个部分60A…60N和/或网络流量58经由一个或多个链路50的传送开始之前和/或与其同时,由电路119、电路118和/或一个或多个驱动程序33可以至少部分地判定一个或多个参数150。
[0026]至少部分基于一个或多个各自参数150,电路119、电路118和/或一个或多个驱动程序33可以至少部分地分配缓冲存储器122的一个或多个各自部分124A…124N以存储一个或多个各自部分60A…60N。例如,至少部分基于这些一个或多个各自参数150,电路119、电路118和/或一个或多个驱动程序33可以判定:所述一个或多个各自部分60A?"60N的一个或多个各自期望存储带宽154。至少部分基于这些一个或多个期望的各自带宽154,电路119、电路118和/或一个或多个驱动程序33可以至少部分地判定缓冲存储器122的一个或多个各自量125A…125N,其最小足以满足这些一个或多个各自带宽154和/或存储网络流量58的一个或多个部分60A…60N。在本实施例中,在一个或多个没有示出的队列中,可以计算缓冲存储器的最小充足量,以便不超过满足这些一个或多个带宽154和/或存储这些一个或多个部分60A-.60N所需的最小量,而不经受由于缓冲不足而引起的有意义的队列/缓冲区溢出和/或分组丢弃。电路119、电路118和/或一个或多个驱动程序33可以至少部分地以如下方式分配缓冲存储器122的一个或多个各自部分124A、124B、1240"124N (见图3):保证缓冲存储器122的这些一个或多个分配的部分对应于缓冲存储器122的这些一个或多个各自所需最小量125A…125N。
[0027]例如,如图3所示,电路119可以包括控制器302、一个或多个控制寄存器304、和/或缓冲存储器电源选通控制电路306。一个或多个驱动程序33的执行可以至少部分地导致一个或多个寄存器304以一个或多个值被编程,所述一个或多个值可以至少部分地反映、指定和/或指示缓冲存储器122的这些一个或多个各自所需最小量125A…125N。至少部分基于所述一个或多个被编程进入一个或多个寄存器306的值,控制器302可以至少部分地分配缓冲存储器122的一个或多个各自部分124A、124B、1240"124N,其对应于缓冲存储器122的这些一个或多个各自所需最小量125A…125N。
[0028]例如,如图3所示,缓冲存储器122可以被分割成多个部分124A、124B、124C、124D、124E…124N。这些部分124A、124B、124C、124D、124E…124N中的每个可以包括一个或多个各自相等大小的存储器单元块310A、310B、310C、310D、310E…310N。例如,各自部分124A、124B、124C、124D、124E…124N 中的每个和 / 或各自单元块 310A、310B、310C、310D、310E…3ION中的每个可以有相同的各自存储器容量。在这个示例中,至少部分基于一个或多个值156、特性152和/或参数150,网络流量58的一个或多个部分60A可以与一个或多个相对更高的带宽、速度和/或优先 级通信和/或链路相关联。同样在这个示例中,至少部分基于一个或多个值156、特性152和/或参数150,网络流量58的一个或多个部分60N可以与一个或多个相对更低的带宽、速度和/或优先级通信和/或链路相关联(例如,相对于一个或多个部分60A可以关联的一个或多个相对更高的带宽、速度和/或优先级通信和/或链路)。响应于和/或至少部分基于存储在一个或多个寄存器304中的一个或多个值,控制器302可以分配部分124A…124N的各自集合,其可以反映、对应于和/或带入在与各自部分60A和60N相关联的各自带宽、速度和/或优先级的通信和/或链路中的各自相对区别。例如,取决于在各自带宽、速度和/或优先级中的这些各自相对区别,控制器302可以分配缓冲存储器122的四个或更多各自部分(例如,部分124A、124B、124C和124D)以(例如至少临时和/或至少部分)存储一个或多个部分60A,但控制器302可以分配缓冲存储器122的一个或多个各自部分(例如,一个或多个部分124E)以(例如,至少临时和/或至少部分)存储一个或多个部分60N。在这个示例中,对于存储流量58的任何部分,一个或多个部分(例如,一个或多个部分124N)可能不是必需的,因此,控制器302可能不分配流量58的任何部分以存储在这些一个或多个部分124N中。控制器302可以通过在例如一个或多个寄存器304中存储适当的值来追踪这些分配(例如,经由合适的缓冲存储器地址指针,等)。电路118、NIC CC120、一个或多个驱动程序33、HP12、CS15、和/或其他部件可以使用这些值,以访问缓冲存储器122的所述分配的部分,来存储和/或取回网络流量58的一个或多个部分60A …60N。
[0029]至少部分基于存储在一个或多个寄存器304中的一个或多个值,控制器302可以向电源选通控制电路306提供控制信号,其可以导致电路306允许启动待供应给被分配以存储流量58的部分60A、60N的缓冲存储器122的部分124A、124B、124C、124D和124E的电源。这些控制信号还可以导致电路306不允许启动待供应给不被分配以存储流量58的任何部分的缓冲存储器122的任何部分(例如,一个或多个部分124N)的电源。这可以允许被分配以存储流量58的部分60A、60N的缓冲存储器122的部分124A、124B、124C、124D和124E被选择性地通电(例如,至少部分基于存储在一个或多个寄存器304中的一个或多个值),以允许缓冲存储器122的这些部分124A、124B、124C、124D和124E至少部分地被用以存储流量58的部分60A、60N。这也可以允许不需要存储流量58的任何部分的缓冲存储器122的任何部分124N被选择性地断电(例如,同样至少部分基于存储在一个或多个寄存器304的一个或多个值)。
[0030]一个或多个驱动程序33、电路119和/或电路118也可以至少部分地判定:是否一个或多个资源160将被结合处理流量58的一个或多个部分60A?"60N和/或流量58而使用。例如,如果流量58不是加密的,那么处理流量58可能不需要一个或多个资源160。因此,在这种情况下,执行一个或多个驱动程序33可能至少部分地导致一个或多个寄存器304被以反映这个判定的一个或多个值编程。至少部分基于这些一个或多个值,控制器302可以将控制信号提供给电路306,其可以至少部分地造成电路306不允许启动待供应给一个或多个资源160的电源。这可能造成一个或多个资源160被选择性地断电。
[0031]相反地,如果一个或多个驱动程序33、电路119和/或电路118判定一个或多个资源160被结合处理流量58使用,那么存储在一个或多个寄存器304中的一个或多个值可以造成控制器302提供控制信号给电路306,其可以至少部分地造成电路306允许启动待供应给一个或多个资源160的电源。这可能造成一个或多个资源160被选择性地通电。
[0032]在控制器302初始分配部分124A…124N之后,在流量58的一个或多个部分(例如,一个或多个部分60N)中可能发生一个或多个变化,其可以至少部分暗指:先前判定出的需要用于存储流量58的一个或多个部分60A?"60N的缓冲存储器122的一个或多个各自所需最小量125A…125N。其结果是,为了反映这个,一个或多个参数150可以改变,并且因此,存储在一个或多个寄存器304的一个或多个值可以对应地改变。这可以造成控制器302至少部分地改变它的先前对缓冲存储器122的部分124A…124N的分配,以至少部分地容纳网络流量58的一个或多个部分60N中的一个或多个改变。例如,与流量58的一个或多个部分60N相关联的各自期望存储带宽154可以增加,以便暗指用于存储流量58的一个或多个部分60N的缓冲存储器122的一个或多个额外部分(例如,一个或多个部分124N)。因此,控制器302可以分配缓冲存储器122的两个或更多个各自部分124E和124N,以存储一个或多个部分60N,并可以向电路306提供控制信号,其可以至少部分地造成电路306允许部分124E和124N选择性地通电。这可以允许网络流量58的一个或多个部分60N被存储在缓冲存储器122的部分124E和124N中。如果网络流量发生一个或多个改变,其暗指存储改变的网络流量所需的缓冲存储器122的最小量减少,那么相似的技术可以被用于对缓冲存储器122的一个或多个部分断电。如果和/或当自动协商再次发生(例如,至少部分作为由于例如改变的网络条件和/或用户要求而被重触发的结果),一个或多个参数150可以至少部分地改变。
[0033]因此,实施例可以包括电路,该电路可以至少部分地判定至少部分地用来存储网络流量的一个或多个各自部分的缓冲存储器的一个或多个各自量。至少部分基于与网络流量的一个或多个各自部分至少部分关联的一个或多个各自参数,电路可以至少部分地判定所述一个或多个各自量。所述一个或多个各自量可能足够存储网络流量的一个或多个各自部分的一个或多个期望存储带宽。所述一个或多个各自参数可以至少部分地反映网络流量的一个或多个各自部分的一个或多个实际特性。所述电路可以至少部分地允许缓冲存储器的至少部分地对应于所述一个或多个各自量的一个或多个各自部分被选择性地通电,以允许缓冲存储器的一个或多个各自部分被至少部分地用于存储网络流量的一个或多个各自部分。
[0034]有利的是,在本实施例中,用于存储网络流量58的各自部分的缓冲存储器122的各自量和/或部分可以基于和/或按照网络流量的各自部分的实际参数/特性进行分配,而不是让它们遵从预先确定的可能被期望常用于在较差情况通信场景下的最大缓冲要求。有利的是,在本实施例中,这可以消除(或实质上消除)这样的缓冲存储器的分配过量和/或不足,并且因此,可以允许对存储网络流量所不需要的任何缓冲存储器断电,而不降级性能和/或造成缓冲区/队列溢出。在本实施例中,这可以使缓冲存储器使用和/或分配更高效,并且还可以降低能量消耗。
[0035]可以进行许多其他和/或额外的修改、变化和/或替代,而不偏离本实施例。例如,电路119和/或缓冲存储器122可以至少部分地在包含于NIC CC120的每个I/O端口(未示出)中被复制,和/或基于网络链路对网络链路的方式使用。同样,例如,尽管自动协商技术在本文被描述为用于收集和/或获得一个或多个值156,但是不是本文描述的那些的其他技术可以被用来获得一个或多个值156、一个或多个参数150、一个或多个存储带宽154、和/或一个或多个特性152。此外,为了节约用电,在主机10复位之后和在自动协商交换75开始之前,缓冲存储器122的部分124A…124N可以在断电状态初始化。此外,缓冲存储器122的部分124A…124N的数量和大小可以变化(例如,取决于主机10和/或20之间或者之中的期望通信参数),而不偏离本实施例。同样,在本实施例中,取决于链路的传送缓冲区及其接收缓冲区的各自带宽要求,那些缓冲可以共享缓冲存储器122的一个或多个各自部分,和/或其先前分配给缓冲存储器122的一个或多个各自部分可以改变,其目的是合并和/或最小化分配和通电的缓冲存储器122的总量。
`[0036]此外或者作为替代,电路118可以至少部分地采用和/或实现共享技术的一个或多个端口,而不偏离本实施例。例如,两个或更多个端口的一个或多个发送和/或接收缓冲区和/或队列可以至少部分地共享缓冲存储器122的一个或多个部分,其可以被至少部分地映射和/或池化(pool)到这些端口、在这些端口中和/或之间。这样通常映射的、分配的和/或池化的缓冲存储器122的部分,可以至少部分地基于各自至少部分与这些端口关联的实际和/或期望通信参数(例如按照本实施例)进行分配。基于和/或按照本实施例的前述教导,缓冲存储器122的这些分配的部分可以被选择性地通电,和/或缓冲存储器122的一个或多个非分配的部分可以被选择性地断电。
[0037]许多其他修改是可能的。因此本实施例应该被宽泛地理解为包括所有这样的替代、修改和改变。
【权利要求】
1.一种装置,包括: 用于至少部分地判定至少部分地用于存储网络流量的一个或多个各自部分的缓冲存储器的一个或多个各自量的电路,所述电路至少部分地基于与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自参数,来至少部分地判定所述一个或多个各自量,所述一个或多个各自量足以存储所述网络流量的所述一个或多个各自部分的一个或多个期望存储带宽,所述一个或多个各自参数至少部分地反映所述网络流量的所述一个或多个各自部分的一个或多个实际特性;并且 所述电路用于至少部分地允许所述缓冲存储器的至少部分地对应于所述一个或多个各自量的一个或多个各自部分被选择性地通电,以允许所述缓冲存储器的所述一个或多个各自部分被至少部分地用于存储所述网络流量的所述一个或多个各自部分。
2.根据权利要求1所述的装置,其中: 所述一个或多个各自参数包括至少一个下面的参数:所述网络流量的所述一个或多个各自部分的一个或多个各自实际传送速率,与所述网络流量的所述一个或多个各自部分的传送至少部分地相关联的一个或多个各自链路类型,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自协议,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自带宽预留,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自服务质量要求,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自用户偏好,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个优先级,与所述网络流量的所述一个或多个部分至少部分地相关联的一个或多个网络层协议带宽要求,以及与用来传送所述网络流量的所述一个或多个各自部分的一个或多个各自链路至少部分地相关联的一个或多个各自链路协商参数。
3.根据权利要求1所述的装置,其中: 至少部分地归因于用于促进涉及多个主机的通信的自动协商,而至少部分地判定所述一个或多个实际特性,所述多个主机中的一个包括所述电路。
4.根据权利要求1所述的装置,其中: 所述电路至少部分地判定一个或多个各自资源是否至少部分地结合所述网络流量的所述一个或多个各自部分而被使用,所述一个或多个各自资源不同于所述缓冲存储器的所述一个或多个各自部分;以及 如果所述电路至少部分地判定所述一个或多个各自资源并不至少部分地结合所述网络流量的所述一个或多个各自部分而被使用,那么所述电路允许所述一个或多个各自资源被选择性地断电。
5.根据权利要求1所述的装置,其中: 所述缓冲存储器的所述一个或多个各自部分包括所述缓冲存储器的多个各自部分; 所述网络流量的所述一个或多个各自部分包括所述网络流量的多个各自部分; 所述缓冲存储器的所述多个各自部分至少部分地存储所述网络流量的所述多个各自部分; 电路卡至少部分地包括所述缓冲存储器和所述电路; 主机包括能够耦合到所述电路卡的电路板;以及在所述主机中执行至少一个驱动程序,所述驱动程序至少部分地控制所述电路的操作。
6.根据权利要求1所述的装置,其中: 所述电路至少部分地分配所述缓冲存储器的所述一个或多个各自部分;以及 至少部分地响应于所述网络流量的所述一个或多个各自部分中至少部分地暗指所述一个或多个各自量的的至少一个改变,所述电路至少部分地改变所述缓冲存储器的所述一个或多个各自部分的分配,以至少部分地容纳所述至少一个改变。
7.一种方法,包括: 通过电路至少部分地判定至少部分地用于存储网络流量的一个或多个各自部分的缓冲存储器的一个或多个各自量,至少部分地判定所述一个或多个各自量是至少部分地基于与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自参数,所述一个或多个各自量足以存储所述网络流量的所述一个或多个各自部分的一个或多个期望存储带宽,所述一个或多个各自参数至少部分地反映所述网络流量的所述一个或多个各自部分的一个或多个实际特性;并且 通过所述电路至少部分地允许所述缓冲存储器的至少部分地对应于所述一个或多个各自量的一个或多个各自部分被选择性地通电,以允许所述缓冲存储器的所述一个或多个各自部分被至少部分地用于存储所述网络流量的所述一个或多个各自部分。
8.根据权利要求7所述的方法,其中: 所述一个或多个各自参数包括至少一个下面的参数:所述网络流量的所述一个或多个各自部分的一个或多个各自实际传送速率,与所述网络流量的所述一个或多个各自部分的传送至少部分地相关联的一个或多个各自链路类型,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多`个各自协议,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自带宽预留,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自服务质量要求,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自用户偏好,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个优先级,与所述网络流量的所述一个或多个部分至少部分地相关联的一个或多个网络层协议带宽要求,以及与用来传送所述网络流量的所述一个或多个各自部分的一个或多个各自链路至少部分地相关联的一个或多个各自链路协商参数。
9.根据权利要求7所述的方法,其中: 至少部分地归因于用于促进涉及多个主机的通信的自动协商,而至少部分地判定所述一个或多个实际特性,所述多个主机中的一个包括所述电路。
10.根据权利要求7所述的方法,其中: 所述电路至少部分地判定一个或多个各自资源是否至少部分地结合所述网络流量的所述一个或多个各自部分而被使用,所述一个或多个各自资源不同于所述缓冲存储器的所述一个或多个各自部分;以及 如果所述电路至少部分地判定所述一个或多个各自资源并不至少部分地结合所述网络流量的所述一个或多个各自部分而被使用,那么所述电路允许所述一个或多个各自资源被选择性地断电。
11.根据权利要求7所述的方法,其中: 所述缓冲存储器的所述一个或多个各自部分包括所述缓冲存储器的多个各自部分; 所述网络流量的所述一个或多个各自部分包括所述网络流量的多个各自部分; 所述缓冲存储器的所述多个各自部分至少部分地存储所述网络流量的所述多个各自部分; 电路卡至少部分地包括所述缓冲存储器和所述电路; 主机包括能够耦合到所述电路卡的电路板;以及 在所述主机中执行至少一个驱动程序,所述驱动程序至少部分地控制所述电路的操作。
12.根据权利要求7所述的方法,其中: 所述电路至少部分地分配所述缓冲存储器的所述一个或多个各自部分;以及 至少部分地响应于所述网络流量的所述一个或多个各自部分中至少部分地暗指所述一个或多个各自量的至少一 个改变,所述电路至少部分地改变所述缓冲存储器的所述一个或多个各自部分的分配,以至少部分地容纳所述至少一个改变。
13.一种存储一个或多个指令的计算机可读存储器,当所述指令被机器执行时导致以下操作,包括: 通过电路至少部分地判定至少部分地用于存储网络流量的一个或多个各自部分的缓冲存储器的一个或多个各自量,至少部分地判定所述一个或多个各自量是至少部分地基于与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自参数,所述一个或多个各自量足以存储所述网络流量的所述一个或多个各自部分的一个或多个期望存储带宽,所述一个或多个各自参数至少部分地反映所述网络流量的所述一个或多个各自部分的一个或多个实际特性;并且 通过所述电路至少部分地允许所述缓冲存储器的至少部分地对应于所述一个或多个各自量的一个或多个各自部分被选择性地通电,以允许所述缓冲存储器的所述一个或多个各自部分被至少部分地用于存储所述网络流量的所述一个或多个各自部分。
14.根据权利要求13所述的计算机可读存储器,其中: 所述一个或多个各自参数包括至少一个下面的参数:所述网络流量的所述一个或多个各自部分的一个或多个各自实际传送速率,与所述网络流量的所述一个或多个各自部分的传送至少部分地相关联的一个或多个各自链路类型,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自协议,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自带宽预留,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自服务质量要求,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个各自用户偏好,与所述网络流量的所述一个或多个各自部分至少部分地相关联的一个或多个优先级,与所述网络流量的所述一个或多个部分至少部分地相关联的一个或多个网络层协议带宽要求,以及用来传送所述网络流量的所述一个或多个各自部分的与一个或多个各自链路至少部分地相关联的一个或多个各自链路协商参数。
15.根据权利要求7所述的计算机可读存储器,其中: 至少部分地归因于用于促进涉及多个主机的通信的自动协商,而至少部分地判定所述一个或多个实际特性,所述多个主机中的一个包括所述电路。
16.根据权利要求7所述的计算机可读存储器,其中: 所述电路至少部分地判定一个或多个各自资源是否至少部分地结合所述网络流量的所述一个或多个各自部分而被使用,所述一个或多个各自资源不同于所述缓冲存储器的所述一个或多个各自部分;以及 如果所述电路至少部分地判定所述一个或多个各自资源并不至少部分地结合所述网络流量的所述一个或多个各自部分而被使用,那么所述电路允许对所述一个或多个各自资源被选择性地断电。
17.根据权利要求13所述的计算机可读存储器,其中: 所述缓冲存储器的所述一个或多个各自部分包括所述缓冲存储器的多个各自部分; 所述网络流量的所述一个或多个各自部分包括所述网络流量的多个各自部分; 所述缓冲存储器的所述多个各自部分至少部分地存储所述网络流量的所述多个各自部分; 电路卡至少部分地包括所述缓冲存储器和所述电路; 主机包括能够耦合到所述电路卡的电路板;以及 在所述主机中执行至少一个驱动程序,所述驱动程序至少部分地控制所述电路的操 作。
18.根据权利要求13所述的计算机可读存储器,其中: 所述电路至少部分地分配所述缓冲存储器的所述一个或多个各自部分;以及至少部分地响应于所述网络流量的所述一个或多个各自部分中至少部分地暗指所述一个或多个各自量的至少一个改变,所述电路至少部分地改变所述缓冲存储器的所述一个或多个各自部分的分配,以至少部分地容纳所述至少一个改变。
19.根据权利要求1所述的装置,其中: 所述电路至少部分地实现所述缓冲存储器的所述一个或多个各自部分的端口共享。
【文档编号】G06F12/00GK103765398SQ201180073048
【公开日】2014年4月30日 申请日期:2011年8月25日 优先权日:2011年8月25日
【发明者】Y·H·周 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1