CN102722564A - 一种查表方法及装置 - Google Patents

一种查表方法及装置 Download PDF

Info

Publication number
CN102722564A
CN102722564A CN2012101790183A CN201210179018A CN102722564A CN 102722564 A CN102722564 A CN 102722564A CN 2012101790183 A CN2012101790183 A CN 2012101790183A CN 201210179018 A CN201210179018 A CN 201210179018A CN 102722564 A CN102722564 A CN 102722564A
Authority
CN
China
Prior art keywords
index
address
ram
look
data
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.)
Granted
Application number
CN2012101790183A
Other languages
English (en)
Other versions
CN102722564B (zh
Inventor
向利
杨勋
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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Taizhou Haitong Asset Management Co ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210179018.3A priority Critical patent/CN102722564B/zh
Publication of CN102722564A publication Critical patent/CN102722564A/zh
Application granted granted Critical
Publication of CN102722564B publication Critical patent/CN102722564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种查表方法及装置,涉及通信领域,可以兼容实现一维查找和二维查找。所述方法包括:将输入索引进行加1运算得到加1输入索引,并根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址,并根据所述索引地址输出所述对应的RAM的查找表中所述索引地址内的数据;然后按照选择的所述对应RAM中输出的数据的次序,将对应RAM中输出的数据进行内插得到最终输出值。

Description

一种查表方法及装置
技术领域
本发明涉及通信领域,尤其涉及一种查表方法及装置。
背景技术
查找表通常是利用简单的查询操作来替换运行时计算操作,由于从内存中提取数值要比复杂的计算速度快很多,所以查找表被广泛的应用。现在常用的查表方法主要有一维查找和二维查找。所述一维查找为在一维查找表中输入一个一维索引可查找到与所述索引对应的唯一一个输出值;所述二维查找为在二维查找表中输入一个二维索引可查找到与所述索引对应的唯一一个输出值。
上述的查表方法,只能独立地进行一维查找和二维查找,在既需要一维查找又需要二维查找的场合,不能满足一维查找与二维查找并存。
发明内容
本发明的实施例提供一种查表方法及装置,可以兼容实现一维查找和二维查找。
为达到上述目的,本发明的实施例采用如下技术方案:
一种查表方法,包括:
将输入索引进行加1运算得到加1输入索引;
根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址;
根据所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据,所述查找表由二维查找表拆分而成;
根据所述输入索引及加1输入索引选择所述对应RAM中输出的数据的次序;
将所述对应RAM中输出的数据按照所述次序进行内插得到最终输出值。
一种查表装置,包括:
加1计算单元,用于将输入索引进行加1运算得到加1输入索引;
地址获取单元,用于根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址;
查找输出单元,用于根据所述地址获取单元得到的所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据,所述查找表由二维查找表拆分而成;
次序选择单元,用于根据所述加1计算单元获得的所述加1输入索引和所述输入索引选择所述对应RAM中输出的数据的次序;
内插计算单元,用于将所述查找输出单元的所述对应RAM中输出的数据按照所述次序选择单元选择的次序进行内插得到最终输出值。
上述技术方案提供的查表方法和装置,通过将输入索引进行加1运算得到加1输入索引,并根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址,并根据所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据;然后按照选择的所述对应RAM中输出的数据的次序,将对应RAM中输出的数据进行内插得到最终输出值,依照上述查表方法,即可以输入一维索引进行一维查找,也可以输入二维索引进行二维查表,兼容实现一维查找和二维查找。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种查找表示意图;
图2为本发明实施例提供的一种查表方法流程示意图;
图3为本发明实施例提供的一种一维虚拟地址选择方法示意图;
图4为本发明实施例提供的一种二维虚拟地址选择方法示意图;
图5为本发明实施例提供的一种一维输出数据选择方法示意图;
图6为本发明实施例提供的一种二维输出数据选择方法示意图;
图7为本发明实施例提供的一种查表装置的结构框图;
图8为本发明实施例提供的另一种查表装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提供的查表方法所用的查找表为二维查找表根据二维索引的奇偶性按照(偶,偶)、(偶,奇)、(奇,偶)和(奇,奇)拆分而成。拆分而成的4个所述查找表分别存储在4个RAM中,所述4个RAM的查找表中存储数据的地址addr满足以下公式:addr=((a>>1)*k+b>>1),其中(a,b)为所述二维索引,a>>1和b>>1表示a和b右移1位,k为所述二查找表宽度值的一半。
假设有6*6二维查找表表1,如下所示:
(a,b)
  0,0   0,1   0,2   0,3   0,4   0,5
  1,0   1,1   1,2   1,3   1,4   1,5
  2,0   2,1   2,2   2,3   2,4   2,5
  3,0   3,1   3,2   3,3   3,4   3,5
  4,0   4,1   4,2   4,3   4,4   4,5
  5,0   5,1   5,2   5,3   5,4   5,5
其中(a,b)为二维查找表的二维索引,根据现有的二维查找方法,输入的(a,b)在该二维查找表中查找,可以查找到所述查找表中(a,b)对应的地址中的数据。
将上述的二维查找表按照a,b的奇偶性进行拆分,如图1所示将a,b都是偶数的即(a,b)为(偶,偶)分成一个查找表,存储在RAM00中。同样对(a,b)为(偶,奇)、(奇,偶)和(奇,奇)的分别划分在不同的查找表中并按照其奇偶性分别存储在RAM01、RAM10和RAM11中。至此,将二维查找表拆分成了4个图1所示的一维表,存储在4个不同的RAM中。所述4个RAM的查找表中存储数据的地址addr满足以下公式:addr=((a>>1)*k+b>>1),其中(a,b)为所述二维索引,a>>1和b>>1表示a和b右移1位,k为所述二维查找表宽
Figure BDA00001718136700041
的一半。在这里表1所示的二维表为6*6的二维表,即该二维表的宽度值为6,故k=0.5*6=3。假设(a,b)=(2,4),则(2,4)对应的数据存储在RAM00中的查找表中,地址addr=((a>>1)*k+b>>1)=((2>>1)*3+4>>1)=1*3+2=5。即索引为(2,4)所对应的数据存储在RAM00的地址5中。
由上所述,本发明实施例中用到的查找表已生成并存储在RAM中。根据该查找表,本发明实施例提供了一种查表方法,如图2所示,所述方法包括以下步骤:
201、将输入索引进行加1运算得到加1输入索引。
用户在进行一维查找时,用户通过终端输入需要查找的一个数字,对应在查表装置相当于输入一维索引S_i。此时,查表装置会将图2所示的查找表的索引(a,b)中的b设置为0,仅用索引a,此时a=S_i。所述查表装置获得输入索引S_i后会对所述输入索引S_i进行加1运算得到加1输入索引S_i_1。
若用户要进行二维查找,用户通过终端输入需要查找的两个数字,对应在查表装置相当于用户在查表装置中输入二维索引(i,j)。所述查表装置获得输入索引(i,j)后会对所述输入索引(i,j)进行加1运算得到加1输入索引(i,j+1)、(i+1,j)和(i+1,j+1)。
202、根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址。
可选的,所述查表装置在获得一维的输入索引和加1输入索引后可以根据所述输入索引和加1输入索引选择得到对应的虚拟地址;然后,根据所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址。
在获得一维的输入索引和加1输入索引S_i和S_i_1后,查表装置会根据所述S_i和S_i_1,选择得到所述S_i和S_i_1对应的虚拟地址。在获得一维索引对应的虚拟地址后,所述查表装置会根据一维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址;其中,S_i或S_i_1对应的所述虚拟地址为xxh,xx表示对应的RAM,所述一维地址计算公式为:addr1=h>>1,addr1为S_i或S_i_1对应的索引地址,h>>1表示h右移一位。
可选的,如图3所示,为一种一维虚拟地址选择方法,图中S_i[0]表示S_i的最低bit值,S_i_1[0]表示S_i_1的最低bit值,若S_i为偶数,则S_i[0]=0,选择得到的虚拟地址为00S_i和01S_i,S_i_1[0]=1,选择得到的虚拟地址为10S_i_1和11S_i_1。同理,若S_i为奇数,则S_i[0]=1,选择得到的虚拟地址为00S_i_1和01S_i_1,S_i_1[0]=0,选择得到的虚拟地址为10S_i,和11S_i。在这里选择得到S_i和S_i_1对应的所述虚拟地址xxh为00S_i和01S_i以及10S_i_1和11S_i_1。其中xxh的前两位xx表示对应的RAM,即00S_i对应RAM00中的地址,01S_i、10S_i_1和11S_i_1分别对应RAM01、RAM10和RAM11中的地址。可由00S_i计算得到RAM00中的索引地址addr1=h>>1=S_i>>1,同理,可由01S_i计算得到RAM01中的索引地址addr1=h>>1=S_i>>1,由10S_i_1计算得到RAM10中的索引地址addr1=h>>1=S_i 1>>1,由11S_i_1计算得到RAM011中的索引地址addr1=h>>1=S_i_1>>1。
在获得二维的输入索引和加1输入索引(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)后,查表装置会根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择得到对应的虚拟地址。在获得二维索引对应的虚拟地址后,所述查表装置根据二维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址;其中,(i,j)、(i,j+1)、(i+1,j)或(i+1,j+1)对应的所述虚拟地址为(xxm,xxn),xx表示对应的RAM,所述二维地址计算公式为:addr2=((m>>1)*k+n>>1),其中addr2为所述(i,j)、(i,j+1)、(i+1,j)或(i+1,j+1)对应的索引地址,m>>1和n>>1表示m和n右移1位,k为所述二维查找表宽度值的一半。
可选的,如图4所示,为一种二维虚拟地址选择方法,图中所示的X[0]表示X的最低bit值,X_1表示X加1,若i和j都为奇数,则(i[0],j[0])=(1,1)通过选择器选择到(i_1,j_1),得到的虚拟地址为(00i_1,00j_1)。同理,(i[0],j_1[0])=(1,0)选择得到的虚拟地址为(01i_1,01j),(i_1[0],j[0])=(0,1)选择得到的虚拟地址为(10i,10j_1),(i_1[0],j_1[0])=(0,0)选择得到的虚拟地址为(111,11j)。当然,i和j都为偶数或一个为奇数一个为偶数也可以通过图4所述的选择器选择到虚拟地址,在这里不再详述。查表装置在选择得到(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)的虚拟地址(xxm,xxn)为(00i_1,00j_1)、(01i_1,01j)、(10i_1,10j_1)和(111,11j),其中(xxm,xxn)中的xx表示对应的RAM,即(00i_1,00j_1)、(01i_1,01j)、(10i,10j_1)和(111,11j)分别对应RAM00、RAM01、RAM10和RAM11中的地址。可由虚拟地址(00i_1,00j_1)计算得到RAM00中的索引地址addr2=((m>>1)*k+n>>1)=((i_1>>1)*k+j_1>>1),同理,可由(01i_1,01j)计算得到RAM01中的索引地址addr2=((m>>1)*k+n>>1)=((i_1>>1)*k+j>>1),由(101,10j_1)计算得到RAM10中的索引地址addr2=((m>>1)*k+n>>1)=((i>>1)*k+j_1>>1),由(111,11j)计算得到RAM011中的索引地址addr2=((m>>1)*k+n>>1)=((i>>1)*k+j>>1)。
203、根据所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据。
这里所述的查找表是由二维查找表拆分而成。在步骤203中计算得到所述索引地址后,查表装置会根据所述对应的索引地址addr1查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址内的数据;或根据所述对应的索引地址addr2查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址内的数据。
204、根据所述输入索引及加1输入索引选择所述对应RAM中输出的数据的次序。
在进行一维查找时,在进行而为查找时,所述查表装置在步骤204中已输出了各RAM中索引地址内的数据,在获得这些数据后,查表装置会根据输入的表号以及所述S_i和S_i_1选择所述对应RAM中输出的数据的次序;其中,根据所述输入的表号选择对应的RAM,所述S_i对应的RAM中输出的数据的次序为第一,所述S_i_1对应的RAM中输出的数据的次序为第二。
可选的,如图5所示,一种一维输出数据选择方法,在这里仍假设S_i为偶数,则输出的数据有RAM00和RAM01中地址S_i>>1的数据,以及RAM10和RAM11中地址S_i_1>>1的数据,在这里查找装置会输入一个表号,对各RAM中输出的数据进行一个选择,可选的,若所述表号为0则选择RAM00和RAM10中输出的数据,若所述表号为1则选择RAM01和RAM11中输出的数据。在这里假设表号为0,因S_i为偶数,则S_i[0]=0,则其对应的RAM-RAM00中输出的数据的次序为第一,所述S_i_1[0]=1则RAM10中输出的数据的次序为第二。当然若S_i为奇数,则S_i[0]=1,RAM10中输出的数据的次序为第一,S_i_1[0]=0,RAM,00中输出的数据的次序为第二。
在进行二维查找时,所述查表装置在步骤204中已输出了各RAM中索引地址内的数据,在获得这些数据后,查表装置根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择所述对应RAM中输出的数据的次序;其中,所述(i,j)对应的RAM中输出的数据的次序为第一,所述(i,j+1)对应的RAM中输出的数据的次序为第二,(i+1,j)对应的RAM中输出的数据的次序为第三,所述(i+1,j+1)对应的RAM中输出的数据的次序为第四。
可选的,如图6所示,为一种二维输出数据选择方法,在这里仍假设i和j为奇数,则(i[0],j[0])=(1,1)通过选择器选择到RAM11,则RAM11中输出的数据的次序为第一。同理,(i[0],j_1[0])=(1,0)通过选择器选择到RAM10,则RAM10中输出的数据的次序为第二,(i_1[0],j[0])=(0,1)通过选择器选择到RAM01,则RAM01中输出的数据的次序为第三,(i_1[0],j_1[0])=(0,0)通过选择器选择到RAM00,则RAM00中输出的数据的次序为第四。当然,i和j都为偶数或一个为奇数一个为偶数也可以通过图6所述的选择器选择个RAM的输出次序,在这里不再详述。
205、将对应RAM中输出的数据按照所述次序进行内插得到最终输出值。
将对应RAM中输出的数据按照所述次序进行二维内插得到最终输出值。若假设S_i为偶数,则查表装置依次将RAM00和RAM10中输出的数据进行一维内插得到最终输出值。
将对应RAM中输出的数据按照所述次序进行二维内插得到最终输出值。若仍假设i和j为奇数,则查表装置依次将RAM11、RAM10、RAM01和RAM00中输出的数据进行二维内插得到最终输出值。
具体的,依照上述方法,用户若要进行一维查找,则输入一维索引S_i=2,则进行加1计算的,加1输入索引S_i_1=3,通过图3所示的虚拟地址选择方法,选择得到的虚拟地址为002,012,103,113。接着计算对应的RAM的索引地址,002对应RAM00的索引地址addr1=S_i>>1=2>>1=1,同理012对应RAM01的索引地址addr1=S_i>>1=2>>1=1,103对应RAM10的索引地址addr1=S_i_1>>1=3>>1=1,113对应RAM11的索引地址addr1=S_i_1>>1=3>>1=1。接着查找输出RAM00中地址1的数据,RAM01中地址1的数据,RAM10中地址1的数据,RAM11中地址1的数据。按照图5所示的输出数据选择方法,若表号为0则选择RAM00和RAM10输出的数据,且以RAM00中输出的数据为第一个数据,RAM10中输出的数据为第二个数据进行一维内插的到最终输出值。
若依照上述方法进行二维查找,则用户输入二维输入索引(i,j)=(1,3),则进行加1计算的到加1输入索引(1,4),(2,3),(2,4)。通过图4所述的虚拟地址选择方法,选择得到的虚拟地址为(002,004),(012,013),(101,104)和(111,113)。接着按照公式计算得到虚拟地址对应RAM中的索引地址,(002,004)对应RAM00中的索引地址addr2=((2>>1)*3+4>>1)=5,(012,013)对应RAM01中的索引地址4,(101,104)对应RAM10中的索引地址2和(111,113)对应RAM 11中的索引地址1。接着查找输出RAM00中地址5内的数据,RAM01中地址4内的数据,RAM10中地址2内的数据,RAM11中地址1内的数据。最后通过图6所示的输出数据选择方法按照RAM11中输出的数据为第一个数据,RAM 10中输出的数据为第二个数据,RAM01中输出的数据为第三个数据,RAM00中输出的数据为第四个数据进行二维内插的到最终输出值。
需要说明的是,本发明中进行一维内插和二维内插时应用的内插算法为现有的内插算法,如取算数平均值等内插算法。应用上述方法,在进行一维查表时,将查到的两个输出数据进行内插的到最终输出值;在进行二维查表时,将查到的四个输出数据进行内插的到最终输出值;这样可以比现有技术更加精确。在这里我们可以举例说明,假设查找表内存储的是余弦算法的查找数据,用户想要查找cos0.5的值,故用户输入0.5进行查找,若应用现有的一维查表方法,用户输入0.5对应在查找表中时为输入索引0,最终的到输出值为cos0=1;若应用本发明提供的查表方法,用户输入0.5对应在查找表中时为输入索引0,最终的到输出值为cos0+cos1=(1+cos 1)/2;比现有的查找方法更精确。
上述的查表方法可以应用在通信***中的任一需要查表的地方,可以兼容一维和二维的查找。例如,可以应用在数字预失真***中,现有技术中,传统网络中的数字预失真***针对的是单一的信号频段,可以应用基于DPD(Digital Pre-Distortion,数字预失真)算法的一维查找表对单频段信号进行数字预失真处理,而随着通信技术的不断发展,现有的TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)和LTE(Long TermEvolution,长期演进)网络中的常采用双频段传输,这里的数字预失真***应用基于DPD(Digital Pre-Distortion,数字预失真)算法的一维查找表对单频段信号进行数字预失真处理。在这里若应用本发明实施例提供的查表方法,既可以满足双频段的应用需求,又可以兼容单频段的应用。
本发明实施例还提供了一种查表装置,用于完成上述的查表方法,如图7所示,所述查表装置包括:加1计算单元701,地址获得单元702,查找输出单元703,次序选择单元704,内插计算单元705。
加1计算单元701,用于将输入索引进行加1运算得到加1输入索引。
当用户输入索引S_i即进行一维查找时,所述加1计算单元701,具体用于将输入索引S_i进行加1运算得到加1输入索引S_i_1。在用户输入索引(i,j)即进行二维查找时,所述加1计算单元701,具体用于将输入索引(i,j)进行加1运算得到加1输入索引(i,j+1)、(i+1,j)和(i+1,j+1)。
地址获得单元702,用于根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址。
查找输出单元703,用于根据所述地址计算单元703算出的所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据。
在进行一维查找时,所述查找输出单元703,具体用于根据所述对应的索引地址addr1查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址addr1内的数据;在进行二维查找时,所述查找输出单元704,具体用于根据所述对应的索引地址addr2查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址addr2内的数据。
次序选择单元704,用于根据所述加1计算单元701获得的所述加1输入索引和所述输入索引选择所述对应RAM中输出的数据的次序。
在进行一维查找时,所述次序选择单元704,具体用于根据所述S_i和S_i_1选择所述对应RAM中输出的数据的次序;其中,所述S_i对应的RAM中输出的数据的次序为第一,所述S_i_1对应的RAM中输出的数据的次序为第二;在进行二维查找时,所述次序选择单元705,具体用于根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择所述对应RAM中输出的数据的次序;其中,所述(i,j)对应的RAM中输出的数据的次序为第一,所述(i,j+1)对应的RAM中输出的数据的次序为第二,(i+1,j)对应的RAM中输出的数据的次序为第三,所述(i+1,j+1)对应的RAM中输出的数据的次序为第四。
内插计算单元705,用于将所述查找输出单元703的所述对应RAM中输出的数据按照所述次序选择单元704选择的次序进行内插得到最终输出值。
在进行一维查找时,所述内插计算单元705,具体用于将所述对应RAM中输出的数据按照所述次序进行一维内插得到最终输出值。在进行二维查找时,所述内插计算单元705,具体用于所述将对应RAM中输出的数据按照所述次序进行二维内插得到最终输出值。
进一步的,如图8所示,所述地址获得单元702具体包括:地址选择单元7021,地址计算单元7022。
地址选择单元7021,用于根据所述输入索引和加1输入索引选择得到对应的虚拟地址;地址计算单元7022,地址计算单元7022,用于根据所述地址选择单元7021选择到的所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址。
在进行一维查找时,所述地址选择单元7021,具体用于根据所述S_i和S_i_1以及所述S_i和S_i_1的奇偶性选择得到所述S_i和S_i_1对应的虚拟地址;所述地址计算单元7022,具体用于根据一维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中所述S_i和S_i_1分别对应的索引地址;其中,所述S_i或所述S_i_1对应的所述虚拟地址为xxh,xx表示对应的RAM,所述一维地址计算公式为:addr1=h>>1,addr1为所述虚拟地址xxh对应的索引地址,h>>1表示h右移一位。
在进行二维查找时,所述地址选择单元7021,具体用于根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择得到对应的虚拟地址,在进行二维查找时,所述地址计算单元7022,具体用于根据二维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址;其中,(i,j)、(i,j+1)、(i+1,j)或(i+1,j+1)对应的所述虚拟地址为(xxm,xxn),xx表示对应的RAM,所述二维地址计算公式为:addr2=((m>>1)*k+n>>1),其中addr2为所述虚拟地址(xxm,xxn)对应的索引地址,m>>1和n>>1表示m和n右移1位,k为所述二维查找表宽度值的一半。
本发明实施例中提到的查找装置主要集成在FPGA(Field-Programmable Gate Array,即现场可编程门阵列)或ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)中。
本发明实施例提供了一种查表方法及装置,通过将输入索引进行加1运算得到加1输入索引,并根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址,并根据所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据;然后按照选择的所述对应RAM中输出的数据的次序,将对应RAM中输出的数据进行内插得到最终输出值,依照上述查表方法,即可以输入一维索引进行一维查找,也可以输入二维索引进行二维查表,兼容实现一维查找和二维查找。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种查表方法,其特征在于,包括:
将输入索引进行加1运算得到加1输入索引;
根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址;
根据所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据,所述查找表由二维查找表拆分而成;
根据所述输入索引及加1输入索引选择所述对应RAM中输出的数据的次序;
将所述对应RAM中输出的数据按照所述次序进行内插得到最终输出值。
2.根据权利要求1所述的方法,其特征在于,所述查找表为二维查找表根据二维索引的奇偶性按照(偶,偶)(偶,奇)(奇,偶)(奇,奇)拆分而成。
3.根据权利要求2所述的方法,其特征在于,拆分而成的4个所述查找表分别存储在4个RAM中,所述4个RAM的查找表中存储数据的地址addr满足以下公式:addr=((a>>1)*k+b>>1),其中(a,b)为所述二维索引,a>>1和b>>1表示a和b右移1位,k为所述二维查找表宽度值的一半。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述将输入索引进行加1运算得到加1输入索引具体包括:
将一维输入索引S_i进行加1运算得到加1输入索引S_i_1,所述S_i_1为S_i+1;或,将二维输入索引(i,j)进行加1运算得到加1输入索引(i,j+1)、(i+1,j)和(i+1,j+1)。
5.根据权利要求4所述的方法,其特征在于,所述根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址具体包括:
根据所述输入索引和加1输入索引选择得到对应的虚拟地址;
根据所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址。
6.根据权利要求5所述的方法,其特征在于,在输入一维索引S_i时,将一维输入索引S_i进行加1运算得到加1输入索引S_i_1后所述方法具体包括:
根据所述S_i和S_i_1选择得到所述S_i和S_i_1对应的虚拟地址;
根据一维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址;其中,所述S_i或所述S_i_1对应的所述虚拟地址为xxh,xx表示对应的RAM,所述一维地址计算公式为:addr1=h>>1,addr1为所述虚拟地址xxh对应的索引地址,h>>1表示h右移一位;
根据所述索引地址addr1查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址addr1内的数据;
根据输入的表号以及所述S_i和S_i_1选择所述对应RAM中输出的数据的次序;其中,根据所述输入的表号选择对应的RAM,所述S_i对应的RAM中输出的数据的次序为第一,所述S_i_1对应的RAM中输出的数据的次序为第二;
将所述对应RAM中输出的数据按照所述次序进行一维内插得到最终输出值。
7.根据权利要求5所述的方法,其特征在于,在输入二维索引(i,j)时,将二维输入索引(i,j)进行加1运算得到加1输入索引(i,j+1)、(i+1,j)和(i+1,j+1)后所述方法具体包括:
根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择得到对应的虚拟地址;
根据二维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址;其中,(i,j)、(i,j+1)、(i+1,j)或(i+1,j+1)对应的所述虚拟地址为(xxm,xxn),xx表示对应的RAM,所述二维地址计算公式为:addr2=((m>>1)*k+n>>1),其中addr2为所述虚拟地址(xxm,xxn)对应的索引地址,m>>1和n>>1表示m和n右移1位,k为所述二维查找表宽度值的一半;
根据所述对应的索引地址addr2查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址addr2内的数据;
根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择所述对应RAM中输出的数据的次序;其中,所述(i,j)对应的RAM中输出的数据的次序为第一,所述(i,j+1)对应的RAM中输出的数据的次序为第二,(i+1,j)对应的RAM中输出的数据的次序为第三,所述(i+1,j+1)对应的RAM中输出的数据的次序为第四;
将所述对应RAM中输出的数据按照所述次序进行二维内插得到最终输出值。
8.一种查表装置,其特征在于,包括:
加1计算单元,用于将输入索引进行加1运算得到加1输入索引;
地址获取单元,用于根据所述输入索引和加1输入索引选择得到对应的RAM中的索引地址;
查找输出单元,用于根据所述地址获取单元得到的所述索引地址查找所述对应的RAM中存储的查找表,输出所述对应的RAM的查找表中所述索引地址内的数据,所述查找表由二维查找表拆分而成;
次序选择单元,用于根据所述加1计算单元获得的所述加1输入索引和所述输入索引选择所述对应RAM中输出的数据的次序;
内插计算单元,用于将所述查找输出单元的所述对应RAM中输出的数据按照所述次序选择单元选择的次序进行内插得到最终输出值。
9.根据权利要求8所述的查表装置,其特征在于,所述查找输出单元中的查找表为二维查找表根据二维索引的奇偶性按照(偶,偶)(偶,奇)(奇,偶)(奇,奇)拆分而成。
10.根据权利要求9所述的查表装置,其特征在于,所述拆分而成的4个所述查找表分别存储在所述查找输出单元中的4个RAM中,所述4个RAM的查找表中存储数据的地址addr满足以下公式:addr=((a>>1)*k+b>>1),其中(a,b)为所述二维索引,a>>1和b>>1表示a和b右移1位,k为所述查找表宽度值的一半。
11.根据权利要求8~10任一项所述的查表装置,其特征在于,所述加1计算单元具体包括:
将一维输入索引S_i进行加1运算得到加1输入索引S_i_1,所述S_i_1为S_i+1;或,将二维输入索引(i,j)进行加1运算得到加1输入索引(i,j+1)、(i+1,j)和(i+1,j+1)。
12.根据权利要求11所述的查表装置,其特征在于,所述地址获取单元具体包括:
地址选择单元,用于根据所述输入索引和加1输入索引选择得到对应的虚拟地址;
地址计算单元,用于根据所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址。
13.根据权利要求12所述的查表装置,其特征在于,在输入一维索引S_i时,
所述地址选择单元,具体用于根据所述S_i和S_i_1选择得到所述S_i和S_i_1对应的虚拟地址;
所述地址计算单元,具体用于根据一维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中所述S_i和S_i_1分别对应的索引地址;其中,所述S_i或所述S_i_1对应的所述虚拟地址为xxh,xx表示对应的RAM,所述一维地址计算公式为:addr1=h>>1,addr1为所述虚拟地址xxh对应的索引地址,h>>1表示h右移一位;
所述查找输出单元,具体用于根据所述对应的索引地址addr1查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址addr1内的数据;
所述次序选择单元,具体用于输入的表号以及根据所述S_i和S_i_1选择所述对应RAM中输出的数据的次序;其中,根据所述输入的表号选择对应的RAM,所述S_i对应的RAM中输出的数据的次序为第一,所述S_i_1对应的RAM中输出的数据的次序为第二;
所述内插计算单元,具体用于将所述对应RAM中输出的数据按照所述次序进行一维内插得到最终输出值。
14.根据权利要求12所述的查表装置,其特征在于,在输入二维索引(i,j)时,
所述地址选择单元,具体用于根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择得到对应的虚拟地址;
所述地址计算单元,具体用于根据二维地址计算公式由所述虚拟地址计算得到所述虚拟地址对应的RAM中的索引地址;其中,(i,j)、(i,j+1)、(i+1,j)或(i+1,j+1)对应的所述虚拟地址为(xxm,xxn),xx表示对应的RAM,所述二维地址计算公式为:addr2=((m>>1)*k+n>>1),其中addr2为所述虚拟地址(xxm,xxn)对应的索引地址,m>>1和n>>1表示m和n右移1位,k为所述二维查找表宽度值的一半;
所述查找输出单元,具体用于根据所述对应的索引地址addr2查找所述对应RAM中存储的查找表,输出所述对应RAM的查找表中所述索引地址addr2内的数据;
所述次序选择单元,具体用于根据所述(i,j)、(i,j+1)、(i+1,j)和(i+1,j+1)选择所述对应RAM中输出的数据的次序;其中,所述(i,j)对应的RAM中输出的数据的次序为第一,所述(i,j+1)对应的RAM中输出的数据的次序为第二,(i+1,j)对应的RAM中输出的数据的次序为第三,所述(i+1,j+1)对应的RAM中输出的数据的次序为第四;
所述内插计算单元,具体用于所述将对应RAM中输出的数据按照所述次序进行二维内插得到最终输出值。
CN201210179018.3A 2012-06-01 2012-06-01 一种查表方法及装置 Active CN102722564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210179018.3A CN102722564B (zh) 2012-06-01 2012-06-01 一种查表方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210179018.3A CN102722564B (zh) 2012-06-01 2012-06-01 一种查表方法及装置

