背景技术
通常,在数字通信系统中,一般将纠错技术用于减小和纠正在传送处理期间产生的错误。纠错技术分为两种不同类型。首先,纠错编码(ECC)提供在接收机的检测和/或纠错能力。其次,存在重新排列编码数据的排序以扩展分离连续错误的交错器。在纠错码中,例如Reed-Solomon码,将数据扩展或分组并且增加冗余位以实现检错的编码。当使用象卷积交错器这样的非分组码时,根据输入顺序实现编码并且编码有的输入数据以影响当前数据,使得非分组码较分组码具有较好的纠错能力。在高错技术中,以确定的方式重新排列卷积码或Reed-Solomon码的数据量的排序。
通常,在数字通信系统中,在传送期间产生的差错分为两种类型。首先,扩展分离的随机差错,其次,包括大量连续差错的突发差错。纠错编码(ECC)对于随机差错具有很好的纠正能力,然而,在出现突发差错时却无效。因此,多数数字通信系统提供交错器,用于重新排列原始数据流以扩展分离发送端的突发差错,以及提供至少多于一个的去交错器,用于在接收端提供将数据重新排列到原始数据流。
存在两种交错器,分组交错器和卷积交错器。分组交错器将数据流交错到由K行和L列构成的分组单元(K×L),并通过变化输入/输出顺序随机化数据流。分组交错器水平扫描输入数据流以存储到存储器而垂直扫描存储在存储器的数据用于输出。在分组交错中,在两个连续的输入数据之间插入具有交错层级L的临时比特行。因此,在分组单元(K×L),K是码字长度而L是交错层级。
卷积交错器将输入数据暂存于存储器用于预定的延迟,并且在相邻的两个数据之间插入延迟数据。
图1是表示常规的卷积交错器和去交错器的示意图。卷积交错器10包括输入开关11,(I-0)到[I-(B-1)]的多个移位寄存器,和输出开关12。卷积去交错器包括输入开关16,D-(B-1)到(D-0)的多个移位寄存器,和输出开关17。这里,向和从卷积交错器10及卷积去交错器15输入/输出的数据为字节单元。
卷积交错器具有这样的结构,即在第一移位寄存器(I-0),输入和输出直接相连,以使该移位寄存器的长度为0,从下一个移位寄存器到最后一个[I-(B-1)],移位寄存器的长度为M,2M,3M,…(B-1)M,以使每个移位寄存器之间的差值为M字节。与卷积交错器相比,卷积去交错器具有相反的结构。即,在卷积去交错器15,最长长度的移位寄存器D-(B-1)位于上端,从下一个寄存器D-(B-2)到最后的寄存器(D-0)的移位寄存器的长度为(B-2)M,…,2M,M,0。
卷积交错器的单位是(B,M):B表示移位寄存器的垂直端的数量,将其称为交错层级,M是相邻移位寄存器之间的长度差。
在卷积交错器10,输入开关11和输出开关12为同步,在B周期期间重复进行从(I-0)到I-(B-1)的顺序交换。无延迟地输出经交换操作2输入I-0的B周期的初始数据,在BM延迟之后输出输入I-1的B周期的第二数据,在2BM延迟之后输出输入到I-2的B周期的第三数据,…,以及在(B-1)BM延迟之后输出输入I-(B-1)的B周期的最后数据。因此,在发送端,在要发送的数据流的两个相邻数据之间插入具有BM延迟的临时数据。
在卷积去交错器5,与交错器类似输入开关16和输出开关17同步。在(B-2)BM延迟之后输出经交换操作输入D-(B-1)的B周期的第一数据,在(B-2)BM延迟之后输出输入D-(B-2)的B周期的第二数据,…,无延迟地输出输入(D-0)的B周期的最后数据。因此,在去交错器,在(B-1)BM时钟延迟之后,获得原始数据流。
通过下面的数学表达式1给出卷积交错器所要求的存储器(Smin)的最小量,[数学表达式1]
这里,B是交错层级,M是相邻移位寄存器之间的长度差。
在卷积交错器,当使用先入先出(FIFO)缓冲器作为数据存储装置时,需要大量的存储器,因此可以用RAM(随机存取存储器)来代替,以避免复杂性并减小交错器的结构尺寸。
如上所述,在使用RAM作为其存储器装置的卷积交错器中,降低了硬件的尺寸,但是需要控制存储器的地址控制逻辑以提高其操作效率,以便通过优化现存的存储器容量实现准确的卷积交错。
具体实施方式
现在将参考附图详细说明本发明及其实例。只要有可能,在附图中将使用相同的标记数字表示相同或类似的部件。
图2是根据本发明的卷积交错器的方框图。卷积交错器包括输入缓冲器21,SRAM22,地址生成单元23,输出缓冲器24,和控制器25。地址生成单元23还包括基本地址生成器23-1,中间地址转换器23-2,和物理地址变址器23-3。
通过静态随机存取存储器(SRAM)实现本发明的存储器,然而,可以通过其他类型的存储器来替代,以及输入/输出数据为字节单元。
图3A是表示根据从图2的基本地址生成器23-1生成的基本地址的存储器变址示意图,图3B是表示根据从图2的中间地址转换器23-2生成的中间地址的存储器变址示意图。
图3A表示图1中从(I-1)到(I-1)~I-(B-1)的一个移位寄存器阵列的基本地址的存储器的地址定位。在该变址图中,(AV:0~10)表示存储器单元的垂直地址。(MAH:0~10)和(LAH:0~16)表示水平地址。即,基本水平组地址(LAH)表示11个寄存器组(一个寄存器组包括17个顺序寄存器)的其中之一,水平单元地址(LAH)表示在基本水平组地址(MAH)选择的组中的17个顺序寄存器的子位置。
根据图3A中的基本地址变址,未使用SRAM22的总容量,即,仅使用了可能的121(=11*11)个组中的66个寄存器组。在SRAM中剩下存储潜在的55个组的空闲存储器。因此,需要较多的SRAM或其他存储器装置,这样使数据存储处理无效并加大硬件的尺寸。
图3B描述根据本发明的通过使用图2的中间地址转换器23-2生成的中间地址优化存储器使用的变址方法。具有基本水平组地址MAH(6~10)的15个寄存器组(由a~0表示)变址到来自基本水平组地址MAH(0~5)的空闲时隙。图3A中标记的相同字母(a~0)表示进入图3B的15个组。中间垂直地址(IAV:0~10)选择未使用存储器的垂直位置,而中间水平组地址(IMAH:0~5)和水平单元地址(LAH:0~16)选择水平位置。通过图3B所示的存储器变址,SRAM22仅需要1单元组由17字节(=M)构成的66个寄存器组(=(B-1)×B/2)的最小容量,以便在没有未使用的空闲存储器的情况下高效地实现卷积交错。
图4是表示图2的基本地址生成器23-1的详细示意图。该生成器包括第一计数器41,第二计数器42,第三计数器43,累加器44,和模操作器45。
图5A到图5I为表示图2所示的卷积交错器操作的定时图。这里,图5A表示字节时钟信号,图5B表示输入到由字节时钟同步的输入缓冲器21的输入数据流D(K,U)第K周期的第i数据。
图5C表示从控制器25到输入缓冲器21的起动信号IN-ENA,该信号在监控基本垂直信号AV的12个时钟周期的第一个时钟为低层级,而在剩余11个时钟前半周期具有高层级以及在后半周期具有低层级。
图5D表示来自输入缓冲器21的输出数据,其中在输入缓冲起动信号IN-ENA延迟一个时钟之后,在第一字节时钟的整个周期期间第一数据加载到数据总线,在剩余时钟的后半周期期间剩余的11个数据加载到数据总线。
图5E表示从控制器25到SRAM22的读起动信号READ,该信号在监控基本垂直信号AV的第一时钟具有高层级,而在剩余11个时钟的前半周期具有低层级以及在后半周期具有高层级。
图5F表示从控制器25到SRAM22的写入起动信号WRITE,该信号在监控基本垂直信号AV的第一时钟具有高层级,而在剩余11个时钟的前半周期具有高层级以及在后半周期具有低层级。
图5G表示加载到地址总线用于存取SRAM22的地址数据。由地址生成单元23提供的物理地址(PA,31)出现在除第一时钟之外的每个时钟的整个周期。
图5H表示加载到数据总线的数据,数据D(K,i)在12个时钟周期的后半周期加载到数据总线。根据物理地址PA从SRAM22读取的输出数据M(K,i)在剩余11个时钟周期的每个前半周期期间加载到数据总线。
图5I表示来自输出缓冲器24的输出数据,直接输出在第一时钟来自输入缓冲器21的数据。以及根据其相应的时钟输出从SRAM22读取的剩余数据。
下面,将详细描述根据本发明的优选实施例。
如图2所示,输入缓冲器21锁存输入数据(以字节)并根据输入缓冲器起动信号IN-ENA将输入数据输出到数据总线。数据总线上的数据根据由控制器25和地址生成单元23提供的写入起动信号WRITE中的物理地址(PA,31)存储在SRAM22的单元。根据由控制器25和地址生成单元23提供的读起动信号READ中的物理地址(PA,31)从单元读取存储在SRAM22的数据,并输出到数据总线。输出缓冲器24根据从控制器25提供的输出缓冲起动信号OUT_ENA锁存并输出数据总线上的数据。
在本发明的优选实施例,在时钟的前半周期实现从SRAM22读数据的操作,在时钟的后半周期进行将加载到数据总线的输入数据存储到SRAM22的写入操作。
控制器25在每个时钟的前半周期根据从基本地址生成器23-1获得的基本垂直地址(AV,26)向SRAM22提供读起动信号READ以及向输出缓冲器提供输出缓冲起动信号OUT_ENA。
在地址生成单元23,基本地址生成器23-1由复位信号复位,并产生基本垂直地址(AV,26),基本水平组地址(MAH,27)和水平单元地址(LAH,28)。
中间地址转换器23-2将从基本地址生成器23-1获得的基本垂直地址(AV,26)和基本水平组地址(MAH,27)分别转换为中间垂直地址(IAV,29)和中间水平组地址(IMAH,30),用于变址垂直端数目为(B-1),及水平存储单元数目为(B/2×M)的存储器。在物理地址变址器23-3,提供从中间地址转换器23-2获得的中间垂直地址(IAV,29)和中间水平组地址(IMAH,30),以及从基本地址生成器23-1获得的水平单元地址(LAH,28),以便获得存取SRAM22的一维物理地址(PA,31)。
卷积交错器在每个时钟的前半周期期间读取由物理地址(PA,31)指示的,存储在存储器的数据,并将其输出到数据总线,而在后半周期将当前数据存储在存储器。存储器地址的物理地址(PA,31)对于一个时钟是恒定的并指示交错层级(B=12时钟)上相同的基本垂直地址(AV,26)。但是,改变基本水平组地址(MAH ,27)和水平单元地址(LAH,28)。存在取决于基本垂直地址(AV,26)的水平组地址(MAH,27)的改变周期。
基本水平组地址(MAH,27)的改变周期具有对应于图1的移位寄存器长度的周期性函数。
表1用于描述描述基本水平组地址(MAH,27)的改变周期。[表1]
根据基本垂直地址AV的基本水平组地址MAH的改变周期。
基本垂直地址(AV) |
基本水平组地址(MAH) |
-1 |
未使用 |
0 |
0,0,0,0,0,0…… |
1 |
0,1,0,1,0,1,0…… |
2 |
0,1,2,0,1,2,0,1,2… |
: |
: |
8 |
0,1,2,3,4,5,6,7,8,0,1,2,3… |
9 |
0,1,2,3,4,5,6,7,8,9,0,1,2,3… |
10 |
0,1,2,3,4,5,6,7,8,9,10,0,1,2,3… |
表1表示12时钟周期的第一数据0(K,0)的基本垂直地址AV=-1,存储第二数据D(K,1)的AV=0,以及存储第三数据D(K,2)的AV=1。在表1中,对于每个时钟基本垂直地址增加1个单位,输出为-1,0,1,…,10,-1,0,1。在输入12周期的第17,第i数据之后(即,在0到16的每个周期之后水平单元地址LAH再次成为0的时刻),基本水平组地址MAH增加1个单位。因此,根据基本垂直地址AV和水平单元地址LAH周期性地改变基本水平组地址MAH。
详细描述了如上所示的用于产生基本垂直地址(AV),基本水平组地址MAH,和水平单元地址(LAH)的根据本发明的基本地址生成器23-1。
根据系统的字节时钟同步以及由复位信号复位的第一计数器41从初始值-1以一为单位递增计数0,1,2,…,并在周期的结束(B=12)重复计数。第一计数器41的计数值对应于4比特的基本垂直地址(AV,26)。
第二计数器42在从第一计数器41接收到第一进位信号CARRY1时从初始值0到16以一为单位开始递增计数,并在17(=M)时钟周期的结束重复计数。第二计数器42的计数值对应于5比特的水平单元地址(LAH,28)。
类似地,第三计数器43在从第二计数器42接收到第二进位信号CARRY2时在27720[=LCM,1~11(B-1)的全体数的最小公倍数]时钟周期期间从初始值0到27719开始计数。这里,27720是用于在模操作器45产生基本水平组地址的递归周期。
累加器44将值1加入基本垂直地址(AV,26),并且模操作器45通过来自累加器44的输出值模操作第三计数器43的计数值。从模操作器45输出的值对应于基本水平组地址(MAH,27)。
参考图2,图中表示的基本地址26,27,和28转换为用于存取SRAM22的一维地址PA。
根据基本垂直地址AV和基本水平组地址MAH,在中间地址转换器23-2通过利用下面的数学表达式2和3计算中间垂直地址IAV和中间水平组地址IMAH。[数学表达式2]IAV=AV,(0≤MAH<B/2)IAV=(B-2)-AV,(B/2≤MAH))[数学表达式3]IMAV=MAV,(0≤MAH<B/2)IMAV=(B-1)-MAV,(B/2≤MAH)
当图3A中的基本存储器的组单元,即,a,b,c,…,n,0如图3B所示移动时,两维中间垂直地址(IAV,29)和中间水平组地址(IMAH,30)对应于每个存储器的地址指示单元。
在物理地址变址器23-3,两维中间垂直地址(IAV,29)和中间水平组地址(IMAH,30)及水平单元地址(IMAH,28)还变址到用于存取图3B中的中间存储器的一维物理地址(PA,31)。
通过下面的数学表达式4A和4B描述分配用于垂直或水平扫描图3B中的存储器单元阵列的物理地址(PA,31)的规则。[数学表达式4A]PA=(IMAH×MAV+LAH)×(B-1)+IAV:垂直扫描的地址[数学表达式4B]PA=(IAV×B/2×M×IMAH)×M+LAH:水平扫描的地址
通过众所周知的累加器和计算器能够容易地实现完成上面数学表达式的中间地址转换器23-2和物理地址变址器23-3。这里,交错层级B和构成寄存器组的寄存器数目M[=(N/B);N是构成一数据流的数据的数目]为预定的恒定值。
控制器25从基本地址生成器23-1接收基本垂直地址(AV,26)以产生用于SRAM22的输入缓冲起动信号IN-ENA,读起动信号READ,写入起动信号WRITE,和输出缓冲起动信号OUT_ENA。
即,控制器25监控基本垂直地址(AV,26)并根据时钟确定交错层级(B=12)以产生控制信号。
当来自控制器25的控制信号为有效低层级信号时,通过下面详细解释图5A到图5I。
当数据D(K,0)在输入输入缓冲器21之前与第一时钟同步时,第一数据D(K,0)直接输出到输出缓冲器24,绕过SRAM22。在第二时钟期间,在输入端延迟一个时钟的图5C中的输入缓冲起动信号IN_ENA指示低层级信号用于从缓冲器21向数据总线输出图5B的数据。类似地,图5E的读起动信号READ和图5F的写入起动信号WRITE指示高层级信号以阻止SRAM22。输出缓冲起动信号OUT_ENA指示低层级信号,并且输出缓冲器24锁存加载到数据总线的第一数据D(K,0),如图5I所示。
除12时钟周期的第一数据D(K,0)之外,剩余数据[D(K,1)~D(K,11)]必须存储在SRAM22并在一些延迟后输出。因此,在第三时钟的前半周期期间,当数据D(K,i)在输入输入缓冲器21之前同步时,图5F的写起动信号WRITE指示高层级信号以及图5E的读起动信号READ指示低层级信号用于记取存储在SRAM22的图5G的物理地址(PA,31)的已有输入数据M(K,1)。在第三时钟的后半周期期间,图5C的输入缓冲起动信号IN_ENA指示低层级信号以将输入数据D(K,1)加载到数据总线。图5E的读起动信号READ指示高层级信号以及图5F的写起动信号WRITE指示低层级信号,用于将当前数据D1存储在图5G的物理地址的相同存储位置。以及在第三时钟的前半周期期间,输出缓冲起动信号OUT_ENA改变为低层级用于锁存来自加载到图5H的数据总线的SRAM22的已有数据M(K,1)。
当处理第二数据D(K,1)和剩余数据[D(K,2)~D(K,11)]时,连续产生恒定层级的控制信号,用于控制输入缓冲器21,SRAM22,和输出缓冲器24。
简言之,从输出缓冲器24直接输出12时钟周期的第一输入数据D(K,0),绕过SRAM22。从第二到12时钟周期,将数据[D(K,1)~D(K,11)]以一预定延迟根据由地址生成单元23得到的物理地址(PA,31)存储在SRAM22。此时,在一个时钟周期期间存在相同的物理地址(PA,31)的情况下,在每个时钟的前半周期期间输出存储在SRAM22的过去输入数据,以及在每个时钟的后半周期期间将当前输入数据存储在SRAM22。
如上所述,根据本发明,通过存取存储器的中间和物理地址能够仅利用所需的最小存储容量(=B×M×(B-1)/2)字节实现更准确的卷积交错,以及减小硬件的尺寸。
尽管结合目前认为最实用的部分及优选实施例已描述了本发明,应该理解本发明不限于公开的实施例,相反,本发明意在覆盖包括在所附权利要求书的精神和范围内的各种修改和等效的布置。