无线联网装置

申请号 CN201520569047.X 申请日 2015-07-31 公开(公告)号 CN205051882U 公开(公告)日 2016-02-24
申请人 想象技术有限公司; 发明人 C·帕瓦塔内尼;
摘要 本实用新型涉及无线联网装置,通过在本地 存储器 中将头与对存储用于给定传输的有效 载荷 的单独的共享的存储器中的存储器 位置 的引用关联地存储来执行无线传输。各个头可与QoS队列关联。当要发送所选择的有效载荷时,PHY前导码可开始,跟随有来自本地存储器的头,而DMA事务发起以从共享的存储器获取有效载荷。有效载荷的各个获取的部分可包括至存储有效载荷的下一部分的下一位置的链接。针对有效载荷的该部分发起后续DMA。例如,相对固定的功能 电路 可发起DMA并接收有效载荷数据;可编程元件可执行有效载荷选择。多个有效载荷可利用存储在快速本地存储器中的头信息来聚合(就在发送前导码之前)。可在对应有效载荷的ACK之后释放存储器。
权利要求

1.一种无线联网装置,该无线联网装置包括:
系统存储器;以及
媒体访问控制器MAC组件,其通过存储器接口与所述系统存储器连接,并且包括:
私有随机存取存储器RAM,其大小被设置为与对所述系统存储器中的相应位置的相应引用关联地存储多个MAC有效载荷数据单元PDU的相应头,
PDU管理电路,其用于基于存储在所述私有RAM中的所述头来选择要发送的PDU,以及直接存储器存取DMA电路,其接收与所选择的PDU关联的对所述系统存储器的所述引用,并且发起与所述系统存储器的事务以开始获取所选择的PDU的有效载荷数据,在所选择的PDU的所述头被完全发送之前,所述有效载荷数据被获取并供应给发送路径。
2.根据权利要求1所述的无线联网装置,其特征在于,所述MAC组件包括上层控制元件和下层控制元件,所述上层控制元件在可编程处理器元件内实现所述PDU管理电路,所述下层控制元件与所述MAC组件的存储器接口进行接口连接,以在不涉及所述上层控制元件的情况下实现所述DMA电路。
3.根据权利要求2所述的无线联网装置,其特征在于,所述下层控制元件实现状态机,并且在获得发送时隙之后确定来自一个或更多个队列的哪些要被聚合以用于该发送时隙中的聚合传输。
4.根据权利要求2所述的无线联网装置,其特征在于,所述上层控制元件与所述下层控制元件连接,以指示所述私有随机存取存储器RAM中的存储所选择的PDU的头的位置,并且所述下层控制元件被配置为从所指示的位置获得所述头。
5.根据权利要求1所述的无线联网装置,该无线联网装置还包括用于执行所述MAC组件的驱动器的机器可执行代码的处理器,所述驱动器被配置为利用所述MAC组件获得用于存储要发送的PDU的从所述系统存储器的分配,并且将所述PDU存储在所述系统存储器的分配中。
6.根据权利要求5所述的无线联网装置,其特征在于,所述存储器分配包括所 述系统存储器中的多个不同位置,并且所述驱动器被配置为生成将共同地存储所述PDU的所述不同位置的有序列表,并且将对各个后续位置的引用附在存储在所述有序列表的相应先前位置处的数据中。
7.根据权利要求1所述的无线联网装置,其特征在于,所述MAC组件被配置为利用所述MAC组件获得用于存储要发送的PDU的从所述系统存储器的分配,并且将所述PDU存储在所述系统存储器的分配中。
8.根据权利要求7所述的无线联网装置,其特征在于,所述存储器分配包括所述系统存储器中的多个不同位置,并且所述MAC组件被配置为生成将共同地存储所述PDU的所述不同位置的有序列表,并且将对各个后续位置的引用附在存储在所述有序列表的相应先前位置处的数据中。
9.根据权利要求1所述的无线联网装置,其特征在于,所述MAC组件包括重试定时器,并且响应于所述重试定时器届满,重新发起与所述系统存储器的所述事务。
10.根据权利要求1所述的无线联网装置,其特征在于,所述MAC组件被配置为标识能够被聚合到一个传输中的多个MAC PDU,并且在为将所述有效载荷数据直接提供给与所述物理层连接的下层MAC组件而选择的时间,发起从所述系统存储器获取要聚合的各个所述MAC PDU的有效载荷数据。
11.根据权利要求1所述的无线联网装置,其特征在于,所述MAC组件被设置为将所选择的PDU的有效载荷数据保持在所述系统存储器中,直至接收装置已确认所述有效载荷数据的接收为止,并且再次从所述系统存储器获取所述有效载荷数据以便重试传输。

说明书全文

无线联网装置

技术领域