Publications (2)

Publication Number Publication Date
CN102722564A true CN102722564A (zh) 2012-10-10
CN102722564B CN102722564B (zh) 2014-11-05

Family

ID=46948325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210179018.3A Active CN102722564B (zh) 2012-06-01 2012-06-01 一种查表方法及装置

Country Status (1)

Country Link
CN (1) CN102722564B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113812124A (zh) * 2019-05-13 2021-12-17 华为技术有限公司 预失真参数更新装置及方法、预失真处理***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070273439A1 (en) * 2006-05-26 2007-11-29 Chih-Hung Lin Apparatus And Method Of Dynamically Adapting The LUT Spacing For Linearizing A Power Amplifier
CN101212206A (zh) * 2007-12-21 2008-07-02 北京创毅视讯科技有限公司 一种放大器的非线性预失真处理的方法
CN101278846A (zh) * 2008-05-26 2008-10-08 汕头超声仪器研究所 一种超声回波数据数字扫描变换的处理方法
CN101551824A (zh) * 2009-05-13 2009-10-07 重庆金美通信有限责任公司 基于fpga的高速搜索引擎及搜索方法
CN101867378A (zh) * 2010-06-11 2010-10-20 清华大学 Ldpc解码中的水平操作方法、水平操作装置及ldpc解码器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070273439A1 (en) * 2006-05-26 2007-11-29 Chih-Hung Lin Apparatus And Method Of Dynamically Adapting The LUT Spacing For Linearizing A Power Amplifier
CN101212206A (zh) * 2007-12-21 2008-07-02 北京创毅视讯科技有限公司 一种放大器的非线性预失真处理的方法
CN101278846A (zh) * 2008-05-26 2008-10-08 汕头超声仪器研究所 一种超声回波数据数字扫描变换的处理方法
CN101551824A (zh) * 2009-05-13 2009-10-07 重庆金美通信有限责任公司 基于fpga的高速搜索引擎及搜索方法
CN101867378A (zh) * 2010-06-11 2010-10-20 清华大学 Ldpc解码中的水平操作方法、水平操作装置及ldpc解码器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113812124A (zh) * 2019-05-13 2021-12-17 华为技术有限公司 预失真参数更新装置及方法、预失真处理***
CN113812124B (zh) * 2019-05-13 2023-05-16 华为技术有限公司 预失真参数更新装置及方法、预失真处理***

