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