亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

陣列搜索操作的制作方法

文檔序號:6473049閱讀:142來源:國知局
專利名稱:陣列搜索操作的制作方法
背景本發(fā)明涉及用于計算機的陣列搜索操作。
許多常規(guī)的可編程處理器,例如,數(shù)字信號處理器(DSP),支持豐富的指令集,該指令集包括許多處理數(shù)據(jù)陣列的指令。這些操作一般都是計算密集的并且根據(jù)處理器中的執(zhí)行單元(例如多累加單元(MAC))的數(shù)量需要顯著的計算時間。


圖1是說明根據(jù)本發(fā)明的流水線可編程處理器的例子的框圖。
圖2是說明用于可編程處理器示范執(zhí)行流水線的框圖。
圖3是實施根據(jù)本發(fā)明示范陣列處理機指令的流程圖。
圖4是調(diào)用機器指令示范例程的流程圖。
圖5顯示了搜索指令;以及,圖6顯示了N/M搜索指令。
描述圖1是說明可編程處理器2的框圖,該處理器2包括執(zhí)行流水線4和控制單元6。處理器2將在下文作詳細的討論,它減少陣列處理操作所需要的計算時間。特別是,處理器2可以支持機器指令,該指令被稱之為SEARCH(搜索)指令,它在流水線處理的環(huán)境中減少計算時間以搜索數(shù)字陣列。
流水線4有許多處理指令的級。各級都可以與其它級同時處理并且在每一個時鐘周期將結(jié)果傳遞給流水線4的下一級。各個指令的最終結(jié)果以快速的連續(xù)性呈現(xiàn)在流水線一端。
控制單元6控制指令和數(shù)據(jù)通過流水線各級的流動。當處理指令的過程中,例如,控制單元6直接使流水線的各個部件能讀取和解碼指令,執(zhí)行相應的操作,并且將結(jié)果寫入存儲器或本地寄存器。
圖2說明了根據(jù)本發(fā)明配置的示范流水線。
流水線4,例如,具有5級指令讀取(IF),解碼(DEC),地址計算(AC),執(zhí)行(EX)和寫回(WB)。在IF級過程中,由讀取單元21從存儲器或指令緩沖器取指令,并且在DEC級的過程中在地址寄存器22內(nèi)對指令進行解碼。在下一個時鐘周期,將結(jié)果傳遞到AC級,在該級數(shù)據(jù)地址發(fā)生器23計算進行操作必需的存儲器地址。
在EX級過程中,執(zhí)行單元25A至25M執(zhí)行指定的操作,例如,并行加上或乘以數(shù)。執(zhí)行單元25可以包括進行操作的專用硬件,包括例如,一個或多個算術邏輯單元(ALU),浮點單元(FPU),以及桶型移位器。多種數(shù)據(jù)可以施加到執(zhí)行單元25,例如,由數(shù)據(jù)地址發(fā)生器23產(chǎn)生的地址,數(shù)據(jù)存儲器18檢索的數(shù)據(jù)或數(shù)據(jù)寄存器24檢索的數(shù)據(jù)。在最后一級(WB)過程中,將結(jié)果寫回到數(shù)據(jù)存儲器或數(shù)據(jù)寄存器24中。
處理器2所支持的SEARCH指令可以允許將軟件應用通過處理N/M搜索指令來搜索N個數(shù)據(jù)元素的陣列,其中,M是可由流水線4的執(zhí)行單元25并行處理的數(shù)據(jù)元素的數(shù)目。然而,值得注意的是,單個執(zhí)行單元能夠并行執(zhí)行兩個或多個操作。例如,執(zhí)行單元可以包括能夠同時比較兩個16位數(shù)字的32位ALU。
一般來說,SEARCH指令的序列允許處理器能并行處理M組元素以識別“極值”,例如,每組中的最大值或最小值。在搜索指令的執(zhí)行過程中,處理器2存儲了M組元素中每組元素極值位置的參考。一旦完成了N/M指令之后,正如以下所討論的,軟件應用分析各組極值的參考值,以迅速識別陣列的極值。例如,指令允許軟件應用能迅速識別最大值或最小值的第一次或最后一次出現(xiàn)。此外,正如以下所詳細解釋的那樣,處理器2以適用于通過M個執(zhí)行單元25在流水線處理器中矢量化的方式實施操作。
正如以上所討論的,軟件應用通過對處理器2執(zhí)行N/M搜索機器指令來搜索數(shù)據(jù)陣列。圖3是說明處理器2接收到單個SEARCH機器指令時操作20的示范模式的流程圖。參考識別元素陣列中最小值的最后一次出現(xiàn)討論處理20;然而,處理20能夠容易地變換來執(zhí)行其它功能,例如,識別最小值的第一次出現(xiàn),最大值的第一次出現(xiàn)或最大值的最后一次出現(xiàn)。
為了便于舉例的目的,假設M等于2描述處理20,即,處理器2同時處理兩組元素,每組具有N/2個元素。然而,處理器并不局限于此,并且可以容易地擴展成能同時處理多于兩組的元素。一般來說,處理20通過取元素對作為單個數(shù)據(jù)量以及通過流水線4并行處理元素對,以便矢量化搜索處理,從而減小識別陣列中最小值必需時鐘周期總數(shù)。雖然可采用其它結(jié)構,處理20能夠適用于在EX級具有多個執(zhí)行單元的流水線處理器。對每組元素來說,處理20包含兩個指針寄存器,PEven和POdd,它們存儲對應組中的當前極值的位置。另外,處理20包含兩個累加器,A0和A1,它們保持者各組的當前極值。然而,指針寄存器和累加器能夠容易地實現(xiàn)為通用數(shù)據(jù)寄存器,而不需要脫離處理30。
參考圖3,響應于每個SEARCH指令,處理器2在一個時鐘周期中取一對元素作為單個數(shù)據(jù)量(21)。例如,處理器2可以取兩個相鄰的16位數(shù)值,作為32位的量。接著,處理器2比較元素對的偶數(shù)元素和偶數(shù)元素的當前最小值(22)以及比較元素對的奇數(shù)元素和奇數(shù)元素的當前最小值(24)。
當對偶數(shù)元素檢測到新的最小值時,處理器2更新累加器A0使之保持新的最小值,以及更新指針寄存器PEven以保持指向陣列中對應數(shù)據(jù)量的指針(23)。相類似,當對奇數(shù)元素檢測到新的最小值時,處理器2更新累加器A1和指針寄存器POdd(25)。在該實例中,每一個指針寄存器PEven和POdd都指向數(shù)據(jù)量而不是單個元素,盡管處理并不局限于此。處理器2重復處理直至陣列中的所有元素都已處理(26)。因為處理器2是流水線的,可以取元素對直至處理陣列。
以下說明了調(diào)用機器指令的示范語法(POdd,PEven)=SEARCH RData LE,RData=[Pfetch_addr++]數(shù)據(jù)寄存器RData用作暫時存儲寄存器以存儲每次新取到的數(shù)據(jù)元素對,它具有保持奇數(shù)元素的RData的最低有效字和保持偶數(shù)元素RData的最高有效字。兩個累加器,A0和A1,都隱含地用于存儲結(jié)果的實際值。附加寄存器,Pfetch_addr,當執(zhí)行SEARCH指令時就增1并且用作指針以在陣列中的N/2個數(shù)據(jù)量上迭代。所定義的條件,例如,在上述例子中的“小于或等于”(LE),控制執(zhí)行哪一比較以及何時更新指針寄存器PEven和POdd以及累加器A0和A1。例如,“LE”可以使處理器2識別最小值的最后一次出現(xiàn)。
在典型的應用中,編程者可能從環(huán)路結(jié)構中開發(fā)能執(zhí)行N/M搜索指令的軟件應用或子例程。編程者可以匯編語言或以高級軟件語言來編寫軟件應用。通常調(diào)用編譯器來處理高級軟件應用并產(chǎn)生用于處理器2的合適的機器指令,可以包括SEARCH機器指令,用于搜索數(shù)據(jù)陣列。
圖4是示范軟件程序的流程圖,用于調(diào)用以上所說明的示范機器指令。首先,軟件例程30初始化寄存器,包括對A0和A1的初始化以及將PEven和POdd指向陣列中的第一數(shù)據(jù)量(31)。在該實施例中,軟件例程30以要執(zhí)行的SEARCH指令數(shù)(N/M)來初始化環(huán)路計數(shù)寄存器。接著,例程30執(zhí)行SEARCH機器指令N/M次。這可以采用許多方法來完成,例如,通過調(diào)用處理器2支持的硬件環(huán)路結(jié)構。然而,通常,編譯器也能將軟件環(huán)路分解成識別SEARCH指令序列(32)。
在執(zhí)行了N/M個搜索指令之后,A0和A1分別保持著最小偶數(shù)值的最后一次出現(xiàn)和最小奇數(shù)值的最后一次出現(xiàn)。此外,PEven和POdd存儲著保持最小偶數(shù)值的最后一次出現(xiàn)和最小奇數(shù)值的最后一次出現(xiàn)的兩個數(shù)據(jù)量的位置。
接著,為了能識別整個陣列最小值的最后一次出現(xiàn),例程30首先由單個元素遞增POdd,使得POdd直接指向最小的奇數(shù)元素(33)。例程30比較累加器A0和A1,以確定累加器是否包含相同的數(shù)值,即,最小的奇數(shù)元素值是否等于最小的偶數(shù)元素值(34)。如果是,則例程30比較指針來確定POdd是否小于PEven,以及POdd和PEven是否由此陣列中較早產(chǎn)生最小偶數(shù)值(35)。根據(jù)該比較,例程確定是否將POdd復制到PEven(37)。
當累加器A0和A1不相同時,例程就比較A0和A1以確定哪一個保持著最小值(36)。如果A1小于A0,則例程30就設PEven等于POdd,從而將指向最小值的指針從POdd復制到PEven。
在這點上,PEven指向整個陣列最小值的最后一次出現(xiàn)。接著,例程30調(diào)整PEven,以補償引入處理器2流水線架構的誤差(38)。例如,以上所討論的比較一般在流水線4的EX級中進行,而指針寄存器Pfetch_addr的遞增通常是在AC級發(fā)生,從而由一個已知量引起POdd和PEven的不準確。在調(diào)整了PEven之后,例程30使PEven返回為指向陣列中最小值最后一次出現(xiàn)的指針(39)。
圖5說明了單個SEARCH指令的操作,它適用于處理器2能并行處理陣列M個元素的情況,即當處理器2包括M個執(zhí)行單元。SEARCH指令使處理器2在單個取指周期中取M個元素(51)。此外,在該實例中,處理器2具有M個指針寄存器來存儲M組元素的每一個所對應極值的地址(位置)。在取M個元素之后,處理器2同時將M個元素與各個元素組的當前極值相比較,存儲于M個累加器(52)?;诒容^,處理器2更新M個累加器和M個指針寄存器(53)。
圖6說明了軟件應用執(zhí)行N/M SEARCH指令,以及指令完成后確定整個陣列的極值的一般情況。首先,軟件應用初始化環(huán)路計數(shù)器,用于存儲M個元素組當前極值的M個累加器以及用于存儲極值位置的M個指針(61)。接著,軟件應用執(zhí)行N/M SEARCH指令(62)。在指令完成之后,軟件應用可以調(diào)整M個指針寄存器,以準確地參考它的各個極值,而不是保持極值的數(shù)據(jù)量(63)。在調(diào)整了指針寄存器之后,軟件應用比較M個元素組的M個極值,來識別整個陣列的極值,即,最大值和最小值(64)。隨后,軟件應用可以使用指針寄存器,以確定是否有多于一個元素組具有等于陣列極值的極值,并且,如果是,根據(jù)所要求的搜索函數(shù)來確定哪一個極值是第一次出現(xiàn)的和最后一次出現(xiàn)的(65)。
已經(jīng)討論了本發(fā)明的各種實施例。例如,已經(jīng)討論了單個機器指令,它以便于在流水線處理器中的搜索處理的矢量化的方式來搜索數(shù)據(jù)陣列。處理器可以多種系統(tǒng)來實施,這些系統(tǒng)包括通用計算系統(tǒng),數(shù)字處理系統(tǒng),膝上型電腦,個人數(shù)字助理(PDA)以及蜂窩電話。例如,蜂窩電話經(jīng)常保持著數(shù)值陣列,表示在電話周圍360可用服務的信號強度。在該環(huán)境中,所討論的處理就可以簡單地用于蜂窩電話的初始化,以掃描可用服務以及迅速選擇最佳的服務。在該系統(tǒng)中,處理器可以與存儲器件相耦合,比如FLASH存儲器件或靜態(tài)隨機存取存儲器(SRAM),它存儲操作系統(tǒng)和其它軟件應用。這些和其它實施例都在所附的權利要求書的范圍之內(nèi)。
權利要求
1.一種方法,包括接收使處理器搜索多個數(shù)據(jù)元素的機器指令;以及,執(zhí)行機器指令通過在單個取指周期中檢索M個數(shù)據(jù)元素;同時將M個數(shù)據(jù)元素與相對應的當前極值相比較;以及,根據(jù)比較來更新參考組。
2.如權利要求1所述的方法,其特征在于,檢索M個數(shù)據(jù)元素包括檢索M個數(shù)據(jù)元素作為包含M個數(shù)據(jù)元素的單個數(shù)據(jù)量。
3.如權利要求2所述的方法,其特征在于,參考組包含指針寄存器,以存儲數(shù)據(jù)量的地址。
4.如權利要求1所述的方法,其特征在于,M=1。
5.如權利要求1所述的方法,其特征在于,M=2。
6.如權利要求1所述的方法,其特征在于,執(zhí)行機器指令進一步包括將當前的極值存儲于M個累加器;以及,根據(jù)比較將M個數(shù)據(jù)元素復制到累加器。
7.如權利要求5所述的方法,其特征在于,同時比較數(shù)據(jù)元素包括處理在流水線處理器的第一執(zhí)行單元中的第一數(shù)據(jù)元素和處理在流水線處理器的第二執(zhí)行單元中的第二數(shù)據(jù)元素。
8.如權利要求5所述的方法,其特征在于,同時比較數(shù)據(jù)元素包括同時處理在流水線處理器單個執(zhí)行單元中的第一數(shù)據(jù)元素和第二數(shù)據(jù)元素。
9.如權利要求1所述的方法,其特征在于,同時比較每一個數(shù)據(jù)元素與當前極值包括確定每一個數(shù)據(jù)元素是否小于所對應的當前極值。
10.如權利要求1所述的方法,其特征在于,同時比較每一個數(shù)據(jù)元素與當前極值包括確定每一個數(shù)據(jù)元素是否大于所對應的當前極值。
11.一種用于對N個數(shù)據(jù)元素的陣列搜索數(shù)值的方法,它包括執(zhí)行到處理器的N/M個機器指令,其中處理器適于并行處理M個數(shù)據(jù)元素;以及,分析機器指令的結(jié)果以識別陣列的數(shù)值。
12.如權利要求11所述的方法,進一步包括執(zhí)行每一個機器指令通過在單個取指周期中檢索M個數(shù)據(jù)元素;將M個數(shù)據(jù)元素與相對應的當前極值進行同時比較;以及,根據(jù)比較來更新參考。
13.一種方法,包括在單個取指操作中,從元素陣列檢索數(shù)據(jù)元素對,其中數(shù)據(jù)元素對包括偶數(shù)數(shù)據(jù)元素和奇數(shù)數(shù)據(jù)元素;充分比較該對的偶數(shù)元素和該對的奇數(shù)元素;以及,充分讀取和比較陣列的其余數(shù)據(jù)元素對,直至處理陣列所有數(shù)據(jù)元素。
14.如權利要求13所述的方法,其特征在于,充分比較數(shù)據(jù)元素對包括設最小偶數(shù)值為元素對偶數(shù)元素的函數(shù),而設奇數(shù)最小值為元素對奇數(shù)元素的函數(shù)。
15.如權利要求13所述的方法,其特征在于,充分比較數(shù)據(jù)元素對包括保持第一累加器以存儲偶數(shù)元素的最小值以及第二累加器以存儲奇數(shù)元素的最小值。
16.如權利要求13所述的方法,進一步包括保持第一指針寄存器以存儲用于偶數(shù)數(shù)據(jù)元素最小值的地址以及保持第二指針寄存器以存儲用于奇數(shù)數(shù)據(jù)元素最小值的地址。
17.如權利要求16所述的方法,進一步包括在處理所有數(shù)據(jù)元素對之后調(diào)整至少一個指針寄存器,以說明流水線中的級數(shù)。
18.如權利要求13所述的方法,其特征在于,該方法是通過執(zhí)行到可編程處理器的N/M個機器指令來調(diào)用的,其中N等于陣列中元素的數(shù)目,M等于處理器能夠同時比較的數(shù)據(jù)元素的數(shù)目。
19.一種裝置,包括適于并行處理M個數(shù)據(jù)元素的流水線;以及,適于響應于N/M個機器指令使執(zhí)行流水線搜索N個數(shù)據(jù)元素的陣列的控制單元。
20.如權利要求19所述的裝置,其特征在于,響應于機器指令,控制單元使流水線在單個取指操作中從元素陣列檢索M個數(shù)據(jù)元素并且將數(shù)據(jù)元素與所對應的當前極值進行比較。
21.如權利要求19所述的裝置,其特征在于,流水線包括M個寄存器,適于存儲極值的參考。
22.如權利要求21所述的裝置,其特征在于,寄存器是指針寄存器。
23.如權利要求21所述的裝置,其特征在于,寄存器是通用數(shù)據(jù)寄存器。
24.如權利要求18所述的裝置,其特征在于,流水線包括M個累加器以存儲M個當前的極值。
25.如權利要求18所述裝置,其特征在于,流水線包括M個通用寄存器以存儲M個當前的極值。
26.一種包括在其上存儲計算機可執(zhí)行指令的媒介的產(chǎn)品,該指令用于編譯軟件程序,其中,計算機可執(zhí)行指令適于產(chǎn)生N/M機器指令,以搜索N個數(shù)據(jù)元素的陣列,每一個機器指令使得可編程處理器進行在單個取指操作中,從N個元素的陣列檢索M個數(shù)據(jù)元素;以及,將M個數(shù)據(jù)元素的每個與所對應的當前極值進行充分比較。
27.如權利要求26所述的產(chǎn)品,其特征在于,每一個機器指令都使得處理器根據(jù)比較來更新參考組。
28.如權利要求26所述的產(chǎn)品,其特征在于,每一個機器指令都使得處理器同時處理在流水線處理器的單個執(zhí)行單元中的第一數(shù)據(jù)元素和第二數(shù)據(jù)元素。
29.一種系統(tǒng),包括存儲器件;以及,與存儲器件相耦合的處理器,其中,處理器包括配置為并行處理M個數(shù)據(jù)元素的流水線和配置為使流水線響應于N/M個機器指令搜索N個數(shù)據(jù)元素的陣列的控制單元。
30.如權利要求29所述的系統(tǒng),其特征在于,響應于每一個機器指令,控制單元使流水線在單個取指操作中從元素陣列檢索M個數(shù)據(jù)元素并且同時將數(shù)據(jù)元素與對應的當前極值進行比較。
31.如權利要求29所述的系統(tǒng),其特征在于,流水線包括配置為存儲極值參考的M個寄存器。
32.如權利要求31所述的系統(tǒng),其特征在于,寄存器是指針寄存器。
33.如權利要求31所述的系統(tǒng),其特征在于,寄存器是通用數(shù)據(jù)寄存器。
34.如權利要求29所述的系統(tǒng),其特征在于,存儲器件包括靜態(tài)隨機存取存儲器。
35.如權利要求29所述的系統(tǒng),其特征在于,存儲器件包括FLASH存儲器。
全文摘要
在一個實施例,可編程處理器響應于N/M個機器指令搜索N個數(shù)據(jù)元素的陣列,其中處理器具有配置為并行處理M個數(shù)據(jù)元素的流水線。響應于機器指令,控制單元使流水線在單個取指周期中從元素陣列檢索M個數(shù)據(jù)元素,將數(shù)據(jù)元素與M個當前的極值同時進行比較,并根據(jù)比較更新當前的極值以及當前極值的M個參考。
文檔編號G06F7/02GK1466715SQ01816469
公開日2004年1月7日 申請日期2001年9月26日 優(yōu)先權日2000年9月28日
發(fā)明者C·P·洛斯, R·克拉格特拉, J·福利德曼, C P 洛斯, 侶, 裉乩 申請人:英特爾公司, 模擬設備股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1