CN102347901A - 用于高速媒体接入控制的存储器管理 - Google Patents
用于高速媒体接入控制的存储器管理 Download PDFInfo
- Publication number
- CN102347901A CN102347901A CN2011102851512A CN201110285151A CN102347901A CN 102347901 A CN102347901 A CN 102347901A CN 2011102851512 A CN2011102851512 A CN 2011102851512A CN 201110285151 A CN201110285151 A CN 201110285151A CN 102347901 A CN102347901 A CN 102347901A
- Authority
- CN
- China
- Prior art keywords
- bag
- data structure
- stream
- pointer
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 241
- 239000000872 buffer Substances 0.000 claims abstract description 180
- 238000000034 method Methods 0.000 claims description 232
- 230000015572 biosynthetic process Effects 0.000 claims description 158
- 238000003860 storage Methods 0.000 claims description 138
- 238000004891 communication Methods 0.000 claims description 84
- 238000003491 array Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 242
- 238000005755 formation reaction Methods 0.000 description 154
- 230000008569 process Effects 0.000 description 134
- 238000012545 processing Methods 0.000 description 76
- 230000011218 segmentation Effects 0.000 description 76
- 230000006870 function Effects 0.000 description 65
- 238000007726 management method Methods 0.000 description 65
- 230000008676 import Effects 0.000 description 61
- 230000000875 corresponding effect Effects 0.000 description 58
- 230000001360 synchronised effect Effects 0.000 description 58
- 238000005516 engineering process Methods 0.000 description 55
- 230000000712 assembly Effects 0.000 description 40
- 238000000429 assembly Methods 0.000 description 40
- 238000006116 polymerization reaction Methods 0.000 description 40
- 230000004044 response Effects 0.000 description 39
- ADTDNFFHPRZSOT-PVFUSPOPSA-N ram-330 Chemical compound C([C@H]1N(CC2)C)C3=CC=C(OC)C(OC)=C3[C@]32[C@@]1(O)CC[C@@H](OC(=O)OCC)C3 ADTDNFFHPRZSOT-PVFUSPOPSA-N 0.000 description 20
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 16
- 230000008859 change Effects 0.000 description 13
- 230000004907 flux Effects 0.000 description 13
- 230000007480 spreading Effects 0.000 description 12
- 238000003892 spreading Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 10
- 230000003111 delayed effect Effects 0.000 description 7
- 238000013467 fragmentation Methods 0.000 description 7
- 238000006062 fragmentation reaction Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 230000002618 waking effect Effects 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 6
- 238000011049 filling Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000004140 cleaning Methods 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 238000005406 washing Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 101001115830 Homo sapiens Prostate-associated microseminoprotein Proteins 0.000 description 2
- 241000209094 Oryza Species 0.000 description 2
- 235000007164 Oryza sativa Nutrition 0.000 description 2
- 102100025013 Prostate-associated microseminoprotein Human genes 0.000 description 2
- 208000016709 aortopulmonary window Diseases 0.000 description 2
- 230000009172 bursting Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000037361 pathway Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 235000009566 rice Nutrition 0.000 description 2
- 238000009991 scouring Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 102000006479 Heterogeneous-Nuclear Ribonucleoproteins Human genes 0.000 description 1
- 108010019372 Heterogeneous-Nuclear Ribonucleoproteins Proteins 0.000 description 1
- 208000026139 Memory disease Diseases 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 238000009933 burial Methods 0.000 description 1
- DGLFSNZWRYADFC-UHFFFAOYSA-N chembl2334586 Chemical compound C1CCC2=CN=C(N)N=C2C2=C1NC1=CC=C(C#CC(C)(O)C)C=C12 DGLFSNZWRYADFC-UHFFFAOYSA-N 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000006984 memory degeneration Effects 0.000 description 1
- 208000023060 memory loss Diseases 0.000 description 1
- 230000010387 memory retrieval Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000000518 rheometry Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- URWAJWIAIPFPJE-YFMIWBNJSA-N sisomycin Chemical compound O1C[C@@](O)(C)[C@H](NC)[C@@H](O)[C@H]1O[C@@H]1[C@@H](O)[C@H](O[C@@H]2[C@@H](CC=C(CN)O2)N)[C@@H](N)C[C@H]1N URWAJWIAIPFPJE-YFMIWBNJSA-N 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/621—Individual queue per connection or flow, e.g. per VC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9021—Plurality of buffers per packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/02—Buffering or recovering information during reselection ; Modification of the traffic flow during hand-off
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/24—Reselection being triggered by specific parameters
- H04W36/26—Reselection being triggered by specific parameters by agreed or negotiated communication parameters
- H04W36/28—Reselection being triggered by specific parameters by agreed or negotiated communication parameters involving a plurality of connections, e.g. multi-call or multi-bearer connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/20—Manipulation of established connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/08—Access point devices
Abstract
本发明涉及用于高速媒体接入控制的存储器管理。本文中所揭示的方面解决所属技术领域中对用于高速媒体接入控制的存储器管理的需要。包缓冲器可存储具有第一数据结构的包,所述第一数据结构包含包长度、序列号及指向第二数据结构的指针。可将包数据存储在一个或一个以上第二数据结构的链接表中。可使用第一数据结构的链接表或阵列形成传输及接收队列。可将用于存储第一及第二数据结构的存储器位置保持在指示相应数据结构类型的空闲位置的列表中。揭示一种其中可选择两种配置的灵活存储器架构。在第一种配置中,第一存储器包含多个流的每流参数,且第二存储器包含包缓冲器。在第二种配置中,所述第一存储器包含指向所述第二存储器中的每流参数的每流指针。所述包缓冲器驻存于第三存储器中。还提供各种其它方面。
Description
分案申请的相关信息
本案是分案申请。该分案的母案是申请日为2007年3月30日、申请号为200780010691.1、发明名称为“用于高速媒体接入控制的存储器管理”的发明专利申请案。
35U.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)的团体提供的标准且其包含于包括第3G TS 25.211、3G TS 25.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)无线局域网中可实现对这些网络的改善。已引入IEEE 802.11(e)来改善先前802.11标准的服务质量(QoS)缺点。
现在正介绍802.11(n)规范,其定义高速无线网络及用于与其一同操作的媒体接入控制协议。先前802.11标准主要与数据转移、浏览及电子邮箱类型的应用相关。802.11(n)打算提供需要高通量、性能及服务质量的稳健的多媒体分配应用程序。出于这些需要,产生对用于提供服务质量及高速操作性的高效实施方案及技术的需要。因此,所属技术领域中需要高效的高速媒体接入控制。
发明内容
本文中所揭示的方面解决所属技术领域中对高效的高速媒体接入控制的需要。
根据一个方面,说明一种设备,其包括与包相关联的第一数据结构、包含来自所述相关联包的数据的第二数据结构,且其中所述第一数据结构包含:指示所述相关联包的长度的长度字段;指示所述相关联包的序列号的序列号字段;指示所述第二数据结构在包缓冲器中的位置的第二数据结构指针字段。
根据另一方面,说明第一数据结构,其可与包含来自相关联包的数据的第二数据结构一同操作且其包括:指示所述相关联包的长度的长度字段;指示所述相关联包的序列号的序列号字段;存储所述第二数据结构在存储器中的位置的指针字段。
根据另一方面,揭示一种方法,其用于:在包缓冲器中的第一数据结构中存储第一包的长度、所述包的序列号及所述包缓冲器中的第二数据结构的第二包缓冲器位置,且将来自所述第一包的数据存储在由所述所存储的第二包缓冲器位置识别的第二数据结构中。
根据另一方面,揭示一种用于将多个包存储在包缓冲器中的方法,每一包用相关联的第一数据结构及一个或一个以上相关联的第二数据结构存储,所述一个或一个以上第二数据结构形成为链接表,其中每一第一数据结构包含指示所述相关联包的长度的长度字段、指示所述相关联包的序列号的序列号字段及指示所述一个或一个以上第二数据结构中的第一者在包缓冲器中的位置的第二数据结构指针字段;且其中每一第二数据结构包含来自所述相关联包的数据及指示相应链接表中的下一第二结构(如果有)的下一第二数据结构指针字段。
根据另一方面,说明一种设备,其包括:存储装置,其用于在包缓冲器中的第一数据结构中存储第一包的长度、所述包的序列号及所述包缓冲器中的第二数据结构的第二包缓冲器位置;及存储装置,其用于将来自所述第一包的数据存储在由所述所存储的第二包缓冲位置识别的第二数据结构中。
根据另一方面,说明一种设备,其包括:与包相关联的第一数据结构,及包含来自所述相关联包的数据的一个或一个以上第二数据结构;且其中所述第一数据结构包含指示所述相关联包的长度的长度字段、指示所述相关联包的序列号的序列号字段及指示所述第二数据结构中的一者在包缓冲器中的位置的第二数据结构指针字段;及用于将所述包存储在所述第二数据结构中的一者或一者以上中的装置。
根据另一方面,说明一种设备,其包括:第一存储器,其以第一模式配置以存储多个通信流中的每一者的一个或一个以上参数且以第二模式配置以存储所述多个通信流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;第二存储器,其以所述第一模式配置以存储所述多个通信流中的每一者的包且以所述第二模式配置以存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与相应通信流相关联的位置中;存储器接口,其可与第三存储器一起操作,所述存储器接口以所述第二模式配置以操作以存储所述多个通信流中的每一者的包;及处理器,其选择所选择的模式作为所述第一模式或所述第二模式,根据所述所选择的模式配置所述第一存储器,根据所述所选择的模式配置所述第二存储器且根据所述所选择的模式配置所述存储器接口。
根据另一方面,说明一种无线通信装置,其包括:第一集成电路,所述第一集成电路包含:第一存储器,其以第一模式配置以存储多个通信流中的每一者的一个或一个以上参数且以第二模式配置以存储所述多个通信流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;第二存储器,其以所述第一模式配置以存储所述多个通信流中的每一者的包且以所述第二模式配置以存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与相应通信流相关联的位置中;存储器接口,其可与第三存储器一起操作,所述存储器接口以所述第二模式配置以操作以存储所述多个通信流中的每一者的包;及处理器,其选择所选择的模式作为所述第一模式或所述第二模式,根据所述所选择的模式配置所述第一存储器,根据所述所选择的模式配置所述第二存储器,且根据所述所选择的模式配置所述存储器接口;及第二集成电路,其包含存储所述多个通信流中的每一者的包的第三存储器,其与所述第一集成电路的存储器接口耦合。
根据另一方面,说明一种无线通信装置,其包括:第一存储器,其存储多个通信流中的每一者的一个或一个以上参数;及第二存储器,其存储所述多个通信流中的每一者的包,包含与包相关联的第一数据结构;及包含来自所述相关联包的数据的第二数据结构;且其中所述第一数据结构包含指示所述相关联包的长度的长度字段,指示所述相关联包的序列号的序列号字段及指示所述第二数据结构在所述第二存储器中的位置的第二数据结构指针字段。
根据另一方面,说明一种无线通信装置,其包括:第一存储器,其存储多个通信流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;及第二存储器,其存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与相应通信流相关联的位置中;及第三存储器,其存储所述多个通信流中的每一者的包。
根据另一方面,其说明一种设备,其包括:选择装置,其用于选择第一或第二模式;配置装置,其用于以第一模式配置第一存储器以存储多个通信流中的每一者的一个或一个以上参数;配置装置,其用于以第二模式配置所述第一存储器以存储所述多个通信流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;配置装置,其用于以所述第一模式配置第二存储器以存储所述多个通信流中的每一者的包;配置装置,其用于以所述第二模式配置所述第二存储器以存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与相应通信流相关联的位置中;及配置装置,其用于以所述第二模式配置可与第三存储器一起操作的存储器接口以操作以存储所述多个通信流中的每一者的包。
根据另一方面,说明计算机可读媒体,其可操作以执行:选择第一或第二模式;以第一模式配置第一存储器以存储多个通信流中的每一者的一个或一个以上参数;以第二模式配置所述第一存储器以存储所述多个通信流中的每一者的指针,每一指针指示与相应的通信流相关联的位置;以所述第一模式配置第二存储器以存储所述多个通信流中的每一者的包;以所述第二模式配置所述第二存储器以存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与相应通信流相关联的位置中;及以所述第二模式配置可与第三存储器一起操作的存储器接口以操作以存储所述多个通信流中的每一者的包。
附图说明
图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图解说明用于低延迟响应的媒体接入控制的方面;
具体实施方式
下文将详述各个方面,可在任一既定实施例中组合所述方面中的一者或一者以上。本文中所揭示的方面通过非常高的位率无线局域网物理层(或使用新浮现的传输技术的类似应用)来支持高效率操作。实例性无线局域网可以两个频带模式20MHz及40MHz操作。其支持超过100Mbps(百万位/秒)的位率,包括20MHz的信道带宽中的高达300Mbps及40MHz的信道带宽中的高达600Mbps。还可支持各种替代无线局域网,包括那些具有两个以上频带模式及任何数量的所支持位率的无线局域网。
各个方面保留遗留无线局域网系统的分布式协调操作的简单性及强健,此种系统的实例可在802.11(a-g)中找到。可在维持与此种遗留系统的后向兼容性的同时实现各种实施例的优点。(注意,在以下说明中,将802.11系统说明为实例性遗留系统。所属技术领域的技术人员将认识到,所述改善也可与替代系统及标准兼容。)
本文中所说明的一个或一个以上实例性方面是在无线数据通信系统的上下文中加以论述。尽管此上下文中的使用是有利的,但本揭示内容的不同实施例也可并入到不同的环境或配置中。大体来说,本文中所说明的各种系统可使用由软件控制的处理器、集成电路或离散逻辑形成。本申请案通篇所提及的数据、指令、命令、信息、信号、符号及芯片有利地由电压、电流、电磁波、磁场或粒子、光场或粒子或其一组合表示。此外,每一框图中0所示的方块可表示硬件或方法步骤。方法步骤可在不背离本揭示内容的范围的情况下互换。本文所用词语“实例性”意指“用作实例、示例或例示”。本文中说明为“实例性”的任一“实施例”未必解释为优选或优于其它实施例。
图1图解说明系统100的实例性实施例,系统100包含连接到一个或一个以上用户终端(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可由一个或一个以上可整体或部分地嵌入于处理器210内的不同类型的存储器组件构成。图中显示I/O 230连接到处理器210,I/O 230可包含一个或一个以上输入及/或输出功能,其实例在所属技术领域中众所周知。
媒体接入控制(MAC)处理器240连接到处理器210。在下文所详述的许多实施例中,媒体接入控制处理器240执行包的高速处理,即,以线速度。大体来说,较低速率处理或“固件”任务将由处理器210结合“线速度”处理执行,所述“线速度”处理通常由媒体接入控制处理器240处置。媒体接入控制处理器240递送数据以传输到物理层(PHY)260以在无线局域网120上传输,且处理在无线局域网120上接收的来自物理层260的数据。处理器210还可接收物理层数据并处理数据以形成传出流的包(在下文所详述的实例中,通常结合媒体接入控制处理器240)。递送到物理层260的数据的格式及从物理层260接收的数据的格式将依据无线通信装置104或106所支持的通信系统或系统的规范。
媒体接入控制处理器240根据网络102的物理层要求经由连接110接收及传输数据。可选网络处理器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 MISOAND MIMO SYSTEMS)”的第10/650,295号共同待决美国专利申请案中,所述专利申请案受让予本申请案的受让人,并以引用的方式并入本文中。替代实施例可包括单输入多输出(SIMO)或单输入单输出(SISO)系统。
图中显示物理层260与天线270A-N连接。在各种实施例中可支持任何数量的天线。天线270可用于在无线局域网120上传输及接收。
物理层260可包含与一个或一个以上天线270中的每一者通信的空间处理器。所述空间处理器可单独地处理每一天线的传输数据,或共同地处理所有天线上的所接收信号。独立处理的实例可基于信道估计、来自用户终端的反馈、信道反转或所属技术领域中已知的各种其它技术。使用各种空间处理技术中的任一者执行所述处理。此类型的各种收发器可使用波束成形、波束导引、特征导引或其它空间技术传输以增加到既定用户终端及来自所述既定用户终端的通量。在某些其中传输OFDM符号的实施例中,空间处理器可包含用于处理每一OFDM子载波(还称作音调)或频段的子空间处理器。
在实例性系统中,接入点(或任何STA,例如用户终端)可具N个天线,且实例性用户终端可具有M个天线。因此,接入点与用户终端的天线之间存在MxN个路径。所属技术领域中已知用于使用这些多个路径来改善通量的各种空间技术。在空间时间传输分集(STTD)系统(在本文中还称作“分集”)中,传输数据被格式化及编码且被作为单个数据串流跨越所有天线而发送。由于有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的储存库。因此,媒体接入控制处理器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描绘无线通信装置(例如,STA 104或接入点106)的更详细实例性实施例。在此实例中,将使用一个媒体接入控制处理器说明(粗略说明)各种实例性包特征的媒体接入控制处理。在替代实施例中,可将用于不同类型的包的媒体接入控制处理功能分为两个或两个以上媒体接入控制处理器(下文参照图48及49详述实例性替代实施例)。
如以前,处理器210经部署以执行固件任务。图解说明一实例性组的支持功能,其在此种部署中是典型的。所属技术领域中的技术人员将清楚各种替代实施例。处理器210经由指令总线506与指令同步随机存取存储器502及引导只读存储器504进行通信。可使用这些存储器来执行用于处理器210上的固件处理的所熟知指令存储及检索。通过连接到总线514的组件来图解说明实例性I/O功能及支持功能。在此实例中,定时器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/O 230)概念性地识别所说明的组件。
图5的组件(除同步动态随机存取存储器340以外)形成媒体接入控制处理器专用集成电路310的一个实例性实施例的部分,例如上文在图3及4中所说明。这些组件可经配置以用作STA 106配置(详述于图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及同步动态随机存取存储器340)时减轻拥堵的速率匹配及队列及媒体接入控制处理功能(例如,H2W处理器530及下层媒体接入控制核心540)。举例来说,传入及传出接口可以相对于无线局域网的通量能力为高的速度操作。传入流可以是猝发性及高速度。从处理器或连接到总线520的任何其它组件接收的信息可以又一速率到达。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包括于所述程序块中以指向链接表中的下一程序块(如果有)。
在一个实施例中,程序块是固定大小。此允许包缓冲器存储器包含存储器的分配给程序块的固定部分。链接表结构允许任何程序块用于任何包链接表中。由于包来来往往,因此可容易地重新使用程序块,而不需要额外存储器管理开销(例如,为不同大小的包重新分配空间等等)。此结构还允许高效的处理,大体来说在于向包缓冲器仅写入一次程序块,所述程序块保留在所述包缓冲器中直到其准备在无线局域网上传输或越区切换到传出目的地。还可简单地通过覆写指针(即,改变链路列表)在队列内移动包或将包移动到新的队列。此在处理将要重传的包时有用。这些结构的使用提供额外效率,如将在下文中进一步详述。每一链接表可将多种列表终止符中的任一者用于队列中的最后节点或包中的最后程序块。在所述实例性实施例中,链接表中的第一及最后节点由标头指针及尾指针指示,同时装入程序块指针以指示包中的最后程序块。在替代实施例中,可需要将程序块的数量连同包长度及包序列号一同添加在节点标头中。还构想包括可变程序块大小的替代实施例。
图7进一步图解说明实例性包缓冲器250。可将存储器的邻近程序块分配到各种数据结构类型,但此并非必需。如上文所说明,可将分段730的一部分分配给节点,且可将分段740分配给程序块。在实例性实施例中,这些分段中的每一者是存储器的邻近空间,包括可重新用于任何包及/或流的固定大小的节点及程序块,如上文所说明。此外,维持空闲节点指针列表710及空闲程序块指针列表720。如所属技术领域中的技术人员将明了,可针对空闲指针列表部署各种数据结构。在一个实例中,可将节点指针及程序块指针推入及弹出到其相应指针列表710或720。举例来说,这些列表可以是环形缓冲器。一旦弹出指针以形成新的节点或程序块,那么所述指针将保持使用直到所述节点或程序块空闲,然后可将所述指针推回以供将来使用。
图8描绘可在(例如)本文所详述的实例性实施例中部署于媒体接入控制处理器内的额外组件。这些组件并非必需,但由于正在使用的存储器的类型的特定性质,这些组件可在某些情况下产生优点。举例来说,通常存在与同步动态随机存取存储器接入相关联的延迟。当执行小的转移(即,在检索或存储单个节点或程序块指针时)时还可存在低效率。在使用某些类型的同步动态随机存取存储器的情况下,在分解行存取、列存取等时,开销循环可覆盖实际的数据转移循环。为防止大的延迟,各种高速缓存器可经部署以用于一次检索数个指针以用于媒体接入控制处理。图8描绘这些高速缓存器中的数个的实例。可在各种替代实施例中部署某些或所有这些高速缓存器。用于本文所详述的实施例中的实例性高速缓存器包括传输空闲节点指针高速缓存器810、传输空闲程序块指针高速缓存器820、接收空闲节点指针高速缓存器830及接收空闲程序块指针高速缓存器840。可简化上文所图解说明的包的数据结构以用于接收包,其实例性实施例参照图33进一步详述于下文中。大体米说,这些高速缓存器810-840中的每一者从包缓冲器250中的其相应节点指针列表接收一个或一个以上指针以创造效率。可从所述包缓冲器一次检索多个每一指针类型。在此实例中,可从相应的列表弹出多个指针。然后,这些指针填注相应的高速缓存器,且可从所述相应高速缓存器弹出单个指针以用于各种媒体接入控制处理组件。将通过下文所详述的各种实例性实施例进一步图解说明指针及其相应高速缓存器的使用。
图9描绘用于向包缓冲器写入包并创建队列的方法900的实例性实施例。可使用数据结构(在此实例中为链接表)来形成队列。队列还可形成为阵列(所给出实例为下文所详述的节点阵列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中。在所述实例性实施例中,需要将固件交互作用从线速度处理解耦,如上文所说明。然而,所述固件可能非常适于创建用于流映射的表。为解耦所述固件交互作用,部署两个影子流表,表1 1092及表21096。H2W处理器530使用一个影子表(由开关1090选择),同时固件可更新其它影子表(由开关1099选择)。因此,可部署乒乓技术,所述固件通过所述乒乓技术来更新一个表,而另一表用于媒体接入控制处理。每一影子流表1092或1096包含具有对应的流识别符的一列DMAC-业务串流识别符条目。影子流表11092包含与流识别符1094A-N相关联的DMAC-业务串流识别符1093A-N。影子流表21096包含具有相关联的流识别符1098A-N的DMAC-业务串流识别符1097A-N。因此,流映射块1020将DMAC-业务串流识别符递送到活跃地选择的影子流表,且返回流识别符。在所述实例性实施例中,为执行流识别符的快速搜索,执行二进制搜索。固件非常适于将DMAC-业务串流识别符字段排序,以促进二进制搜索。所属技术领域中的技术人员将认识可在替代实施例中替代使用的替代流映射程序。
现在返回到图10A,将所述流识别符递送到传输流状态表1030,下文参照图11详述传输流状态表1030的实例性实施例。传输流状态表1030包含每一流的各种参数。传输流状态表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且许可所述包传入。如果不,则进行到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中所示,可将分段的数量发送到列表功能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用作一个例示性实例。
传输处理
在先前部分中,阐述了图解说明传入包的高效媒体接入控制处理方面的各种实施例,从而以使用各种数据结构处理进入包缓冲器的包以等待传输而终结。在此传输处理部分中,通过使用上文介绍的数据结构所获取的进一步效率将变得明显。此外,将介绍提高高速媒体接入控制处理的效率的其它方面。
大体来说,能够支持多个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队列1710A-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队列的使用仅为例示性。大体来说,可部署与各种类型的信道相关联的队列的选择。所述信道类型可基于服务质量等级及/或传输类型(例如,经调度的接入或基于争用的接入)而不同。
图18描绘图解说明下层媒体接入控制核心540的各种组件的实例性实施例。提供节点用于包处理的效率的各种方面、用于将固件从包处理速度解耦的队列及高速缓存器及其它方面将图解说明于以下实例中。所属技术领域中的技术人员将认识到,可部署额外组件(未显示),且并非在任一特定实施例中都需要所图解说明的每一方面或特征来利用其它方面或特征。图18的细节图解说明流的调度及经调度以进行最终传输的各种包的识别。结果以与经调度包相关联的识别符、相关联参数及每一信道类型的就绪信号递送到传输(TX)引擎1880而终结。在此实施例中,使用节点执行包识别,如上文所详述。在此实例中,遗留802.11类型信道用于例示目的。所属技术领域中的技术人员将认识到可使用图18中所详述的类似组件来适应任一信道类型。在此实例中,维持四个EDCA队列,EDCA 0-3 1850A-D。还与广播控制信道1860一同部署HCCA队列1855。进一步详细图解说明EDCA 0的结构,其中省略其它信道的细节,因为其在各种实施例中可相同或类似。
传输调度以固件填充与每一信道(举例来说,1850或1855)相关联的一个或一个以上命令列表1815开始。所述命令列表填充有将被调度的流识别符。所述命令列表可包含流识别符连同传输机会。对于EDCA队列,传输机会将被争用,且因此不可提前知道传输时间。然而,最大传输机会大小可连同所述流识别符包括在内。对于HCCA调度,可知道所述传输机会大小以及经调度的递送时间,且此传输机会信息可与所述流识别符一同包括在相关联的命令列表1815中。对于每一信道,阵列控制器1840可控制所述信道的包的调度。所述阵列控制器弹出来自命令列表1815的流识别符以确定将要传输的下一经调度流。维持这些命令列表中的数个允许固件调度器一次作出一批决策且将其放到相应列表中,可随着时间实施所述决策。此允许各种阵列控制器1840处理来自所述列表的流识别符,从而减小对固件交互作用的需要。此允许减少或消除对固件的中断且将所述固件调度从媒体接入控制处理解耦,如上文所说明。所属技术领域中的技术人员将容易地修改用于调度流以在所支持组的信道(包括基于EDCA类型争用的信道或HCCA类型轮询或经调度信道)中进行服务的替代技术。
在此实例中,为所支持的多个流中的每一者维持传输节点高速缓存器1810。传输节点高速缓存器1810用作通用每流高速缓存器的实例,且适于部署为上文所图解说明的队列1710。在所述实例性实施例中,将维持256个此类流。每一流高速缓存器包含用于多个节点(其表示所述流的相应包)的空间。在所述实例性实施例中,在每一传输节点高速缓存器1810中维持每一流的四个节点。因此,至少4个包被识别为将要针对256个流中的每一者传输的下一批包。可通过至少这四个节点满足那些流所需要的任何立刻传输。在替代实施例中,如果需要,可支持额外节点。
虽然在此实例性实施例中使用节点来图解说明一个方面,但存在可部署的多种等效技术。举例来说,可高速缓冲存储替代数据结构。在另一实例中,可高速缓冲存储包本身。大体来说,图解说明为多个高速缓存器1810的高速缓存器将用于存储一个或一个以上元素,可在处理所高速缓冲存储的元素之后从所述元素识别及检索相应的一个或一个以上包。
传输节点高速缓存器刷新1835与高速缓存器1810交互作用以保持其填满及更新。传输节点高速缓存器刷新1835可与存储器仲裁器(例如,上文所详述的存储器仲裁器1080)交互作用。在一个实施例中,作出检索流的一个或一个以上节点的请求,且当包缓冲器被准予接入时,可将所检索的节点放到相应的传输节点高速缓存器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及1855图解说明)中的一者中。大体来说,选择器可基于所需要的任何因素(例如,服务质量、信道类型及类似因素)选择任何数量的每流高速缓存器或每流队列(即,包缓冲器中的传输队列)以将元素存储在队列(例如,节点阵列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的一侧,但传输期间可存在继续填充所述阵列的时间。已经提到且进一步详述于下文中的是非调度自动省电递送模式,其立刻利用所述前四个包。在非调度自动省电递送中,可将指示符(例如,“更多”位)与所述前四个包一同发送。在所述包的传输之后且等待所述前四个包(具有任何所需要的帧间间隔)的确认时,传输器需要准备额外传输。在此时间期间,可根据所部署的实施例适当地从传输节点高速缓存器或包缓冲器接入来自所述流的额外节点。对于其它传输类型,可存在保持所述传输节点阵列填满以进行可用传输机会所提供的所有包的传输的类似机会。
在任一既定实施中,可向广播控制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在其处于从包缓冲器存储器检索信息的过程中时产生忙碌信号。在此时间期间,其还向传输节点高速缓存器的流识别符指示其正在更新。然后,阵列控制器1840知道其可能正在处理的流识别符是否具有从包缓冲器接入的节点(注意,可存在数个阵列控制器1840,每一者接收这些信号,一个信号用于每一信道)。因此,阵列控制器1840可推迟针对所述流识别符接入包缓冲器RAM,因为来自所述流识别符的某些包可能处于到节点阵列高速缓存器的通行中。此防止阵列控制器1840打扰流的传输节点高速缓存器刷新操作。
此外,部署多个比较块2010以从传输节点高速缓存器刷新接收流识别符。每一比较块从信道(即,EDCA 0-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的实例性实施例。如图所示,存储链路识别符A 2110以识别并入到传输节点阵列1842中的影子传输节点阵列中的一者中的流的链路识别符。字段2120用所述链路识别符识别所包括的包(即,节点)的数量。注意,在此实施例中,聚合仍基于流识别符,因为所述链路识别符用于识别物理层参数(例如,物理层速率)及安全密钥。编入此表的索引是所述流识别符。
同样,存储链路识别符B 2130以用于识别并入于传输节点阵列1842内的另一影子传输节点阵列中的流的链路识别符。与所述链路识别符相关联的包的数量存储在字段2140中。注意,可将与相应流相关联的各种其它参数及/或状态变量与这些一同存储,以用于替代实施例(如果需要)。
图22描绘下层媒体接入控制核心540的实例性实施例的额外组件。如上文参照图18所说明,多个信道可连接到传输引擎1880,所述信道中的每一者断言就绪指示符以让传输引擎1880知道准备发送一个或一个以上包。识别所述包的节点将在传输节点阵列1842中等待,且那些包的相关联链路识别符将存储在链路识别符1844中。每一信道可存在这些组件中的每一者的一组。图22图解说明随着这些包在传输链中向下游移动时的其进一步处理。
传输引擎1880接收各种就绪信号且在其之间进行仲裁以执行各种功能过程及任务。当传输引擎1880准备筹备将要传输的包时,其知道传输机会的大小,所述传输机会指示可用于使用共享媒体的时间的长度。然而,由于数据速率可基于链路条件变化,因此将要在所述传输机会内发送的包的数量也改变。在所述实例性实施例中,速率有限状态机(FSM)2211经部署以用于确定特定包将使用的OFDM符号的数量。传输引擎1880向速率有限状态机2211递送指示以字节为单位的包的长度的传输长度(其方便地位于所述节点的长度字段中)。递送(从链路识别符1844)链路识别符被及用以指示速率有限状态机2211应开始其过程的开始信号。速率有限状态机2211返回所述包将使用的符号的数量。此信息可用于确定当执行聚合时可累积的每一包的符号数量,下文进一步详述。注意,可部署用于确定符号的数量、速率等的各种替代技术。使用执行每包符号计算的外部有限状态机仅为适于部署的许多实例中的一者。下文详述速率有限状态机2211的实例性实施例。
传输引擎1880还耦合到存储器仲裁器,例如上文所说明的存储器仲裁器1080。对于准备传输的包中的每一者,传输引擎1880根据相应节点中的信息从包缓冲器提取程序块,且任何链接程序块由下一程序块指针识别。将所述程序块数据返回到传输引擎1880,在传输引擎1880处将所述程序块数据递送到一个或一个以上先进先出存储器2220。在此实例中,先进先出存储器2220包含于遗留协议引擎2210中。注意,数据到一个或一个以上先进先出存储器的写入可由先进先出存储器就绪信号或任何其它流控制机制控制。如上文所说明,且下文参照图48及49进一步详述,在替代实施例中,可存在到传输引擎1880的额外输入以与一个以上媒体接入控制处理器面接。在实例性替代实施例中,处理器210及固件实施用于处理低通量包的媒体接入控制处理器。这些包可被从处理器存储器先进先出存储器4950(或在另一替代实施例中,直接从处理器存储器)递送到传输引擎1880。
如上文所论述,可方便地使用现有遗留协议组件来执行各种功能以支持802.11媒体接入控制处理。还可部署其它标准化协议引擎,且遗留协议引擎2210可经修改以提供所需要的各种特征。在遗留协议引擎的实例性实施例中,存在四个先进先出存储器2220A-D,一个用于四个EDCA队列中的每一者。HCCA信道具有额外先进先出存储器2220E,且针对信标及广播/多播信道部署先进先出存储器2220F-G。注意,可将先进先出存储器部署为单个缓冲器(即,用于存储信标信号)。可部署任何数量的先进先出存储器或其它缓冲器类型以用于接收将要传输的包。
在接收到就绪断言时,传输引擎1880将第一包程序块放入第一节点所规定的适当核心先进先出存储器中。如刚刚说明,此可就额外程序块(如果有)继续,直到完成第一包。同时,可使用速率有限状态机2211来确定可被传输的包的总数。在监视先进先出存储器就绪时,传输引擎1880可继续所述程序,从而将剩余包放入相应先进先出存储器中。在所述实例性实施例中,将包放入所述先进先出存储器中驱使遗留协议引擎2210争用接入(针对EDCA类型接入)且开始传输(在获得接入时,或在所调度的传输机会期间)。
图23描绘速率有限状态机2211的实例性实施例。所接收的链路识别符用作编入速率表2310中的索引。表2310在链路识别符的基础上存储且包含与所述链路相关联的一个或一个以上速率以及时间戳值(TSV)2311。可以各种方式中的任一种来更新速率表2310。固件可提供更新的速率。所接收的数据速率向量反馈包可包括速率信息且可用于更新各种速率。TSV 2311可用于指示当接收到包含速率反馈的包时的时间戳,从而提供所述速率信息是最新还是陈旧的指示。举例来说,如果在某段时间内未更新速率,那么保守的方法可在信道已在插入时间帧中恶化的情况下降低所述速率。固件可确定是否存在老化及是否回退速率及更新速率表。在所述实例性实施例中,存在对应于四个天线中的每一者的四个速率R1-R42312-2315。例如使用特征导引模式还是另一扩展模式等其它信息也可用于速率计算。将来自表2310的速率信息发送到速率计算有限状态机2320。
对于每一速率,速率选择表2330包含固件用可用于所述速率中的每一者的每符号字节数量来更新表。在实例性实施例中,存在N=16速率2332,每一者具有对应的每符号字节数量,因此每一速率选择值是4位。将每符号的字节数量递送到加法器2335,所述加法器的输出去往聚合速率累积器2340。
聚合速率累积器2340用于累积聚合速率且输出被反馈回加法器2335。可用来自速率计算有限状态机2320的清理信号来清理累积器2340。对于可用速率中的每一者,将每符号字节数量相加以累积总的聚合速率,来自所述总的聚合速率中的某一数量的符号NS 2360可用于指示串流的数量。在2345中减去NS 2360以提供聚合速率。NS2360可由固件更新。在2350中将包的长度(在所述实例性实施例中以字节为单位递送)加上常数2365(也可由固件更新)以产生真正长度。CONST 2365可指示可选限制。举例来说,可部署经聚合媒体接入控制协议数据单元密度以提供连续媒体接入控制协议数据单元标头之间的最小间隔。在除法器2355中,真正长度A除以聚合速率,针对NS规格化且产生商及余数。将所述商递送到加法器2375以概念性地产生上限函数,其中如果2370中存在任何余数,那么必须使用一个额外符号(即,符号的一部分被填充,因此必须部署所述整个符号)。寄存器N SYM 2375由速率计算有限状态机2320启用以存储将由传输引擎1880递送及使用的所得符号数量。
图24显示概念性遗留协议引擎2210。模式选择信号可用于指示其中所述协议引擎起作用的各种模式中的一种。大体来说,将媒体接入控制协议数据单元连同用以指示传输应开始的就绪信号一同递送。所述遗留协议引擎可从输入媒体接入控制协议数据单元产生经加密的输出。在所述实例性实施例中,使用遗留协议引擎的加密特征(通常可在典型802.11核心中找到)。在替代实施例中,如所属技术领域中所熟知,任何类型的加密设备可包括在内。图24中还显示经加密的输入(举例来说,从无线局域网120接收)被递送到遗留协议引擎2210以产生未经加密的输出媒体接入控制协议数据单元。
图25显示与到物理层260的概念性链路连接的典型遗留协议引擎。如图所示,将接收向量连同所接收数据及空闲信道评估(CCA)信号一同从物理层260递送到遗留协议引擎2210。所述接收向量可包含各种信息,例如调制类型、所接收数据的长度及其它参数。特定来说,可返回可用于速率确定(例如,在上文所说明的速率有限状态机2211中)的数据速率反馈。空闲信道评估可用于定时器2510(与各种信道相关联)以在使用基于争用的协议(例如,EDCA)时争用到媒体的接入。可在块2520中执行加密及解密。先进先出存储器2220可类似于上文所说明的那些先进先出存储器。当然,对于HCCA,所述传输是经调度的,且可在预定时间开始。将经加密数据与指示所述传输应开始的传输请求信号一同发送到物理层260。递送到物理层260的传输向量指示从遗留功能产生的各种参数。注意,在所述实例性实施例中,当在遗留模式中操作时,遗留协议引擎的输出可足以在物理层260上传输。
图26描绘进一步详述传输包的媒体接入控制处理的实例性实施例。在所述实例性实施例中,将遗留协议引擎的输出媒体接入控制协议数据单元(在可应用时加密)递送到聚合模块2610。与图25中所详述的实施例相比,不直接将来自遗留协议引擎2210的经加密数据输出递送到物理层。在所述实例性实施例中,可对遗留协议引擎2210做出修改,使得经定时的稳定经加密媒体接入控制协议数据单元串流被递送到聚合模块,然后递送到所述物理层上以进行递送。可做出所述修改以移除产生聚合的帧不需要的所述媒体接入控制协议数据单元的帧间间隔(例如,SIFS)或任何其它特征。在各种实施例中,聚合的帧可以是各种形式,且可包含各种类型的包或媒体接入控制协议数据单元。上文已详述用于将包定时(例如,时间戳、争用接入等待)的各种技术,其在所属技术领域中众所周知。
可在传输引擎1880中计算聚合的包的数量。可针对每一包进行对速率有限状态机2211的调用,且对于每包的所返回符号数量,可将传输机会减少符号的所述数量。可针对每一聚合包递增聚合包计数直到确定将装入所述传输机会内的包的总数。可将此信息递送到聚合模块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。如上文所说明,参照图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面接(即,通过存储器仲裁器1080)。在所述实例性实施例中,给定所选择的程序块大小及典型的包长度,每包可需要多达四个程序块指针。当这些程序块指针横穿剩余的接收处理链时存储在所述包的标头中,且用于所述包到包缓冲器的最终写入。
核心接口2860检索包括于经扩展接收向量(来自硬件表2820)中的程序块指针及参数且将其添加到从先进先出存储器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及业务识别符搜索表以如所说明的那样用于传入包处理(例如,在以上图10中)。硬件表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等表,下文进一步详述其实例。因此,对于每一链路,对最大数量的流的支持包括在加索引方案中,如共用速率表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可确定所期望传入包的序列号。然而,允许传输器发送在序列号上超出此限制的包,且在此情况下,可通过取最大所接收序列号并减去(窗口大小-1)来计算开始序列号。所述开始序列号还可明确由传入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。在此实例中,说明第一、第二及第三存储器。注意,如本文中所详述,可部署任何数量的各种类型的存储器。在实例性实施例中,存储器1是硬件表,例如硬件表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))中,不存在对块确认的支持。当到到达时,其将被确认或不被确认。如果所述包被确认,那么其将被越区切换且后续包的传输将继续。如果所述包不被确认,那么传输器将重发所述包直到其被正确地接收(或因所述过程超出预定限制而丢弃所述包)。因此,固有地将按包到达的次序将其越区切换。
在支持块确认的系统中,也可能不按次序接收包。当正确地接收包时,将在窗口位图中设定相关联的位。对于未被确认的包来说,可将所述相关联的位设定为零。可在将来尝试重传包。同时,可接收并存储后续包以进行越区切换。在其中将按次序越区切换包的系统中,未被确认的包产生空洞,其在等待正确地接收未被确认的包时使随后接收的包的越区切换停转。然后,可在单个包被重传之后接收所述单个包,所述包将填充所述空洞,且随后接收的数个包(一群组包)可立刻进行越区切换。此可产生等待越区切换的包的积压,且越区切换延迟因此可产生。将越区切换决策与越区切换引擎处理分离允许越区切换决策块以线速度操作,同时处理包的积压以进行越区切换。所述越区切换引擎可自主操作,且假设到越区切换存储器的接口是相对于所接收速度的高速,那么所述越区切换引擎将能够跟上。以此方式,包积压不限制接收器的总通量。
另一方面,将越区切换决策与处理分离允许流越区切换优先化。举例来说,可以与较低优先级数据不同的方式处置推迟敏感信息,例如语音、视频或其它优先级数据。
图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中设定中断旗标,那么在块3835处向越区切换引擎断言中断。中断信号的越区切换引擎处理的实例性实施例进一步详述于下文中。
在决策块3840处,所述越区切换引擎已完成任何先前处理且可产生额外越区切换指令。在决策块3840处,确定流是否可用于越区切换队列中的越区切换。实例性实施例进一步详述于下文中。如果不,那么可停止所述过程且所述过程可如上文所说明的那样继续反复。如果流可用,那么在3845处起始到越区切换引擎的越区切换。如上文所说明,可将所述流识别符及相关参数递送到所述越区切换引擎。在所述实例性实施例中,越区切换计数可以是任何数字。如果越区切换计数大于一,那么所述越区切换引擎可越区切换每一包直到完成,除非被中断。在替代实施例中,所述越区切换引擎可在每次起始越区切换时处理一个包。在此替代实施例中,中断可不必要。在3850处,设定等待旗标以指示越区切换过程正在待决中。然后,所述过程的当前反复可停止。
图39描绘确定可用于越区切换的流的方法的实例性实施例,其适于部署为上文所说明的块3840。注意,此实例假设向较高优先级的流指派较低的数字优先级值。因此,优先级0是最高优先级。所属技术领域中的技术人员将在本文的教示的范围内容易地修改任何类型的优先级方案。在3910处,将优先级索引设定为0。此是将要测试的第一及最高优先级。在决策块3920处,如果由优先级索引识别的队列中存在流(即,其Q计数大于0),那么退出方法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)使用的信息。这些更新可递增存储器中的包的数量且还更新流_识别符需要由所述控制状态机处理的次序。所述控制状态机可更新传输器中的四个包节点高速缓存器,如上文所详述。此状态机处理流_包_表中的信息。头指针及尾指针以及表中的下一流指针允许所述控制状态机选择将要处理的下一流_识别符。所表中可存在服务中位(每一流_识别符),其让所述控制状态机知道来自此流_识别符的包当前是否正在传输中。在传输引擎开始传输之前其可将此位设定为1且在所述传输完成之后将其设定为0。传输状态机使用来自命令队列的信息以在无线局域网(类似于上文参照图18所说明的无线局域网)上将包传输出去。可用作冲刷块2894的冲刷状态机(有限状态机)从由相应接收器正确接收并确认的同步动态随机存取存储器包冲刷。然后,所述有限状态机递减流_包_表中的存储器计数中的包。
所述流_包_表可具有以下条目中的一者或一者以上:流_识别符(1个字节)、存储器中的包的数量(2个字节)、高速缓存器中的包(2位)、服务中位(1位)、下一_流_识别符(1个字节)及2位优先级字段。当包在传入进来时,所述ISM更新存储器中的包,更新下一_流_识别符以及尾_指针。当传输状态机正传输来自特定流_识别符的包时,其设定对应的服务中位。当被设定时,控制状态机将不更新所述四个包节点高速缓存器。在包被传输之后,所述传输状态机更新高速缓存器中的包的数量且还重设所述服务中位。所述控制状态机将仅在所述服务中位被重设时起作用。其处理所述流_识别符的次序由下一_流_识别符确定。如果需要,可将2位的优先级位添加到所述表。在此情况下,所述控制状态机将首先处理属于最高优先级的流,然后下一优先级等等。此表的实例性大小约为流的数量的4个字节倍,或256个流的约1千字节。所述控制状态机使用所述流_识别符(链接_表中的第一包)的标头指针来断定需要包括在所述4个包节点高速缓存器中的包的节点地址。
因此,在实例性实施例中,实例性冲刷引擎或冲刷块2894可从包缓冲器移除成功接收及确认的所有包。当接收到块确认位图时,传输状态机首先对其进行处理且可执行立刻重传以顾及某些未经确认的包。(下文进一步详述块确认。)然后,将所述位图传递到冲刷引擎中的冲刷引擎状态机或冲刷块2894,其针对对应的流_识别符检索链接表数据结构的头_指针,即所述头_指针在流状态RAM中可用。所述头_指针包含既定流_识别符的第一包的节点地址以及此包的序列号。所述冲刷引擎状态机处理所述位图且将其排队以冲刷序列中已被确认的包。此逻辑可类似于由传出状态机使用的逻辑,其中将序列中所接收的包传递到主机。一旦所述冲刷引擎状态机已识别将要冲刷的包的数量及其序列号,那么可将其排成队列以进行冲刷。所述头_指针产生链接表中的第一包的节点地址。通过从所述链接表接入对应包的节点地址来获得将要冲刷的包的节点地址。在所述实例性实施例中,分配存储器以提供充足的包位置、程序块及节点。因此,可在后台进行冲刷,因为通常对此任务没有严格的时间要求。存储器仲裁器可为作为低优先级任务的冲刷功能提供接入。
块确认
由上文所详述的实例性实施例图解说明的各个方面非常适于执行高速媒体接入控制的块确认。在典型的块确认协议中,传输器向接收器传输包达一时间周期,而无需接收所述包中的任一者的确认。然后,块确认从所述接收器返回到所述传输器,指示先前传输的包中的哪一个被正确地接收。可响应于块确认请求米传输块确认,或可部署替代调度机制,例如已接收预定数量的包之后的响应。块确认请求可以是经传输以指示需要块确认的特定消息,或所述块确认可固有地在另一类型的信号或消息中。
一种用于维持经确认或未经确认的包的状态的机制是保持位图,其中每一位位置对应于包或包分段,如上文参照以上图30及31所说明。上文已说明实例性位图3130。
在高通量系统中,可能需要在触发事件之后的相对短的时间量中返回块确认请求,例如显式或内在块确认请求或其它块确认请求指示符。在实例性802.11实施例中,可需要在块确认请求之后的SIFS周期内返回块确认请求(即,立刻块确认)。因此,可需要维持多个流的状态信息,从而允许当前待决流中的任一者的即时块确认响应且在所述块确认请求之后处理块确认以重传任何需要重传的包。可支持多种类型的块确认。举例来说,可需要部分或完全状态确认。大体来说,部分状态确认计算可不密集或可需要较少的推迟。可针对部分或完全状态块确认或其组合容易地修改本文中所说明的实例性实施例。通过以下实例性实施例进一步说明数个方面。
接收器处的块确认
在实例性实施例中,接收包,其可以是聚合包。当在接收器处接收包时,对所述包进行测试以确定是否已正确地接收所述包,举例来说,可使用帧检查序列等等。不管确定包的正确接收的方法如何,可针对每一包(或分段,如果适当)存储一指示符。在所述实例性实施例中,这些确认指示符存储在每一流的相关联位图中。上文参照图30详述了用于存储流的位图的各种技术。
图44是用于响应于立刻块确认请求的方法4400的实例性实施例。此方法适于即时响应于块确认请求。
在4410处,针对任一流维持包标头信息,可需要为所述流产生块确认。可以任何格式维持此标头信息,其实例在所属技术领域中众所周知。存储所述标头信息(或在替代实施例中,可预定用于准备块确认响应的任何信息)以用于在可能的块确认传输之前构建包。换句话说,所述包正处于某种形式的存储器,经正确格式化使得所有值供用于发送(其可先验地建立)。丢失件是指示每一个别包或分段的实际确认或未确认的位图信息(及无法更早建立的任何其它信息)。可简单地将所述位图(及任何剩余信息)插入到等待包中且将所述位图传输。
请回忆,在上文所说明的实例性实施例中,可部署三个等级的存储器以提供各种间接层。在一个实例中,第一等级的存储器是硬件表,例如硬件表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个流的存储器)。如果接收到来自不同起源地的传输,那么可覆写在所述接收器处维持的部分位图状态。注意,如果状态被意外覆写,那么对块确认的稍后请求将是不可能的。在一个实例中,在此情况下可发送所有零位图。既定实施例可经部署以维持多于最小量的状态(如果需要)。
传输器处的块确认
如上文所说明,传输器可传输多个包且然后经由显式或隐式块确认请求来请求接收状态。为维持高通量,需要所述传输器准备继续传输或在接收到对应的块确认时如需地即时重传。可容易地修改各种实施例以利用此说明书中通篇详述的各种方面,以允许响应于块确认而高效并即时地重传。
图45描绘用于响应于块确认的方法4500的实例性实施例。此方法非常适于部署节点阵列(例如,存储在上文所详述的节点阵列高速缓存器1810中的那些节点阵列)的实施例。此外,上文所说明的队列(其可由节点的链接表更改及维持)也非常适于修改用于方法4500。
为总结所述程序,请回忆,块确认对应于窗口大小(其在所述实例性实施例中大小高达64)。将开始序列号设定为由所述窗口表示的最低序列号(概念上为所述窗口的最左边的点)。传输器知道已传输多少包,因此其知道最后包在所述窗口中的何处。从所传输的最后包开始,所述传输器然后可继续以逐包地步进穿过从最近传输到最早传输的位图。如果识别未确认(在所述实例性实施例中为零),那么将所述包的节点指针重新链接到传输队列中(此将所述包重新排队以进行重传)。所述传输器穿过重构所述链接表传输队列的位图直到到达所述位图的开始(由先前的开始序列识别)。方法4500是可部署的一种此类技术,但用于确定所需要的重传参数的任何技术可与本文中所详述的实施例结合使用。
以下实例图解说明使用块确认位图来处理包缓冲器中的传输队列。相同或类似技术可同等地适用于响应于块确认而提供低延迟重传。举例来说,可用流的节点来装载队列(例如,节点阵列1842),然后传输所述节点,如上文所说明。那些节点可保留直到接收并处理块确认。所述块确认位图可用于指示哪些节点需要重传。在一个实施例中,节点在节点阵列中的位置将与在块确认位字段中的位置一致。在接收块确认之后,可使用上文所详述的聚合技术来即时聚合并重传(假设传输机会可用)未经确认的包。此是允许高效地利用剩余传输机会的低延迟响应技术的一个实例。以类似于下文所说明的方式,可随着窗口移动而移动节点阵列中的节点。注意,不管使用节点阵列还是传输缓冲器来进行块确认处理及重传,当使用数据结构(例如,上文所详述的节点及程序块)将包存储在包缓冲器中时,根本不需要移动所述包缓冲器中的包数据。在整个第一传输及任何后续重传中,其可保留在一个位置中(但其可在每一传输期间被重新接入)直到所述包被成功地接收或超出预定限制且被冲刷。
在4510处,接收块确认。在4515处,设定开始序列号以指向第一未传输的包。因此,在所述实例(其中接收指示正确地接收所传输的所有包的块确认)中,将移动所述窗口。将要传输的下一包将是新窗口中的第一包,因此所述开始序列号应与所述包相关联。以下步骤详述如何修改开始序列号及更新传输队列,以提供任何必要的重传(如果其必要)。当所述过程完成时,开始序列号将已被自动更新为向前移动所述窗口(如果可能)的适当位置。将更新传输队列,从而允许传输或重传立刻开始。
在4520处,检查在最近传输的包处开始的块确认位图。在4525处,如果检测到零(或在替代实施例中,检测到未确认指示符),那么需要重传所述包。进行到4530且将下一传输的指针链接到与所述位图位置相关联的包。举例来说,当部署传输队列时(例如上文参照图6所详述),可引导队列头指针630指向与所述包(针对其检测到零)相关联的节点。然后,可更新包含于所述节点中的下一节点指针字段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)。请回忆,业务识别符映射来自台的流。在一个聚合中,可能找到对应于多个业务识别符的包,例如每链路聚合包。因此,可返回对应于多个业务识别符的块确认(或多业务识别符块确认)。在一个实施例中,多业务识别符块确认包含业务识别符,然后是位图,然后是另一业务识别符,然后是另一位图,等等。由于聚合内的包未必成连续的次序(即,由于重传),因此产生一个问题。因此,对于既定的业务识别符来说,块确认将以开始序列号开始,所述开始序列号针对所述业务识别符规定在所述聚合中接收的最低序列号。然后,将所述业务识别符位图作为从开始序列号的偏移提供。下文详述用于准备多业务识别符块确认的数个实施例。
在一个实施例中,当包达到时,比较每一序列号且保持最低序列号。所述过程可通过保存每一业务识别符的首先接收的序列号开始。然后,当每一包到达时,将所述业务识别符的所保存序列号与新包的序列号相比较,且保持最低的序列号。在聚合末尾,你将具有每一业务识别符的最低开始序列号。在找到所表示的最低序列号之后,将所述序列号从每一包(正对其做出响应)的序列号(可在其到达时将其保存)减去以找到所述包在位图内的偏移。最低开始序列号是所述业务识别符的开始序列号。以线速度,确定包是否有效可以线速度发生且简单地保存确认或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)中,研发模板且然后公布上行链路及下行链路调度(举例来说,接入点中的固件可执行此功能,以及任何其它装置)。无线局域网内的无线通信装置可使用同一模板直到添加新的调用或调用离开。然后,可创建新模板。
在一个实施例中,所述接入点控制所述经调度省电多轮询。可如下执行一种方法:1)所述接入点向自己发送清理发送(CTS)以清理媒体。所述清理发送设定等于下行加上上行传输机会的NAV持续时间。2)所述接入点发送省电多轮询帧,其详述所述上行链路及下行链路调度(每一台,到微秒)。3)然后,所述下行链路传输开始。4)所述上行链路传输在所述下行链路传输之后。5)高度调度此格式,且所述接入点避免超过所调度的结束时间,以移除抖动。此可通过将接入限制到所述NAV持续时间的末尾附近的媒体来完成。重要的是避免抖动,使得用户终端不醒来检查其状态,不因由于抖动所产生的偏移而丢失其消息,且回到睡眠,从而错过其传输机会。
在实例性实施例中,将用于产生所述调度的数据结构保持在乒乓数据结构中,如上文所说明。所述数据结构包含用于所述上行链路及下行链路调度(其用于经调度的省电多轮询)的模板。将当前调度保持在所述乒乓数据结构的一半中。可在无线局域网上将此传输到台。然后,所述接入点可对所述乒乓数据结构的另一半中的模板做出改变。选择器可经部署以在所述第一模板与所述第二模板之间进行交替。所述接入点自由地处理非现用的任何模板而不打扰现用模板。此技术类似于节点阵列1842的使用或影子流表(1092及1096)。
替代实施例:分开的高与低通量
如上文参照图10A所说明,高速包处理可不需要例如分段等各种功能,但可仍需要对其它包类型或遗留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包含:选择装置5290,其用于选择第一或第二模式;配置装置5210,其用于以第一模式配置第一存储器5230以存储多个通信流中的每一者的一个或一个以上参数;配置装置5260,其以第二模式配置所述第一存储器以存储所述多个通信流中的每一者的指针,每一指针指示与相应通信流相关联的位置;配置装置5220,其以所述第一模式配置第二存储器5240以存储所述多个通信流中的每一者的包;配置装置5270,其以所述第二模式配置所述第二存储器以存储所述多个通信流中的每一者的多组一个或一个以上参数,每一组一个或一个以上参数存储在由所述指针指示的与相应流相关联的位置中;及配置装置5280,其用于以所述第二模式配置可与第三存储器一起操作的存储器接口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,其用于将一个或一个以上第一数据结构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或所属技术领域中已知的任一其它形式的存储媒体内。实例性存储媒体耦合到所述处理器,以使所述处理器可从所述存储媒体读取信息及向所述存储媒体写入信息。在替代方案中,所述存储媒体可整合到所述处理器。所述处理器及所述存储媒体可驻存于专用集成电路中,专用集成电路可驻存于用户终端中。在替代方案中,所述处理器及所述存储媒体可作为离散组件驻存于用户终端中。
提供对所揭示实施例的以上说明旨在使任一所属技术领域中的技术人员皆能够制作或使用本发明。所属技术领域中的技术人员将易知对这些实施例的各种修改,且本文所界定的一般原理也可应用于其它实施例,此并不背离本发明的精神或范围。因此,本揭示内容并非既定限定为本文所示的实施例,而是将赋予其与本文所揭示的原理及新颖特征相一致的最宽广范围。
Claims (20)
1.一种方法,其包含:
在包缓冲器中的第一数据结构中存储第一包的长度、所述第一包的序列号及所述包缓冲器中的第二数据结构的第二包缓冲器位置;
将所述第一包的有效负载划分为多个有效负载块;及
将来自所述第一包的所述多个有效负载块中的每个有效负载块存储在由所述所存储的第二包缓冲器位置识别的所述第二数据结构中,
其中,所述第二数据结构包括多个节点,该多个节点中的每个节点存储所述多个有效负载块中的一个有效负载块。
2.如权利要求1所述的方法,其进一步包含:
在所述包缓冲器中的第三数据结构中存储第二包的长度、所述第二包的序列号及所述包缓冲器中的第四数据结构的第四包缓冲器位置;
将来自所述第二包的数据存储在由所述所存储的第四包缓冲器位置识别的所述第四数据结构中;及
将所述第三数据结构的位置存储在所述第一数据结构中。
3.如权利要求2所述的方法,其中,所述第一数据结构和第三数据结构对应于第一链接表的节点,所述第二数据结构对应于存储所述第一包的所述有效负载块的第二链接表,以及所述第四数据结构对应于第三链接表,该第三链接表与所述第二链接表分隔开并存储所述第二包的有效负载块。
4.如权利要求1所述的方法,其进一步包含通过存储多个第一数据结构的链接表来形成包队列,每一第一数据结构与多个包中的一者相关联。
5.如权利要求1所述的方法,其进一步包含形成第一数据结构的阵列,每一第一数据结构与多个包中的一者相关联。
6.如权利要求1所述的方法,其进一步包含形成空闲第一数据结构指针列表,所述空闲第一数据结构指针列表包含用于与第一数据结构相关联的一个或一个以上第一数据结构指针。
7.如权利要求6所述的方法,其进一步包含:
从所述空闲第一数据结构指针列表中检索第一数据结构指针;
从所述空闲第一数据结构指针列表中移除所述所检索的第一数据结构指针;及
将所述第一数据结构存储在所述包缓冲器中由所述所检索的第一数据结构指针识别的位置处。
8.如权利要求6所述的方法,其进一步包含将先前移除的第一数据结构指针添加到所述空闲第一数据结构指针列表以从所述包缓冲器中移除所述第一数据结构。
9.如权利要求1所述的方法,其进一步包含形成空闲第二数据结构指针列表,所述空闲第二数据结构指针列表包含用于与所述第二数据结构相关联的一个或一个以上指针。
10.如权利要求9所述的方法,其进一步包含:
从所述空闲第二数据结构指针列表中检索第二数据结构指针;
将所述所检索的第二数据结构指针从所述空闲第二数据结构指针列表中移除;及
将所述所检索的第二数据结构指针存储在所述第一数据结构的所述第二包缓冲器位置中。
11.如权利要求10所述的方法,其进一步包含将所述第二数据结构存储在所述包缓冲器中由所述所检索的第二数据结构指针识别的位置处。
12.如权利要求9所述的方法,其进一步包含将先前移除的第二数据结构指针添加到所述空闲第二数据结构指针列表以从所述包缓冲器中移除所述第二数据结构。
13.如权利要求12所述的方法,其中将所述包缓冲器中的所述第二数据结构的所述第二包缓冲器位置存储在所述第一数据结构的第二数据结构指针字段中,且进一步包含从所述包缓冲器中检索第二数据结构,所述第二数据结构由所述第一数据结构的所述第二数据结构指针字段识别。
14.如权利要求1所述的方法,其中,所述第一数据结构和第二数据结构相互不同。
15.如权利要求1所述的方法,其中,所述第二数据结构对应于链接表。
16.如权利要求1所述的方法,其中,所述链接表存储用于所述第一包而非其它包的所述多个有效负载块。
17.一种无线通信设备,其包含:
第一存储器,其存储用于多个通信流中的每一者的一个或一个以上参数,及
第二存储器,其存储用于所述多个通信流中的每一者的包,其包括:
与该包相关联的第一数据结构;以及
第二数据结构,其包括来自于所关联的分组的多个经划分的有效负载块,其中,所述多个经划分的有效负载块中的每一者被存储在所述第二数据结构的分隔开的节点中;以及
其中,所述第一数据结构包含:
长度字段,其指示所述相关联包的长度;
序列号字段,其指示所述相关联包的序列号;及
第二数据结构指针字段,其指示所述第二数据结构在所述第二存储器中的位置。
18.如权利要求17所述的无线通信装置,其中所述第一数据结构进一步包含指示第二第一数据结构在所述第二存储器中的位置的下一第一数据指针字段。
19.如权利要求18所述的无线通信装置,其进一步包含一多个包的包队列,所述队列由多个第一数据结构的链接表形成,每一第一数据结构与所述多个包中的一者相关联,所述队列的次序通过根据每一相应第一数据结构的所述下一第一数据指针字段而链接所述链接表中的所述多个第一数据结构中的每一者来确定。
20.一种设备,其包括:用于执行根据权利要求1-16中任何一项权利要求所述的方法的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US78791506P | 2006-03-31 | 2006-03-31 | |
US60/787,915 | 2006-03-31 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800106911A Division CN101411134B (zh) | 2006-03-31 | 2007-03-30 | 用于高速媒体接入控制的存储器管理 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102347901A true CN102347901A (zh) | 2012-02-08 |
Family
ID=38324003
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102851512A Pending CN102347901A (zh) | 2006-03-31 | 2007-03-30 | 用于高速媒体接入控制的存储器管理 |
CN2007800106911A Expired - Fee Related CN101411134B (zh) | 2006-03-31 | 2007-03-30 | 用于高速媒体接入控制的存储器管理 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800106911A Expired - Fee Related CN101411134B (zh) | 2006-03-31 | 2007-03-30 | 用于高速媒体接入控制的存储器管理 |
Country Status (11)
Country | Link |
---|---|
US (2) | US8139593B2 (zh) |
EP (2) | EP2326049A1 (zh) |
JP (2) | JP2009532954A (zh) |
KR (1) | KR101027356B1 (zh) |
CN (2) | CN102347901A (zh) |
AT (1) | ATE543304T1 (zh) |
BR (2) | BRPI0722378A2 (zh) |
CA (1) | CA2644139A1 (zh) |
RU (2) | RU2491737C2 (zh) |
SG (1) | SG163590A1 (zh) |
WO (1) | WO2007115199A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105191232A (zh) * | 2013-03-13 | 2015-12-23 | 高通股份有限公司 | 具有分布式流表的网络元件 |
CN109155763A (zh) * | 2016-05-11 | 2019-01-04 | 微软技术许可有限责任公司 | 数据流上的数字信号处理 |
CN110520853A (zh) * | 2017-04-17 | 2019-11-29 | 微软技术许可有限责任公司 | 直接存储器访问的队列管理 |
CN115225592A (zh) * | 2022-06-01 | 2022-10-21 | 裕太微(上海)电子有限公司 | 一种直接存储器访问数据传输方法及系统 |
Families Citing this family (134)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7724740B1 (en) * | 2002-08-27 | 2010-05-25 | 3Com Corporation | Computer system and network interface supporting class of service queues |
US8630168B2 (en) * | 2003-06-23 | 2014-01-14 | Intel Corporation | Adaptive use of a transmit opportunity |
US7774374B1 (en) * | 2004-03-02 | 2010-08-10 | Qlogic Corporation | Switching systems and methods using wildcard searching |
US7904777B2 (en) * | 2006-01-24 | 2011-03-08 | Samsung Electronics Co., Ltd. | Method and system for generating block acknowledgements in wireless communications |
CN101379769B (zh) * | 2006-02-01 | 2011-07-13 | Lg电子株式会社 | 用于在无线局域网络系统中传输信息的方法 |
JP2009532954A (ja) | 2006-03-31 | 2009-09-10 | クゥアルコム・インコーポレイテッド | 高速メディアアクセス制御に関するメモリ管理 |
GB0609426D0 (en) * | 2006-05-12 | 2006-06-21 | Univ Edinburgh | A low power media access control protocol |
KR101245856B1 (ko) * | 2006-09-29 | 2013-03-20 | 삼성전자주식회사 | 이종 이상의 무선 통신 규격을 지원하는 멀티 무선 메쉬네트워크 시스템 및 그 제어방법 |
US8238278B2 (en) | 2007-01-08 | 2012-08-07 | Hellosoft, Inc. | Hardware-based beacon processing |
US9760146B2 (en) * | 2007-01-08 | 2017-09-12 | Imagination Technologies Limited | Conditional activation and deactivation of a microprocessor |
US8243638B2 (en) | 2007-01-08 | 2012-08-14 | Hellosoft, Inc. | Passive listening in wireless communication |
US7675911B2 (en) * | 2007-03-01 | 2010-03-09 | Samsung Electronics Co., Ltd. | Method and system for acknowledgements in wireless communications |
KR100930518B1 (ko) * | 2007-03-21 | 2009-12-09 | 삼성전자주식회사 | 광대역 무선통신 시스템에서 다중 에프에이를 사용하는단말의 아이피 주소 획득 장치 및 방법 |
KR100965128B1 (ko) * | 2007-03-21 | 2010-06-23 | 삼성전자주식회사 | 광대역 무선통신 시스템에서 초기 접속 수행 장치 및 방법 |
EP2140613A1 (en) * | 2007-03-26 | 2010-01-06 | Telefonaktiebolaget LM Ericsson (PUBL) | Method and apparatus for performance monitoring in a communications network |
JP2009049704A (ja) * | 2007-08-20 | 2009-03-05 | Toshiba Corp | 無線通信装置 |
US7936753B1 (en) | 2007-11-30 | 2011-05-03 | Qlogic, Corporation | Method and system for reliable multicast |
GB2454597B (en) * | 2008-01-03 | 2012-01-18 | Ibm | A method for checking the reliability of a memory for a receiving data packet in a data array within a data receiving logic circuit |
US8555373B2 (en) * | 2008-02-14 | 2013-10-08 | Rockwell Automation Technologies, Inc. | Network security module for Ethernet-receiving industrial control devices |
US7908455B2 (en) * | 2008-02-27 | 2011-03-15 | Microchip Technology Incorporated | Low overhead memory management system and method |
US8473707B2 (en) * | 2008-03-27 | 2013-06-25 | Open Invention Network, Llc | Method for achieving sequential I/O performance from a random workload |
US8321651B2 (en) * | 2008-04-02 | 2012-11-27 | Qualcomm Incorporated | System and method for memory allocation in embedded or wireless communication systems |
US7948991B1 (en) * | 2008-05-09 | 2011-05-24 | Cisco Technology, Inc. | Broadcast and multicast transmissions with acknowledgement scheduling |
JP5091761B2 (ja) * | 2008-05-13 | 2012-12-05 | 株式会社東芝 | 無線通信装置 |
US7957273B2 (en) * | 2008-06-06 | 2011-06-07 | Redpine Signals, Inc. | Packet re-transmission controller for block acknowledgement in a communications system |
JP4609547B2 (ja) * | 2008-08-14 | 2011-01-12 | ソニー株式会社 | 無線通信装置、通信システム、および通信制御方法、並びにプログラム |
US7978607B1 (en) * | 2008-08-29 | 2011-07-12 | Brocade Communications Systems, Inc. | Source-based congestion detection and control |
US20100106874A1 (en) * | 2008-10-28 | 2010-04-29 | Charles Dominguez | Packet Filter Optimization For Network Interfaces |
US20100131679A1 (en) * | 2008-11-24 | 2010-05-27 | Jian-Bang Lin | Apparatus for performing a downlink or uplink processing in a wireless communication system to maintain the efficiency of system bandwidth, and associated methods |
TWI378688B (en) * | 2009-02-10 | 2012-12-01 | Ralink Technology Corp | Method and apparatus for preloading packet headers and system using the same |
US7826458B2 (en) * | 2009-03-05 | 2010-11-02 | Juniper Networks, Inc. | Tracking fragmented data flows |
US8547941B2 (en) * | 2009-04-16 | 2013-10-01 | Qualcomm Incorporated | Apparatus and method for improving WLAN spectrum efficiency and reducing interference by flow control |
JP5316208B2 (ja) * | 2009-05-08 | 2013-10-16 | ソニー株式会社 | 通信装置及び通信方法、コンピューター・プログラム、並びに通信システム |
BRPI1013120A2 (pt) * | 2009-06-13 | 2016-04-05 | Nokia Corp | uso de política de confirmação em bloco para redes sem fio. |
EP2471193B1 (en) * | 2009-08-26 | 2019-04-17 | LG Electronics Inc. | Method and apparatus for multiple frame transmission for supporting mu-mimo |
US8576762B2 (en) * | 2009-09-08 | 2013-11-05 | Apple Inc. | Power management of a radio data transceiver |
JP5418097B2 (ja) * | 2009-09-14 | 2014-02-19 | 株式会社リコー | 情報処理装置、画像形成装置、動作モード切替方法 |
EP2493128A1 (en) * | 2009-10-19 | 2012-08-29 | Nec Corporation | Communication system, flow control apparatus, flow table updating method and program |
EP2498411B1 (en) | 2009-11-04 | 2016-04-20 | Electronics and Telecommunications Research Institute | Methods for generating, transmitting, and receiving a data frame in a wireless communication system |
CN101784082A (zh) * | 2009-12-22 | 2010-07-21 | 中兴通讯股份有限公司 | 无线局域网内增强服务质量的方法及装置 |
CA2788320A1 (en) * | 2010-01-29 | 2011-08-04 | Elster Solutions Llc | Mesh infrastructure utilizing alternative communication paths |
US8855102B2 (en) * | 2010-01-29 | 2014-10-07 | Elster Solutions, Llc | Wireless communications providing interoperability between devices capable of communicating at different data rates |
US8493992B2 (en) * | 2010-02-04 | 2013-07-23 | Texas Instruments Incorporated | Interrelated WiFi and USB protocols and other application framework processes, circuits and systems |
KR101765923B1 (ko) * | 2010-02-12 | 2017-08-07 | 한국전자통신연구원 | 무선 통신 시스템에서의 패킷 송/수신 방법 및 장치 |
AU2011224959B2 (en) | 2010-03-11 | 2014-08-28 | Electronics And Telecommunications Research Institute | Method and apparatus for transceiving data in a MIMO system |
KR101791985B1 (ko) | 2010-03-12 | 2017-10-31 | 한국전자통신연구원 | 무선 통신 시스템에서의 패킷 송/수신 방법 및 장치 |
CN102209021A (zh) * | 2010-03-31 | 2011-10-05 | 西门子公司 | 一种包聚合传输的方法和装置 |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US9813529B2 (en) * | 2011-04-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Effective circuits in packet-switched networks |
US9454441B2 (en) | 2010-04-19 | 2016-09-27 | Microsoft Technology Licensing, Llc | Data layout for recovery and durability |
US8996611B2 (en) | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
US8881134B2 (en) * | 2010-04-29 | 2014-11-04 | International Business Machines Corporation | Updating elements in data storage facility using predefined state machine over extended time period |
US20110276747A1 (en) * | 2010-05-07 | 2011-11-10 | Qualcomm Incorporated | Software management with hardware traversal of fragmented llr memory |
US9055011B2 (en) * | 2010-08-31 | 2015-06-09 | Intel Corporation | Methods and apparatus for linked-list circular buffer management |
US9124460B2 (en) * | 2010-08-31 | 2015-09-01 | Qualcomm, Incorporated | Rules for multiplexing data of different access categories in multi user MIMO wireless systems |
US8855088B2 (en) * | 2010-12-22 | 2014-10-07 | Intel Corporation | Reverse protocol for low latency wireless applications |
CN102843220B (zh) * | 2011-06-21 | 2014-12-24 | 华为技术有限公司 | 错误恢复方法、接入点设备、站点设备及其系统 |
US8473641B2 (en) * | 2011-06-30 | 2013-06-25 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
US9088520B2 (en) * | 2011-09-15 | 2015-07-21 | Ixia | Network impairment unit for concurrent delay and packet queue impairments |
TW201324168A (zh) * | 2011-12-05 | 2013-06-16 | Asix Electronics Corp | 高效率傳輸機制之通用序列匯流排裝置 |
US9345045B2 (en) * | 2012-04-24 | 2016-05-17 | Intel Corporation | Methods and arrangements for adaptive delay control |
DK2891151T3 (en) | 2012-08-31 | 2016-12-12 | ERICSSON TELEFON AB L M (publ) | Method and device for detection of voice activity |
US9344974B2 (en) | 2012-10-12 | 2016-05-17 | Intel Corporation | Methods and arrangements to coordinate communications of different types of devices on a wireless network |
DE102012220784A1 (de) * | 2012-11-14 | 2014-05-15 | Robert Bosch Gmbh | Verfahren zum Übertragen von Datenpaketen zwischen zwei Kommunikationsmodulen und Kommunikationsmodul zum Senden von Datenpaketen sowie Kommunikationsmodul zum Empfangen von Datenpaketen |
CN102984089B (zh) * | 2012-11-19 | 2018-09-28 | 中兴通讯股份有限公司 | 流量管理调度方法及装置 |
EP2768185A1 (en) | 2013-02-13 | 2014-08-20 | British Telecommunications public limited company | Signalling congestion |
US9306866B2 (en) * | 2013-03-15 | 2016-04-05 | Aruba Networks, Inc. | Apparatus and method aggregation at one or more layers |
US9510286B2 (en) * | 2013-03-27 | 2016-11-29 | Qualcomm Incorporated | Systems and methods for synchronization within a neighborhood aware network |
US9525739B2 (en) | 2013-05-09 | 2016-12-20 | Mitsubishi Electric Corporation | FA network LSI and communication device |
WO2014204276A1 (ko) * | 2013-06-20 | 2014-12-24 | 삼성전자 주식회사 | 무선 랜에서 서비스 품질을 제어하는 방법 및 장치 |
JP2015012580A (ja) * | 2013-07-02 | 2015-01-19 | キヤノン株式会社 | 受信装置、受信方法及びプログラム |
KR101476748B1 (ko) * | 2013-08-07 | 2014-12-26 | 삼성에스디에스 주식회사 | 메시지 송수신 장치 및 방법 |
US11422907B2 (en) | 2013-08-19 | 2022-08-23 | Microsoft Technology Licensing, Llc | Disconnected operation for systems utilizing cloud storage |
US9860174B2 (en) | 2013-08-28 | 2018-01-02 | Qualcomm Incorporated | Methods and apparatus for acknowledgment of multi-user uplink wireless transmissions |
MX359123B (es) * | 2013-09-05 | 2018-09-14 | Intel Corp | Técnicas para comunicación inalámbrica entre un dispositivo de cómputo de terminal y un dispositivo de cómputo utilizable. |
US9681418B2 (en) | 2013-09-27 | 2017-06-13 | Apple Inc. | Wireless multicast communication |
US20150092540A1 (en) * | 2013-09-30 | 2015-04-02 | Broadcom Corporation | System and Method for Traffic Offload |
US9264374B2 (en) | 2013-10-23 | 2016-02-16 | Qualcomm Incorporated | Media playout for VOIP applications |
US9294413B2 (en) | 2013-10-23 | 2016-03-22 | Qualcomm Incorporated | Media playout for VOIP applications |
US9455915B2 (en) * | 2013-12-12 | 2016-09-27 | Broadcom Corporation | Hierarchical congestion control with congested flow identification hardware |
US9374201B2 (en) * | 2013-12-17 | 2016-06-21 | Qualcomm Incorporated | Packet number determination mechanism |
US9355262B2 (en) * | 2013-12-27 | 2016-05-31 | Intel Corporation | Modifying memory permissions in a secure processing environment |
US9898398B2 (en) | 2013-12-30 | 2018-02-20 | Microsoft Technology Licensing, Llc | Re-use of invalidated data in buffers |
US9723054B2 (en) | 2013-12-30 | 2017-08-01 | Microsoft Technology Licensing, Llc | Hierarchical organization for scale-out cluster |
US9430508B2 (en) | 2013-12-30 | 2016-08-30 | Microsoft Technology Licensing, Llc | Disk optimized paging for column oriented databases |
US9798631B2 (en) | 2014-02-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Block storage by decoupling ordering from durability |
US10142884B2 (en) | 2014-02-21 | 2018-11-27 | Samsung Electronics Co., Ltd. | System and method for processing of data in a wireless communication system |
JP2015186233A (ja) * | 2014-03-26 | 2015-10-22 | 富士通株式会社 | パケット処理装置、及びパケット処理方法 |
US9521576B2 (en) * | 2014-04-28 | 2016-12-13 | Intel IP Corporation | System and method of performance measurements for wireless local area network access points |
US9699669B2 (en) * | 2014-04-28 | 2017-07-04 | Intel IP Corporation | Storing a value of a counter for a wireless local area network |
CN105099961B (zh) * | 2014-05-12 | 2020-01-17 | 中兴通讯股份有限公司 | 一种快速同步介质访问控制地址表的方法和装置 |
EP3148251B1 (en) * | 2014-06-17 | 2018-11-07 | Huawei Technologies Co. Ltd. | Data transmission method and device |
US10045367B2 (en) * | 2014-10-03 | 2018-08-07 | Qualcomm Incorporated | Uplink data fragmentation for multi-user networks |
US9936516B2 (en) * | 2014-10-08 | 2018-04-03 | Qualcomm Incorporated | Transmission coordination for collocated radios |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
KR102012261B1 (ko) * | 2015-03-03 | 2019-10-21 | 한국전자통신연구원 | 메모리 할당의 부분 해제를 지원하는 메모리 관리 장치 및 방법 |
CN107534686B (zh) * | 2015-05-08 | 2021-01-15 | 索尼公司 | 发送控制设备,发送控制方法,接收控制设备和接收控制方法 |
KR102316655B1 (ko) * | 2015-06-02 | 2021-10-26 | 현대모비스 주식회사 | 차량 멀티미디어 시스템의 오디오 출력 장치 및 그 제어방법 |
US10104003B1 (en) * | 2015-06-18 | 2018-10-16 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for packet processing |
US10568025B2 (en) * | 2015-07-13 | 2020-02-18 | Advanced Micro Devices, Inc. | Power management in wireless communications devices |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
CN113890688A (zh) * | 2015-10-09 | 2022-01-04 | 交互数字专利控股公司 | 针对高效应答传输的方法及装置 |
KR102208261B1 (ko) | 2015-12-01 | 2021-01-27 | 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) | 예측적 확인응답 피드백 메커니즘 |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US10504608B2 (en) * | 2016-06-30 | 2019-12-10 | Intel IP Corporation | Linked-list interlineation of data |
US10083127B2 (en) * | 2016-08-22 | 2018-09-25 | HGST Netherlands B.V. | Self-ordering buffer |
US10735331B1 (en) | 2016-12-09 | 2020-08-04 | Barefoot Networks, Inc. | Buffer space availability for different packet classes |
US10708189B1 (en) | 2016-12-09 | 2020-07-07 | Barefoot Networks, Inc. | Priority-based flow control |
US11245572B1 (en) | 2017-01-31 | 2022-02-08 | Barefoot Networks, Inc. | Messaging between remote controller and forwarding element |
US10642532B2 (en) | 2017-02-28 | 2020-05-05 | International Business Machines Corporation | Storing data sequentially in zones in a dispersed storage network |
CN106878318B (zh) * | 2017-03-03 | 2020-01-07 | 上海唯链信息科技有限公司 | 一种区块链实时轮询云端系统 |
GB2560540B (en) * | 2017-03-14 | 2019-05-01 | Canon Kk | Queues management for multi-user and single user edca transmission mode in wireless networks |
US10848429B1 (en) | 2017-03-21 | 2020-11-24 | Barefoot Networks, Inc. | Queue scheduler control via packet data |
US10694006B1 (en) | 2017-04-23 | 2020-06-23 | Barefoot Networks, Inc. | Generation of descriptive data for packet fields |
US20180367585A1 (en) * | 2017-06-19 | 2018-12-20 | Wangsu Science & Technology Co., Ltd. | Method, apparatus, and system for live streaming |
US11503141B1 (en) | 2017-07-23 | 2022-11-15 | Barefoot Networks, Inc. | Stateful processing unit with min/max capability |
US10594630B1 (en) | 2017-09-28 | 2020-03-17 | Barefoot Networks, Inc. | Expansion of packet data within processing pipeline |
CN108462549B (zh) * | 2017-11-22 | 2019-07-09 | 上海欣诺通信技术股份有限公司 | 保护组叠加倒换方法、控制装置及光通信设备 |
KR101950957B1 (ko) | 2017-12-27 | 2019-02-25 | (주)다나티앤씨 | 광커넥터 계측기용 보호커버 |
US10642536B2 (en) * | 2018-03-06 | 2020-05-05 | Western Digital Technologies, Inc. | Non-volatile storage system with host side command injection |
US10820371B1 (en) * | 2018-05-25 | 2020-10-27 | Marvell Asia Pte, Ltd. | Hardware data transport in wireless data transceiver |
CN108959500A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种对象存储方法、装置、设备及计算机可读存储介质 |
US11216432B2 (en) | 2018-07-06 | 2022-01-04 | Cfph, Llc | Index data structures and graphical user interface |
US10887221B2 (en) | 2018-08-28 | 2021-01-05 | Mediatek Inc. | Methods of synchronization mode of flow table and apparatus using the same |
US10701001B2 (en) * | 2018-08-29 | 2020-06-30 | REALTEK SINGAPORE Pte. Ltd. | Wireless communication circuit with scheduling circuit in MAC layer |
TWI694684B (zh) * | 2018-08-29 | 2020-05-21 | 新加坡商瑞昱新加坡有限公司 | 具有位於媒體存取控制層電路的排程電路的無線通信電路 |
US10817413B2 (en) | 2018-12-11 | 2020-10-27 | Nxp Usa, Inc. | Hardware-based memory management for system-on-chip (SoC) integrated circuits that identify blocks of continuous available tokens needed to store data |
US11502932B2 (en) | 2019-05-17 | 2022-11-15 | Keysight Technologies, Inc. | Indirect testing using impairment rules |
CN110417514B (zh) * | 2019-07-22 | 2022-02-01 | 北京地平线机器人技术研发有限公司 | 数据发送方法和装置、数据接收方法和装置 |
US20230353510A1 (en) * | 2020-01-31 | 2023-11-02 | Cyberstorm Pte. Ltd. | Method of reducing latency in communication of data packets |
US11314320B2 (en) * | 2020-04-28 | 2022-04-26 | Facebook Technologies, Llc | Interface between host processor and wireless processor for artificial reality |
US11405240B2 (en) * | 2020-08-11 | 2022-08-02 | University Of Manitoba | Method for massive unsourced random access |
TWI769111B (zh) * | 2021-11-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 基本儲存單元管理電路以及基本儲存單元管理方法 |
CN115174488A (zh) * | 2022-04-22 | 2022-10-11 | 西安交通大学 | 一种基于效用值的在线分组调度方法及系统及设备 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US745313A (en) * | 1902-02-24 | 1903-12-01 | John Walton | Ventilator. |
JPH04156030A (ja) | 1990-10-19 | 1992-05-28 | Nec Corp | データの連結によるデータ転送の高速化方式 |
JP3112958B2 (ja) | 1991-01-21 | 2000-11-27 | 株式会社東芝 | 受信バッファ管理方式 |
US5465331A (en) | 1992-12-23 | 1995-11-07 | International Business Machines Corporation | Apparatus having three separated and decentralized processors for concurrently and independently processing packets in a communication network |
WO1995014269A1 (en) * | 1993-11-19 | 1995-05-26 | The Trustees Of The University Of Pennsylvania | A high-performance host interface for networks carrying connectionless traffic |
DE69402955T2 (de) | 1994-02-08 | 1997-08-14 | Belle Gate Invest Bv | Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten |
SE515265C2 (sv) | 1994-10-17 | 2001-07-09 | Ericsson Telefon Ab L M | System och förfarande för behandling av signaldata samt kommunikationssystem omfattande ett signaldatabehandlingssystem |
US5751951A (en) | 1995-10-30 | 1998-05-12 | Mitsubishi Electric Information Technology Center America, Inc. | Network interface |
DE19643774C1 (de) * | 1996-10-23 | 1998-04-30 | Siemens Ag | Verfahren und Telekommunikationsschnittstelle zum Übertragen kontinuierlicher und/oder diskontinuierlicher Datenströme in einem hybriden Telekommunikationssystem, insbesondere einem "ISDN-DECT-spezifischen RLL/WLL"-System |
US6493347B2 (en) | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
US5954839A (en) | 1997-01-14 | 1999-09-21 | Samsung Electronics Co., Ltd. | Error protection method for multimedia data |
US6026093A (en) * | 1997-10-02 | 2000-02-15 | Sun Microsystems, Inc. | Mechanism for dispatching data units via a telecommunications network |
US6473425B1 (en) | 1997-10-02 | 2002-10-29 | Sun Microsystems, Inc. | Mechanism for dispatching packets via a telecommunications network |
US6426943B1 (en) * | 1998-04-10 | 2002-07-30 | Top Layer Networks, Inc. | Application-level data communication switching system and process for automatic detection of and quality of service adjustment for bulk data transfers |
KR100280642B1 (ko) | 1998-11-18 | 2001-05-02 | 윤종용 | 이더넷 컨트롤러의 메모리 관리 장치 및 그 제어방법 |
US6606301B1 (en) * | 1999-03-01 | 2003-08-12 | Sun Microsystems, Inc. | Method and apparatus for early random discard of packets |
US7457313B2 (en) | 2000-09-25 | 2008-11-25 | General Instrument Corporation | Hierarchical prioritized round robin (HPRR) scheduling |
US6832261B1 (en) * | 2001-02-04 | 2004-12-14 | Cisco Technology, Inc. | Method and apparatus for distributed resequencing and reassembly of subdivided packets |
US6959002B2 (en) | 2001-05-01 | 2005-10-25 | Integrated Device Technology, Inc. | Traffic manager for network switch port |
KR100434465B1 (ko) | 2001-05-14 | 2004-06-05 | 삼성전자주식회사 | 기지국 제어기와 기지국간의 패킷 데이터 전송 제어 방법및 장치 |
WO2003021443A1 (en) * | 2001-08-31 | 2003-03-13 | Adaptec, Inc. | Systems and methods for implementing host-based security in a computer network |
JP3600568B2 (ja) * | 2001-09-28 | 2004-12-15 | 株式会社東芝 | 無線lanアクセスポイント |
FR2832233B1 (fr) | 2001-11-13 | 2004-01-02 | France Telecom | Reconfiguration de composants programmables dans un appareil electronique |
JP2003174475A (ja) | 2001-12-06 | 2003-06-20 | Nippon Telegr & Teleph Corp <Ntt> | 信号処理装置間の通信方法及びパケット交換システム |
US6754795B2 (en) | 2001-12-21 | 2004-06-22 | Agere Systems Inc. | Methods and apparatus for forming linked list queue using chunk-based structure |
US7079486B2 (en) * | 2002-02-13 | 2006-07-18 | Agere Systems Inc. | Adaptive threshold based jitter buffer management for packetized data |
GB2396087B (en) | 2002-12-06 | 2006-03-29 | Qualcomm | A method of and apparatus for adaptive control of data buffering in a data transmitter |
US7310337B2 (en) | 2002-12-31 | 2007-12-18 | Intel Corporation | Packet header alignment |
JP3865748B2 (ja) | 2003-01-20 | 2007-01-10 | 富士通株式会社 | ネットワークスイッチ装置およびネットワークスイッチ方法 |
US20040246956A1 (en) * | 2003-06-06 | 2004-12-09 | Meng David Qiang | Parallel packet receiving, routing and forwarding |
US7701915B2 (en) | 2003-06-27 | 2010-04-20 | Nokia Corporation | Method in a communication system, a communication system and a communication device |
US7580355B2 (en) * | 2003-08-25 | 2009-08-25 | Integrated Device Technology, Inc. | Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same |
US7707320B2 (en) | 2003-09-05 | 2010-04-27 | Qualcomm Incorporated | Communication buffer manager and method therefor |
WO2005034434A1 (ja) * | 2003-10-03 | 2005-04-14 | Sharp Kabushiki Kaisha | 通信装置、その装置の動作モード起動方法、通信方法、通信システム、プログラム、および、そのプログラムを記録した記録媒体 |
US20050114473A1 (en) | 2003-10-30 | 2005-05-26 | Ravid Guy | FPGA boot-up over a network |
US20050129020A1 (en) * | 2003-12-11 | 2005-06-16 | Stephen Doyle | Method and system for providing data communications over a multi-link channel |
JP2005348084A (ja) | 2004-06-03 | 2005-12-15 | Hitachi Ltd | ストリーム送信装置、ストリーム受信装置、ストリーム送受信装置およびネットワークシステム制御方法 |
TW200708125A (en) * | 2005-08-08 | 2007-02-16 | Giga Byte Tech Co Ltd | Communication apparatus |
JP2009532954A (ja) | 2006-03-31 | 2009-09-10 | クゥアルコム・インコーポレイテッド | 高速メディアアクセス制御に関するメモリ管理 |
-
2007
- 2007-03-30 JP JP2009503318A patent/JP2009532954A/ja active Pending
- 2007-03-30 KR KR1020087026863A patent/KR101027356B1/ko not_active IP Right Cessation
- 2007-03-30 BR BRPI0722378-1A patent/BRPI0722378A2/pt not_active IP Right Cessation
- 2007-03-30 EP EP11150416A patent/EP2326049A1/en not_active Withdrawn
- 2007-03-30 WO PCT/US2007/065678 patent/WO2007115199A2/en active Application Filing
- 2007-03-30 CN CN2011102851512A patent/CN102347901A/zh active Pending
- 2007-03-30 BR BRPI0709704-2A patent/BRPI0709704A2/pt not_active IP Right Cessation
- 2007-03-30 CN CN2007800106911A patent/CN101411134B/zh not_active Expired - Fee Related
- 2007-03-30 RU RU2010112982/08A patent/RU2491737C2/ru not_active IP Right Cessation
- 2007-03-30 RU RU2008143200/09A patent/RU2419226C2/ru active
- 2007-03-30 EP EP07759865A patent/EP2002617B1/en not_active Not-in-force
- 2007-03-30 SG SG201004951-8A patent/SG163590A1/en unknown
- 2007-03-30 US US11/694,408 patent/US8139593B2/en active Active
- 2007-03-30 AT AT07759865T patent/ATE543304T1/de active
- 2007-03-30 CA CA002644139A patent/CA2644139A1/en not_active Abandoned
-
2011
- 2011-08-29 JP JP2011185940A patent/JP5313310B2/ja active Active
-
2012
- 2012-03-20 US US13/425,031 patent/US8594112B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105191232A (zh) * | 2013-03-13 | 2015-12-23 | 高通股份有限公司 | 具有分布式流表的网络元件 |
CN109155763A (zh) * | 2016-05-11 | 2019-01-04 | 微软技术许可有限责任公司 | 数据流上的数字信号处理 |
CN110520853A (zh) * | 2017-04-17 | 2019-11-29 | 微软技术许可有限责任公司 | 直接存储器访问的队列管理 |
CN110520853B (zh) * | 2017-04-17 | 2023-08-15 | 微软技术许可有限责任公司 | 直接存储器访问的队列管理 |
CN115225592A (zh) * | 2022-06-01 | 2022-10-21 | 裕太微(上海)电子有限公司 | 一种直接存储器访问数据传输方法及系统 |
CN115225592B (zh) * | 2022-06-01 | 2024-01-12 | 裕太微(上海)电子有限公司 | 一种直接存储器访问数据传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
RU2010112982A (ru) | 2011-10-10 |
CA2644139A1 (en) | 2007-11-10 |
KR20090006157A (ko) | 2009-01-14 |
JP5313310B2 (ja) | 2013-10-09 |
KR101027356B1 (ko) | 2011-04-11 |
JP2009532954A (ja) | 2009-09-10 |
BRPI0709704A2 (pt) | 2011-05-10 |
BRPI0722378A2 (pt) | 2012-05-22 |
RU2491737C2 (ru) | 2013-08-27 |
ATE543304T1 (de) | 2012-02-15 |
US20120236789A1 (en) | 2012-09-20 |
US8594112B2 (en) | 2013-11-26 |
EP2002617A2 (en) | 2008-12-17 |
US8139593B2 (en) | 2012-03-20 |
RU2008143200A (ru) | 2010-05-10 |
EP2326049A1 (en) | 2011-05-25 |
EP2002617B1 (en) | 2012-01-25 |
CN101411134A (zh) | 2009-04-15 |
SG163590A1 (en) | 2010-08-30 |
US20070230493A1 (en) | 2007-10-04 |
WO2007115199A2 (en) | 2007-10-11 |
RU2419226C2 (ru) | 2011-05-20 |
JP2012054932A (ja) | 2012-03-15 |
WO2007115199A3 (en) | 2007-12-06 |
CN101411134B (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101411134B (zh) | 用于高速媒体接入控制的存储器管理 | |
CN100461752C (zh) | 无线通信设备和无线通信方法 | |
CN1764157B (zh) | 通信设备和方法 | |
TWI380633B (en) | Method, apparatus, and system for multiplexing protocol data units | |
CN103959724B (zh) | 混合联网路径选择和负载平衡 | |
CN105191228A (zh) | 用于业务感知媒体接入选择的系统和方法 | |
CN101779514A (zh) | 电信系统中调度资源的方法和系统 | |
CN103959698A (zh) | 具有无缝路径切换的混合联网系统 | |
CN106571901A (zh) | 媒体接入控制实体创建的方法、设备及系统 | |
CN106455107B (zh) | 一种抢占式Wi-Fi TDMA接入控制方法 | |
CN102625466A (zh) | 用于无线局域网的分布式媒体接入方法 | |
CN103444242A (zh) | 一种用于帧确认的方法和装置 | |
CN107734695A (zh) | 一种终端的上行单发方法、5g新空口基站及lte基站 | |
CN110324902A (zh) | 通信方法、通信装置和系统 | |
CN101562841A (zh) | 业务调度方法、装置和系统 | |
CN103281750A (zh) | 保证服务质量和公平性的协作多址接入方法与系统 | |
CN104080185A (zh) | 一种适用于tcp/ip业务的无线资源调度方法 | |
CN104219170A (zh) | 无线网络中基于概率重传的包调度方法 | |
US11196676B2 (en) | Encapsulation of data packets | |
CN205142245U (zh) | 用于在载波侦听多址接入网络中进行组播通信的装置 | |
CN103812606A (zh) | 提高无线链路的效率的方法和系统 | |
CN103548316A (zh) | 一种用于帧确认的方法和装置 | |
US20240015768A1 (en) | Preemption scheduling for raw deterministic traffic | |
CN102308513B (zh) | 多载波网络中的下行链路传输调度 | |
CN107094121B (zh) | 无线链路控制功能实体及其处理数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120208 |