CN101341470B - 查找表寻址系统及方法 - Google Patents

查找表寻址系统及方法 Download PDF

Info

Publication number
CN101341470B
CN101341470B CN2006800478981A CN200680047898A CN101341470B CN 101341470 B CN101341470 B CN 101341470B CN 2006800478981 A CN2006800478981 A CN 2006800478981A CN 200680047898 A CN200680047898 A CN 200680047898A CN 101341470 B CN101341470 B CN 101341470B
Authority
CN
China
Prior art keywords
look
register
data
table addressing
field
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.)
Expired - Fee Related
Application number
CN2006800478981A
Other languages
English (en)
Other versions
CN101341470A (zh
Inventor
J·威尔逊
J·A·卡布罗特斯基
Y·斯坦
C·M·梅尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of CN101341470A publication Critical patent/CN101341470A/zh
Application granted granted Critical
Publication of CN101341470B publication Critical patent/CN101341470B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Detection And Correction Of Errors (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)
  • Error Detection And Correction (AREA)

Abstract

具有位于外部存储器的一组查找表的查找表寻址系统,其是通过以下步骤实现的:将数据字从计算单元传输到数据地址产生器中的输入寄存器;向所述数据地址产生器提供至少一个存入-递增变址寄存器,包括用于识别位于存储器中的所述一组表的位置的表基址字段和位移字段;以及将所述数据字的一部分存放进入所述变址寄存器的位移字段,所述位移字段用于识别具体条目在所述表中的位置。

Description

查找表寻址系统及方法
技术领域
本发明涉及一种改进的查找表寻址系统和方法。
背景技术
随着计算机的速度由33MHz提高到1.0GHz甚至更高,计算机运算不能在一个周期内完成。于是采用了管线技术来最高效地利用更高的处理器性能并增加吞吐量。当前,深管线的使用已经多达15级甚至更多。一般来说,在管线化计算系统中有数个同时工作的平行构建部件,其中每一个部件分管整个处理中各个不同的部份。例如,计算单元(CU)负责计算,包含数据地址产生器(DAG)和定序器或控制电路的寻址单元,其中数据地址产生器负责根据所选的地址模式来获取数据并将其存储进入存储器以及定序器或控制电路解码并发出指令。DAG只是能够对存储器寻址的部件。结果,在深管线化系统中,如果某个指令取决于由前一个指令的结果,则在某个管线停止的地方,该管线会出现停滞,在重新开始工作之前等待有问题的指令结束。例如,如果在计算之后,DAG需要CU的输出来获取下一个数据,这种输出不能直接传送到DAG从而作为获取数据的条件:在能被DAG处理继续获取下一个数据之前其必须被传送通过管线。这是因为只有DAG能访问存储器并且能够将计算单元结果转换为地址指针以定位想要的数据。在多任务通用计算机中,这种停滞可能不是很关键,但在比如用于蜂窝电话、数字摄像机中的实时计算机系统中,这些停滞就是个问题。参见Wilson等人在2005年10月26日提交的题目为“IMPROVED PIPELINE DIGITAL SIGNAL PROCESSOR”的美国专利申请,序列号No.11/258,801,其全文通过引用集及于此。
在一种实施方式中,使用比特置换来实现数据加密。在CU中可以进行这种比特置换,但CU中的算术逻辑单元(ALU)被优化用于16、32或64比特运算,而对于逐比特置换则效率不高。例如,如果由ALU进行这种置换,每一比特需要三个运算周期:掩码(mask),移位(shift)和或运算(OR)需要。结果,置换单个32位字需要96个或更多的周期。
在另一种实施方式中,代替在ALU中进行置换,置换值可被存储在位于外部存储器中的查找表中。但是,此时在ALU中的R寄存器必须传送字,例如32位,到可以对外部存储器查找表寻址的DAG中的指针(P)寄存器。然而这需要具有大于33.5兆字节的内存或232位的庞大的查找表(LUT)。为了克服这个问题,可以将ALU中的R寄存器中的32位字处理为例如,4个字节(8位)或8个半字节(4位)。这降低了所需的存储容量:对于4个字节,需要4个具有256条目、每一个为32位的查找表(或4千字节LUT)而对于8个半字节,需要16条目的8个、每一个为32位的查找表(或512字节LUT)。但是,这也产生了问题:此时对于单个32位字,ALU要求传输4(字节)或8(半字节)到DAG的P寄存器。每一次传输依次引起许多前面讨论过的管线停滞问题。
在不同的但相关的问题中,线性反馈移位寄存器(LFSR)例如,CRC(循环冗余检验码)、加扰器(scrambler)、解扰器(de-scrambler)中,栅格编码(trellis)在通信系统中被广泛使用。使用掩码/移位/OR运算周期,这种LFSR运算可以通过CU按比例变化(scaled),每次一位,与前面所述的具有同样的问题。或者可以使用利用每周期4、8或16位的解决所述LFSR问题的特定硬件块,例如,ASIC、FPGA。通过使用外部查找表或表,可以消除CU中的掩码/移位/OR方法和ASIC方法,但仍带有所有上述缺点。
发明内容
因此,本发明的一个目的是提供一种改进的查找表寻址系统和方法。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其最小化在计算单元和数据地址产生器之间出现的管线停滞。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其优化所述查找表的大小。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其加速线性反馈移位寄存器运算而无需额外的专用硬件,例如ASIC或FPGA。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其更快且更省电。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其能够再利用现有的处理器部件。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其加速置换运算而无需增加专用硬件,例如ASIC或FPGA。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其能被充分地变化尺寸以适应更大的存储要求。
本发明的另一个目的是提供这样的改进的查找表寻址系统和方法,其能适应于多种不同的应用,例如,编密码、置换和线性反馈移位寄存器实现,包括CRC、加扰、解扰以及栅格编码。
本发明是基于这样一种认识而产生的:通过进行以下步骤可以得到一种改进的查找表寻址系统和方法,该系统和方法最小化管线停滞,优化查找表的大小,更快,更省电,能够再利用现有的处理部件以及能截剪且适应于多种不同的应用。该步骤为:从计算单元传输数据字到数据地址产生器中的输入寄存器;向所述数据地址产生器中至少一个存放-递增(deposit-increment)变址寄存器提供用于识别在一组表中的特定一个的位置的表变址字段和位移字段,所述数据地址产生器具有用于识别一组表在存储器中的位置的表基址字段;以及将数据字的一部分存放进入存放-递增变址寄存器的用于识别具体条目在所述表中的位置的位移字段中。
然而,在其它实施方式中的发明不需要实现所有这些目的,并且这里权利要求不受能够实现这些目的的结构和方法的限制。
本发明描述了一种查找表寻址系统,该系统在外部存储器中有一组查找表,包括具有输入寄存器和存放-递增变址寄存器的数据地址产生器,该输入寄存器用于从计算单元接收数据字,该存放-递增变址寄存器具有用于识别所述一组表在存储器中的位置的表基址。位移字段识别特定条目在那个特定表中的位置,所述数据地址产生器配置为使数据字的一部分存放进入位移字段从而存取该具体条目。
在一种优选的实施方式中,所述条目包括对应于所述数据字的部分的局部结果。所述计算单元可以包括累加寄存器、查找表目的寄存器和结合电路;所述计算单元可以配置为累加来自所有所述数据字的部分的局部结果来获得最终结果。所述目的寄存器可以是所述计算单元数据寄存器堆的任何一个。所述数据地址产生器可以包括多个指针寄存器而所述存放-递增变址寄存器可以由所述指针寄存器中的其中一个实现。所述数据地址产生器还可以包括多个指针寄存器而所述存放-递增输入寄存器可以由所述指针寄存器中的其中一个实现。所述存放-递增变址寄存器的变址字段可以配置为被递增以识别在所述一组表中的下一个表。所述局部结果可以包括所述对应部分的数据位,而且所述数据地址产生器可以进一步被配置为将那些位映射到预定的输出字。所述目的字和数据字可以具有同等位数。所述目的字和数据字可以具有不等的位数。所述结合电路可以是异或电路。所述结合电路可以是加法电路。所述数据地址产生器可以包括第二变址寄存器并且所述数据地址产生器可以配置为将所述数据字的第二部分存放进入所述第二存放-递增变址寄存器的位移字段中。所述数据地址产生器可以配置为将所述变址寄存器预载到已知的表地址。所述已知的表地址可以是一个起始地址。所述位字段可以是字节。所述位字段可以是半字节。
本发明还描述了一种查找表寻址方法,用于在外部存储器中提供一组查找表的服务(service),包括从计算单元传送数据字到数据地址产生器中的输入寄存器。在所述数据地址产生器中配备至少一个存放-递增变址寄存器,包括表基址字段,用于识别位于一组表在存储器中的位置并包括所述变址寄存器中的位移字段,用于识别特定条目在所述表中的位置。
在一种优选的实施方式中,所述条目可以包括对应于所述数据字的部分的局部结果。可以累加来自所述数据字的所有部分的局部结果来获得最终结果。可以对表基址字段进行递增来识别在所述数据地址产生器中的组中的下一个表。所述局部结果可以包括数据位,并且还可以包括将那些位映射到预定的输出字。所述输出字和数据字可以具有同等位数。所述输出字和数据字可以具有不等位数。累加可以包括异或运算。累加可以包括求和运算。其可以包括将所述数据字的第二部分存放进入另一个变址寄存器位移字段中用于识别平行于第一个中的另一个特定条目的位置。其可以包括预载所述变址寄存器到已知表地址。所述变址寄存器可被预载到所述起始地址。所述部分可以是位字段。所述位字段可以是半字节或字节。
附图说明
结合下面对优选实施方式的描述和附图,本领域普通技术人员将明白其它目的、特征和优点。附图中:
图1是根据在DAG和DSP的CU中实施的本发明的查找表寻址系统的示意图;
图2图示了将数个局部结果累加映射成为32位字格式的最终结果;
图3的示意框图图示了图1中的系统的DAG部分的可选实施方式;
图4的示意框图图示了使用如图3的实施方式改进的两个图1的查找表寻址系统来实现的DES加密系统;
图5的示意框图图示了能利用本发明实施的线性反馈移位寄存器栅格编码系统的有限域(Galois Field)线性变换器的实施;
图6是LFSR CRC的示意框图;
图7是LFSR加扰器的示意框图;
图8是LFSR解扰器的示意框图;
图9是LFSR栅格编码的示意框图;
图10为表I,该表显示了的图9的ADSL调制解调器栅格编码在8个时钟周期上的四种状态条件;
图11是图5的可重新配置的有限域线性变换器栅格编码系统的更详细的示意框图;
图12显示了表II,该表显示了图11的所述有限域线性变换器系统中出现的条件;
图13是有限域线性变换器矩阵的更详细的示意图,该矩阵被配置为在一个周期内从输入位产生栅格编码输出通道标记;
图14图示了从图13的矩阵中的半字节到根据本发明的查找表寻址系统的变换;
图15是用于实施本发明的数字信号处理器的示意框图;以及
图16是根据本发明的查找表寻址方法的框图。
具体实施方式
除了下面公开的优选实施方式或实施方式之外,本发明能够用于其它实施方式且能够以多种方式被实施或执行。因此,应理解本发明的应用不受下面描述阐明或附图图示的结构细节和组件布置的限制。如果在此只说明了一种实施方式,这里的权利要求不受所述实施方式限制。此外,对这里的权利要求的理解将不是限制性地,除非有清晰和令人信服的证据表明确定的排除、限制或放弃。
图1图示了以现有的数据地址产生器(DAG)12和计算单元(CU)14实施的根据本发明的查找表寻址系统10,用于在外部存储器16中提供一组查找表的服务。DAG12和CU14可以是常规处理器比如数字信号处理器(DSP)的一部分。在所述DAG中,使用了两个指针(P)寄存器,其中一个作为数据字输入寄存器18而另一个作为存放-递增变址寄存器20,以及使用了递增电路22和预载电路24。在CU14中有查找表(LUT)目的寄存器26、累加器28和结合电路30,其在这里被简单显示为GF-2加法器(XOR)或加法电路。在CU14中,其任何寄存器堆可被用作LUT目的寄存器26。在存储于外部存储器16的其它数据之中,外部存储器16包括其中含有数个独立表的一组查找表32。例如,如果所述查找表寻址系统10要对32位数据字以半字节工作,即,4个位组,那么就会有8个表,其中每一个具有16个条目,或者如果用字节工作,就会有4个表,其中每个表具有256个条目。
LUT存放-递增变址寄存器20产生有效的存储器地址作为表基址位字段38、表变址位字段40、存放位字段36和零位字段41的函数。在运算时,来自CU14的数据字被传送到DAG数据输入字寄存器18。它的一部分,例如,第一半字节34被直接存放进入位移位字段36。表基址位字段38识别所述一组表32在外部存储器16中的起始位置。变址字段40识别表组32中的具体表32-1至32-8的位置,以及识别提供LUT条目宽度的零字段41。如果使用32位LUT存取,所述零字段将包含两个零,或者如果使用的是16位LUT存取,则包含一个零。存放在位移字段36中的所述部分或半字节34是具体条目例如条目42在具体表中的地址位移。假设所述系统用于每次置换被传输到DAG输入寄存器18的32位字的单个半字节,则条目42将包含四位,外加映射进入32位字的映射位置。所述四位是存放在位移字段36中的半字节34中的位的置换。将其位置映射为32位字的信息和所述四位被传送到CU14中的32位LUT目的寄存器26。来自具体条目42的四位根据条目42中的所述映射信息将被载入那些32位置中的4个。此局部结果通过结合电路或GF-2加法器30(XOR)与累加寄存器28的内容结合。由于这是运算的初始周期,寄存器28包含零。因此,在加法器30中结合了所述两个寄存器的输出之后,在寄存器28中累加的结果只有LUT目的寄存器26的内容。接下来,递增电路22将表变址(table index)40的值递增1然后将其反馈作为新变址表,这样所述系统进行到表2,32-2。与些同时,数据字输入寄存器18中的数据字的接下来的部分,数据输入寄存器18的接下来部分44中的半字节被传送到位移字段36。这此时识别表2中的另一个具体条目46,其被映射进入LUT目的寄存器26。寄存器26的输出再次通过GF-2加法器30(XOR)和寄存器28的内容结合,而所述结合的结果被累加并存储在寄存器28中。此时寄存器28包含来自与条目46结合的具体条目42的数据的结合,所述具体条目42的数据被映射成为32位字格式,其和具体条目46结合,该条目46的4位被映射为32位字格式的四个其它位置。依此继续直到完成了存在于寄存器18中存在的32位字的所有8个半字节。那时,递增电路22已经到达8,并且预载电路24将表基址预载回到所述表组的开始处。预载电路24实际上可以预载表基址字段38到任何具体位置。
通过和传统运算对照可以理解本发明的优点。在传统运算中,所述数据字每次从CU中的R寄存器被移动半字节或一个字节到DAG中的输入P输入寄存器。在深管线操作中,这意味着被这样传输的每个半字节或字节会有数个停滞。另外,将所述半字节或字节数据存放进入所述位移字段以及递增到下一个表的操作必须通过DAG人工执行。相比之下,应用本发明,全部数据字从CU中的R寄存器被一次传输到DAG中的P输入寄存器,所以全部数据字仅经历一次必须要经历的数个停滞,而不是每8个半字节或每4个字节经历一次。另外,每次将所述半字节或字节数据存放进入所述位移字段和递增至下一个表的操作现在可以通过DAG自带的电路自动完成。
在所述DAG中可以有一个以上可用的输入寄存器18a和存放-递增变址寄存器20a。输入寄存器18和18a实际上可以是单个寄存器,其同时为存放-递增变址寄存器20和存放-递增变址寄存器20a服务。还可以具有另外的递增电路22a和预载电路24a。
在CU14中使用第二LUT目的寄存器26a的情况下,可以以两倍的速度快速执行所述运算。通过存储在输入寄存器18和18a中相同的数据字,所述系统可以在寄存器18中查看半字节34并将其传送至在寄存器20中的位移字段36,同时在寄存器18a中的半字节44a可以被传送到位移字段36a。因此,在图1中的DAG12检索表1中的具体条目42的同时,DAG12a能够检索表2中的具体条目46,并随后将其传送到LUT目的寄存器26a,这样在寄存器26和26a中被映射的半字节与累加寄存器28的内容结合在一起,并且这样所述系统可以以两倍的速度快速进行。在下一周期,所述系统将转移到表3和4,然后到表5和6,最后到表7和8。
例如,32位输入寄存器比如18的置换是通过将输入寄存器划分为8个半字节,4位的组,然后合并所有置换的半字节的局部结果来完成的。第一半字节,比如图1所示的寄存器18中的半字节34被显示映射到图1中的累加寄存器28的32位字格式50(图2)。该第一操作的四个被映射位由带1的X表示。利用下单个半字节44,所述带有2的X标记的位如图2的52中所示被映射为LUT目的寄存器26,以图2中的32位格式52显示了该结合。在第三半字节之后,在累加寄存器28中的所述字格式出现在图2的54。在所有8个操作周期之后,图1中的寄存器28的内容显示于图2的字格式56,其中通过结合50、52、54和其间的情况(为简便起见,没有示出)所示的每一个局部结果,所有8组的32位或4位半字节中的每一个都已经被映射到56处所示的最终结果。
在可选结构中,可以有两个P变址寄存器20b,20bb,如图3所示,其以交织方法运行以从查找表组32b检索条目。例如,在置换32位数据字的情况下,在变址寄存器20b中的零字段41b可以为获取所有偶数32位字而包括全部的零,而在寄存器20bb中的零字段41bb可以包括1后面接两个零,用于获取所有的奇数32位字,如图所示。然后,在变址寄存器20bb处理其位移字段36bb中的半字节34并且从表2检索具体条目42b的时候,在其位移字段36b中已经接收到半字节44的变址寄存器20b将从表1检索具体条目46b。注意,表1和II的可寻址数据条目已被交织,而表3和4、表5和6以及表7和8也是这样。在递增表变址之后,变址寄存器20现在成为变址寄存器20’。在使用第二P变址寄存器20bb的情况下,32位输入寄存器可以以两倍速度被快速置换。尽管到目前为此,仅针对置换操作解释了本发明,但本发明可以用于多个其它应用中以获得极大优势。例如,在图4中,通过使用所述查找表寻址系统两次,从而使用本发明的查找表寻址系统10a来实施DES加密系统60。第一查找表组将置换并扩展寄存器18的32输入位成为48位再现(rendition)并被置于DES系统60的寄存器70中。然后使用加法电路74与存储在寄存器72中的48位轮回密钥(round key)结合。在根据本发明进行P置换后实施S-Box的第二查找表组10b可被用于从DES系统60的寄存器70取出6位组,并根据特定DES规则将它们换转回32位,并将最终结果放入累加寄存器28b中。在图4的DES应用中,注意所述结合电路被实施为异或门30a。
本发明还可以很有利地相关联地用于线性反馈移位寄存器(LFSR),比如有限域线性变换器(GFLT)LFSR 110,在图5中,LFSR 110是栅格编码系统,其接收在通常被标示为u3、u2和u1的一个或多个栅格编码比特流中的多个输入位和被标示为Sn的矩阵的栅格编码状态输出,从其中,所述系统产生输出112和被标示为Sn+1的下一个新的栅格编码状态输出。有多种不同种类的线性反馈移位寄存器,包括图6中的CRC,图7中的加扰器,图8中的解扰器以及图9中的栅格编码。下面将结合图9-13说明本发明针对这样的系统的应用。
图9图示了一种比如应用在ADSL调制解调器栅格编码120中的典型的栅格编码系统,其在硬件中作为线性反馈移位寄存器(LFSR)122而被实施。线性反馈移位寄存器122包括四个存储装置,触发器124、126、128和130,其表示所述线性反馈移位寄存器的状态s0、s1、s2和s3。栅格编码比特流u3、u2和u1在输入132处显示为一串比特u30、u31、u32、u33...u37...,u20、u21、u22、u23...u27...,u10、u11、u12、u13...u17...。比特流u3直接在输入132处提供输出v0。输出v1是响应u3输入和u1输入而由异或门134产生的。输出w0是响应u3和u2输入而由异或门136产生的。输出w1是响应所有的输入u3、u2、u1以及在线40上的线性反馈移位寄存器122的输出状态s3而由异或门138提供的。
在操作中,在每一个时钟周期、列150处(见图10),作为u1...u3输入和先前的S1...S3状态的函数的状态s0、s1、s2和s3将在表I中示出。
在图11中,取决于在特定应用中能被接受的有限域线性变换器矩阵的尺寸。有限域线性变换器栅格编码系统110a可以同时处理4、8、12、16或任何数量的位。图11显示了概括性的栅格编码比特流输入u10-u13,u20-u23,u30-u33,同时全被接受了。对于第一时钟计时单元或时钟周期,具体位被显示为z10至z13,y20至y23以及x30-x33。由于在此具体例子中GFLT栅格编码系统10每次接受4位,因此其实际有限域线性变换器形式的输出将对应于图10的表I中块状区域152中的第四时钟周期或时钟周期号为3的输出显示。在图10的表I中在154、156、158和160处显示的状态s0、s1、s2和s3的这些值因而成为图11中的新栅格编码状态154a、156a、158a和160a。它们是新栅格编码状态s0n+1、s1n+1、s2n+1和s3n+1并被反馈回到栅格编码输入s3n、s2n、s1n和s0n
在图12的表II标示为时钟周期0的下一个或第二时钟周期上,在151栏显示了状态s0n+1为s3、y21(y21是u21的当前值),s0、y20(y20是u20的当前值)和z12(z12是u12的当前值)的异或结和。这可以被扩展,如在第二栏153中所示,然后将冗余删除(按位加(modulo two addition)),如在第三栏155中所示,来提供下一个栅格编码状态,对于s1n+1、s2n+1和s3n+1可以进行同样的处理。输出v0、v1、w0和w1没有以表格形成列出,这是因为,如示例所示,它们是在图13中的有限域线性变换器栅格编码系统矩阵160上的信号的直接异或结合。由此可见,通过使能矩阵160的行和列的选择的接合处的异或门单元162,获得了在表I和II中所要求的输出。例如,参见图12的表II,可以看出s3的值为s1、s2、s3、u21、u22、u13和u10的异或结合,对于w03,例如,所述表达式只是简单的u33和u23n的异或;对于v12,所述表达式是u32和u12的异或等等.
进一步的说明参见2004年1月7日提交的Stein等人的题为“GALOIS FIELD LINEAR TRANSFORMER TRELLIS SYSTEM”的美国专利申请No.10/753,301,通过引用将其全文集及于此。
在这个环境中使用本发明的一个优点是可以避免对异或门的32乘32矩阵或232容量的查找表的需要。图14对此作出了说明,其中来自图3的被表示为u1的单个半字节被重复,在其4列32行中显示了所有需要的异或门162。根据本发明可以出现在该4个半字节中的1和0的16个不同的可能的组合被显示在列182的16行180中。LUT输入184显示在列186的相应的行180中。例如,如在180a所示地,选择用于u1的位组合001,对于188的12th行,包括两个异或门,一个在零位置而一个在3位置,所述LUT输出为“1”。对于190的19th行,包括一个异或门,具有相同的位组合,0011,所述LUT输出为“1”。结果,异或门的全部矩阵能够被查找表替代,并且根据本发明所述查找表不需要每个32位的232个条目,但可以是一组表,其包括具有16条目的8个表,其中每一个条目为32位(或512字节LUT)。
本发明可以方便地在处理器比如图15中的数字信号处理器DSP200中实施,其中DAG12、CU14和存储器16互相通讯并通过各种总线204和定序器202通讯。DAG12包括指针寄存器堆206,其包括输入寄存器18和存放-递增变址寄存器20和其它寄存器208,比如常规I、L和M寄存器。CU14包括数据寄存器堆208,比如LUT目的寄存器26和累加寄存器28以及乘和加单元210、算术逻辑单元212和移位装置214。
根据本发明的查找表寻址方法300的一种实施方式,见图16,包括将来自计算单元的数据字传输(302)到位于数据地址产生器中的输入寄存器。在DAG中的每一个变址寄存器中提供(304)有表基址字段、表变址字段和位移字段。某个部分,比如所述数据字的某个字节或某个半字节被存放(306)入位移字段中以定位外部存储器中的查找表中的具体条目。某具体条目从每一部分被映射(308)到输出字。对表变址字段进行递增(310)到一个表。在此之后,系统返回到步骤(306),直到余下的要完成的部分全部完成。在此之后,具体条目通过例如求和、加法、异或从所有部分被累加(312)以完成所述输出字。最后,将所述变址寄存器预载(314)到已知的例如起始地址,然后系统再次返回检索和传输(302)数据字。
尽管本发明的具体特征出现在某些附图中,在另外一些附图中没有显示,这只为了方便,因为每一个特征可以和根据本发明的任何或所有其它特征结合。在此使用的术语“包括”、“包含”、“具有”和“带有”要被广义和全面地解释,而不受任何实际相互联系的限制。此外,在所述主题应用中公开的任何实施方式不应被作为唯一可能的实施方式。
另外,对于此专利在专利申请的法律程序期间提出的任何修改不是对提交的申请书中提出的任何权利要求要素的否认:不能期望本领域普通技术人员会合理地拟定这样的真正包括所有可能的等价物的权利要求,许多等价物在修改的时候将是不可预见的,因而会超出要呈递(如果有)的合理的解释,所述基于修改的原理说明或解释可以接受只和许多等价物略微有联系,和/或有许多其它原因,对修改的任何权利要求要素,不能期待所述申请书描述特定非实质替代物。
本领域普通技术人员会想到其它实施方式,其落入后面的权利要求书所保护的范围内。

Claims (33)

1.一种查找表寻址系统,其在外部存储器中具有一组查找表,该系统包括:
数据地址产生器,包括输入寄存器和至少一个存放-递增变址寄存器,所述输入寄存器用于从计算单元接收数据字,所述存放-递增变址寄存器具有用于识别所述一组查找表在存储器中的位置的表基址字段、用于识别具体表在所述一组查找表中的位置的表变址字段、用于识别具体条目在具体表中的位置的位移字段,所述数据地址产生器被配置为将所述数据字的一部分存放到所述位移字段中,从而存取所述具体条目。
2.如权利要求1所述的查找表寻址系统,其中所述条目包括与所述数据字的相应部分对应的局部结果。
3.如权利要求2所述的查找表寻址系统,还包括计算单元,该计算单元包括累加器、查找表目的寄存器和结合电路,所述计算单元被配置为累加与所述数据字的所有部分中的每个部分对应的所述局部结果以获得最终结果。
4.如权利要求3所述的查找表寻址系统,其中所述目的寄存器是计算单元数据寄存器堆中的任何一个。
5.如权利要求1所述的查找表寻址系统,其中所述数据地址产生器包括多个指针寄存器,并且通过一个所述指针寄存器来实现所述存放-递增变址寄存器。
6.如权利要求1所述的查找表寻址系统,其中所述数据地址产生器包括多个指针寄存器,并且通过一个所述指针寄存器来实现所述输入寄存器。
7.如权利要求1所述的查找表寻址系统,其中所述数据地址产生器被进一步配置为递增存放-递增变址寄存器的变址字段以识别所述组中的下一个表。
8.如权利要求2所述的查找表寻址系统,其中所述局部结果包括所述相应部分的数据位,并且数据地址产生器被进一步配置为将那些位映射到预定的输出字。
9.如权利要求8所述的查找表寻址系统,其中所述输出字和数据字具有相同的位数。
10.如权利要求8所述的查找表寻址系统,其中所述输出字和数据字具有不同的位数。
11.如权利要求3所述的查找表寻址系统,其中所述结合电路是异或电路。
12.如权利要求3所述的查找表寻址系统,其中所述结合电路是求和电路。
13.如权利要求1所述的查找表寻址系统,其中所述数据地址产生器包括第二存放-递增变址寄存器,并且所述数据地址产生器被配置为将所述数据字的第二部分存放进入第二存放-递增变址寄存器的位移字段中。
14.如权利要求1所述的查找表寻址系统,其中所述数据地址产生器被配置为将所述变址寄存器预载到已知的表地址。
15.如权利要求14所述的查找表寻址系统,其中所述已知的表地址是起始地址。
16.如权利要求1所述的查找表寻址系统,其中所述部分是位字段。
17.如权利要求16所述的查找表寻址系统,其中所述位字段是字节。
18.如权利要求16所述的查找表寻址系统,其中所述位字段是半字节。
19.一种查找表寻址方法,用于在外部存储器中提供一组查找表的服务,该方法包括:
将数据字从计算单元传输到数据地址产生器中的输入寄存器;
在所述数据地址产生器中的至少一个变址寄存器中提供表基址字段、表变址字段和位移字段,所述表基址字段用于识别所述一组表在存储器中的位置,所述表变址字段用于识别具体表在所述一组查找表中的位置;以及
将所述数据字的一部分存放到所述变址寄存器中用于识别具体条目在所述表中的位置的位移字段中。
20.如权利要求19所述的查找表寻址方法,其中所述条目包括与所述数据字的相应部分相对应的局部结果。
21.如权利要求20所述的查找表寻址方法,还包括累加与所述数据字的所有部分中的每个部分对应的所述局部结果以获得最终结果。
22.如权利要求19所述的查找表寻址方法,还包括在所述数据地址产生器中递增表变址字段,以识别所述组中的下一个表。
23.如权利要求20所述的查找表寻址方法,其中所述局部结果包括数据位,并且该方法进一步包括将那些位映射到预定的输出字。
24.如权利要求23所述的查找表寻址方法,其中所述输出字和数据字具有相同的位数。
25.如权利要求23所述的查找表寻址方法,其中所述输出字和数据字具有不同的位数。
26.如权利要求21所述的查找表寻址方法,其中累加包括异或运算。
27.如权利要求21所述的查找表寻址方法,其中所述累加包括求和。
28.如权利要求19所述的查找表寻址方法,还包括将所述数据字的第二部分存放到另一个变址寄存器的位移字段中,所述另一个变址寄存器的位移字段用于与第一部分并行地识别另一个具体条目的位置。
29.如权利要求19所述的查找表寻址方法,还包括将所述变址寄存器预载到已知的表地址。
30.如权利要求29所述的查找表寻址方法,其中所述已知的表地址是起始地址。
31.如权利要求29所述的查找表寻址方法,其中所述部分是位字段。
32.如权利要求31所述的查找表寻址方法,其中所述位字段是字节。
33.如权利要求31所述的查找表寻址方法,其中所述位字段是半字节。
CN2006800478981A 2005-10-26 2006-10-17 查找表寻址系统及方法 Expired - Fee Related CN101341470B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/258,662 2005-10-26
US11/258,662 US8285972B2 (en) 2005-10-26 2005-10-26 Lookup table addressing system and method
PCT/US2006/040414 WO2007050349A2 (en) 2005-10-26 2006-10-17 Lookup table addressing system and method

Publications (2)

Publication Number Publication Date
CN101341470A CN101341470A (zh) 2009-01-07
CN101341470B true CN101341470B (zh) 2010-09-29

Family

ID=37968359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800478981A Expired - Fee Related CN101341470B (zh) 2005-10-26 2006-10-17 查找表寻址系统及方法

Country Status (6)

Country Link
US (1) US8285972B2 (zh)
EP (1) EP1941370A4 (zh)
JP (1) JP5112325B2 (zh)
CN (1) CN101341470B (zh)
TW (1) TWI333615B (zh)
WO (1) WO2007050349A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024551B2 (en) 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code
US7877571B2 (en) * 2007-11-20 2011-01-25 Qualcomm, Incorporated System and method of determining an address of an element within a table
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
WO2010013092A1 (en) * 2008-07-30 2010-02-04 Telefonaktiebolaget Lm Ericsson (Publ) Systems and method for providing trusted system functionalities in a cluster based system
JP5755970B2 (ja) * 2011-08-26 2015-07-29 株式会社東芝 演算装置
GB2542220A (en) * 2013-09-13 2017-03-15 Smg Holdings-Anova Tech Llc Packet sharing data transmission system and relay to lower latency
GB2533531A (en) 2013-09-13 2016-06-22 Smg Holdings-Anova Tech Llc Self-healing data transmission system to achieve lower latency
US11106437B2 (en) * 2019-01-14 2021-08-31 Microsoft Technology Licensing, Llc Lookup table optimization for programming languages that target synchronous digital circuits
US11113176B2 (en) 2019-01-14 2021-09-07 Microsoft Technology Licensing, Llc Generating a debugging network for a synchronous digital circuit during compilation of program source code
US11144286B2 (en) 2019-01-14 2021-10-12 Microsoft Technology Licensing, Llc Generating synchronous digital circuits from source code constructs that map to circuit implementations
US11275568B2 (en) 2019-01-14 2022-03-15 Microsoft Technology Licensing, Llc Generating a synchronous digital circuit from a source code construct defining a function call
US11093682B2 (en) 2019-01-14 2021-08-17 Microsoft Technology Licensing, Llc Language and compiler that generate synchronous digital circuits that maintain thread execution order
CN109933301B (zh) * 2019-03-19 2023-04-14 中科亿海微电子科技(苏州)有限公司 可扩展可编程逻辑单元及可编程逻辑块结构
TWI754206B (zh) * 2020-01-10 2022-02-01 祥碩科技股份有限公司 資料儲存系統、資料儲存裝置及其管理方法
KR20220009643A (ko) * 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
CN114185486B (zh) * 2021-11-17 2024-07-30 深圳市德明利技术股份有限公司 一种dram存储器的数据写入方法和dram控制系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3959638A (en) * 1974-02-15 1976-05-25 International Business Machines Corporation Highly available computer system
US6151705A (en) * 1997-10-30 2000-11-21 Hewlett-Packard Company Efficient use of the base register auto-increment feature of memory access instructions
US6430672B1 (en) * 2000-07-17 2002-08-06 International Business Machines Corporation Method for performing address mapping using two lookup tables
CN1623141A (zh) * 2002-02-07 2005-06-01 阿纳洛格装置公司 可重新配置的并行查阅表系统

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1181461B (de) * 1963-10-08 1964-11-12 Telefunken Patent Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
US3805037A (en) * 1972-02-22 1974-04-16 J Ellison N{40 th power galois linear gate
DE3600905A1 (de) 1986-01-15 1987-07-16 Ant Nachrichtentech Verfahren zum dekodieren von binaersignalen sowie viterbi-dekoder und anwendungen
JP2614916B2 (ja) * 1988-04-27 1997-05-28 日本電気株式会社 記憶アクセス制御装置
US5287511A (en) 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US5031131A (en) 1988-11-14 1991-07-09 Eaton Corporation Direct digital synthesizer
US5062057A (en) * 1988-12-09 1991-10-29 E-Machines Incorporated Computer display controller with reconfigurable frame buffer memory
DE3909996A1 (de) 1989-03-25 1990-10-04 Forschungszentrum Juelich Gmbh Rekuperativer keramischer waermeuebertrager
JPH0492921A (ja) 1990-08-03 1992-03-25 Fujitsu Ltd 指数関数演算器
CA2074769C (en) * 1991-08-09 2001-03-20 International Business Machines Corporation Formula processor
US5386523A (en) * 1992-01-10 1995-01-31 Digital Equipment Corporation Addressing scheme for accessing a portion of a large memory space
US5260898A (en) 1992-03-13 1993-11-09 Sun Microsystems, Inc. Result cache for complex arithmetic units
US5351047A (en) 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
JPH06110852A (ja) 1992-09-29 1994-04-22 Hitachi Ltd ブロック状並列分散演算アレイプロセッサ
JP3124648B2 (ja) 1993-03-19 2001-01-15 富士通株式会社 色データ管理方法及び装置
KR0135846B1 (ko) * 1994-02-02 1998-06-15 김광호 룩-업-테이블장치
US5530825A (en) * 1994-04-15 1996-06-25 Motorola, Inc. Data processor with branch target address cache and method of operation
US5832290A (en) * 1994-06-13 1998-11-03 Hewlett-Packard Co. Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems
US5507000A (en) 1994-09-26 1996-04-09 Bull Hn Information Systems Inc. Sharing of register stack by two execution units in a central processor
US5689452A (en) * 1994-10-31 1997-11-18 University Of New Mexico Method and apparatus for performing arithmetic in large galois field GF(2n)
US5710939A (en) 1995-05-26 1998-01-20 National Semiconductor Corporation Bidirectional parallel data port having multiple data transfer rates, master, and slave operation modes, and selective data transfer termination
US6029242A (en) * 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors
US5666116A (en) 1995-12-01 1997-09-09 U.S. Philips Corporation High speed variable-length decoder arrangement
JP3634379B2 (ja) * 1996-01-24 2005-03-30 サン・マイクロシステムズ・インコーポレイテッド スタックキャッシングのための方法及び装置
US5675332A (en) 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5996066A (en) * 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
US6009499A (en) 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US5961640A (en) 1997-04-22 1999-10-05 Vlsi Technology, Inc. Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US5937438A (en) * 1997-06-30 1999-08-10 Lucent Technologies Inc. Sine/cosine lookup table
US6263420B1 (en) * 1997-09-17 2001-07-17 Sony Corporation Digital signal processor particularly suited for decoding digital audio
US5970241A (en) * 1997-11-19 1999-10-19 Texas Instruments Incorporated Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
US6094726A (en) 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
US6223320B1 (en) * 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
GB9806687D0 (en) * 1998-03-27 1998-05-27 Memory Corp Plc Memory system
US6272452B1 (en) 1998-04-02 2001-08-07 Ati Technologies, Inc. Universal asynchronous receiver transmitter (UART) emulation stage for modem communication
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US5996057A (en) * 1998-04-17 1999-11-30 Apple Data processing system and method of permutation with replication within a vector register file
JP3154991B2 (ja) * 1998-04-27 2001-04-09 松下電器産業株式会社 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体
US6134676A (en) 1998-04-30 2000-10-17 International Business Machines Corporation Programmable hardware event monitoring method
US6332188B1 (en) * 1998-11-06 2001-12-18 Analog Devices, Inc. Digital signal processor with bit FIFO
US6829695B1 (en) 1999-09-03 2004-12-07 Nexql, L.L.C. Enhanced boolean processor with parallel input
US6771196B2 (en) 1999-12-14 2004-08-03 Broadcom Corporation Programmable variable-length decoder
JP2001210357A (ja) 2000-01-28 2001-08-03 Hitachi Maxell Ltd アルカリ蓄電池
US6539477B1 (en) * 2000-03-03 2003-03-25 Chameleon Systems, Inc. System and method for control synthesis using a reachable states look-up table
US6480845B1 (en) * 2000-06-14 2002-11-12 Bull Hn Information Systems Inc. Method and data processing system for emulating virtual memory working spaces
US7251672B2 (en) * 2001-05-16 2007-07-31 Nxp B.V. Reconfigurable logic device
US6587057B2 (en) 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
KR100437609B1 (ko) 2001-09-20 2004-06-30 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
US6587864B2 (en) * 2001-11-30 2003-07-01 Analog Devices, Inc. Galois field linear transformer
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
JP2003264467A (ja) 2002-03-08 2003-09-19 Matsushita Electric Ind Co Ltd ビタビ復号回路
US20030196072A1 (en) * 2002-04-11 2003-10-16 Chinnakonda Murali S. Digital signal processor architecture for high computation speed
US7127667B2 (en) 2002-04-15 2006-10-24 Mediatek Inc. ACS circuit and viterbi decoder with the circuit
US6865659B2 (en) 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US7173985B1 (en) 2002-08-05 2007-02-06 Altera Corporation Method and apparatus for implementing a Viterbi decoder
US7424597B2 (en) * 2003-03-31 2008-09-09 Hewlett-Packard Development Company, L.P. Variable reordering (Mux) instructions for parallel table lookups from registers
US7693928B2 (en) * 2003-04-08 2010-04-06 Analog Devices, Inc. Galois field linear transformer trellis system
JP2005134477A (ja) * 2003-10-28 2005-05-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US20050228966A1 (en) 2004-03-16 2005-10-13 Kabushiki Kaisha Toshiba Processor system and data processing method
US7506239B2 (en) 2004-12-23 2009-03-17 Raghavan Sudhakar Scalable traceback technique for channel decoder
US7243210B2 (en) * 2005-05-31 2007-07-10 Atmel Corporation Extracted-index addressing of byte-addressable memories
US7765459B2 (en) 2005-09-28 2010-07-27 Samsung Electronics Co., Ltd. Viterbi decoder and viterbi decoding method
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8024551B2 (en) * 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US7882284B2 (en) * 2007-03-26 2011-02-01 Analog Devices, Inc. Compute unit with an internal bit FIFO circuit
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3959638A (en) * 1974-02-15 1976-05-25 International Business Machines Corporation Highly available computer system
US6151705A (en) * 1997-10-30 2000-11-21 Hewlett-Packard Company Efficient use of the base register auto-increment feature of memory access instructions
US6430672B1 (en) * 2000-07-17 2002-08-06 International Business Machines Corporation Method for performing address mapping using two lookup tables
CN1623141A (zh) * 2002-02-07 2005-06-01 阿纳洛格装置公司 可重新配置的并行查阅表系统

Also Published As

Publication number Publication date
JP2009514096A (ja) 2009-04-02
EP1941370A4 (en) 2009-04-15
WO2007050349A3 (en) 2007-11-29
WO2007050349A2 (en) 2007-05-03
JP5112325B2 (ja) 2013-01-09
TWI333615B (en) 2010-11-21
TW200745850A (en) 2007-12-16
EP1941370A2 (en) 2008-07-09
US8285972B2 (en) 2012-10-09
CN101341470A (zh) 2009-01-07
US20070094474A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
CN101341470B (zh) 查找表寻址系统及方法
Balasch et al. Compact implementation and performance evaluation of hash functions in attiny devices
JP4377407B2 (ja) 誤り訂正コードインターリーバ
US5943248A (en) w-bit non-linear combiner for pseudo-random number generation
CN110347634A (zh) 用于高性能认证加密的硬件加速器和方法
JP2004233427A (ja) Aes暗号処理装置、aes復号処理装置、および、aes暗号・復号処理装置
WO2000070819A1 (en) Cryptographic engine using base conversion, logic operations and prng in data arrays to increase dispersion in ciphertext
Bright et al. Quasi-random number sequences from a long-period TLP generator with remarks on application to cryptography
TW522698B (en) Key scheduler for encryption apparatus using data encryption standard algorithm
RU2004121027A (ru) Устройство и способ перемежения для системы связи
CN102096609A (zh) 可编程循环冗余校验(crc)计算的指令集架构
CN107800532A (zh) 低成本密码加速器
CN113472525A (zh) 基于后量子密码Saber算法的低内存占用实现技术
Ito et al. A special-purpose computer for gravitational many-body systems: GRAPE-2
Trinca Sequential and parallel cascaded convolutional encryption with local propagation: Toward future directions in symmetric cryptography
Avanzi et al. Qameleon v. 1.0
VanLaven et al. A computationally feasible SPA attack on AES via optimized search
JP4749383B2 (ja) 符号化装置、暗号化装置及びプログラム
US20030053624A1 (en) Method for data stream encryption
Schubert et al. Reusable cryptographic VLSI core based on the SAFER K-128 algorithm with 251.8 Mbit/s throughput
JP3473171B2 (ja) 逐次暗号方式
Wayner Content-addressable search engines and DES-like systems
US20220191003A1 (en) Complete Tree Structure Encryption Software
CA2371452A1 (en) Cryptographic engine using base conversion, logic operations and prng in data arrays to increase dispersion in ciphertext
Feldmeier A high-speed software DES implementation

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20171017