专利名称:用于高速媒体接入控制的存储器管理的制作方法
用于高速媒体接入控制的存储器管理35 U.S.C §119项下的优先权请求本专利申请案请求对2006年3月31日提出申请且名称为"高速媒体接入控制 (High Speed Media Access Control)"的第60/787,915号临时申请案的优先权,且所 述临时申请案受让予本申请案的受让人并以引用的方式明确地并入本文中。技术领域本揭示内容大体来说涉及无线通信,且涉及高速媒体接入控制。
技术背景无线通信系统经广泛部署以提供例如语音及数据等各种类型的通信。典型的无线 数据系统或网络向多个用户提供对一个或一个以上共享资源的接入。系统可使用各种 多重接入技术,例如频分多路复用(FDM)、时分多路复用(TDM)、码分多路复用 (CDM)、正交频分多路复用(OFDM)及其它。实例性无线网络包括基于蜂窝的数据系统。以下是数个此类实例(1)"双重 模式宽带展频蜂窝式系统的TIA/EIA-95-B移动台-基站兼容性标准"(IS-95标准),(2)由名称为"第三代合作伙伴计划"(3GPP)的团体提供的标准且其包含于包括 第3GTS 25.211、 3GTS25. 212、 3G TS 25.213及3G TS 25.214号文档在内的一组文 档中(W-CDMA标准),(3)由名称为"第三代合作伙伴计划2" (3GPP2)的团 体提供的标准且其包含于"cdma2000展频系统的TR-45.5物理层标准"(IS-2000标 准)中,及(4)符合TIA/EIA/IS-856标准(IS-856标准)的高数据速率(HDR)系统。无线系统的其它实例包括无线局域网(WLAN),例如IEEE 802.11标准(即, 802.11 (a), (b)或(g))。在部署包含正交频分多路复用(OFDM)调制技术的多输入多 输出(MIMO)无线局域网中可实现对这些网络的改善。已引入正EE 802.1 l(e)来改善 先前802.11标准的服务质量(QoS)缺点。现在正介绍802.11(n)规范,其定义高速无线网络及用于与其一同操作的媒体接入 控制协议。先前802.11标准主要与数据转移、浏览及电子邮箱类型的应用相关。 802.11(n)打算提供需要高通量、性能及服务质量的稳健的多媒体分配应用程序。出于 这些需要,产生对用于提供服务质量及高速操作性的高效实施方案及技术的需要。因 此,所属技术领域中需要高效的高速媒体接入控制。6发明内容本文中所揭示的方面解决所属技术领域中对高效的高速媒体接入控制的需要。根据一个方面,说明一种设备,其包括与包相关联的第一数据结构、包含来自所 述相关联包的数据的第二数据结构,且其中所述第一数据结构包含指示所述相关联 包的长度的长度字段;指示所述相关联包的序列号的序列号字段;指示所述第二数据 结构在包缓冲器中的位置的第二数据结构指针字段。根据另一方面,说明第一数据结构,其可与包含来自相关联包的数据的第二数据 结构一同操作且其包括指示所述相关联包的长度的长度字段;指示所述相关联包的 序列号的序列号字段;存储所述第二数据结构在存储器中的位置的指针字段。根据另一方面,揭示一种方法,其用于在包缓冲器中的第一数据结构中存储第 一包的长度、所述包的序列号及所述包缓冲器中的第二数据结构的第二包缓冲器位置, 且将来自所述第一包的数据存储在由所述所存储的第二包缓冲器位置识别的第二数据 结构中。根据另一方面,揭示一种用于将多个包存储在包缓冲器中的方法,每一包用相关 联的第一数据结构及一个或一个以上相关联的第二数据结构存储,所述一个或一个以 上第二数据结构形成为链接表,其中每一第一数据结构包含指示所述相关联包的长度 的长度字段、指示所述相关联包的序列号的序列号字段及指示所述一个或一个以上第 二数据结构中的第一者在包缓冲器中的位置的第二数据结构指针字段;且其中每一第 二数据结构包含来自所述相关联包的数据及指示相应链接表中的下一第二结构(如果 有)的下一第二数据结构指针字段。根据另一方面,说明一种设备,其包括存储装置,其用于在包缓冲器中的第一数据结构中存储第一包的长度、所述包的序列号及所述包缓冲器中的第二数据结构的第二包缓冲器位置;及存储装置,其用于将来自所述第一包的数据存储在由所述所存 储的第二包缓冲位置识别的第二数据结构中。根据另一方面,说明一种设备,其包括与包相关联的第一数据结构,及包含来 自所述相关联包的数据的一个或一个以上第二数据结构;且其中所述第一数据结构包 含指示所述相关联包的长度的长度字段、指示所述相关联包的序列号的序列号字段及 指示所述第二数据结构中的一者在包缓冲器中的位置的第二数据结构指针字段;及用 于将所述包存储在所述第二数据结构中的一者或一者以上中的装置。根据另一方面,说明一种设备,其包括第一存储器,其以第一模式配置以存储 多个通信流中的每一者的一个或一个以上参数且以第二模式配置以存储所述多个通信 流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;第二存储器,其以所述第一模式配置以存储所述多个通信流中的每一者的包且以所述第二模式配置以 存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上 参数存储在由所述指针指示的与相应通信流相关联的位置中;存储器接口,其可与第7三存储器一起操作,所述存储器接口以所述第二模式配置以操作以存储所述多个通信 流中的每一者的包;及处理器,其选择所选择的模式作为所述第一模式或所述第二模 式,根据所述所选择的模式配置所述第一存储器,根据所述所选择的模式配置所述第 二存储器且根据所述所选择的模式配置所述存储器接口 。根据另一方面,说明一种无线通信装置,其包括第一集成电路,所述第一集成 电路包含第一存储器,其以第一模式配置以存储多个通信流中的每一者的一个或一 个以上参数且以第二模式配置以存储所述多个通信流中的每一者的指针,每一指针指 示与相应的通信流相关联的位置;第二存储器,其以所述第一模式配置以存储所述多 个通信流中的每一者的包且以所述第二模式配置以存储所述多个通信流中的每一者的 多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与相 应通信流相关联的位置中;存储器接口,其可与第三存储器一起操作,所述存储器接 口以所述第二模式配置以操作以存储所述多个通信流中的每一者的包;及处理器,其 选择所选择的模式作为所述第一模式或所述第二模式,根据所述所选择的模式配置所 述第一存储器,根据所述所选择的模式配置所述第二存储器,且根据所述所选择的模 式配置所述存储器接口;及第二集成电路,其包含存储所述多个通信流中的每一者的 包的第三存储器,其与所述第一集成电路的存储器接口耦合。根据另一方面,说明一种无线通信装置,其包括第一存储器,其存储多个通信 流中的每一者的一个或一个以上参数;及第二存储器,其存储所述多个通信流中的每 一者的包,包含与包相关联的第一数据结构;及包含来自所述相关联包的数据的第二 数据结构;且其中所述第一数据结构包含指示所述相关联包的长度的长度字段,指示 所述相关联包的序列号的序列号字段及指示所述第二数据结构在所述第二存储器中的 位置的第二数据结构指针字段。根据另一方面,说明一种无线通信装置,其包括第一存储器,其存储多个通信 流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;及第二存储器, 其存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以 上参数存储在由所述指针指示的与相应通信流相关联的位置中;及第三存储器,其存 储所述多个通信流中的每一者的包。根据另一方面,其说明一种设备,其包括选择装置,其用于选择第一或第二模 式;配置装置,其用于以第一模式配置第一存储器以存储多个通信流中的每一者的一 个或一个以上参数;配置装置,其用于以第二模式配置所述第一存储器以存储所述多 个通信流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;配置装置, 其用于以所述第一模式配置第二存储器以存储所述多个通信流中的每一者的包;配置 装置,其用于以所述第二模式配置所述第二存储器以存储所述多个通信流中的每一者 的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与 相应通信流相关联的位置中;及配置装置,其用于以所述第二模式配置可与第三存储 器一起操作的存储器接口以操作以存储所述多个通信流中的每一者的包。根据另一方面,说明计算机可读媒体,其可操作以执行选择第一或第二模式; 以第一模式配置第一存储器以存储多个通信流中的每一者的一个或一个以上参数;以 第二模式配置所述第一存储器以存储所述多个通信流中的每一者的指针,每一指针指 示与相应的通信流相关联的位置;以所述第一模式配置第二存储器以存储所述多个通 信流中的每一者的包;以所述第二模式配置所述第二存储器以存储所述多个通信流中 的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针 指示的与相应通信流相关联的位置中;及以所述第二模式配置可与第三存储器一起操 作的存储器接口以操作以存储所述多个通信流中的每一者的包。
图1是能够支持多个用户的无线通信系统的总框图;图2描绘可被配置为接入点或用户终端的无线通信装置的方面;图3描绘针对用户终端配置的媒体接入控制处理器的实施例;图4描绘针对接入点配置的媒体接入控制处理器的实施例;图5描绘无线通信装置的更加详细实例性实施例;图6描绘包缓冲器的实例性实施例;图7进一步图解说明实例性包缓冲器;图8描绘可部署于媒体接入控制处理器中的额外组件;图9描绘用于向包缓冲器中写入包并创建队列的方法的实例性实施例;图10图解说明主机到无线局域网子系统的实例性实施例;图11描绘传输流状态表的内容的实例性实施例;图12描绘用于执行传入管控的方法的实例性实施例;图13图解说明传入管控的方法的实例性实施例;图14描绘先进先出存储器的实例性实施例;图15图解说明将媒体接入控制服务数据单元分为一个或一个以上分段的实例性过程;图16结合两个或两个以上存储器写入描绘仲裁器的概念性配置; 图17描绘经配置以使用较小固定组的标准EDCA队列支持相对大的多个EDCA 队列的无线通信装置的一部分的实例性实施例;图18描绘图解说明下层媒体接入控制核心的各种组件的实例性实施例;图19描绘下层媒体接入控制核心处理器的区段的实例性详细实施例;图20图解说明实例性互锁;图21描绘链路识别符的实例性实施例;图22描绘下层媒体接入控制核心的实例性实施例的额外组件; 图23描绘速率有限状态机的实例性实施例;图24显示实例性遗留协议引擎;图25显示与到物理层的概念性链路连接的实例性遗留协议引擎;图26描绘进一步详述传输包的媒体接入控制处理的实例性实施例;图27描绘经聚合媒体接入控制协议数据单元的实例性格式;图28描绘图解说明下层媒体接入控制核心的接收组件的实例性实施例;图29描绘针对用户终端配置的硬件表的实例性实施例;图30描绘经配置以用于接入点或超级台的硬件表的实例性实施例;图31描绘接收流状态表的实例性实施例;图32描绘用于以各种配置来配置硬件表及存储器的方法的实例性实施例; 图33描绘经配置以支持接收包阵列的包缓冲器的一部分的替代配置; 图34图解说明用于无线网络的实例性端对端优先级方案,其包括传入管控及基 于优先级的越区切换;图35描绘图解说明越区切换决策块及越区切换引擎的操作的方法的实例性实施例;图36图解说明用于执行越区切换决策的方法的实例性实施例; 图37图解说明用于处理所接收的包的方法的实例性实施例;图38图解说明用于处理一个或一个以上越区切换队列的方法的实例性实施例;图39描绘确定可进行越区切换的流的方法的实例性实施例;图40图解说明实例性决策状态表;图41图解说明越区切换队列的实例性实施例;图42图解说明用于执行越区切换的方法的实例性实施例;图43图解说明用于在越区切换状态表中将包缓冲器加索引的实例性变量;图44描绘用于响应于立刻块确认请求的方法的实例性实施例;图45描绘用于响应于块确认的方法的实例性实施例;图46描绘用于在重传过程中使用乒-乓节点阵列高速缓存器的方法的实例性实施例;图47描绘用于执行非调度自动省电递送的方法的实例性实施例; 图48图解说明部署一个以上媒体接入控制处理器的替代实施例; 图49描绘包括两个媒体接入控制处理器的无线通信装置的实例性实施例,所述媒体接入控制处理器包括第一媒体接入控制处理器及包含于微处理器中的第二媒体接入控制处理器;图50图解说明多流包缓冲及排队的方面; 图51图解说明多流包缓冲及排队的方面;图52图解说明用于高速媒体接入控制的存储器管理的方面; 图53图解说明多流媒体接入控制的方面; 图54图解说明多流媒体接入控制的方面;图55图解说明用于高速媒体接入控制的多个流多路复用的方面; 图56图解说明高速通信系统中的聚合的方面;
图57图解说明用作服务中队列及等待中队列的影子高速缓存器的方面; 图58图解说明传入管控的方面; 图59图解说明传入管控的方面; 图60图解说明传入管控的方面;及
图61图解说明用于低延迟响应的媒体接入控制的方面;
具体实施例方式
下文将详述各个方面,可在任一既定实施例中组合所述方面中的一者或一者以 上。本文中所揭示的方面通过非常高的位率无线局域网物理层(或使用新浮现的传输 技术的类似应用)来支持高效率操作。实例性无线局域网可以两个频带模式20 MHz 及40 MHz操作。其支持超过100Mbps (百万位/秒)的位率,包括20MHz的信道带 宽中的高达300 Mbps及40 MHz的信道带宽中的高达600 Mbps。还可支持各种替代 无线局域网,包括那些具有两个以上频带模式及任何数量的所支持位率的无线局域网。
各个方面保留遗留无线局域网系统的分布式协调操作的简单性及强健,此种系统 的实例可在802.11 (a-g)中找到。可在维持与此种遗留系统的后向兼容性的同时实现各 种实施例的优点。(注意,在以下说明中,将802.11系统说明为实例性遗留系统。所 属技术领域的技术人员将认识到,所述改善也可与替代系统及标准兼容。)
本文中所说明的一个或一个以上实例性方面是在无线数据通信系统的上下文中 加以论述。尽管此上下文中的使用是有利的,但本揭示内容的不同实施例也可并入到 不同的环境或配置中。大体来说,本文中所说明的各种系统可使用由软件控制的处理 器、集成电路或离散逻辑形成。本申请案通篇所提及的数据、指令、命令、信息、信 号、符号及芯片有利地由电压、电流、电磁波、磁场或粒子、光场或粒子或其一组合 表示。此外,每一框图中O所示的方块可表示硬件或方法步骤。方法步骤可在不背离 本揭示内容的范围的情况下互换。本文所用词语"实例性"意指"用作实例、示例或 例示"。本文中说明为"实例性"的任一 "实施例"未必解释为优选或优于其它实施 例。
图1图解说明系统100的实例性实施例,系统IOO包含连接到一个或一个以上用 户终端(UT) 106A-N的接入点(AP) 104。根据802.11技术,在此文档中,所述接入点 及用户终端还称作台或STA。本文中所说明的技术及方面还应用于其它类型的系统(实 例包括上文所详述的蜂窝式标准)。如本文中使用,术语基站可与术语接入点互换使 用。术语用户终端可与术语用户设备(UE)、订户单元、订户站、接入终端、远程终端、 移动台或所属技术领域中已知的其它对应术语互换使用。术语移动台涵盖固定无线应 用。还要注意,用户终端106可彼此直接进行通信。由802.11(e)引入的直接链路协议 (DLP)允许STA将帧直接转发到基本服务集(BSS)内的另一 目的地STA(由同一接入点 控制)。在各种实施例中,如在所属技术领域中已知,不需要接入点。举例来说,独 立BSS(IBSS)可通过STA的任一组合形成。可形成用户终端的特定网络,其使用所属 技术领域中已知的多种通信格式中的任一者经由无线网络120彼此进行通信。
接入点与用户终端经由无线局域网(WLAN) 120进行通信。在下文所详述的实 施例中,无线局域网120是高速多输入多输出OFDM系统。然而,无线局域网120 可以是任何无线LAN。视情况,接入点104经由网络102与任何数量的外部装置或过 程进行通信。网络102可以是因特网、内部网络或任何其它有线、无线或光学网络。 连接110将物理层信号从网络携载到接入点104。装置或过程可连接到网络102或作 为无线局域网上的用户终端(或经由与其的连接)。可连接到网络102或无线局域网 120的装置的实例包括电话、个人数字助理(PDA)、各种类型的计算机(膝上型计 算机、个人计算机、工作台、任一类型的终端)、例如摄像机、摄像放像机、网络摄 影机等视频装置及实际上任一其它类型的数据装置。过程可包括语音、视频、数据通 信等。各种数据串流可具有不同的传输要求,可通过使用不同的服务质量(QoS)技术满 足所述不同的传输要求。
系统100可部署有集中式接入点104。所有用户终端106在一个实施例中与所述 接入点进行通信。在替代实施例中,如所属技术领域中的技术人员将明了,可通过修 改系统来提供两个用户终端之间的直接对等通信,其实例图解说明于下文中。可将任 何台设立为实施例中的支持指定的接入点的指定接入点。接入可由接入点管理或可为 特定的(即,基于争用)。
在一个实施例中,接入点104提供以太网自适应。在此情况下,除所述接入点以 外可部署IP路由器以提供到网络102的连接(细节未显示)。可经由无线局域网子网 络在所述路由器与用户终端106之间转移以太网帧(下文详述)。以太网自适应及连 接性在所属技术领域中众所周知。
在替代实施例中,接入点104提供IP自适应。在此情况下,接入点充当连接的 用户终端组的网关路由器(细节未显示)。在此情况下,IP数据报可由接入点104路 由到用户终端106及从用户终端106路由。IP自适应及连接性在所属技术领域中众 所周知。
图2描绘无线通信装置的方面,其可配置为接入点104或用户终端106。无线通 信装置是实例性STA,其适于部署于系统100中。
处理器210经部署以执行所述无线通信装置的各种任务,包括用于执行通信的任 务。在此实例中,处理器210实施在本文中称作"固件"任务的任务。为简明起见, 在下文所详述的实施例中,对固件的提及包括由处理器210执行的此种任务以及结合 各种其它组件或块执行的任务。处理器210可以是通用微处理器、数字信号处理器 (DSP)或专用处理器。处理器210可与专用硬件连接,以帮助执行各种任务(细节未显示)。各种应用程序可在外部连接的处理器(例如,外部连接的计算机或经由网 络连接)上运行,或可在无线通信装置104或104内的额外处理器(未显示)上运行, 或可在处理器210自身上运行。
图中显示处理器210与存储器220连接,存储器220可用于存储数据以及用于执 行本文中所说明的各种程序及方法的指令及许多其它。所属技术领域的技术人员将认 识到,存储器220可由一个或一个以上可整体或部分地嵌入于处理器220内的不同类 型的存储器组件构成。图中显示I/0 230连接到处理器210, I/O 230可包含一个或一 个以上输入及/或输出功能,其实例在所属技术领域中众所周知。
媒体接入控制(MAC)处理器240连接到处理器210。在下文所详述的许多实施例 中,媒体接入控制处理器240执行包的高速处理,gp,以线速度。大体来说,较低速 率处理或"固件"任务将由处理器210结合"线速度"处理执行,所述"线速度"处 理通常由媒体接入控制处理器240处置。媒体接入控制处理器240递送数据以传输到 物理层(PHY) 260以在无线局域网120上传输,且处理在无线局域网120上接收的来 自物理层260的数据。处理器210还可接收物理层数据并处理数据以形成传出流的包 (在下文所详述的实例中,通常结合媒体接入控制处理器240)。递送到物理层260 的数据的格式及从物理层260接收的数据的格式将依据无线通信装置104或106所支 持的通信系统或系统的规范。
媒体接入控制处理器240根据网络102的物理层要求经由连接IIO接收及传输数 据。可选网络处理器280可经部署以根据网络102的物理层在可选网络连接110上接 收及传输。所述网络处理器可使用任何类型的数据格式向媒体接入控制处理器240接 收及递送数据。在下文中进一步详述实例性数据包(这些及替代数据格式将对于所属 技术领域的技术人员为众所周知)。在本文中可将这些数据称作流。流可具有不同的 特性并可基于与流相关联的应用类型而要求不同的处理。举例来说,视频或语音可表 征为低延迟流(视频通常比语音具有更高的通量要求)。许多数据应用对延迟较不敏 感,但可具有更高的数据整体性要求(即,语音可容许一定的包丢失,文件传输则通 常不容许包丢失)。
媒体接入控制处理器240接收流数据(其过程称作传入),且将所述流数据包存 储在包缓冲器250中。媒体接入控制处理器240检索将在无线局域网120上传输的包 (称作传输或TX),且将其递送到物理层260。在无线局域网120上接收的包(称 作接收或RX)被从物理层260递送到媒体接入控制处理器240,媒体接入控制处理 器240将所述包存储在包缓冲器250中。媒体接入控制处理器240从包缓冲器250检 索将在网络连接110 (或可选网络处理器280)上递送的接收包,此过程称作传出。实 例性包缓冲器250实施例详述于下文中。下文中所详述的各种实施例识别用于执行传 入、传输、接收及传出的高速包处理的方面。
虽然通过网络110识别传入及传出,且通过无线局域网120识别接收及传输,但 在所显示的实例中,媒体接入控制处理器240可经适当部署以通过任何传出或传入功能以及任何类型的接收或传输功能的操作。如所属技术领域中所熟知,流分类可由驱 动器执行,所述驱动器可包括于处理器210中或网络处理器280中或任何其它适合组 件中。各种驱动器可经部署以允许各种数据类型、格式、流类别等的媒体接入控制处 理。
还可在接入点与各个用户终端之间传送与无线局域网相关的控制及信令(即, 802.11或其它标准)。封装于物理层(PHY)协议数据单元(PPDU)中的媒体接入控制协 议数据单元(MPDU)被递送到物理层260及从物理层260接收。媒体接入控制协议数 据单元还可称作帧。当单个媒体接入控制协议数据单元被封装于单个物理层协议数据 单元中时,有时所述物理层协议数据单元可称作帧。替代实施例可采用任何转换技术, 且术语在替代实施例中可不同。可出于各种目的从物理层260返回对应于各个媒体接 入控制识别符的反馈。反馈可包含任何物理层信息,包括可支持的信道速率(包括多 播以及单播业务/包)、调制格式及各种其它参数。
物理层260可以是任何类型的收发器(且可包括接收器与传输器两者,但在替代 实施例中可部署其中任一者)。在一个实施例中,物理层260包括正交频分多路复用 (OFDM)收发器,其可通过多输入多输出(MIMO)或多输入单输出(MISO)接口操作。
多输入多输出及多输入单输出对于所属技术领域中的技术人员众所周知。各种实 例性OFDM、多输入多输出及多输入单输出收发器详述于2003年8月27提出申请且 标题为"宽带多输入单输出及多输入多输出系统的独立于频率的空间处理 (FREQUENCY-INDEPENDENT SPATIAL-PROCESSING FOR WIDEBAND MISO AND MIMO SYSTEMS)"的第10/650,295号共同待决美国专利申请案中,所述专利 申请案受让予本申请案的受让人,并以引用的方式并入本文中。替代实施例可包括单 输入多输出(SIMO)或单输入单输出(SISO)系统。
图中显示物理层260与天线270 A-N连接。在各种实施例中可支持任何数量的天 线。天线270可用于在无线局域网120上传输及接收。
物理层260可包含与一个或一个以上天线270中的每一者通信的空间处理器。所 述空间处理器可单独地处理每一天线的传输数据,或共同地处理所有天线上的所接收 信号。独立处理的实例可基于信道估计、来自用户终端的反馈、信道反转或所属技术 领域中巳知的各种其它技术。使用各种空间处理技术中的任一者执行所述处理。此类 型的各种收发器可使用波束成形、波束导引、特征导引或其它空间技术传输以增加到 既定用户终端及来自所述既定用户终端的通量。在某些其中传输OFDM符号的实施例 中,空间处理器可包含用于处理每一OFDM子载波(还称作音调)或频段的子空间处 理器。
在实例性系统中,接入点(或任何STA,例如用户终端)可具N个天线,且实例 性用户终端可具有M个天线。因此,接入点与用户终端的天线之间存在M x N个路径。 所属技术领域中已知用于使用这些多个路径来改善通量的各种空间技术。在空间时间 传输分集(STTD)系统(在本文中还称作"分集")中,传输数据被格式化及编码且被
14作为单个数据串流跨越所有天线而发送。由于有M个传输天线及N个接收天线,因 此可存在可形成的MIN (M,N)个独立信道。空间多路复用利用这些独立路径且可在
每一独立路径上传输不同的数据,以提高传输速率。
已知用于学习或适应接入点与用户终端之间的信道特征的各种技术。可从每一传 输天线传输唯一导频。在此情况下,在每一接收天线处接收所述导频并测量所述导频。 然后,可将信道状态信息反馈返回到传输装置以供用于传输。可对经测量的信道矩阵 执行特征分解来确定信道特征模式。 一种避免在接收器处对信道矩阵执行特征分解的 替代技术使用导频及数据的特征导引来简化接收器处的空间处理。
因此,依据当前信道条件,不同的数据速率可用于传输到整个系统中的不同用户
终端。物理层260可基于正用于接入点与用户终端之间的物理链路的任何空间处理来 确定可支持的速率。可将此信息反馈回去以用于媒体接入控制处理。
一方面,提供单个专用集成电路(ASIC)以支持包括接入点与用户终端两者的无线 通信装置中的媒体接入控制处理。图3及4概念性地图解说明经配置以分别用于用户 终端106及接入点104的此种专用集成电路310。
在图3中,显示媒体接入控制处理器专用集成电路310出于用于用户终端106的 实例性配置。在此配置中,上文所说明的媒体接入控制处理器240连接到硬件表320。 除其它以外,硬件表320包含在所述台中现用的每一流的参数。因此,在各种媒体接 入控制处理功能(其实例详述于下文中)期间,媒体接入控制处理器240接入硬件表 320以检索每流参数325。媒体接入控制处理器240还连接到同步随机存取存储器330。 在此配置中,同步随机存取存储器330适于执行包缓冲器250的功能。媒体接入控制 处理器专用集成电路310可包含各种其它组件,其实例详述于下文中。注意,在此实 施例中,包缓冲器250驻存于媒体接入控制处理器310中。注意,仅出于清晰的目的 将硬件表320显示为单独的块。在各种实施例中,硬件表320与同步随机存取存储器 330两者均可包括于媒体接入控制处理器240中。
图4描绘经配置而用作接入点的媒体接入控制处理器专用集成电路310。此配置 也可用于能够支持较大数量的流及/或较高通量的台,即所谓的超级台。在下文所详述 的实例中,所述超级台及接入点配置可简单地称作接入点或接入点配置。在此实施例 中,媒体接入控制处理器专用集成电路310包含媒体接入控制处理器240、硬件表320 及同步随机存取存储器330,如图3中所示。此外,仅出于图解说明的目的,单独显 示这些组件,且这些组件中的一者或一者以上可包括于媒体接入控制处理器240中。 在此配置中,硬件表320不再包含用于媒体接入控制处理的所有每流参数。在此情况 下,每流指针335包含于硬件表320中,所述指针中的每一者指向相应的相关联每流 参数325,所述每流参数存储于同步随机存取存储器330中。注意,如果需要,某些 每流参数也可存储于硬件表320中。注意,包含所显示的相同硬件组件的相同处理器 专用集成电路310可适于任一配置以支持不同的需要。在此实例中,同步随机存取存 储器330改变用途,从STA模式中的包缓冲器250变为接入点模式中的每流参数325
15的储存库。因此,媒体接入控制处理器240接入硬件表320以获得参数,且依据所述 配置将检索那些参数或跟随间接层从同步随机存取存储器330中检索那些参数。固件 (举例来说,由处理器210执行)可配置媒体接入控制处理器专用集成电路310的各 种组件以以第一模式(台模式)或第二模式(接入点模式)执行。用于选择模式的各 种技术在所属技术领域中众所周知。举例来说,寄存器设定、模式选择信号及类似技 术可用于向一个或一个以上组件指示当前的配置状态。此外,固件可依据所选择的配 置以不同方式填注硬件表320及同步随机存取存储器330。
继续参照图4,可看出外部存储器(此实例中的同步动态随机存取存储器340) 包括在内以执行包缓冲器250的功能。因此,在接入点模式中,可通过将同步随机存 取存储器330用于存储每流参数来支持比单独使用硬件表320可支持的流数量要大的 流数量(假设硬件表320小于同步随机存取存储器330)。同步随机存取存储器330 的大小可经选择以适应台模式中的无线通信装置的包缓冲器的需要。在一个实施例中, 此大小还适于存储接入点所支持的流数量所需要的所有每流参数。在替代实施例中, 可确定同步随机存取存储器330的大小以支持较大数量的流,此可需要比所述包缓冲 器否则所需要的大小要大的同步随机存取存储器大小。同步动态随机存取存储器340 可经选择以容纳所述接入点所支持的流数量。所属技术领域中的技术人员将认识到如 何选择硬件表320、同步随机存取存储器330及同步动态随机存取存储器340的适合 大小。
因此,单个媒体接入控制处理器专用集成电路310可经设计以支持多种模式。可 在每一模式中重新使用硬件组件以提供不同的功能。使用硬件表及包缓冲器的更详细 实例图解说明于下文中。部署单个媒体接入控制处理器专用集成电路310 (具有如图 3中所描绘的那样被配置的能力)允许更小的大小及更低的成本。相同媒体接入控制 处理器专用集成电路310也可通过添加外部同步动态随机存取存储器340及重新配置 媒体接入控制处理器专用集成电路310而用于更高性能的装置(例如,接入点或超级 台)中。可依据既定配置的性能需要来选择各种不同大小的同步动态随机存取存储器 340。
图5描绘无线通信装置(例如,STA104或接入点106)的更详细实例性实施例。 在此实例中,将使用一个媒体接入控制处理器说明(粗略说明)各种实例性包特征的 媒体接入控制处理。在替代实施例中,可将用于不同类型的包的媒体接入控制处理功 能分为两个或两个以上媒体接入控制处理器(下文参照图48及49详述实例性替代实 施例)。
如以前,处理器210经部署以执行固件任务。图解说明一实例性组的支持功能, 其在此种部署中是典型的。所属技术领域中的技术人员将清楚各种替代实施例。处理 器210经由指令总线506与指令同步随机存取存储器502及引导只读存储器504进行 通信。可使用这些存储器来执行用于处理器210上的固件处理的所熟知指令存储及检 索。通过连接到总线514的组件来图解说明实例性I/0功能及支持功能。在此实例中,定时器508可经部署以执行各种定时功能。可部署通用异步接收器传输器(UART) 510。 I/O的另一实例是12C接口 512。在此实例中,各种辅助组件经由总线514连接到向量 中断控制器(VIC)516,所述向量中断控制器连接到处理器210。因此,定时中断、I/O 中断及相关处理可由处理器210根据所部署的相关功能执行。所属技术领域中熟知用 于与各种类型的处理器连接的各种替代功能且所属技术领域中的技术人员将知道所述 各种替代功能。桥接器518将附装到总线514的组件与连接到总线520的其它组件连 接。因此,连接到总线520的各种组件(包括处理器210)可将数据传送到总线514 上以递送到那些相应组件或从那些相应组件接收。在此实例中,总线仲裁器522经部 署以用于控制到总线520的接入。直接存储器存取控制器(附装到总线526的额外组 件)包括直接存储器存取(DMA)控制器524、数据同步随机存取存储器526及总线从 属接口 528。总线从属接口 528提供总线520与格式化逻辑及多路复用器570之间的 管道,将在下文中进一步详细说明所述管道。因此,可通过上文参照图2所说明的各 种组件(例如,处理器210、存储器220及I/0 230)概念性地识别所说明的组件。
图5的组件(除同步动态随机存取存储器340以外)形成媒体接入控制处理器专 用集成电路310的一个实例性实施例的部分,例如上文在图3及4中所说明。这些组 件可经配置以用作STA106配置(详述于图3中)或接入点或超级台配置(详述于图 4中)。根据先前论述,可看出,图5中所详述的各种组件可形成媒体接入控制处理 器240及硬件表320的部分。可以不同模式配置所说明的各种组件以执行不同的功能。 各种组件(例如,处理器210及实例性辅助组件502-528)可以或可不并入到媒体接 入控制处理器专用集成电路310的实例性实施例中。
注意,处理器210及所显示的各种其它组件可经由总线520与所述媒体接入控制 处理器的组件进行通信。在此实例中,所述媒体接入控制处理器包含两个主要功能, 包括下层媒体接入控制核心540及主机到无线局域网子系统(其显示为H2W处理器 530)。下文进一步详述这些组件的实例性实施例。组件隔离为各个部分仅为一个实例, 所属技术领域中的技术人员将容易地如根据本文中的教示将清楚的那样部署替代配置 中所说明的各种过程及功能。
可经由连接到多路复用器554的同步随机存取存储器接口 558接入同步随机存取 存储器560。多路复用器554选择到存储器仲裁器556的连接或到存储器仲裁器552 的连接作为到同步随机存取存储器接口 558的输入。存储器仲裁器552从各种源(包 括总线520以及总线550上的组件)接收对到同步随机存取存储器560的接入的请求 及仲裁。在此实例中,总线550提供下层媒体接入控制核心540与存储器(同步随机存 取存储器)560之间的直接耦合。注意,那些组件之间还存在经由总线520的路径。在 此实例中,提供额外总线550以保证同步随机存取存储器560从下层媒体接入控制核 心540检索时间敏感数据及向下层媒体接入控制核心540存储时间敏感数据的接入性 能。注意,如图3及4中所说明,同步随机存取存储器560在一个配置中可用作包缓 冲器而在另一配置中用作每流参数的储存库。下层媒体接入控制核心540连接到媒体接入控制/物理层接口 545,所述接口可用 于递送供传输到物理层260的包及处理来自物理层260的所接收包。下层媒体接入控 制核心540内的组件的实例性实施例进一步详述于下文中。
H2W处理器530处理传入包,将在下文中进一步详细说明实例性实施例。在一 个实施例中,可将传入从传入包的处理解耦。在此情况下,可以线速度(即,以传入 速率)将传入包写入到包缓冲器中。通过从所述包缓冲器读取那些包,那些包的处理 可稍后发生。此解耦允许处理速率不同于传入线速度速率。此方法的缺点是存在到所 述包缓冲器的额外读取及写入,因为包必须被读取、处理及放回到所述包缓冲器中以 等待传输。在某些实施例中可接受此存储器带宽损失。图解说明于以下实例中的替代 实施例提供传入包的线内处理。在这些实例性实施例中,媒体接入控制处理经设计以 允许每一传入包被格式化以用线速度传输,其中仅存在到包缓冲器的单个写入(后跟
包的传输时间到达时的读取)。在第二种情况下,与第一种情况相比,存储器带宽上 的负担降低。所属技术领域中的技术人员将容易地在各种实施例中用本文中所教示的 各种方面修改任一方法。
同步动态随机存取存储器340在此实施例中显示为媒体接入控制处理器专用集成 电路310外部的组件。此与以上图3及4的论述保持一致,其中可向需要支持较大数 量的流(结果是更加需要增大的包缓冲器空间,例如接入点或超级台)的无线通信装 置提供单个较低成本的媒体接入控制处理器专用集成电路310及可选外部存储器,例 如同步动态随机存取存储器340。可经由同步动态随机存取存储器接口 562存取同步 动态随机存取存储器340,同步动态随机存取存储器接口 562耦合到存储器仲裁器 556。在替代实施例中,同步动态随机存取存储器340也可并入到媒体接入控制处理 器专用集成电路310中。图5中所示的组件分配仅为一个实例。所显示的组件中的任 一者可合并到单个专用集成电路上或可并入到一个或一个以上外部装置中,此取决于 每一专用集成电路的面积要求及所需要的性能。
在此实例中,通过两个实例性外部接口中的一者来执行包的传入及传出。所属技 术领域中的技术人员将认识到,除这些接口以外或替代这些接口,可部署替代接口。 在此实例中,串行数字输入输出接口 582及PCI接口 584经部署以接收包并将所述包 越区切换到与那些接口中的一者或一者以上通信的外部(或内部)装置。经由多路复 用器580选择串行数字输入输出接口 582及PCI接口 584。
为适应不同速度的接口,以及提供存储及处理传入及传出包的不同要求,先进先 出存储器、多路复用器及格式化逻辑可经部署以执行用于在接入存储器(例如,同步 随机存取存储器560及同步动态随机存取存储器540)时减轻拥堵的速率匹配及队列 及媒体接入控制处理功能(例如,H2W处理器530及下层媒体接入控制核心540)。 举例来说,传入及传出接口可以相对于无线局域网的通量能力为高的速度操作。传入 流可以是猝发性及高速度。从处理器或连接到总线526的任何其它组件接收的信息可 以又一速率到达。H2W处理器530及下层媒体接入控制核心540将产生接入请求并在各种任务的处理完成时检索或存储那些请求所产生的数据,如下文进一步说明。因此, 在此实例中,可在格式化逻辑及多路复用器570与格式化逻辑及多路复用器574之间 部署先进先出存储器572。在一个实例中, 一组先进先出存储器572 (—个用于缓冲 从格式化逻辑及多路复用器570到格式化逻辑及多路复用器574的数据,而另一个用 于缓冲相反方向的数据)可经部署以用于面接传入及传出功能(例如,串行数字输入 输出接口 582或PCI接口 584)。另一组先进先出存储器572 (每一方向一个)可经 部署以用于支持去往及来自H2W处理器530的数据。另一类似组可经部署以结合下 层媒体接入控制核心540使用。又一类似组可经部署以用于在总线520上的经由总线/ 从属接口 528接入的组件之间面接。所属技术领域中的技术人员将认识到此配置不过 是一个实例。可部署各种替代实施例,所属技术领域中的技术人员根据本文中的教示 将明了所述各种替代实施例。因此,图5中所描绘的无线通信装置104或106的实例 性实施例用于图解说明各种组件的一种可能互连,下文说明其细节。可在相同范围内 部署使用这些组件及/或额外组件(未显示)的子组的多种替代配置。 包缓冲器及存储器管理
图6描绘包缓冲器250的实例性实施例。在本文所详述的各种实例性实施例中, 如图6中所示,包缓冲器250图解说明数据结构及相关联的链接表,所述数据结构及 链接表用于执行各种功能以在媒体接入控制处理器240内进行包处理。虽然本文所详 述的各种实施例不需要此种结构,且可在替代实施例中部署替代包缓冲器,但此说明 书通篇详述的实施例将使用这些链接表及数据结构来图解说明其在那些各种功能中的 使用。此外,包缓冲器(例如,在图6中所说明)可经部署以用于各种替代功能(除 本文所详述的那些功能以外)。所属技术领域中的技术人员将容易地在各种实施例(包 括需要相对高速的包处理的实施例)中修改此包缓冲器及其组件及子组件。实例性包 缓冲器250可包括未在图6中显示的额外数据结构,其进一步详述于下文所说明的图 7中。
在此实例中,使用两种类型的数据结构将每一包存储到包缓冲器250中,第一数 据结构在本文中称作节点610,而第二数据结构在本文中称作程序块620。每一包或包 分段(如果部署分段,例如在802.11(g)及(e)中所说明)包括一个节点610及一个或一 个以上程序块620。存储所述包数据所需要的程序块的数量将依据所述包或分段的大 小而改变。因此,包作为包含指向第一程序块的节点的链接表结构驻存于包缓冲器250 中,且当需要额外程序块时,所述链接表包含所述额外程序块,每一程序块指向后续 程序块(除最后程序块以外)。
节点与程序块之间的此种分段的一个优点是对于控制决策至关重要的信息可保 持在节点中,而所述数据本身保持在相对较大的程序块中。此允许节点(其是其相应 包的代表)用于控制处理而不需要对整个包的接入。
此外,到达的传入包以及等待传出的包通常将与一个或一个以上流相关联。所描 绘的节点及程序块还促进包在包缓冲器内的队列的有效形成,每一队列与其相应的流相关联。在图6中通过包含各种节点及程序块的单个队列的实例来图解说明此一般结 构。在此实例中,节点610A-N形成与流的队列相关联的链接表。所述队列具有由队 列头指针630识别的头,且队列尾指针640识别所述队列中的最后节点。在此实例中, 所述队列中有N个包,每一者具有与其相关联的节点610。如图解说明,每一节点610 包含一系列程序块620A-M。任何数量的程序块可与单个节点相关联。将此图中所图 解说明的剩余程序块简单地标记为620。所属技术领域中的技术人员将认识到可部署 各种大小的节点以及各种大小的程序块。在所述实例性实施例中,程序块是512字节。 因此,由于实例性包通常小于2千字节,因此每一包将需要最多4个程序块(且通常 更少),包括与其相关联的包标头及其它信息。在替代实施例中,可部署适合任何包 大小的任何程序块大小。
在此实例性实施例中,将存储器中的控制与数据分离开。出于传输及接收的目的, 可需要控制结构的多个操纵。然而,对于数据有效负载,仅执行到存储器的一个写入 (在传入时或从无线局域网接收时)及从所述存储器的一个读出(在无线局域网上传 输时或经由外部接口传出时)。因此,可降低存储器带宽要求,因为传入存储器的转 移及来自存储器的转移相对高效。
实例性节点610图解说明于图6中。节点610包含用于链接到队列中的后续节点 的下一节点指针612。长度字段614及序列号616也包括在内。这些字段在处理包时 有用(如下文进一步说明),且允许在不需要接入或移动程序块620中所包含的数据 的情况下执行媒体接入控制处理。举例来说,所述长度字段在将包聚合到传输机会中 时用于聚合。所述序列号在发送块确认请求时使用。大体来说,可将可用于处理的任 何包信息添加到替代节点实施例。节点610还包括程序块指针618,其指向包含包数 据的第一程序块。
此结构允许产生任何长度的队列的灵活性,其仅受总的存储器包缓冲器大小的限 制。因此,可支持各种不同的流类型,且不需要固定所支持的流数量。举例来说,可 对需要较小数量的包的数个流与需要较大数量的包的流一起分配存储装置,且因此可 部署较小的包缓冲器大小来支持既定数量的流。另一选择为,可针对任何既定存储器 大小提供不同数量的流。可看出,所述队列可独立地增大及縮小,且由于节点及程序 块可分别由任何流或包重新使用,因此所述结构通过非常高效的存储器管理提供巨大 灵活性。
还图解说明实例性程序块620。程序块数据622包含包,包括任何标头字段、帧 检查序列等等。下一程序块指针624包括于所述程序块中以指向链接表中的下一程序 块(如果有)。
在一个实施例中,程序块是固定大小。此允许包缓冲器存储器包含存储器的分配 给程序块的固定部分。链接表结构允许任何程序块用于任何包链接表中。由于包来来 往往,因此可容易地重新使用程序块,而不需要额外存储器管理开销(例如,为不同 大小的包重新分配空间等等)。此结构还允许高效的处理,大体来说在于向包缓冲器
20仅写入一次程序块,所述程序块保留在所述包缓冲器中直到其准备在无线局域网上传 输或越区切换到传出目的地。还可简单地通过覆写指针(即,改变链路列表)在队列 内移动包或将包移动到新的队列。此在处理将要重传的包时有用。这些结构的使用提 供额外效率,如将在下文中进一步详述。每一链接表可将多种列表终止符中的任一者 用于队列中的最后节点或包中的最后程序块。在所述实例性实施例中,链接表中的第 一及最后节点由标头指针及尾指针指示,同时装入程序块指针以指示包中的最后程序 块。在替代实施例中,可需要将程序块的数量连同包长度及包序列号一同添加在节点 标头中。还构想包括可变程序块大小的替代实施例。
图7进一步图解说明实例性包缓冲器250。可将存储器的邻近程序块分配到各种 数据结构类型,但此并非必需。如上文所说明,可将分段730的一部分分配给节点, 且可将分段740分配给程序块。在实例性实施例中,这些分段中的每一者是存储器的 邻近空间,包括可重新用于任何包及/或流的固定大小的节点及程序块,如上文所说明。 此外,维持空闲节点指针列表710及空闲程序块指针列表720。如所属技术领域中的 技术人员将明了,可针对空闲指针列表部署各种数据结构。在一个实例中,可将节点 指针及程序块指针推入及弹出到其相应指针列表710或720。举例来说,这些列表可 以是环形缓冲器。 一旦弹出指针以形成新的节点或程序块,那么所述指针将保持使用 直到所述节点或程序块空闲,然后可将所述指针推回以供将来使用。
图8描绘可在(例如)本文所详述的实例性实施例中部署于媒体接入控制处理器 内的额外组件。这些组件并非必需,但由于正在使用的存储器的类型的特定性质,这 些组件可在某些情况下产生优点。举例来说,通常存在与同步动态随机存取存储器接 入相关联的延迟。当执行小的转移(即,在检索或存储单个节点或程序块指针时)时 还可存在低效率。在使用某些类型的同步动态随机存取存储器的情况下,在分解行存 取、列存取等时,开销循环可覆盖实际的数据转移循环。为防止大的延迟,各种高速 缓存器可经部署以用于一次检索数个指针以用于媒体接入控制处理。图8描绘这些高 速缓存器中的数个的实例。可在各种替代实施例中部署某些或所有这些高速缓存器。 用于本文所详述的实施例中的实例性高速缓存器包括传输空闲节点指针高速缓存器 810、传输空闲程序块指针高速缓存器820、接收空闲节点指针高速缓存器830及接收 空闲程序块指针高速缓存器840。可简化上文所图解说明的包的数据结构以用于接收 包,其实例性实施例参照图33进一步详述于下文中。大体来说,这些高速缓存器 810-840中的每一者从包缓冲器250中的其相应节点指针列表接收一个或一个以上指 针以创造效率。可从所述包缓冲器一次检索多个每一指针类型。在此实例中,可从相 应的列表弹出多个指针。然后,这些指针填注相应的高速缓存器,且可从所述相应高 速缓存器弹出单个指针以用于各种媒体接入控制处理组件。将通过下文所详述的各种 实例性实施例进一步图解说明指针及其相应高速缓存器的使用。
图9描绘用于向包缓冲器写入包并创建队列的方法900的实例性实施例。可使用 数据结构(在此实例中为链接表)来形成队列。队列还可形成为阵列(所给出实例为
21下文所详述的节点阵列3330)。此方法适用于结合包缓冲器(例如,以上图6及7中 所说明的包缓冲器)进行部署。方法900图解说明可用于将传入包写入到包缓冲器的 实例性技术。可使用类似技术来将所接收的包写入到所述包缓冲器以等待传出的越区 切换处理。越区切换的实例性实施例将进一步详述于下文中。视情况,还可部署指针 高速缓存器(即,810-840,如图8中所说明)且所述指针高速缓存器还可以是新指针 的基本源。如所属技术领域中的技术人员将明了,各种实施例可部署有或没有高速缓 存器且此方法可用于任何此种配置。
在910处,接收包。在决策块912处,弹出与所述包相关联的节点。在决策块914 处,如果此包是相应队列中的第一包,那么进行到916且更新头队列指针(举例来说, 图6中所图解说明的队列头指针630)以指向与所述新包相关联的节点。然后,进行 到918。在决策块914处,如果此包不是相应队列中的第一包,那么进行到918。
在918处,弹出程序块指针。此外,可直接从包缓冲器且特定来说分别从空闲节 点指针列表或空闲程序块指针列表执行节点及程序块的弹出(弹出相应指针的简略表 达)。在所述实例性实施例中,从传输空闲节点指针高速缓存器810及传输空闲程序 块指针高速缓存器820 (当其用完时可需要补充)弹出所述指针。在920处,用所述 包的序列号及长度填注所述节点且将在918处检索的程序块指针插入到所述节点的程 序块指针字段中(即,使用节点格式,例如图6中所图解说明的节点610)。在922 处,用包数据填充所述程序块。在一个实例中可部署如图6中所图解说明的程序块620。
在决策块924处,如果由于所述包太大而无法装入所述第一程序块内且需要另一 程序块,那么进行到926。在926处,弹出新的程序块指针。在928处,将所述新程 序块指针写入到所述现有程序块的下一程序块指针字段中。在930处,用包数据填充 所述新程序块。在所述实例性实施例中,所述包数据将被连续写入到所述系列程序块 中。然后,返回决策块924以确定是否将需要又一程序块。可重复此回路直到将所述 包完全写入到一个或一个以上程序块中。
在932处,用于写入所述包的过程完成。将与所述包相关联的节点装入到适当队 列中。举例来说,此可通过将节点地址(即,在912处检索的指针)写入到尾节点的 下一节点指针中实现。在此实例中,所述尾节点由队列尾指针(例如,图6中所图解 说明的队列尾指针640)识别。在934处,更新所述尾指针以指向当前节点,所述当 前节点将成为尾节点。
在决策936处,如果接收到另一包,那么返回到912且所述过程可重复。如果另 一包不准备写入到包缓冲器中,那么可停止所述过程。为简明起见,省略使所述包与 其相关联的流相关联(将从此得出适当队列及其相关联的头指针及尾指针)的细节。 使包与流相关联的实例性实施例进一步详细图解说明于下文中。
H2W处理器及传入管控
图10图解说明主机到无线局域网子系统(例如,H2W处理器530)的实例性实 施例。可从各种源接收包。在此实例中,显示两个源以进行例示。此实例性实施例图解说明可包含于H2W处理器530中的组件子组。图10中所示的某些组件可对应于图 5中不包括于H2W处理器530中的组件且出于简明论述的目的显示所述某些组件。所 属技术领域中的技术人员将认识到所显示的组件及其划分仅为例示性。在此实例中, 典型的传入包来自外部接口,例如图5中所图解说明的串行数字输入输出接口 582或 PCI接口 584。另一实例性包输入可来自处理器210或连接到总线520的任何其它组件, 如图5中所示。外部接口包经由外部接口 1006到达H2W处理器530中。举例来说, 来自总线520的包可经由处理器接口 1002到达。先进先出存储器可部署以保存一个或 一个以上包以进行处理。举例来说,先进先出存储器1004及1008可经部署以分别保 存从处理器接口 1002或外部接口 1006接收的包。块1004可经部署以用于保存来自所 述处理器的需要在无线局域网上传输的管理及控制包。在替代实施例中,如下文参照 图48所详述,可省略处理器接口 1002及相关组件,因为在处理器210 (或另一替代 媒体接入控制处理器)中处理遗留包及其它较低通量包(举例来说)且因此不需要此 接口。
在此实例中,目的地媒体接入控制地址结合业务串流识别符(TSID)用于唯一地识 别流。在替代实施例中,其它机构可经部署以用于流映射。如上文所提及,通常将存 在用于执行流的分类的驱动器,所述驱动器可在固件中或在某种其它外部处理器上运 行。所述驱动器可产生具有目的地地址(DA)的媒体接入控制地址、业务串流识别符及 源地址。在此实例中,可使用所述DA及所述业务串流识别符来识别流。将DMAC-业务串流识别符递送到流映射块1020,且从流映射块1020返回对应于所述DMAC-业务串流识别符的流识别符。
流映射块1020的实例性实施例可使用任何类型的查找或其它功能来从既定识别 信息确定流识别符。 一个实例显示于图10B中。在所述实例性实施例中,需要将固件 交互作用从线速度处理解耦,如上文所说明。然而,所述固件可能非常适于创建用于 流映射的表。为解耦所述固件交互作用,部署两个影子流表,表l 1092及表2 1096。 H2W处理器530使用一个影子表(由开关1090选择),同时固件可更新其它影子表 (由开关1099选择)。因此,可部署乒乓技术,所述固件通过所述乒乓技术来更新一 个表,而另一表用于媒体接入控制处理。每一影子流表1092或1096包含具有对应的 流识别符的一列DMAC-业务串流识别符条目。影子流表1 1092包含与流识别符 1094A-N相关联的DMAC-业务串流识别符1093A-N。影子流表2 1096包含具有相关 联的流识别符1098A-N的DMAC-业务串流识别符1097A-N。因此,流映射块1020 将DMAC-业务串流识别符递送到活跃地选择的影子流表,且返回流识别符。在所述 实例性实施例中,为执行流识别符的快速搜索,执行二进制搜索。固件非常适于将 DMAC-业务串流识别符字段排序,以促进二进制搜索。所属技术领域中的技术人员将 认识可在替代实施例中替代使用的替代流映射程序。
现在返回到图IOA,将所述流识别符递送到传输流状态表1030,下文参照图11 详述传输流状态表1030的实例性实施例。传输流状态表1030包含每一流的各种参数。
23传输流状态表1030的物理位置可不同,如上文参照图3及4所说明。举例来说,在一 种配置中,可将传输流状态表保持在H2W处理器530中的硬件表中。在替代实施例 中,所述硬件表可驻存于下层媒体接入控制核心540中(细节未显示),且块530与 540两者可共享同一硬件表。或者,每一块530及540可维持所述硬件表的部分,如 在图3及4中概念性地图解说明。从所递送的流识别符,可选择对应于所述流识别符 的一部分传输流状态表1030且检索各种参数。将在所有这些实施例中说明实例性参 数。
可将某些参数递送到管控单元1010。实例性管控单元实施例进一步详述于下文 中。如果启用加密,那么加密块(在此实例中为消息完整性代码(MIC) 1025)可具有 经递送以用于加密的密钥。
在消息完整性代码块1025中,从所供应的密钥及包的有效负载部分中的数据, 可产生消息完整性代码计算。在此实施例中,使用分离的组件来执行所述有效负载的 加密(参见下文所详述的遗留协议引擎2210)。替代加密技术在所属技术中众所周知 且可替代使用。
可将其它参数递送到标头附加1035以产生标头。所产生的标头可包括用于包标 头本身的字段以及在所述包横穿过媒体接入控制处理功能时使用的控制值。可在递送 将要传输的包之前移除这些控制值。此是一种用于在执行媒体接入控制处理时维持包 的状态信息的实例性技术。所属技术领域中的技术人员将认识用于包上执行各种媒 体接入控制功能时维持所述包的状态的替代技术。
与从流状态表1030递送的参数相关联的政策单元1010可拒绝所述包,在此情况 下,将不执行加密功能(例如,消息完整性代码计算),且可从先进先出存储器移除 所述包。实例性传入管控实施例进一步详述于下文中。如果管控单元1010允许所述包, 那么将有效负载连同在消息完整性代码1025 (如果启用)中产生的消息完整性代码部 分及适当标头一同递送以存储在先进先出存储器1050中。
图11描绘传输流状态表1030的内容的实例性实施例。针对每一流维持参数组。 图解说明单个流的参数。包类型1102规定正在接收什么类型的包。举例来说,所述包 可以是802.11(g)、 (e)或(n)包。可支持其它包类型且可在包类型1102字段中指示所述 包类型。
安全政策1104指示是否将使用安全技术(例如,加密)。所述实例性实施例支 持AES-CCMP (高级加密标准-计数器模式密码区块链消息认证媒体接入控制协议) 及RC4-TKIP (里维斯特(Rivest)的密码-4-暂时密钥完整协议)。接收器地址1106 指示所述包所去往的接收器的媒体接入控制地址。序列号1108指示包序列号。如果启 用暂时密钥完整协议,那么消息完整性代码密钥1110识别所述消息完整性代码密钥。 帧控制1112包括用于建立适当标头的信息。
服务质量(QoS)控制1114可用于指示服务质量等级。在所述实例性实施例中,维 持四个服务质量等级。用于不同服务质量值的队列处置的实例进一步图解说明于下文中。
可使用寿命字段1116来指示包可在缓冲期中保留多长时间。 一旦所述寿命值期 满,那么(举例来说)可冲刷掉所述包。在所述实例性实施例中,在传入管控(例如, 在管控单元1010中)中使用最大缓冲器占用量1118、每流最大包数1120及每流累积 包1122,下文参照图12及13进一步详述传入管控的实例。注意,可结合这三个参数 来使用全局变量当前缓冲器占用量以执行各种传入管控技术。使用尾队列指针1124 来识别尾节点,如上文参照图6及9所说明。
这些传输流状态表变量或参数仅为例示性。所属技术领域中的技术人员将认识 到,额外变量或参数可用于维持每流且也可包括在内。此外,不需要在所有实施例中 支持所有特征且因此可部署这些参数的子组。
图12描绘用于执行传入管控的方法1200的实例性实施例。下文参照图34在传 出越区切换及总的无线局域网服务质量的上下文中提供传入管控的优点的更一般化论 述。如上文参照图11中的实例性传输流状态表1030所说明,可针对每一流维持各种 参数。可基于服务质量等级调整这些参数以通过管控函数更容易地许可包传入或拒绝 包。
虽然与无线局域网服务质量相关,但此是额外技术,其认识到,当与高速传入(其 可以是猝发性且包含高与低服务质量流的混合)面接时,媒体接入控制处理单元中可 形成与无线局域网本身上的拥堵分离的瓶颈。举例来说,媒体接入控制处理功能可由 较低服务质量包填充是可能的。在没有适当管控的情况下,较低服务质量包可在相对 低拥堵的时间期间被引入到管线中,且如果无线局域网上的条件降级且通量降低那么 可形成瓶颈。因此,管控单元1010可经配置以允许较高服务质量包在相对拥堵的时间 期间维持其优先级,且可更自由地允许在拥堵减轻时处理较低服务质量包。802.11标 准(举例来说,b、 g、 e及n)已关注对无线局域网的服务质量控制,然而未充分关注 传入。因此,如果低服务质量应用占据台中的所有缓冲器,那么高优先级的包就无法 接入系统。如本文中所说明,传入管控可防止此类情形且不只在无线局域网服务质量 上提供端-对-端服务质量。所属技术领域中的技术人员根据本文中的教示将认识到管 控函数的各种替代实施例。
返回到图12,在1210处,接收包以进行传输。举例来说,可将所述包引入到H2W 处理器530中且管控单元1010可确定接受还是拒绝所述包进行进一步媒体接入控制处 理。在1220处,确定所接收包的ID。举例来说,可使用流映射块1020。在1230处, 接入与所述流识别符相关联的管控参数及/或管控函数。在实例性实施例中,这些参数 可存储在传输流状态表1030中,且可包括最大缓冲器占用量1118、每流最大包数1120 及每流累积包1122。未在图11的实例性传输流状态表1030中显示的是可规定(及与 其相关联的可能替代参数)多个管控函数的可能性,其中不同的管控函数用于不同的 流。在决策块1240处,如果接受所接收的包根据流特定参数及与当前拥堵或其它系统 条件相关的任何全局变量满足针对所述流规定的适当管控函数,那么进行到1250且许
25可所述包传入。如果不,则进行到1260且拒绝所述包。然后,可停止所述过程。
图13图解说明管控函数的方法1300的一个实例性实施例,其适于如图12中的 步骤1240那样部署。如上文所说明,可针对每一个别流调整参数最大缓冲器占用量及 每流最大包数。这些可与所述流的服务质量等级相关联。注意,在所述实例性实施例 中,部署四个服务质量等级。然而,可确定这些参数的大小以适应不同于预定服务质 量等级的较大变化形式。因此,在某些实施例中,可通过比实例性服务质量设定更细 的粒度来实施所述管控函数。在此实例中,决策块1240 (当如图12中所示的那样部 署时可从1230到达其)确定是否许可包传入(且当如图12中所示的那样部署时分别 进行到块1250或1260)。
决策块1240处的实例性测试包含两项。满足任一项允许接受所述包。如果两项 均不满足,那么拒绝所述包。
可将第一项视为媒体接入控制处理单元内的拥堵的指示符。当所述媒体接入控制 处理单元相对不拥堵时,所述第一项将更有可能为真(甚至对于较低优先级的包),
且因此所述包将更可能被许可传入。在所显示的实例中,当当前缓冲器占用量小于最 大缓冲器占用量时所述第一项为真。在此,所述当前缓冲器占用量是可于所述过程 的全局变量,其指示包缓冲器的总占用量。注意,可针对不同的流以不同方式调整所 述最大缓冲器占用量,从而导致所述OR陈述的第一项或多或少地严格(如所需要)。 举例来说,高服务质量流可具有较高的最大缓冲器占用量设定,因此许可传入更有可 能。相反,较低的最大缓冲器占用量设定将减小许可传入的可能性。换句话说,可每 流规定最大缓冲器占用量,此允许拥堵的含义的不同概念取决于流类型。
第二项通常将在存在相对拥堵时进行支配。在此情况下,每流信息其支配作用。 在所示实例中,如果既定流的每流当前包小于所规定的每流最大包数,那么所述第二 项为真。具体来说,可针对所述流设定每流最大包数,使得较高优先级的流被指派较 高的值而较低优先级的流被指派较低的值。因此,当当前缓冲器占用量相对拥堵时(因 此第一项将不为真),那么较高优先级的包具有较高的每流最大包数将使所述包更有 可能被许可传入。可将较低优先级的每流最大包数调谐得较低。因此,不存在实际上 将其限制在一起,将许可相对少的较低优先级包传入。在替代实施例中,可通过时间 值(时间值可在流之间变化)计算每流累积包以产生流的包速率。然后,同样可将每 流最大包数设定为每流包速率。构想用于许可或拒绝包传入的各种替代参数及相关条 件,且所属技术领域中的技术人员根据本文中的教示将明了所述参数及相关条件。
注意,这些参数不需要保持静态且可基于系统的其它条件(举例来说,如来自物 理层的速率反馈所指示,链路质量及相关联的速率)更新。所属技术领域中的技术人 员将认识到所述变量中的每一者的多种设定且将认识到可响应于改变的系统条件而以 不同方式改变这些设定。
最终结果是可仅通过从传输流状态表1030检索每流参数来以线速率有效地部署 有效的管控函数,且可针对每一传入包快速作出决策。注意,根据传入管控函数许可或拒绝包传入可与任何流控制技术组合(其实例在所属技术领域中众所周知),使得 可在不丢失包的情况下实现可变速率的包处理。在一个实施例中,可在外部接口上接 收整个包之前接收流识别符以允许作出传入管控决策,从而避免在拒绝所述包时使用 接口带宽来接收包。
总而言之,此实例突出管控的数个可选项。在高负载下,可能阻止单个流(甚至 高优先级流)支配资源,同时允许较高优先级的流更大地接入。在较轻负载下,限制 性较小的决策可允许低优先级的流使用资源,因为当时没有正在消耗所述资源。传入 管控可以是所说明的四个变量(且替代实施例可使用其它变量或参数)的任一函数。 管控可用于公平性,以便即使对其它流类型偏好到任何所需的程度也至少允许对所有 流类型的某种接入。管控还可用于管理较差的链路质量。不管需要链路质量还是拥堵 调整还是两者的组合,可使用相同(或类似)参数。
返回到图10A,将先进先出存储器1050的输出递送到分段块1060。请回忆,先
进先出存储器1050可包括一个或一个以上已被接受的包连同其相应的标头及消息完 整性代码计算(如果可应用)。可依据包类型执行分段。举例来说,可针对802.11(e) 或(g)启用分段,或针对需要分段的任何其它包类型启用分段。在所述实例性实施例中, 通过接入点管理功能(其是信标帧中设定的能力元素)设定全局变量,分段阈值(FT)。 其通常在短的时间周期内不改变。固件可在寄存器中设定所述分段阈值。如果包超过 所述分段阈值,那么将所述包分为FT大小的分段,其中可能存在残余部分分段。
注意所述分段并非必需。在替代实施例中,可省略分段1060及所有相关功能。 在另一替代实施例中,如下文参照图48进一步详述,可部署一个以上媒体接入控制处 理块。在此种实施例中, 一个媒体接入控制处理块可经装备以执行分段,而另一媒体 接入控制处理块将不如此装备。在一种情形中,高速包可不需要或支持分段,且可在 不具有分段块1060的H2W处理器530中处理,但可在额外媒体接入控制处理器(例 如,下文所详述的媒体接入控制处理器4810)中提供对包括分段的其它包类型(例如, 遗留802.11包)的支持。所属技术领域中的技术人员将容易地了解当部署包括能够处 理各种包类型的所有功能的单个处理器的实施例与包含每一者能够提供任一子组的功 能性的两个或两个以上媒体接入控制处理器的另一实施例时的折衷。当然,也可部署 能够处理需要单个组的功能性的包的单个媒体接入控制处理器。
分段块1060基于分段阈值及包的长度确定分段的数量。将分段的数量递送到列 表功能块1065,列表功能块1065向分段块1060返回指针。当不启用分段或未超过所 述分段阈值时,分段的数量将为一,且将返回单个节点指针及其相关联的一个或一个 以上程序块指针。列表功能块1065执行各种链接表程序,其可应用于所部署的存储器 结构(例如,以上图6中所说明)。注意,如图所示,节点指针高速缓存器810及程 序块指针高速缓存器820驻存于所述列表功能块中,此作为实例。因此,可从每一高 速缓存器中的可用池取一池可用指针。未显示如何刷新及补充这些高速缓存器的细节, 但所属技术领域中的技术人员根据本文中的教示将明了所述细节。概念性地,如图10A
27中所示,可将分段的数量发送到列表功能1065且可返回所述数量的分段的一群组指 针。如果不存在分段,那么分段的数量为一,且可返回单个节点指针及其相关联的程
序块指针或指针。在替代实施例中,可通过分段块1060执行类似功能,其中针对每一 分段进行对列表功能1065的重复调用直到使整个包成为分段。随着返回每一指针,全 局变量缓冲器占用量根据程序块或包的数量递增。缓冲器占用量在所述实例性实施例 中可以是任一度量,且替代实施例可使用替代度量。
图14描绘先进先出存储器1050的实例性实施例。先进先出存储器1050包括一 个或一个以上媒体接入控制服务数据单元(MSDU) 1410A-N。每一媒体接入控制服务 数据单元包含标头1430、有效负载1440及消息完整性代码计算1450 (如果使用暂时 密钥完整协议),如上文所说明。在一个实施例中,可将控制数据添加到先进先出存 储器1050中的每一媒体接入控制服务数据单元,其可从分段块1060反馈回来,如上 文所说明。在替代实施例中,不将控制信息维持于先进先出存储器1050中。注意, 在将包写入包缓冲器存储器之前将经添加以用于H2W处理器530的控制信息剥离。
如果不需要分段,那么可将所述媒体接入控制服务数据单元直接存储于缓冲器 1062中。其可与从列表功能1065检索的节点指针及程序块指针一同存储。所述列表 功能给出每一包的编号及程序块地址,所述包有效负载(且因此所述程序块有效负载) 被写入到对应地址中的存储器中。如果需要分段,那么将所创建的每一分段也存储于 缓冲器1062中。
将缓冲器1062的内容递送到存储器写入1070。存储器写入1070与存储器仲裁器 1080面接,其争用到所述包缓冲器存储器的接入以将包及/或分段实际加入到所述包缓 冲器中。注意,可依据媒体接入控制处理器专用集成电路310的配置将存储器仲裁器 1080实施为存储器仲裁器556或552中的一者(如图5中所示)。
显示存储器仲裁器1080从存储器写入1070接收请求且可从争用到所述包缓冲器 存储器的接入的其它组件接收其它请求。当接入被准予时,准予将被返回到存储器写 入1070且所述包及/或分段被写入到所述包缓冲器存储器中。可使用类似于图9中所 说明的方法来执行所述存储器写入。举例来说,创建所述节点且用当前数据(包括长 度及程序块指针等)对其进行填充,如所说明。在所述实例性实施例中,然后在64 字节接入中写入所述程序块,直到每一 512字节的程序块被填充。存储器写入1070 继续进行请求直到将整个包(包括所有分段(如果有))写入到RAM中。检索用于 将所述包装入适当队列中的指针作为所述包的节点指针(或每一分段的节点指针)以 及尾队列指针以识别所述队列中的最后节点(将添加后续新包及/或分段的地方)。
在一个实施例中,存储器仲裁器从传入状态机、无线局域网传输状态机、无线局 域网接收状态机及传出状态机接收请求。其可通过优先级在这些请求之间进行仲裁, 一个实例是以下优先级次序无线局域网接收、无线局域网传输、传出及传入。所述 状态机可需要整个包被读取或写入。在其它时间,所述状态机可仅寻找节点指针、程 序块指针及/或其它控制信息以执行调度及其它功能。可出于无线局域网接收/传输及传出/传入的目的建立覆盖控制及包读取及写入的优先级系统。
当流的规范(即,TSPEC)由台作出时所述流被设立。在那时,固件可在与所述 流相关的所有表中设立条目。其还可填注所述流的头指针(且因此,第一包)。所属 技术领域中的技术人员将认识用于追踪新队列及用于更新相关联的头队列指针的各种 其它方法。
在所述实例性实施例中,所述存储器仲裁器将存储器存取限制为有限数量的字节 (即,64)以允许其它组件公平接入包缓冲器存储器。在实例性实施例中,给予传入
写入请求、无线局域网接收写入与无线局域网传输传出之间的存储器循环接入(即, 下文中进一步详述的越区切换)。举例来说,如果在中断的串流中写入整个媒体接入
控制协议数据单元,那么1500字节的媒体接入控制协议数据单元将对等待接入的其它 引入大量延迟。调度(例如,循环)防止其它过程中的停转。
图15图解说明将媒体接入控制服务数据单元1410分为一个或一个以上分段(将 每一者的大小确定为分段阈值)加可能的残余分段的过程。在此实例中,省略控制 1420。在一个替代实施例中,可简单地将控制1420预先计划为第一标头1510,如图 所示。控制信息可包括指针或任何其它控制信息(其可被预先计划为每一标头1510), 且可在存储器写入完成之前被剥离。在图15中,每一分段1530A-N预先计划有标头 1510且每一分段被识别为有效负载1520,其是来自媒体接入控制服务数据单元的有效 负载1440的一部分。每一标头1510包括序列号1540 (其是所述包的序列号)及分段 号1550 (其是与每一个别分段相关联的编号)。
在所述实例性实施例中,在执行分段之后,随后将每一分段当作包。此允许包及 分段通过本文所详述的各种媒体接入控制处理技术的高效处理。替代实施例不需要共 享此要求。如果使用暂时密钥完整协议,那么最后的分段1530N包括消息完整性代码 1450。请回忆,在所述实例性实施例中,在由消息完整性代码1025进行分段之前跨 越所述包计算消息完整性代码。
图16描绘仲裁器556结合两个或两个以上存储器写入1610A-1610N的概念性配 置。存储器写入1610可以是刚刚说明的存储器写入1070或下文所详述的各种其它存 储器写入中的一者。每一存储器写入块向仲裁器556发送请求1630。仲裁器556向每 一存储器写入块发送指示存储器写入何时开始的准予线1640。仲裁器556还可控制多 路复用器1620以选择被准予存储器写入组件的输出以递送到同步动态随机存取存储 器控制器1650。举例来说,同步动态随机存取存储器控制器1650可以是同步动态随 机存取存储器接口 562 (在图5中所示的实例中),或可包括耦合到同步动态随机存 取存储器340的任何其它组件。注意,可为存储器仲裁器552部署类似仲裁方案以根 据所选择的配置模式向包存储器写入包。各种存储器仲裁方案在所属技术领域中众所 周知,可在本文中的各种实施例中部署所述方案中的任一者。在实例性实施例中,所 述控制器通常由接口跟随。所述控制器可控制到所述存储器的读取及写入的逻辑,而 所述接口提供物理连接。图16用作一个例示性实例。
29传输处理
在先前部分中,阐述了图解说明传入包的高效媒体接入控制处理方面的各种实施 例,从而以使用各种数据结构处理进入包缓冲器的包以等待传输而终结。在此传输处 理部分中,通过使用上文介绍的数据结构所获取的进一步效率将变得明显。此外,将 介绍提高高速媒体接入控制处理的效率的其它方面。
大体来说,能够支持多个STA的许多流的接入点提供比支持16个流的相对简单 STA更复杂的分析。因此,在下文所详述的许多实施例中,更加复杂的接入点将用作 参考。在必要时,将突出STA与接入点之间的差异。在传输处理中,通常需要能够容 纳较大数量的流,且在传输机会变得可用时仍快速响应。此外,对遗留传输规范的支 持可重要。由于电路面积的减小、对电路的更高效使用、设计的简单性及/或与遗留协 议及组件面接的能力,因此突出某些方面。
图解说明在传输机会产生时对即时响应的需要的一个实例包括非调度自动省电 递送(UAPSD)协议。另一实例是立刻块确认下文所详述的实施例通过保持一子组的包 准备快速响应而提供对多个流的高效支持。当获得传输机会时,此允许对非调度自动 省电递送、立刻块确认及即时递送的支持。在多数情况下,此将防止对用于保留带宽 的先前使用技术(例如,向自身发送"清理发送"等)的需要。在一个实例中,如果 接入存储器时的拥堵阻止准备较大的聚合,那么可在传输机会期间快速传输一小组包。 一旦接收到所述组包的确认,如果所述传输机会中存在剩余容量,那么可传输额外包。 如先前陈述,从包处理的高速部分移除固件提高效率。在实例性实施例中,各种高速 缓存器及队列可经部署以将固件处理(及其相对较低的速度)从媒体接入控制处理解 耦。这些及其它方面将图解说明于以下各种实施例中。
在下文所详述的实例性实施例中,图解说明数个方面。 一方面,部署多个高速缓 存器,每一高速缓存器用于存储与流的包相关联的元素。这些高速缓存器(在下文中 由节点高速缓存器1810图解说明)允许各种应用中的低延迟响应时间。低延迟响应允 许台或接入点有效利用各种类型的传输机会(例如,反方向准予、非调度自动省电递 送及类似请求)且能够在传输之后捕获剩余传输机会。低延迟响应促进避免冲突(举 例来说,早的传输机会中的成功即时响应可避免由将在稍后的响应尝试中出现的争用 引起的冲突)。低延迟响应可促进电力节约。
另一方面,影子队列(在下文中称作乒乓队列,且由等待中队列及服务中队列定 义)允许在传输机会之前(甚至在另一流正被处理以进行传输时)将流的元素排队。 因此,所述流正等待,准备被处理。此促进尽可能晚地推迟处理。经常需要推迟以允 许推迟流的速率决策,因为所述速率决策便可尽可能地最近且最新,从而允许选择适 当的速率来使通量最大化及/或使误差最小化。
另一方面,用与流的包相关联的元素填充队列(如队列1842、 1850及1855在下 文中所图解说明)促进用于形成包的快速长度确定(可用于推迟速率确定)以及促进 包的即时聚合。大体来说,除聚合以外,所图解说明的方面促进重传(即,响应于所接收的块确认)。在许多上下文中单独需要这些方面,且这些方面也可组合。
在遗留802.11系统中,通常提供对四个EDCA队列的支持。请回忆,EDCA队 列在媒体上的非调度周期期间争用接入,且一旦获得传输机会,那么尽可能多地传输 数据,多达最大的所规定传输机会。为适应竞争的EDCA队列,各种回退方案经部署 以防止通过竞争EDCA队列连续同时尝试获得传输机会。因此,每一EDCA队列可与 信道相关联,针对所述信道维持各种定时器,进行空闲信道评估(CCA)且执行用于获 取接入的其它程序。可跨越信道或队列共享这些功能中的某些,且某些可不同。在无 线通信装置(例如,接入点)中,需要同时支持许多流(即,实例性实施例中的256 个流),维持回退定时器及执行与获得较大数量的流中的每一者的传输机会相关联的 各种开销可不需要。信道类型的各种参数的不同设定可导致提供不同的服务质量等级。 图17描绘经配置以使用较小固定组的标准EDCA队列1730支持相对大的多个 EDCA队列1710的无线通信装置的一部分的实例性实施例。在一个应用中,可部署多 个EDCA队列,每一EDCA队列提供不同的服务质量等级。在此实例中,维持多个N 个每台EDCA队列1770A-N。在所述实例性实施例中,可维持所支持的256个流中的 每一者的256个此类队列。循环选择器1720在每台EDCA队列之间进行仲裁且选择 将要排到4个标准ECDA队列1730A-D中的一者中的数据。在替代实施例中,可在选 择器1720中执行除循环以外的替代调度算法。可以各种方式部署选择器,其实例详述 于以下图18中。在所述实例性实施例中,固件包括调度功能,所述调度功能提供用于 选择每台EDCA队列以使用所述标准EDCA队列中的一者进行递送的选择准则。在替 代实施例中,当然可支持任何数量的EDCA队列。由于现有遗留处理组件的可用性, 在一个实施例中部署四个队列,其中需要必要的定时器及信道评估组件来争用及获取 到共享信道的接入。所属技术领域中的技术人员将容易地找到多个遗留802.11核心及 组件,其可包括于本文中的各种实施例中或经修改以支持所需要的额外特征。下文进 一步详述根据本文中所揭示的原理的使用遗留核心及/或组件的实例性实施例。可使用 标准EDCA程序来传输调度于EDCA队列1730A-D中的包。固件调度器可执行除 EDCA以外的额外调度,例如轮询传输机会(其实例在HCCA协议中已知)。如所属 技术领域中的技术人员将明了,可研发各种其它协议,可针对其修改调度器。除循环 选择EDCA队列1710以用标准队列进行传输以外,通常更有效的是针对每一 STA聚 合包且针对来自所述台的所有包进行特征导引(或其它空间处理)。当传输被导引到 特定台(或一群组类似定位的台)时,特征导引提供最大益处。因此,可有意义地将 前往既定台的所有包放到一个缓冲器中,以便可将其聚合并传输到所述台在替代实施 例中,使单个缓冲器用于所有EDCA包是可能的。然而,在此情况下,当所述包与去 往其它台的包(与其它特征导引值)交错时,那么可难以进行或无法进行聚合。
EDCA队列的使用仅为例示性。大体来说,可部署与各种类型的信道相关联的队 列的选择。所述信道类型可基于服务质量等级及/或传输类型(例如,经调度的接入或 基于争用的接入)而不同。
31图18描绘图解说明下层媒体接入控制核心540的各种组件的实例性实施例。提
供节点用于包处理的效率的各种方面、用于将固件从包处理速度解耦的队列及高速缓 存器及其它方面将图解说明于以下实例中。所属技术领域中的技术人员将认识到,可 部署额外组件(未显示),且并非在任一特定实施例中都需要所图解说明的每一方面
或特征来利用其它方面或特征。图18的细节图解说明流的调度及经调度以进行最终传
输的各种包的识别。结果以与经调度包相关联的识别符、相关联参数及每一信道类型
的就绪信号递送到传输(TX)引擎1880而终结。在此实施例中,使用节点执行包识别, 如上文所详述。在此实例中,遗留802.11类型信道用于例示目的。所属技术领域中的 技术人员将认识到可使用图18中所详述的类似组件来适应任一信道类型。在此实例 中,维持四个EDCA队列,EDCA 0-3 1850A-D。还与广播控制信道1860 —同部署HCCA 队列1855。进一步详细图解说明EDCAO的结构,其中省略其它信道的细节,因为其 在各种实施例中可相同或类似。
传输调度以固件填充与每一信道(举例来说,1850或1855)相关联的一个或一 个以上命令列表1815开始。所述命令列表填充有将被调度的流识别符。所述命令列表 可包含流识别符连同传输机会。对于EDCA队列,传输机会将被争用,且因此不可提 前知道传输时间。然而,最大传输机会大小可连同所述流识别符包括在内。对于HCCA 调度,可知道所述传输机会大小以及经调度的递送时间,且此传输机会信息可与所述 流识别符一同包括在相关联的命令列表1815中。对于每一信道,阵列控制器1840可 控制所述信道的包的调度。所述阵列控制器弹出来自命令列表1815的流识别符以确定 将要传输的下一经调度流。维持这些命令列表中的数个允许固件调度器一次作出一批 决策且将其放到相应列表中,可随着时间实施所述决策。此允许各种阵列控制器1840
处理来自所述列表的流识别符,从而减小对固件交互作用的需要。此允许减少或消除 对固件的中断且将所述固件调度从媒体接入控制处理解耦,如上文所说明。所属技术 领域中的技术人员将容易地修改用于调度流以在所支持组的信道(包括基于EDCA类 型争用的信道或HCCA类型轮询或经调度信道)中进行服务的替代技术。
在此实例中,为所支持的多个流中的每一者维持传输节点高速缓存器1810。传输 节点高速缓存器1810用作通用每流高速缓存器的实例,且适于部署为上文所图解说明 的队列1710。在所述实例性实施例中,将维持256个此类流。每一流高速缓存器包含 用于多个节点(其表示所述流的相应包)的空间。在所述实例性实施例中,在每一传 输节点高速缓存器1810中维持每一流的四个节点。因此,至少4个包被识别为将要针 对256个流中的每一者传输的下一批包。可通过至少这四个节点满足那些流所需要的 任何立刻传输。在替代实施例中,如果需要,可支持额外节点。
虽然在此实例性实施例中使用节点来图解说明一个方面,但存在可部署的多种等 效技术。举例来说,可高速缓冲存储替代数据结构。在另一实例中,可高速缓冲存储 包本身。大体来说,图解说明为多个高速缓存器1810的高速缓存器将用于存储一个或 一个以上元素,可在处理所高速缓冲存储的元素之后从所述元素识别及检索相应的一个或一个以上包。
传输节点高速缓存器刷新1835与高速缓存器1810交互作用以保持其填满及更 新。传输节点高速缓存器刷新1835可与存储器仲裁器(例如,上文所详述的存储器仲 裁器10S0)交互作用。在一个实施例中,作出检索流的一个或一个以上节点的请求, 且当包缓冲器被准予接入时,可将所检索的节点放到相应的传输节点高速缓存器1810 中。可远离图18中所示的剩余处理而相对自主地操作传输节点高速缓存器刷新。
每一信道的阵列控制器1840确定将从命令列表1815传输的下一流识别符。从所 述流识别符,阵列控制器1840接入传输阵列状态表1830以检索与所述流识别符相关 联的各种参数及/或存储状态。因此,传输阵列状态1830维持所支持流的每流状态信 息。(注意,在替代实施例中,传输阵列状态表1830可与任何其它每流状态表(例如, 上文所详述的传输流状态表1030)组合。)注意,传输节点高速缓存器刷新1835还 与传输阵列状态表1830交互作用以更新与高速缓存器刷新相关联的某些参数,下文加 以进一步图解说明。举例来说,传输节点高速缓存器刷新1835基于相应节点的传输队 列检索用于所述流的节点。
阵列控制器1840使用经调度流的每流状态来填充其相应的传输节点阵列1842(队 列的例示)。传输节点阵列1842是所述流的以递送到传输引擎1880的传输次序排序 的节点阵列。如图所示,将当前所调度流的存储在传输节点高速缓存器1810中的所述 组节点(由命令列表1815识别)递送到所述流在其上被调度以进行传输的信道的传输 节点阵列1842。此允许在传输变得可用时立刻调度一组已知节点。在所述实例性实施 例中,四个节点可用于每一流以被放到传输节点阵列1842中。剩余传输节点阵列1842 可填充有流的额外节点。在实例性实施例中,传输节点阵列1842针对经由传输引擎 1880的所调度递送一次保存64个包识别符(即,节点)。前四个是从所述流的传输 节点高速缓存器检索的而剩余包是从包缓冲器存储器检索的。以与其它包缓冲器存储 器存取类似的方式,可作出从所述包缓冲器存储器检索所述流的节点的请求(细节未 显示)。在替代实施例中,可直接从所述包缓冲器填充节点阵列而无需首先从高速缓 存器(例如,高速缓存器1810)检索元素。在又一实施例中,根本不需要部署高速缓 存器1810,但仍可享受节点阵列1842所图解说明的方面。
阵列控制1840、命令列表1815及相关组件是可包括于选择器(例如,上文参照 图17说明的选择器)中的组件的实例,所述选择器用于从多个高速缓存器(即,1810) 选择元素且将其存储在多个队列(例如,分别由队列1842及EDCA及HCCA队列1850 及1860图解说明)中的一者中。大体来说,选择器可基于所需要的任何因素(例如, 服务质量、信道类型及类似因素)选择任何数量的每流高速缓存器或每流队列(即, 包缓冲器中的传输队列)以将元素存储在队列(例如,节点阵列1842)中或多个此类 队列中的一者中。
在所述实例性实施例中,如上所述,需要传输节点高速缓存器刷新1835的自主 操作,所述自主操作与填充将要递送到传输引擎1880的传输节点阵列1842的各种阵列控制器1840分离。然而,有时可能相应流的传输节点高速缓存器可需要在与阵列控 制器1840正从包缓冲器存储器存取来自所述流的队列的包大约相同的时间刷新。因 此,可定义互锁功能以防止阵列控制器1840或传输节点高速缓存器刷新1835破坏传 输队列,从而防止复制或丢弃来自所述队列的包。所属技术领域中的技术人员将明了 各种互锁技术,且下文参照图20进一步详述实例性实施例。
可将额外方面并入到各种信道(例如,EDCA信道1850、 HCCA信道1855或广 播控制信道1860)中。在所述实例性实施例中,将传输节点阵列1842实施为两个影 子节点阵列。因此,第一影子传输节点阵列可被填充所调度流的节点且可向传输引擎 1880断言就绪信号。然后,阵列控制器1840可继续进行以从其命令列表弹出下一流 识别符,且执行用所述下一流的包装载第二影子传输节点阵列所必要的处理。以此方
式,可处理一个传输节点阵列以进行传输,同时另一传输节点阵列正被填充,从而减 小与在开始新的节点阵列填充过程之前等待传输完成相关联的可能延迟。链路识别符
1844与传输节点阵列1842相关联,因此传输引擎1880可检索适当的链路参数及状态 以用于在两个台之间的实际物理链路上传输所述流。当如刚刚所说明的那样部署乒乓 或影子高速缓存器时,链路识别符1844存储一个影子传输节点阵列中所包含的流的 链路识别符A而链路识别符B包含第二影子传输节点阵列中的流的链路识别符。在替 代实施例中,还可将与每一相应流相关联的其它参数连同1844中的链路识别符一同存 储。
所述两个影子节点阵列是影子或乒乓队列的一般方面的例示。大体来说,队列可 对应于特定类型的信道,例如EDCA或HCCA信道。每一信道可具有从多个服务质量 等级中选择的相关联服务质量等级。此实例中的队列包含两个影子队列。还可将所述 队列说明为包含服务中队列及等待中队列。所述物理影子队列被交替指派为所述服务 中队列或所述等待中队列。因此,如上文所说明,可在不打扰所述服务中队列的处理 的情况下填充所述等待中队列。当所述服务中队列已完成处理时,那么可将其对应的 影子队列重新选择为等待中队列,且可开始在任一时间用另一流填充所述对应的影子 队列。然后,将作为等待中队列的影子队列重新选择为服务中队列,且用于传输的处 理于是便可开始。以此方式,可选择相对多数量的流(其可与各种服务质量等级相关 联)来存储在适当队列中(根据服务质量等级以及经调度的接入或基于争用的接入等)。 所述选择可基于循环(如上文所说明)或任何其它类型的选择准则。
如上文参照高速缓存器1810所陈述,虽然在此实例性实例中使用节点来图解说 明一个方面,但存在可部署的多种等效技术。举例来说,替代数据结构可存储于队列 中,例如1842 (或1850及1855)。在另一实例中,可存储包本身。大体来说,图解 说明为队列1842的队列将用于存储一个或一个以上元素,可在处理所述排队的元素之 后从所述元素识别及检索相应的一个或一个以上包。
虽然用(举例来说)来自节点阵列高速缓存器1810的四个节点填充"乒乓"缓 冲器1842的一侧,但传输期间可存在继续填充所述阵列的时间。已经提到且进一步详
34述于下文中的是非调度自动省电递送模式,其立刻利用所述前四个包。在非调度自动 省电递送中,可将指示符(例如,"更多"位)与所述前四个包一同发送。在所述包 的传输之后且等待所述前四个包(具有任何所需要的帧间间隔)的确认时,传输器需 要准备额外传输。在此时间期间,可根据所部署的实施例适当地从传输节点高速缓存
器或包缓冲器接入来自所述流的额外节点。对于其它传输类型,可存在保持所述传输 节点阵列填满以进行可用传输机会所提供的所有包的传输的类似机会。
在任一既定实施中,可向广播控制1860部署与阵列控制器1840类似的功能性。
然而,其可需要减少的或替代组的功能性。在此实例中,部署包含指向信标包的指针
1863的信标块1862。如所属技术领域中的技术人员所熟知,固件可产生所述信标包, 包括所需要的任何标头信息、参数等。信标1862可在适当时间检索将要传输的所创建 包。举例来说,固件调度器可产生正被创建的信标的时间戳值且将此时间戳值递送到 信标块1862。因此,可在适当周期或在适当周期附近传输所述信标(即,802.11实施 例中的TBTT)。在此种实例中,信标1862穿过广播控制1860产生到传输引擎1880 的就绪信号。执行对媒体的争用且将在针对与等待信道进行清理相关联的任何推迟进 行调整的适当时间传输所述信标。所属技术领域中的技术人员将容易地根据本文中的 教示修改图18以提供信标或其它系统信令消息。在替代实施例中,信标1862实际上 可直接存储信标包,而不是使用间接指针1863。
以类似方式,还可产生广播或多播信道。广播及/或多播信道实质上是特殊用途流 识别符。不需要如上文所说明的命令列表1815那样用多个ID调度广播信道。然而, 如果需要多个广播信道及/或各种多播信道,那么还可部署类似调度程序(细节未显 示)。广播或多播包可由广播多播块1864中的指针1865识别以在传输引擎1880上传 输(经由广播控制1860)。另一选择为,所述包本身可存储在1864中。注意,如说 明图18时所使用,将明了,当部署例如上文参照图6所详述的包缓冲器存储器方案时, 可用对节点的参考替代对包的参考。因此,可看出,当节点及程序块用于存储包时, 在包缓冲器存储器本身内维持所述队列是高效且容易的。此外,可通过简单地检索及 存储节点(而不是移动包连同所述节点)来维持用于调度各种流的高速缓存器(如图 18中所图解说明)。如下文将进一步详述,实际包数据被从包缓冲器移除的唯一时间 是在所述包的传输点。同时,简单地使用节点来完成包处理及调度。下文在说明传输 引擎1880时进一步详述图解说明节点的益处的额外方面。在接收处理侧上也享受类似 益处。
注意,如下文参照图48及49进一步详述,在替代实施例中,可存在来自其它源 而不是包缓冲器的用于在传输引擎上递送的包。举例来说,可使用固件媒体接入控制 处理器在处理器中将遗留或低通量包格式化,且可提供那些包以进行传输。注意,上 文所详述的结构可适于此种实施例。举例来说,命令列表1815还可用于调度来自替代 源的传输。举例来说,流识别符、将要发送的包的数量及所述包是高通量还是低通量 (或者,更一般来说,来自包缓冲器还是外部包源)的指示符。如果调度低通量包,那么可从传输处理器存储器先进先出存储器(即,4950)对其进行检索,或另一选择
为,从处理器存储器对其进行检索(例如,通过直接存储器存取),如下文所说明。
注意,在此种实施例中,另一选择为,也可在固件中形成针对广播控制1860产生的消 息,例如信标及任何广播或多播消息。因此,可省略组件1862、 1864及1860。
图19描绘下层媒体接入控制核心处理器540的区段的实例性详细实施例。如图 19中所示,选择器1930递送从命令列表1815检索的流识别符。此为概念性例示,在 于正在接入什么类型的信道是任意的。可选择任何数量的命令列表且将其耦合到传输 阵列状态1830。当来自所选择信道的流识别符被提供到传输阵列状态1830时,检索 相关联的每流阵列状态1902并将其递送到需要所述状态的各种组件的一个或一个以 上组件。选择器1930是图解说明基于流识别符选择性地检索每流参数(即,存储在阵 列状态1902中)的选择器的实例。大体来说,流状态表(或任何其它组的每流参数) 可由流识别符检索,或可通过根据流识别符选择流索引及使用所述流索引来査找每流 参数(可能存储在一个或一个以上存储器中)而间接检索。本文中所图解说明的实例 显示各种接收及传输每流参数,可使用这些技术中的任一种存储及/或接入所述参数。 如图3及4中所大体图解说明,集成电路(举例来说)可经部署以依据所述集成电路 以哪种模式配置来使用任一类型的每流参数存储。此促进在可用的存储器中有效地支 持可变数量的流(不管大还是小)的能力。
图解说明实例性每流阵列状态1902。当从包缓冲器检索相关联流的节点时,将要 检索的节点的数量是窗口大小及可用包的最小值。因此,对于可用包的总数量或通行 窗口大小1910,可将多达64节点的系列(在所述实例性实施例中)填充到传输节点 阵列中。如上文所说明,通过读取每一节点中的下一队列指针、检索所述下一节点、 将所述节点放入传输阵列中等等来确定相应流的传输队列中的每一后续节点,直到可 用于所述流的包耗尽或窗口已满。
头队列指针1912指示指向相应流的传输队列(例如,链接表数据结构)的队列 的头处的节点。当将要传输来自所述流的包时,所述头队列指针是将被依次检索的第 一节点。所述队列中的包的数量存储于字段1914中。当接收所述流的传入包时此数量 将增大且随着所述传入包被传输而减小。高速缓存器中的包的数量(存储在字段1916 中),其可与传输节点高速缓存器刷新1835联合使用以补充传输节点高速缓存器1810 且用于用来自那里的节点填注传输节点阵列1842。为既定流检索链路识别符1918且 可将所述链路识别符存储于链路识别符1844中以用于传输器中以检索链路特定状态 及/或参数。在某些实施例中,节点的链接表可由较大数量的包组成。窗口大小可用于 确保仅处理窗口内的那些包以进行传输。窗口端指针1920可用于窗口管理。替代实施 例可包括额外字段,且可省略所说明的那些中的某些。实例性额外字段包括经聚合媒 体接入控制协议数据单元密度字段及传输队列尾指针。
图20图解说明可经部署以如图18中所示的那样使用的实例性互锁。在此实例中, 传输节点高速缓存器刷新1835在其处于从包缓冲器存储器检索信息的过程中时产生
36忙碌信号。在此时间期间,其还向传输节点高速缓存器的流识别符指示其正在更新。 然后,阵列控制器1840知道其可能正在处理的流识别符是否具有从包缓冲器接入的节
点(注意,可存在数个阵列控制器1840,每一者接收这些信号, 一个信号用于每一信 道)。因此,阵列控制器1840可推迟针对所述流识别符接入包缓冲器RAM,因为来 自所述流识别符的某些包可能处于到节点阵列高速缓存器的通行中。此防止阵列控制 器1840打扰流的传输节点高速缓存器刷新操作。
此外,部署多个比较块2010以从传输节点高速缓存器刷新接收流识别符。每一 比较块从信道(即,EDCA0-3 1850A-D,细节未显示)接收指示相应信道的阵列控制 器1840正在接入包缓冲器以检索用于填充相应传输节点阵列1842中的额外空间的节 点的流识别符。如果这些流识别符中的任一者匹配,那么将断言相应的线。OR("或") 门2020提供所有比较输出的逻辑OR以产生忙碌信号。传输节点高速缓存器刷新1835 可等待继续更新直到所述忙碌信号离开。或者,其可改变流识别符以尝试更新不同流 的高速缓存器。如果改变所述流识别符解断言所述忙碌信号,那么传输节点高速缓存 器刷新1835知道其将不会打扰阵列控制器1840中的任一者的操作。所属技术领域中 的技术人员将认识到对此互锁方案的各种修改以及其它互锁方案,可在本文的教示的 范围内部署所述互锁方案。
在替代实施例中(细节未显示),如上文那样为每一流维持四包节点高速缓存器 (FPNC) 1810。每一高速缓存器包含节点指针(12字节)。如上文,这些是当相应流 得到传输机会时将在无线局域网上传输的前四个包。在此实施例中,当在传入处接收 到包时,将其放入同步动态随机存取存储器中且向节点高速缓存器有限状态机(FSM) (其可类似于传输节点高速缓存器刷新1835或经部署以替代传输节点高速缓存器刷 新1835)发信号。如果对应于所接收包的四个节点包高速缓存器中存在空间,那么将 节点信息添加到相应高速缓存器存储器。当将节点信息发送到同步动态随机存取存储 器以放入链接表中时,还将其发送到所述四包节点高速缓存器。如果所述四包节点高 速缓存器中存在空间及如果所述四包节点高速缓存器未在使用中(在相应流的无线局 域网传输机会期间),那么将所述节点信息放入所述四包节点高速缓存器中。服务中 位可由阵列控制器1840设定以向有限状态机指示所述流在服务中。此在作用上类似于 上文所详述的互锁。
所述四包节点高速缓存器状态机在先到先服务的基础上操作以更新所述四包节 点高速缓存器。所述四包节点高速缓存器尤其用于服务启用非调度自动省电递送的台 的包,下文进一步详述。当接收到触发时,下层媒体接入控制核心540确认所述触发 且可立刻以多达4个包的聚合来响应,如上文所说明。所述四包节点高速缓存器状态 机在因传输机会而耗尽四包节点高速缓存器之后需要补充四包节点高速缓存器。所述 四包节点高速缓存器状态机可使用识别需要补充的流的队列来操作。所述队列可由呈 优先级次序以由所述四包节点高速缓存器进行服务的流组成,所述优先级由例如所述 台是否处于非调度自动省电递送模式中,所述流是基于HCCA的流还是基于EDCA的流及其它考虑因素等决定。
此替代实施例的作用可类似于使用上文所详述的互锁的传输节点高速缓存器刷 新块1835。大体来说,可需要基于来自传入及/或周期性刷新的触发来更新节点阵列高 速缓存器。时间关键应用(例如,语音)可需要来自传入的瞬时(或近乎瞬时)触发。 周期性刷新可用于用包缓冲器中的包补充所述传输节点高速缓存器(即,在所述流的 一个或一个以上包已被发送以进行传输且不再在节点高速缓存器1810中之后)。(举
例来说,如果包到达传入,且所述节点高速缓存器已满,因此所述包只好传入包缓冲 器, 一般需要的结果是保持所述高速缓存器填满)。在所述实例性实施例中,周期性 刷新可以是自主操作的后台过程。所属技术领域中的技术人员将认识到状态机、服务 中位、互锁及各种其它技术可用来保持节点高速缓存器填满,且响应于由到达的传入 包以及离开的传输包产生的需要来对所述高速缓存器进行填充。
图21描绘上文参照图18所详述的链路识别符1844的实例性实施例。如图所示, 存储链路识别符A2110以识别并入到传输节点阵列1842中的影子传输节点阵列中的 一者中的流的链路识别符。字段2120用所述链路识别符识别所包括的包(即,节点) 的数量。注意,在此实施例中,聚合仍基于流识别符,因为所述链路识别符用于识别 物理层参数(例如,物理层速率)及安全密钥。编入此表的索引是所述流识别符。
同样,存储链路识别符B2130以用于识别并入于传输节点阵列1842内的另一影 子传输节点阵列中的流的链路识别符。与所述链路识别符相关联的包的数量存储在字 段2140中。注意,可将与相应流相关联的各种其它参数及/或状态变量与这些一同存 储,以用于替代实施例(如果需要)。
图22描绘下层媒体接入控制核心540的实例性实施例的额外组件。如上文参照 图18所说明,多个信道可连接到传输引擎1880,所述信道中的每一者断言就绪指示 符以让传输引擎1880知道准备发送一个或一个以上包。识别所述包的节点将在传输节 点阵列1842中等待,且那些包的相关联链路识别符将存储在链路识别符1844中。每 一信道可存在这些组件中的每一者的一组。图22图解说明随着这些包在传输链中向下 游移动时的其进一步处理。
传输引擎1880接收各种就绪信号且在其之间进行仲裁以执行各种功能过程及任 务。当传输引擎1880准备筹备将要传输的包时,其知道传输机会的大小,所述传输机 会指示可用于使用共享媒体的时间的长度。然而,由于数据速率可基于链路条件变化, 因此将要在所述传输机会内发送的包的数量也改变。在所述实例性实施例中,速率有 限状态机(FSM) 2210经部署以用于确定特定包将使用的OFDM符号的数量。传输引擎 1880向速率有限状态机2210递送指示以字节为单位的包的长度的传输长度(其方便 地位于所述节点的长度字段中)。递送(从链路识别符1844)链路识别符被及用以指 示速率有限状态机2210应开始其过程的开始信号。速率有限状态机2210返回所述包 将使用的符号的数量。此信息可用于确定当执行聚合时可累积的每一包的符号数量, 下文进一步详述。注意,可部署用于确定符号的数量、速率等的各种替代技术。使用执行每包符号计算的外部有限状态机仅为适于部署的许多实例中的一者。下文详述速 率有限状态机2210的实例性实施例。
传输引擎1880还耦合到存储器仲裁器,例如上文所说明的存储器仲裁器1080。 对于准备传输的包中的每一者,传输引擎1880根据相应节点中的信息从包缓冲器提取 程序块,且任何链接程序块由下一程序块指针识别。将所述程序块数据返回到传输引 擎1880,在传输引擎1880处将所述程序块数据递送到一个或一个以上先进先出存储 器2220。在此实例中,先进先出存储器2220包含于遗留协议引擎2210中。注意, 数据到一个或一个以上先进先出存储器的写入可由先进先出存储器就绪信号或任何其 它流控制机制控制。如上文所说明,且下文参照图48及49进一步详述,在替代实施 例中,可存在到传输引擎1880的额外输入以与一个以上媒体接入控制处理器面接。在 实例性替代实施例中,处理器210及固件实施用于处理低通量包的媒体接入控制处理 器。这些包可被从处理器存储器先进先出存储器4950 (或在另一替代实施例中,直接 从处理器存储器)递送到传输引擎1880。
如上文所论述,可方便地使用现有遗留协议组件来执行各种功能以支持802.11媒 体接入控制处理。还可部署其它标准化协议引擎,且遗留协议引擎2210可经修改以提 供所需要的各种特征。在遗留协议引擎的实例性实施例中,存在四个先进先出存储器 2220 A-D, 一个用于四个EDCA队列中的每一者。HCCA信道具有额外先进先出存储 器2220 E,且针对信标及广播/多播信道部署先进先出存储器2220 F-G。注意,可将 先进先出存储器部署为单个缓冲器(即,用于存储信标信号)。可部署任何数量的先 进先出存储器或其它缓冲器类型以用于接收将要传输的包。
在接收到就绪断言时,传输引擎1880将第一包程序块放入第一节点所规定的适 当核心先进先出存储器中。如刚刚说明,此可就额外程序块(如果有)继续,直到完 成第一包。同时,可使用速率有限状态机2210来确定可被传输的包的总数。在监视 先进先出存储器就绪时,传输引擎1880可继续所述程序,从而将剩余包放入相应先进 先出存储器中。在所述实例性实施例中,将包放入所述先进先出存储器中驱使遗留协 议引擎2210争用接入(针对EDCA类型接入)且开始传输(在获得接入时,或在所 调度的传输机会期间)。
图23描绘速率有限状态机2210的实例性实施例。所接收的链路识别符用作编入 速率表2310中的索引。表2310在链路识别符的基础上存储且包含与所述链路相关联 的一个或一个以上速率以及时间戳值(TSV) 2311。可以各种方式中的任一种来更新速 率表2310。固件可提供更新的速率。所接收的数据速率向量反馈包可包括速率信息且 可用于更新各种速率。TSV2311可用于指示当接收到包含速率反馈的包时的时间戳, 从而提供所述速率信息是最新还是陈旧的指示。举例来说,如果在某段时间内未更新 速率,那么保守的方法可在信道已在插入时间帧中恶化的情况下降低所述速率。固件 可确定是否存在老化及是否回退速率及更新速率表。在所述实例性实施例中,存在对 应于四个天线中的每一者的四个速率R1 -R4 2312-2315。例如使用特征导引模式还是
39另一扩展模式等其它信息也可用于速率计算。将来自表2310的速率信息发送到速率计 算有限状态机2320。
对于每一速率,速率选择表2330包含固件用可用于所述速率中的每一者的每符 号字节数量来更新表。在实例性实施例中,存在N-16速率2332,每一者具有对应的 每符号字节数量,因此每一速率选择值是4位。将每符号的字节数量递送到加法器 2335,所述加法器的输出去往聚合速率累积器2340。
聚合速率累积器2340用于累积聚合速率且输出被反馈回加法器2335。可用来自 速率计算有限状态机2320的清理信号来清理累积器2340。对于可用速率中的每一者, 将每符号字节数量相加以累积总的聚合速率,来自所述总的聚合速率中的某一数量的 符号NS 2360可用于指示串流的数量。在2345中减去NS 2360以提供聚合速率。NS 2360可由固件更新。在2350中将包的长度(在所述实例性实施例中以字节为单位递 送)加上常数2365 (也可由固件更新)以产生真正长度。CONST 2365可指示可选限 制。举例来说,可部署经聚合媒体接入控制协议数据单元密度以提供连续媒体接入控 制协议数据单元标头之间的最小间隔。在除法器2355中,真正长度A除以聚合速率, 针对NS规格化且产生商及余数。将所述商递送到加法器2375以概念性地产生上限函 数,其中如果2370中存在任何余数,那么必须使用一个额外符号(即,符号的一部分 被填充,因此必须部署所述整个符号)。寄存器NSYM 2375由速率计算有限状态机 2320启用以存储将由传输引擎1880递送及使用的所得符号数量。
图24显示概念性遗留协议引擎2210。模式选择信号可用于指示其中所述协议引 擎起作用的各种模式中的一种。大体来说,将媒体接入控制协议数据单元连同用以指 示传输应开始的就绪信号一同递送。所述遗留协议引擎可从输入媒体接入控制协议数 据单元产生经加密的输出。在所述实例性实施例中,使用遗留协议引擎的加密特征(通 常可在典型802.11核心中找到)。在替代实施例中,如所属技术领域中所熟知,任何 类型的加密设备可包括在内。图24中还显示经加密的输入(举例来说,从无线局域网 120接收)被递送到遗留协议引擎2210以产生未经加密的输出媒体接入控制协议数据 单元。
图25显示与到物理层260的概念性链路连接的典型遗留协议引擎。如图所示, 将接收向量连同所接收数据及空闲信道评估(CCA)信号一同从物理层260递送到遗留 协议引擎2210。所述接收向量可包含各种信息,例如调制类型、所接收数据的长度及 其它参数。特定来说,可返回可用于速率确定(例如,在上文所说明的速率有限状态 机2210中)的数据速率反馈。空闲信道评估可用于定时器2510 (与各种信道相关联) 以在使用基于争用的协议(例如,EDCA)时争用到媒体的接入。可在块2520中执行 加密及解密。先进先出存储器2220可类似于上文所说明的那些先进先出存储器。当 然,对于HCCA,所述传输是经调度的,且可在预定时间开始。将经加密数据与指示 所述传输应开始的传输请求信号一同发送到物理层260。递送到物理层260的传输向 量指示从遗留功能产生的各种参数。注意,在所述实例性实施例中,当在遗留模式中操作时,遗留协议引擎的输出可足以在物理层260上传输。
图26描绘进一步详述传输包的媒体接入控制处理的实例性实施例。在所述实例
性实施例中,将遗留协议引擎的输出媒体接入控制协议数据单元(在可应用时加密)
递送到聚合模块2610。与图25中所详述的实施例相比,不直接将来自遗留协议引擎 2210的经加密数据输出递送到物理层。在所述实例性实施例中,可对遗留协议引擎 2210做出修改,使得经定时的稳定经加密媒体接入控制协议数据单元串流被递送到聚 合模块,然后递送到所述物理层上以进行递送。可做出所述修改以移除产生聚合的帧 不需要的所述媒体接入控制协议数据单元的帧间间隔(例如,SIFS)或任何其它特征。 在各种实施例中,聚合的帧可以是各种形式,且可包含各种类型的包或媒体接入控制 协议数据单元。上文已详述用于将包定时(例如,时间戳、争用接入等待)的各种技 术,其在所属技术领域中众所周知。
可在传输引擎1880中计算聚合的包的数量。可针对每一包进行对速率有限状态 机2210的调用,且对于每包的所返回符号数量,可将传输机会减少符号的所述数量。 可针对每一聚合包递增聚合包计数直到确定将装入所述传输机会内的包的总数。可将 此信息递送到聚合模块2610。
可在各种实施例中部署任何数量的聚合格式及/或方案。在所述实例性实施例中, 经聚合媒体接入控制协议数据单元(A-MPDU)从聚合模块2610输出。在图27中描绘 经聚合媒体接入控制协议数据单元2710的格式。如图所示,媒体接入控制协议数据 单元分隔符2720分布于经聚合媒体接入控制协议数据单元2710中的每一媒体接入 控制协议数据单元2722之间。可在媒体接入控制协议数据单元2722的末端处插入一 个或一个以上填充符号,使得经聚合媒体接入控制协议数据单元的子帧的长度是4个 字节的倍数。每一媒体接入控制协议数据单元2722包含媒体接入控制协议数据单元 标头2732、媒体接入控制协议数据单元有效负载2734及帧检査序列2736。在此实例 中,媒体接入控制协议数据单元分隔符2720是包含设定为零的保留位、所述媒体接入 控制协议数据单元的长度、保留位的循环冗余校验及长度及可用于扫描及检测所述媒 体接入控制协议数据单元的唯一图案的长度循环冗余校验字段。在实例性实施例中, 针对字符"N"将所述唯一图案设定为ASCII值。
现在返回到图26,可将聚合媒体接入控制协议数据单元存储在速率匹配先进先出 存储器2620 (在替代实施例中,依据所部署物理层类型及其特性可不需要速率匹配先 进先出存储器)中。速率匹配先进先出存储器2620耦合到媒体接入控制/物理层接口 545以进行将要在物理层260上传输的包的最终递送。
接收处理
图28描绘图解说明下层媒体接入控制核心540的接收组件的实例性实施例。下 层媒体接入控制核心540中所说明的接收组件或其子组可包含接收引擎的一部分(如 下文参照图49中所示的替代实施例所说明)。包括从无线局域网120接收的包的信息 数据到达媒体接入控制/物理层接口 545且被递送到解聚合单元2802。如上文所说明,
41参照图26及27中的聚合,实例性经聚合媒体接入控制协议数据单元包含可用于在解 聚合单元2802中将传入数据串流分离为其组成包的媒体接入控制协议数据单元分隔 符2720。
将所得媒体接入控制协议数据单元串流递送到FCS及滤波块2804。在此块中, 所述滤波功能确定所接收包(包括广播或多播包)中的任一者是否针对当前装置寻址。 还检查帧检査序列。然后,将那些针对接收器寻址的包(其帧检查通过)递送到先进 先出存储器2812。
在实例性实施例中,当接收到包时将其存储到先进先出存储器中,其中假设所述 包被适当寻址且是好包。如果包证实是无效包或并非针对当前接收器寻址,那么可容 易地将所述包从所述先进先出存储器冲刷掉。(一种简单控制机制是保留先前先进先 出存储器指针且在将要冲刷掉最近存储的包的情况下恢复所述指针。)将来自先进先 出存储器2812的包(未被冲刷掉)递送到核心接口 2860。
接收控制器有限状态机2806经部署以控制图28中所详述的各种块中的任一者。 特定来说,接收控制器有限状态机2806可起始对正被接收的包的处理且提供各种控制 信号以在包横穿接收链时启用并存储中间结果。
在此实例中,接收标头且将其递送到包解析2810以进行处理。从所述包的标头, 知道传输长度以及所述包从哪开始及在所述包的什么地方找到数据及/或控制字节。所 述标头还指示包类型(即,802.11(a)(b)(g)(e)(n)或所支持的任何其它包类型)。
包解析2810知道所述包是否从来自流识别符的轮询类型接入(例如,无争用轮 询)接收。包解析2810因此将向传输器发送信号以在一预定周期(例如,在SIFS内) 期间需要响应时起始响应。包解析2810可递送所述流识别符及传输机会信息以允许传 输器响应。当接收到块确认请求时,还可将所接收的位图递送到所述传输器以在预定 时间帧内执行块确认(例如,立刻块确认)(如果需要)。下文进一步详述块确认及 其它即时响应处理,例如非调度自动省电递送。
包解析2810将包长度递送到程序块指针有限状态机2850,有限状态机2850确 定存储传入包所需要的程序块指针的数量。程序块指针有限状态机将从接收程序块指 针高速缓存器840检索程序块指针,上文已介绍。在此实例性实施例中,程序块与上 文所说明的那些程序块是相同的,但接收包不需要真正链路列表队列的复杂性及额外 存储器要求。而是,部署更加简化的阵列。下文参照图33进一步详述此实施例。在替 代实施例中,如果需要,所述接收包还可使用与用于传输处理的那些链接表结构相同 的链接表结构。当程序块指针有限状态机2850需要检索用于包的额外程序块时或当 更新接收程序块指针高速缓存器2840时,其与包缓冲器250面接(g卩,通过存储器仲 裁器10S0)。在所述实例性实施例中,给定所选择的程序块大小及典型的包长度,每 包可需要多达四个程序块指针。当这些程序块指针横穿剩余的接收处理链时存储在所 述包的标头中,且用于所述包到包缓冲器的最终写入。
核心接口 2860检索包括于经扩展接收向量(来自硬件表2820)中的程序块指针
42及参数且将其添加到从先进先出存储器2812接收的包的标头中。然后,将包递送到 遗留协议引擎2210,遗留协议引擎2210在上文所说明的实例性实施例中主要用于解 密。注意,在所述实例性实施例中,且在可用的典型遗留协议引擎中,所述标头将被 忽略。因此,可通过将控制信息存储在所述标头中(如此实例中所说明)来执行各种 控制机制。将来自遗留协议引擎2210的经解密包递送到接收先进先出存储器2870。 在所述实例性实施例中,接收先进先出存储器2870可被与图5中所示的可比较先进 先出存储器572共享或可与图5中所示的可比较先进先出存储器572相同。
虽然越区切换及传出进一步详述于下文中,但其基本结构图解说明于图28中。 此结构的一个方面是将越区切换决策从实际越区切换过程本身解耦,从而允许在无需 等待可在其它包正等待传出越区切换时形成的瓶颈的情况下接收并处理包。瓶颈可在
规定包的按次序递送时形成,且一个或一个以上包需要重传。下文进一步详述此情况。 将来自接收先进先出存储器2870的包递送到存储器写入2875,存储器写入2875 经由存储器仲裁器1080作出到包缓冲器存储器250的接入的请求,如上文所说明。当 包正等待被写入到所述包缓冲器中时,将所述包的参数递送到越区切换决策块2880 以开始所述越区切换决策。为防止快速越区切换程序在所述包被完全写入到所述包缓 冲器中之前发生,将写入完成信号从存储器写入2875发送到越区切换决策2880。
越区切换引擎2890连接到越区切换决策2880。显示越区切换决策2880与越区切 换2890之间的交互作用的各种实例性信号,下文将进一步详述所述信号。越切换引 擎2890经由存储器仲裁器1080从所述包缓冲器检索包,且最终递送将要传出的包。 依据所述包类型,越区切换引擎2890可使用解分段块2892来从包分段移除标头等且 重新形成未成为分段的包以在包传出上递送。如下文参照图48所详述,分段可以是可 选的且可省略相关组件。有时,可发生其中将丢弃一个或一个以上包的情况。冲刷块 2894连接到越区切换引擎2890以执行这些任务。还可在这些块中处置与维持队列、 指针、节点及程序块的链接表结构相关联的各种其它存储器管理功能。
接收搜索控制器2814监视传入先进先出存储器2812的包。接收搜索控制器确定 所述包的流识别符。在所述实例性实施例中,可部署TA及业务识别符搜索表以如所 说明的那样用于传入包处理(例如,在以上图IO中)。硬件表2820经部署以维持两 个流及链路的状态及参数。下文进一步详述硬件表2820,且硬件表2820包括上文参 照图3及4所详述的两种配置的实例性实施例。在所述上下文中,硬件表2820可以是 硬件表320的部分。
在一个实施例中,为传入及传出(及可能的传输处理)维持分离的硬件表。在替 代实施例中, 一个或一个以上功能可共享硬件表。在所述情况下,硬件表2820实质上 可与图3及4中所详述的硬件表320相同。所属技术领域中的技术人员将认识到共享 表可产生与仲裁多个请求相关联的复杂性及确保所需要数量的接入的充足带宽的需
要。另一方面,共享表可减小总面积,且可减少对两者共用的参数(跨越多个表)的 更新数量。举例来说,考虑具有合并的接收及传入硬件表的接入点。当所述接入点从STA (所述接入点先前向所述STA传输)接收时,业务串流识别符与业务识别符是相
同的。虽然目的地媒体接入控制地址与传输媒体接入控制地址不总是相同(可存在耦 合在所述目的地后面的额外装置),但存在两者相同的情形。在那些情形中,可从对 表的共享中获得益处。因此,可使所述合并表大于可单独地适应其中地址并不相同的 情形的任一表。无论如何,共享可产生面积优点。
如上文所说明,在所述实例性实施例中,可部署乒乓高速缓存器,从而允许固件 在更新的同时对列表重新排序且可针对搜索控制器部署从影子列表的同时接入。执行
二进制搜索以获得用于给硬件表2820加索引的流识别符。
图29描绘配置为STA的硬件表2920的实例性实施例,其类似于上文参照图3 所说明的布置。因此,在此情况下,将与流及链路相关联的所有各种参数维持在所述 硬件表中,因为所述STA仅支持16个流(在此实例中)。在硬件表2820中的是每一 所支持流的传输地址2912、业务识别符2914及流识别符2916的列表。因此,可从 所述TA加所述业务识别符检索所述流识别符且所述流识别符用作适当接收流状态表 2920的索引。在所述实例性实施例中,固件创建有序表以引导所述HW与一个表或另 一表一同工作。在当前表上的HW中进行二进制搜索。当需要添加新的流时,固件将 所述流添加到备用表,将其排序且然后将硬件的当前表切换到所述备用表。然后,原 始表成为新备用表。下文参照图31说明实例性接收流状态表2920。
额外链路特定参数也可包括在硬件表2920中。可通过链路识别符寻址这些参数, 所述链路识别符可存储在接收硬件表2920中。实例包括数据速率向量反馈2930,上 文说明其结合速率确定及速率确定、包形成及聚合使用。接收处理器可具有对来自从 远程装置递送的消息的此信息的接入且可将此信息存储在硬件表2920中。如上文所说 明,每一链路安全密钥2940可用于各种类型的加密。可存储各种安全密钥类型以支持 不同的加密协议。遗留复制检测块2950存储正确接收的最后包的序列号且出于复制检 测的目的可将当前包的序列号与此值相比较。
图30描绘经配置以用于接入点或超级台(如上文参照图4所详述)中的硬件表 2820的实例性实施例。在此实例中,各种指针3002与硬件表2820内的媒体接入控制 索引3004相关联。注意,在此实例中,也将链路识别符3006与每一媒体接入控制识 别符一同存储。注意,另一选择为,可将链路识别符3006与其它参数一同存储在替 代位置(例如,同步随机存取存储器330)中。与图29中所图解说明的硬件表2820 (其中,链路及流的各种参数存储在所述硬件表中)相比,除链路识别符3006以外, 所有参数存储在替代存储(例如,同步随机存取存储器330)中。
同步随机存取存储器330包含共用速率表3010A-N,其中每一者包含每一媒体接 入控制地址(即,每一链路,针对其可支持多达16个流)的指针。将各种流的参数存 储在流索引3020所指向的参数表中。此为实际参数提供间接层。在所述实例性实施例 中,同步随机存取存储器330还用于存储例如接收状态表2920等表,下文进一步详 述其实例。因此,对于每一链路,对最大数量的流的支持包括在加索引方案中,如共
44用速率表3010中所示。然而,存储器使用可随着添加流而增长。无需在流变为现用之 前分配存储器来存储参数。因此,对于既定链路,如果仅一个或两个流为现用,那么 仅需要创建及填注一个或两个接收流状态表2920。
图30中还显示替代表3042,其简单地包括安全密钥3044及位图3046。此实例 显示减小的参数组,其适用于802.11 (g)包。在此种替代实施例中,使用减小的状态表 可节约与额外存储器存取相关联的存储器及时间。然而,共用结构在实施例中也可用 于所有包类型。
下文将参照图31图解说明实例性接收流状态表2920的细节。然而,在此图解说 明一个组件,位图3130。图中显示位图指针3050指向位图3130。在所述实例性实施 例中,位图3130也存储在同步随机存取存储器330中。此间接层允许用于接入位图 的简单共用格式,同时允许存储器使用响应于需要而增长(与需要的最大存储器的预 分配相比)。因此,以类似于如需地增大接收流状态表的能力的方式,可支持不同类 型的位图而不需要为其预分配存储器。举例来说,当支持分段时,位图可包含每一者 具有16个分段的64个包。此是比简单的块确认位图(其中单个位用于64包的窗口中 的每一包)将需要的位图大得多的位图。因此,对于需要分段的流来说,可创建较大 的块确认位图,而可为那些需要较小存储器的流创建较小的位图。
此解说明各种存储器配置方面,包括提供提高的灵活性及更高效的存储器使 用。下文进一步详述额外块确认处理方面。
图31描绘接收流状态表2920的实例性实施例。图解说明各种字段。在替代实施 例中,可引入额外字段,或可省略所显示的那些字段中的某些。注意,大体来说,可 组合本文中的流状态表中的每一者(包括接收流状态表2920、每流阵列状态1902、传 输流状态表1030及类似每流表)或将其分离为任何数量的每流表,如所属技术领域中 的技术人员所清楚。
开始序列号3102可用于指示块传输中开始包的序列号。当接收到所传输的包时 可更新开始序列号(即,窗口向前移动)。在一个实施例中,现有开始序列号加上窗 口大小3104可确定所期望传入包的序列号。然而,允许传输器发送在序列号上超出此 限制的包,且在此情况下,可通过取最大所接收序列号并减去(窗口大小-l)来计算 开始序列号。所述开始序列号还可明确由传入BAR (块确认请求)更新。各种块确认 处理技术进一步详述于下文中。在一个实例中,窗口大小可表明在接收器处分配(以 包为单位)给既定传输器的缓冲器。在所述情况下,所述传输器不应发送在所述接收 器处超出窗口大小的未经确认的包。
立刻块确认字段3106可用于向接收器指示所述传输器正期望立刻块确认还是推 迟的块确认。对立刻块确认的支持在当前802.11n标准草案中为强制性。
位图3130可以是实际块确认位图,即,当将硬件表2820配置为STA时(如上 文参照图29所说明)。在替代配置中,位图3130可以是指向实际位图的指针(如上 文参照图30所说明)。存储以太网标头3132以在准备将要传出的包时用适当以太网标头替代媒体接入控制标头。WIN指针3134是指向保存由接收器存储的需要最终越
区切换到更高层(参见下文进一步详述的实例性越区切换技术)的包的物理地址的数 据结构的指针。在一个实例中,这些包存储在缓冲器中以按顺序越区切换到更高层。 如果此数据结构的头处存在空洞(丢失的包),那么接收必须等待直到此空洞被填充
以按次序将成序列的包越区切换到更高层。注意,下文所详述的窗口指针3320是适合 用于此字段中的指针的一个实例。
在一个实例中,可将旧的开始序列号3138设定为等于用以开始的开始序列号。 当传入包导致所述开始序列号改变时,接收器可向上向更高层传递从所述旧的开始序 列号到所述当前开始序列号的所有包。在执行此操作之后,可将所述旧的开始序列号 设定为等于所述当前开始序列号。链路识别符3140指示与所述流相关联的链路。此 可用于检索用于无线局域网120上的接收或传输的链路特定参数。上文已详述各种实 例。可部署指示不再接收更多分段的字段3136。在其中不执行分段的各种实施例中或 当在替代媒体接入控制处理单元中执行分段时,可省略此字段。
图32描绘用于在各种配置中配置硬件表及存储器的方法的实例性实施例。注意, 同样可通过其它硬件表(例如,较早详述的传输流状态表1030)应用参照图29-31所 论述的技术。出于简明的目的,省略配置传输表的细节。还请回忆,可组合硬件表以 支持各种组件(即,接收、传输、传入、传出等)。可以同等力度将由接收硬件的间 接层、流状态表、RAM及/或包缓冲器识别的原理应用到本文中所说明的其它状态表 或其组合。
图32中说明一般过程3200。在此实例中,说明第一、第二及第三存储器。注意, 如本文中所详述,可部署任何数量的各种类型的存储器。在实例性实施例中,存储器 l是硬件表,例如硬件表2820或320。存储器2是较大存储器,例如同步随机存取存 储器330。存储器3在此情况下是外部存储器,但也预期内部第三存储器。在此实例 中,存储器3可以是同步动态随机存取存储器340。
在决策块3210中,如果第三存储器将要用于包缓冲器,那么进行到3216以以第 一模式配置无线通信装置的各种组件(即,媒体接入控制处理器专用集成电路310中 的组件或各种其它组件)。在所述实例性实施例中,所述第一模式使用存储在外部RAM (例如,同步动态随机存取存储器340)中的外部包缓冲器。
在决策块3210中,如果第三存储器不将用于包缓冲器,那么进行到3212以以第 二模式配置所述无线通信装置的各种组件。在所述实例性实施例中,所述第二模式是 上文所说明的STA类型的模式(其中同步随机存取存储器用于包缓冲器)且参数存储 在硬件表中。
在3216处,用指向所述第二存储器中的数据结构的媒体接入控制寻址指针配置 第一存储器(其可以是硬件表)。在3218处,用所述数据结构设立所述第二存储器。 这些数据结构可包括不同的额外间接层,例如上文参照图30所说明。举例来说,第一 数据结构可识别与媒体接入控制地址相关联的流。所述流识别符可用于给额外表(例如,接收流状态表或传输流状态表)加索引。此外, 一个或一个以上表(例如,所述 接收流状态表)可具有指向与所述流相关联的额外数据结构的指针(例如,指向块确 认位图的位置的位图指针)。在3230处,配置第三存储器中的包缓冲器。在一个实例 中,配置包缓冲器可包括设立各种空闲指针列表(例如,空闲节点指针列表710及空 闲程序块指针列表720)及为节点720及程序块740分配空间。此外,可向阵列分配 (例如,用于包的接收处理)与那些阵列相关联的空闲窗口指针列表。
固件可执行用适当数据结构将各种存储器格式化所需要的许多步骤。当必要时, 可使用各种寄存器设定或用于设定变量的其它技术来向装置内的组件指示模式。所属 技术领域中的技术人员将熟知这些技术。因此,配置第一模式,且所述过程可停止。
在3212处,用各种数据结构(例如,刚刚说明的那些数据结构)来配置所述第 一存储器。在此情况下,存储器1可以是硬件表且未必间接接入数据结构,但可如图 29中所说明的那样(例如,硬件表内每流加索引的接收流状态表)。在3214处,以 非常类似于上文针对存储器3在3220处所说明的方式将第二存储器配置为包缓冲器。 因此,配置所述第二模式。然后,所述过程可停止。如本文中所详述的媒体接入控制 处理可继续。
图33描绘经配置以支持接收包阵列的包缓冲器250的一部分的替代配置。此实 施例类似于图6中所描绘的包缓冲器250。然而,在此配置中,图6的链接表队列的 数据结构由节点阵列3330替代。阵列数据结构的使用实现几个简化。在此实例中,节 点阵列中的节点是邻近的,因此不需要下一节点指针612。因此,节点610由减小的 节点3310替代。节点3310中的剩余字段、长度614、序列号616及程序块指针618 如参照图6所说明的那样。更小的节点导致存储器使用的减少。
像以前,程序块620用于存储各种长度的包。不同之处是所述阵列结构不需要装 入节点来形成队列。因此,如刚刚所提及,不需要下一节点指针来查找节点。用单个 指针(窗口指针3320)来替代队列尾指针640及队列头指针630,窗口指针3320识别 所需要的节点阵列3330在包缓冲器中的位置。所属技术领域中的技术人员根据本文中 的教示将清楚此经修改节点/程序块结构的使用。此外,接收处理不需要刚刚说明的阵 列结构,因为图6的结构也完全适用于所述上下文。然而,当如图33中所示的那样部 署时,节点阵列3330可存储高达完全窗口价值的包地址位置。其可由到当前开始序列 号的窗口偏移加索引。在此情况下,节点阵列3330可用作包位置的环形缓冲器。
越区切换处理
在此部分中,将更完全的详述越区切换处理。上文参照图28介绍越区切换决策 2880及越区切换引擎2890连同相关联的信号及其它互连块。下文将图解说明与越区 切换相关的数个方面。
一方面,将越区切换决策作出与越区切换过程本身分离。可以线速度执行所述决 策作出过程,而越区切换引擎在后台自主操作。通过对块确认的支持来图解说明其中 此方面可有用的一个实例性上下文。在较早的无线包系统(例如,802.11(g)或(b))中,
47不存在对块确认的支持。当到到达时,其将被确认或不被确认。如果所述包被确认, 那么其将被越区切换且后续包的传输将继续。如果所述包不被确认,那么传输器将重
发所述包直到其被正确地接收(或因所述过程超出预定限制而丢弃所述包)。因此, 固有地将按包到达的次序将其越区切换。
在支持块确认的系统中,也可能不按次序接收包。当正确地接收包时,将在窗口 位图中设定相关联的位。对于未被确认的包来说,可将所述相关联的位设定为零。可 在将来尝试重传包。同时,可接收并存储后续包以进行越区切换。在其中将按次序越 区切换包的系统中,未被确认的包产生空洞,其在等待正确地接收未被确认的包时使 随后接收的包的越区切换停转。然后,可在单个包被重传之后接收所述单个包,所述 包将填充所述空洞,且随后接收的数个包(一群组包)可立刻进行越区切换。此可产 生等待越区切换的包的积压,且越区切换延迟因此可产生。将越区切换决策与越区切 换引擎处理分离允许越区切换决策块以线速度操作,同时处理包的积压以进行越区切 换。所述越区切换引擎可自主操作,且假设到越区切换存储器的接口是相对于所接收 速度的高速,那么所述越区切换引擎将能够跟上。以此方式,包积压不限制接收器的 总通量。
另一方面,将越区切换决策与处理分离允许流越区切换优先化。举例来说,可以 与较低优先级数据不同的方式处置推迟敏感信息,例如语音、视频或其它优先级数据。
图34图解说明用于无线网络的端到端优先级方案,包括传入管控及基于优先级 的越区切换。在图34中,系统100包括用于接收传入包的传入管控函数3410。如上 文所详述,各种传入管控函数允许传入传出包的优先化。无线LAN 120将传入管控块 3410与基于优先级的越区切换块3420耦合。服务质量无线局域网(所属技术领域中 所熟知)允许给予所识别的包及/或流比其它类型的包或流高的优先级。然而,现有技 术服务质量处理仅在无线局域网120上的从接收器到传输器的点到点通信上发生。基 于优先级的越区切换块3420执行并入有优先级的越区切换决策。在此情况下,可能已 根据优先级或服务质量传输及接收包。基于优先级的越区切换在上文中且超出无线局 域网(例如,无线局域网120)中的服务质量的概念。因此,可比那些较低优先级的 包更早地越区切换较高优先级的包以进行传出。
以此方式,可从传输器侧上传入一直到在接收器处接收之后的整个传出过程中维 持服务质量。传入管控3410可优先化穿过传入侧的包,将在所述传入侧在服务质量无 线局域网120 (如果支持服务质量)上通过优先级传输所述包,且如果接收器处的越 区切换存在任何推迟,那么可给予那些较高优先级的包第一优先级。注意,传入管控 或基于优先级的越区切换可在有或没有服务质量无线局域网的情况下部署,且还可彼 此分离地部署。因此,基于优先级的越区切换可用于具有一个或一个以上其它服务质 量技术的方案。在不依赖主机处理器的应用中也可需要这些方面。举例来说,较高层 应用可具有某种用于确定包被递送到媒体接入控制处理器的次序的优先化功能。随着 越来越多的装置(例如,摄像机、数字音乐装置及其它实例)进行无线连接性,所述装置可具有有限的主机处理(或根本没有)。然后,可有用地部署传入管控以实现高 效的多流传输及接收。
可有利地将如本文中所详述的传入管控及基于优先级的越区切换与用于包的管 理(即,使用节点、程序块及队列的链接表)的链接表结构组合,但并非在任何既定 实施例中均需要两者的组合。特定来说,包到达时的其动态分配(经由传入或通过接 收器)允许存储器被灵活地分配在高与低优先级包或流之间。所述链接表结构允许以 下灵活性在拥堵水平指示需要服务较高优先级的包时有效地改变服务次序且正像在 拥堵减退时容易地服务所有包类别那样。
图35描绘图解说明越区切换决策2880及越区切换引擎2890的操作的方法3500 的实例性实施例。在3510处,越区切换决策2880将接收指示包已被接收的触发。在 所述实例性实施例中,写入完成信号将指示所述包何时已被完全写入到包缓冲器中, 以避免意外地越区切换部分写入的包。将作出越区切换决策所需要的信息(如下文进 一步详述)从接收先进先出存储器2870递送到越区切换决策2880。
在3520处,越区切换决策2880确定包是否可用于越区切换。大体来说,可使用 任何方法或技术将包优先化以进行越区切换。在一个实例中,如上文所说明,指派给 流的优先级允许根据优先级而不只是到达次序进行基于流越区切换的重新排序。注意, 不需要优先化。当使包可用时,可按次序越区切换流。如果包可用于越区切换,那么 在3530处更新越区切换队列以指示与可用于越区切换的一个或一个以上包相关联的 流识别符。在3540处,越区切换引擎2890将自主越区切换所述可用包,从而允许越 区切换决策2880等待下一所接收包并针对所述包执行越区切换决策。
通过以下实例性实施例可更加清楚地了解上文所图解说明的一般概念。在以下实 例中,越区切换决策2880将作出越区切换决策,更新与将要进行越区切换的包相关联 的队列并向越区切换引擎2890发出指示以自主处理所述越区切换。如图28中所图解 说明,越区切换决策2880递送流识别符及相关参数以启用越区切换。在所述实例性实 施例中,将越区切换计数(指示可用于越区切换的包的数量)、与那些包相关联的流 识别符及流类型从越区切换决策2880递送到越区切换引擎2890。
此外,可部署中断信号。可在已接收较高优先级的包时使用此可选中断,且越区 切换决策2880希望将所述较高优先级的包及其流移动到当前正被越区切换的那些之 前。中断技术在所属技术领域中众所周知且可包括轮询类型的中断以及向量驱动中断 及各种其它中断,此取决于越区切换决策的类型及所部署的越区切换引擎。所属技术 领域中的技术人员将认识到可使用状态机、软件及固件过程、 一般用途或专门用途处 理器、专用硬件或其任一组合来部署越区切换决策块2880及/或越区切换引擎2890两 者。在此实例中,越区切换引擎2890将返回用以指示已执行越区切换的已进行越区切 换信号(handoff done signal)连同越区切换的包的数量。下文进一步详述此实例性实 施例。
上文已略述越区切换决策块2880与越区切换引擎2890之间的任务的分离,且已说明包括流优先化及管理可能瓶颈的某些益处。在此实例性实施例中,越区切换决策 与越区切换引擎之间的通用接口是维持每一流的越区切换计数参数。所述越区切换决 策块实质上通过增加越区切换计数来指示对流的越区切换的需要。所述越区切换引擎 在其执行包的越区切换时减小所述越区切换计数。因此,此参数通常可用于具有任何 既定越区切换引擎的任何越区切换决策实施例之间。
注意,可将此技术与先进先出存储器的替代使用相比较。也可结合本文中所详述 的各种实施例部署先进先出存储器以用于越区切换。然而,由于可能正在等待越区切 换的包的数量的可变性,在某些情况下中,所述先进先出存储器可能需要非常深。进 一步注意,没有添加到先进先出存储器的额外复杂性,出于提供优先级目的的包的重 新排序可困难。在所述实例性实施例中,针对多个优先级等级中的每一者维持先来先 服务的队列。在所述实例性实施例中,支持四个优先级。所属技术领域中的技术人员 将认识到可支持任何数量的队列及/或优先级。
在替代实施例中,越区切换决策块2880可作出越区切换决策且填注一个或一个 以上队列及/或状态表以指示所述队列及在其中等待越区切换的包的状态。可部署不需 要来自越区切换决策块2880的显式触发(如图所示)而是自主监视各种队列的状态及 状态表以确定哪些包可用于越区切换且将越区切换所述包的次序优先化的越区切换引 擎2890。所属技术领域中的技术人员将容易地在本文中的教示的范围内部署这些及其 它替代实施例。省略此替代实施例的细节。
图36图解说明用于执行越区切换决策的方法3600的实例性实施例,其适于部署 于越区切换决策块2880中(如上文所图解说明)。在3610处,当接收到包时,进行 到3620以处理所述所接收包的流。下文进一步详述实例性过程。大体来说,当支持块 确认时,处理包包括确定空洞是否已被填充(即,较高序列号的一个或一个以上包已 被正确地接收且正等待越区切换直到在重传之后接收到具有先前序列号的包)。当然, 按次序正确接收的包可在不填充空洞的情况下用于越区切换(即,不存在等待越区切 换的后续编号的包)。接收包可触发一个或一个以上包可用于越区切换,或所述包本 身可以是准备越区切换的唯一包。如果所接收的包未填充现有空洞,那么可能不存在 可用于所述流的越区切换。然后,所述过程返回到决策块3610。
在此实例中,流在包处理块3630与队列处理块3630之间交替(进一步详述于下 文中)。所属技术领域中的技术人员将认识到方法3600图解说明两个同时过程, 一个 用于处理越区切换队列,而另一个用于在包到达时对其进行接收。所属技术领域中的 技术人员将认识到用于执行此种并行处理的多种技术,且实例性实施例仅用作一个例 示。
图37图解说明用于处理所接收包的方法的实例性实施例,其适于部署为块3620 (如上文所图解说明)。在3710处,已接收包。确定是否已将与所述包相关联的流加 入决策状态表中。实例性决策状态表图解说明于图40中。在实例性状态表4000 (图 解说明于图40中)中,任何一次均存在N个所支持的流识别符。在所述实例性实施例中,可支持多达256个流。决策状态表4000包括每流识别符的一组参数4010。在 所述实例性实施例中,决策状态表4000包括每一流识别符的决策偏移4012、越区切 换计数4014、下一指针字段4016、队列中位4018及优先级字段4020。
返回到图37,在3710处,如果所述流不在决策状态表400中,那么进行到3715 以将所述流添加到决策状态表。 一旦确定所述流在决策状态表中,那么进行到3720 以确定包是否可用于越区切换。决策偏移字段4012用于确定所述流中可进行越区切换 的下一可能包。可使用各种技术来维持此信息。举例来说,可部署位图,所述位图中 相关联的位用于窗口内的每一包及/或分段。当正确地接收到包时,更新所述位图以指 示所述包的成功接收。因此,在此实例中,如果设定(即,设定为一)与由决策偏移 字段指示的位置相关联的包,那么所述包可用于越区切换。如果所述位图中的所述位 置被解断言(即,设定为零),那么指示空洞,且此流的后续包(如果有)无一可用 于越区切换。
在此实例中,越区切换决策过程3600继续重复地反复。如果包可用于越区切换, 那么进行到决策块3730以确定所述流识别符是否包括于越区切换队列中。将越区切换 队列的实例性实施例图解说明为Q阵列状态表4100 (图解说明于图41中)。在此实 例中,为多达M个优先级维持队列,每一优先级在Q阵列状态表4100中具有条目4110。 在此实例中,条目4110包括Q计数变量4112、头指针4114及尾指针4116。使用链 接表结构维持所述队列。在替代实施例中,可部署其它类型的队列。在所述实例性实 施例中,将M设定为4,且因此支持4个优先级等级。可根据决策状态表4000的优 先级字段4020确定流的优先级等级。队列中位4018可用于确定所述流是否已被插入 到所述Q阵列状态表中。在替代实施例中,越区切换计数4014可用于帮助决策逻辑 确定既定流是否已具有等待越区切换的包或是否需要将其添加到所述队列中。所述越 区切换计数可以是非零,但其可能不清楚其是否已经是非零或其是否刚变成非零。在 此实例中,可一次处理一个包。在各种实施例中,此位可能并非必要或可用作方便。
如果所述流识别符不在所述越区切换队列中,那么进行到3735以添加所述流。 如图41中所示,对于每一优先级队列,维持头指针4114及尾指针4116。头指针4114 包括可用于编为决策状态表4000的索引以确定所述队列中的第一流的流识别符。在此 实例中,请回忆,在优先级内,在先来先服务的基础上为流服务。因此,头指针4114 是到所述队列中将要被服务的第一流的流识别符的索引。注意, 一旦由头指针4114 指示的流识别符被接入,那么所述队列内的下一流(如果有)由下一指针字段4016 指示。Q阵列状态表4100中的尾指针4116指示优先级队列中的最后流。当将新的流 添加到所述越区切换队列时,可通过更新由尾指针4116识别的流识别符的下一指针字 段来执行所述过程。此字段将由指向正被添加的流的指针替代。随后,然后更新尾指 针字段4116以指向新到达的流,其成为所述队列的新尾(即,线中的最后)。此外, 队列计数字段4112维持所述优先级队列内的总的流的数量。因此,通过读取优先级等 级的队列计数值,可快速确定是否存在所述优先级的等待越区切换的任何包。进行此程序以维持所述M个优先级队列中的每一者的队列,且容易地将状态维持在Q阵列 状态表4100中。
一旦确定所述流在所述越区切换队列中或其已被添加,那么进行到3740以增加 越区切换计数4014。请回忆,越区切换计数是用于确定特定流的等待越区切换的包的 数量的参数,且被维持于决策状态表4000中。在3750处,确定是否存在针对所述流 越区切换的额外包。当确定第一包准备越区切换且越区切换计数己增加时,那么决策 偏移可在位图中向前移动(即,决策偏移++)。如果经更新的决策偏移还显示包可用 于越区切换,那么返回到3740,增加越区切换计数且继续所述过程直到窗口内的所有 包己被测试或巳到达空洞。注意,决策偏移然后将指向下一空洞。在方法3620的后续 反复中,将在每一流的包到达时针对可用越区切换包测试所述流。
一旦到达空洞,且不存在用以越区切换的额外包,那么进行到3760。决策块3760 图解说明可部署的中断程序的可选实例。所属技术领域中的技术人员将容易地部署任 何数量的中断程序。在3760处,确定越区切换当前是否正进行中。如果越区切换未在 进行中,那么可停止所述过程。如果越区切换正进行中,且如果部署此可选重新优先 化,那么进行到3770。在3770处,可确定新到达的包的流是否是较高优先级及是否 应被移动到当前越区切换的任何包之前。通过正由越区切换引擎2890处理的流的优先 级来测试当前流的优先级。如果当前流的优先级大于正被处理的流的优先级,那么进 行到3775且设定中断旗标。在此实例中,所述中断旗标将在越区切换队列处理期间被 辨认,在以上块3630中被识别且进一步详细图解说明于下文中。如果当前流的优先级 小于正由越区切换引擎2890处理的流的优先级,那么不需要先占,且所述过程可停止。
图38图解说明用于处理一个或一个以上越区切换队列的方法的实例性实施例, 其适于部署为上文所图解说明的块3630。所述过程在决策块3810处开始。如果由越 区切换引擎2890处理的越区切换当前正进行中(即,方法3630的先前反复起始此种 越区切换),那么进行到决策3815以确定所述越区切换是否完成。如果其已完成,那 么在3820处更新越区切换计数。在所述实例性实施例中,经越区切换的包的数量将由 越区切换引擎2890返回且可将其从越区切换计数中减去。图解说明于图28中的己进 行越区切换信号可用于确定越区切换是否完成。注意,当越区切换计数变为零时,可 使用图解说明于图41中的字段从相应优先级队列移除所述流识别符。此外,当从队列 移除流时,相应的Q计数也减小。在3825处,重设用于确定是否正在执行越区切换 的等待旗标。此旗标用于在决策块3810中确定越区切换是否待决,且还可用于上文参 照包处理所说明的决策块3760。
如果所述越区切换未完成(如决策块3815中所确定),且部署中断特征(例如 上文所说明),那么进行到决策块3830以确定是否已设定中断旗标。举例来说,可如 上文所说明的块3775中所说明的那样设定此种旗标。否则,所述过程可停止。越区切 换引擎2890可继续执行其当前越区切换操作,且图36中的过程流可返回到决策块 3610以等待正被接收的额外包或越区切换队列处理状态的改变。如果已在决策块3830
52中设定中断旗标,那么在块3835处向越区切换引擎断言中断。中断信号的越区切换引 擎处理的实例性实施例进一步详述于下文中。
在决策块3840处,所述越区切换引擎已完成任何先前处理且可产生额外越区切 换指令。在决策块3840处,确定流是否可用于越区切换队列中的越区切换。实例性实 施例进一步详述于下文中。如果不,那么可停止所述过程且所述过程可如上文所说明 的那样继续反复。如果流可用,那么在3845处起始到越区切换引擎的越区切换。如上 文所说明,可将所述流识别符及相关参数递送到所述越区切换引擎。在所述实例性实 施例中,越区切换计数可以是任何数字。如果越区切换计数大于一,那么所述越区切 换引擎可越区切换每一包直到完成,除非被中断。在替代实施例中,所述越区切换引 擎可在每次起始越区切换时处理一个包。在此替代实施例中,中断可不必要。在3850 处,设定等待旗标以指示越区切换过程正在待决中。然后,所述过程的当前反复可停 止。
图39描绘确定可用于越区切换的流的方法的实例性实施例,其适于部署为上文 所说明的块3840。注意,此实例假设向较高优先级的流指派较低的数字优先级值。因 此,优先级O是最高优先级。所属技术领域中的技术人员将在本文的教示的范围内容 易地修改任何类型的优先级方案。在3910处,将优先级索引设定为O。此是将要测试 的第一及最高优先级。在决策块3920处,如果由优先级索引识别的队列中存在流(即, 其Q计数大于O),那么退出方法3840且返回所述流。此外,在所述实例性实施例中, 将越区切换所识别优先级的队列中的第一流(由头指针识别)。
如果所识别优先级的队列不包含任何流,那么在3930处递增所述优先级索引。 在3940处,如果所述优先级索引大于N (其是所支持优先级的数量,在所述实例性实 施例中N:4),那么不存在要测试的额外队列。在此情况下,所有队列是空的。如果 存在要测试的额外队列(即,所述优先级索引小于N),那么在3920处返回以测试下 一队列。所述过程继续直到找到流或穷尽所述队列。此外,任何类型的流选择技术可 替代方法3840。
图42图解说明用于执行越区切换的方法4200的实例性实施例,其适于部署在越 区切换引擎2890中。在此实例性实施例中,越区切换决策块2880向越区切换引擎2890 递送将要越区切换的多个包、越区切换计数、流类型(其可在部署对多个包类型的支 持的情况(例如802.11 (b)、 (g)、 (n)等)下使用)及中断。所述越区切换引擎递送经 由存储器仲裁器680从包缓冲器提取(如上文参照图28所图解说明)的包以进行传出。 将经越区切换的包的数量连同己进行越区切换信号一同返回到决策2880以进行处理, 如上文所说明。
在4210处,越区切换引擎2890从包缓冲器检索多达由越区切换计数指示的数量 的一个或一个以上节点。所述节点将定位于所述包缓冲器中由窗口指针加越区切换偏 移(对应于流识别符而设定)识别的位置处。请回忆,实例性所接收包缓冲器可如图 33中所图解说明的那样,其中节点阵列3330包含节点3310,每一节点对应于以阵列格式链接的包,其中程序块的链接表包含与其相关联的包数据。针对所述越区切换引 擎将用于给所述包缓冲器加索引的变量维持于越区切换状态表4300(图解说明于图43 中)中。此外,支持N个流识别符,且针对每一流识别符在越区切换状态表4300中 维持条目4310。在所述实例性实施例中,支持多达256个流。固件针对每一流将节点 阵列位置维持在包缓冲器中。此由窗口指针4314在越区切换状态表4300中识别。所 述流的窗口的大小指示于窗口大小4316中。越区切换偏移4312是由越区切换引擎维 持以确定将在什么地方找到将要越区切换的下一包的状态。因此,如上文所说明,通 过将越区切换偏移4312添加到窗口节点4314来识别对应于将要越区切换的包的节点。 对于更高效的同步动态随机存取存储器接入来说,可能需要一次检索一个以上节点, 但此并非必需。
窗口大小4316可与开始序列号及越区切换偏移一同使用以将越区切换引擎定位 到为进行越区切换而需要处理的包。在此实例中,所述越区切换偏移指向窗口数据结 构(即,节点阵列)中的开始序列号且参照所述开始序列号来识别将要越区切换的序列号。
在4215处,选择对应于越区切换偏移4312的第一节点。在4220处,从包缓冲 器检索对应于所述节点的程序块。在4225处,如果必要,基于流类型解分段包。此可 涉及从包缓冲器检索数个分段、从每一分段移除分段标头、将程序块压縮为单个包及 创建适当标头。此可在图28中所图解说明的相关联解分段块2892中执行。流类型可 用于指示何时需要分段。举例来说,在某些实施例中,可支持802.11 (e)及(g)包且可使 用分段。注意,在替代实施例(进一步详述于下文中)中,在固件中处置需要分段的 包类型以降低复杂性。在此种实施例中,不需要部署解分段块2892。
在4230处, 一旦检索到与所述包相关联的程序块中的每一者,那么重构(包括 所需要的任何解分段)所述包,递送所述包以进行传出。如上文所说明,可通过各种 接口 (其实例上文己给出)中的任一者执行传出。
一旦包(或一组分段)被越区切换,那么更新越区切换偏移4312以识别将要越 区切换的下一包。在4240处,相应地递增用以追踪经越区切换的包的数量的变量一经 越区切换的#。在4245处,如果支持中断,且已发出中断,那么进行到4255。在4255 处,越区切换停止,断言己进行越区切换且返回经越区切换的包的数量。在此实施例 中,在每一包被完全越区切换之后对所述中断起作用。可部署替代中断方案,且所属 技术领域中的技术人员将明了所述替代中断方案。 一旦被中断,那么越区切换过程停 止。在此实例中,越区切换决策块2880随后可向越区切换引擎2890发出新的越区切 换命令以继续中断流的包的越区切换。在4245处,如果未接收到中断,那么进行到决 策块4250。在4250处,如果不存在要越区切换的额外包(可通过比较经越区切换的 包的数量与越区切换计数来确定),那么所述越区切换完成。进行到4255,断言己进 行越区切换,且返回经越区切换的包的数量。
如果存在要越区切换的额外包,那么进行到4260。处理下一节点,且返回到4220以检索对应于所述节点的程序块,从而继续刚刚说明的过程。
如图28中所图解说明,冲刷块2894连接到越区切换引擎2890。冲刷块2894可 用于追踪重发限制、超时等等(其可用于最终冲刷掉包)。此允许所述越区切换引擎 在空洞被填充之前向前移动。然后越区切换发生,如果需要,将通过较高层处置向上 发送包及任何后续重传。
冲刷块2894在移动ARQ窗口时执行各种功能。举例来说,冲刷部分成为分段的 包。越区切换完成的包而不管是否存在空洞。使缓冲器空闲且因此将程序块指针放回 空闲程序块指针列表中且移动窗口 。
所属技术领域中的技术人员将容易地在替代实施例中修改各种电路、组件及技 术。在一个实例性一般化实施例(且与图49中所描绘的替代实施例4900 (详述于下 文中)兼容)中,传入状态机(ISM)处理传入包且更新由控制状态机(CSM)使用的信 息。这些更新可递增存储器中的包的数量且还更新流—识别符需要由所述控制状态机处 理的次序。所述控制状态机可更新传输器中的四个包节点高速缓存器,如上文所详述。 此状态机处理流—包—表中的信息。头指针及尾指针以及表中的下一流指针允许所述控 制状态机选择将要处理的下一流一识别符。所表中可存在服务中位(每一流_识别符), 其让所述控制状态机知道来自此流一识别符的包当前是否正在传输中。在传输引擎开始 传输之前其可将此位设定为l且在所述传输完成之后将其设定为0。传输状态机使用 来自命令队列的信息以在无线局域网(类似于上文参照图18所说明的无线局域网)上 将包传输出去。可用作冲刷块2894的冲刷状态机(有限状态机)从由相应接收器正确接 收并确认的同步动态随机存取存储器包冲刷。然后,所述有限状态机递减流—包_表中 的存储器计数中的包。
所述流—包一表可具有以下条目中的一者或一者以上流—识别符(l个字节)、存 储器中的包的数量(2个字节)、高速缓存器中的包(2位)、服务中位(l位)、下 一_流_识别符(l个字节)及2位优先级字段。当包在传入进来时,所述ISM更新存 储器中的包,更新下一—流—识别符以及尾j旨针。当传输状态机正传输来自特定流_识 别符的包时,其设定对应的服务中位。当被设定时,控制状态机将不更新所述四个包 节点高速缓存器。在包被传输之后,所述传输状态机更新高速缓存器中的包的数量且 还重设所述服务中位。所述控制状态机将仅在所述服务中位被重设时起作用。其处理 所述流—识别符的次序由下一—流一识别符确定。如果需要,可将2位的优先级位添加到 所述表。在此情况下,所述控制状态机将首先处理属于最高优先级的流,然后下一优 先级等等。此表的实例性大小约为流的数量的4个字节倍,或256个流的约1千字节。 所述控制状态机使用所述流_识别符(链接—表中的第一包)的标头指针来断定需要包 括在所述4个包节点高速缓存器中的包的节点地址。
因此,在实例性实施例中,实例性冲刷引擎或冲刷块2894可从包缓冲器移除成 功接收及确认的所有包。当接收到块确认位图时,传输状态机首先对其进行处理且可 执行立刻重传以顾及某些未经确认的包。(下文进一步详述块确认。)然后,将所述
55位图传递到冲刷引擎中的冲刷引擎状态机或冲刷块2894,其针对对应的流—识别符检 索链接表数据结构的头j旨针,即所述头J旨针在流状态RAM中可用。所述头—指针包 含既定流—识别符的第一包的节点地址以及此包的序列号。所述冲刷引擎状态机处理所 述位图且将其排队以冲刷序列中已被确认的包。此逻辑可类似于由传出状态机使用的 逻辑,其中将序列中所接收的包传递到主机。 一旦所述冲刷引擎状态机已识别将要冲 刷的包的数量及其序列号,那么可将其排成队列以进行冲刷。所述头—指针产生链接表 中的第一包的节点地址。通过从所述链接表接入对应包的节点地址来获得将要冲刷的 包的节点地址。在所述实例性实施例中,分配存储器以提供充足的包位置、程序块及 节点。因此,可在后台进行冲刷,因为通常对此任务没有严格的时间要求。存储器仲 裁器可为作为低优先级任务的冲刷功能提供接入。 块确认
由上文所详述的实例性实施例图解说明的各个方面非常适于执行高速媒体接入 控制的块确认。在典型的块确认协议中,传输器向接收器传输包达一时间周期,而无 需接收所述包中的任一者的确认。然后,块确认从所述接收器返回到所述传输器,指 示先前传输的包中的哪一个被正确地接收。可响应于块确认请求来传输块确认,或可 部署替代调度机制,例如己接收预定数量的包之后的响应。块确认请求可以是经传输 以指示需要块确认的特定消息,或所述块确认可固有地在另一类型的信号或消息中。
一种用于维持经确认或未经确认的包的状态的机制是保持位图,其中每一位位置 对应于包或包分段,如上文参照以上图30及31所说明。上文已说明实例性位图3130。
在高通量系统中,可能需要在触发事件之后的相对短的时间量中返回块确认请 求,例如显式或内在块确认请求或其它块确认请求指示符。在实例性802.11实施例中, 可需要在块确认请求之后的SIFS周期内返回块确认请求(即,立刻块确认)。因此, 可需要维持多个流的状态信息,从而允许当前待决流中的任一者的即时块确认响应且 在所述块确认请求之后处理块确认以重传任何需要重传的包。可支持多种类型的块确 认。举例来说,可需要部分或完全状态确认。大体来说,部分状态确认计算可不密集 或可需要较少的推迟。可针对部分或完全状态块确认或其组合容易地修改本文中所说 明的实例性实施例。通过以下实例性实施例进一步说明数个方面。
接收器处的块确认
在实例性实施例中,接收包,其可以是聚合包。当在接收器处接收包时,对所述 包进行测试以确定是否已正确地接收所述包,举例来说,可使用帧检查序列等等。不 管确定包的正确接收的方法如何,可针对每一包(或分段,如果适当)存储一指示符。 在所述实例性实施例中,这些确认指示符存储在每一流的相关联位图中。上文参照图 30详述了用于存储流的位图的各种技术。
图44是用于响应于立刻块确认请求的方法4400的实例性实施例。此方法适于即 时响应于块确认请求。
在4410处,针对任一流维持包标头信息,可需要为所述流产生块确认。可以任
56何格式维持此标头信息,其实例在所属技术领域中众所周知。存储所述标头信息(或 在替代实施例中,可预定用于准备块确认响应的任何信息)以用于在可能的块确认传 输之前构建包。换句话说,所述包正处于某种形式的存储器,经正确格式化使得所有 值供用于发送(其可先验地建立)。丢失件是指示每一个别包或分段的实际确认或未 确认的位图信息(及无法更早建立的任何其它信息)。可简单地将所述位图(及任何 剩余信息)插入到等待包中且将所述位图传输。
请回忆,在上文所说明的实例性实施例中,可部署三个等级的存储器以提供各种 间接层。在一个实例中,第一等级的存储器是硬件表,例如硬件表2820。第二等级的 存储器可包括同步随机存取存储器330。在可选配置中,可部署第三等级,例如同步 动态随机存取存储器340。可将包标头信息存储在认定可适当对其进行存取的存储器 的任一层中。
在4420处,接收可以是隐式或显式的块确认请求。在4430处,检索与流相关联 的位图。可使用任何流识别符来检索所述位图。举例来说,如上文在图30中所说明, 媒体接入控制索引3004用于识别具有相关联指针3002的链路识别符3006。指针3002 可直接指向直接包括位图3046的表3042,或指针3002可指向速率表3010,基于传输 识别符3020的速率表3010指向接收状态表2920。如上文所说明,状态表2920可包 括位图指针3050以指向实际位图3130。所属技术领域中的技术人员将认识到可部署 任何类型的位图的间接或直接存储。根据所使用的技术,检索与具有块确认请求的流 识别符相关联的正确位图。
在4440处,将所检索的位图放入所维持的包中,且在4450处,传输新构建的块 确认。因此,在此实施例中,尽可能多地预构建块确认包。在替代实施例中,将位图 信息或其它确认数据维持在存储器的容易接入的部分中以进行即时检索。然后,响应 于立刻块确认请求即时传输这两片的组合以提供部分或完全状态立刻块确认。
以上实施例支持立刻完全状态或部分状态块确认。可在实例性实施例中部署对部 分状态、完全状态或任一组合的支持。然而,其它实施例可仅需要支持部分状态块确 认,此将可能是802.11(n)的标准。在此情况下,仅响应于所接收的聚合来发送块确认, 从而仅发送所接收包的状态。
对于部分状态块确认来说,你仅需要在接收器处维持单个存储器。不需要包括完 全状态(即,256个流的存储器)。如果接收到来自不同起源地的传输,那么可覆写 在所述接收器处维持的部分位图状态。注意,如果状态被意外覆写,那么对块确认的 稍后请求将是不可能的。在一个实例中,在此情况下可发送所有零位图。既定实施例 可经部署以维持多于最小量的状态(如果需要)。
传输器处的块确认
如上文所说明,传输器可传输多个包且然后经由显式或隐式块确认请求来请求接 收状态。为维持高通量,需要所述传输器准备继续传输或在接收到对应的块确认时如 需地即时重传。可容易地修改各种实施例以利用此说明书中通篇详述的各种方面,以
57允许响应于块确认而高效并即时地重传。
图45描绘用于响应于块确认的方法4500的实例性实施例。此方法非常适于部署 节点阵列(例如,存储在上文所详述的节点阵列高速缓存器1810中的那些节点阵列) 的实施例。此外,上文所说明的队列(其可由节点的链接表更改及维持)也非常适于 修改用于方法4500。
为总结所述程序,请回忆,块确认对应于窗口大小(其在所述实例性实施例中大 小高达64)。将开始序列号设定为由所述窗口表示的最低序列号(概念上为所述窗口 的最左边的点)。传输器知道已传输多少包,因此其知道最后包在所述窗口中的何处。 从所传输的最后包开始,所述传输器然后可继续以逐包地步进穿过从最近传输到最早 传输的位图。如果识别未确认(在所述实例性实施例中为零),那么将所述包的节点 指针重新链接到传输队列中(此将所述包重新排队以进行重传)。所述传输器穿过重 构所述链接表传输队列的位图直到到达所述位图的开始(由先前的开始序列识别)。 方法4500是可部署的一种此类技术,但用于确定所需要的重传参数的任何技术可与本 文中所详述的实施例结合使用。
以下实例图解说明使用块确认位图来处理包缓冲器中的传输队列。相同或类似技 术可同等地适用于响应于块确认而提供低延迟重传。举例来说,可用流的节点来装载 队列(例如,节点阵列1842),然后传输所述节点,如上文所说明。那些节点可保留 直到接收并处理块确认。所述块确认位图可用于指示哪些节点需要重传。在一个实施 例中,节点在节点阵列中的位置将与在块确认位字段中的位置一致。在接收块确认之 后,可使用上文所详述的聚合技术来即时聚合并重传(假设传输机会可用)未经确认 的包。此是允许高效地利用剩余传输机佘的低延迟响应技术的一个实例。以类似于下 文所说明的方式,可随着窗口移动而移动节点阵列中的节点。注意,不管使用节点阵 列还是传输缓冲器来进行块确认处理及重传,当使用数据结构(例如,上文所详述的 节点及程序块)将包存储在包缓冲器中时,根本不需要移动所述包缓冲器中的包数据。 在整个第一传输及任何后续重传中,其可保留在一个位置中(但其可在每一传输期间 被重新接入)直到所述包被成功地接收或超出预定限制且被冲刷。
在4510处,接收块确认。在4515处,设定开始序列号以指向第一未传输的包。 因此,在所述实例(其中接收指示正确地接收所传输的所有包的块确认)中,将移动 所述窗口。将要传输的下一包将是新窗口中的第一包,因此所述开始序列号应与所述 包相关联。以下步骤详述如何修改开始序列号及更新传输队列,以提供任何必要的重 传(如果其必要)。当所述过程完成时,开始序列号将已被自动更新为向前移动所述 窗口 (如果可能)的适当位置。将更新传输队列,从而允许传输或重传立刻开始。
在4520处,检查在最近传输的包处开始的块确认位图。在4525处,如果检测到 零(或在替代实施例中,检测到未确认指示符),那么需要重传所述包。进行到4530 且将下一传输的指针链接到与所述位图位置相关联的包。举例来说,当部署传输队列 时(例如上文参照图6所详述),可引导队列头指针630指向与所述包(针对其检测
58到零)相关联的节点。然后,可更新包含于所述节点中的下一节点指针字段612以指 向先前的头指针。在替代实施例中,可使用替代技术来更新传输队列。
在4535处,更新开始序列号以指向当前包。因此,对于所接收的每一零,所述 开始序列号将被移动到先前位置。如上文所说明,如果正确地接收所有包,那么所述 窗口将已移动到等待传输的下一包。然而,然后回退所述向前移动直到最早所检测到 的零。在整个方法4500过程之后,如果与所述块确认中的开始序列号相关联的包未被 正确地接收,那么当然将根本不向前移动所述窗口。
在4540处,向后遍历所述位图到达下一先前包。在4545处,如果存在更多的位 图位置要检査,那么针对下一确认返回到决策块4525。在4525处,如果未检测到零, 那么所述过程流过4540,从而遍历所述位图并检查以了解所述位图是否完整。 一旦已 测试所述位图中的所有包,那么从决策块4545进行到4550且使用经更新的传输队列 开始传输。在4560处,可冲刷掉已被确认的包且其相关联指针循环用于后续使用。注 意,此步骤可如图所示并行(或在后台)操作。然后,所述过程可停止。
总而言之,当针对块确认接收到位图时,将所述位图中的零与现有传输队列重新 链接以形成新的传输队列。将这些包的相关联节点指针重新写入存储器中。然而,注 意,所述包本身(由程序块指针识别且包含于程序块620中)从来不移动。将仅当所 述包已被成功地传输及确认时冲刷掉节点及程序块且将指针返回到空闲指针列表。此 存储器管理过程可并行执行,可从块确认处理推迟,可在后台执行等等。在其中(举 例来说)所述传输器在其传输机会中具有剩余时间的情况下,快速产生重传队列且传 输可继续进行以利用任何剩余的传输机会。如果所述传输器不具有立刻重传的准许 (即,不存在剩余传输机会),那么可执行相同方法,但传输不需要立刻发生。
请回忆,如上文参照图18所说明,可部署乒乓类型的高速缓存器以允许在不打 扰正在进行的传输的情况下更新节点阵列1842。也可在块确认重传方案中部署此技 术。图46描绘可经部署以用于在重传过程中使用乒乓节点阵列高速缓存器的方法4600 的实例性实施例。举例来说,方法4600可并入到上文所说明的块4550中。在4610 处,使用来自传输队列(可能响应于块确认请求中的重传信息而更新)的节点指针设 立第一乒乓节点阵列1842。如果适当,更新1844中的链路识别符,如上文所详述。 在4620处,切换到此第一节点阵列以允许传输继续进行。在4630处,可视需要清理 (即,冲刷包、循环使用指针等等)存储器结构。
多业务识别符块确认
在既定台处,可能支持各种流(例如,多达16个流),其中每一流对应于业务 识别符(TID)。请回忆,业务识别符映射来自台的流。在一个聚合中,可能找到对应于 多个业务识别符的包,例如每链路聚合包。因此,可返回对应于多个业务识别符的块 确认(或多业务识别符块确认)。在一个实施例中,多业务识别符块确认包含业务识 别符,然后是位图,然后是另一业务识别符,然后是另一位图,等等。由于聚合内的 包未必成连续的次序(即,由于重传),因此产生一个问题。因此,对于既定的业务
59识别符来说,块确认将以开始序列号开始,所述开始序列号针对所述业务识别符规定 在所述聚合中接收的最低序列号。然后,将所述业务识别符位图作为从开始序列号的 偏移提供。下文详述用于准备多业务识别符块确认的数个实施例。
在一个实施例中,当包达到时,比较每一序列号且保持最低序列号。所述过程可 通过保存每一业务识别符的首先接收的序列号开始。然后,当每一包到达时,将所述 业务识别符的所保存序列号与新包的序列号相比较,且保持最低的序列号。在聚合末 尾,你将具有每一业务识别符的最低开始序列号。在找到所表示的最低序列号之后, 将所述序列号从每一包(正对其做出响应)的序列号(可在其到达时将其保存)减去 以找到所述包在位图内的偏移。最低开始序列号是所述业务识别符的开始序列号。以 线速度,确定包是否有效可以线速度发生且简单地保存确认或NAK的每一位连同绝 对序列号。在聚合的末尾,遍历所述系列的所保存包序列号,将所减的值用作偏移或 到位图中的索引,且将所保存的确认或NAK放入所述位图中。
在替代实施例中,存储与当前接收的最低序列号相关的位图。然后,可进行左移 位或右移位(取决于存储次序)以更新所述位置。举例来说,当存储所述位图时,如 果传入包的序列号高于当前最低序列号,那么在适当位置简单地标记确认位(由最低 所接收序列号与当前所接收序列号之间的差确定)。如果所述传入序列号低于所述最
低先前所接收的序列号,那么将位图移位(且将新的确认或NAK放入最低点中)。 可将所述移位确定为所述旧的开始序列号(即,所述最低先前所接收开始序列号)与 新的开始序列号(即,所述当前所接收包的编号,其将成为新的最低编号)之间的差。 与上文所详述的第一实施例(其中,执行遍历所保存的序列号)相比,在此实施例中, 仅需要保存所述位图及所述最低开始序列号。不需要保留所述位图中任何其它序列号。
以上实施例说明适用于立刻部分状态块确认。为扩展到完全状态,首先简单地检 索每一流的所存储历史,然后对其进行添加。任一实施例可经部署以用于单个业务识 别符情形,且可针对每一业务识别符重复以支持多业务识别符。
非调度的非调度自动省电递送(U-APSD)
本文中所详述的实例性实施例还非常适于修改以提供非调度自动省电递送 (U-APSD)。非调度自动省电递送是用于节约电力的技术。存在许多变化形式,包括调 度及非调度技术。图47描绘用于执行非调度自动省电递送的方法4700的实例性实施 例。在4710处,在典型的非调度自动省电递送方案中,用户终端自主地醒来。在4720 处,所述用户终端向接入点发送触发包。在4730处,所述接入点从所接收的包确定流 识别符。在决策块4740处,如果存在等待传输到与所述流识别符相关联的用户终端的 包,那么进行到4750。如果否,那么进行到4790,其中解断言指示符"发送更多", 从而指示不存在要传输的包(例如,服务周期的结束(EOSP)位)。在4795处,然后 所述用户终端可回到睡眠,且所述过程可停止。在决策块4740中,如果存在要传输到 所述用户终端的包,那么进行到4750。
在4750处,立刻发送来自传输节点阵列高速缓存器的一个或一个以上包。举例来说,可接入传输节点阵列高速缓存器1810 (例如,上文在图18中所说明)。使用 图18中所图解说明的技术,传输器可立刻回复被唤醒的用户终端。此避免必须采用替
代技术(例如,发送没有数据的包)来保持用户终端醒来。此避免带宽以及电力的浪 费,因为所述用户终端不需要不必要地保持长时间醒来。由于将包排队且可容易地接 入所述包(如上文所说明),因此有可能能够使用此技术做出对所述用户终端的响应
(包括数据)。注意,在某些实例性系统(例如,典型的基于因特网协议的语音(VOIP)
系统)中,可仅需要单个包或两个包来支持语音通信。因此,采用非调度自动省电递 送的用户终端可以非调度方式醒来,快速检索具有相对少的推迟的包或两个包,且继 续返回到睡眠以省电。
在决策块4760处,如果除在4740处发送的响应包中所包括的那些包以外还存在 要发送的包,那么进行到4770。在4770处,断言"发送更多"指示符,其可包括在 传输到用户终端的包中。此"发送更多"断言将向所述用户终端指示其应保持醒来以 接收额外包。在4780处,提取额外节点并传输相关联的额外包,如上文所说明。返回 到4760以确定是否存在要发送的额外包。 一旦那时传输为此用户终端指定的所有包, 那么如上文所说明,在4790处,解断言"发送更多"且在4795处,所述用户终端可 返回到睡眠。
因此,在上文所详述的实例性非调度自动省电递送实施例中,可将多达四个包立 刻传输到任何用户终端,因为其在节点阵列高速缓存器中可用。可即时发送这四个包 且如果后面还有更多,那么可设定指示符。随后,在SIFS、块确认等等之后,额外包 将准备传输。在此实例中,在传输流状态表(例如,1030)中维持变量以向接入点指 示用户终端是醒来还是睡眠。此实施例说明如在图18中所示的传输器中所图解说明的 那样使用高速缓冲存储。注意,如果特定流需要增加的存储,那么可使用替代量的高 速缓冲存储,或以不同方式对其进行划分(即,重新划分以允许响应多于4个包)。
省电多轮询(PSMP)
省电多轮询(PSMP)是其中上文所详述的节点高速缓冲存储方案提供益处的另一 区域。省电多轮询具有两个变化形式,非调度及调度。
非调度省电多轮询(U-PSMP)类似于非调度自动省电递送。当台醒来时,其使用 EDCA程序来发送触发消息,其可以是己经配置而启用触发(经由设置消息)的接入 类别的服务质量数据(QoSData)或服务质量空(QoSNull)消息。在接收此包之后, 所述接入点发送针对此台存储的包(其有利地存储在节点阵列高速缓存器1810中)。 在最后的包中,所述接入点将EOSP设定为1以指示不存在更多的包。在接收此包之 后,所述台回到睡眠。当针对特定接入类别将台被配置为启用非调度省电多轮询时, 在TA/TID-流映射表(例如,1030)中指示对应的流为启用非调度省电多轮询。此外, 还在所述TA/TID-流映射表中维持指示所述流是处于睡眠模式还是现用模式的状态变
因此,以上实施例非常适于支持非调度省电多轮询。在实例性实施例中,可维持指示流是否是省电多轮询流的第一变量及指示特定台是醒来还是睡眠的第二变量,且 将所述变量添加到上文所说明的其它变量。在接收数据(或触发)之后,所述接入点 检查此触发是合法的非调度省电多轮询流(根据所述第一变量),且将所述第二变量 从"睡眠"设定为"醒来"。所述接入点发出针对所述STA存储的包(其可容易地获 得),然后使所述台睡眠且将所述第二变量设定回"睡眠"。如果存在剩余传输机会, 也可使用醒来位。在此种情况下,检査所述醒来位,且传输机会仅在STA醒来时用于 所述STA。所述接入点具有保持台醒来以执行传输等的决定权。可将所述变量添加到 传输阵列状态表1830。
在调度省电多轮询(S-PSMP)中,研发模板且然后公布上行链路及下行链路调度 (举例来说,接入点中的固件可执行此功能,以及任何其它装置)。无线局域网内的 无线通信装置可使用同一模板直到添加新的调用或调用离开。然后,可创建新模板。
在一个实施例中,所述接入点控制所述经调度省电多轮询。可如下执行一种方法 l)所述接入点向自己发送清理发送(CTS)以清理媒体。所述清理发送设定等于下行加上 上行传输机会的NAV持续时间。2)所述接入点发送省电多轮询帧,其详述所述上行链 路及下行链路调度(每一台,到微秒)。3)然后,所述下行链路传输开始。4)所述上 行链路传输在所述下行链路传输之后。5)高度调度此格式,且所述接入点避免超过所 调度的结束时间,以移除抖动。此可通过将接入限制到所述NAV持续时间的末尾附 近的媒体来完成。重要的是避免抖动,使得用户终端不醒来检查其状态,不因由于抖 动所产生的偏移而丢失其消息,且回到睡眠,从而错过其传输机会。
在实例性实施例中,将用于产生所述调度的数据结构保持在乒乓数据结构中,如 上文所说明。所述数据结构包含用于所述上行链路及下行链路调度(其用于经调度的 省电多轮询)的模板。将当前调度保持在所述乒乓数据结构的一半中。可在无线局域 网上将此传输到台。然后,所述接入点可对所述乒乓数据结构的另一半中的模板做出 改变。选择器可经部署以在所述第一模板与所述第二模板之间进行交替。所述接入点 自由地处理非现用的任何模板而不打扰现用模板。此技术类似于节点阵列1842的使用 或影子流表(1092及1096)。
替代实施例分开的高与低通量
如上文参照图IOA所说明,高速包处理可不需要例如分段等各种功能,但可仍需 要对其它包类型或遗留802.11包的支持。图48图解说明部署一个以上媒体接入控制 处理器的替代实施例。可部署高速媒体接入控制处理器(例如,所详述的H2W处理 器530)及下层媒体接入控制540 (部署于媒体接入控制处理器中,例如240,上文已 详述)以用于高效的高速处理,同时并行部署替代媒体接入控制处理器4810以用于处 理其它包类型(或遗留包,例如各种类型的802.11包)。
在一个实例性实施例中,较低通量媒体接入控制处理器4810包含于处理器210 (且如果需要,还可包括其它组件,例如经部署用于遗留包处理的组件)中。在所述 实例性实施例中,向处理器210充分供电以处理低通量及遗留包,从而允许对较高通量的组件(例如,H2W处理器530)进行设计以高效地支持高通量包。其它实施例可
包括额外媒体接入控制处理器,如下文所说明。
在此实例中,由于802.11(n)包将不支持分段,因此可通过从硬件移除分段支持且
在固件中实施分段支持来简化上文所详述的实施例。上文已叙述各种实例性简化。使
固件处理所有遗留包允许分段支持的移除,简化传输及接收引擎且简化节点及程序块
管理(因为分段阈值可不同于程序块大小)。所属技术领域中的技术人员将依据支持
哪些特征来容易地修改本文中所详述的实施例以包括或省略各种处理块。
所属技术领域中的技术人员将容易地了解当部署包括能够处理各种包类型的所 有功能的单个处理器的实施例与包含每一者能够提供任一子组的功能性的两个或两个
以上媒体接入控制处理器的另一实施例时的折衷。当然,还可部署能够处理需要单个
组的功能性的包的单个媒体接入控制处理器。
分开的高与低通量仅为在多个媒体接入控制处理器之间划分功能性的一个实例。 大体来说,可将任何组的功能部署在不同的媒体接入控制处理器中。举例来说,当不 同包类型的处理要求不共享充足的相似性(以通过共享组件来实现效率)时,或在电 路设计考虑因素在用于支持各种包类型的设计之间充分不同的情况下,可需要在分离 的处理器中处理两个同等高速(或任一速度)的包类型。
图49描绘无线通信装置4900 (例如,接入点104或用户终端106)的实例性实 施例,所述无线通信装置包括两个媒体接入控制处理器,包括如上文所说明的第一媒 体接入控制处理器及包含于微处理器中的第二媒体接入控制处理器。此实例是类似于 图48中的一般化实施例的更加详细的实例。
所属技术领域中的技术人员将容易地将以上图5中所示的实施例修改为图49中 所描绘的替代实施例。在此实例中,传入及传出包到达且从总线4980上的外部接口分 离。实例性外部接口包括串行数字输入输出接口 582、 PCI接口 584、 USB接口或任 何其它类型的接口。所述接口可包括电路以在一个或一个以上接口之间进行仲裁及/ 或多路复用。传入包使用上文所说明的传入及存储器管理技术中的任一者由传入块 4910处理且经由存储器接口 4920存储在存储器中。存储器接口 4920可包括(举例来 说)存储器仲裁器552及/或556、多路复用器554、同步随机存取存储器接口 558、同 步动态随机存取存储器接口 562或各种其它组件。所属技术领域中的技术人员还将修 改其它存储器接口。
与图5的实施例相比,某些包类型在处理器(例如,处理器210)中处理。在此 实例中,经由处理器总线520将将要由所述处理器格式化的传入包从存储器接口 4920 递送到所述处理器(各种其它组件也可附装到处理器总线520,其实例显示于图5中)。 可在存储器接口 4920与总线520之间部署处理器接口。在此实例中,部署一个或一个 以上处理器存储器先进先出存储器4950 (用于递送所接收包的任何其它接口)。此允 许存储包(以及数据结构,例如节点、程序块等)以供处理器210使用。所接收的低 通量包也由处理器210处理,且可经由处理器存储器先进先出存储器4950从存储器接口 4920转移到处理器总线520。
在替代实施例中,可用到处理器存储器的直接连接替代处理器存储器先进先出存
储器。举例来说,直接存储器存取可用于将低速度包放入存储器中以由处理器210进 行处理。在一个实施例中,存储器接口 4920可将低速度包直接写入处理器存储器4950 (不是先进先出存储器)中,而不将所述包存储在高速包RAM中。
在此实例中,包也可由处理器210存放在存储器(经由存储器接口 4920)中。举 例来说,所述处理器可在无线局域网上重新路由退回所接收的包而无需在外部接口上 发出所述包。注意,本文中所详述的所有实施例可适于重新路由退回以进行传输的所 接收的包。可使用上文所说明的技术中的任一种来格式化递送到总线520的包。
在所述实例性实施例中,将802.11 (b)、 (g)及(e)包路由到处理器以进行格式化(包 括可能适当的任何分段)。其它包类型也可适于处理器格式化。举例来说,802.11(n) 规定经聚合媒体接入控制服务数据单元(A-MSDU),其也适合由处理器格式化。可部 署用于路由的各种技术。在此实例中,当接收包以进行处理器格式化时,将所述包存 储在存储器中且给予所述处理器中断以启动针对传输的格式化(细节未显示)。
可存储由处理器210处理之后的经格式化低通量或遗留包以在处理器无线局域网 传输先进先出存储器4960中进行传输。可向处理器无线局域网传输先进先出存储器 4960提供反馈,例如就绪信号,其为用以提供扼杀控制的信号。还可将这些包递送到 传输引擎1880以进行排队及可能的进一步处理(例如,通过遗留协议引擎2210)且 最终在物理层260上传输。其可被直接递送到传输引擎1880,或其可被并入到队列 1850中(如图18中所说明),由阵列控制1840管理等。注意,在所述实例性实施例 中,可针对遗留及聚合媒体接入控制服务数据单元包绕过聚合模块2610。
高速包(例如,802.11(n)经聚合媒体接入控制协议数据单元(A-MPDU))还可由 传入块4910接收并经由存储器接口 4920存储在存储器中。在此情况下,所述包由传 输引擎1880使用上文所详述(例如,参照图18)的技术传输。在此实例中,高速包 的硬件处理允许高速传输,而可在处理器210的固件中实施较低速度的包(例如,上 文所说明的遗留包)而无需创建通量瓶颈。此允许将各种遗留包的遗留细节从高速媒 体接入控制处理硬件省去,从而允许将其设计地更高效,同时通过所述固件实施的媒 体接入控制处理器仍提供遗留支持。高速包最终经由所述物理层在无线局域网上传输。 标头可用于指示高速或低速度物理传输。
将从无线局域网接收的包递送到耦合的接收引擎4970且最终经由存储器接口 4920存储在存储器中。可将低速度包传递穿过处理器210以进行处理(即,遗留包, 或针对使用所述硬件媒体接入控制处理器中不支持的特征(例如分段等)的包)。在 替代实施例中,所述包可直接去往处理器210 (无需存储在存储器中)或可连接到任 何其它替代媒体接入控制处理器(请回忆,可部署任何数量的媒体接入控制处理器, 以用于支持任何数量组的包特征)。在此实例中,经由处理器存储器先进先出存储器 4950将低通量或遗留包从存储器接口 4920递送到处理器,如上文所说明。其可以或可不通过遗留协议引擎2210部分地处理。注意,可针对非聚合数据单元(例如,遗留
包)绕过解聚合单元2802。
接收引擎4970 (以及其它组件,例如遗留引擎2210,如果部署)如上文在下层 媒体接入控制核心540中所说明的那样处理解聚合的包。在此实例中,所述高速包是 在硬件媒体接入控制处理器中处理仅有包,但在替代实施例中,可处理任何类型的包。
接收引擎4970可使用遗留引擎2210将任一包类型解密,如上文所说明。注意, 所接收的包可由媒体接入控制/物理层接口 (例如,媒体接入控制/物理层接口 545,如 上文所说明)加标签以指示包类型。举例来说,包可被识别为802.11 (a)、 (b)、 (e)、 (g)、 (n)等。包可被识别为聚合媒体接入控制服务数据单元或经聚合媒体接入控制协议数据 单元。大体来说,可应用任何标签来指示包到任何数量的媒体接入控制处理器中的一 者的路由。
在刚刚说明的实例性实施例中,注意,聚合及解聚合仅应用于高速包(聚合对于 高速包是可选的,如上文所说明)。可将低速包传递穿过聚合及解聚合块。仅针对遗 留或低速包支持分段,而不是高速包。所述处理器(即,210)是第一媒体接入控制处 理器且第二媒体接入控制处理器包含上文(即,在图5中)所说明的各种组件。如上 文所说明,这些仅为实例。大体来说,可在第一媒体接入控制处理器中支持任何特征 组且在第二媒体接入控制处理器中支持相同组或不同组的特征(其任一者可由处理器 (例如,处理器210)执行或两者均不由所述处理器执行)。传出块4930可经由存储器接口 4920从包缓冲器接收及越区切换高速包。传出块 4930还可在从处理器传出先进先出存储器4940递送的低速度包与高速包之间进行仲 裁。在所述实例性实施例中,所述处理器将准备按优先级次序越区切换的经处理包递 送到处理器传出先进先出存储器4940。在替代实施例中,替代存储器可替代处理器传 出先进先出存储器4940以允许传出块4930选择在传出块4930内进行优先化的包(如 果需要)。在又一替代实施例中,可去除处理器传出先进先出存储器4940,且传出块 可经由直接接入将低速包越区切换到处理器存储器(例如,通过直接存储器存取或其 它接入方法)。在又一实施例中,处理器传出先进先出存储器4940可具有多个优先 级队列,传出块4930可从所述多个优先级队列选择以实施优先级方案。
所属技术领域中的技术人员将认识到包含于无线通信装置4900中的教示的多种 替代配置。
图50图解说明多流包缓冲及排队的方面。图50包含存储装置5010,其用于在 包缓冲器5030中的第一数据结构5040中存储第一包的长度5050、所述包的序列号 5060及所述包缓冲器中的第二数据结构5080的第二包缓冲器位置5070;及存储装置, 其用于将来自所述第一包的数据5020存储在由所述所存储的第二包缓冲器位置5070 所识别的第二数据结构5080中。
图51图解说明多流包缓冲及排队的方面。图51包含与包相关联的第一数据结 构5140;及包含来自所述相关联包的数据的一个或一个以上第二数据结构5180;且显示所述第一数据结构,其包含指示所述相关联包的长度的长度字段5150;指示所述 相关联包的序列号的序列号字段5160;及指示所述第二数据结构5180中的一者在包 缓冲器5130中的位置的第二数据结构指针字段5170;且显示存储装置5120,其用于 将所述包存储在所述第二数据结构5180中的一者或一者以上中。
图52图解说明用于高速媒体接入控制的存储器管理的方面。图52包含选择装 置529Q,其用于选择第一或第二模式;配置装置5210,其用于以第一模式配置第一存 储器5230以存储多个通信流中的每一者的一个或一个以上参数;配置装置5260,其 以第二模式配置所述第一存储器以存储所述多个通信流中的每一者的指针,每一指针 指示与相应通信流相关联的位置;配置装置5220,其以所述第一模式配置第二存储器 5240以存储所述多个通信流中的每一者的包;配置装置5270,其以所述第二模式配置 所述第二存储器以存储所述多个通信流中的每一者的多组一个或一个以上参数,每一 组一个或一个以上参数存储在由所述指针指示的与相应流相关联的位置中;及配置装 置52S0,其用于以所述第二模式配置可与第三存储器一起操作的存储器接口 5250以 操作以存储所述多个通信流中的每一者的包。
图53图解说明多流媒体接入控制的方面。图53包含设定装置5320,其用于将 流识别符索引设定为多个流识别符索引值中的一者,每一流识别符索引与多个流中的 相应一者相关联;存储装置5310,其用于将第一存储器5330中的多个参数组5340存 储在多个第一存储器位置处,每一参数组包含多个流中的相应一者的一个或一个以上 参数,每一参数组的第一存储器位置由在所述流识别符索引中设定的相应流识别符索 引值识别;及检索装置5350,其用于根据所述流识别符索引从所述第一存储器检索所 述多个参数组中的一者的一个或一个以上参数。
图54图解说明多流媒体接入控制的方面。图54包含存储装置5410,其用于将 多个参数组5420存储在第一存储器5430中,每一参数组存储在多个参数组位置中的 相应一者处,每一参数组包含多个流中的相应一者的一个或一个以上参数,所述多个 流中的每一者由多个流识别符中的一者识别;存储装置5440,其用于将多个参数组指
针5450存储在第二存储器中,每一参数组指针识别所述第一存储器中的所述多个参数 组位置中的一者,每一参数组指针与所述多个流中的一者相关联;检索装置5470,其 用于根据流识别符从所述第二存储器检索参数组指针;检索装置5480,其用于通过根 据所检索的参数组指针接入所述参数组来从所述第一存储器检索一个或一个以上参 数。
图55图解说明用于高速媒体接入控制的多个流多路复用的方面。图55包含存 储装置5510,其用于将与多个流中的一者相关联的一个或一个以上包元素5520存储 在第二多个队列5530中的每一者中;选择装置5540,其用于从所述第二多个队列中 的一者选择元素;及存储装置5550,其用于将所述所选择的元素5560存储在第一多 个队列5570中的一者中,每一队列与多个信道中的一者相关联。
图56图解说明高速通信系统中的聚合的方面。图56包含存储装置5610,其用
66于将一个或一个以上第一数据结构5620存储在队列5630中,其中每一第一数据结构 包含相应相关联包的长度字段5635及指向第二数据结构5650的指针5640,所述第二 数据结构包含所述相应相关联包数据的至少一部分;确定装置,其用于确定传输数据 量5660;检索装置5670,其用于从所述队列中的所述第一数据结构中一者或一者以上 的长度字段检索一个或一个以上长度值;选择装置5680,其用于选择一组一个或一个 以上第一数据结构使得从所述组第一数据结构检索的长度值的和小于或等于所述传输 数据量;及聚合装置5690,其用于在聚合协议数据单元中聚合包,每一经聚合的包由 指向所述所选择组的第一数据结构中的第二数据结构的指针识别。
图57图解说明用作服务中队列及等待中队列的影子高速缓存器的方面。图57包 含选择装置5720,其用于选择第一队列5710作为服务中队列;选择装置5740,其 用于选择第二队列5730作为等待中队列;调度装置,其用于调度第一流5750;调度 装置,其用于调度第二流5760;存储装置,其用于存储与所述服务中队列中的第一所 调度流相关联的一个或一个以上元素5770;处理装置5780,其用于处理所述服务中队 列以在第一传输机会期间进行传输;及存储装置5790,其用于存储与所述等待中队列 中的第二所调度流相关联的一个或一个以上元素,其中所述存储可与所述服务中队列 处理同时发生。
图58图解说明传入管控的方面。图58包含接收装置5810,其用于接收与多个 流中的一者的包相关联的流识别符;检索装置5820,其用于检索与所述流识别符相关 联的一个或一个以上参数;许可传入装置5830,其用于在根据与所述流识别符相关联 的一个或一个以上所检索参数而满足预定条件时许可包传入;及拒绝装置5840,其用 于在根据与所述流识别符相关联的一个或一个以上所检索参数而不满足所述预定条件 时拒绝所述包。
图59图解说明传入管控的方面。图59包含接收装置5910,其用于接收与多个 流中的一者的包相关联的流识别符;检索装置,其用于检索当前包缓冲器占用量5920; 检索装置,其用于检索与所述流识别符相关联的最大缓冲器占用量5930;检索装置, 其用于检索与所述流识别符相关联的累积包5940;检索装置,其用于检索与所述流识 别符相关联的最大包5950;及许可传入装置,其用于在所述当前包缓冲器占用量小于 与所述流识别符相关联的所述最大缓冲器占用量或与所述流识别符相关联的所述累积 包小于与所述流识别符相关联的所述最大包时许可包传入5960。
图60图解说明传入管控的方面。图60包含包缓冲器6010;检索装置6020, 其用于检索多个流中的每一者的一个或一个以上参数;及有条件存储装置6030,其用 于根据所述一个或一个以上所检索参数有条件地将与所述多个流中的一者相关联的包 存储在包缓冲器中。
图61图解说明低延迟响应的媒体接入控制的方面。图61包含存储装置6110, 其用于将一个或一个以上数据结构6120存储在队列6130中,其中每一第一数据结构 包含相应相关联包的长度字段6135及指向第二数据结构6150的指针6140,所述第二数据机构包含相应相关联包数据的至少一部分;检索装置6160,其用于响应于需要预 定时间间隔内的响应传输的传输机会从所述队列中的所述第一数据结构中的一者或一 者以上的长度字段检索一个或一个以上长度值;及形成装置6170,其用于在所述预定
时间间隔内形成响应协议数据单元,所述协议数据单元包含根据所述预定时间间隔内 的至少一个长度值确定的协议数据单元长度值。
所属技术领域中的技术人员应了解,可使用各种不同的技术及技法中的任一者来 表示信息及信号。举例来说,以上说明书通篇可提及的数据、指令、命令、信息、信 号、位、符号及码片可由电压、电流、电磁波、磁场或粒子、光场或粒子或其任一组 合表示。
所属技术领域中的技术人员应进一步了解,结合本文所揭示的实施例说明的各种 例示性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。 为清楚地图解说明硬件与软件的此种可互换性,上文就其功能性大体说明了各种例示 性组件、块、模块、电路及步骤。此种功能实施为硬件还是软件取决于特定应用及施 加于总体系统上的设计约束条件。所属技术领域中技术人员可针对每一特定应用以不 同方式实施所说明的功能性,但所述实施方案不应被解释为导致对本揭示内容的范围 的背离。
结合本文中所揭示实施例说明的各种例示性逻辑块、模块及电路可通过以下装置 实施或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场 可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件 或其设计用于执行上文所说明的功能的任一组合。通用处理器可以是微处理器,但在 替代方案中,处理器可以是任一常规处理器、控制器、微控制器或状态机。处理器也 可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器的组合、 一个 或一个以上微处理器与DSP核心的联合或任何其它此类配置。
结合本文所揭示的实施例说明的方法或算法的步骤可直接包含于硬件中、包含于
由处理器执行的软件模块中或包含于两者的组合中。软件模块可驻存在RAM存储器、 快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可抽 换式磁盘、CD-ROM或所属技术领域中已知的任一其它形式的存储媒体内。实例性存 储媒体耦合到所述处理器,以使所述处理器可从所述存储媒体读取信息及向所述存储 媒体写入信息。在替代方案中,所述存储媒体可整合到所述处理器。所述处理器及所 述存储媒体可驻存于专用集成电路中,专用集成电路可驻存于用户终端中。在替代方 案中,所述处理器及所述存储媒体可作为离散组件驻存于用户终端中。
提供对所揭示实施例的以上说明旨在使任一所属技术领域中的技术人员皆能够 制作或使用本发明。所属技术领域中的技术人员将易知对这些实施例的各种修改,且 本文所界定的一般原理也可应用于其它实施例,此并不背离本发明的精神或范围。因 此,本揭示内容并非既定限定为本文所示的实施例,而是将赋予其与本文所揭示的原 理及新颖特征相一致的最宽广范围。
权利要求
1、一种方法,其包含在包缓冲器中的第一数据结构中存储第一包的长度、所述包的序列号及所述包缓冲器中的第二数据结构的第二包缓冲器位置;及将来自所述第一包的数据存储在由所述所存储的第二包缓冲器位置识别的所述第二数据结构中。
2、 如权利要求1所述的方法,其进一步包含在所述包缓冲器中的第三数据结构中存储第二包的长度、所述第二包的序列号及所述包缓冲器中的第四数据结构的第四包缓冲器位置;将来自所述第二包的数据存储在由所述所存储的第四包缓冲器位置识别的所述 第四数据结构中;及将所述第三数据结构的位置存储在所述第一数据结构中。
3、 如权利要求1所述的方法,其进一步包含通过存储多个第一数据结构的链接 表来形成包队列,每一第一数据结构与多个包中的一者相关联。
4、 如权利要求1所述的方法,其进一步包含形成第一数据结构的阵列,每一第 一数据结构与多个包中的一者相关联。
5、 如权利要求1所述的方法,其进一步包含形成空闲第一数据结构指针列表, 所述空闲第一数据结构指针列表包含用于与第一数据结构相关联的一个或一个以上第 一数据结构指针。
6、 如权利要求5所述的方法,其进一步包含 从所述空闲第一数据结构指针列表中检索第一数据结构指针; 从所述空闲第一数据结构指针列表中移除所述所检索的第一数据结构指针;及 将所述第一数据结构存储在所述包缓冲器中由所述所检索的第一数据结构指针识别的位置处。
7、 如权利要求5所述的方法,其进一步包含将先前移除的第一数据结构指针添 加到所述空闲第一数据结构指针列表以从所述包缓冲器中移除所述第一数据结构。
8、 如权利要求1所述的方法,其进一步包含形成空闲第二数据结构指针列表, 所述空闲第二数据结构指针列表包含用于与第二数据结构相关联的一个或一个以上指 针。
9、 如权利要求8所述的方法,其进一步包含 从所述空闲第二数据结构指针列表中检索第二数据结构指针; 将所述所检索的第二数据结构指针从所述空闲第二数据结构指针列表中移除;及 将所述所检索的第二数据结构指针存储在所述第一数据结构的所述第二包缓冲器位置中。
10、 如权利要求9所述的方法,其进一步包含将所述第二数据结构存储在所述包 缓冲器中由所述所检索的第二数据结构指针识别的位置处。
11、 如权利要求8所述的方法,其进一步包含将先前移除的第二数据结构指针添 加到所述空闲第二数据结构指针列表以从所述包缓冲器中移除所述第二数据结构。
12、 如权利要求11所述的方法,其中将所述包缓冲器中的所述第二数据结构的 所述第二包缓冲器位置存储在所述第一数据结构的第二数据结构指针字段中,且进一 步包含从所述包缓冲器中检索第二数据结构,所述第二数据结构由所述第一数据结构 的所述第二数据结构指针字段识别。
13、 一种设备,其包含存储装置,其用于在包缓冲器中的第一数据结构中存储第一包的长度、所述包的序列号及所述包缓冲器中的第二数据结构的第二包缓冲器位置;及存储装置,其用于将来自所述第一包的数据存储在由所述所存储的第二包缓冲器 位置识别的所述第二数据结构中。
14、 如权利要求13所述的设备,其进一步包含存储装置,其用于在所述包缓冲器中的第三数据结构中存储第二包的长度、所述 第二包的序列号及所述包缓冲器中的第四数据结构的第四包缓冲器位置;存储装置,其用于将来自所述第二包的数据存储在由所述所存储的第四包缓冲器 位置识别的所述第四数据结构中;及存储装置,其用于将所述第三数据结构的位置存储在所述第一数据结构中。
15、 如权利要求13所述的设备,其进一步包含用于通过存储多个第一数据结构 的链接表来形成包队列的装置,每一第一数据结构与多个包中的一者相关联。
16、 如权利要求13所述的设备,其进一步包含用于形成第一数据结构的阵列的 装置,每一第一数据结构与多个包中的一者相关联。
17、 一种设备,其包含 第一存储器,其以第一模式配置以存储多个通信流中的每一者的一个或一个以上参数,及 其以第二模式配置以存储所述多个通信流中的每一者的指针,每一指针指示与所述相应通信流相关联的位置; 第二存储器,其以所述第一模式配置以存储所述多个通信流中的每一者的包,及 其以所述第二模式配置以存储所述多个通信流中的每一者的多组一个或一 个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与所述相应通信流 相关联的所述位置中;存储器接口,其可与第三存储器一起操作,其以所述第二模式配置以操作以存储所述多个通信流中的每一者的包;及 处理器,其选择所选择的模式作为所述第一模式或所述第二模式,根据所述所选择的模式配置所述第一存储器,根据所述所选择的模式配置所述第二存储器,且根据 所述所选择的模式配置所述存储器接口。
18、 如权利要求17所述的设备,其中当所述第二存储器以所述第一模式配置时 包含包缓冲器,所述包缓冲器包含第一数据结构,其与包相关联;及第二数据结构,其包含来自所述相关联包的数据;且 其中所述第一数据结构包含长度字段,其指示所述相关联包的长度;序列号字段,其指示所述相关联包的序列号;及第二数据结构指针字段,其指示所述第二数据结构在所述包缓冲器中的位置。
19、 如权利要求18所述的设备,进一步其中当所述存储器接口以所述第二模式 配置时可操作以将包存储在所述第三存储器中的包缓冲器中,所述存储器接口用于存 储与包相关联的第一数据结构;及 包含来自所述相关联包的数据的第二数据结构;且 其中所述第一数据结构包含长度字段,其指示所述相关联包的长度;序列号字段,其指示所述相关联包的序列号;及第二数据结构指针字段,其指示所述第二数据结构在所述包缓冲器中的位置。
20、 一种无线通信装置,其包含 第一集成电路,其包含第一存储器,其以第一模式配置以存储多个通信流中的每一者的一个或一个以上参数,及其以第二模式配置以存储所述多个通信流中的每一者的指针,每一指针 指示与相应通信流相关联的位置; 第二存储器,其以所述第一模式配置以存储所述多个通信流中的每一者的包,及 其以所述第二模式配置以存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与所述相应通信流相关联的所述位置中;存储器接口,其可与第三存储器一起操作,其以所述第二模式配置以操作以存储所述多个通信流中的每一者的包;处理器,其选择所选择的模式作为所述第一模式或所述第二模式,根据所述 所选择的模式配置所述第一存储器,根据所述所选择的模式配置所述第二存储器,且 根据所述所选择的模式配置所述存储器接口;及第二集成电路,其包含用于存储所述多个通信流中的每一者的包的第三存储器, 其与所述第一集成电路的所述存储器接口耦合。
21、 一种无线通信装置,其包含第一存储器,其存储多个通信流中的每一者的一个或一个以上参数;及第二存储器,其存储所述多个通信流中的每一者的包,所述存储器包含第一数据结构,其与包相关联;及第二数据结构,其包含来自所述相关联包的数据;且其中所述第一数据结构包含长度字段,其指示所述相关联包的长度; 序列号字段,其指示所述相关联包的序列号;及第二数据结构指针字段,其指示所述第二数据结构在所述第二存储器中的位置。
22、 如权利要求21所述的无线通信装置,其中所述第一数据结构进一步包含指 示第二第一数据结构在所述第二存储器中的位置的下一第一数据指针字段。
23、 如权利要求22所述的无线通信装置,其进一步包含一多个包的包队列,所 述队列由多个第一数据结构的链接表形成,每一第一数据结构与所述多个包中的一者 相关联,所述队列的次序通过根据每一相应第一数据结构的所述下一第一数据指针字 段而链接所述链接表中的所述多个第一数据结构中的每一者来确定。
24、 一种计算机可读媒体,其上包括指令,所述指令包含 选择指令,其用于选择第一或第二模式;配置指令,其用于以第一模式配置第一存储器以存储多个通信流中的每一者的一 个或一个以上参数;配置指令,其用于以第二模式配置所述第一存储器以存储所述多个通信流中的每 一者的指针,每一指针指示与所述相应通信流相关联的位置;配置指令,其用于以所述第一模式配置第二存储器以存储所述多个通信流中的每 一者的包;配置指令,其用于以所述第二模式配置所述第二存储器以存储所述多个通信流中 的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针 指示的与所述相应通信流相关联的所述位置中;及配置指令,其用于以所述第二模式配置可与第三存储器一起操作的存储器接口以 操作以存储所述多个通信流中的每一者的包。
全文摘要
本发明中所揭示的方面解决所属技术领域中对用于高速媒体接入控制的存储器管理的需要。包缓冲器可存储具有第一数据结构的包,所述第一数据结构包含包长度、序列号及指向第二数据结构的指针。可将包数据存储在一个或一个以上第二数据结构的链接表中。可使用第一数据结构的链接表或阵列形成传输及接收队列。可将用于存储第一及第二数据结构的存储器位置保持在指示相应数据结构类型的空闲位置的列表中。揭示一种其中可选择两种配置的灵活存储器架构。在第一种配置中,第一存储器包含多个流的每流参数,且第二存储器包含包缓冲器。在第二种配置中,所述第一存储器包含指向所述第二存储器中的每流参数的每流指针。所述包缓冲器驻存于第三存储器中。还提供各种其它方面。
文档编号H04L12/56GK101411134SQ200780010691
公开日2009年4月15日 申请日期2007年3月30日 优先权日2006年3月31日
发明者斯里拉姆·纳拉扬, 苏布拉马尼亚姆·德拉维达 申请人:高通股份有限公司