Also Published As

Publication number Publication date
CN102722564B (zh) 2014-11-05

Similar Documents

Publication Publication Date Title
US10083195B2 (en) System and method for composing a multidimensional index key in data blocks
CN101061473B (zh) 低复杂度非线性滤波器
CN105045766B (zh) 基于3072点快速傅里叶变换的数据处理方法及处理器
CN103970718A (zh) 一种快速傅里叶变换实现装置及方法
CN104268122A (zh) 一种可变点数的浮点fft处理器
CN102682108B (zh) 一种行列混合的数据库存储方法
CN102073472B (zh) 一种三角函数cordic迭代运算协处理器及运算处理方法
CN102419741A (zh) 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法
CN105515997B (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
Przyjalkowski et al. Bounds for smooth Fano weighted complete intersections
CN102043760A (zh) 数据处理方法及***
Xiao et al. Reduced memory architecture for CORDIC-based FFT
CN102799411A (zh) 浮点数累加电路及其实现方法
CN102722564B (zh) 一种查表方法及装置
Lyche et al. Stable simplex spline bases for C 3 quintics on the Powell–Sabin 12-split
CN103034621A (zh) 基2×k并行fft架构的地址映射方法及***
CA2871435A1 (en) Method and device for compressing and storing data based on sparse matrix
CN103885834A (zh) 一种分布式环境下的模式匹配处理器
Ferizi et al. Design and implementation of a fixed-point radix-4 FFT optimized for local positioning in wireless sensor networks
CN105068879A (zh) 一种查找目标订阅的方法及装置
CN104657335A (zh) 一种基于fft的数据采样方法和装置
Sun et al. A Surface Modeling Method by Using C^ 2 C 2 Piecewise Rational Spline Interpolation
CN104731551A (zh) 基于fpga进行除法操作的方法及装置
Liu et al. On the spectral characterization of Π-shape trees
Cucker et al. On the computation of the local and global analytic branches of a real algebraic curve

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201202

Address after: Building 2, No. 3, Fuqian Road, Hailing District, Taizhou City, Jiangsu Province

Patentee after: Taizhou Haitong Asset Management Co.,Ltd.

Address before: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20201202

Address after: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.