用于在多处理器核心系统中执行节能的网络数据包处理的方法和装置的制造方法

文档序号:9686999阅读:318来源:国知局
用于在多处理器核心系统中执行节能的网络数据包处理的方法和装置的制造方法
【专利说明】用于在多处理器核心系统中执行节能的网络数据包处理的方 法和装置
[0001] 本申请是2010年6月25日提交的,申请号为201080028104.3的同名专利申请的分 案申请。
技术领域
[0002] 本公开设及并且具体设及多处理器核屯、系统中的节能,并且具体设及节能的网络 数据包处理。
【背景技术】
[0003] -般,具有多个处理器核屯、的计算机系统通过在所有的处理器核屯、之间分配工作 负荷来处理高工作负荷。然而,随着工作负荷减少,多个处理器核屯、中的每一个可能没有被 充分利用。
[0004] 为了减小低工作负荷时多个处理器核屯、的功耗,操作系统可W基于系统使用水平 来调整使用的处理器核屯、的数量。未被使用的处理器核屯、被置于低功率空闲状态Γ搁置 的")并且可W保持该低功率空闲状态较长的连续时间间隔。操作系统继续在没有处于低功 率空闲状态的处理器核屯、之间分配工作负荷。
【附图说明】
[0005] 随着下面详细描述的进行,并且在参照附图后,所要求主题的实施例的特征将变 得显而易见,在附图中相同的数字描述相同的部件,并且在附图中:
[0006] 图1是包括支持接收侧调节的网络接口控制器的实施例的系统的框图;
[0007] 图2是示出了图1中所示的网络接口控制器和存储器的实施例的框图;
[000引图3是根据本发明的原理动态地调整核屯、相关性(affinity)设置的方法的实施例 的流程图;W及
[0009] 图4是示出了图1中所示的网络接口控制器和存储器的另一实施例的框图。
[0010] 虽然参考所要求主题的示例性实施例进行下面的详细描述,但是对本领域技术人 员来说,其的多种替换、修改W及变型将是显而易见的。因此,所要求主题旨在被视为是广 泛的,并且仅如所附权利要求阐述的那样进行限定。
【具体实施方式】
[0011] 计算机系统可W包括网络接口控制器(适配器、卡),该网络接口控制器接收来自 网络的网络数据包并且将用于处理的所接收的网络数据包转发至多个处理器核屯、中的一 个。在处理器核屯、之间分配的工作负荷可W包括对由网络接口控制器接收的网络数据包的 处理。
[0012] 例如,在计算机系统中,对网络数据包的处理可W在处理器核屯、之间分配,使得对 相同通信流(例如,具有相同源地址和目的地址的网络数据包)的处理由相同的处理器核屯、 执行。当工作负荷低时,操作系统可w仅使用多个处理器核屯、的一个子集,并且将其它的处 理器核屯、置于低功率空闲状态。然而,如果特定通信流的所接收的要被处理的网络数据包 被指派给了处于低功率空闲状态的处理器核屯、(该通信流的核屯、相关性设置),则该处理器 核屯、从低功率空闲状态唤醒。结果,处于低功率空闲状态的处理器核屯、不具有保持低功率 空闲状态较长时间的机会。
[0013]本发明实施例基于操作系统是否将任意的处理器核屯、置于低功率空闲状态来动 态地调整网络数据包处理的核屯、相关设置。
[0014] 将对于具有支持由Microsoft⑩的Windows⑧操作系统(0S)使用的接收侧调节 (RSS)的网络接口控制器的计算机系统描述本发明实施例。然而,本发明不限于RSS。在其它 实施例中,网络适配器可W支持由包括具有功率节省模式特征的调度器的Linux操作系统 或者包括功率节省模式的任意其它操作系统使用的可调节输入/输出(I/O)。
[0015]图1是包括支持接收侧调节的网络接口控制器108的实施例的系统100的框图。系 统100包括处理器101、存储控制器中屯、(MCHH02和输入/输出(I/O)控制器中屯、(ICH)104。 MCH102包括控制处理器101和存储器110之间的通信的存储控制器106。处理器101和MCH 102通过系统总线116进行通信。
[0016] 处理器101可W是多核屯、处理器,诸如拉把.1⑥.PentiumD、.虹tel?Xeo.ll⑩处理 器、或者Intel⑩Core⑥双核处理器、Intel?Core?i7处理器或者任意其它类型的处理 器。在所示出的实施例中,系统包括两个多核屯、处理器101,每个均具有至少两个处理器核 屯、Γ核屯、")122。在一个实施例中,每个多核屯、处理器包括四个核屯、122。
[0017] 存储器110可W是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步 动态随机存取存储器(SDRAM)、双数据速率2(DDR2)RAM或Rambus动态随机存取存储器 (RDRAM),或者任意其它类型的存储器。
[0018]ICH104可W使用诸如直接媒体接口(DMI)的高速忍片到忍片互联114来禪合至 MCH102"DMI经由两个单向通道支持2千兆比特/秒的并发传输速率。
[0019]ICH104可W包括存储输入/输出(I/O)控制器,用于控制与禪合至该ICH104的至 少一个存储设备112的通信。例如,该存储设备可W是盘驱动器、数字视频盘(DVD巧g动器、 光盘(CD巧g动器、独立冗余磁盘阵列(RAID)、带驱动器或者其它存储设备。ICH104可W使 用诸如串行连接小型计算机系统接口(SAS)或者串行高级技术附件(SATA)等的串行存储协 议来通过存储协议互联118与存储设备112进行通信。
[0020] 在另一实施例中,网络接口控制器108可W包括在没有包括存储I/O控制器120的 ICH104中,或者可W包括在插入系统100的系统卡槽中的分离的网络接口卡上。
[0021] 图2是示出了图1中所示的网络接口控制器108和存储器110的实施例的框图。网络 接口控制器108包括散列功能单元220、间接表230和多个硬件接收队列202。存储器110包括 操作系统内核280、滤波器驱动器210和网络设备驱动器(微端口驱动器)270。在一个实施例 中,散列功能单元220和间接表230包括在网络接口控制器("NIC')108中。在另一实施例中, 运些部件中的一些或者运些部件中的一些元件可W位于网络接口控制器108的外部。
[0022] 在所示出的实施例中,微端口驱动器2 7 0和滤波器驱动器2 1 0是 Μicors她敏賴ndows⑩操作系统模型(WDM)的部件。WDM包括可W是类驱动器(C1aSS driver)或者微端口驱动器的设备功能驱动器。微端口驱动器支持特定类型的设备,例如, 特定的网络接口控制器108。滤波器驱动器210是可选的驱动器,其将值添加至或者修改功 能驱动器(微端口驱动器)270的行为。
[0023] 网络驱动器接口规范(NDIS)是经由网络接口控制器110的应用程序接口(API)访 问的函数库。NDIS用作7层开放式系统互联(0SI)中的第二层(链路层)和第Ξ层(网络层)之 间的接口。库函数包括对象标识符(0ID)。
[0024] 网络接口控制器108可W使用散列功能单元220中的散列函数,来通过所接收的网 络数据包中的散列类型(例如,头部中的一个或多个字段)计算散列值。散列值的多个最低 有效位可W用来对间接表230中的项进行索引,其中该间接表230中的项识别用于进行所接 收数据包的处理的处理器核屯、122(图1)并且识别用于存储所接收的数据包的多个接收队 列202中的一个。网络接口控制器108可W中断所识别的处理器核屯、122。
[0025] 在实施例中,当每个网络数据包由网络接口控制器108接收时,与该网络数据包相 关联的"流"被确定。可W基于包括在数据包中的TCP头部和网际协议(IP)头部中的字段的 值,来确定传输控制协议(TCP)数据包的"流"。例如,该"流"的流标识符可W依赖于包括在 所接收网络数据包中的IP头部中的IP源地址和IP目的地址W及TCP头部中的源端口地址和 目的端口地址的组合。
[0026] 提供多个硬件接收队列202W存储所接收的网络数据包。为了确保特定流的按次 序的数据包传送,每个硬件接收队列202可W被指派给不同的流W及指派给多个处理器核 屯、122中的一个。因此,多个硬件接收队列202中的每个经由间接表230而与多个核屯、处理器 122中的一个相关联。
[0027] 在所示出的实施例中,网络接口控制器108具有8个接收队列202。然而,接收队列 202的数量不限于8个。在其它的实施例中,存在更多或者更少的接收队列202。所接收的网 络数据包被存储在多个接收队列202中的一个中。每个接收队列的数据包处理可W与特定 的处理器核屯、122相关。在本发明的实施例中,基于处于功率节省空闲状态Γ搁置的")的处 理器核屯、122的数量来动态地调整数据包处理的核屯、相关性设置。
[0028] 下面的表1示出了间接表230的示例,W及在具有8个核屯、和8个接收队列的系统 中,对接收队列202到处理器核屯、122的初始指派,W在所有的处理器核屯、122中分配接收数 据包处理。
[0029]
[0030] 表 1
[0031] 图3是根据本发明原理动态地调整核屯、相关性设置的实施例的流程图。
[0032] 基于由操作系统(0S)内核处理的0S核屯、搁置状态,来动态地修改接收队列202向 核屯、处理器122的分配。例如,当工作负荷低时,0S内核可W通过将核屯、处理器122的一部分 置于低功率空闲状态来"搁置"核屯、处理器122的该部分。例如,在具有8个核屯、处理器的实 施例中,8个核屯、处理器中的6个可W是"搁置脚',而核屯、处理器的其它部分(例如,8个中的 2个)可W被使用。因此,来自网络接口控制器的中断仅被发送至未被搁置的核屯、,而被搁置 的核屯、仍然处于低功率空闲状态,从而带来能量消耗的减少。
[0033]例如,在实施例中,如果在工作负荷低时,Windows? 7服务器核屯、搁置特征选 择使用Ξ个核屯、并搁置剩余的核屯、,则网络接口控制器被修改为在所选择的Ξ个核屯、上运 行网络中断和数据包处理。运使得搁置核屯、的低功率空闲状态时段的增加。
[0034]在一个实施例中,10千兆比特网络接口控制器具有多个接收侧调节接收(RSSRx) 队列,每个均与特定的核屯、相关。网络接口控制器经由滤波器驱动器210得到OS核屯、搁置设 置的配置,并且基于该0S核屯、搁置配置来修改RSS间接表230。
[0035] 在框300处,滤波器驱动器210从0S内核280周期性地请求0S搁置状态。例如,在实 施例中,滤
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1