使用活跃 / 空闲切换的高能效以太网 【发明领域】
本公开涉及以太网通信, 并且, 更具体而言, 涉及使用活跃 / 空闲切换的高能效以太网。 发明背景
当前的以太网解决方案要么是保持在给定速度下运行, 例如 1000BASE-T, 而不考 虑带宽利用, 因此消耗了超过所需的功率, 要么是它们要求软件驱动程序放弃链路并自动 协商一个新的更低的速度以节约功率, 然而在该过程中链接丢失几秒钟, 使得这一选择对 于许多应用而言是不合适的。 IEEE 802.3 工作组最近已经成立了正式命名为 802.3az 的高 能效以太网 (EEE) 任务组, 以通过解决当前解决方案的上述问题来定义用于减少以太网的 平均功耗的解决方案。目前为止, 针对 EEE 的 IEEE 任务组已有两个提案, 两者都推荐速率 变换来跟踪带宽利用需求。EEE 任务组所提议的速率变换是其中以太网通信速度可以根据 带宽需求而上移或者下移的一种技术。 例如, 在低需求时段期间, 速度可以从快通信速度下 移到较慢通信速度 ( 例如, 1000BASE-T 到 100BASE-TX)。随着需求的增加, 速度可以上移。
附图简述
随着下面详细描述的进行且基于参考附图, 要求保护的主题的实施例的特征和优 点将会变得显而易见, 附图中相似的数字表示相同的部分, 且其中 :
图 1 描绘与本公开的一个示例性实施例一致的功率 - 时间图 ;
图 2 阐明与本公开一致的系统实施例 ;
图 3 描绘与本公开一致的示例性数据发送操作的流程图 ;
图 4 描绘与本公开一致的示例性数据接收操作的流程图 ;
图 5A 描绘根据速率变换以太网通信技术的功率分布图 ; 以及
图 5B 描绘与本公开一致的功率分布图。
虽然以下详细描述将参照说明性实施例而继续, 其许多选择、 更改、 或者改变对于 本领域技术人员而言将是显而易见的。 因此, 意图是要求保护的主题被广义的看待, 且仅如 所附权利要求中阐述的那样来定义。
详细描述
一般而言, 本公开描述了一种高能效以太网通信方法。在这里描述的至少一个实 施例中, 以太网控制器可以配置为在活跃功率状态运行以在最大可达链路速度上发送或接 收数据分组 ( 当可用时 )。该最大可达链路速度 ( 例如, 1000BASE-T(GbE)、 10GBASE-T 等 ) 可以通过以太网控制器和耦合到以太网控制器的链路伙伴之间的协商来决定。一旦发送 或接收了数据分组, 以太网控制器可以配置为在空闲功率状态运行以减少能耗。此处使用 的 “空闲功率状态” 可以定义为足以与链路伙伴维持打开的链路但不足以发送或接收数据 的功率状态。换言之, 此处使用的 “空闲功率状态” 是当在以太网控制器和链路伙伴之间维 持以太网通信链路时低于发送至少一个数据分组的功耗状态的临界功耗状态。 此处使用的 “活跃功率状态” 可以包括定义为在最大可达链路速度上发送数据的功率状态的 “活跃数据 发送功率状态” 、 和定义为在最大可达链路速度上接收数据的功率状态的 “活跃数据接收功
率状态” 。
图 1 描绘与本公开的一个示例性实施例一致的功率 - 时间图 100。在这一实施例 中, 数据分组 102a、 102b、 102c 可以在最大活跃功率状态 104( 例如, 最大可达链路速度 ) 以 突发 (burst) 方式发送或接收。当数据分组可用于发送或接收时, 以太网控制器 ( 该图中 未示出 ) 可以在空闲状态 108 和活跃状态 104 之间切换功率。在本示例中, 活跃功率状态 104 是与最大可达数据发送或接收速度相关联的功率状态。空闲功率状态 108 是足以与链 路伙伴维持打开的链路但不足以发送或接收数据的功率状态。在该示例中, 空闲功率状态 108 代表比关闭状态 106 稍大但比活跃功率状态 104 低很多的功耗。
在从空闲功率状态 108 到活跃功率状态 104 的转换期间, 可能存在第一延迟时段 110。同样的, 在从活跃功率状态 104 到空闲功率状态 108 的转换期间, 可能存在第二延迟 时段 112。分组突发之间 ( 例如, 在突发 102a 和 102b 之间 ) 的空闲区间 114 可以基于带宽 考虑和 / 或数据缓冲器中可用的数据量。
图 2 阐明和本公开一致的系统实施例 200。系统 200 包括主机系统 202 和以太网 控制器 220。主机系统 202 可以包括主处理器 204、 芯片组电路 206 和系统存储器 208。主 处理器 204 可以包括一个或多个处理器核且可以配置为运行系统软件 210。系统软件 210 可以包括例如操作系统代码 212( 例如, OS 核心代码 ) 和局域网 (LAN) 驱动程序代码 214。 LAN 驱动程序代码 214 可以配置为至少部分地控制以太网控制器 220 操作的运行, 这将在 以下更详细地描述。系统存储器 208 可以包括配置为存储以太网控制器 220 将要发送或者 接收的一个或多个数据分组的 I/O 存储缓冲器 216。芯片组电路 206 通常可以包括 “北桥” 电路 ( 未示出 ) 来控制处理器 204、 以太网控制器 220 和系统存储器 208 之间的通信。此 外, 芯片组电路 206 可以包括 “南桥” 电路 ( 未示出 ) 来控制主机系统 202 和以太网控制器 220 之间的 I/O 通信。 “南桥” 电路可以包括遵守或者兼容于 PCI-Express 通信协议的 I/O 总线电路来提供芯片组电路 206 和以太网控制器 220 之间的通信。
以太网控制器 220 可以在逻辑上和 / 或物理上划分为发送通道 221A 和接收通道 221B。以太网控制器通常可以包括以太网媒体接入控制 (MAC) 电路 222 和物理接口 (PHY) 电路 224。MAC 电路 222 可以包括发送 MAC 电路 222A, 其配置为将要发送的数据组装为包 括目的和源地址以及网络控制信息和差错检测散列值的帧或分组。MAC 电路 222 还可以包 括接收 MAC 电路 222B, 其配置为从接收到的帧中取出数据并将该数据放入系统存储器 208。 PHY 电路 224 可以包括配置为将数据分组编码的编码电路 240A 和配置为将数据分组解码的 解码电路 240B。编码电路 240A 和解码电路 240B 可以共同实施为一个处理器 ( 例如, 数字 信号处理器 ), 其配置为执行模数和数模转换、 数据的编码和解码、 模拟寄生消除 ( 例如, 串 音消除 )、 以及接收到的数据的恢复。PHY 电路 224 也可包括配置为发送一个或多个数据分 组的发送 (Tx) 电路 226 和配置为接收一个或多个数据分组的接收 (Rx) 电路 228。Rx 电路 228 可以包括配置为协调数据接收的时序的锁相环电路 (PLL, 未示出 )。PHY 电路 224 可以 耦合到以太网通信链路 230。 以太网通信链路 230 可以包括例如媒体相关接口, 媒体相关接 口可以包括例如 6 类 (Cat6) 以太网光缆。
发送 MAC 电路 222A 可以包括可控时钟输入 242 和可控功率输入 244。时钟输入 242 通常可包括控制 MAC 电路 222A 的时钟的时钟信号。功率输入 244 通常可以包括向 MAC 电路 222A 的一个或多个部件供电的供电信号。类似地, 接收 MAC 电路 222B 可以包括可控时钟输入 246 和可控功率输入 248。时钟输入 246 通常可包括控制 MAC 电路 222B 的时钟的 时钟信号。功率输入 248 通常可以包括向 MAC 电路 222B 的一个或多个组件供电的供电信 号。编码电路 240A 可以包括可控时钟输入 254 和可控功率输入 256, 且解码电路 240B 可以 包括可控时钟输入 258 和可控功率输入 260。发送电路 226 可以包括可控时钟输入 262 和 可控功率输入 264。 在一个实施例中, 发送通道 221A 和接收通道 221B 的时钟可以被独立地 控制。并且, 在一个实施例中, 发送通道 221A 和接收通道 221B 的功率可以被独立地控制。
以太网控制器 220 可以配置为经由通信链路 230 与链路伙伴 232 交换命令和数 据。这里使用的 “链路伙伴” 表示配置为使用以太网通信协议与以太网控制器 220 通信的 任意设备。在至少一个实施例中, 链路伙伴 232 可以包括交换机、 桥接器、 路由器和 / 或其 他以太网控制器 ( 可以和与主机系统 202 类似的主机系统相关联 ), 其可以按照与这里提供 的以太网控制器 220 的描述一致的方式来配置和运行。
以太网控制器 220 可以配置为向链路伙伴 232 发送至少一个数据分组, 或者从链 路伙伴 232 接收至少一个数据分组。如所述的, 以太网控制器 220 可以配置为至少部分地 在空闲功率状态和活跃功率状态运行。在一个实施例中, 为了从活跃数据发送功率状态转 换到空闲状态, 以太网控制器 220 可以配置为控制时钟输入 242、 254 和 / 或 262。为了从 活跃数据接收功率状态转换到空闲功率状态, 以太网控制器 220 可以配置为控制时钟输入 246 和 / 或 258。为此, 时钟输入 242、 254、 262、 246 和 / 或 258 可以被门控 ( 时钟门控 ) 以 将去往相应电路的时钟信号调至关闭 (OFF)。 为了允许非对称功率管理, 发送通路电路的时钟输入可以独立于接收通路电路的 时钟输入来控制。这可以允许例如发送通路 221A 中的电路处于空闲功率状态而接收通路 221B 中的电路处于活跃状态 ( 或者, 反之亦然 )。这里所使用的时钟门控可以提供用以实 现这里定义的空闲功率状态的机制, 在该空闲功率状态中, 被时钟门控的电路的功耗足以 与链路伙伴 232 维持打开的链路 ( 经由通信链路 230), 但是不足以供以太网控制器 220 发 送或接收数据。为了从空闲功率状态转换到活跃功率状态, 以太网控制器 220 可配置为将 时钟信号 242、 254、 262、 246 和 / 或 258 调至打开 (ON) 状态, 以允许例如以太网控制器 220 发送和 / 或接收数据。
以下描述以太网控制器 220 协同图 2 的系统的其他特征在数据发送和数据接收期 间的操作 :
Tx 活跃转换
如所述的, 以太网控制器 220 可以配置为至少部分地从空闲功率状态转换到活跃 数据发送功率状态以发送数据。为此, 可以由主处理器 204 运行的 LAN 驱动程序代码 214 可以配置为确定存在至少一个可以是存储在 I/O 存储缓冲器 216 中的要发送的数据分组。 驱动程序 214 可以生成发送活跃控制信号来控制以太网控制器 220 从空闲功率状态转换到 活跃数据发送功率状态。可以向发送 MAC 电路 222A 施加时钟信号 242, 并且可以分别向编 码电路 240A 和发送电路 226 施加时钟信号 254 和 262。如果链路伙伴 232 以同样的方式配 置, 为了使得链路伙伴 232 准备好从以太网控制器 220 接收数据, 发送电路 226 可以配置为 生成接收活跃控制信号来 “唤醒” 链路伙伴 232 相应的接收电路和 MAC 电路。在指定的延迟 时段之后 ( 例如, 图 1 中描绘的延迟时段 110), 以太网控制器 220 可以开始向链路伙伴 232 发送数据。
Tx 空闲转换
如所述的, 以太网控制器 220 可配置为从活跃数据发送功率状态转换到空闲功率 状态。为此, 可以由主处理器 204 运行的 LAN 驱动程序代码 214 可以配置为确定不存在准 备好要发送的数据分组, 例如通过监视 I/O 存储缓冲器 216 来确定缓冲器是否为空。驱动 程序 214 可生成空闲控制信号来控制以太网控制器 220 从活跃数据发送功率状态转换到空 闲功率状态。可以对去往 MAC 电路 222A 的时钟信号 242 进行门控以允许 MAC 电路 222A 下 降到空闲功耗模式。同样的, 可以对分别去往编码电路 240A 和 / 或发送电路 226 的时钟信 号 254 和 / 或 262 进行门控以准许编码电路 240A 和 / 或发送电路 226 下降到空闲功耗模 式。如果链路伙伴 232 以同样的方式配置, 发送电路 226 可以配置为生成接收空闲控制信 号以将链路伙伴 232 相应的解码电路和 MAC 电路转换到空闲功率状态。
Rx 活跃转换
以太网控制器 220 还可以配置为至少部分地从空闲功率状态转换到活跃数据接 收功率状态以从链路伙伴 232 接收数据。为此, 链路伙伴 232 可以生成去往接收电路 228 的接收活跃控制信号。为此, 虽然解码电路 240B 和接收 MAC 电路 222B 可分别处于功率空 闲状态, 但接收电路 228 可以处于活跃功率状态, 使得 PHY 电路 224 与链路伙伴 232 之间的 链路 230 保持打开。链路伙伴 232 生成的接收活跃控制信号可以包括能被接收电路 228 接 收和识别的突发信号。响应于此, PHY 电路 224 可以将解码电路 240B 从空闲功率状态转换 到活跃功率状态, 且 PHY 电路 224 还可以生成接收活跃控制信号来将接收 MAC 电路 222B 从 空闲功率状态转换到活跃功率状态。为此, 可以分别向编码电路 240B 和 MAC 电路 222B 施 加 ( 例如, 不进行门控 ) 时钟信号 258 和 246 以准许 MAC 电路 222B 和解码电路 240B 从链 路伙伴 232 接收数据。在所定义的延迟时段后 ( 例如, 图 1 描绘的延迟时段 110), 以太网控 制器 220 可以开始从链路伙伴 232 接收数据。数据可以存储在缓冲存储器 216 中。
Rx 空闲转换
如所述的, 以太网控制器 220 可以配置为至少部分地从活跃数据接收功率状态转 换到空闲功率状态。为此, PHY 电路 224 可以配置为从链路伙伴 232 接收空闲控制信号。响 应于此, PHY 电路 224 可以将解码电路 240B 从活跃功率状态转换到空闲功率状态 ( 如上面 指出的, 可以包括解码电路 240B 的时钟门控 )。PHY 电路 224 还可以生成接收空闲控制信 号以将接收 MAC 电路 222B 从活跃数据接收功率状态转换到空闲功率状态。
如上所述, 在以太网控制器 220 和链路伙伴 232 之间交换的控制信号可以包括例 如由各自的 PHY 电路生成的包括用以转换到活跃功率状态或空闲功率状态的编码信号的 控制帧。或者, 控制信号可以包括具有预定义特性的模拟突发信号, 其可以被各自的 PHY 电 路理解为用以转换到活跃功率状态或空闲功率状态的控制信号。又或者, 这样的控制信号 可以由 MAC 电路 222 以例如数据分组中的头部或者尾部数据的形式生成。
图 3 描绘与本公开一致的示例性数据发送操作的流程图 300。操作可以包括确定 数据分组是否存在于存储器中且可用于发送 (302)。操作还可以包括生成发送活跃控制 信号以将以太网控制器至少部分地从空闲功率状态转换到活跃数据发送功率状态 (304)。 如果耦合到以太网控制器的链路伙伴被类似地配置, 操作还可以包括生成去往链路伙伴的 接收活跃控制信号, 使得链路伙伴至少部分地从空闲功率状态转换到活跃数据接收状态 (306)。 操作还可以包括使用最大协商速度将数据分组发送到链路伙伴 (308)。 一旦发送了数据分组, 操作可以进一步包括生成空闲控制信号以将以太网控制器从活跃数据发送功率 状态转换为空闲功率状态 (310)。此外, 如果链路伙伴被类似地配置, 操作还可以包括生成 去往链路伙伴的接收空闲控制信号, 使得链路伙伴从活跃数据接收功率状态转换到空闲功 率状态 (312)。
图 4 描绘与本公开一致的示例性数据接收操作的流程图 400。操作可以包括由以 太网控制器接收来自链路伙伴的接收活跃控制信号 (402)。操作还可以包括至少部分地且 响应于接收活跃控制信号将以太网控制器从空闲功率状态转换到活跃数据接收功率状态 (404)。 操作还可以包括由以太网控制器从链路伙伴接收数据分组 (406)。 数据分组可以存 储在存储器中 (408)。操作还可以包括由以太网控制器接收来自链路伙伴的接收空闲控制 信号 (410)。操作还可以包括至少部分地且响应于接收空闲控制信号将以太网控制器从活 跃数据接收功率状态转换到空闲功率状态 (412)。
以上结合以太网控制器对空闲功率状态的描述和其他方法相比提供了显著的功 率节省。 图 5A 描绘根据速率变换以太网通信技术的功率分布图 502, 而图 5B 描绘与本公开 一致的功率分布图 504。一般而言, 功耗 ( 能耗 ) 可以表达为功率曲线下方的面积, 即,
平均功率可以定义为在给定时间区间上的能耗。如图所示, 速率变换技术的功率 分布 502 从第一功率水平 506 开始, 在该水平上发送或接收是可能的但是在相对低带宽上, 例如为最大速率的 1/10 或 1/100, 并且基于带宽利用的增加或者其他的考虑, 将功率提高 到第二高水平 508 上以实现更快的数据发送或接收。因此能耗定义为区域 506 下方和区域 508 下方的面积。相反, 根据本公开的功率分布 504, 数据在最大可达速度上发送或接收, 如 区域 510 和 511 中的面积描绘的。一旦发送或接收了数据, 功率就被减小到空闲功率状态 108。速率变换技术使用的平均功率比本公开的活跃 / 空闲切换技术使用的平均功率要高, 特别是当考虑到长期使用时。出乎意料的, 此处的申请人已确定虽然在最快可达速度上工 作功率更高, 但通过更快地完成发送并在数据发送或接收后转换到空闲功率状态减少了总 功耗。
前述的例子是参照以太网控制器的一个或多个部件的功率门控以实现空闲功率 状态来描述的。 在其他的实施例中, 另外的或者作为时钟门控的替换, 以太网控制器也可以 配置为中断去往 MAC 电路 222 和 / 或 PHY 电路 224 的功率 ( 例如, 功率门控 )。虽然功率门 控可以实现这里定义的合适的空闲功率状态, 该技术可能导致空闲到活跃转换之间额外的 延迟。
以太网控制器 220 还可以包括 I/O 总线电路 ( 未示出 ) 来提供以太网控制器 220 与芯片组电路 206 之间的 I/O 通信 ( 这样的总线电路可遵守之前提及的 PCI-Express 通信 协议 )。以太网控制器还可以包括配置为在 MAC 电路 220 与 PHY 电路 224 之间提供 I/O 通 信的 MAC/PHY 接口电路 ( 未示出 )( 其可以包括, 例如 SGMII 或 XAUI)。
存储器 208 和 / 或与以太网控制器 220 相关联的存储器 ( 未示出 ) 可以包括一个 或多个如下类型的存储器 : 半导体固件存储器、 可编程存储器、 非易失性存储器, 只读存储 器、 电可编程存储器, 随机存取存储器, 闪存, 磁盘存储器、 和 / 或光盘存储器。另外或者替
换地, 存储器 208 和 / 或与以太网控制器 220 相关联的存储器 ( 未示出 ) 可以包括其他的 和 / 或以后开发的类型的计算机可读存储器。这里描述的方法的实施例可以用可存储在存 储介质上的具有将系统编程为执行这些方法的指令的计算机程序来实现。 该存储介质可以 包括, 但不限于, 任何类型的盘, 包括软盘、 光盘、 压缩盘只读存储器 (CD-ROM)、 可重写压缩 盘 (CD-RW) 和磁光碟, 半导体设备例如只读存储器 (ROM), 随机存取存储器 (RAM) 例如动态 和静态 RAM、 可擦除可编程只读存储器 (EPROM)、 电可擦除可编程只读存储器 (EEPROM)、 闪 存、 磁卡或光卡、 或者任何类型的适于存储电子指令的介质。 其他实施例可以实现为由可编 程控制设备运行的软件模块。
这里描述的以太网通信协议能够准许使用传输控制协议 / 网际协议 (TCP/IP) 的 通信。以太网协议可以遵守或兼容于由电气电子工程师协会 (IEEE) 于 2002 年 3 月公布的 题为 “IEEE 802.3 标准” 的以太网标准和 / 或该标准的后来版本。
如这里所使用的, “PHY” 可以定义为用于与一个或多个设备接口的对象和 / 或电 路, 并且这样的对象和 / 或电路可以由这里阐述的一个或多个通信协议所定义。 PHY 可以包 括物理 PHY, 其包括与适用的通信链路接口的收发机电路。PHY 可以替换地和 / 或另外包括 虚拟 PHY, 其与另一个虚拟 PHY 或与物理 PHY 接口。 PHY 电路 224 可以遵守或兼容于之前提及 的 IEEE 802.3 以太网通信协议, 其可以包括例如顺应 100BASE-TX、 100BASE-T、 10GBASE-T、 10GBASE-KR、 10GBASE-KX4/XAUI、 40GbE 和 / 或 100GbE 的 PHY 电路, 和 / 或顺应以后开发的 通信协议的 PHY 电路。 如这里的任意实施例中使用的 “电路” 可以包括例如单个或任意组合的硬连线电 路、 可编程电路、 状态机电路、 和 / 或存储了由可编程电路运行的指令的固件。
这里已经使用的术语和表达是作为描述的方式而不用于限制, 因此在使用这些术 语和表达时, 并不意图排除所示和描述的特征 ( 或者其一部分 ) 的任何等价物, 并且应认识 到在权利要求的范围内可以有多个变化形式。 因此, 权利要求意图覆盖所有这样的等价物。