最大后验概率(map)解码器的管线架构的制作方法

文档序号:7539440阅读:157来源:国知局
专利名称:最大后验概率(map)解码器的管线架构的制作方法
技术领域
本发明是有关于处理误差侦测及校正算法的领域。特别是,本发明是有关于一种有效率的管线架构,用以处理最大后验概率(MAP)算法。
背景技术
部分误差校正算法,诸如turbo解码器(Turbo Decoder)算法,是使用最大后验概率(MAP)算法的变动,用以从一已遭噪声破坏的编码位序列中回复一信息位序列。此最大后验概率(MAP)算法所需计算的递归(recursive)特性是使此种实施方式非常昂贵。
举例来说,图1是介绍此最大后验概率(MAP)算法所输出的序列为一组前向量度法(Aforward@metrics),以及一组后向量度法(Abackward@metrics)。然而,各个前向量度法.(k)是前一个前向量度法.(k-1)的一函数,且各个反向量度法.(k-1)是下一个反向量度法.(k)的一函数。如图1的时间轴(timeline)图标所介绍,实施此算法的一架构是需要一缓冲区,其容量足够大以保留所有前向量度法亦或所有反向量度法,用以在计算输出时保留另一组量度法,此设计是得到一解码器,其时延是正比于需解码方块的约两倍大小。
在减少此最大后验概率(MAP)算法所需缓冲区的努力中,此最大后验概率(MAP)算法的一种调整版本,其称作滑动窗口(sliding windows)算法,便被发展出来。通过在这些反向量度法计算中进行一小近似,此滑动窗口(sliding windows)算法便可以降低所需量度法缓冲区的大小。此方法的实施是将接收序列分割为窗口,然后再针对各个窗口进行处理。
图2是介绍当数据被分割成两个窗口时,滑动窗口计算如何执行的一时间轴(timeline)。此尾端(tail)及此学习大小(learn size)的长度,相较于欲处理数据的数量,通常是非常小。明显地,只要此窗口大小相于此学习窗口(learning windows)大小是相对较大,则通过此解码器的时延便不会大幅地增加、且保留前向量度所需的缓冲区大小亦可以大幅减少。
因此,本发明的一个目的是减少实施此类算法所关连的时延及成本。

发明内容
在本发明的管线式最大后验概率(MAP)解码器架构中,此滑动窗口算法是予调整,用以减少处理时间。一旦计算得到第一窗口的前向量度后,各个窗口的反向量度是在计算下一个窗口的前向量度时加以计算。当每个新前向量度是加以计算并储存于内存中时,前一个窗口的前向量度是由内存中读取,用以能够计算新反向量度。前一个窗口的各个前向量度是在公共时钟沿时从内存中读取,用以使下一个窗口的新前向量度得以写入相同的内存位置。通过如此地自内存中读取前向量度及写入前向量度至内存中,此前向量度缓冲区大小并不需要增加。这些管线式计算亦可以执行,若数据是分割为两个窗口。虽然本架构是发展于一turbo解码器(Turbo Decoder)中,使用此最大后验概率(MAP)算法的一版本的任何解码器亦可以使用此架构。此管线式滑动窗口架构是减少处理时间。此标准滑动窗口架构是需要运行于一大幅提高的时钟速率,用以达到相同的通量。


