动态最小-存储量交织的制作方法

文档序号:7540056阅读:264来源:国知局

专利名称::动态最小-存储量交织的制作方法
技术领域
:本发明一般地涉及用于数据通信系统的方法、系统及装置。
背景技术
:数字通信系统发送机使用通称为交织器的模块,相应的接收机使用通称为解交织器的模块。在数字用户线(DSL)系统中,这些模块用来增加系统的编码增益和改进系统的脉冲噪声校正能力。较之没有交织器/解交织器模块时可达到的系统数据速率,这些改进允许以更高的数据速率进行信息的可靠传输。在开始数据传输之前,交织器/解交织器配置参数已经被预先设置。因此,在进行参数调节时,调节交织器和解交织器模块没有处于运行状态。但是,已经提出,即使在交织器/解交织器模块处于运行状态时(即,在数据通过这些模块时),也应当允许对交织器/解交织器参数进行“动态”改变。虽然交织器/解交织器的设计对于本领域技术人员而言是公知的,但是以前的系统总是必须提前保留足够的存储量来容纳交织器/解交织器参数的最大可能值。即使在动态参数改变期间仍然恒定地将所使用的存储量维持在最小值的系统、装置、方法及技术将在本领域中展现明显进步。
发明内容本发明的实施例提供了用于进行交织/解交织的方法、技术和装置,其针对给定的设置集合允许使用最小存储,并且进一步,当深度增加或减小时,允许动态调节交织/解交织。控制器可以用来控制、指令等一个以上交织/解交织设备、模块、软件部件等。本发明实施例允许用于具有任何深度和周期的DSL交织/解交织的最小存储量实现,总是允许在发送机和接收机中使用最小存储量,而没有性能或基本三角结构的损失,即使交织器/解交织的参数动态变化。本发明的其它实施例利用相同的一般方法和/或结构,但是不要求利用最小存储来实现。在本发明中,一种新的单元调度过程确保可用最小存储量(或其它任何期望的存储使用)来实现正三角的映像,并且对于任何互质的深度和交织器周期有效。最小存储使用可以进一步由一种简单的离线方法来表征,该方法确定所述方法针对在根据本发明的交织器/解交织器的最小存储量(或其它)实现中的存储单元的每一个确定寻址次序。在所有时刻,都可以很容易地利用在绝对的最小存储量需求来适应在操作中交织器深度的时间变化。在下文的详细描述和相关附图中将提供本发明的进一步内容和优点。通过下文中结合附图的详细描述将易于理解本发明,其中相同的附图标记指代相同的结构元件,附图如下图1是按照G.997.1标准的示意性方框参考模型系统,G.997.1标准可适用于可使用本发明实施例的ADSL、VSDL或其它通信系统。图2A是示出一般的、示例性DSL部署的示意图。图2B是在诸如图2A所示一般的、示例性DSL部署的系统中可以实现本发明实施例的发送机的示意图。图2C是在诸如图2A所示一般地、示例性DSL部署的系统中可以实现本发明实施例的接收机的示意图。图3是三角DSL交织器/解交织器配对。图4是实现本发明一个以上实施例的DSL交织器/解交织器配置。图5是实现本发明一个以上实施例的DSL交织器/解交织器配置。图6是实现本发明一个以上实施例的广义三角DSL交织器/解交织器配置。图7是根据本发明一个以上实施例的用于调度交织器/解交织器系统中的存储单元的方法。图8A是根据本发明一个以上实施例的、示出当交织深度减少时动态调节交织/解交织的方法。图8B是根据本发明一个以上实施例的、示出当交织深度增加时动态调节交织/解交织的方法。图9是根据本发明一个以上实施例示出在交织/解交织的动态调节期间,生成所使用的新进度表和/或进度表集合的方法。图10是以存储单元为基础实现例如本发明实施例的最小存储交织系统等的示意性方框图。图11是根据本发明实施例的包括交织器/解交织器控制单元的控制器。图12是适合于实现本发明实施例的典型计算机系统或集合成电路系统的方框图。具体实施例方式下文将参照本发明的一个或多个实施例详细描述本发明,但是本发明并不限于这些实施例。更确切地说,这些详细描述仅仅意图作为示意性的。本领域的技术人员将易于认知,在此参照附图给出的详细描述用于示例性目的,而本发明超出了这些受限的实施例。根据本发明的发明包括装置、方法和计算机程序产品。可利用本发明实施例的通信系统可以包括ADSL线路、VDSL线路和/或其它任何本发明可应用的通信系统和/或线路,如本领域技术人员在阅读本公开内容之后所认知的。为了解释和示例起见,在此使用DSL系统,但是本发明并不限于此。在本发明一个实施例中,执行数据流的卷积交织的方法使用深度D和周期I。该方法开始于为R个存储单元中的每一个确定进度表,然后针对每个时间采样执行一连串操作。以R个存储单元的进度表为基础,从R个存储单元中选择第一存储单元。第一字节被读取并存储在第一存储单元中,并稍后被写入交织器输出端。在交织器的输入端接收第二字节,并且稍后将其写入第一存储单元。可以通过构造具有多行的数组来为R个存储单元中的每一个生成进度表,其中所述数组的每行都具有定义了周期索引P的第一元素和定义了字节索引B的第二元素。可以利用P和B的初始化值生成数组的第一行,然后再构造另外的一行或多行,来构造该数组。可以使用D、I、P、B和位置索引L以多种方式来完成所述构造。可以以不同的方式完成从R个存储单元中对第一存储单元的选择,例如,通过检查R个存储单元的进度表来识别其进度表包括当前时间采样的存储单元,或者在另一个例子中,通过读取行对应于周期索引,且列对应于字节索引的进度表表格(scheduletable),所述表格的内容由与时间采样相对应的指向用于周期索引和字节索引的存储单元的指针组成。设法使待使用的最小存储量一种动态地改变数据流卷积交织深度的方法首先利用深度D和交织周期I确定针对R个存储单元的第一进度表集合,其中R基于D和I。利用第一进度表集合(例如,“进度表A”)在R个存储单元上执行读取和写入操作。利用新的深度D’和基于D’和I的新的R’来生成第二进度表集合(例如,“进度表B”)。然后该方法切换到利用第二进度表集合在R’个存储单元上执行读取和写入操作。当D’大于D时,切换到利用第二进度表集合在R’个存储单元上执行读取和写入操作允许从第一进度表集合立即转移到第二进度表集合。当D’小于D时,则切换到利用第二进度表集合在R’个存储单元上执行读取和写入操作,利用没有执行任何交织器写入操作的转换时期,来从第一进度表集合转移到第二进度表集合。在使用对应于深度D’的交织器输出字节延迟的转换时期结束之前,继续交织器读取操作。最后,在利用对应于深度D’的交织器输出字节延迟的转换时期结束之后,继续交织器读取操作。如同上述交织/解交织方法那样,可以以各种方式构造进度表。再次,期望的最小存储实现并且最小存储能力交织器/解交织器利用周期I和第一深度D。交织器/解交织器具有被配置为提供用于交织/解交织的连续数据字节的输入端,和被配置为在交织/解交织之后传递连续数据字节的输出端。交织器/解交织器也使用R个存储单元,每个存储单元都连接到所述输入端和所述输出端之间。控制器控制存储单元,以便在给定的时间采样处,第一数据字节从第一存储单元写入所述输出端,并且第二数据字节从所述输入端读入第二存储单元。此外,控制器的操作基于为R个存储单元中的每一个确定的进度表。交织器/解交织器可以被配置为以符合上述方法的方式操作,包括使用R个存储单元的最小存储实现,并且如以下更详细的描述,利用本发明一个以上实施例的一个以上交织器和/或解交织器的实现可以是通信设备的一部分(例如,发送机、接收机、调制解调器、收发机、控制器、DSL优化器、DSLAM、LT设备、RT设备、DSL调制解调器等)。此类实现可以由本地设备(再次,例如,DSLAM、LT设备、调制解调器等)中和/或远程设备中的交织/解交织控制单元来控制和/或辅助,所述远程设备例如控制器(例如,在DSL优化器、动态频谱管理器或频谱管理中心中,或作为DSL优化器、动态频谱管理器或频谱管理中心)。本公开内容和权利要求中的术语“交织器/解交织器”等指的是交织器、或解交织器、或作为协同设备配对的交织器和解交织器,如本领域技术人员所认知的。用于交织/解交织的控制单元可位于任何位置,在一些是实施例中具有交织/解交织控制单元的控制器处于DSLCO中,而在其它情况中它们可被位于CO外部的第三方操作。在阅览本说明书之后,本领域技术人员将清楚与本发明实施例有关的可用于交织/解交织的控制器和/或控制单元的结构、程序设计和其它具体特征。诸如DSL优化器、动态频谱管理中心(DSMCenter)、“智能”调制解调器和/或计算机系统的控制器可以用于采集和分析那些关于本发明各种实施例而描述的运行数据。控制器和/或其它部件可以是用计算机实现的设备或设备组合。在一些实施例中,控制器位于远离调制解调器或其他连接到通信线路的通信设备的位置。在其它情况下,控制器可以与一个或两个“本地设备”(即直接连接到通信线路或连接到所述本地设备的一部分的设备)并列布置作为直接连接到调制解调器、DSLAM或其它通信系统设备的设备,从而创建“智能”调制解调器。短语“连接于”和“连接到”等在此用于描述两个元件和/或部件之间的连接关系,意在表示直接或间接连接在一起,例如通过一个以上合适的插入元件或通过无线连接。以下一些本发明实施例的例子将利用DSL系统作为示例性通信系统。在这些DSL系统中,特定的协定、规则、协议等可以用于描述该示例性DSL系统的运行以及可以从客户(也称为“使用者”)和/或系统上的设备得到的信息和/或数据。但是,如本领域技术人员将认知到的,本发明实施例可以应用于各种通信系统,并且本发明也不限于任何特定的系统。各种网络管理元件用于管理DSL物理层资源,此处,元件指的是在DSL调制解调器对中的两端或者一端中的参数或功能。网络管理框架包括一个以上被管理节点,每个节点均包含代理。被管理的节点可为路由器、网桥、交换机、调制解调器等等。至少一个经常称为管理器的NMS(网络管理系统)监视和控制被管理的节点,并通常基于普通PC或其它计算机。NMS在某些场合下还称作元件管理系统(EMS)。管理器和代理用网络管理协议来交换管理信息和数据。管理信息的单位是对象。相关对象的集合被定义为管理信息库(MIB)。图1示出了根据G.997.1标准(G.ploam)的参考模型系统,该参考模型系统可应用于本领域技术人员众所周知的各种ADSL和VDSL系统,并且可以在该参考模型系统中实现本发明的实施例。这种模型应用于符合各种标准、可包括也可不包括分路器的ADSL和VDSL系统,所述标准例如ADSL1(G.992.1)、ADSL-Lite(G.992.2)、ADSL2(G.992.3)、ADSL2-Lite(G.992.4)、ADSL2+(G.992.5)、VDSL1(G993.1)和其它正在形成VDSL标准的G.993.X,以及G.991.1和G.991.2SHDSL标准,所有这些标准可以都具有或者不具有捆绑(bonding)。这些标准及其变体,以及它们连同G997.1标准的应用对于本领域技术人员是众所周知的。G.997.1标准基于由G.997.1限定的清晰嵌入式运行信道(EOC)并使用由G.99x标准限定的指示符比特和EOC消息,来为ADSL和VDSL传输系统指定物理层管理。此外,G.997.1为配置、故障和性能管理指定网络管理元件内容。在执行这些功能时,系统采用在访问节点(AN)处可用并且可以从AN收集的多个运行数据。DSL论坛的TR69报告也列出了MIB和访问MIB的方法。在图1中,客户的终端设备110连接到本地网络112,并进一步连接到网络终结单元(NT)120。在ADSL系统的情况下,NT120包括ATU-R122(例如,调制解调器,在某些情况下也称为收发器,其由ADSL标准之一所定义)或者任何其它合适的网络终结调制解调器、收发器或者其它通信单元。VDSL系统中的远端设备可以是VTU-R。正如本领域技术人员所认知的和这里所描述的那样,每个调制解调器都与它所连接的通信系统交互,并且生成运行数据作为该调制解调器在通信系统中的运行的结果。NT120还包括管理实体(ME)124。ME124可以是任何合适的硬件设备,例如微处理器、微控制器或者固件或硬件形式的电路状态机,这些设备能够根据任何可应用的标准和/或其它规范的需要完成任务。ME124采集性能数据,并将性能数据存储在其MIB中,所述MIB是由每个ME维护的信息数据库,并且可以通过诸如SNMP(简单网络管理协议)的网络管理协议或者TL1命令来访问,所述SNMP是一种管理协议,用来从网络设备收集信息以提供给管理员控制台/程序,而TL1是一种已经建立很久的命令语言,用来在电信网络元件之间规划响应和命令。系统中的每个ATU-R都连接到位于CO或其它上游和/或中心位置中的ATU-C。在VDSL系统中,系统中的每个VTU-R都连接到位于CO或其它上游和/或中心位置(例如,诸如ONU/LT、DSLAM、RT等的任何线路终结设备)中的VTU-C。在图1中,ATU-C142位于CO146中的接入节点(AN)140处。AN140可以是DSL系统部件,例如DSLAM、ONU/LT、RT等,如同本领域技术人员所理解的那样。ME144类似地维护一关于ATU-C142的性能数据的MIB。AN140可以连接到宽带网络170或者其它网络,如同本领域技术人员所理解的那样。ATU-R122和ATU-C142由环路130连接在一起,在ADSL的情况下,该环路130通常是还承载着其它通信服务的电话双绞线。在被捆绑系统中,例如在出于所有目的通过引用合并于此的美国序列No.10/808,771中描述的系统,可以将多条环路“捆绑”起来一起为单个使用者运行,从而向该使用者提供额外带宽。如本领域技术人员将认知的,被捆绑线路集合还提供机会来改进对被捆绑线路之间引入的串音进行的消除。以下将更详细地解释该特性的使用和关于本发明的线路发送机的共同优化。图1所示接口中的一些可用来确定和采集运行和/或性能数据。就图1中的接口不同于另一个ADSL和/或VDSL系统接口方案而言,系统是众所周知的,并且该差别对于本领域技术人言而言是已知并显而易见的。Q接口155在运营商的NMS150和AN140中的ME144之间提供接口。在G.997.1标准中指定的所有参数均适用于Q接口155。ME144所支持的近端参数从ATU-C142得到,而来自ATU-R122的远端参数可从U接口上的两个接口中的任意一个得到。利用嵌入信道132发送且在PMD层处提供的指示符比特和EOC消息,可以用来在ME144中生成所需要的ATU-R122参数。作为替代地,OAM(运行、经营(Administration)和管理(Management))信道以及合适的协议可以用来在ME144请求的时候从ATU-R122中取回参数。类似的,来自ATU-C142的远端参数可以由U接口上的两个接口中的任意一个获得。在PMD层处提供的指示符比特和EOC消息,可以用来在NT120的ME122中生成所需要的ATU-C142参数。作为替代地,OAM信道和合适的协议可以用来在ME124请求的时候从ATU-C142中取回参数。在U接口(本质上是环路130)处,有两个管理接口,一个位于ATU-C142(U-C接口157)处,另一个位于ATU-R122(U-R接口158)处。接口157为ATU-R122提供ATU-C近端参数,以通过U接口130取回。类似地,接口158为ATU-C142提供ATU-R近端参数,以通过U接口130取回。可适用的参数可以取决于正在使用的收发机标准(例如,G.992.1或G.992.2)。G.997.1标准指定了通过U接口的可选OAM通信信道。如果实现该信道,ATU-C和ATU-R配对可以使用该信道来传递物理层OAM消息。于是,这种系统的收发机122、142可以共享在其各自的MIB中维护的各种运行数据和性能数据。可以在1998年3月的ADSL论坛中,从标题为“ADSLNetworkElementManagement(ADSL网络元件管理)”的DSL论坛技术报告TR-005中,找到关于ADSLNMS的更多信息。还有2004年5月的标题为“CPEWANManagementProtocol(CPEWAN管理协议)”的DSL论坛技术报告TR-069。最后,2004年5月的ADSL论坛中,标题为“LAN-SideDSLCPEConfigurationSpecification(LAN侧DSLCPE配置规范)”的DSL论坛技术报告TR-064。这些文献陈述了CPE侧管理的不同情况,其中的信息对于本领域技术人员是众所周知的。关于VDSL的更多信息可以在ITU标准G.993.1(有时称为“VDSL1”)和正在形成的ITU标准G993.2(有时称为“VDSL2”)以及正在编撰中的若干DSL论坛工作文本中找到,所有这些都为本领域技术人员所公知。例如,在以下文献中可以得到更多的信息标题为“VDSLNetworkElementManagement(VDSL网络单元管理)”的DSL论坛技术报告TR-057(以前是WT-068v5)(2003年2月)、标题为“FS-VDSLEMStoNMSInterfaceFunctionalRequirements(FS-VDSLEMS到NMS接口功能需求)”的技术报告TR-065(2004年3月)、针对VDSL1和VDSL2MIB单元的ITU标准G997.1的正在形成的版本,或ATIS北美草案动态频谱管理报告NIPP-NAI-2005-031。在ADSL中,较之在VDSL中,共享相同捆扎(binder)的线路在同一线路卡上终结较为少见。但是,以下对xDSL系统的讨论将扩展到ADSL,原因是同捆扎线路的共同终结也可行(特别是在既处理ADSL又处理VDSL的更新的DSLAM中)。在DSL设备的典型布局中,多个收发器配对正在运行并且/或者可用,而每条用户环路的一部分都与一多对捆扎(或者集束(bundle))中其它使用者的环路搭配。在机架后面,非常靠近客户前端设备(CPE),环路采用引入线(dropline)的形式并离开集束。因此,用户环路经过两种不同环境。环路的一部分可位于捆扎内部,在该处,环路有时候免于外部电磁干扰,但是却受到串音干扰。在机架后面,当对于引入线的大部分来说该配对远离其它配对时,引入线通常不受串音影响;但是由于引入线未被屏蔽,因此传输也可能被电子干扰明显地削弱。许多引入线具有2-8个双绞线,而在对这些线路的归属或者捆绑提供多项服务(单个服务的复用和解复用)的情况下,在引入线节段中的这些线路之间会发生额外的显著串音。图2A示出了一种普通的示例性DSL部署场景。总计(L+M)个使用者的所有用户环路291、292经过至少一个公共的捆扎。每个使用者经专用线路连接到中心局(CO)210、220。不过,每条用户环路可能经过不同环境以及介质。在图2A中,L个客户或使用者291使用光纤213和铜双绞线217的组合连接到CO210,这种情况通常称为光纤到室(FibertotheCabinet,FTTCab)或光纤到楼群(FibertotheCurb)。来自CO210中的收发机211的信号被CO210中的光线路终端212和光网络单元(ONU)218中的光网络终端215转换。ONU218中的调制解调器216用作ONU218和使用者291之间信号的收发机。可以以协同的方式,例如矢量化,操作共同终止在诸如CO210、218和ONU220(和其它)的位置处的使用者线路。在矢量化通信系统(例如矢量化ADSL和/或VDSL系统)中,可以获得信号协同和处理。当利用公共的时钟和处理器共同生成来自DSLAM或LT的多条线路的发送信号时,发生下游矢量化。在具有这种公共时钟的VDSL系统中,针对每个音调,单独出现使用者之间的串音。因此,针对许多用户的下游音调中的每一个可以由公共的矢量化发射机独立地生成。类似地,当公共时钟和处理器用于共同接收多条线路的信号时,上游矢量化出现。在具有这种公共时钟的VDSL系统中,针对每个音调,单独出现使用者之间的串音。因此,针对多个用户的上游音调中的每一个可以由公共的矢量化接收机独立地处理。其余的M个使用者292的环路277只为铜双绞线,这种场景称为光纤到交换台(FTTEx)。只要可能并且经济上可行,FTTCab都优于FTTEx,因为它减小用户环路的铜质部分的长度,并因此增大了可实现的速率。此外,FTTCab被期待成为将来日益普及的布局。这种类型的布局可导致显著的串音干扰,并意味着,不同使用者的线路由于其工作于特定环境而具有不同的数据承载能力和性能能力。这种布局可使得,光纤馈送“室”线路和交换线路可以混合在同一捆扎中。由终结于不同地点的线路引起的串音噪声通常不能被众所周知的判决反馈机制直接消除,而呈现出可以被在此描述的发明完全或部分消除的时变空间噪声。如图2A可见,从CO220至使用者292的线路共享捆扎222,该捆扎不被CO210和使用者291之间的线路使用。此外,另一捆扎240对于通向/来自CO210和CO220以及它们各自的用户291、292的所有线路而言是公共的。在图2A中,示出了远端串音(FEXT)282和近端串音(NEXT)281,其影响共同位于CO220处的至少两条线路227。如本领域技术人员将认知到的,这些文献所描述的运行数据和/或参数中的至少一部分可以用于本发明实施例。此外,至少一些系统描述同样可用于本发明实施例。可以在此找到来自DSLNMS的可用的各种类型的运行数据和/或信息;其它为本领域技术人员所公知。图2B图示了DSL发送机230(例如,在DSLAM或其它上游设备中找到的类型)的场合下本发明的一个实施例。U条线路的有效载荷数据231被提供给成帧器232,可以包括用于U条线路的加扰和FEC编码233,然后是交织234和编码235,以及其它处理236(例如,某种预编码),如本领域技术人员将认知的。数据可以被发送到此处描述的实现本发明实施例的交织器234。如本领与技术人员将认知的,来自单个使用者的上游发送机可以实现该相同的一般方案,除了只有单条DSL线路或被捆绑线路集合用来向上游端设备发送数据。可以在这样的CPE设备中实现包括交织的相同处理。在在238处被传输之前,来自处理236的数据随之被发送到快速傅立叶反变换(IFFT)单元237。如本领域技术人员将认知的,其他发送机配置可以用来实现根据本发明的交织。控制器239可以以符合本发明的方式对交织器234及其操作进行控制、更新等。图2C中示出了类似地实现本发明一个以上实施例的接收机。接收机240以一般与图2B中的发送机230互补的方式运行。图2C的接收机240是单使用者接收机,本领域技术人员很容易认知到多使用者接收机(例如DSLAM或其它上游端设备)也可以以多线路设置实现本发明。所接收的数据241被发送到FFT242,并且在243处被处理(例如,GDFE功能等)。其后,数据被解码244,并被发送到解交织器245。在245处解交织之后,在生成有效载荷数据248之前,数据可以被传递到FEC解码和解扰246和解帧247。控制器249可以以符合本发明的方式对解交织器235及其运行进行控制、更新等。电子领域中的新发展已经使高速数字数据通信在很多类型的应用和用途中盛行。数字通信技术现在用于各种信号的通信,包括DSL系统。以这些方式实施的通信的质量取决于所接收的信号与所发送的信号的匹配精度。一些类型的通信,例如音频通信,可以经受程度相对较大的比特丢失。但是,数字数据通信经常要求精确的保真度以便处于全部有用的状态。相应地,已经开发了各种用于对被传递的数字比特流中的误码进行检测和校正的技术。毫无疑问,误码校正技术已经有效地使数字通信信号能够在诸如现有的电话线路的可用通信设施上传送,尽管在这些设施上进行的高频通信中存在固有的误码率。一种重要的误码检测和误码校正技术称作里德-所罗门(RS)编码,这种编码为本领域技术人员众所周知。RS编码用来生成已编码消息,其编码方式使得在对已编码消息进行解码后就可以确定所接收的消息中的任何误码的数量和位置。RS解码在检测和校正被传递比特流中的随机误码时尤其有益。但是,可以由RS技术校正的误码的数量限制阻碍了对一种在本领域中称作“突发误码”或脉冲噪声的误码的校正。卷积交织是用来克服RS编码的所述限制的传统技术。从一般意义上说,卷积交织通过根据传统先进先出序列的已发送比特流对已发送比特流的时间序列进行加扰来运行。在接收端,已接收的比特流被解扰或被重新排序,以恢复所述已发送的消息或数据。由于所述已发送数据的加扰后序列,在通信设施上的加扰后比特流中出现的误码在时间上被分散。这减小了在实际发送的消息中的误码密度,允许通过随后的RS(或其它)解码来校正误码。通常,卷积交织在序列中的相邻码字之间引入变化的延迟,使得所发送的码字的时间序列不同于消息序列;然后在所接收的相邻码字之间,引入逆向的变化的延迟以恢复该顺序。本发明实施例提供了用于DSL交织中任何深度和周期的最小存储量实现,即使交织器参数动态变化,这些实施例也总是允许在发送机和接收机中使用最小存储量,而没有性能损失或基本三角结构损失。本发明其它实施例利用相同的一般方法和/或结构,但是不要求利用最小存储量来实现。在本发明中,一种新的单元调度过程确保使用最小存储量来实现具有正三角的映像,并且该过程以任何互质(co-prime)的深度和交织器周期工作。本发明实施例的以上描述中,大多数描述是按照交织器给出的。但是,如本领域技术人员所认知的,对交织器的描述足够用于理解解交织器的相应功能。此外,以下给出通信的基本轮廓。最小存储量使用的特征进一步在于简单的离线方法,该方法为交织器的最小存储量实现中的各个存储单元确定寻址次序。早先系统的时变交织器必须预先分配足够的存储来为在某些时间点需要的最坏情况(最大)存储量作准备,与之不同的是,很容易利用在所有时间点的绝对最小存储需求来适应运行中交织器深度随时间的变化。如以上提到的,DSL交织一般对已发送的符号进行重新排序,所述已发送符号从所有DSL交织器看来是字节。如在此所使用的,术语“字节”指的是在交织和/或解交织中所使用的具有任意数量比特的任何方便的数据包和/或数据包大小。解交织器将所述重新排序翻转到字节的初始次序。交织器通常由深度D和周期I表征。交织器的周期经常是码字长度或某些其它方便的包的大小(周期经常被不正确地称为“码字长度”,但是通常周期不必然具有与码字长度的关系,正如卷积码可以没有有限的码字长度)。交织器的周期通常被定义为重新排序算法或过程自我重复进行的时间段(以字节为间隔)。深度是在重新排序之后两个相邻输入符号之间的最小间距。当满足以下条件时,利用RS编码和交织的系统可以校正突发误码误码突发长度必须小于交织器深度(D)乘以RS码的可校正字节数;并且突发误码之间的间隔必须大于交织器深度乘以交织器周期的值(D*I)。DSL前向纠错(FEC)码的能力被这种情况下的深度放大,本质上对于使系统抵抗脉冲噪声的能力更强的大深度。所有的DSL使用特殊和非常实用的交织形式,在ADSL中经常被称为“卷积交织器”,但是事实上受到与码字长度相等的周期的约束。因此,这是更广义的卷积交织的一种特例,并且可以由类似于VDSL的“三角交织器”的结构来实现。在此使用的符号可以不是传统的,并且可以不同于交织领域中的教科书、研究论文和其它著作中经常使用的符号,特别是关于公知的Forney结果。本质区别在于可以将本发明实施例描述为按照I×I生成矩阵G(Dsym)的DSL交织器。这里特别的符号区别在于基于符号(字节)时钟来指示延迟元件(DSL中的寄存器或RAM的字节),并且延迟元件被指示为Dsym,表示一个字节周期的延迟。之前,交织器已经使用基于交织器周期表示该延迟的变量,称作Dperiod,其中Dperiod=D′sym,一个周期的延迟等于I个延迟符号周期。在该解决途径中,将基准时间0作为第一交织器操作周期的第一字节时间,或者作为在后续操作中交织器周期的其他任何合适的开始。以在此使用的符号表示的交织器的输入/输出关系是等式(1)输入和输出中的项是“D”变换,其针对输入矢量u(Dsym)中或在输出矢量u′(Dsym)中的I个位置的每一个,符号性地形成总和i=0,...,I-1,其中k为符号时间索引。加法(在这种情况下从未被执行,纯粹是符号性的)可以被认为是mod-256的,并且Dsym的幂通过添加指数来相乘。在生成矩阵G(Dsym)中,各行和各列具有一个并且只有一个为1或为Dsymk的非零元素。这样的矩阵对输入惟一地进行排序并且是可逆的。逆操作表征解交织器。在DSL标准中描述了三角交织器,周期(i=0,...,I-1)的字节i被延迟(D-1)·i个额外的字节周期。然后解交织器延迟任何剩余量,从而使针对所有字节的延迟总和等于(D-1)·(I-1)个字节周期。很明显存储位置的最小数量必须是完整的(D-1)·(I-1)个字节系统延迟。该存储器的一半位于发送机中,另一半位于接收机中。DSL的三角交织器都具有对角形式(时间0是该形式的矢量中最左边的项)等式(2)本公开内容的符号中的发生器示出,相对于周期开始的i个字节位置延迟,加上额外的i·(D-1)个字节的进一步延迟,生成对于周期开始的总共i·D个字节周期的总时间延迟。在三角交织器的书写表达中,没有对D的限制。一些早先的系统只有当深度被限制为D=I+1时,通常采用等腰三角实现。但是,如在此所解释的,本发明示例出对于等边(perfectisosceles)实现,该限制是没有必要的。有一个限制,即针对任何交织器D和I为互质数。ADSL通过在发送机处插入(不被发送的)空字节来将I增加到它的下一个与D互质的最大值,以此来处理具有公共因数来处理任何D和I。接收机可以再次将相应的空字节插入适当的位置,而不需要在信道上发送这些字节,并且因此没有带宽损失。VDSL1(G993.1)只允许交织深度为满足D=M·I+1的正整数,并且强迫D、I互质(本公开内容初始设置M=1,稍后返回更大的值)。VDSL2(G.993.2)允许任何使D和I互质的D和I选择。图3示例了深度D=I+1=6的基本三角交织器300A和解交织器300B。每相隔一个5字节的周期,输入换向器302将输入字节连续地施加于交织器300A的5条线路310。每个周期中的第一字节通过输出换向器322立即传递到信道320,第二字节在进入信道之前被延迟元件315相对于其进入时间延迟(在这种情况下为一个周期的)5个字节(在该第二字节出现的周期开始之后6个字节周期),以此类推。寄存器或存储单元的三角阵列是显而易见的,因此相应的用于将字节恢复到它们初始次序的解交织器结构300B也是显而易见的。整个延迟是DELAY=(D-1)·(I-1)=20字节周期,并且在交织器和解交织器的每一个中,存储需求为10个单元。这种结构以前被称为“三角形的”。在图3的结构中,每个延迟元件315改为受交织器周期的时钟控制,从而使得延迟可以示出为单周期延迟,而不是将其描绘成I=5个字节的延迟组。Forney绕开了这一将I个字节延迟重新标注为单个符号延迟的事件,但是这种作为替代的命名法导致复杂的作为周期-级别-定时而不是符号-级别-定时的结果的模运算系统。本发明所使用的作为替代的符号提供了对以前非等腰近似三角实现的更好理解。图4示例了深度小于I+1,并且实际上等于2的情况,因此周期I=5,并且深度D=2。在图4中,交织器400A的输出换向器422并不是顺序地从一条线路移动到下一条。作为替换地,使用时隙互换来在431处,从线路0移动到线路3,在432处,从线路3移动到线路1,在433处,从线路1移动到线路4,在434处,从线路4移动到线路2,并且最后从线路2移动到线路0,然后再次开始该序列之前。各延迟单元415是DsymD-1而不是DsymI。解交织器400B以相似的方式运行,如本领域技术人员将认知的。相似地,图5图示了周期I=5和深度D=3。图5的交织器500A的输入换向器522所遵循的顺序为在531处从线路0到线路2,在532处从线路2到线路4,在533处从线路4到线路1,在535处从线路3到线路0,然后重复。再次,如本领域技术人员所认知的,解交织器500B以相似的方式运行。图3、4和5之间的区别不大,并且与换向器、添加到信道输入端和输出端(即分别为交织器的输出端和解交织器的输入端)的新时隙互换的位置和转换有关。本发明实施例中的交织器输出端和解交织器输入端选择性地随时间移动一条以上的线路以接收交织器的下一个输出和向解交织器输入值,而不是由交织器输出端和解交织器输入端统一地切换到连续的线路。根据本发明,如果D和I互质,则可以确定任何情况下的次序,如图4和图5所图示的例子。周期中的时间k处的交织器输入对应于i(k)或只是i的交织器输出位置。如果已经在线路i中的数据正在离开,交织器可以只写入线路i(以避免丢失所存储的值)。将输出位置视为“读取线路”索引,则相对于交织器位置的开始,线路i中的整个延迟(D-1)·i+i=D·i,如同在针对该位置的等式(2)的符号生成矩阵中。该整个延迟,模I必须等于输入位置k,因为在确切地相对于交织器周期开始的那么多个延迟之后,数据离开线路。因此,k=(i·D)I等式(3)可以按照针对每个周期时间k的i(k)值来解该等式。如果针对时间k=1解该等式得到解i(1)=Δ,则针对其它任何时间,该解为i(k)=(k·Δ)I等式(4)通过将该等式代入初始等式并观察它的确能够解针对所有i、k的情况,从而证明该解。针对D=2的解为Δ=3,因此如在图4中,交织器输出端422上的连续换向器位置为0、3、1、4、2。针对D=3的解为Δ=2,因此如在图5中,次序为0、2、4、1、3。只要D和I互质,可以达到完全深度,并且任意两个初始相邻的字节可以在信道中被至少D个字节分离。当D和I不互质时,在每个周期,一个以上空字节被加入到信息块以增大周期,直到周期是与深度互质的最小值为止。这些字节没有被发送,并且接收机知道插入自身的空字节的时间,在最后解码时,这些空字节将被忽略。只要D≤I+1,该程序就运行。对于较大的深度,可以使用广义三角交织器,如以下将更详细的描述。因此,对于ADSL和任何D≤I+1的深度,如果利用为每对周期和深度唯一确定的以上切换次序添加额外的时隙互换,就都可以使用该三角结构。对于ADSL,总有I=N。由于在ADSL中通常使用的深度最大仅仅到64,而N经常超过100,因此在标准化ADSL中不总是能符合互质条件,在该标准化ADSL中使用空字节来将周期增大到下一个与深度互质的最小值(在ADSL中一个空字节就足够)。但是,如果D≤I+1,一些以前的系统中的RAM不是可能的最小值。但是,如果由于考虑了D=I+1的情况,存在足够的存储量,则可能不用关注存储量。在三角结构中,当D<I+1时,则以下更详细描述的本发明实施例可以很容易将RAM进一步减小到理论最小值本质上,实现时隙互换的等腰三角用来得到被设计为具有最小存储单元数的不同结构。再次将广义三角交织器描述为周期中的字节i(i=0,...,I-1)延迟额外的(D-1)·i个字节周期。解交织器延迟任何剩余量以使针对所有字节的整个延迟为(D-1)(I-1)个字节周期。广义三角交织器允许深度超过交织器的周期,但是在其他方面严格遵循同一三角规则。图6中示出了交织器的一般形式,其与图3-5的交织器类似,区别在于图6针对特例D=M*I+1。因此,如本领域技术人员将认知的,该配置及其操作相应地类似于其他系统的配置及操作。再次将时隙互换加入广义三角交织器允许使用任何互质的深度和周期。照常出现深度减去1个字节的延迟。这些在VDSL1中经常被表述为等于长度为M字节的先进先出(FIFO)寄存器。利用这样的解释,每条线路上的延迟仍然为D-1个字节周期,或者相对于与字节相对应的周期开始处为D个字节周期。更大的M值意味着更大的深度。再次,当深度D和周期I互质时,对于任意M,可以在加有之前针对M=1所介绍的时隙互换的三角结构中,实现任何小于M·I+1的深度。但是,在利用以下针对换向器位置的同一公式的更一般的情况下,延迟分组现在是M个字节(而不是一个字节)的倍数。i(k)=(k·Δ)I等式(4)Δ再次为1=(k·Δ)I的解。D=M·I+1的最大深度值所需的RAM再次为如果维持同一三角数组来实现D<M·I+1的深度值,三角结构(具有时隙互换)中的存储量需求将最小。当预期的D和I不互质时,再次可以使用空字节。另外,这种相同的结构可用在ADSL中以便实现通过选择M=2或一些更大的值而超过码字长度的特殊深度。用于ADSL的这样大的深度可能超过ADSL中可用的RAM。虽然诸如上述的结构已经出现在一些早先的系统中,这些以前的系统未能启示或建议接下来描述的本发明的基于单元的最小存储发明。本发明实施例针对所有D≤M·I+1,M≥1的情况,确保最小的RAM需求表1和表2中的例子分别针对针对图4和图5的配置图示了可以重新使用RAM单元的最小数量R的情况。针对D=2的情况,用于交织的存储单元的理论最小数量R为2,图4中的时隙互换结构使用10个存储单元。表1按照线路号和时间,示例了用于图4的交织器400A的字节存储。在表1中,在三个连续的交织周期上,在第一周期时隙不使用’对时间进行索引,在第二周期的槽使用单个’对时间进行索引,在所示出的第三周期中的两个字节间隔中使用两个’对时间进行索引。字节根据其出现的周期被索引为B0、B1、B2、B3或B4,并且也使用单个’或两个’。线路0的字节(B0、B0’、B0”等)总是在时间0立即通过,因此不使用任何存储量(并且从而线路0的字节不会出现在表1或表2中)。连字符指示相当于交织器的初始化的“空闲”或变空存储。在第一交织器周期的字节时间3之后,交织器处于稳定状态,并且很清楚无论任何时间存储从不多于2个字节(假定交织器在每个字节时隙将字节写入各存储位置之前,先读取各存储位置)。如表1所示,两个存储单元可以用于该三角/卷积交织器。交织器周期的时间1中的字节(称为具有不同’的B1)的一半位于单元1,这些字节的另一半位于单元2。这对于所有字节都成立,并且通常,在一周期内任何符号位置中的字节的1/D都位于任何特定的单元。一旦达到稳定状态,所有的单元总是被填充的。解交织器也只需要2个存储单元,并且可以由在任何情况下都使得Bi→B(I-1-i)等式(5)来描述(因此B4立即通过,然后字节B3、B2、B1和B0经历线性增加的延迟)。表2示出了针对D=3的类似情况。在第二周期的时间1之后,交织器处于稳定状态,并且使用最少的(按照以上所述,所述最小被定义为个单元)4个RAM单元的全部。每个单元通过在线路1、然后线路3、然后线路4、然后线路2上的使用前进,然后循环再次回到线路1。该过程是有规则的,并且在彼此偏移时间为1个周期的不同存储单元上重复。通过认识到在最小RAM的情况下,必须向在任何周期的任何字节周期上被读取的同一单元写入接下来可用的输入字节,这样就可以简单地实现为使用最小数量存储单元的进度表。对于特定指定深度和周期,可以在软件或硬件中离线地创建个虚拟RAM单元组,每个虚拟RAM单元组的时间被设置为正好在k(D-1)个字节周期之后“报警”,其中k是交织器-输入字节-时钟索引。在稳定状态中的每个后续时间周期处,一个并且只有一个单元的定时器将报警,并且该单元应当首先被读取然后被写入,并且定时器复位到值k(D-1)。针对每个可以被存储并且在稍后的操作中使用的存储单元将出现“哪个比特什么时候”进度表。表3中提供了针对表2中的例子的次序。在标记存储单元的种可能的方式中,该次序是唯一的。在上述的最小存储量实现中,对存储连接中三角结构的关系仍然是固有的,但是它在时间上进化,以从本质上防止空闲存储单元。该结构不再是三角的,但是源自知道三角结构中使用存储器的过程。在本发明一个实施例中,针对交织器的每个单元创建进度表,从而产生总共个单元。在交织器开始利用针对深度D和I配置的值进行操作之前,可以根据需要进行这样的确定。单元的进度表可以被描述为具有两列和多行的数组。第一列指示周期,并且第二列指示在由第一列所指示的周期中的字节。该数组的每行定义单元被读取(即变空)的时间,读取之后立即被写入(即,变满)。在稳定状态操作期间,针对交织器的每个输入符号,正好一个单元变空。利用表3的例子,可以将针对单元1的进度表表示为等式(6)该进度表在第5行之后重复;即,第5至第8行与第1至第4行相同,只是周期(第1列)偏移4。因此,可以利用有限行来表示该进度表数组。再次利用表3,单元2的进度表可以为等式(7)单元2的进度表与单元1的进度表有关,区别在于单元2的进度表没有单元1进度表的前3行,并且是3个周期偏移(第1列)而不是单元1进度表周期。这样的单元进度表相似性不总是存在,但是如果存在,可以利用该相似性来减小针对单元进度表的存储需求。针对单元3和单元4的进度表可以被表示为等式(8)等式(9)交织器控制器模块,或一软件程序访问单元进度表,并控制在各时间点使用的进度表以从交织器读取字节,并立即向该交织器写入字节。对于以上给出的单元进度表,控制器可以在存储单元中进行如表4所示的读取/写入操作。(注意各周期的字节0不需要存储。)对于指定的单元,可以利用接下来示出的伪代码来获得进度表,以下更详细地描述。D=4;%交织器深度I=15;%交织器周期p_start=0;%开始周期b_start=1;%周期的开始字节idx=1;%进度表行的索引%初始化调度schedule(idx,1)=p_start;schedule(idx,2)=b_start;idx=idx+1;%迭代直到进度表出现重复为止done_flag=0;period_idx=p_start;byte_idx=b_start;whiledone_flag==0%当单元为空时,立即寻找下一个byte_idx=byte_idx+byte_idx*(D-1);period_idx=period_idx+floor(byte_idx/I);byte_idx=rem(byte_idx,I);schedule(idx,1)=period_idx;schedule(idx,2)=byte_idx;ifschedule(idx,2)==b_startdone_flag=1;end;idx=idx+1;end;以上的伪代码描述了一种用于查找单元的进度表的方法。图7中示出了根据本发明一个以上实施例的用于对单元的排空/填充进行调度(即,在单元上进行读取和写入操作)的另一种方法700。在710,设置交织器(即,可用于所有单元)的深度D和周期I,在该点,也可以选择用于调度的第一单元。然后启动一应用于各单元的子方法702,并且该子方法对交织器中的各单元都被执行。周期索引P表示该单元排空/填充的周期号。类似地,字节索引B表示各周期中该单元所排空/所填充的字节号。在720,为所关心的单元设置周期索引初始化值Pi和字节索引初始化值Bi,以建立“第一字节”填充当前单元的时间。在730,通过将第一列(第一元素)赋值为等于周期索引初始化值,将第二列(第二元素)赋值为等于字节索引初始化值,来定义进度表的第一行(即,进度表位置/行索引=1)。在本发明的该实施例中,在730,位置(行)索引L也递增到2。在750,生成新的进度表行,这可以以多种方式进行,如本领域技术人员将认知的。如图7所见,在一些实施例中,周期索引P和字节索引B被更新,所述更新包括在752生成临时新字节索引(例如,通过向当前字节索引增加字节索引乘以(D-1)的量),然后在754生成新的周期索引(例如,通过使当前周期索引递增一新的字节索引被交织器周期整除的结果来更新-即通过使当前周期索引递增该商的向下取证函数来更新),然后在756,对所述临时新字节索引进行任何所需要的重新定义(例如,利用模I,临时新字节索引被交织器周期整除后的余数给出重新定义的新字节索引)。其它用于生成进度表的行的子方法对于本领域技术人员而言是显而易见的。在760,通过将第一元素赋值为当前周期索引P,并在762,将第二元素赋值为当前字节索引B,来形成进度表的下一行(即行L),之后在764,位置/行索引递增。如果在770,当前字节索引不等于开始字节索引Bi,则方法700返回750以继续构造当前单元的进度表。如果当前字节索引值等于字节索引初始化值,则已经为给定单元生成了所有需要的进度表行信息。在780,方法700核对是否所有的单元的进度表已经确定。如果是,则方法700结束。如果不是,选择新的单元,并且方法700返回子方法702,并在720针对新的单元进行初始化。通过选择与已创建的进度表的任意行中所出现的任意周期索引和字节索引配对不同的开始周期索引和开始字节索引配对,来创建下一个单元的进度表。因此方法700继续进行,直到已经为个单元创建了进度表为止。因此,根据本发明的交织和交织器(如果交织器深度和周期不互质,则具有空字节)允许以任何所需要的深度和周期、并且以最小存储量实现DSL交织。根据本发明实施例的交织器可以维持绝对的最小存储量需求,并且在保持互质限制的值之间操作交织器深度期间允许适当的变化。由于大量原因,在DSL系统中,深度变化是必要的,并且当在“SHOWTIME”期间(当延迟必须保持相同或近似相同时)DSL系统的等待时间通路上的纯数据速率变化时,深度变化是必需的。这种对DSL系统的纯数据速率的变化可以是无缝速率自适应(SeamlessRateAdaptation,SRA)程序的一部分,也可以是动态速率重新分配(DynamincRateRepartitioning,DRR)程序的一部分,在前者的情况下,在所有等待时间通路上的纯数据速率之和变化,在后者的情况下,一条等待时间通路的纯数据速率的一部分被重新分配给另一条等待时间通路。这种变化的一个目的是保持延迟为常数或近似常数。在VDSL2建议中,例如,延迟被表示为等式(10)在上述表达式中,q是每个RS码字的交织器块的数量,fs是每秒DMT帧的数量,N是RS码字大小,并且S是每个RS码字的DMT帧的数量。增加纯数据速率(例如,通过减小S,和/或增加N)具有减小以毫秒表示的延迟的效果。为了维持恒定延迟,需要增加深度D。当减小纯数据速率时,发生相反的效果,并且需要朝相反的方向校正D;即,必须使其减小。VDSL2建议目前定义了用于实现针对交织器的深度变化的程序。本发明实施例在总是维持交织器/解交织器最小存储量的同时,可以实现这样的深度变化。与以前号称最小存储量实现的交织器实现相比,这是显著的进步,这种早先的实现要求为所计划的最大交织器深度分配存储量,因此在当交织器深度小于所计划的最大交织器深度的时候,不维持针对交织器的最小存储。当深度从D减小到D’(新的深度为D’,旧的深度为D)时,则VDSL2建议指定在等于以下字节的转换周期不应当进行任何写入操作等式(11)在该时间期间,继续在单元上进行交织器读取操作。在转换周期结束之前的任何时间,交织器输出字节经历基于深度D的延迟。在转换周期结束之后,交织器输出字节经历相当于新深度D’的延迟,对存储单元进行读取和写入操作。当深度从D增加到D’时,则VDSL2建议未指定转换周期。在深度增加之前,交织器输出字节经历相当于初始深度D的延迟。在深度增加之后,交织器输出字节经历相当于新深度D’的延迟。通过本发明的基于最小存储单元的交织器/解交织器实现,可以以一种有效的方式来实现这样的深度变化。如早先所述,周期I和初始深度D用来生成针对个单元中的每一个的进度表。如果深度需要改变为D’,则必须首先生成针对多达个单元的新进度表。本发明的一种好处在于总是可以将单元的数量调节为等于必需的最小数量。在深度增加的情况下,图8A示出了根据本发明一个以上实施例的方法801。在810,生成对应于深度D和周期I的进度表A。在820,交织器/解交织器正常操作,根据进度表A在单元上进行读取和随后的写入操作。当接收深度增加命令时,则830,生成对应于深度D’和周期I的新进度表B。图9示出了创建进度表B的一种方法,以下更详细的讨论。在840,通过使交织器/解交织器以正常模式操作,立即切换到根据进度表B在单元上进行读取和随后的写入操作来应用所述深度增加。由于当深度增加时,进度表A和B之间没有冲突,因此不需要转换周期。在深度减小的情况下,图8B示出了根据本发明一个以上实施例的方法802。如同图8A的深度增加那样,在810,生成对应于深度D和周期I的进度表A。然后在820,交织器/解交织器正常操作,根据进度表A对单元进行读取和随后的写入操作。当接收深度减小命令时,则在830,生成新的对应于深度D’和周期I的进度表B(再次,例如,根据图9的方法)。在840处的向使用深度减小的新进度表B的切换启动于845,在850开始转换周期,在该转换周期期间交织器/解交织器仍然根据进度表A操作,但是只在单元上进行读取操作,不进行写入操作。最后,在860确定转换周期结束之后,在870,交织器/解交织器正常操作,根据进度表B在单元上进行读取和随后的写入操作。图9中示出用于生成上述进度表B的方法900的一个实施例。在910,选择非空单元(恰好在切换到新进度表之前的时候)。在920,当非空单元最后被读取/写入时,方法900记录周期索引和字节索引。在930,方法900利用从920记录的周期和字节索引的初始化值,计算新的进度表(例如,利用图7的方法)。如果在940,有更多的非空单元可用,则方法900返回910以计算另一个非空单元的进度表。如果在940,没有其它非空单元可用,则在950,方法900判断是否需要更多的单元。在使用最小存储量的情况下,意味着判断是否存在个单元。如果不需要更多的单元,则方法可以终结。否则,在960,方法900计算针对新单元的进度表。这可以,例如通过利用图7的方法来完成,并且以任何在已经被调度的单元中不存在的周期/字节索引配对作为初始化值来开始。在960,一旦计算了该新进度表,则方法900返回950以判断是否需要更多的单元。可以很容易从进度表A提取方法900所需要的大多数信息。图10示出了本发明一个实施例,该实施例示出最小存储量配置。来自源1005的数据通过设备输入端1007被发送到复用器1010。复用器1010的输出端包括单条通过线路1015和R条延迟线路1020,其中每条延迟线路具有可变挂起(variable-hold)存储单元1030-1、1030-2,...,1030-R。交织器1000的各条线路1015、1020是第二复用器1035的输入端。复用器1035运行为实现以上讨论的交织方法中的一种或多种,要么取得在通过线路1015上发送的字节,要么查找在存储单元中所存储的字节,该字节在单元1030中由于k(D-1)的延迟被挂起之后,应当被写入设备输出端。复用器1035可以搜索需要注意的单元或线路,并且适当的字节可以被写入复用器1035的输出端,也就是交织器1000的输出端。然后交织器输出端1040允许在信道1045上发送字节流,尽管在交织器1040和传输之间会进行一些额外的处理。解交织器1050以类似的方式运行,利用输入端1057、第一复用器1060、通过线路1065、各自具有可变挂起存储单元1075-1、1075-2,...,1075-R的延迟线路1070、第二复用器1080和输出端1085。到达输出端1057的数据可能在传输之后经过处理。解交织后的数据被传递到缓冲器或其它位置1090。传递到解交织器1050的各字节被延迟构成交织器1000和解交织器1050的总延迟(D-1)·(I-1)所需要的任何进一步时间。因此,经过交织器1000中的通过线路1015的字节在解交织器的单元中1075的一个单元中被挂起(D-1)·(I-1)的延迟。字节k=I-1在交织器1000中被挂起(D-1)·(I-1),并且将被发送到解交织器1050的通过线路1065。本领域技术人员在阅览本公开内容之后很容易理解交织器1000和解交织器1050的操作。根据图11中示出的本发明一个实施例,交织/解交织控制单元1100可以是连接到DSL系统或其它通信系统的独立实体的一部分,例如辅助系统的一个以上使用者的控制器1110(例如,使用者本地设备中的设备或如上所述的远程位置控制器)。不位于CO、telco等中的远程控制器还可以称作动态频谱管理器、动态频谱管理中心、交织器实现模块、使用者辅助中心、DSM中心、系统维护中心、SMC或其它任何类似的名称。在一些实施例中,控制器1110可以是完全独立的实体。在其它实施例中,控制器1110可以是使用者设备的一部分,或连接到使用者设备,以便以与在此描述的关于从DSL或其它通信系统的其它部分收集数据的方式相似的方式收集数据。此外,控制器1110可以连接到和/或控制DSL和/或多个使用者的其它通信线路。交织/解交织控制单元1100包括标识为收集装置1120的数据收集单元,和标识为分析装置1140的分析单元。如图11中所见,收集装置1120(通常可以是已知类型的计算机、处理器、IC、计算机模块等)可以连接到NMS150、在AN140处的ME144、调制解调器、收发机和/或由ME144维护的MIB148,它们中的任意一个或所有都可以是用作示例的DSL系统的一部分。收集装置1120也可以直接连接到ATU或VTY142。在使用者的位置实现控制器1110的情况下,控制器1110可以是诸如家用PC等的计算机,该计算机运行控制或辅助通信的软件或其它计算机程序产品。也可以通过宽带网络170(例如,通过TCP/IP协议或其它协议或除给定DSL系统内的正常内部数据通信之外的手段)收集数据。这些连接中的一个以上连接交织允许交织/解交织控制单元1100在需要的时候从使用者的线路收集运行数据,以及从适当的别处(可能是更宽的系统)收集运行数据。数据可以一次性收集或随时间收集。在某些情况下,收集装置1120可以周期性地进行收集,尽管它也可以根据请求收集数据或以任何其它非周期性的方式收集数据(例如,当DSLAM或其它部件向基于优先的(preference-based)控制单元发送数据时),从而允许基于优先的控制单元1100在需要的时候更新其信息、运行等。由装置1120收集的数据被提供给分析装置1140(也可以是通常已知类型的计算机、处理器、IC、计算机模块等)用于分析,并且做出任何与通信系统中任何交织/解交织功能的一个以上运行和/或性能矩阵和/或动态调节有关的决策。在图11的示例性系统中,分析装置1140连接到控制器1100中的信号生成装置1150。该信号发生器1150(可以是计算机、处理器、IC、计算机模块等)被配置为生成指令信号,并向使用者的调制解调器和/或使用者链接到通信系统的的其他部件发送该指令信号。这些指令可以包括关于数据速率、发送功率级别、编码和等待时间需求、交织/解交织运行参数、交织/解交织参数变化等的指令。本发明实施例可以利用具有与所收集数据等有关的数据的数据库、资料库或其它数据集合。该参考数据集合可以存储为,例如,图11的控制器1100中的资料库1148,并且被分析装置1140和/或收集装置1120所使用。控制器1110还可以访问控制器1100外部的一个以上资料库和/或数据库,如本领域技术人员所认知的。在本发明的一些实施例中,可以在一个以上诸如PC、工作站等的计算机中实现交织/解交织控制单元1110。收集装置1120和分析装置1140可以为软件模块、硬件模块或软件模块和硬件模块的组合,如本领域技术人员将认知的。当与大量调制解调器、线路、使用者等一起工作时,可以引入数据库来管理所收集的大量数据。一般来说,本发明的实施例采用的各种过程涉及存储在一个以上计算机系统中或通过一个以上计算机系统传输的数据,所述计算机系统可以是单个计算机、多个计算机和/或计算机的组合(它们中的任何一个或全部都可以互换地称为“计算机”和/或“计算机系统”)。本发明的实施例也涉及用于进行这些操作的硬件设备或其它装置。该装置可以按照需要而特别地构造,或者它也可以是由存储在计算机中的计算机程序和/或数据结构选择性地激活或选择性地重新配置的通用计算机和/或通用计算机系统。这里所展现的过程并不固有地涉及任何特定的计算机或其它装置。特别地,各种通用机器可以与根据这里的启示所编写的程序一起使用,或者可以更方便地构造更专用的设备来执行所需的方法步骤。基于以下给出的描述,用于多种此类机器的特定结构对本领域的技术人员来说是清楚的。上述本发明的实施例采用的各种过程步骤涉及存储在计算机中的数据。这些步骤需要对物理量进行物理操作。通常,尽管不是必要的,这些量采用能够被存储、传输、组合、比较或以其他方式操作的电信号或磁信号的形式。有时候,主要是为了通用的原因,将这些信号称为比特、比特流、数据信号、控制信号、值、元素、变量、字符、数据结构等是方便的。不过,应该记住的是,所有这些术语以及相似的术语都与适当的物理量相关,并且仅仅是应用于这些物理量的方便标签。进一步地,所执行的操作经常在措辞上被称为例如识别、匹配或比较。在此处所描述的形成本发明一部分的任何操作中,这些操作都是机器操作。用于执行本发明实施例的操作的有用机器包括通用数字计算机或其它类似设备。在所有的情况下,应该记住操作计算机的操作方法与计算方法本身之间的不同。本发明的实施例涉及的方法步骤用于在处理电信号或其它物理信号以生成其它所需物理信号时对计算机进行操作。本发明的实施例也涉及用于执行这些操作的装置。该装置可以为了所需的目的而特别构造,或者可以是由存储在计算机中的计算机程序选择性激活或重新配置的通用计算机。这里所展现的过程并不固有地涉及任何特定的计算机或其它装置。特别地,各种通用计算机可以与根据这里的启示所编写的程序一起使用,或者可以更方便地构造更专用的设备来执行所需的方法步骤。各种此类机器所需的结构可以从以上给出的描述中获得。此外,本发明的实施例进一步涉及计算机可读介质,所述介质包括用于执行各种由计算机实现的操作的程序指令。介质和程序指令可以是为了本发明的目的而特别设计和构造的,或者它们可以是计算机软件领域技术人员所公知并可获得的类型。计算机可读介质的示例包括但不限于,诸如硬盘、软盘和磁带的磁介质;诸如CD-ROM盘的光介质;诸如可光读盘的磁-光介质;和特别配置为存储和执行程序指令的硬件设备,例如只读存储器设备(ROM)和随机访问存储器设备(RAM)。程序指令的示例既包括例如由编译器生成的机器代码,也包括含有更高级代码的文件,所述高级代码可以由使用解释程序的计算机执行。图12图示了根据本发明一个以上实施例的、可以由使用者和/或控制器使用的典型计算机系统。计算机系统1200包括任意数目的处理器1202(也称为中央处理单元,或者CPU),其连接到包括主存储区1206(通常是随机访问存储器,或RAM)和主存储区1204(通常是只读存储器,或ROM)的存储设备。如同本领域所公知的那样,主存储区1204用作向CPU单向传递数据和指令,而主存储区1206通常用于以双向的方式传递数据和指令。这些主存储设备都可以包括任何合适的上述计算机可读介质。大容量存储设备1208也双向连接到CPU1202,并提供额外的数据存储容量,并且可以包括任何上述计算机可读介质。大容量存储设备1208可以用于存储程序、数据等,并且通常为诸如硬盘的从存储介质,其速度慢于主存储区。可以理解,在恰当的情况下,保留在大容量存储设备1208中的信息可以以标准方式并入,作为主存储区1206的一部分,从而成为虚拟存储器。特定的大容量存储设备,例如CD-ROM1214,也可能向CPU单向传送数据。CPU1202还可以连接到包括一个以上输入/输出设备的接口1210,所述输入/输出设备例如视频监视器、轨迹球、鼠标、键盘、麦克风、触摸屏、变换读卡器、磁带或者纸带读取器、书写板、手写笔、声音或笔迹识别器或者其它公知的输入设备,当然还例如其它计算机。最后,CPU1202可选地利用由1212一般性地示出的网络连接来连接到计算机或者电信网络。采用这样的网络连接,可以预期,在执行上述方法步骤期间,CPU可以从网络接收信息,或者可以向网络输出信息。计算机硬件和软件领域的技术人员将熟悉上述设备和材料。上述硬件元件可以限定多个软件模块,以执行本发明的操作。例如,运行码字组合控制器的指令可以存储在大容量存储设备1208或1214上,并且在CPU1202连同主存储区1206上执行。在优选实施例中,控制器被划分为若干软件子模块。本发明的许多特征和优点从所写出的描述中变得清晰,因此,所附权利要求书意在涵盖本发明的所有这些特征和优点。进一步,由于本领域技术人员易于进行多种改造和改变,因此本发明并不限于如图示和描述的确切构造和操作。因此,所描述的实施例应该被认为是示意性而非限制性的,并且本发明不应限于在此给出的具体内容,而应该由权利要求书及其等价方式的全部范围所限定,无论这些范围在现在或将来是可预期的还是不可预期的。权利要求1.一种以深度I和周期D对数据流进行卷积交织的方法,该方法包括为数目为R的多个存储单元中的每一个确定一进度表;针对每个时间采样进行以下操作基于所述R个存储单元的进度表从所述R个存储单元中选择第一存储单元;读取一存储在所述第一存储单元中的第一字节;将所述第一字节写入交织器输出端;在所述交织器的输入端接收一第二字节;将所述第二字节写入所述第一存储单元。2.根据权利要求1所述的方法,其中为所述数目为R的多个存储单元中的每一个确定进度表包括构造一具有多行的数组,所述数组的每行包括定义周期索引P的第一元素;和定义字节索引B的第二元素。3.根据权利要求2所述的方法,其中构造所述数组包括生成所述数组的第一行,包括将所述数组的第一行的第一元素设置为等于一周期索引初始化值;将所述数组的第一行的第二元素设置为等于一字节索引初始化值;生成所述数组的下一行,包括将P设置为等于所述周期索引初始化值;将B设置为等于所述字节索引初始化值;将一位置索引L设置为等于B+(B*(D-1));重新设置P,其中重新设置B,其中B=LmodI;将所述数组下一行的第一元素设置为等于P;并且将所述数组下一行的第二元素设置为等于B;和重复生成所述数组的下一行,直到所述数组的下一行的第二元素等于所述数组的第一行的第二元素为止。4.根据权利要求2所述的方法,其中构造所述数组包括生成所述数组的第一行,包括将所述数组的第一行的第一元素设置为等于一周期索引初始化值;将所述数组的第一行的第二元素设置为等于一字节索引初始化值;生成所述数组的下一行,包括将P设置为等于所述周期索引初始化值;将B设置为等于所述字节索引初始化值;将一位置索引L设置为等于B+((I-1-B)*(D-1));重新设置P,其中重新设置B,其中B=LmodI;将所述数组的下一行的第一元素设置为等于P;并且将所述数组的下一行的第二元素设置为等于B;和重复生成所述数组的下一行,直到所述数组的下一行的第二元素等于所述数组的第一行的第二元素为止。5.根据权利要求1所述的方法,其中基于所述R个存储单元的进度表从所述R个存储单元中选择第一存储单元包括检查所述R个存储单元的进度表,以识别其进度表包括当前时间采样的存储单元。6.根据权利要求1所述的方法,其中基于所述R个存储单元的进度表从所述R个存储单元中选择第一存储单元包括读取进度表表格,所述进度表表格具有对应于周期索引的行和对应于字节索引的列,并且所述表格的内容由指针组成,所述指针指向针对对应于时间采样的周期/字节索引对的存储单元。7.根据权利要求1所述的方法,其中8.一种用于动态地改变对数据流进行的卷积交织的深度的方法,该方法包括为数目为R的多个存储单元确定第一进度表集合,其中D是第一深度;I是交织周期;并且R基于D和I;利用所述第一进度表集合在所述R个存储单元上进行读取和写入操作;为数目为R’的多个存储单元确定第二进度表集合,其中D’是第二深度;R’基于D’和I;并且切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作。9.根据权利要求8所述的方法,其中D’大于D;并且进一步,切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括从所述第一进度表集合立即转移到所述第二进度表集合。10.根据权利要求8所述的方法,其中D’小于D;并且进一步,切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括利用一转换周期从所述第一进度表集合转移到所述第二进度表集合;进一步,在所述转换周期期间,不在单元上进行交织器写入操作;进一步,在所述转换周期结束之前,利用对应于深度D的交织器输出字节延迟,继续在单元上进行交织器读取操作;并且进一步,在所述转换周期结束之后,利用对应于深度D’的交织器输出字节延迟,继续在单元上进行交织器读取操作。11.根据权利要求8所述的方法,其中为R个存储单元确定所述第一进度表集合包括针对所述R个存储单元中的每一个,构造具有多行的第一进度表集合数组,所述数组的每行均包括定义周期索引P的第一元素和定义字节索引B的第二元素,并且进一步,为R’个存储单元确定所述第二进度表集合包括针对所述R’个存储单元中的每一个,构造具有多行的第二进度表集合数组,所述数组的每行包括定义周期索引P的第一元素和定义字节索引B的第二元素。12.根据权利要求8所述的方法,其中利用所述第一进度表集合在所述R个存储单元上进行读取和写入操作包括基于所述第一进度表集合从所述R个存储单元中选择第一存储单元;并且进一步,利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括基于所述第二进度表集合从所述R’个存储单元中选择第一存储单元。13.根据权利要求8所述的方法,其中并且进一步14.一种具有周期I和第一深度D的交织器/解交织器,所述交织器/解交织器包括被配置为提供连续数据字节以便进行交织/解交织的输入端;被配置为在交织/解交织之后传递连续数据字节的输出端;数目为R的多个存储单元,其中各存储单元均连接在所述输入端和所述输出端之间;控制器,所述控制器在给定的时间采样对以下存储单元进行控制第一存储单元,第一数据字节从所述第一存储单元写入所述输出端;第二存储单元,第二数据字节从所述输入端被读取到所述第二存储单元;进一步,控制器操作以为所述R个存储单元中的每一个确定的进度表为基础。15.根据权利要求14所述的交织器/解交织器,其中16.根据权利要求14所述的交织器/解交织器,进一步,其中所述控制器被配置为为所述R个存储单元中的每一个确定所述进度表。17.根据权利要求14所述的交织器/解交织器,进一步,其中所述控制器通过以下步骤来控制交织器深度变化为所述R个存储单元的每一个确定第一进度表集合;基于所述第一进度表集合控制在所述R个存储单元上的读取和写入操作;为所述R’个存储单元的每一个确定第二进度表集合,其中D’是第二深度,并且切换到基于所述第二进度表集合在所述R’个存储单元上进行读取和写入操作。18.根据权利要求17所述的交织器/解交织器,其中并且进一步,19.根据权利要求17所述的交织器/解交织器,其中D’大于D;并且进一步,所述控制器控制切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括从所述第一进度表集合立即转移到所述第二进度表集合。20.根据权利要求17所述的交织器/解交织器,其中D’小于D;并且进一步,所述控制器控制切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括利用一转换周期从所述第一进度表集合转移到所述第二进度表集合;进一步,在所述转换周期期间,不进行交织器写入操作;进一步,在所述转换周期结束之前,利用对应于深度D的交织器输出字节延迟,继续进行交织器读取操作;并且进一步,在所述转换周期结束之后,利用对应于深度D’的交织器输出字节延迟,继续进行交织器读取操作。21.一种计算机程序产品,包括机器可读介质;和包含在所述机器可读介质中的程序指令,所述程序指令指定一以深度D和周期I对数据流进行卷积交织的方法,该方法包括为R个存储单元的每一个确定进度表;针对每个时间采样,进行以下操作基于所述R个存储单元的进度表从所述R个存储单元中选择第一存储单元;读取存储在所述第一存储单元中的第一字节;将所述第一字节写入所述交织器输出端;在所述交织器的输入端接收第二字节;将所述第二字节写入所述第一存储单元。22.根据权利要求21所述的计算机程序产品,其中为R个存储单元的每一个确定进度表包括构造具有多行的数组,所述数组的每行包括定义周期索引P的第一元素;和定义字节索引B的第二元素。23.根据权利要求22所述的计算机程序产品,其中构造所述数组包括生成所述数组的第一行,包括将所述数组的第一行的第一元素设置为等于一周期索引初始化值;将所述数组的第一行的第二元素设置为等于一字节索引初始化值;生成所述数组的下一行,包括将P设置为等于所述周期索引初始化值;将B设置为等于所述字节索引初始化值;将位置索引L设置为等于以下值中的一个B+(B*(D-1));或B+((I-1-B)*(D-1));重新设置P,其中P为以下值中的一个当B+(B*(D-1))时,或当B+((I-1-B)*(D-1))时,重新设置B,其中B=LmodI;将所述数组的下一行的第一元素设置为等于P;并且将所述数组的下一行的第二元素设置为等于B;和重复生成所述数组的下一行,直到所述数组的下一行的第二元素等于所述数组的第一行的第二元素为止。24.根据权利要求21所述的计算机程序产品,其中基于所述R个存储单元的进度表从所述R个存储单元选择第一存储单元包括检查所述R个存储单元的进度表,以识别其进度表包括当前时间采样的存储单元。25.根据权利要求21所述的计算机程序产品,其中基于所述R个存储单元的进度表从所述R个存储单元中选择第一存储单元包括读取进度表表格,所述进度表表格具有对应于周期索引的行和对应于字节索引的列,并且所述表格的内容由指针组成,所述指针指向针对对应于时间采样的周期索引和字节索引的存储单元。26.根据权利要求21所述的计算机程序产品,其中27.一种计算机程序产品,包括机器可读介质;和包含在所述机器可读介质中的程序指令,所述程序指令指定一用于动态改变对数据流进行的卷积交织深度的方法,该方法包括为R个存储单元确定第一进度表集合,其中D是第一深度;I是交织周期;并且R基于D和I;利用所述第一进度表集合在所述R个存储单元上进行读取和写入操作;为R’个存储单元确定第二进度表集合,D’是第二深度,并且R’基于D’和I;并且切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作。28.根据权利要求27所述的计算机程序产品,其中D’大于D;并且进一步,切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括从所述第一进度表集合立即转移到所述第二进度表集合。29.根据权利要求27所述的计算机程序产品,其中D’小于D;并且进一步,切换到利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括利用一转换周期从所述第一进度表集合转移到所述第二进度表集合;进一步,在所述转换周期期间,不进行交织器写入操作;进一步,在所述转换周期结束之前,利用对应于深度D的交织器输出字节延迟,继续进行交织器读取操作;并且进一步,在所述转换周期结束之后,利用对应于深度D’的交织器输出字节延迟,继续进行交织器读取操作。30.根据权利要求27所述的计算机程序产品,其中为所述R个存储单元确定所述第一进度表集合包括针对所述R个存储单元中的每一个,构造具有多行的第一进度表集合数组,所述数组的每行包括定义周期索引P的第一元素和定义字节索引B的第二元素,并且进一步,为所述R’个存储单元确定所述第二进度表集合包括针对R’个存储单元中的每一个,构造具有多行的第二进度表集合数组,所述数组的每行包括定义周期索引P的第一元素和定义字节索引B的第二元素。31.根据权利要求27所述的计算机程序产品,其中利用所述第一进度表集合在所述R个存储单元上进行读取和写入操作包括基于所述第一进度表集合从所述R个存储单元中选择第一存储单元;并且进一步,利用所述第二进度表集合在所述R’个存储单元上进行读取和写入操作包括基于所述第二进度表集合从所述R’个存储单元中选择第一存储单元。32.根据权利要求27所述的计算机程序产品,其中并且进一步,全文摘要在具有任何深度和周期的DSL交织/解交织中可获得最小存储实现,所述最小存储量实现总是允许在发送机和接收机中使用最小存储量,而没有性能或基本三角结构的损失,即使交织器/解交织参数动态变化。一种新的单元调度过程确保可用最小存储量(或其它任何期望的存储使用)来实现正三角的映像,并且对互质的深度和交织器周期有效。最小存储使用可以进一步由一种简单的离线方法来表征,所述方法确定根据本发明的交织器/解交织器的最小存储量(或其它)实现中的各存储单元的寻址次序。在所有时刻都可以很容易地利用绝对最小存储需求来适应在操作中交织器深度的时间变化。文档编号H03M13/27GK101204014SQ200680022225公开日2008年6月18日申请日期2006年3月16日优先权日2005年6月22日发明者约翰·M·卡尔夫,乔治斯·吉尼斯申请人:适应性频谱和信号校正股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1