CN1291029A - 数字用户专用线访问多路复用器中有效的包缓冲器管理法 - Google Patents
数字用户专用线访问多路复用器中有效的包缓冲器管理法 Download PDFInfo
- Publication number
- CN1291029A CN1291029A CN00122206.6A CN00122206A CN1291029A CN 1291029 A CN1291029 A CN 1291029A CN 00122206 A CN00122206 A CN 00122206A CN 1291029 A CN1291029 A CN 1291029A
- Authority
- CN
- China
- Prior art keywords
- bag buffer
- data
- thesaurus
- buffer
- stipulations
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/2878—Access multiplexer, e.g. DSLAM
- H04L12/2892—Access multiplexer, e.g. DSLAM characterised by the access multiplexer architecture
- H04L12/2896—Distributed processing, e.g. on line cards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
-
- 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/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- 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/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/168—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] specially adapted for link layer protocols, e.g. asynchronous transfer mode [ATM], synchronous optical network [SONET] or point-to-point protocol [PPP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种在数字用户专用线访问多路复用器(DSLAM)中处理消息数据包的方法。其中控制器预先指定其一部分RAM作为包缓冲存储库而作流程控制操作,接收的消息数据包让存储库中指定的包缓冲器成为具有数据指针与数据尺寸值的数据结构,对包缓冲器有效负载及其规约头尾部指定足够的存储空间,必要时可在存储库中通过包缓冲器输入的联接表指定包缓冲器。
Description
本发明涉及数据通信领域,具体针对在多重约定环境中对多路复用多信道通信进行控制。
近年来,已大大提高了通过普通电话网与布线实现通信的数据速率。这种数据速率的提高大部分是由于新近采纳了对代表通信的消息或数据的信号实施多路复用与调制的技术,从而大大改善了通信带宽。此外,近年来还提高了通信的载波频率,进一步改善了比特速率。
这类更高的数据速率是以一种相对新型的当代调制解调通信技术实现的,在技术上指数字用户专用线(DSL)。DSL通常指某种公用网络技术,一般在有限的距离通过普通电话公司的铜质布线提供相对高的带宽。根据数据通信媒体特定预期的数据传递速率、类型与长度以及通信数据的编译码方案,一直把DSL进一步分成几种不同的技术类别。根据这种技术,DSL调制解调器之间的数据速率可以远远大于当前的话音调制解调器速率。事实上,当前的DSL系统是以数量级为500Kbps到18Mbps或更高的数据速率工作的(或计划工作的)。按照某些常规技术,诸如指定为不对称数字用户专用线(ADSL)并对应于ANSI标准T1.43的规约,数据通信速率是不对称的。一般而言,对所谓的下游通信提供较高的速率(下游通信指从电话网总局到客户调制解调器),而从客户调制解调器到总局的上游通信的数据速率远远低于下游速率。
DSL通信网的一个组成部分在技术上指数字用户专用线访问多路复用器,即DSLAM。通常将DSLAM安置在电话网总局里,它包括多个可以连接用户调制调制器的DSL市制解调器端口。DSLAM的基本功能是将用户数据通信从其多个DSL调制解调器端口多路传输到某个网络,诸如可以包括服务器与因特网关的LAN;而且DSLAM还将由该网络返回的数据通信进行分路传输,经DSL端口与用户通信。
常规DSLAM一般借助多个线路卡实现,每个线路卡支持一个或多个DSL端口。在DSL端口接收的通信通常为数据包形式,每个数据包的头部或尾部(或二者)包含有关该数据包消息的通信线路信息。DSLAM控制器功能执行有关的成帧与数据格式化,由此根据有关规的将在DSL端口接收的数据包传输到DSLAM中的某个网络接口卡(NIC),据此传输到该网络。
通常要求用DSLAM来处理多个规约,给出能在网络上实行的宽范围的网络通信。这类规约包括点对点规约(PPP)、因特网规约(IP)、地址分辨规约(ARP)、简单网络管理规约(SMNP)等等。在其DSL通信的多路复用与处理中(二者都从DSL端口接收,也可通过这些端口发送),可以要求DSLAM将给出的数据包格式化和再格式化成这些规约中的一个规约。由于这些处理都可能修改、增补或删除每个数据包的头部或尾部,所以普通的DSLAM工作时要反复地读出和重写含有这些数据包的存储区。
考虑到DSLAM产生的存储器复制次数,以这种常规方法处理数据包所需的存储器与处理资源可能相当庞大。所需的存储器资源指存储器容量,它必须能存贮各种复制,而所需的处理资源指操作(和循环)次数,为了读写复制内容,这种操作(和循环)必须由处理器执行。对于来自每个DSL端口的一个数据包,可按下式估算准备由控制多个DSL端口或信道的DSLAM处理器执行的存储器复制次数N:
N=(2n+A+1)*C式中的C是受DSLAM处理器控制的DSL端口或信道数,n是DSLAM通过其处理每个数据包的规约的数量(考虑到上下游两种通信,要乘2),而A是存储器复制数,取决于DSLAM执行的各种应用情况;附加复制(即公式中的“1”)代表DSLAM中该数据包从接收缓冲器复制到发送缓冲器。即使是一种应用两个规约且DSLAM应用不要求附加复制的简化型系统,对于DSLAM中的每条DSL信道而言,每个数据包要求5次复制。考虑到准备由DSLAM处理的DSL信道数可能很大,并且还考虑到现代DSL通信的包数据速率,这种常规DSLAM结构所需的存储器与处理资源就变得相当可观了。事实上,这种常规操作中所需的存储空间通常超过了普通控制器处理器所具备的单片(on-chip)高速存储,从而要求有一种做在DSLAM体系内的存储器分系统。
由常规DSLAM实现的线路卡功能目前一般使用数字信号处理器(DSP),诸如Texas仪表公司出售的TMS320C5X和TMS320C6X系列DSP,以便高速处理DSLAM通信的数据。DSLAM里的控制器最好也用类似的DSP实现,从而无须在线路卡DSP与DSLAM控制器(和NIC)之间作数据转换;事实上在诸如TM320C6X等级一类的当代技术水平的DSP的情况下,相信有足够的处理能力,从而由用于应付线路卡处理的同一个DSP实现该控制功能。然而,为保持最高的性能,最好利用DSP的芯片上存储器应付数据包规约处理;根据常规实现方法,如上所述,在诸规约之间复制数据包所需的存储器资源,基本上不能为这一功能使用芯片上的DSP存储器。
因此,本发明的一个目的是提供一种数字用户专用线访问多路复用器(DSLAM)及其操作方法,其中将数据包的规约转换所必需的存储器与处理资源减至量小。
本发明的再一个目的是提供这样一种DSLAM与方法,据此可在规约转换期间用高速芯片上存储器存贮传递的数据包。
本发明的再一个目的是提供这样一种DSLAM与方法,据此可借助数字信号处理器(DSP)实现DSLAM控制器功能。
本发明的再一个目的是提供这样一种DSLAM与方法,据此能以同DSP或其它控制器相一致的方式配置芯片上存储器。
本发明的再一个目的是提供这样一种DSLAM与方法,据此可以避免分裂数据包存储器资源。
本领域的一般技术人员通过参照下述的说明与附图,将明白本发明的其它目的与优点。
本发明可利用数字用户专用线访问多路复用器(DSLAM)里的数据包缓冲器管理器功能来实施。数据包缓冲器管理器配置在里面可以存贮数据包与头部的某个邻接存储区。每个数据包,无论是从网络接口还是从DSL端口接收的,都以某种数据结构存贮在存储区中,而这种数据结构不仅为通信的数据保留着足够的空间,还为预计要应用于该数据包的每一种规约的将来的头部与尾部保留着足够的空间。数据结构中的数据位移指针指向实际包数据的开始。通过参照包括数据指针在内的各种指针,可对该数据包增补、修改或取消内务操作数据(头部与尾部),无须复制数据包本身。在传输时,放开被该存储区占用的存储器部分,邻接区复原,以避免分裂。
图1是可以实施本发明较佳实施例的数字用户专用线(DSL)通信网络的电气方框图。
图2是按本发明较佳实施例构成的数字用户专用线访问多路复用器(DSLAM)的电气方框图。
图3是可以实施本发明较佳实施例中DSLAM控制器的数字信号处理器(DSP)体系结构的电气方框图。
图4是根据本发明较佳实施例的说明软件结构的方框图,图2的DSLAM在其控制下工作。
图5是存储器图,表示根据本发明较佳实施例的图2DSLAM控制器中芯片上存储器内存储库的安排。
图6是一流程图,表示根据本发明较佳实施例的DSLAM控制器的工作情况。
图7是一方框图,表示根据本发明较佳实施例的DSLAM控制器的应用情况。
图8a到8c是存储器图,表示根据本发明较佳实施例将几例数据包缓冲器的位置输入图5中存储库的情况。
图9a到9e表示在按图6方法作规约处理期间,本发明较佳实施例根据存储库中某个数据包缓冲器而工作的情况。
图10是一存储器图,表示根据本发明第二较佳实施例的数据包缓冲器输入的联接安排。
先参照图1,首先描述可在其中实施本发明较佳实施例的一种数字用户专用线(DSL)通信网络。将结合某个DSL网络描述本发明的较佳实施例。因应在应用于DSL通信时,预期本发明特别有利;当然应该明白,本发明同样适用于其它类型的通信,本领域的技术人员在参阅本说明书后将会更加清楚。再者,这里描述的图1中特定的DSL网络只是一个例子,预期本领域的技术人员在参阅了本说明书后,完全能在根据其它结构的DSL网络中实现本发明的优点,并且如上所述,也能在根据其它技术的数据通信中实现本发明的优点。
如图1所示,DSL通信网络包括多个用户地点H,这些地点可以对应于家庭的或办公室的用户地点。在这一DSL结构中,示例性的用户地点H。包括同用户计算机4。进行通信的一台DSL调制解调器20。像本领域中的常规方法那样,将电话手机60与DSL调制解调器20同时接到分离器80,后者提供适当的滤波操作,将话普通信转送给手机60,将数据通信传送给DSL调制解调器20。将分离器80接到当地电话网设施TWP之一,每一个TWP都可用普通的双扭绞铜线实现。其它用户地点H可用同样方法构成,或用本领域中已知的其它方式实现。
图1的例子对应于DSL通信类型,其中的模拟话音信号以低于数据通信的频率运行,允许两类通信业务同时迭加在相同的电话网设施上。或者正如本领域众所周知的,可以采用所谓的“无分离器”DSL,其中的话音通通信由DSL调制解调器接收并被转换成数据包通信,且以类似于数据通信的方式在电话网上作为数字包进行通信。根据这类无分离器技术,本发明也同样适用于DSL通信。
在图1的例子中,可将设施TWP直接接到总局CO,或者作为双扭绞线与光纤物理设施的组合体,配有可靠地通信所必需的中继器和其它网络元件(未示出)。在涉及话音通信的场合,如在本例中,总局CO一般处于电话提供方的位置。或者,可将DSL通信限于数据通信,此时总局CO可以是个服务器地点,诸如用户地点H可利用其通信数据的某个公用或专用(因特网或intranet)服务器地点,此时将不呈现模拟话音信号能力。
如图1所示,每个双扭绞线设施TWP均被数字用户专用线访问多路复用器(DSLAM)10接收,下面将相对于本发明的较佳实施例详细描述这一结构。本例中,DSLAM10能将话音信号从设施TWP上接收的数据通信中分离出来,并把这些信号经话音数字开关12转送到公用交换电话网(PSTN),所述话音数字开关12也位于总局CO;当然,从PSIN到用户地点H(诸如用户地点H0的手段60)的话音通信,也可用数字开关12和DSLAM10以常规方法处理。
对于数据通信,DSLAM10与诸如图1中总局CO的局域网(LAN)14一类的本地网络通信;或者,作为典型的因特网服务提供方的总局构成,可使DSLAM10与异步传输模(ATM)网进行通信,由此可以更直接地与因特网进行双向通信。再来看图1的例子,在本领域众所周知,能以常规的LAN方式来编排LAN14,诸如一种Ethernet网,可在其上以常规方式通信。这类LAN与数据包通信兼容,这是众所周知的。在图1例子中,本地服务器15留驻在LAN14上,因而用户地点H可以通过DSL连接可以当地访问存贮的数据。另外,尤其在电话网应用中,可将因特网网关留驻在LAN14上,从而用户地点H可经总局CO双向访问因特网。
DSLAM10还接至元件管理系统(EMS)17。EMS17是一台本地主计算机,诸如个人计算机或工作站,它可用来通过串行或平行接口访问和控制DSLAM10内的系统管理功能。
现在参照图2,说明本发明较佳实施例的DSLAM10的系例性结构。如图2所示,DSLAM10包括多种模拟前端(AFE)功能元件20,每个功能元件作为一个DSL端口,从而双向连接至双扭绞线设施TWP之一,接收来自连接用户地点H的通信。将AFE功能元件20构制成电路卡,包括混合信号(即涉及到数模拟两种操作)集成电路。为全双工DSL通信提供所有必需的环路接口和线路驱动功能元件。可用来实现AFE功能元件20的集成电路的例子,包括TLV320AD12总局ADSL编译码器和THS6002线路驱动器,二者可向Texas仪表公司购买。
DSLAM10的DSL信道收发机22,每一个都双向连接至多个AFE功能元件20之一。在图2例子中,每个DSL信道收发机22均接至4个AFE功能元件20;当然,通过给定的一个DSL信道收发机22进行处理的AFE功能元件20以及DSL信道的特定数量,可以随特定的DSLAM结构和DSL信道收发机22的处理能力而变化。DSL信道收发机22最好每一个都是可编程数字装置,对数据有效负载的发送与接收执行必要的信号处理操作。这类操作包括这样一些功能,诸如回波消除、将数据编译码到适合发送的子信道,以及在频域与时域之间执行快速傅里叶变换(FFT)信号处理。特别在DSL数据速率方面,DSL信道收发机22的数字数据处理容量与能力最好是高水平的,最好达到数字信号处理器一档的能力,至少具有Texas仪表公司出售的TMS320CL548DSP的能力。每个DSL信道收发机22都接至成帧器功能元件24,后者最好也被构制成诸如上述TMS320CL548一类的DSP。成帧器功能元件24把数字数据适当地格式化成合适的包与帧,以便在DSLAM10内处理。虽然图2中清楚地示出了两台DSL信道收发机22,不过当然可以推测,任意数量的DSL信道收发机22都可馈给(和被馈给)成帧器功能元件24,具体数量则取决于DSLAM10的特定结构与能力。
DSLAM控制器25双向连接到一侧的成帧器24;在其网络一侧,DSLAM控制器25双向连接到Ethernet网接口卡(NIC)26、RS422高速串行接口27和RS232串行接口28。如图1所示,Ethernet NIC26将DSLAM10接口到LAN14;同样如图1所示,串行接口27、28将DSLAM10接口到EMS17。在这方面,根据图2这种示例性结构的DSLAM控制器25所执行的功能之一,就是响应于通过串行接口27、28(或者经Ethernet NIC26在LAN14上)从EMS17接收的控制指令,就地控制DSLAM10的建立与操作。在与DSL信道的数据通信方面,DSLAM控制器25的功能是对连接到DSLAM10中AFE功能元件20的DSL信道作数据流控制与信道管理,以及DSL信道与NIC26之间的数据充控制。正如下面将更详细描述的那样,DSLAM控制器25还根据诸如PPP、IP路线、ARP等各种规约,执行层2与层3网络规约处理。
根据本发明的较佳实施例,可将DSLAM控制器25构成上述DSLAM控制器功能元件专用的单个DSP装置,如上所述,具有诸如Texas仪表公司出售的TMS320LC548 DSP的性能。这方面,用作DSLAM控制器25的这种DSP装置最好像上述的TMS320LC548DSP那样,具有芯片上随机存取存储器(RAM)。或者,在将更高处理性能的DSP(诸如Texas仪表公司出售的TMS320C6X级别DSP)用于DSLAM10中其它功能元件(即成帧器功能元件24和DSL信道收发机22),并且如果在该DSP中保持充分的处理容量以处理DSLAM控制器25的功能的情况下,则可在单个DSP装置中实现DSLAM10的数字功能元件。这样,根据特定电路的处理能力,图2所示DSLAM10的功能界限可以代表或可以不代表用于实现这些功能元件的集成电路的界限。
另外,当然可以用专用于下面描述的流程控制操作的定制逻辑电路实现DSLAM控制器25。
如上所述,最好把DSLAM控制器25构成数字信号处理器(DSP),最好与在DSLAM10里用作DSL信道收发机22与成帧功能元件24的其它DSP兼容。这种DSLAM控制器25的DSP实现可让数据通过DSLAM10流动而不存在数据转换和其它接口问题,如果把DSLAM控制器25构成通用微处理器,则必然有这些问题。另外,把DSLAM控制器25构成DSP,可对DSLAM控制器25的操作采用与DSLAM10内其它DSP同一个开发平台。当然,本领域的技术人员在参阅本说明书后将会明白,即便用这类微处理器或其它硬件而不用DSP装置来构制DSLAM控制器25,也能实现本发明的许多优点。
现在参照图3详细地描述示例性的DSP130的结构,该结构可实现DSLAM控制器25。该例DSP130对应于上述TMS320LC548的结构,可以理解,还可以应用根据其它结构构成的DSP。
本例中,DSP130用修改过的Harvard结构实现,这样就应用了3条独立的数据总线C、D、E,这些总线与多个执行单元有联系,其中包括指数单元132、乘/加单元134、算逻单元(ALU)136、鼓式移位器138。累加器140允许乘/加单元134与ALU136同时操作,可同时执行乘累加(MAC)和算术操作。本例中,DSP130可执行的指令组包括单指令重复与区段重复操作、区段存储器移动指令、二和三操作数读、条件存贮操作、平行负载与存贮操作以及专用的数字信号处理指令。DSP130还包括耦合到数据总线E的比较、选择和存贮单元(CSSU)142,用于加速Viterbi运算,适用于许多常规的通信算法。
本例中的DSP130包含了重要的芯片上存储器资源,由存储器/外设接口单元145经数据总线C、D、E和程序总线P控制对该资源的访问。这类芯片上存储器资源包括随机存取存储器(RAM)144、用于存贮程序指令的只读存储(ROM)146和地址寄存器148。程序控制器与地址发生器电路149还与存储器/外设接口145相联系。经存储器/外设接口145接收来自ROM146或其它存储器的程序指令代码,并产生加给DSP130每个功能单元的控制信号,以便控制执行对应于接收的程序指令代码的指令。还配备了与存储器/外设接口145有关的接口单元158,以便控制外部通信。电源、时钟与控制功能元件150一般指DSP130内的控制电路,以将这类功能处理为电源分配与电压调节、时钟发生和DSP130整体控制;另外,该功能元件150可进一步实现串行与主机端口等其它接口功能元件以及定时器、JTAG测试接口电路、内置自测试电路等附加控制功能元件。
如上所述,DSLAM控制器25在发送与接收两个方向对数据包作网络规约处理。现在参照图4,描述利用根据本发明较佳实施例的DSP130来构成DSLAM控制器25的软件结构。
图4结构的基础是实时核心30,它包括作为DSLAM控制器25软件其余部分基础的诸功能元件。根据本发明的较佳实施例,这类元件包括实时调度器、标准I/O管理系统和数据包定向的存储器管理系统。
根据本发明的该较佳实施例,实时核心30的实时调度器部分应用基于优先权的事件驱动循环调度,在DSLAM控制器25控制下处理正在通过DSLAM10的异步网络接口数据业务和消息传输。本例中,事件描述器数据结构描述每个事件,指明该事件的类别与优先权以及事件特定的通报值、标志、状态和该事件相关的装置与端口的信息。
相对于标准I/O管理系统,硬件提取层31对于DSLAM控制器25作出响应的每个接口功能元件都包括驱动器软件的硬件相依部分。对于受AFE功能元件20(图2)、经NIC26的Ethernet接口和串行接口27、28支持的DSL信道的装置驱动器,最好按标准I/O模型开发,并作为下面将详述的可动态堆选的规约。应用程序接口(API)层32居于硬件提取层31“上面”,包括EMS端口I/O驱动器32a、DSL信道I/O驱动器32b、EthernetI/O驱动器32c和HSSP(高速串行口)I/O驱动器32d,如图4所示。API32中的这些驱动器都连接到该结构的规约层,在图4结构中由信号规约堆层36s和数据规约堆层36d表示。
根据图4的这种软件结构,可将特定的网络规约构成专用的或可堆迭的规约驱动器。对于某一网络规约而言,如果该规约诸如在PPP通信的NPL阶段必须根据几乎每个数据包而执行,则规约驱动器最好能提供较佳的性能而较少灵活性。
图4结构中的信号规约堆层36s是一种主要在用户地点H(图1)的DSL调制解调器2与DSLAM10之间通信初始化期间使用的规约堆层。正如下面将描述的,一旦建立了双向信道,数据规约堆层36d就用于存贮和处理数据包及其相关的内容操作(即头部与尾部)。
在规约堆层(36s、36d)上面,在图4结构的API38中留驻有各种系统管理器软件功能元件。网络管理器38a、主机端口管理器38b和DSL信道管理器38c各自在DSLAM控制器25中对顶级应用提供一均一的API,这类顶级应用包括EMS媒介、DSL信道IP路径、DSL信道PPP处理、ARP与SNMP规约等等。如上所述,管理器功能元件38a、38b、38c都分享某个标准I/O管理功能元件的公用代码库,同时提供装置特定的管理功能元件。
在操作中,被接收并通过DSLAM控制器25再发送的数据包有效地通过图4的软件结构行进。例如,被一个AFE功能元件20(图2)接收的DSL消息,由硬件提取层31把它当作一组包而接收,然后由DSL信道I/O驱动器32b处理,将诸数据包放入数据规约堆层36d。数据规约堆层36d中的数据包按各种规约处理(由包缓冲管理器40处理,下面将描述),然后传递给API38,由相关的管理器按该消息特定的目的地进行处理。一旦有关的管理器功能元件38a、38b、38c执行了处理,则通过数据规约堆层36d将该数据包送回数据包目的地有关I/O驱动器32。
如图4和上述所示,DSLAM控制器25的软件结构包括包缓冲管理器40。根据本发明,包缓冲管理器40对应于一组程序指令,当由上述的DSLAM控制器25那样的DSP130执行时,这组程序指令就对DSLAM10一类的多规约多信道DSL通信系统构成基于零复制包的存储器管理系统。由包缓冲管理器40实现的零复制系统允许DSLAM控制器25通过一系列不同的网络接口、规约和相关联的处理来处理数据块,同时在存储器原地保持数据块的内容。
回过来参照图3,最好将包缓冲管理器40的程序存贮在用于构成DSLAM控制器25的DSP130的RAM146里,并通过访问DSP130的芯片上RAM144予以执行。根据本发明的较佳实施例,RAM144可用于存贮数据包(及其关联的内务操作),因为零复制存储器管理提出的减少存储器要求要靠包缓冲管理器40执行。这样,不仅将存储器要求保持为最小,而且在根据本发明的DSLAM控制器25的控制下,应用高速芯片上RAM144还能改善数据流的性能。
根据本发明的较佳实施例,把一部分RAM144预定为(例如当DSLAM控制器25起动时)包缓冲器的存储库,用于运行时间。图5表示一例这样预定的存储库50。存储库50最好是RAM144中邻接的存储块,其尺寸取决于特定的应用要求,诸如DSLAM的信息容量。存储库50最好还被组织成整数邻接的最小尺寸存储块50j。最小尺寸存储块的大小还取决于由DSLAM控制器25服务的特定应用,并且可能对应于所需应用的最小或平均包尺寸。存储块50j的尺寸最好小于平均包括尺寸而大于最小包,且对应于数据字的二次方倍数。例如,对Ethernet消息给出的最小包尺寸为62字节,就可把最小尺寸存储块50j设置到64字节(略大于最小包尺寸,因而小于平均包尺寸,并具有二次方的块间位移)。可以认为,选择块50j最小尺寸的精密度并非关键;这样,为了减少处理器操作与循环的次数,诸如在上述64字节最小尺寸的情况中,可以牺牲存储器利用率。此外,正如下面要描述的,将以数据字为基础访问每个块50j,字宽对应于赖以实现DSLAM控制器25的DSP130的结构。
如图5所示,存储库50的起始地址BASE保留在DSP130中的全程变量存储器里,用于具体的存储器地址计算。一旦指定后,最好将存储库50保护起来不作其它应用。
由按本发明较佳实施例的DSLAM控制器25处理的每个消息数据包,无论是源还是规约,都通过一种公用数据结构P_BUF存入包存储库50内,而这种数据结构是特地为有效地存储可变长度数据包设计的。数据结构P_BUF的编排允许其多个样品(对每个消息包而言)被有效地排列、指定,并从存储库50内取消指定。根据本发明的第一较佳实施例,可将包缓冲器数据结构P_BUF描述如下(遵循C语言类型定义):Typedef_P_BUFQ_ENTRY Pkt_Q; /*包排列输入*/WORD B_Size /*包缓冲器总尺寸*/WORD D_Offset /*数据起动补偿*/WORD D_Size /*总有效数据尺寸*/WORD D_Flag /*数据标志*/}P_BUF,*P_BUFP
特定包缓冲器数据结构的名称*pRktBuf将根据其具体例子规定。
输入结构PkOt_Q是一种排列输入结构,本身由Q_ENTRY定义,它对给定的数据包缓冲器含有正反向指针。这些正反向指针分别指向当前数据包缓冲器相邻的引导与结尾数据包缓冲器,利于包缓冲器的排列与取消排列。
包数据缓冲器结构剩余的每个区段的WORD宏指令描述数据结构中实际的机器字。在本发明的该第一实施例中,区段B_Size表示指定给包缓冲器的数据字总数,既包括实际的数据,也包括为潜在规约预期的头部与尾部而保留的存储空间。如上所述,根据本发明较佳实施例应用的数据字或段尺寸,最好与用来实现DSLAM控制器25的DSP130的自然数据字尺寸(即总线尺寸)相匹配。例如在上述的TMS320LC548 DSP中,数据字尺寸是16位,即2个字节;这样,以区段B_Size(和在包缓冲器数据结构的其它区段中)表示的数据字数量将规定16位数据字数量。由区段B_Size表示的存储器尺寸应是上述最小块尺寸的整数倍,以实现本发明的全部优点。
区段D_Offset表示包缓冲器中从数据包缓冲器的起始地址到实际数据第一个有效字的字数。如下面的描述可知,调节该区段D_Offset的值,可表示准备由特定规约的考虑的数据部分。例如,根据本发明的该较佳实施例,只要简单地调节区段D_Offset的值使之不再包括作为其有效数据部分的带状头部,就可以剥离该头部;相反地,通过改变区段D_Offset的值为附加有效数据作准备,然后将所需的头部插入该新区域,就可加上某个头部。这样,根据本发明的较佳实施例,修改区段D_Offset的值就能更改头部数据,无须复制存储器里的包。区域D_Size与区段D_Offset的结合操作,因为它以数据字方式限定了数据包缓冲器中有效数据的尺寸。这样,当添加或剥离头部时,随着对区域D_Offset的值的更改,区段D_Size值也一起更改;另外,以上述区段D_Offset同样的方法,通过修改区段D_Size的值,可对实际的数据添加与剥离尾部。
在根据本发明较佳实施例的数据包缓冲器结构中,设置了区段D_Flag,用于指示区域D_Size表示的有效数据中最后一个数据字里有效数据字节数。如上所述,通常把消息包组成字节,而DSLAM控制器25中DSP130使用的数据字或段的宽度为多个字节;相应地,根据本发明较佳实施例组成的数据包通常具有留在其尾部数据字中的空闲字节,而尾部数据字与该数据包无关联,若作为包部分发送,会造成差错。因此,区段D_Flag值将指示数据包缓冲器的尾部数据字中的有效字节数。据推测,对于最佳效率,存贮在区段D_Flag中的实际值应等于无效数据字节数。例如,如果在数据包缓冲器最后一个16位数据字中只有一个字节有效,其区段D_Flag的值将是1;反之,若两个字节都有效,区段D_Flag的值将为0。对于32位的数据字,区段D_Flag可能的值为0~3(分别通过一个字节有效对应于4)。
根据本发明的第一较佳实施例,包缓冲器管理器40(图4)包括一个API级38的功能元件库。这类功能元件执行包缓冲器指定与取消指定的功能;其它包缓冲器操作也包含在该库中。根据本发明第一实施例的这些库功能清单如下:
P_Alloc(WORD Size,WORD Offset):这一功能将一部分存储库50指定用作一个包缓冲器。包缓冲器的大小由操作数Size限定,缓冲器的位置从地址BASE的开头处于Offset。一旦将包缓冲器写入该指定的存储库50区域后,就将实际的包缓冲器存入规定的包缓冲器中由区段B_Size限定的某一部分(它是存储库50中最小尺寸存储块的倍数)。
P_Free(P_BUF*pPktBuf):这一功能将指定的包缓冲器返回存储库50。正如下面将详述的,也可将执行这一功能导致的自由存储块合并起来以减少分裂状况。
P_Append(P_BUF*pPktBuf,WORD*Buf,SIGNED WORD Count):该功能将*Buf限定的数据预定或附加(由操作数Count的符号限定)给规定的包缓冲器pPktBuf。
P_Remove(P_BUF*pPktBuf,SIGNED WORD Cout):该功能从包缓冲器的开始或结束处(由Count的符号限定)除去由操作数Count的幅值指示的数据量。
P_Catenate(P_BUF*pPktBuf1,P_BUF*pPktBuf2):该功能将规定的包缓冲器*pPktBufl和*pPktBuf2相连接。
P_BUF*NetPktRead(IO_CHAN*pIOPesc):该功能是一种API级功能,允许操作作应用检索(读)某一指向被规定的装置I/O信道驱动器*pIODes使用的存储库50中包缓冲器*pPktBuf的指针;这种读功能用来识别保缓冲器*pPktBuf的位置,因为它已通过规约堆层36d作了处理,其头部与尾部由包缓冲器管理器40按穿插的规约作过修改或剥离,留下供调用该功能的应用使用的消息数据。
NetPktWrite(IO_CHAN,*pIODesc,P_BUF*pPktBuf):该功能也是一种API级功能,用于将从NetPktRead功能通过规约堆层36d返回的包缓冲器*pPktBuf写到规定的I/O信道驱动器*pIODesc的发送队列里。
这些功能允许消息数据通过DSLAM控制器25作多规约处理,无须复制存储器中的自身数据。
现在参照图6和7,详细描述根据本发明第一较佳实施例的DSLAM控制器25的操作。图6以流程图形式说明根据本发明该第一实施例应用的方法步骤,图7示出一例流程控制过程。如图7所示,相对于存贮在存储库50中作为接收队列RxQ、通过两个规约(规约1和2)处理并根据应用要求操作的包缓冲器*PB2,示出了由根据本发明的DSLAM控制器25执行的示例性任务;于是包缓冲器*PB1通过规约2和1重新处理,并转送给发送给列TxQ。接收消息数据包的I/O装置通常不同于再发送该消息的I/O装置;例如对于上游DSL业务,消息数据包将被DSL I/O信道之一(AFE20)接收,并经Ethernet NIC26再发送给LAN14。在任何情况下,如图7所示,包缓冲器*PB2在整个处理中都保留在同一个存储库50位置中。
回头参照图6,在过程52中,DSLAM控制器25的一条I/O信道接收消息数据包。如上相对于图2和4所示,通过其可让DSLAM控制器52接收消息数据包的该组可能的I/O信道,包括每条由DSLAM10服务的DSL信道、经串行接口27与28耦合至EMS17的串行口和由Ethernet NIC26服务的Ethernet I/O信道。这些I/O信道相应的驱动器在图4中被示作EMS端口I/O驱动器32a、DSL信道I/O驱动器32b、Ethernet I/O驱动器32c和高速串行口I/O驱动器32d。在过程54中,接收机驱动器32将存储库50中的某一包缓冲器指定为其接收队列部分;该指定的包缓冲器*PB(图7)将用来存贮接收的包数据以及在由DSLAM控制器25在整个规约处理与转送中所接收并处理的该包数据的头部与尾部,无须复制。
图8a与8b示出一例根据本发明第一较佳实施例的指定过程54。例如,图8a示出DSP130的芯片上RAM144中存储库50的安排,其中的包缓冲器*PB0、*PB1是事先指定的。从图8a可见,包缓冲器*PB0、*PB1留驻在存储库50的终端(离地址BASE最远的位移);当然这种安排只是举例而已。在过程54中,接收驱动器32对其接收的消息数据包执行库功能P_Alloc(WORD Size,WORDOffset),选择操作数Size的某个值(作为最小尺寸存储块50j的一个整数),而该值足以存储实际的消息数据以及可能在图6处理期间添加或修正的任何头部;于是操作数Offset的值就以先前指定的包缓冲器*PB0、*PB1的当前位置与接收包的操作数size的值为基础。图8b示出适合包缓冲器*PB2的存储库的指定状况。本例中,将操作数Size的值选为11个最小尺寸存储块50j,而将操作数Offset的值置成小于11的包缓冲器*PB1的操作数Offset的值(即,本例中为操作数Size的值)。因此,作为有关I/O信道驱动器32执行过程54的结果,在存储库50内指定了包缓冲器*PB2。
图9a示出一例刚指定后被指定包缓冲器*PB2的内容。如图9a的例子所示,被指定包缓冲器*PB2的总尺寸由库功P_Alloc(WORD Size,WORD Offset)中操作数Size的值限定。实际的消息数据(指图9a中的“PAYLOAD”)留驻在包缓冲器*PB2内,附带保留的包缓冲器*PB2部分留驻在PAYLOAO的上下方。这个实际的消息数据可能不仅包含该消息数据,可能还包含必须最后发送的这类头部信息(如PPP包头部数据)区段D_Offset的值指示此时在包缓冲器*PB2内实际数据PAYLOAD开始的位置,同时将区段D_Size的值置成此时存贮在包缓冲器*PB2内的实际数据的尺寸。此外,在指定后,并且一旦对包缓冲器*PB2建立了区段D_Offset与D_Size的值,根据将该数据存入存储库50作为接收队列的I/O驱动器32,将区段D_Flag设置成指示该实际数据最后一个数据字中有效数字节数。将这些区段D_Offset、D_Size和D_Flag保持在DSLAM控制器25里的本机存储器或寄存器中,与包缓冲器*PB2相关联。
正如过程56指出的,根据包缓冲器*PB2操作的应用38之一启动执行上述的一例库功能Net PktRead(ID_CHAN*pIDDesc)。该例功能NetPktRead规定I/O信道驱动器32在过程52、54中接收该包并指定包缓冲器*PB2,而且还接收指示所限定和指定的包缓冲器*PB2的指针。而且,作为启动过程56的一部分,按顺序将规约标引i置成第一规约(图7的规约1)。执行这一库功能NetPktRead让包缓冲器管理器40通过该消息所必需的各种规约顺序(如图7的规约1和2)处理包缓冲器*PB2,现在来予以描述。
NetPktRead功能的执行包括迭代执行规约处理过程58。在过程58中,DSLAM控制器25里的包缓冲器管理器40根据规定的包缓冲器*PB2内容的头或尾部分进行操作,无须复制其全部内容;事实上,这些修改是通过上述的库功能P_Append(P_BUF*pPktBuf,WORD*Buf,SIGNED WORD Count)与P_Remove(P BuF*pPktBuf,SIGNED WORD Count)实行的,现在相对于图9b予以描述。
一般而言,规约处理过程58通常包括按有关规约对内务操作字节进行添加、删除或修改,不必打乱实际消息数据本身。接着进行判断59,确定是否要求处理附加的规约;若要处理(判断59为是),在过程60中对标引i增数,控制返回过程58作这种附加处理。
在规约处理过程58的每个例子中,在执行P_Buf_NetPktRead功能中,包缓冲器管理器40根据要处理的当前规约,可以调用下列的一个或多个功能。例如,要添加规约头部,应执行下列功能:
P_Append(P_BUF*pPktBuf,WORD*Buf,SIGNED WORD Count)。添加头部要求区段*Buf的值等于所需的头部数据,而区段Count要带正号使该头部预先未定。结果,指针D_Offset的值将减去区段Count的值,而区段D_Size的值将增加区段Count的值。
对于图7例中的规约1的处理,图9b示出了规约头部PH1的添加。如上所述,该操作是在存储库50中指定的包缓冲器*PB2内进行的,不必复制包本身。
规约处理过程58还可用将尾部加入当前包缓冲器的包缓冲器管理器40执行。添加尾部应执行下列功能:
P_Append(P_BUF*pPktBuf,WORD*Buf,SIGNED WORD Count)添加尾部要求区段*Buf的值等于所需的尾部数据,而区段Count要带负号使尾部未定。指针D_Offset的值此时不变,但是要将区段D_Size的值增加区段Count的值。
对于图7例中的规约2的处理,图9c示出了添加规约尾部PT2。如上所述,该操作在存储库50中指定的包缓冲器*PB2内进行,不必复制包本身。如图9C所示,包头部*PB2包括规约头部PH1与规约尾部PT2二者。
作为过程58的一部分,可通过上述(及下述的例子)功能P_Remove删除头部或尾部。根据地址分辨规约(ARP)经常要求的头部或尾部的修改,也可在过程58中执行,最好以上述方法先删除头部或尾部,再使所需的头部或尾部预先未定或增补。
如上所述,规约处理过程58反复进行,直到不再有要处理的规约(判断59为否),接着控制转向应用38,对当前包缓冲器作特定的处理,如图6的过程61所示。这类处理可以包括直接将实际消息数据(PAYLOAD)通到目的地I/O信道;另外,在传递该消息数据之前,有些预处理可能是必需的(如在PPP通信的情况中)。在任何情况下,应用38都要询问包缓冲器的区段D_Flag的状态,确定实际消息数据中最后数据字里的有效字节数,避免因对包缓冲器存储器使用数据字而不使用字节导致不希望的零值字节造成差错。
应当认识到,可能因应用38处理该包而有一点延迟,从而准备由包缓冲器管理器40处理的下一个包缓冲器不是靠近处理过的同一个包缓冲器(如*PB2);事实上,可以推测,相对于多个应用38,DSLAM控制器25正在同时处理它所服务的多个I/O信道之一的消息包。这种不测事件大多数直接影响了存储库50中各存储块的自由化和合并,下面对此作详细描述。
根据完成其处理(过程61)的应用38,通过执行NetPktWrite(IO_CHAN,*pIODesc,P_BUF*pPktBuf)库功能的应用38启动传输对应于所需包缓冲器(如*PB2)的消息数据,操作数*pIODesc指包的目的地I/O信道,操作数*pPktBuf当然指如此转送的特定包缓冲器。此时,将规约标引i置成其最大值,对应于通过过程58最后处理的规约。
在执行传输处理时,包缓冲器管理器40基本上反复地执行与过程58迭代时对包缓冲器*PB1进行的相反的规约处理。例如,执行下列功能可以剥离规约尾部(如图9C的尾部PT2):
P_Remove(P_BUF*pPktBuf,SIGWED WORD Count):删除尾部要求操作数Count的值等于要被删除的所需的数据字数,并带负号表示从包缓冲器*pPktBuf中实际数据的结尾里除去。作这一操作,指针D_Offset的值不变;也可直接将区段D_Size的值减去区段Count的值消去该尾部。
图9d示出该操作的结果。事实上,在该过程64之后,对应于图9c例中尾部PT2的实际数据字仍留在存储器中,只是不计罢了。
在过程64的第一例之后,包缓冲器管理器40执行判断65,确定是否还有要处理的附加规约。若有(判断65为是),在过程66中将规约标引i减数,控制回到过程64作附加规约处理。例如,对包缓冲器*PB2,可执行下列功能剥离规约头部PH1。
P_Remove(P_BUF*pPktBuf,SIGNED WORD Count):删除头部要求操作数Count的值等于要被删除的所需的数据字数,并带正号表示从包缓冲器中实际数据的开始除去。像减去区段D_Size的值那样,应把指针D_Offset的值减去区段Count的值。图9e表示完成过程64的这一情况后的包缓冲器*PB2的状态。
在通过过程64处理完所有的规约后(判断65为否),在库功能NetPktWrite(ID_CHAN,*pIODesc,P_BUF*pPktBuf)中被应用38规定的有关I/O信道驱动器32作了更改,在本例中,它在存储库50中具有一个与包缓冲器*PB2关联的包。于是该发送驱动器32在过程68中将包缓冲器*PB2有效地用作其发送队列,在适当时间将该数据发给相应的I/O信道(例如Ethernet NIC26)。
本例中,当有关的I/O信道驱动器32应用了包缓冲器*PB2的内容后,接着执行过程70,使存储库50中与包缓冲器*PB2关联的指定部分自由。这种包缓冲的自由靠执行P_Free(P_BUF*pPktBuf)功能实现,指要求自由的包缓冲器。于是,先前指定给当前包缓冲器*PB2的存储库50部分就返回再指定状态。
根据本发明的较佳实施例,使某个包缓冲器脱离存储库50是以自由的存储块合并起来的方式实施的,由此防止了后继包缓冲器指定中的分裂。现在相对于图8c描述作这种合并时过程70操作的一个例子,其中的包缓冲器*PB0与*PB2在存储库50中保持被指定,而包缓冲器*PB1(见图8b)已经自由了。根据本发明的较佳实施例,关于包缓冲器*PB2的自由化,包缓冲器管理器40检查存储库50的状态,确定包缓冲器*PB2是否与存储库50中被指定的存储块邻接;若不邻接(如图8c的情况),最好改变包含在其上述队列输入P_ENTRY Pkt_Q中的包缓冲器*PB2里的指针,包缓冲器管理器40将存储库50中被认为自由的诸存储块合并起来。在此情况下,包缓冲器*PB2在过程70中自由化后,存储库50中现有的诸存储块就容易防止分裂了。
因此,根据本发明的该第一较佳实施例,由于不必复制消息数据包的内容,所以能以最小的存储要求控制通过DSLAM的数据流。另外,根据本发明,在常规DSLAM控制器中产生这类复制件(其实有多个复制件)所需的处理操作与机器周期都被省略了,从而解放了附加的处理容量。这一附加处理容量和由此导致的功能减小,使每个DSLAM线路卡能支持更多的DSL信道,提高了DSLAM的端口密度。由于降低了存储器要求,所以也可使用芯片上存储器,诸如作为控制器的DSP的芯片上RAM,进一步改进了DSLAM控制器的性能。根据本发明的该实施例,通过应用DSP或用作DSLAM控制器的其它处理器所使用的数据字,而不应用字节定向的常规消息发送规约,还提高了DSLAM的处理效率。此外,根据本发明的该较佳实施例,通过自动合并包缓冲器存储库中自由的存储块,减少了存储器的分裂现象,进一步改进了DSLAM控制器的性能。
现在参照图10描述根据本发明第二较佳实施例的包缓冲器*PB的合理安排。在包处理中不了解所遇到的头尾部长度的情况下,根据本发明该实施例的图10结构特别有利。通过以这种方式应用联接表,避免了不必要的指定极大部分的存储库50和由此引起的存储库50麻烦的管理。
根据本发明的该第二实施例,包缓冲器数据结构P_BUF的类型定义如下:Typedef_P_BUFQ_ENTRY Pkt_Q; /*包排列输入*/Q_ENTRY Pkt_List; /*包清单*/WORD B_Size /*包缓冲器总尺寸*/WORD D_Offset /*数据起动补偿*/WORD D_Size /*总有效数据尺寸*/WORD D_Flag /*数据标志*/}P_BUF,*P_BUFP这同上述的包缓冲器数据结构P_BUF一样,只是多了队列输入P_List。根据本发明的该实施例,单个包缓冲器可以位于存储库50中若干包缓冲器位置,有效地作为一张联接表。队列输入P_List为该联接表的每个包缓冲器指定供一个属于该指定的标识符。
回过来参照图10,它示出了一例这种联接。本例中,包缓冲器表*PB0,0到*PB0,2对应于单个消息数据包,对于该消息数据包而言,在指定时(诸如在事先不知道规约的特定顺序时)无法可靠地预计数据字数。本例中,把这个单个消息数据包存放在相互参照的三个联接的包缓冲器表输入*PB0,0到*PB0,2中。这样,当像上述那样对每个输入*PB0,j作规约处理时,I/O驱动器32和应用38二者都可对包缓冲器表输入*PB0,0到*PB0,2的内容重新编序,以便作传输线或应用处理。
根据本发明的该第二实施例,存储库50以上述维持包缓冲器本身的顺序那样维持包缓冲器表的顺序。在图10例中,联接的包缓冲器表*PB1,0到*PB1,1的输入虽然累计地对应于指定的包缓冲器顺序中的下一个包缓冲器输入,但是单独地留驻在存储库50相互相对的非邻接区域中。顺序中的第三包缓冲器*PB2,0能存贮在存储库50的单个邻接区域中,因其头部与尾部数据要求是固定的(如在PPP包场合中);所以,根据该包缓冲器*PB0,2的数据结构将无效。
根据本发明的该第二实施例,附加的库功能最好用来管理存储库50中联接的包缓冲器输入表。这些功能包括:
P_AllocList(WORD Size,WORD Offset):该功能以上述的联接表形式将一部分存储库50指定用作某个包缓冲器。因此,通过这一功能为一组输入保留了指定部分的存储库50。
P_FreeList(P_BUF*pPktBuf):如上所述,该功能将指定的包缓冲器位置表返回存储加50,对自由的存储块作合理的合并以减少分裂。
如以上相对于本发明第一较佳实施例所述,本发明的第二较佳实施例具有类似的优点,即减少了必要的存储器资源、提高了处理器效率、增大了端口密度、允许对DSLAM流控制应用芯片上RAM,并且减少了分裂。然而,除此以外,本发明的第二实施例还提供了允许联接的包缓冲器部分表的优点,因而能迅速地定义和处理各种规约。
虽然根据较佳实施例描述了本发明,但是本领域的技术人员在参阅了本说明书及其附图后将明白,可以预期对这些实施例进行修改和变更,而这类修改与变更可获得本发明诸优点与利益。因此,这类修改与变更都落在基本上由所附加的权利要求书规定的本发明的范围内。
Claims (23)
1.一种在耦合至多条输入/输出信道的网络多路复用器中处理消息数据包的方法,包括步骤:
在存储器中指定一存储库;
响应于从第一输入/输出信道接收的消息数据包,在存储库中对该消息数据包指定一个包缓冲器;
将消息数据包存贮在存储库中包缓冲器的有效数据部分里;
然后通过修改包缓冲器中有效数据部分的尺寸,对至少一个通信规约处理收到的消息数据包;
处理步骤之后,在存储库中排列包缓冲器的消息数据包,以便通过第二输入/输出信道传输;及
取消指定在存储库中被指定的包缓冲器。
2.如权利要求1所述的方法,其特征在于,处理步骤包括:
执行包括修改包缓冲器有效数据部分尺寸在内的一系列操作,对多个通信规约处理收到的消息数据包。
3.如权利要求2所述的方法,其特征在于,指定包缓冲器的步骤包括:
在存储库中为包缓冲器保留一系列选择的邻接存储块;及
对包缓冲器规定位移地址和数据大小值,在一系列邻接的存储块内限定一有效数据部分用于存贮接收的消息数据包。
4.如权利要求3所述的方法,其特征在于,处理步骤序列包括:
修改位移地址与数据尺寸值以扩大包缓冲器中有效数据部分的尺寸,并将规约的头部增补到新扩充的有效数据部分而添加规约头部。
5.如权利要求3所述的方法,其特征在于,处理步骤序列包括:
修改位移地址与数据尺寸值以缩小包缓冲器中有效数据部分的尺寸而删除规约头部。
6.如权利要求3所述的方法,其特征在于,处理步骤序列包括:
修改数据尺寸值以扩大包缓冲器中有效数据部分的尺寸,并将规约尾部增补到新扩充的有效数据部分里而添加规约尾部。
7.如权利要求3所述的方法,其特征在于,处理步骤序列包括:
修改数据尺寸值以缩小包缓冲器中有效数据部分的尺寸而删除规约尾部。
8.如权利要求3所述的方法,其特征在于,每个存储块的尺寸对应于选定的数据字数,每个数据字对应于字节的整数;
其中,存贮消息数据包的步骤还包括:
设置一标志值,它对应于包缓冲器端部数据字中有效数据的字节数。
9.如权利要求3所述的方法,其特征在于,取消指定步骤包括:
让存储库中的包缓冲器准备再指定;及
将先前指定给该包缓冲器的选择的一系列邻接存储块与存储库中相邻的现有存储块合并。
10.如权利要求2所述的方法,其特征在于,指定包缓冲器的步骤包括:
在存储库中为该包缓冲器选择不邻接的多个区域;
把每个不邻接的区域相互联系成联接表;
对每个不邻接的区域,通过限定位移地址和包缓冲器的数据尺寸值,在其中规定一有效数据部分用于存贮一部分接收的消息数据包。
11.如权利要求1所述的方法,其特征在于,指定存储库的步骤将固定尺寸存储块的整数指定为一个邻接存储区域。
12.一种在网络与多个用户地点之间传递消息数据的多路复用器,其特征在于,它包括:
耦合到所述网络的网络接口;
多个输入/输出信道接口,每个信道接口耦合至多个用户地点之一;
至少一个收发机功能元件,它耦合至多个输入/输出信道接口中有关联的一个接口,对经过有关联的输入/输出信道接口传递的消息数据作数字操作;
耦合至网络接口和至少一个收发机功能元件的控制器,用于处理传递的消息数据的消息数据包,所述控制器包括:
存储器;
执行一系列操作的逻辑电路,包括:
在存储器中指定存储库;
响应于从输入/输出信道接收消息数据包,在存储库中为该第一消息数据包指定第一包缓冲器;
在存储库中将该消息数据包存贮在第一包缓冲器的有效数据部分里;
然后改变第一包缓冲器中该有效数据部分的尺寸,对至少一个通信规约处理接收的第一消息数据包;
在该处理步骤后,在存储库中排列第一包缓冲器的消息数据包以便传输到网络接口;及
取消指定在存储库中已指定的第一包缓冲器。
13.如权利要求12所述的多路复用器,其特征在于,控制器的逻辑电路执行的操作序列还包括:
响应于从网络接口接收消息数据包,在存储库中为该消息数据包指定第二包缓冲器;
在存储库中将消息数据包存贮在第二包缓冲器的某一有效数据部分;
然后修改第二包缓冲器中有效数据部分的尺寸,对至少一个通信规约处理接收的消息数据包;
处理步骤后,在存储库中排列第二包缓冲器的消息数据包以便传输到某一输入/输出信道;及
取消指定在存储库中指定的第二包缓冲器。
14.如权利要求12所述的多路复用器,其特征在于,将控制器的存储器与逻辑电路构成一可编程数字信号处理器集成电路。
15.如权利要求14所述的多路复用器,其特征在于,将数字收发机构成一可编程数字信号处理器集成电路。
16.如权利要求12所述的多路复用器,其特征在于,指定包缓冲器的操作包括:
在存储库中为第一包缓冲器保留一系列选择的邻接存储愉;及
规定第一包缓冲器的位移地址与数据尺寸值,在一系列邻接存储块内限定一有效数据部分,用于存贮接收的消息数据包;
并且其中的处理操作包括:
执行一系列包括修改第一包缓冲器的有效数据部分的尺寸在内的操作,对多个通信规约处理接收的消息数据包。
17.如权利要求16所述的多路复用器,其特征在于,处理步骤序列包括:
通过修改位移地址与数据尺寸值以扩充第一包缓冲器中有效数据部分的尺寸,并将规约头部预定到新扩充的有效数据部分来添加规约头部。
18.如权利要求16所述的多路复用器,其特征在于,处理步骤序列包括:
通过修改位移地址与数据尺寸值以缩小第一包缓冲器中有效数据部分的尺寸而删除规约头部。
19.如权利要求16所述的多路复用器,其特征在于,处理步骤序列包括:
修改数据尺寸值以扩充第一包缓冲器中有效数据部分的尺寸,并将规约尾部增补到新扩充的有效数据部分而添加规约尾部。
20.如权利要求16所述的多路复用器,其特征在于,处理步骤序列包括:
修改数据尺寸值以缩小第一包缓冲器中有效数据部分的尺寸而删除规约尾部。
21.如权利要求16所述的多路复用器,其特征在于,每个存储块的尺寸对应于选择的数据字数,每个数据字对应于控制器的逻辑电路按其操作的字节整数;
其中,指定第一包缓冲器的操作还包括:
设置一对应于第一包缓冲器中终端数据字里有效数据字节数的标志值。
22.如权利要求16所述的多路复用器,其特征在于,取消指定步骤包括:
使存储库中第一包缓冲器能再指定;及
将先前指定给第一包缓冲器的选择的一系列邻接存储块与存储库中邻近现成的存储块合并起来。
23.如权利要求12所述的多路复用器,其特征在于,指定包缓冲器的步骤包括:
在存储库中为第一包缓冲器选择不邻接的多个区域;
将每个不邻接的区域相互关联成联接表;
对于每个不邻接的区域,通过规定第一缓冲器的位移地址与数据尺寸值,在其中跟定一有效数据部分用于存贮一部分接收的消息数据包。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36074799A | 1999-07-26 | 1999-07-26 | |
US09/360,747 | 1999-07-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1291029A true CN1291029A (zh) | 2001-04-11 |
CN1205781C CN1205781C (zh) | 2005-06-08 |
Family
ID=23419260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00122206.6A Expired - Fee Related CN1205781C (zh) | 1999-07-26 | 2000-07-25 | 数字用户专用线访问多路复用器中有效的包缓冲器管理法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1073251A3 (zh) |
CN (1) | CN1205781C (zh) |
TW (1) | TW488134B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100399779C (zh) * | 2003-12-19 | 2008-07-02 | 联想(北京)有限公司 | 一种预测带宽的数据发送方法 |
CN1783846B (zh) * | 2004-11-30 | 2010-05-05 | 阿尔卡特公司 | 流感知以太网数字用户线接入多路复用器 |
CN102017547A (zh) * | 2008-04-30 | 2011-04-13 | 三星电子株式会社 | 用于用户设备中的数据尺寸适配的系统和方法 |
CN101854514B (zh) * | 2002-03-05 | 2013-01-23 | 蔚蓝公司 | 通过dsl连接提供的媒体的鉴权快速信道改变的方法和系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003028289A2 (de) * | 2001-09-26 | 2003-04-03 | Siemens Aktiengesellschaft | Verfahren zur übertragung von echtzeit-datentelegrammen in einem zyklischen kommunikationssystem |
US7180872B2 (en) | 2002-08-26 | 2007-02-20 | Alcatel | DSLAM-hosted information storage functionality |
US7570585B2 (en) | 2002-12-16 | 2009-08-04 | Alcatel Lucent | Facilitating DSLAM-hosted traffic management functionality |
CN100499566C (zh) * | 2004-06-25 | 2009-06-10 | 中兴通讯股份有限公司 | 采用指针技术存储数据包的方法 |
US7493426B2 (en) | 2005-01-31 | 2009-02-17 | International Business Machines Corporation | Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control |
US7136954B2 (en) | 2005-01-31 | 2006-11-14 | International Business Machines Corporation | Data communication method and apparatus utilizing credit-based data transfer protocol and credit loss detection mechanism |
TW201123939A (en) * | 2009-12-22 | 2011-07-01 | Decision Comp Internat Co Ltd | Distributed multi-points wireless capturing and concentrated decoding method. |
CN115190089B (zh) * | 2022-05-26 | 2024-03-22 | 中科驭数(北京)科技有限公司 | 一种报文存储方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887187A (en) * | 1993-10-20 | 1999-03-23 | Lsi Logic Corporation | Single chip network adapter apparatus |
US5920561A (en) * | 1996-03-07 | 1999-07-06 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US5905873A (en) * | 1997-01-16 | 1999-05-18 | Advanced Micro Devices, Inc. | System and method of routing communications data with multiple protocols using crossbar switches |
US6173333B1 (en) * | 1997-07-18 | 2001-01-09 | Interprophet Corporation | TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols |
-
2000
- 2000-07-20 EP EP00306184A patent/EP1073251A3/en not_active Withdrawn
- 2000-07-25 CN CN00122206.6A patent/CN1205781C/zh not_active Expired - Fee Related
- 2000-08-15 TW TW089114935A patent/TW488134B/zh not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854514B (zh) * | 2002-03-05 | 2013-01-23 | 蔚蓝公司 | 通过dsl连接提供的媒体的鉴权快速信道改变的方法和系统 |
CN101958909B (zh) * | 2002-03-05 | 2013-10-02 | 蔚蓝公司 | 通过dsl连接提供的媒体的鉴权快速信道改变的方法和系统 |
CN100399779C (zh) * | 2003-12-19 | 2008-07-02 | 联想(北京)有限公司 | 一种预测带宽的数据发送方法 |
CN1783846B (zh) * | 2004-11-30 | 2010-05-05 | 阿尔卡特公司 | 流感知以太网数字用户线接入多路复用器 |
CN102017547A (zh) * | 2008-04-30 | 2011-04-13 | 三星电子株式会社 | 用于用户设备中的数据尺寸适配的系统和方法 |
CN102017547B (zh) * | 2008-04-30 | 2014-06-25 | 三星电子株式会社 | 用于用户设备中的数据尺寸适配的系统和方法 |
US9288714B2 (en) | 2008-04-30 | 2016-03-15 | Samsung Electronics Co., Ltd | System and method for data size adaptation in a UE |
Also Published As
Publication number | Publication date |
---|---|
CN1205781C (zh) | 2005-06-08 |
EP1073251A3 (en) | 2003-09-10 |
EP1073251A2 (en) | 2001-01-31 |
TW488134B (en) | 2002-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1205781C (zh) | 数字用户专用线访问多路复用器中有效的包缓冲器管理法 | |
US8270401B1 (en) | Packet routing and switching device | |
AU648113B2 (en) | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes | |
US6839830B2 (en) | Logical pipeline for data communications system | |
CN101047714B (zh) | 一种处理网络数据的方法及系统 | |
CN1127833C (zh) | 分组处理设备、分组处理方法和分组交换 | |
US20100121995A1 (en) | System and method for supporting tcp out-of-order receive data using generic buffer | |
KR19980070065A (ko) | 통신 스택의 상대적으로 대규모인 데이터 객체의 처리를 관리하기 위한 시스템 및 그 방법 | |
CN1518694A (zh) | 网络应用设备的流调度和结构 | |
JPH02290346A (ja) | 2地点間の直列両方向通信経路における帯域幅配分方法および装置 | |
CN1520112A (zh) | 网络协议卸载引擎 | |
CN101002443A (zh) | 用于在集成电路中将数据分配给至少一个分组的方法 | |
US6973558B2 (en) | Netbufs: communication protocol packet buffering using paged memory management | |
US20020144065A1 (en) | Message-based memory system for DSP storage expansion | |
CN101494601B (zh) | 下行数据配置方法及装置 | |
CN100484136C (zh) | 网络协议引擎 | |
CN100477608C (zh) | 可增加内嵌式以太网络控制器送收效率的方法 | |
EP1087299A1 (en) | A can microcontroller that utilizes a dedicated RAM memory space to store message-object configuration information | |
CN1125548C (zh) | 依序转发包的输出排队方法 | |
CN101568048B (zh) | 数据传输方法及系统 | |
US20050157757A1 (en) | Process for storing transmission units and a network communications device | |
Hari | Techniques for bandwidth management in the internet | |
JPH02271755A (ja) | 通信バッファ管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050608 Termination date: 20160725 |
|
CF01 | Termination of patent right due to non-payment of annual fee |