本发明将配合所附图式说明如下,其中,类似标号是用以表示类似组件,并且图1是一先前技术误差校正算法架构的一时间轴的一范例;图2是一先前技术误差校正算法架构的一时间轴的一第二范例,其中,前向及反向量度是利用滑动窗口以计算得到;图3是一turbo解码器(turbo decoder)的一方块图,其中,这些前向及反向量度的计算是加以反向;以及图4是本发明误差校正架构的一时间轴。
具体实施例方式
本发明的图3是一turbo解码器(turbo decoder)的一方块图,其中,本发明的管线式解码器架构是可以常驻其中。在本发明的管线式最大后验概率(MAP)解码器架构中,此滑动窗口算法是予调整,用以减少处理时间。图4是介绍利用本发明完成的时间轴。一旦计算得到第一窗口的前向量度时,各个窗口的反向量度是在计算下一个窗口的前向量度时加以计算。当每个新前向量度是加以计算并储存于内存时,前一个窗口的前向量度是由内存中读取,用以能够计算新反向量度。各个前向量度是在公共时钟沿时由内存中读取,用以将新前向量度写入相同内存位置。通过如此地自内存中读取前向量度及写入前向量度至内存中,此前向量度缓冲区的大小便可以不需增加。
图3是表示一turbo解码器(turbo decoder)一实施例的一方块图,其是结合本发明的原理及技术。
此turbo解码器(turbo decoder)10是接收一传送装置的数据,诸如举例来说,将各个数据位(A1@或A0@)转换为三个位(亦即一数据或系统位(s)、一第一奇偶校验位(p1)、以及一第二奇偶校验位(p2))的一基站。这些数据(s、p1、p2)是施加于一缓存器12,其亦接收由一外来内存14读取的外来数据(将于下文中更详细地说明)、及由一交错地址缓存器16得到的一地址。内存缓存器12是如此启始地接收及储存这些数据(s、p1、p2)、在传输线14a出现的外来数据、及在传输线16a出现、外来数据设置的一地址。此地址是于整体计算中伴随这些数据(s、p1、p2),其目的将于下文中更详细地说明。
这些数据(s、p1、p2)是由缓存器12转移至伽玛.()计算器18、并进一步储存于本地内存20中。
如turbo解码器(turbo decoder)中所习知,三个数量阿法.()、贝塔.()、及伽玛.()是加以定义。对于某个特定状态及某个特定时间步骤而言,是具有一数值以定义编码器在此特定时间步骤、此状态时的机率。阿法是递归地开始于时间k=1并沿着时间前向移动以推导得到。此数值阿法.()是类似于伽玛.(),但却是沿着时间后向进行。伽玛.()是定义为此编码器由某给定时间移动至在下一个后续时间递增某允许状态的变迁机率。根据伽玛.()所表示的状态变迁机率,在一交织中所有状态的阿法.()是可以加以计算。在阶段18所执行的伽玛.()计算是储存于缓存器22中。计算阶段24及26是分别计算各个阿法、并这些阿法计算正规化。各个阿法.()数值是根据来自缓存器22的输入以及在输入24b所提供的先前计算阿法数值而加以计算、并经由多任务器28及缓存器30而由计算阶段26输出,其是保留八个计算数值。缓存器30的输出是耦合于阿法内存32的输入,其是储存第一计算阿法数值于第一内存位置23a、并且亦提供计算得到的阿法数值至输入24b。
为启始化此计算,并且,在此启始状态开始,八个启始阿法量度是设定为某个启始数值,其是施加于多任务器28的启始化输入28a以致能计算阶段24及26,用以计算阿法的八个数值。如上文中所述,这些数据(s、p1、p2)是储存于本地内存20中。
启始地,所有阿法数值是加以计算,据此,贝塔数值是应用由本地内存20以反向顺序(亦即后进先出顺序(Alast-in,first-out@))读取的这些数据(s、p1、p2)而加以计算,用以执行贝塔后向递归方程式所需要的计算。当本地内存20中最后读取的这些数据(s、p1、p2)被读取至缓存器34时,其不仅仅包括这些数据(s、p1、p2)、亦包括外来数值(其在启始阶段操作中是零)及表示内存位置的数据(其中,启始外来数值是位于外来内存14中)。这些数据(s、p1、p2)及外来数据是于伽玛计算阶段36进行计算。此伽玛计算阶段36的输出是施加于伽玛缓存器38及40。这些贝塔计算是分别由贝塔计算阶段44及贝塔正规化阶段46加以执行。启始地,二进制一(A1@)的一开始条件是施加于多任务器42的输入42a。此正规化贝塔计算是经由输出缓存器48而启始地施加于外来数值计算阶段50,其进一步将最后计算得到的输入施加于多任务器42的输入42b。外来数值计算阶段50是通过检查在输入58接收缓存器52的阿法数值、在输入50b接收缓存器38的伽玛数值、及在输入50c接收缓存器48的贝塔输出,用以计算各个时间状态k的一外来数值。缓存器48、52、38是提供以确认在此外来数值计算阶段50的信号的时间注册。
第一数值外来计算阶段50所计算的中间数值是施加于缓存器54,其是将其内容转移至外来数值计算的第二阶段56。
如上文中所述,缓存器34是将其内容转移至缓存器58,其接下来再将其内容转移至缓存器60,缓存器60的内容是由第二外部数值计算阶段56的输出所出现的外来数值中减去,此减法阶段是执行于减法电路62。
在阶段56得到的外来数值是进一步施加于一软进硬出(SIHO)电路64,其包括一二进制状态决定电路66,用以接收第二外来计算阶段56的输出。此软进硬出(SIHO)64中电路66的操作是进一步说明如下。
在差电路62的差输出是施加于缓存器68,其施加此外来数值计算至外来内存14b的传输线14b。如上文中所述,本地内存20,除了储存数据、奇偶校验、及外来数值以外,更储存外来内存14的第一外来数值地址,此地址是成功地经由内存缓存器34及时间同步缓存器70、72、74耦合,用以提供外来内存14中储存外来数值计算的位置,此内存地址数据是施加于外来内存14的传输线14c。
如上文中所述,其参考图2所示的范例,决定阿法的一半计算是在第一时间窗口k/2期间执行。
反向量度.()的计算是于此第一窗口的后半(k/2)期间执行。阿法数值是由阿法内存32中、以其储存的反向顺序读取。在图3的实施例中,在窗口2前向量度期间计算的阿法数值(参照图4)是同时储存于在窗口1期间计算的阿法数值被读取(用以计算外来数值)的内存地址,用以减少一半内存容量。值得注意的是,新计算的阿法数值,相对于第一窗口期间计算的阿法数值,是以反向顺序储存。
在各个后续配对的窗口计算中,执行计算的数目是计算外来数值所要迭代数目的一函数,在阿法内存32中读取及写入阿法数值的顺序是加以反向,用以使得当先前计算的阿法数值(其是以由最后内存地址至第一内存地址的顺序储存)被读取时,阿法数值是以反向顺序(由第一内存地址至最后内存地址)被读取、且这些阿法数值是决定于前向量度第二迭代的窗口2中,在计算阶段24/26计算的新数值是被读取至先前阿法数值被读取的地址。
如上文中所述,当计算完一外来数值时(亦即当第一迭代完成时),此外来数值是由外来内存14中读取、并且用于下一个迭代的计算期间。习知控制电路,为简化目的而未予图标,是决定欲执行迭代的数目。
如上文中所述,当决定各个外来数值时,其是施加于电路66以利用振幅检查决定此数据位是一个A1@或A0@,并且,当超过一特定临界数值时决定为一个A1@,及当低于一特定临界数值时决定为一个A0@。此建立数值是施加于缓存器76并与外来数值内存地址合并,其是由缓存器74导出并施加于合并电路78。此输出位是写入一内存84。此软进硬出(SIHO)电路64是将各个位写入一内存位置,其中,每一列的宽度是十六位。此合并电路多任务器78、多任务器电路80、及输出内存读取缓存器82是操作以通过储存二进制状态决定电路66估计的十六个数据位,进而利用各内存位置的所有十六个位。
虽然图3的实施例是教导一种实施方式,其中,阿法是在第一窗口期间计算、且贝塔是在第一窗口的后半部期间计算,熟习此技艺者当了解,阿法及贝塔计算亦可以加以反向,如图3a所示,其仍然可以具有图1所示实施例的所有好处(亦即大幅减少计算时间、并在图3turbo解码器(turbo decoder)中减少50%的内存需求,相较于现今的技术及装置)。本发明的架构亦可以进一步缩减内存大小。举例来说,数据是可以使用三个窗口、四个窗口、…加以处理,其可以进一步缩减内存大小。举例来说,使用四个窗口是可以导致一内存大小,其是三倍于没有应用窗口处理的内存大小。
图4亦介绍这些管线式计算是如何执行的,若数据是分割为两个窗口时。忽略学习窗口的大小及尾端位的数目,经由此范例中管线滑动窗口解码器的时延是正比于12K,相对于简单滑动窗口架构中的2K。时延是可以根据需要处理的数据数量,通过改变窗口大小、窗口数目、及学习大小而减少。
虽然上述架构是发展于一turbo解码器(turbo decoder),然而,所有卷积编码亦可以使用一最大后验概率(MAP)解码器。前向量度的计算是可以在反向量度的前或的后计算。此反向量度是可以预先计算,且随后,前向量度是可以在执行输出计算时加以计算。此是可以利用,举例来说,图3A的实施例加以完成,其中,计算方块241是一贝塔计算器;计算方块24是一贝塔正规化计算方块;内存321是一贝塔内存;计算方块441是一阿法计算方块;且计算方块461是一阿法正规化计算方块。
图3A实施例的其它操作是大体上与图3实施例相同。
权利要求
1.一种用于操作turbo解码器中的内存的方法,包括在第一窗口期间计算接收数据的前向量度;按照计算该前向量度的顺序,将在该第一窗口期间所计算的前向量度储存于该内存中;在第二窗口期间计算接收数据的前向量度;以及将在该第二窗口期间所计算的前向量度储存于该内存中,其中储存在该内存中且在该第二窗口期间所计算的每一个前向量度是被读取至该内存中的相同内存位置,所述内存位置是由在该第一窗口期间所计算的前向量度所占据,且读取自该内存以用于反向量度计算。
2.如权利要求1所述的方法,其中该数据包括一数据位以及伴随的至少一个奇偶校验位;该方法更包括对每一个数据指定一地址,其中该地址在计算期间伴随该数据。
3.如权利要求1所述的方法,其中在储存步骤中更包括将在该第二窗口期间所计算的前向量度储存于该内存中一给定时钟沿上的内存位置,并在该第一窗口期间读取所计算且占据该给定时钟沿上的该内存位置的前向量度。
4.如权利要求2所述的方法,其中该数据包括该数据位以及在计算期间伴随该数据的至少两个奇偶校验位。
5.如权利要求1所述的方法,更包括对每一个接收数据指定外来数据。
6.如权利要求5所述的方法,更包括在执行前向量度计算时使用该外来数据。
7.如权利要求1所述的方法,更包括按照储存前向量度的反向顺序,自该内存读取于该第一窗口期间所储存的前向量度。
8.一种用于决定接收信号的二进位状态的方法,包括a)接收数据位,每一位伴随有至少一个奇偶校验位;b)提供地址和相关的内在数据给所接收的每一位;c)将步骤a)的结果储存于第一内存中;d)在第一窗口期间,按照一给定顺序对所接收的每一个数据位与相关的内在数据执行前向量度计算;e)将所计算的每一个前向量度储存于第二内存中;f)在第二窗口期间,按照该给定顺序对所接收的每一个数据位与相关的内在数据执行前向量度计算;g)自该第二内存中的内存位置读取在该第一窗口期间所计算的每一个前向量度,同时,将在该第二窗口期间所计算的前向量度读入该内存位置中,其中在该第一窗口期间所计算的前向量度是从该内存位置被读取;以及h)使用在该第一窗口期间储存于该第一内存中的数据以及在该第一窗口期间所计算的前向量度,以于该第二窗口期间计算反向量度。
9.一种用于操作turbo解码器中的内存的装置,包括用于在第一窗口期间计算接收数据的前向量度的装置;用于储存前向量度的装置,其按照计算该前向量度的顺序,将在该第一窗口期间所计算的前向量度储存于该内存中;用于在第二窗口期间计算接收数据的前向量度的装置;以及用于将在该第二窗口期间所计算的前向量度储存于该内存中的装置,其中储存在该内存中且在该第二窗口期间所计算的每一个前向量度是被读取至该内存中的相同内存位置,所述内存位置是由在该第一窗口期间所计算的前向量度所占据,且读取自该内存以用于反向量度计算。
10.如权利要求9所述的装置,其中该数据包括一数据位以及伴随的至少一个奇偶校验位,该装置更包括用于对每一个数据指定地址的装置,其中该地址在计算期间伴随该数据。
11.如权利要求9所述的装置,其中该用于储存的装置更包括用于储存在该第二窗口期间所计算的前向量度的装置,其将在该第二窗口期间所计算的前向量度储存于该内存中一给定时钟沿上的内存位置,并在该第一窗口期间读取所计算且占据该给定时钟沿上的该内存位置的前向量度。
12.如权利要求10所述的装置,其中该数据包括该数据位以及在计算期间伴随该数据的至少两个奇偶校验位。
13.如权利要求9所述的装置,更包括对每一个接收数据指定外来数据。
14.如权利要求13所述的装置,更包括该用于计算的装置包括用于在执行前向量度计算时使用该外来数据的装置。
15.如权利要求9所述的装置,更包括该用于读取内存的装置按照储存前向量度的反向顺序,自该内存读取于该第一窗口期间所储存的前向量度。
16.一种用于决定接收信号的二进位状态的装置,包括用于接收数据位的装置,其中每一位伴随有至少一个奇偶校验位;用于提供地址和相关的内在数据给所接收的每一位的装置;用于将每一位以及相关的地址与内在数据储存于第一内存中的装置;用于对所接收的每一个数据位执行前向量度计算的装置,其在第二窗口期间,按照该给定顺序对所接收的每一个数据执行前向量度计算;用于读取的装置,其自该第二内存中的内存位置读取在该第一窗口期间所计算的每一个前向量度,同时,将在该第二窗口期间所计算的前向量度读入该内存位置中,其中在该第一窗口期间所计算的前向量度是从该内存位置被读取;以及用于使用在该第一窗口期间储存于该第一内存中的数据以及在该第一窗口期间所计算的前向量度的装置,以于该第二窗口期间计算反向量度。
17.一种用于操作turbo解码器中的内存的方法,包括在第一窗口期间计算接收数据的反向量度;按照计算该反向量度的顺序,将在该第一窗口期间所计算的反向量度储存于该内存中;在第二窗口期间计算接收数据的反向量度;以及将在该第二窗口期间所计算的反向量度储存于该内存中,其中储存在该内存中且在该第二窗口期间所计算的每一个反向量度是被读取至该内存中的相同内存位置,所述内存位置是由在该第一窗口期间所计算的反向量度所占据,且读取自该内存以用于前向量度计算。
18.如权利要求17所述的方法,其中该数据包括一数据位以及伴随的至少一个奇偶校验位;该方法更包括对每一个数据指定一地址,其中该地址在计算期间伴随该数据。
19.如权利要求17所述的方法,其中在储存步骤中更包括将在该第二窗口期间所计算的反向量度储存于该内存中一给定时钟沿上的内存位置,并读取占据该给定时钟沿上的该内存位置的反向量度。
20.如权利要求18所述的方法,其中该数据包括该数据位以及在计算期间伴随该数据的至少两个奇偶校验位。
21.如权利要求17所述的方法,更包括对每一个接收数据指定外来数据。
22.如权利要求21所述的方法,更包括在执行反向量度计算时使用该外来数据。
23.如权利要求17所述的方法,更包括按照储存反向量度的反向顺序,自该内存读取于该第一窗口期间所储存的反向量度。
24.一种用于决定接收信号的二进位状态的方法,包括a)接收数据位,每一位伴随有至少一个奇偶校验位;b)提供地址和相关的内在数据给所接收的每一位;c)将步骤a)的结果储存于第一内存中;d)在第一窗口期间,按照该给定顺序对所接收的每一个数据位与相关的内在数据执行反向量度计算;e)自该第二内存中的内存位置读取在该第一窗口期间所计算的每一个反向量度,同时,将在该第二窗口期间所计算的反向量度读入该内存位置中,其中在该第一窗口期间所计算的反向量度是从该内存位置被读取;以及f)使用在该第一窗口期间储存于该第一内存中的数据以及在该第一窗口期间所计算的反向量度,以于该第二窗口期间计算前向量度。
25.一种用于操作turbo解码器中的内存的装置,包括用于在第一窗口期间计算接收数据的反向量度的装置;用于储存反向量度的装置,其按照计算该反向量度的顺序,将在该第一窗口期间所计算的反向量度储存于该内存中;用于在第二窗口期间计算接收数据的反向量度的装置;以及用于将在该第二窗口期间所计算的反向量度储存于该内存中的装置,其中储存在该内存中且在该第二窗口期间所计算的每一个反向量度是被读取至该内存中的相同内存位置,所述内存位置是由在该第一窗口期间所计算的反向量度所占据,且读取自该内存以用于前向量度计算。
26.如权利要求25所述的装置,其中该数据包括一数据位以及伴随的至少一个奇偶校验位,且该装置更包括用于对每一个数据指定地址的装置,其中该地址在计算期间伴随该数据。
27.如权利要求25所述的装置,其中该储存装置更包括用于储存在该第二窗口期间所计算的反向量度的装置,其将在该第二窗口期间所计算的反向量度储存于该内存中一给定时钟沿上的内存位置,并读取占据该给定时钟沿上的该内存位置的反向量度。
28.如权利要求26所述的装置,其中该数据包括该数据位以及在量度计算期间伴随该数据的至少两个奇偶校验位。
29.如权利要求25所述的装置,更包括对每一个接收数据指定外来数据。
30.如权利要求29所述的装置,更包括用于在执行反向量度计算时使用该外来数据的装置。
31.如权利要求25所述的装置,更包括用于读取内存的装置是按照储存反向量度的反向顺序,自该内存读取于该第一窗口期间所储存的反向量度。
32.一种用于决定接收信号的二进位状态的装置,包括用于接收数据位的装置,其中每一位伴随有至少一个奇偶校验位;用于提供地址和相关的内在数据给所接收的每一位的装置;用于将每一位以及相关的位置与内在数据储存于第一内存中的装置;用于执行反向量度计算的装置,其在第一窗口期间,按照一给定顺序对所接收的每一个数据位执行反向量度计算;用于将所计算的每一个反向量度储存于第二内存中的装置;用于执行反向量度计算的装置,其在第二窗口期间,按照该给定顺序对所接收的每一个数据位执行反向量度计算;用于读取的装置,其自该第二内存中的内存位置读取在该第一窗口期间所计算的每一个反向量度,同时,将在该第二窗口期间所计算的反向量度读入该内存位置中,其中在该第一窗口期间所计算的反向量度是从该内存位置被读取;以及用于使用在该第一窗口期间储存于该第一内存中的数据以及在该第一窗口期间所计算的反向量度的装置,以于该第二窗口期间计算前向量度。
全文摘要
管线最大后验概率(MAP)解码器架构的滑动窗口算法是调整以降低处理时间。一旦计算得到此解码器第一滑动窗口的前向量度时,各个窗口的反向量度是在计算下一个窗口的前向量度时加以计算。当各个新前向量度是加以计算并储存于内存中时,前一个窗口的前向量度是由内存中读取,用以与计算外来数值中所计算的反向量度搭配使用。用以计算一外来数值的各个前向量度是由内存中、在公共时钟沿读取,用以使得新前向量度能够写入相同内存地址。虽然本架构是发展于一turbo解码器(turbo decoder),所有卷积编码亦可以使用本发明的最大后验概率(MAP)算法。
文档编号H03M13/29GK1941637SQ200610146459
公开日2007年4月4日 申请日期2002年4月15日 优先权日2001年9月6日
发明者爱德华·L·海伯勒, 麦可·F·斯达西尼克 申请人:美商内数位科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1