优化的维特比解码器和全球导航卫星系统接收器的制造方法_3

文档序号:8284307阅读:来源:国知局
将如何在标准3操作数CPU上实施,其中所述3个操作数将表示2个源操作数和I个目的地操作数。此处,可看到,必须将操作划分为至少3个顺序指令。这归因于指令操作数格式限制,其不允许足够的位用于编码足够的寄存器且还一般将为对寄存器堆在一个周期中接受一个以上写入操作的能力的限制。在此编码中,在每一操作码中显式地编码所有寄存器且所有寄存器存在于通用寄存器堆中。
[0078]在下部部分中,使用对一些寄存器的隐式编码且将这些特殊字段实施为与通用寄存器堆分开的专用寄存器来说明相同操作。
[0079]图8和图9涉及本发明的一方面,其中通过使寄存器寻址隐含于指令中来获得图3的最佳途径。
[0080]图9的图展示维特比指令所实施的实际功能。在此图中,选择一对先前状态(Sa,Sb),其对应于用于新状态Sc的所述对潜在前驱者状态。由多路复用器(901)选择以将产生新状态的方式解译新符号的对应成本,且由加法器(902)将其加到这些先前状态的对应成本,从而产生到达状态Sc的一对潜在成本(903)。这些成本经比较且由选择器(904)选择最低成本前驱者状态,指示对应的位转变(905)且输出对应成本(906)。这些对应成本将可能随着施加每一新符号而针对每一状态增加,然而由于状态存储器限于有限数目的状态(在此情况下为6个状态),所以在对应于所有状态的成本的任何例子处存在一组值,其中最小值与最大值之间的范围由最大状态转变成本和最大状态存储器限制。在此实例中,这小于64以便防止状态成本无限增长,当任何状态成本超过128时输出指示(907)。
[0081]将先前状态成本中的至少一者> 128的指示(908)供应到规格化块909,且此规格化块通过减去64来规格化状态成本,这保证所有状态成本将保持在有限整数范围内。
[0082]从所述指令输出所得新状态成本910且其还由最小成本块911使用。此块的目的在于监视在新符号处理期间计算的所有状态成本且确定所有所得的新状态成本集合中的最低成本。
[0083]—旦已确定了产生状态的转变,便计算用于所述状态的新成本且更新状态成本表。
[0084]供应新符号,由多路复用器901选择将符号解译为I或O的相关联成本中的每一者,在加法器902中将这些成本加到先前符号成本,从而产生与所述符号的2个可能解译相关联的一对成本903。
[0085]由于所述结果和控制变量中的若干者在长度上小于32位,所以这些可合并为单个32位核心寄存器的子字段。
[0086]为了使得能够在多个占先任务中操作指令集扩展,还有必要保存这些寄存器和任何状态,这在这些状态旗标也被合并到相同控制寄存器中的情况下进一步被简化。
[0087]—旦已处理了足够的符号,便有必要执行追溯操作以确定产生当前状态的分支序列。这是相对简单的操作,但再次涉及大量的地址计算、位操纵和数据加载操作。再次,这些可使用用以执行每一追溯步骤的专用指令和用于寻址追溯历史的专用寄存器来有效地实施。
[0088]考虑在图10的网格图中发射的位序列。在此编码中,Rx和Ry表示存在于通用寄存器堆外部的特殊寄存器中的4个所需源操作数中的2个操作数,且Rp、Rq表示保存在寄存器堆外部的特殊寄存器中的结果中的2个结果,且因此可为寄存器的子字段且可甚至与Rx和Ry重叠。
[0089]在发射所述数据之后,接收器计算成本和追溯,且实现图2的成本和追溯历史。
[0090]如果追溯在T = 6处开始且发现状态10为最低成本状态,那么接收器解码序列101101,其处于发射数据的相反次序且接着需要如图11中那样被倒转。
[0091]在接收另一符号且再次从最低成本路径(其再次假设为状态“10”)开始之后,接收器现在解码1000101,如图12所示;显然,在一些符号之后,路径会聚且没有必要追溯超过状态T = 3。
[0092]在追溯期间,在添加每一新符号之后,除了偏移I个位之外,路径将通常不显著改变,还明白,一旦新追溯历史在先前历史中会聚于一状态,其便将永远不会再次分叉,因而有可能通过用先前追溯操作检测会聚来减少在追溯上花费的努力。在SW中,这是复杂的任务,其涉及在比较之前掩蔽并旋转位字段,此操作的开销向每一迭代添加足以使得其益处被否定的额外周期,然而使用专用硬件来使用追溯索引选择字段来存取这些位字段意味着其可透明地执行且大大减少追溯操作所消耗的功率和周期。
[0093]一旦已执行了追溯,便通常一次I字节地提取最旧的数据位,然而在初始阶段期间,通常正在搜索同步模式且不知道位对准,这进一步使用于SW的初始追溯操作复杂化,但再次可通过添加用于以对准到CPU寄存器中的正确次序提取最旧位的特定指令和用于在若干位已被使用时“消耗”所述位的单独指令来进行优化,以此方式可提取并比较字节,从而一次丢弃一个位,直到已检测到同步为止,此后以应用程序处理位的速率来消耗所述位。
[0094]作为最后的功能,维特比处理中的每一者需要数据结构含有维特比状态、追溯历史、追溯表和状态成本表。这些需要针对每一信道而分开,且因此所有地址将需要某一偏移。这可再次通过将维特比数据结构基础地址实施为维特比控制/状态字的部分来向处理器隐藏。
[0095]为了最小化对其它处理的影响,优选隐式维特比寄存器作为对核心cpu寄存器的补充,且SW能够在上下文切换时有效地保存其状态,然而大多数处理将不使用这些寄存器,因而其不需要保存所述寄存器。
[0096]为了最小化对其进行保存的次数,在OS不需要针对每一处理知道是否需要其的情况下,可将额外状态位添加到维特比状态/控制寄存器以指示何时维特比块处于使用中,这些可由维特比指令根据处理的状态来自动设定/清除,以此方式,上下文切换可测试这些旗标以确定是否存在将要保存的任何上下文,以此方式,其不从未使用所述功能性的处理中占用有价值的堆栈空间,且其在未有效处于使用中的情况下不被存储,因此可在多线程环境中有效地使用维特比。
[0097]根据本发明的另一方面,本发明涉及一种根据以上描述的本发明的方法针对解码经卷积编码的数据而优化的处理器。所述处理器经布置以用虚幻寄存器扩展处理器的寄存器集合,所述虚幻寄存器在物理上不具有任何寄存器存储装置,而是基于用作循环控制寄存器的核心寄存器字段以及指示当前状态成本集合分配和数据结构的基础地址且选择当前和下一状态表的映射的状态寄存器字段来返回用于源和目的地状态成本操作数的地址。
[0098]参看图13,本发明的处理器的操作由以包含多个字段的单个字(或操作码)的形式存储在存储器中的指令控制。在所说明的实例中,举例来说,操作码147说明典型的3操作数指令,其由两个源操作数148、指令字段150和目的地寄存器地址(149)组成。
[0099]操作数OPl、OP2用以借助于多路复用器142从寄存器堆141选择两个源操作数,所述源操作数被传递到ALU 146。ALU的输出通常使用地址149通过未说明的路径而被写回到寄存器堆141中。
[0100]在所说明的实例中,寄存器堆141包含32个位置或寄存器RO到R31,但这并不是对本发明的限制。还必须了解,图14是打算说明处理器中的逻辑数据流的简化功能图,且其并不限制本发明的处理器的结构。明确地说,本发明还包括管线式架构,其中在不同时间执行这些操作。
[0101]根据本发明,操作码147可包括去往“虚幻寄存器”143的地址,其不对应于寄存器堆141中的单独存储空间,而是为在寄存器RO到R31中的值和/或在CPU内部或外部的额外值151、152的逻辑函数。当由指令寻址时,虚幻寄存器返回根据信号和/或并未由指令显式寻址的寄存器而计算的值。
[0102]在此实例中,操作码147以每一者6个位的方式存储操作数地址148,因而给出寻址比32个物理寄存器多的操作数的能力。可例如通过对在寄存器堆141中没有配对物的一个地址进行编码来存取虚幻寄存器。
[0103]尽管图14的图展示算术指令的典型格式和处理,但CPU通常还具有非算术指令,例如加载/存储指令。根据本发明,这些指令的操作数也可为虚幻寄存器143。还希望本发明可包括多个虚幻寄存器,且其可彼此交互,例如其中一些虚幻寄存器尤其取决于其它虚幻寄存器的值。本发明还包括其中一些虚幻寄存器与独立存储器元件有关且其可保持例如额外隐臧的寄存器等状态的情况。
[0104]有利的是,虚幻寄存器经布置以基于用作循环控制寄存器的核心寄存器字段以及指示当前状态成本集合分配和数据结构的基础地址且选择当前和下一状态表的映射的状态寄存器字段来返回用于源和目的地状态成本操作数的地址。
【主权项】
1.一种用于解码经卷积编码的数据的处理器,所述处理器经配置以: 将转变成本设置为处于范围O到M内的非负值,其中M为在K个步骤中获得的最大成本,其中K为所述经卷积编码的数据中的存储器位的数目;以及 为每个累积路径成本分配N个位,其中(2~(K+1)*M)-1 < 2~N-1, 其中所述处理器进一步经配置以执行用以实施加-比-选
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1