[0001] 在一个方面,本公开总体上涉及无线数据联网,在一个更具体的方面,涉及用于诸如无线保真(WiFi)网络的无线网络中的分组数据的存储和传输的技术。

背景技术

[0002] 无线联网能已成为从计算机、平板、移动电话、电视到嵌入式装置(例如,能量计、扬声器和家电)的许多装置的重要组件。无线保真(WiFi)是得以广泛采用并且在已允许更高速率的增强方面逐步演进的联网技术的示例。实用新型内容
[0003] 在一方面,一种无线联网装置包括系统存储器以及通过存储器接口与系统存储器连接的媒体访问控制器(MAC)组件。所述MAC组件包括私有随机存取存储器(RAM),该私有RAM的大小被设置为与对所述系统存储器中的相应位置指针关联地存储多个MAC有效载荷数据单元(PDU)的相应头。所述MAC组件包括PDU管理电路,该PDU管理电路用于基于存储在所述私有RAM中的所述头来选择要发送的PDU。MAC组件的直接存储器存取(DMA)电路被配置为接收与所选择的PDU关联的所述指针,并且发起与所述系统存储器的事务以开始获取所选择的PDU的有效载荷数据。在所选择的PDU的所述头被完全发送之前,所述有效载荷数据被获取并供应给发送路径。
[0004] 有效载荷可被存储在系统存储器中的多个不连续的物理位置处。与有效载荷数据一起的或者单独计数的指针被存储以使得能够按照适当的顺序获取有效载荷数据以用于传输。用于有效载荷数据的各个不同的存储器事务可被定时以在它被返回并分段以提供给发送路径时减少存储有效载荷数据所需的临时缓冲空间的量。
[0005] 一些实现方式可提供可编程组件,该可编程组件管理用于传输的有效载荷的纳入、MAC层头的构造和存储,并且获得用于分别将头和有效载荷存储在私有存储器 和系统存储器中的存储器分配。在微码控制下操作的有限可配置性组件具有固定的功能电路,或者二者的组合可与可编程组件连接并且被分配接收私有存储器中存储用于传输的有效载荷的头以及对存储有有效载荷的系统存储器的引用的位置的指示的任务。有限的可配置性组件针对有效载荷发起存储器事务并且在没有可编程组件的参与的情况下直接接收数据,以提供给发送路径。
[0006] 在发送的有效载荷的接收被确认之后,可释放私有存储器和系统存储器的部分。可维持用于头存储的私有存储器中的自由时隙池以及用于有效载荷存储的系统存储器中的自由时隙池。在一些情况下,诸如待发送的TCP/IP分组的有效载荷已被存储在系统存储器中的缓冲器链中。实现方式可接收对该有效载荷的指针,读取有效载荷的一部分,构造MAC头,并且将该MAC头存储在私有RAM中,同时不触及剩余有效载荷。在另一实现方式中,有效载荷可被复制到系统存储器的另一部分,并且根据需要附着或更新指针。
[0007] 一个方面涉及无线联网装置的媒体访问控制(MAC)元件。MAC元件具有通过MAC元件和可编程处理器控制的私有随机存取存储器(RAM)。可编程处理器被配置为在私有RAM中提供多个服务质量(QoS)队列,以生成MAC有效载荷数据单元(PDU)的头,确定将给予用于传输的MAC PDU的QoS,将该头与所述多个队列中的与所确定的QoS关联的队列关联地存储在私有RAM中,并且获得用于存储MACPDU的有效载荷数据的系统存储器的分配。MAC元件还具有实时操作组件,该实时操作组件被配置为通过接收私有RAM中的存储要发送的PDU的头的位置的引用来从可编程处理器接收开始PDU的发送处理的指示,访问所述头以及与所述头关联的对系统存储器的引用,发起从系统存储器接收有效载荷数据的一个或更多个事务,将所述头提供给物理层以用于传输,并且在所述头被物理层完全传输之前从系统存储器接收有效载荷数据,并且将所述有效载荷数据提供给物理层。附图说明
[0008] 为了更充分地理解本文公开的各方面和示例,在以下描述中参照附图。
[0009] 图1描绘了可实现本公开的各方面的装置的示例系统上下文;
[0010] 图2描绘了可实现本公开的各方面的装置的进一步的方面;
[0011] 图3描绘了可实现本公开的各方面的芯片的示例实现方式;
[0012] 图4描绘了根据本公开的各方面的图3的芯片的元件的交互;
[0013] 图5描绘了根据本公开的示例处理的各方面;
[0014] 图6描绘了根据本公开的用于传输的数据的纳入处理的示例处理;以及[0015] 图7描绘了根据本公开的用于存储器维护的示例处理。

具体实施方式

