專(zhuān)利名稱(chēng):一種查表方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā) 明涉及通信領(lǐng)域,尤其涉及一種查表方法及裝置。
背景技術(shù):
查找表通常是利用簡(jiǎn)單的查詢(xún)操作來(lái)替換運(yùn)行時(shí)計(jì)算操作,由于從內(nèi)存中提取數(shù)值要比復(fù)雜的計(jì)算速度快很多,所以查找表被廣泛的應(yīng)用?,F(xiàn)在常用的查表方法主要有一維查找和二維查找。所述一維查找為在一維查找表中輸入一個(gè)一維索引可查找到與所述索引對(duì)應(yīng)的唯一一個(gè)輸出值;所述二維查找為在二維查找表中輸入一個(gè)二維索引可查找到與所述索引對(duì)應(yīng)的唯--個(gè)輸出值。上述的查表方法,只能獨(dú)立地進(jìn)行一維查找和二維查找,在既需要一維查找又需要二維查找的場(chǎng)合,不能滿(mǎn)足一維查找與二維查找并存。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種查表方法及裝置,可以兼容實(shí)現(xiàn)一維查找和二維查找。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種查表方法,包括將輸入索引進(jìn)行加I運(yùn)算得到加I輸入索引;根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的RAM中的索引地址;根據(jù)所述索引地址查找所述對(duì)應(yīng)的RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)的RAM的查找表中所述索引地址內(nèi)的數(shù)據(jù),所述查找表由二維查找表拆分而成;根據(jù)所述輸入索引及加I輸入索引選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序;將所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序進(jìn)行內(nèi)插得到最終輸出值。一種查表裝置,包括加I計(jì)算單元,用于將輸入索引進(jìn)行加I運(yùn)算得到加I輸入索引;地址獲取單元,用于根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的RAM中的索引地址;查找輸出單元,用于根據(jù)所述地址獲取單元得到的所述索引地址查找所述對(duì)應(yīng)的RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)的RAM的查找表中所述索引地址內(nèi)的數(shù)據(jù),所述查找表由二維查找表拆分而成;次序選擇單元,用于根據(jù)所述加I計(jì)算單元獲得的所述加I輸入索引和所述輸入索引選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序;內(nèi)插計(jì)算單元,用于將所述查找輸出單元的所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序選擇單元選擇的次序進(jìn)行內(nèi)插得到最終輸出值。上述技術(shù)方案提供的查表方法和裝置,通過(guò)將輸入索引進(jìn)行加I運(yùn)算得到加I輸入索引,并根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的RAM中的索引地址,并根據(jù)所述索引地址查找所述對(duì)應(yīng)的RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)的RAM的查找表中所述索弓I地址內(nèi)的數(shù)據(jù);然后按照選擇的所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序,將對(duì)應(yīng)RAM中輸出的數(shù)據(jù)進(jìn)行內(nèi)插得到最終輸出值,依照上述查表方法,即可以輸入一維索引進(jìn)行一維查找,也可以輸入二維索引進(jìn)行二維查表,兼容實(shí)現(xiàn)一維查找和二維查找。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例提供的一種查找表示意圖;圖2為本發(fā)明實(shí)施例提供的一種查表方法流程示意圖;
圖3為本發(fā)明實(shí)施例提供的一種一維虛擬地址選擇方法示意圖;圖4為本發(fā)明實(shí)施例提供的一種二維虛擬地址選擇方法示意圖;圖5為本發(fā)明實(shí)施例提供的一種一維輸出數(shù)據(jù)選擇方法示意圖;圖6為本發(fā)明實(shí)施例提供的一種二維輸出數(shù)據(jù)選擇方法示意圖;圖7為本發(fā)明實(shí)施例提供的一種查表裝置的結(jié)構(gòu)框圖;圖8為本發(fā)明實(shí)施例提供的另一種查表裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例中提供的查表方法所用的查找表為二維查找表根據(jù)二維索引的奇偶性按照(偶,偶)、(偶,奇)、(奇,偶)和(奇,奇)拆分而成。拆分而成的4個(gè)所述查找表分別存儲(chǔ)在4個(gè)RAM中,所述4個(gè)RAM的查找表中存儲(chǔ)數(shù)據(jù)的地址addr滿(mǎn)足以下公式addr = ((a >> l)*k+b >> I),其中(a, b)為所述二維索引,a>>l 和 b>>l 表示 a和b右移I位,k為所述二查找表寬度值的一半。假設(shè)有6*6 二維查找表表I,如下所示
權(quán)利要求
1.一種查表方法,其特征在于,包括 將輸入索引進(jìn)行加I運(yùn)算得到加I輸入索引; 根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的RAM中的索引地址; 根據(jù)所述索引地址查找所述對(duì)應(yīng)的RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)的RAM的查找表中所述索引地址內(nèi)的數(shù)據(jù),所述查找表由二維查找表拆分而成; 根據(jù)所述輸入索引及加I輸入索引選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序; 將所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序進(jìn)行內(nèi)插得到最終輸出值。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述查找表為二維查找表根據(jù)二維索引的奇偶性按照(偶,偶)(偶,奇)(奇,偶)(奇,奇)拆分而成。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,拆分而成的4個(gè)所述查找表分別存儲(chǔ)在4個(gè)RAM中,所述4個(gè)RAM的查找表中存儲(chǔ)數(shù)據(jù)的地址addr滿(mǎn)足以下公式addr = ((a >>l)*k+b >> I),其中(a, b)為所述二維索引,a >> I和b >> I表不a和b右移I位,k為所述二維查找表寬度值的一半。
4.根據(jù)權(quán)利要求I 3任一項(xiàng)所述的方法,其特征在于,所述將輸入索引進(jìn)行加I運(yùn)算得到加I輸入索引具體包括 將一維輸入索引S_i進(jìn)行加I運(yùn)算得到加I輸入索引S_i_l,所述S_i_l為S_i+1 ;或,將二維輸入索引(i,j)進(jìn)行加I運(yùn)算得到加I輸入索引(i,j+1)、(i+1,j)和(i+1,j+1)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的RAM中的索引地址具體包括 根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的虛擬地址; 根據(jù)所述虛擬地址計(jì)算得到所述虛擬地址對(duì)應(yīng)的RAM中的索引地址。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在輸入一維索引S_i時(shí),將一維輸入索引S_i進(jìn)行加I運(yùn)算得到加I輸入索引S_i_l后所述方法具體包括 根據(jù)所述s_i和S_i_l選擇得到所述S_i和S_i_l對(duì)應(yīng)的虛擬地址; 根據(jù)一維地址計(jì)算公式由所述虛擬地址計(jì)算得到所述虛擬地址對(duì)應(yīng)的RAM中的索引地址;其中,所述S_i或所述S_i_l對(duì)應(yīng)的所述虛擬地址為xxh,xx表示對(duì)應(yīng)的RAM,所述一維地址計(jì)算公式為addrl = h >> I, addr I為所述虛擬地址xxh對(duì)應(yīng)的索引地址,h >>I表不h右移一位; 根據(jù)所述索引地址addrl查找所述對(duì)應(yīng)RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)RAM的查找表中所述索引地址addrl內(nèi)的數(shù)據(jù); 根據(jù)輸入的表號(hào)以及所述S_i和S_i_l選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序;其中,根據(jù)所述輸入的表號(hào)選擇對(duì)應(yīng)的RAM,所述S_i對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谝?,所述S_i_l對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈诙?; 將所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序進(jìn)行一維內(nèi)插得到最終輸出值。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在輸入二維索引(i,j)時(shí),將二維輸入索弓丨(i,j)進(jìn)行加I運(yùn)算得到加I輸入索引(i,j+1)、(i+1, j)和(i+1,j+1)后所述方法具體包括 根據(jù)所述(i,j)、(i,j+1)、(i+1, j)和α+1,j+1)選擇得到對(duì)應(yīng)的虛擬地址; 根據(jù)二維地址計(jì)算公式由所述虛擬地址計(jì)算得到所述虛擬地址對(duì)應(yīng)的RAM中的索引地址;其中,(i,j)、(i,j+1)、(i+1,j)或(i+1, j+1)對(duì)應(yīng)的所述虛擬地址為(xxm, xxn), xx表示對(duì)應(yīng)的RAM,所述二維地址計(jì)算公式為addr2 = ((m >> I)*k+n >> I),其中addr2為所述虛擬地址(xxm, xxn)對(duì)應(yīng)的索引地址,m >> I和η >> I表示m和η右移I位,k為所述二維查找表寬度值的一半; 根據(jù)所述對(duì)應(yīng)的索引地址addr 2查找所述對(duì)應(yīng)RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)RAM的查找表中所述索引地址addr2內(nèi)的數(shù)據(jù); 根據(jù)所述(i,j)、(i,j+1)、(i+1, j)和(i+1,j+1)選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序;其中,所述(i,j)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谝唬?i,j+1)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈诙?i+1,j)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谌?,所?i+1,j+1)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谒模? 將所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序進(jìn)行二維內(nèi)插得到最終輸出值。
8.—種查表裝置,其特征在于,包括· 加I計(jì)算單元,用于將輸入索引進(jìn)行加I運(yùn)算得到加I輸入索引; 地址獲取單元,用于根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的RAM中的索引地址; 查找輸出單元,用于根據(jù)所述地址獲取單元得到的所述索引地址查找所述對(duì)應(yīng)的RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)的RAM的查找表中所述索引地址內(nèi)的數(shù)據(jù),所述查找表由二維查找表拆分而成; 次序選擇單元,用于根據(jù)所述加I計(jì)算單元獲得的所述加I輸入索引和所述輸入索引選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序; 內(nèi)插計(jì)算單元,用于將所述查找輸出單元的所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序選擇單元選擇的次序進(jìn)行內(nèi)插得到最終輸出值。
9.根據(jù)權(quán)利要求8所述的查表裝置,其特征在于,所述查找輸出單元中的查找表為二維查找表根據(jù)二維索引的奇偶性按照(偶,偶)(偶,奇)(奇,偶)(奇,奇)拆分而成。
10.根據(jù)權(quán)利要求9所述的查表裝置,其特征在于,所述拆分而成的4個(gè)所述查找表分別存儲(chǔ)在所述查找輸出單元中的4個(gè)RAM中,所述4個(gè)RAM的查找表中存儲(chǔ)數(shù)據(jù)的地址addr滿(mǎn)足以下公式addr = ((a >> l)*k+b >> I),其中(a, b)為所述二維索引,a >> I和b >> I表不a和b右移I位,k為所述查找表寬度值的一半。
11.根據(jù)權(quán)利要求8 10任一項(xiàng)所述的查表裝置,其特征在于,所述加I計(jì)算單元具體包括 將一維輸入索引s_i進(jìn)行加I運(yùn)算得到加I輸入索引S_i_l,所述S_i_l為S_i+1 ;或,將二維輸入索引(i,j)進(jìn)行加I運(yùn)算得到加I輸入索引(i,j+1)、(i+1, j)和α+1,j+1)。
12.根據(jù)權(quán)利要求11所述的查表裝置,其特征在于,所述地址獲取單元具體包括 地址選擇單元,用于根據(jù)所述輸入索引和加I輸入索引選擇得到對(duì)應(yīng)的虛擬地址; 地址計(jì)算單元,用于根據(jù)所述虛擬地址計(jì)算得到所述虛擬地址對(duì)應(yīng)的RAM中的索引地址。
13.根據(jù)權(quán)利要求12所述的查表裝置,其特征在于,在輸入一維索引S_i時(shí), 所述地址選擇單元,具體用于根據(jù)所述S_i和S_i_l選擇得到所述S_i和S_i_l對(duì)應(yīng)的虛擬地址;所述地址計(jì)算單元,具體用于根據(jù)一維地址計(jì)算公式由所述虛擬地址計(jì)算得到所述虛擬地址對(duì)應(yīng)的RAM中所述S_i和S_i_l分別對(duì)應(yīng)的索引地址;其中,所述S_i或所述S_i_l對(duì)應(yīng)的所述虛擬地址為xxh,xx表示對(duì)應(yīng)的RAM,所述一維地址計(jì)算公式為addrl = h >>I, addrl為所述虛擬地址xxh對(duì)應(yīng)的索引地址,h >> I表示h右移一位; 所述查找輸出單元,具體用于根據(jù)所述對(duì)應(yīng)的索引地址addrl查找所述對(duì)應(yīng)RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)RA M的查找表中所述索引地址addrl內(nèi)的數(shù)據(jù); 所述次序選擇單元,具體用于輸入的表號(hào)以及根據(jù)所述S_i和S_i_l選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序;其中,根據(jù)所述輸入的表號(hào)選擇對(duì)應(yīng)的RAM,所述S_i對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谝?,所述S_i_l對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈诙?; 所述內(nèi)插計(jì)算單元,具體用于將所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序進(jìn)行一維內(nèi)插得到最終輸出值。
14.根據(jù)權(quán)利要求12所述的查表裝置,其特征在于,在輸入二維索引(i,j)時(shí), 所述地址選擇單元,具體用于根據(jù)所述(i,j)、(i,j+1)、(i+1, j)和(i+1,j+1)選擇得到對(duì)應(yīng)的虛擬地址; 所述地址計(jì)算單元,具體用于根據(jù)二維地址計(jì)算公式由所述虛擬地址計(jì)算得到所述虛擬地址對(duì)應(yīng)的RAM中的索引地址;其中,(i,j)、(i,j+1)、(i+1, j)或(i+1,j+1)對(duì)應(yīng)的所述虛擬地址為(xxm, xxn), xx表示對(duì)應(yīng)的RAM,所述二維地址計(jì)算公式為addr2 = ((m >>I)*k+n >> I),其中addr2為所述虛擬地址(xxm, xxn)對(duì)應(yīng)的索引地址,m >> I和η>> I表不m和η右移I位,k為所述二維查找表寬度值的一半; 所述查找輸出單元,具體用于根據(jù)所述對(duì)應(yīng)的索引地址addr2查找所述對(duì)應(yīng)RAM中存儲(chǔ)的查找表,輸出所述對(duì)應(yīng)RAM的查找表中所述索引地址addr2內(nèi)的數(shù)據(jù); 所述次序選擇單元,具體用于根據(jù)所述(i,j)、(i,j+1)、(i+1, j)和(i+1, j+1)選擇所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序;其中,所述(i,j)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谝?,所?i,j+Ι)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈诙?i+1, j)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谌?,所?i+1,j+1)對(duì)應(yīng)的RAM中輸出的數(shù)據(jù)的次序?yàn)榈谒模? 所述內(nèi)插計(jì)算單元,具體用于所述將對(duì)應(yīng)RAM中輸出的數(shù)據(jù)按照所述次序進(jìn)行二維內(nèi)插得到最終輸出值。
全文摘要
本發(fā)明實(shí)施例提供一種查表方法及裝置,涉及通信領(lǐng)域,可以兼容實(shí)現(xiàn)一維查找和二維查找。所述方法包括將輸入索引進(jìn)行加1運(yùn)算得到加1輸入索引,并根據(jù)所述輸入索引和加1輸入索引選擇得到對(duì)應(yīng)的RAM中的索引地址,并根據(jù)所述索引地址輸出所述對(duì)應(yīng)的RAM的查找表中所述索引地址內(nèi)的數(shù)據(jù);然后按照選擇的所述對(duì)應(yīng)RAM中輸出的數(shù)據(jù)的次序,將對(duì)應(yīng)RAM中輸出的數(shù)據(jù)進(jìn)行內(nèi)插得到最終輸出值。
文檔編號(hào)G06F17/30GK102722564SQ201210179018
公開(kāi)日2012年10月10日 申請(qǐng)日期2012年6月1日 優(yōu)先權(quán)日2012年6月1日
發(fā)明者向利, 楊勛 申請(qǐng)人:華為技術(shù)有限公司