[0016] 呈现以下描述以使得本领域普通技术人员能够获得并使用本实用新型的各个方面。仅作为示例提供具体技术、实现方式和应用的描述。对于本领域技术人员而言,对本文所述的示例的各种修改可为显而易见的,在不脱离本实用新型的范围的情况下,本文所限定的一般原理可被应用于其它示例和应用。
[0017] 图1描绘了站3和站30与接入点10通信的示例布置方式。接入点10可被实现在还提供接入点功能以外的功能的装置内。例如,接入点10可被实现在还实现网络地址转换、DHCP、管理、分组检查、防火墙、对异构物理介质的桥接功能(例如,移动热点功能)等的网关内。类似地,站3和站30表示从台式或膝上型计算机到平板、智能电话、消费电子产品中的嵌入式收发器、IP语音电话、诸如手表的小配件等的各种装置中的任何装置。本公开的实现方式可被实践在站3和站30中以及接入点10中。
[0018] 图2描绘了接入点10和站30的示例方面。接入点10和站30中的每一个可包括处理器,分别为处理器7和处理器8。这些处理器可执行操作系统或者其它框架。例如,处理器7和处理器8可执行Linux的变体或者实时操作系统(被表示为操作系统31和操作系统32)。在这种OS上执行的其它软件可包括虚拟机。与站30的OS 32相比,接入点10的OS更可能是嵌入式OS或者没有图形用户界面的OS。用于相应媒体访问控制(MAC)装置的驱动器12和驱动器34可利用各个OS 31和32来执行,从而向可在该OS上执行的应用14和应用36提供服务。类似地,接入点10和站30中的每一个可包括TCP/IP栈16/18和
38/40,并且支持诸如UDP的其它传输协议以及其它数据传送方法以用于分别向MAC/链路层20和MAC/链路层42传输。因此,接入点10和站30可提供相似的功能组件,不同的是站30更可能支持用户接口功能的全特征集,而接入点10可提供各种服务和嵌入式功能并且仅通过控制台或命令行接口与用户直接接口以用于配置或管理。
[0019] 图2还描绘了连接至接入点10的处理器7和MAC层20的存储器33。也可针对站30设置类似的存储器。存储器33可由一个或更多个物理存储器组成,用于处理器7和MAC层20中的每一个的接口也可随不同的实现方式而变化。接入点10可托管驱动器,并且包含用于多种类型的网络的接口硬件。例如,接入点10可包括以太网交换机或集线器。接入点10还可与诸如DSL线、线缆调制解调器、光纤接口等的宽带接口连接。因此,接入点10可充当无线连接的装置的聚合点,以用于经由诸如以太网或宽带网络的另一网络传输。这些各种细节没有单独地描绘,以保持本公开的清晰。
[0020] 图3描绘了实现站或接入点10的元件(除了存储器33以外)的装置103的示例框图。将介绍图3中描绘的组件,然后将处理这些组件中的一些的更详细的方面及其互操作。装置103可按照各种方式来实现。在一种方式中,在不同于主存储器的半导体基板上制造装置103,而在另一实现方式中,可在系统芯片配置中的相同半导体基板上实现用于存储有效载荷数据的大容量存储器。在这种系统芯片实现中,存储头的存储器与用于有效载荷数据的大容量存储器之间的区别包括存储帧头的存储器可被实现为静态RAM,而大容量存储器可被实现为动态RAM(DRAM)。SRAM可能更快并且每比特存储容量消耗更多区域和功率,使得区域(因此,成本)和功率消耗方面的节省可仍源自使用DRAM,例如用于有效载荷数据存储的嵌入式DRAM。在一些实现方式中也可使用在封装内放置多个晶粒的其它技术(例如,用于有效载荷存储的存储器以及包含装置103的组件的基板)。
[0021] 应用处理器7被示出为可选的,因为装置103的一些实现方式可与不同的应用处理器或者其它控制机制接口。在装置103被构造为SOC的情况下,应用处理器7也可被集成在同一系统中。因此,图3示出相对高度集成的装置的示例。然而,即使提供了应用处理器7,本公开的实现方式也可包括与装置103接口的另一处理器。在任何情况下,通常预期图3中描绘的媒体访问控制(MAC)功能模将用于代表各种应用或者网络栈的高层处理媒体访问。然而,MAC功能模块可有各种方式来与这些各种应用以及网络栈的高层接口,以下为示例性的。
[0022] 存储器接口115将装置103与外部存储器元件(例如,动态随机存取存储器(DRAM)体)接口。考虑图2,存储器接口115充当处理器7和MAC层20二者的接口。总线108将存储器接口115与需要访问存储器的元件(包括处理器7和桥120) 连接。提供桥120以与通常各自需要提供比直接连接至总线108的功能单元更低的带宽的多个元件接口。因此,在一些实现方式中下述一些装置可连接到总线108,图3的示例没有暗指对不同实现方法的限制。
[0023] 发送(Tx)头缓冲器110与总线109连接,总线109通过桥120连接至存储器接口115。总线109还与高速缓存125、非易失性存储器150、具有独立于装置103的输入/输出(10)的SPI接口155连接。上层MAC 135与总线109并且与下层MAC 130连接。下层MAC
130与基带165并且与模数转换器(ADC)和数模转换器(DAC)170连接。ADC/DAC 170与相环(PLL)140并且与无线电175连接。基带165也可与无线电175连接。无线电175、ADC/DAC 170、PLL 140和基带165共同用于实现装置103的物理(PHY)层。作为上下文提供这些示例组件及其相互关系,本公开的不同实现方式可提供不同的芯片架构以及这些特征和功能元件的其它实现方式。
[0024] 上层MAC 135可利用桥120两端供应的码来配置,并被存储在高速缓存125中。这种码可源自例如应用处理器7。下层MAC 130可大部分实现在硬件中,并且执行实时功能。下层MAC 130可通过微码、通过码、或者通过从非易失性存储器150获得的参数来配置。下层MAC 130与上层MAC 135通信以接收要从装置103发送的有效载荷数据单元(PDU)的指示。在本公开中,PDU相对于被寻址的装置103的部分。相对于PHY,PDU包括整个MAC帧加上其它数据(例如,前导码)。相对于MAC,PDU包括地址层数据(例如,IP分组)等。为了方便,术语“帧”用于指代MAC层数据的头以及有效载荷数据二者,其包括例如MAC头、主体和帧校验序列。如这里使用的,聚合的多个PDU(AMPDU)可本身被视为帧,但是也包含多个帧。例如,在802.11ac中,即使仅包含单个MAC子帧,所有传输也可为AMPDU格式。AMPDU内的帧的数量可取决于有多少标识的帧能够被聚合。通常,在将帧存储在发送装置的板载(onboard)存储器中的同时执行帧的聚合。在本公开的一些实现方式中,在确定发送分配之后执行这种帧聚合,使得更多帧可用于潜在聚合(如下面说明的)。常见的是,PDU将是来自联网栈的高层的数据分组,例如TCP/IP或UDP分组。因此,MAC PDU常常可包含分组,在这些情况下,PDU可被称为分组(如果更方便的话)。
[0025] 本公开的实现方式将等待发送的MAC帧的头存储在Tx头缓冲器110中。一些实现方式规定Tx头缓冲器110不存储整个主体(即,MAC帧的有效载荷)。在一些 实现方式中,Tx头缓冲器110不存储MAC帧的主体的任何部分。在一些实现方式中,Tx头缓冲器110存储主体的相对小的部分。例如,802.11ac MAC头包括最多34字节的数据(不包括FCS)。一些实现方式可仅将这34字节存储在Tx头缓冲器110中,并且将MAC帧的有效载荷的剩余部分存储在外部存储器(例如,不由上层MAC 135或者甚至整个装置103私有使用,而是在多个功能元件之间共享的存储器)中。除了将这些头数据存储在Tx头缓冲器110以外,各个不同的帧头与对外部存储器中可开始获取MAC帧的下一部分的位置的引用关联。例如,可提供对存储器中的从其开始获取有效载荷数据的位置的指针。这种指针可由存储器接口
115或者另一存储器接口元件(例如,DMA单元)转换。尽管许多实现方式可使用物理存储器位置的指针或引用,一些实现方式可提供虚拟化存储器,使得在那些实现方式中指针不需要直接标识物理存储器。
[0026] Tx头缓冲器110可被分成多个不同的时隙,各个时隙用于保存不同MAC帧的头部分,这种时隙也可提供用于对外部存储器中的位置的引用的预定位置或相对位置。Tx头缓冲器110中分配给所述引用的存储器的量可基于例如存储器的可寻址性和存储器的大小而变化。时隙可作为自由时隙池来组织,当新数据(例如,新有效载荷)到达而要被发送时从其进行分配。
[0027] Tx头缓冲器110的一些实现方式提供与不同服务质量(QoS)关联的队列;各个MAC帧被分配给相应的QoS队列。在一个示例中,供应MAC帧以用于传输的各个客户机被分配至少一个QoS队列。什么构成不同的客户机可在实现方式之间变化。在一个示例中,在站30上执行的各个应用可构成不同的客户机。在另一示例中,连接到接入点10的各个装置或站可构成不同的客户机。在另一示例中,连接到接入点10的各个装置或站中的各个应用可构成不同的客户机。一些实现方式可将不同装置的相似应用分组到同一QoS队列中。
[0028] 各个QoS队列可与针对存储在该队列中的帧将观察的参数的规范关联。例如,可针对各个队列提供抖动和延迟规范。可指定并使用各个到来帧的服务要求来选择用于该帧的特定队列。
[0029] 一些实现方式可提供当前尾指针(queue_tailptr)以标识存储器中的表示给定QoS队列的当前尾的位置。对所分配的时隙(slot_ptr)的指针可被附到该位置,并且当前尾指针(queue_tailptr)被更新以标识所分配的时隙的末尾。例如,队列1、时隙1 包括对保存队列1的时隙2的数据的时隙的指针。因此,队列可利用随机存取存储器来实现,并且无需利用物理上不同的存储器来实现。本公开的实现方式可被限制为按照严格的先入先出(FIFO)顺序从特定队列移走数据以用于发送。然而,实现方式未必需要该行为,例如,可提供非FIFO顺序操作作为操作模式。
[0030] 所提供的QoS队列的数量可在不同的实现方式中变化。由于本公开的实现方式没有存储等待发送的帧的整个有效载荷,所以与使用相同大小的内部存储器,但是存储整个有效载荷的装置相比,本公开的实现方式可供应更多QoS队列、更深的QoS队列、或者队列的数量和深度的一些组合。一些实现方式可使用更小的内部存储器,同时仍提供相同数量的队列。例如,存储等待传输的各个帧的整个有效载荷的装置可具有约兆字节的内部存储器,而根据本公开的一些实现方式可具有大小为约16kB、32kB、64kB、128kB或256kB的存储器。本公开的实现方式所享有的另一优点是更多帧能够被聚合成AMPDU,因为实现本公开的装置可对更多等待发送的帧可见。例如,这种装置可将一般数据业务保存达相对长的时间周期,并且聚合这些一般数据的更多帧,甚至同时根据所需的延迟和抖动要求为更高优先级的业务提供服务。
[0031] 能够聚合更多帧预期将导致更高的网络效率,因为802.11中的最大开销来源之一是获取信道以有权发送。聚合能够通过允许装置获得对无线电信道的访问,然后利用该机会发送多个帧来减小发送给定量的数据的相对开销量。尽管聚合是本公开的一个示例应用,实现本公开的有益效果不取决于聚合或者需要聚合。
[0032] 在一个方法中,各个帧(即,将针对其计算单独的CRC的数据分组)可被聚合在一起以用于传输,在那些聚合的帧之间没有提供帧间间距(IFS)。聚合的帧被选择为具有相同的目的地地址。另一标准可为所有聚合的帧具有相同的服务质量类别(例如,它们是从同一队列获得的,其中队列与各个服务质量类别关联)。尽管通常在给定分组的存储期间执行帧的聚合,本公开的实现方式可从在发起传输时可用的分组当中选择。能够在那时选择用于聚合的分组可允许从更大分组池选择聚合候选。
[0033] 图3描绘了关于装置103的功能的更多细节。应用处理器7和TCP/UDP IP栈16、18(图1)与驱动器12通信以提供分组(例如,IP分组)以用于从装置103传输。驱动器
12将分组传送给上层MAC 130。在一个示例中,上层MAC 130使用存储器接口221来获得用于存储这种分组的主体的存储器分配;在另一示例中,有效载荷可能已经按照上层MAC
130可使用的格式存储在系统存储器中。在一些实现方式中, 存储器可按照128字节或256字节的切片来分配,而非基于最大有效载荷大小(例如,2048字节)。
[0034] 上层MAC 130根据IP分组中的信息来提供MAC头信息,例如源IP地址和目的地IP地址。上层MAC 130还选择与为该分组创建的MAC帧关联的QoS队列(例如,QoS队列215)。上层MAC 130存储头218(可包括MAC帧描述符数据)以及在一些实现方式中,有效载荷(可包括例如TCP/IP头信息)的第一部分以及对可从其开始获取有效载荷或者有效载荷的剩余部分的存储器位置的引用。
[0035] 上层MAC 130可执行MAC帧选择处理(可考虑QoS),导致选择MAC帧以开始传输。响应于确定发送给定MAC有效载荷,上层MAC 130可向下层MAC 135指示Tx头缓冲器110中的存储有该分组的数据的位置;图3描绘了这种数据包括头218以及对可获取有效载荷数据的存储器33的引用。可选地,Tx头缓冲器110存储有效载荷的一部分220。下层MAC
135向PHY 259指示开始传输该分组。发起数据传输的PHY 259的传输可根据情况而变化。
在一个示例中,这种传输包括开始发送前导码序列(例如,没有RTS)。下层MAC 130还获取头218和存储器引用219。下层MAC 135针对存储在所引用的位置处的数据发起向存储器接口221的DMA事务242。在有效载荷的一部分被存储在装置103上(例如,在QoS队列215中)的情况下,所述数据可以是接下来要发送的数据。尽管本公开的各方面可在遵循RTS/CTS协议的情况下实践,将有更多时间来从系统存储器获取有效载荷数据,因此,本文中处理由简单前导码传输强加的更严格的约束。
[0036] 响应于这种事务而返回的有效载荷数据的量可根据存储器技术以及用于实现存储器33的配置以及根据其它情况而变化。一些实现方式可以支持能够用来调节事务大小的可配置DMA子系统。在一个实现方式中,各个存储器事务返回对存储器中的可获取有效载荷的后续部分的下一位置的指针。这种实现方式提供了分配存储器的不邻接区域以用于存储分组数据的能力。这种实现方式还适应大小变化的分组。在一个方面中,驱动器12获得存储器33中的分配并且在所分配的存储器片段上划分有效载荷,并且将指针附在存储在存储器片段中的数据中,使得在读取该数据时可遵循那些指针。
[0037] 这些实现方式还可适应流实现方式,其中不进行预定大小的存储器的区域的预先分配,相反,有效载荷数据被接收并存储在根据需要分配的存储器的部分中。存储器 的所述部分可来自由在应用处理器7上执行的操作系统分配给装置103使用的存储器33的区域。不同的实现方式可使用不同的块大小来进行有效载荷数据的存储器分配。例如,使用更长延迟的存储器的实现方式可被配置为使用更大的存储器块大小。如所示通过MAC PDU250将有效载荷数据返回给下层MAC 135。PHY 259接收和发送数据。尽管一些实现方式规定了驱动器处理存储器的分配以及在这种存储器中的有效载荷数据的存储,其它实现方式可规定上层MAC 135执行这些功能并且为此目的可使用存储器接口115。
[0038] 利用数据的各个部分遍历PHY 259需要一些时间。该时间可在不同的实现方式中表征。另外,发起初始存储器存取并响应于该请求接收有效载荷数据需要一些时间或者预期时间范围。状态机119控制数据传输。在图3的示例中,状态机119是下层MAC 130的一部分。
[0039] 给定实现方式可配置有一个或更多个最大发送时间;在一些情况下,这些最大发送时间可与各个QoS关联。然后可基于符号率确定在特定发送间隔期间可发送多少数据。状态机119可尝试在留在最大发送时间内的同时聚合尽可能多的帧。在一个示例中,状态机119确定应该选择来自特定队列的帧以用于传输,然后可访问该队列中的第一帧的头信息。在实现方式中,头信息可与对该队列中的下一帧的头的指针关联。如果那些帧的目的地地址匹配,则它们可被聚合。如果那些帧被聚合,则状态机119可继续下一帧(遵循下一头指针),并且针对该分组的目的地地址进行相同的确定。在FIFO实现方式中,一旦后续分组的目的地地址未能匹配,聚合就停止。在非FIFO实现方式中,具有非匹配目的地地址的帧可被跳过,并且可发送后续匹配的帧。在这种情况下,将需要修改指针以从该链中移除该乱序帧,同时使所跳过的帧保持相同的相对顺序。尽管这种形式的非FIFO传输可能违背隐含QoS特性,但是它不会使提供给所跳过的帧的QoS更差。在另一实现方式中,如果给定队列被完整遍历,并且给定聚合中仍存在传输空间,则可针对具有匹配的目的地地址的帧检查下一队列。这里同样,这种特征不会给任何帧提供更差的QoS,因为信道将被消耗固定的发送时间,而不管实际上有多少分组被聚合以用于在该固定发送时间内发送。
[0040] 状态机119还可控制数据获取的发起的时间以降低缓冲要求。具体地讲,状态机119可配置有关于最大抖动(延迟时间范围)的信息以从大容量存储器(即,不是缓冲器
110)获得帧数据以用于传输。例如,传输时间可为大约500微秒,更差情况下 的延迟可为大约2微秒-3微秒,而平均值可为500纳秒左右。在一些实现方式中,确定从给定队列发送直至来自存储器的有效载荷数据需要发送之间的可用时间为16微秒左右。在这些情况下,实现方式可将存储器事务从最早可能发起点延迟最多13微秒左右。基于给定数据集合的当前发送进度,状态机119可针对数据发起存储器事务,使得该数据将在接近它将需要被发送的时间从存储器返回。尽管预期将存在一些缓冲量,但是与仅获取并缓冲整个帧有效载荷相比,该缓冲量显著减少。
[0041] 图5描绘了根据上述公开的选择并发送MAC帧的示例处理。在350处,执行帧选择器处理,导致在355处确定发送帧或一组帧。例如,帧选择处理可使用QoS标准来从不同的业务类型当中进行选择。帧选择处理还可尝试与QoS标准一致地聚合等待发送的多个帧。在360处,对于选择的第一帧,可访问头和存储器指针信息。在365处针对接下来要发送的有效载荷数据建立读取事务,并且在接收到该数据时,可在375处将该数据提供给物理层以用于传输。另外,在380处,标识下一存储器位置,将从其获取另外的数据(如果有的话)。在390处,如果帧完成,则处理可返回以访问要聚合的下一帧的头以及对存储有该后续帧的有效载荷数据的存储器位置的引用,并且根据相同流程进行处理。然而,在390处,如果帧没有完成,则可在365处建立对有效载荷的后续部分的读取事务,等等。这些读取事务中的每一个可被定时,使得从各个后续读取事务返回的数据可被存储在存储有针对有效载荷的先前部分发送的数据的同一缓冲位置中。在一个实现方式中,各个DMA请求被定时以隔开大约8微秒发生,并且可包括用于数据的2符号时间。
[0042] 图6描绘了在装置103处用于传输的有效载荷(例如,分组)的纳入处理的方法。在405处,接收待发送的有效载荷(例如,TCP/IP分组)。在407处,存储用于存储有效载荷的主体的存储器分配。在TCP/IP分组的上下文中,这种有效载荷包括TCP/IP分组的有效载荷以及TCP/IP头信息。在410处,有效载荷被分成区段以用于存储到所分配的位置中。
将说明的是,本公开的实现方式中所分配的存储器无需连续。在这些实现方式中,对存储器的各个后续部分的指针可被附到有效载荷,以标识存储有效载荷的下一存储器位置。最后存储器位置可包括完成指示(可以是预先安排的比特序列)。其它实现方式可指示有多少存储器位置存储有特定MAC帧(即,所接收到的有效载荷的封装)的有效载荷以用于传输。
在412处,附有指针的有效载荷被存储在所分配的存储器位置处;一些实现方式可将有效载荷的初始部分保持在芯片上。在 420处,针对QoS对有效载荷进行处理。例如,层3或层
4QoS信息可存在于所接收到的有效载荷中。在其它情况下,特定端口、MAC地址、IP地址等可与特定QoS规范或者具有关联的QoS规范的应用关联。420的结果包括为有效载荷选择队列,并且在422处为有效载荷生成的MAC头,并且在425处,对存储有效载荷的存储器位置的引用以及可选地有效载荷的一部分与头关联地存储在芯片上。
[0043] 一些实现方式可涉及装置103接收对要发送的有效载荷(例如,TCP/IP分组)的指针。这种指针可由在应用处理器7上执行的驱动器创建,或者由与驱动器接口以提供对存储有效载荷数据的位置的指针的另一处理(例如,生成TCP/IP分组以用于传输的TCP处理)创建。在一些实现方式中,上层MAC 135可仅读取由这种指针标识的数据的第一部分(例如,读取TCP和IP头信息),然后上层MAC 135可基于这些信息来构造MAC头。上层MAC135可将有效载荷数据从原始位置复制到系统存储器中的位置;在一些情况下,有效载荷可能原来没有存储在系统存储器中,上层MAC 135可将有效载荷复制到系统存储器。在这样做时,上层MAC 135可将指针附到各个有效载荷存储位置,各个有效载荷存储位置标识后续有效载荷元件的存储位置。因此,本公开的实施方式可被实现为在没有复制的情况下从系统存储器中的位置读取有效载荷数据,或者复制这种有效载荷数据。在任一情况下,上层MAC 135可保留被读取的有效载荷的一些部分(例如,被读取以构造MAC头的部分),并且在MAC头之后发起该数据的传输。可在发送这种数据的同时获取剩余有效载荷数据。
[0044] 一些实现方式可使用驱动器12(或者站30的驱动器34)来控制存储器33中的帧有效载荷的存储。在这种方法中,驱动器12将获得用于帧有效载荷的存储分配。该分配可包含存储器中的一组位置,各个位置由指针或引用标识。驱动器12可使得帧有效载荷被存储在所述一组位置中,并且通过向各个位置提供对所述一组位置中的后续位置的指针来建立相对排序。然后,可对这些指针进行遍历以获得该帧的有效载荷。对所述一组位置中的起始位置的指针可被提供以用于Tx头缓冲器110中的存储。可进行Tx头缓冲器110中的分配以存储该指针以及诸如头信息和该帧的有效载荷的开始部分的其它信息。状态机119可使用指针来开始获取该帧的有效载荷。因此,Tx头缓冲器110和存储器33二者可按照片段来分配。
[0045] 这些存储器按照片段来分配,存储在这些存储器中的数据通过后面的指针来寻址(在Tx头缓冲器110内,介于头信息之间并且也在存储器33内以获得帧有效载荷数 据)。因此,尽管一个有利的实现方式是提供存储器33作为与Tx头缓冲器110分离的存储器(例如,不同的存储器技术和/或不同的半导体基板),其它实现方式也可采用更大的板载存储器来存储帧有效载荷。可使驱动器12没有困难地支持这两个实现方式。
[0046] 图7描绘了在存储有效载荷数据的部分的存储器33和Tx头缓冲器110中的一个或更多个内释放存储器位置的示例方法。在427处,可跟踪存储被发送的特定有效载荷的数据的存储器位置。例如,这种跟踪可由下层MAC 135在生成对那些位置的DMA请求时执行。在另一实现方式中,存储器接口115可跟踪这些位置。跟踪427还可通过仅跟踪第一位置,然后遵循指针到达各个后续位置来实现。在428处,确定针对先前帧接收到确认(ACK),并且响应于这种ACK,在430处,Tx缓冲器110中的存储器位置可被释放的指示。在MAC帧仅具有单个有效载荷(例如,单个MAC头与单个有效载荷)的情况下,可仅存在待释放的一个位置。在ACK是针对聚合的帧的情况下,可释放多个位置。另外,如果ACK是块确认,则该块确认将被解析以标识所确认的各个特定MAC帧。在432处,可提供指示以释放存储被确认的帧的有效载荷的存储器33中的存储器位置。相反,如果在特定帧的超时周期内没有接收到ACK,则可针对该帧重复发送处理。无线协议还可实现否定确认,否定确认也可触发发送处理的执行。
[0047] 描述和/或要求保护的功能和方法的各方面可被实现在包括计算机硬件的专用或通用计算机中,如下面更详细讨论的。这种硬件、固件和软件也可在视频卡或者其它外部或内部计算机系统外设上具体实现。各种功能可在定制的FPGA或ASIC或者其它可配置处理器中提供,而一些功能可在管理或主机处理器中提供。这种处理功能可用在个人计算机、台式计算机、膝上型计算机、消息处理器、手持装置、多处理器系统、基于微处理器或可编程消费电子产品、游戏机、网络PC、微型计算机、大型计算机、移动电话、PDA、平板等中。
[0048] 除了硬件实施方式以外(例如,在中央处理单元(“CPU”)、微处理器、微控制器、数字信号处理器、处理器核心、系统芯片(“SOC”)或者任何其它可编程或电子装置内或与其连接),实现方式还可在软件(例如,计算机可读代码、程序代码、以诸如源语言目标语言或机器语言的任何形式设置的指令和/或数据)中具体实现,所述软件被设置在例如被配置为存储所述软件的计算机可用(例如,可读)介质中。 这种软件可实现例如本文所述的设备和方法的功能、制造、建模、仿真、描述和/或测试。例如,这可通过使用通用编程语言(例如,C、C++)、GDSII数据库、硬件描述语言(HDL)(包括Verilog HDL、VHDL、SystemC寄存器传送级(RTL)等)、或者其它可用程序、数据库和/或电路(即,电路图)捕获工具来实现。实施方式可被设置在包括非瞬时性存储器(例如,使用半导体的存储器、磁盘、光盘、亚电阻存储器等)的计算机可用介质中。
[0049] 作为具体示例,将理解,所公开的设备和方法的实现方式可被实现在诸如微处理器核心的半导体知识产权核心或其一部分中,以硬件描述语言(HDL)来具体实现,其可用于生成特定集成电路实现方式。计算机可读介质可具体实现或存储这种描述语言数据,因此构成制品。非瞬时性机器可读介质是计算机可读介质的示例。其它实施方式的示例包括存储寄存器传送语言(RTL)描述的计算机可读介质,其可适于用在特定架构或微架构实现方式中。另外,本文所述的设备和方法可被具体实现为硬件以及对硬件进行配置或编程的软件的组合。
[0050] 另外,在一些情况下,本文中使用的术语被视为更合理地向普通技术人员传达特征点,但是这些术语不应被视为隐含地限制所公开的示例和其它方面所涵盖的实现方式的范围。例如,一些方面相对于IEEE 802.11系列无线传输标准进行了描述。然而,本公开的实现方式不限于这些标准。
[0051] 另外,在先前的公开中示出并描述了多个示例,各个示例示出了可具体实现的根据以下权利要求的系统、方法和存储在计算机可读介质上的计算机可执行指令的不同方面。就必要性而言,并非每一个示例示出每一个方面,示例并非示出这些方面的排他组成。相反,参照一个附图或者示例示出并描述的方面可与参照其它附图示出并描述的方面一起使用或组合。因此,普通技术人员将从这些公开理解,以上公开并非对根据权利要求的全部实施方式的限制,相反,权利要求的范围限定本文中的实用新型的实施方式的范围。实用新型内容和摘要部分可在权利要求的范围内阐述本实用新型的一个或更多个但非所有的示例性实施方式和方面。
QQ群二维码
意见反馈