TWI782060B - 用於在資料處理設備中比對連續值的設備、方法、電腦程式及電腦可讀取儲存媒體 - Google Patents
用於在資料處理設備中比對連續值的設備、方法、電腦程式及電腦可讀取儲存媒體 Download PDFInfo
- Publication number
- TWI782060B TWI782060B TW107124592A TW107124592A TWI782060B TW I782060 B TWI782060 B TW I782060B TW 107124592 A TW107124592 A TW 107124592A TW 107124592 A TW107124592 A TW 107124592A TW I782060 B TWI782060 B TW I782060B
- Authority
- TW
- Taiwan
- Prior art keywords
- comparison
- input
- value
- vector
- elements
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004590 computer program Methods 0.000 title claims description 12
- 239000013598 vector Substances 0.000 claims abstract description 142
- 230000008569 process Effects 0.000 claims description 50
- 230000004044 response Effects 0.000 claims description 20
- 230000000644 propagated effect Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 241000282326 Felis catus Species 0.000 description 4
- 125000001475 halogen functional group Chemical group 0.000 description 4
- 238000013479 data entry Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Abstract
本案提供一種設備及一種操作該設備的方法,用於進行一比較操作來比對一輸入向量中的一給定值序列。指令解碼器電路系統回應於一字串比對指令而產生控制信號來控制該資料處理電路系統去進行一比較操作,該字串比對指令指明一輸入向量的一區段。該比較操作決定一比較值,該比較值指示出是否該區段的一組必要的連續輸入元素之各輸入元素具有的值匹配該參照資料項之連續參照元素中的一相應值。可進行複數個比較操作來決定對應於該輸入向量的該區段的一匹配向量,以指示出該輸入向量中之子字串的開始位置。亦提供一種字串比對指令,還有模擬器虛擬機器實施方式。
Description
本揭示案關於一種資料處理設備。更特定地關於針對一給定值序列進行搜尋。
資料處理設備可進行非常多樣的資料處理操作,有些資料處理操作需要決定在給定的輸入資料中是否存在一預定義值序列(有時被稱為子字串(substring))。要實施此一功能所必要的資料處理電路系統的複雜性對於大的輸入資料項而言可能成為負擔。
在一實例中,提供有一種設備,該設備包含:指令解碼器電路系統,用以將指令解碼;及資料處理電路系統,用以對一輸入資料向量的一或更多個區段選擇地應用向量處理操作,該輸入資料向量包含位於該輸入資料向量中之相應位置處的複數個區段,其中該指令解碼器電路系統對指明該輸入資料向量之一區段及一參照資料項的一字串比對指令做出回應,以產生控制信號來致使該資料處理電路系統中的比較電路系統進行下列步驟:進行一比
較操作來設定一比較值,該比較值指示出是否該區段的一組必要的連續輸入元素中的各輸入元素具有的值匹配該參照資料項之連續參照元素中的一相應值。
另一實例中,提供有一種操作一設備的方法,該方法包含下列步驟:將指令解碼;選擇地對一輸入資料向量的一或更多個區段應用向量處理操作,該輸入資料向量包含複數個區段位於該輸入資料向量中的相應位置處;回應於指明該輸入資料向量之一區段及一參照資料項的一字串比對指令而產生控制信號,來致使該設備之資料處理電路系統中的比較電路系統進行下列動作:進行一比較操作來設定一比較值,該比較值指示出是否該區段的一組必要的連續輸入元素中的各輸入元素具有的值匹配該參照資料項之連續參照元素中的一相應值。
另一實例中,提供有一種設備,該設備包含:用於將指令解碼的手段;用於選擇地對一輸入資料向量的一或更多個區段應用向量處理操作的手段,該輸入資料向量包含複數個區段位於該輸入資料向量中的相應位置處;用於回應於一字串比對指令而產生控制信號的手段,該字串比對指令指明該輸入資料向量之一區段及一參照資料項,該用於產生控制信號的手段用以致使該設備中的比較手段進行下列動作:進行一比較操作來設定一比較值,該比較值指示出是否該區段的一組必要的連續輸入元素中的各輸入元素具有的值匹配該參照資料項之連續參照元素中的一相應值。
另一實例中,提供有一種用於控制一主機資料處理設備以提供一指令執行環境的電腦程式,該電腦程式包含:指令解碼程式邏輯,用以將指令解碼;及資料處理程式邏輯,用以選擇地對一輸入資料向量結構的一或更多個區段應用向量處理操作,該輸入資料向量結構包含複數個區段位於該輸入資料向量結構中的相應位置處,其中該指令解碼程式邏輯對指明該輸入資料向量結構之一區段及一參照資料項結構的一字串比對指令做出回應,以產生控制信號來致使該資料處理程式邏輯中的比較程式邏輯進行下列步驟:進行一比較操作來設定一比較值,該比較值指示出是否該區段的一組必要的連續輸入元素中的各輸入元素具有的值匹配該參照資料項結構之連續參照元素中的一相應值。
至少一些實例提供一種設備,該設備包含:指令解碼器電路系統,其用以將指令解碼;及資料處理電路系統,其用以選擇地對一輸入資料向量的一或更多個區段應用向量處理操作,該輸入資料向量包含複數個區段位於該輸入資料向量中的相應位置處,其中該指令解碼器電路系統對指明該輸入資料向量之一區段及一參照資料項的一字串比對指令做出回應,產生控制信號以致使該資料處理電路系統中的比較電路系統進行下列步驟:進行一比較操作來設定一比較值,該比較值指示出是否該區段的一組必要連續輸入元素的各輸入元素具有的值匹配該參照資料項之連續參照元素中的一相應值。
所提供的資料處理設備能決定是否一預定義值序列存在於一輸入向量中。由複數個輸入元素(各包含一特定值)組成的輸入向量,可在各式各樣情境中由一資料處理設備處置。因此在輸入向量是一資料值字串的情況中,則針對該輸入資料向量的該等元素實施一比較操作,使得能決定是否將在該輸入資料的連續輸入元素(字串)中找到該序列中的值(子字串)。為了支持此種比較操作,本案之技術提供的資料處理電路系統對來自指令解碼器電路系統的控制信號做出回應,以將一輸入向量之一區段中輸入元素的值與一參照資料項中相應參照元素的值做比較。將理解,參照資料項不限於包含特定個數的元素。
本案之技術確認到當提供此一資料處理設備時面臨的一個實際問題,即輸入資料項越大,進行必要的比較操作所關聯的電路系統之複雜度變得更大,尤其因為在輸入元素與參照元素之間必須進行之比較的排列組合數目增大,所及程度使得供應必要之電路系統可能變得不可行。在此情形中,本案之技術提供資料處理電路系統(由指令解碼器電路系統所產生之控制信號來控制)來決定是否該輸入向量之一區段中一組必要的連續輸入元素中之各者匹配參照資料項之連續參照元素中的相應值(搜尋關鍵字(search key))。此組必要的連續輸入元素可經不同地定義(如以下將更詳細論述),但通常此方法規定了能實際提供該電路系統及實施必要的比較操作。特定而言,藉由在分區段的基礎上實施與相應參照元素的比較,改善了進行子字串搜尋的效率。
在一些實例中該比較電路系統進一步對該等控制信號做出回應而進行:包含複數個比較操作的一匹配決定流程,其中針對各比較操作的該組必要的連續輸入元素開始於該比較操作之該區段中的一相應候選偏差(offset)處,其中該複數個比較操作的候選偏差值跨於該區段。換言之,針對由該匹配決定流程進行之各比較操作決定一候選偏差,來指示出於該區段中進行該比較操作之處的偏差。針對對應於該輸入向量之一區段的全部偏差的各候選偏差值進行比較操作。因此,各比較操作決定一比較值,且該比較值對應於一給定候選偏差值。該比較操作的偏差指示出該區段中與相應參照元素做比較之該組輸入元素的位置。藉由針對複數個候選偏差(候選偏差值)之各者進行一比較操作,可能得以針對一個子字串在該區段中找到的輸入元素範圍內的各可能位置決定一比較值。此外,由於匹配決定流程的各比較操作僅在該輸入向量的一給定區段中的輸入元素上進行,因此能控制資料處理設備的複雜度,即使是針對大的輸入向量。因此,一輸入向量中一子字串的全部可能位置都被搜尋來改善子字串搜尋的準確度,同時仍管控資料處理電路系統的複雜度。
在一些實例中,該組必要的連續輸入元素的元素個數等於參照資料項中之參照元素的個數減去該相應比較操作的相應候選偏差。當在該輸入向量中搜尋一子字串(參照資料項)時,該子字串的長度可大於一區段的長度。在此情況中,若將在該輸入向量中找到該子字串,該子字串將跨於至少兩個區段而定位。此外,在可在該區段中找到該參照資料項之第一參照元素的同時,該參照資料項的大小可大於該區段之大小與該第一參照元素所在之處的偏差值之間的差。在此情況中該子字串亦將跨於至少兩個區段定位。因此,可能有需要基於該參照資料項的大小與該偏差值,來決定連續輸入元素的必要個數。在本上下文中本案之技術提出,該組必要的連續輸入元素可經決定為該參照資料項的大小減去一相應比較操作的候選偏差值,如此賦能該比較操作決定是否該區段的剩餘輸入元素(該區段位於該相應候選偏差位置及該位置之後的輸入元素)乃是與該等對應參照元素比較下的匹配(match)。因此,即使一子字串跨於超過一個區段而定位,仍能在一輸入向量中找到該子字串。換言之對一區段做比較的限制(為了能控制潛在的硬體複雜度)不必侷限能搜尋之子字串的長度。
在一些實例中,該比較電路系統對被設定的比較值做出回應,而設定一所偵測偏差值來匹配一候選偏差值,其中該所偵測偏差值指示出一基底輸入元素,該基底輸入元素由該比較操作識別成該等連續輸入元素的第一輸入元素。針對各比較操作,一相關聯偏差值被用來指示該區段中的一偏差,於該偏差處開始該比較操作。該偏差值指示出該區段中要與一相應參照元素做比較的第一輸入元素。一比較值指示出在相應比較操作期間在該區段中已經找到的必要個數的連續輸入元素,而因此針對該比較操作所使用的偏差值(候選偏差值)指示出該等連續輸入元素之第一輸入元素在該區段中的位置。
藉由設定一所偵測偏差值來匹配由該比較操作使用的候選偏差值,在該候選偏差中找到該組必要的連續輸入元素,可以識別出對應於一可能子字串匹配的基底輸入元素(正在搜尋之子字串的第一輸入元素)的該輸入元素。應注意,識別該等連續輸入元素的基底輸入元素並不需要在該輸入向量中尚未找到的該子字串的全部輸入參照元素,而是只要已經被找到的該組必要的連續輸入元素。確實,可能需要在該輸入項量的其他區段上進行複數個計數操作,以決定是否已找到整個子字串。藉由設定一所偵測偏差值,即使該輸入向量的進一步區段需要先被處理,仍能找到一子字串的位置。
在一些實例中,該匹配決定流程包含針對該區段決定一匹配向量,而各比較操作的比較值用以設定該匹配向量中之相應匹配元素的值,其中各相應匹配元素在該匹配向量中所具有的位置對應於決定了該比較值之比較操作的相應候選偏差。因此在一些實例中該匹配決定流程決定了一相應比較操作使用了哪些候選偏差來識別該組必要的連續輸入元素與其等之相應參照元素之間的一匹配。此匹配向量可被資料處理電路系統所進行的進一步處理所使用,例如溢位比較操作。此意指即使當一輸入向量被劃分成為區段時,能找到一子字串在該輸入向量中的可能位置。因此,能夠可管控地侷限硬體複雜度,而不阻止子字串的位置被可靠地決定。
在一些實例中該資料處理電路系統進一步包含對控制信號做出回應而進行複數個匹配決定流程的複數個比較電路系統,該複數個匹配決定流程之各者乃針對來自該複數個區段之中的一相應區段所進行。輸入向量被劃分成為複數個區段,而各區段包含複數個輸入元素。各匹配決定流程的進行是利用一給定區段,且各匹配決定流程的進行是藉由決定一組必要的連續輸入元素中是否各輸入元素具有的值匹配一參照資料項中的一相應元素。該資料處理電路系統內包含複數個比較電路系統,且各比較電路系統利用來自該輸入向量的一相應區段來進行匹配決定流程。此意指該輸入向量能平行地在區段中有效率地被處理。此種將輸入向量分區段的作法賦能匹配決定流程藉由將硬體複雜度侷限在可管控的位準而被實際地實施。
在一些實例中,各匹配決定流程包含:針對相應區段決定一相應匹配向量,且各比較操作的比較值被用以設定該匹配向量中之一匹配元素的值,其中各相應匹配元素具有在該相應匹配向量中的一位置,該位置對應於決定了該比較值的該比較操作的相應候選偏差。該匹配向量包含複數個匹配元素,各匹配元素包含的一值被設定以匹配該比較值。各匹配元素中的該匹配值因此指示出是否該組必要的連續輸入元素的基底輸入元素被識別所在的偏差處匹配該匹配元素的相應位置。此作法意指能藉由在該匹配向量中的經設定匹配值,來從一匹配元素的位置隱含地決定經決定的偏差值。據此,藉由以一位置(其指示出決定一相應比較值的該比較操作的偏差值)來設定一匹配元素的匹配值,能有效率地識別出基底輸入元素而不需要顯著的額外硬體。
在一些實例中複數個比較電路系統中的該比較電路系統對被滿足的溢位條件做出回應,而傳播供由該複數個比較電路系統中之一鄰接比較電路系統使用的一溢位旗標,其中當該比較值被設定且該組必要的連續輸入元素中之元素個數少於該參照資料項中之元素個數時該溢位條件被滿足。由於輸入資料項被分組成為區段,在有些情況中參照資料項可能跨於複數個區段而定位。因此本案之技術提出從一比較電路系統傳播一指示符到一鄰接比較電路系統,以指示出在該比較電路系統的該區段中僅已找到參照資料項的一部分(該組必要的連續輸入元素)。此賦能該鄰接電路系統可靠地決定是否參照資料項的一剩餘部分(或者該剩餘部分之局部)在一後續的區段中。
因此當溢位條件被滿足時溢位旗標被傳播至鄰接比較電路系統。若參照資料項中的參照元素個數大於針對一給定比較操作的該組必要的參照元素,則若在該給定比較操作中識別出一基底元素,該參照資料項的至少一剩餘部分位在一後續的區段中。因此,該比較操作產生該溢位旗標來對一鄰接比較電路系統做指示,以參照該給定比較操作的經決定偏差值決定該組必要的連續輸入元素。此意指能藉由將被搜尋的子集合分割成複數組必要的連續輸入元素,各組連續輸入元素對應於一輸入向量的一相應區段,來有效率地識別出該輸入向量中的長的子集合。
在一些實例中當該溢位旗標被設定時,該鄰接比較電路系統亦對被設定的溢位旗標做出回應而進行一溢位比較操作,來基於由該比較電路系統之匹配決定流程所決定的匹配向量來決定一組必要的溢位連續輸入元素。由該匹配決定流程決定的匹配向量指示出該子字串之可能匹配者的基底輸入元素。由於匹配向量中之匹配元素的位置指示出所偵測的偏差值,能利用該匹配向量(除了該參照資料項的已知長度之外)來決定由該鄰接比較電路系統使用之區段的輸入元素(該組必要的溢位連續輸入元素)的個數,該等輸入元素乃必要以比對該參照資料項之該剩餘部分的相應參照元素。將理解(若被傳播至鄰接比較電路系統的溢位旗標被設定)除了比較操作之外能針對該鄰接比較電路系統中的該區段進行溢位比較操作。藉由利用一組必要的溢位連續輸入元素來進行溢位比較操作,可以可靠地在一輸入向量中搜尋長的子集合,因為除了對一給定區段進行比較操作之外亦能搜尋該參照資料項的剩餘部分。
在一些實例中該組必要的連續輸入元素由一輸入述詞向量所指示,該輸入述詞向量包含複數個輸入述詞元素,該複數個輸入述詞元素之各者對應於由該比較操作使用的一輸入元素,其中該複數個輸入述詞元素指示出該複數個輸入元素之何者包含該等連續輸入元素。對於一匹配決定流程中之複數個比較操作的各比較操作,該組必要的連續輸入元素有所不同。比較電路系統可包含複數個比較器,其中各比較器將一輸入元素的值與一對應的參照元素的值做比較。本案所提出的包含複數個輸入述詞旗標的輸入述詞向量可被提供以指示出該等比較器中何者應被設定。據此,可以僅啟用必要的彼等比較器,以將該組必要的連續輸入元素的各輸入元素與其相應參照元素做比較。因此,能降低比較電路系統在進行匹配決定流程之時的功耗,因為已經可以僅進行所需的比較,而能減少多餘的處理量。
在一些實例中提供有一種操作一設備的方法,該方法包含下列步驟:將指令解碼;選擇地對一輸入資料向量的一或更多個區段應用向量處理操作,該輸入資料向量包含複數個區段位於該輸入資料向量中的相應位置處;回應於指明該輸入資料向量之一區段及一參照資料項的一字串比對指令而產生控制信號,來致使資料處理電路系統中的比較電路系統進行下列動作:進行一比較操作來設定一比較值,該比較值指示出是否該區段的一組必要的連續輸入元素中的各輸入元素具有的值匹配該參照資料項之連續參照元素中的一相應值。
至少一些實例提供一種用於控制一主機資料處理設備以提供一指令執行環境的電腦程式,包含:指令解碼程式邏輯,其用於將指令解碼;及資料處理程式邏輯,其用於選擇地對一輸入資料向量結構的一或更多個區段應用向量處理操作,該輸入資料向量結構包含複數個區段位於該輸入資料向量結構中的相應位置處,其中該指令解碼程式邏輯對指明一輸入資料向量結構的一計數指令做出回應,以產生控制信號來控制該資料處理程式邏輯進行下列步驟:進行一計數操作來決定一計數值,該計數值指示出該輸入資料項結構之一子集合的輸入元素個數,該個數所具的值匹配一參照資料項結構中之參照元素中的一參照值。
至少一些實例提供一種電腦可讀取儲存媒體,其以非暫態的方式儲存按照以上提及之實例之任意者的電腦程式。
現將參看圖式說明一些特定實施例。
第1圖示意地圖示一資料處理設備100,其可體現本案之技術的各不同實例。該設備包含資料處理電路系統102,資料處理電路系統102回應於其執行的一系列指令而在資料項上進行資料處理操作。該等指令為從資料處理設備100能存取的記憶體104擷取,且以本領域之通常知識者將熟知的方式,為此目的提供了提取電路系統105。此外,提取電路系統105所擷取的指令被傳遞給指令解碼器電路系統101,其產生控制信號,該等控制信號經安排以控制處理電路系統102(還有一組暫存器103及一載入/儲存單元106)之配置方式及操作的各種態樣。一般而言,可以管線式(pipelined fashion)地排列資料處理電路系統102,而此細節與本案之技術無關。本領域之通常知識者將熟悉第1圖所代表之一般配置方式,而其進一步詳細說明僅因簡要之目的而在此省略。暫存器103(如第1圖中可見)各包含用於多個資料元素的儲存空間,使得該處理電路系統能對一經指明暫存器內的一經指明資料元素應用資料處理操作,或是能對一經指明暫存器內的一組經指明資料元素(一「向量」)應用資料處理操作。特定言之,所描繪的資料處理設備有關於對於一輸入向量之區段的比較操作進行,該等區段被維持在暫存器103中,以下將更詳細地參照一些特定實施例做進一步解釋。資料處理電路系統102在指令之執行時必要的資料值,以及由於該等資料處理指令所導致產生的資料值,被利用載入/儲存單元106寫入至記憶體104及自記憶體104讀出。亦注意,一般第1圖中的記憶體104可被視為一種電腦可讀取儲存媒體的實例,在該電腦可讀取儲存媒體上能儲存本案之技術的指令,該等指令常見作為預定義的一系列指令的部分(「程式」),該處理電路系統接著執行該系列指令。該處理電路系統然而可從各式各樣不同來源存取此一程式,像是在RAM中、ROM中、經由網路介面、及其他。本揭示案描述處理電路系統102能執行的各種新穎指令,而下文的圖式提供對該等指令之性質、為了支持該等指令之執行而在資料處理電路系統中的變異、及其他的進一步解釋。
第2圖示意地圖示一實施例中之資料處理設備200的組件的一些更多細節。第2圖之資料處理電路系統201經顯示為包含比較電路系統204。如所描繪的,該資料處理電路系統可存取暫存器檔案203,其中此種存取動作發生乃因指令解碼電路系統202產生的控制信號。如以上關於第1圖所述,由提取電路系統206從記憶體207擷取一系列指令,且該系列指令被傳遞至指令解碼器電路系統202,同時由資料處理設備針對進行其資料處理操作所必要的資料值被載入/儲存單元208從記憶體207擷取並傳遞至暫存器檔案203。指令解碼器電路系統202對一字串比對指令做出回應而產生適當的控制信號,以致使資料處理電路系統201利用暫存器檔案203中維持的資料值內容來進行資料處理操作,該等資料值中之一些被載入/儲存單元208寫回至被指明的記憶體位址。此處理的更多細節將參照下文的圖式來說明。
第3圖示意地圖示一實施例中的資料處理電路系統201中之匹配決定電路系統301。匹配決定電路系統301進行複數個比較操作。被提供以支持該等操作的比較電路系統204基本上包含一比較器矩陣(對此例來說為十六個比較器,對應於第3圖中的中央4x4網格),各比較器接受對該列提供的一輸入(即參照資料項元素中之一者)以及對該欄提供的另一輸入(輸入資料項元素中之一者),使得在輸入資料項元素之任意者與參照資料項元素之任意者之間能做比較。輸入資料項及參照資料項兩者都被一組暫存器302中的一暫存器的部分內容所提供(各在字串比對指令中被指明),且如所示地被暫時維持(例如各在一正反器陣列中),使得該等比較器能各接收其用於比較的相應輸入值組對。
從第3圖注意到,維持所繪之輸入向量的暫存器被顯示為經分組成區段。該等區段對應於比較電路系統204的「寬度」,即在此實例中的四個元素。因此應理解為了清楚第3圖僅圖示對應於一個區段的比較電路系統,但事實上此比較電路系統存在於各區段的設備中,使得能搜尋該向量的完整寬度。在此一個區段中,各比較操作的結果被指示在匹配向量303中。為了產生該匹配向量,比較電路系統中的比較器各經安排以將各輸入元素中包含的輸入值與一相應參照元素中的參照值做比較。各比較器包含一組邏輯閘,該等邏輯閘經安排來決定一邏輯值,該邏輯值指示了是否一給定比較結果是在輸入值及其相應參照值之間的匹配。參看所示實例,進行了一比較操作,該比較操作是來自作為匹配決定流程之部分所進行的複數個比較操作之中的第一比較操作。簡單而言,在此區段中該比較電路系統正在決定是否在字串「halo」中找到了子字串「halo」。被圈起的值所顯示之比較操作具有一候選「偏差值」為「0」,表示輸入資料項的第一輸入元素與各後續輸入元素包含了必要個數的連續輸入元素。因此,該等連續輸入元素的「必要個數」為如圖中顯示的「4」。在此比較操作中所做的個別比較(在一個別輸入元素與其相應參照元素之間的比較)(由具有標記「匹配的連續輸入元素」之被圈起值所表示者)各以結果「1」來顯示匹配。亦進行其他比較,而在此例中結果全部是「0」。然而,對於被圈起的比較操作,來自該組必要的連續輸入元素中的各輸入元素(「h」、「a」、「l」、及「o」)被與參照資料項的一相應參照元素做比較。在此例中,在該輸入資料項中從對應於偏差值「0」的位置處找到該參照資料項。因此,如所示,該比較操作指示出各輸入元素與其相應參照元素之間的匹配。就該比較電路系統而言,因此應理解到為了匹配向量的產生,當滿足匹配條件時所必要的是,對於匹配向量303中對應於候選偏差值「0」的匹配元素的值被設定(被標記成「找到起點(start found)」)。此是藉由個別比較器之間的對角路徑間的連接所提供(第3圖中該組四個被圈起的比較器結果給出此的一實例)。當然此組十六個比較器中的其他可能的對角路徑較短,有兩個三比較器路徑、兩個兩比較器路徑、及兩個一比較器「路徑」。及(AND)閘連接了各對角路徑上的比較器,使得若對角線中的全部元素被找到,則產生一設定值(以填入匹配向量的對應元素)。換言之,各對角線代表本文中所用術語中的一「比較操作」。亦注意到儘管若參照資料項在輸入資料項之內(即在此比較電路系統對應之區段內)的某處開始,則僅有包含了所示被圈起的、以及其右下方者的對角線能找到該參照資料項的至少一部分。然而,如以下將論述的,在此區段中能找到該參照資料項的後面部分(即,在「halo」的實例中為「alo」、「lo」、或「o」),而其前一部分在前一區段中。據此,一般而言全部的比較器確實為活動中,而因此給出了第3圖中所示的完整4x4比較器結果矩陣。亦應注意,在向量暫存器302的意義上該匹配向量並非「向量」,反而僅是該匹配決定電路系統中經內部產生的一陣列(例如暫時維持在一組正反器中),利用該陣列能識別出該串列的起點(若找到的話)並進一步對此發出信號。
亦注意由於在當前的區段中找到參照資料項的全部元素,沒有設定該溢位旗標(相較於第5圖)。
另一點要注意的,在對其他類型之指令(而不只是字串比對指令)做出回應的設備中,相同一組比較器可被用以實行其他類型的比較或其他類型的處理操作。此種硬體再利用使該設備能有較小的佔用面積(footprint),或換言之,給定的佔用面積能支持更大範圍的資料處理。例如,如稍後將針對第11圖說明的,一設備可進一步對一「比對區段」指令做出回應,該指令利用同一組比較器與在比較器之間提供的額外邏輯閘,為了在該區段上進行計數操作。
第4圖示意地圖示一實施例中在資料處理電路系統201中的匹配決定電路系統301。此處的匹配決定電路系統301亦進行複數個比較操作(即對角線的相應比較之集合)。將瞭解此圖示類似於第3圖(且的確可表示同一個電路系統,但具有不同的輸入)但在第4圖的實例中(對比於第3圖的實例)參照資料項(「cat」)僅為三個元素之長。因此不需要做出此電路系統所能處理的在所有輸入資料項元素(4)與所有參照資料項元素(4)之間的全部可能比較(16),且為此目的可提供給程式編寫者利用一輸入述詞向量(見第7圖)的可能性,該輸入述詞向量能使不必要的比較器(即第四列的比較器)暫時被停用。在第4圖之實例中,注意到該區段包含一組4個輸入元素(如所示),該等輸入元素具有輸入值為[f c a t],而參照資料項包含3個參照元素,該等參照元素具有參照值[c a t]。換言之,簡單而言,在此區段中比較電路系統正在決定是否在字串「fcat」中找到子字串「cat」。如先前參照第3圖所述的比較被進行,然而此例中找到子字串「cat」的比較操作具有一候選偏差值「1」。換言之此實際上是被進行的該組比較操作中的第二個,在此操作中能在輸入資料項中找到子字串「cat」之整體(即不是開始於偏差0處就是開始於偏差1處)。當然在第一欄中(於候選偏差值為「0」處),以「f」為該輸入資料項的第一個(索引0)元素,對於該等參照元素的任意者沒有找到匹配者。然而於輸入元素索引「1」 處開始的比較操作是在此例中找到該子字串的操作。參照參照資料項的長度及候選偏差值決定了「必要個數」。因此對於開始於輸入資料項之索引1處的比較,且參照資料項的長度等於輸入元素之個數者(該等輸入元素具有的索引等於或大於候選偏差值(即,三),則「必要個數」是「3」。據此,如所示,該組必要的連續輸入元素的各輸入元素匹配其相應參照元素,且匹配向量303中對應於候選偏差值「1」的匹配元素的值被設定。找到匹配者的該比較操作所使用的候選偏差值被設為「偏差值」(所偵測偏差值),且位於該匹配向量之對應索引處的匹配向量元素的值被依樣地設定。
第5圖圖示匹配決定電路系統301,而此圖示類似於第3圖(且的確可表示同一個電路系統,不過具有不同的輸入),其進行根據一個實例之匹配決定流程中的複數個比較操作。特定而言,注意儘管參照資料項又是有4個參照元素,但對應於所描繪比較電路系統的區段(在暫存器302中所存取)包含僅參照資料項(「halo」)的一部分(前二個字母「ha」)。該匹配決定流程進行複數個比較操作,各比較操作對應於一候選偏差值。第5圖明顯標示出利用了候選偏差值「2」的比較操作。由於參照資料項的長度大於具有比候選偏差更高階之索引的其餘索引元素的個數,來自輸入元素之中的該組必要的連續輸入元素由具有索引「2」(對應於候選偏差)的輸入元素以及最後輸入元素(所具索引為「3」)所分界。因此,在被明顯標示出之比較中的連續參照元素的必要個數是二。如所示,當開始於偏差值「2」之處時,在該區段找到該組必要的輸入元素(即頭兩個字母)。據此,所具索引等於該偏差值的匹配元素被設定;更甚者,由於在當前區段中僅找到一部分的參照資料項,溢位旗標被設定。此旗標接著被傳播至鄰接比較電路系統,且在一些實例中該偏差值(所偵測偏差值)額外地被傳播至鄰接電路系統。亦重要的是,在此例中對於偵測到子字串一事的發信並不完全基於此區段的結果,卻亦需要在下一區段中找到(或至少接續)該子字串的其餘部分,如現將說明的。
第6圖圖示根據一個實例之匹配決定電路系統301中的另一組比較電路系統204,在其中亦進行匹配決定流程的一溢位比較操作。當從前一(即如所圖示的位於左邊者)比較電路系統傳播溢位旗標時,溢位比較操作變得相關。溢位比較操作是對應於少於全部之被搜尋參照資料項(省略至少第一個參照元素)的對角線比較行程。在第6圖的實例中其因此是該組比較器的左上方那一半三角形中的對角線。該等比較可隨時被進行,或者當在不必要時可被省略(但此需要一些額外的電路系統來在不需要時將其關掉及需要一初始觸發信號 – 即來自前一區段的溢位信號 – 且此亦影響計時,因為此區段的比較因而無法被實施,直到前一區段的比較已產生結果為止)。為了決定是否一參照資料項之一剩餘部分的至少局部匹配一後續區段中的相應輸入元素,進行了一溢位比較操作。該後續區段是輸入向量中的下一區段並是在暫存器302中被存取。如第6圖中所示,被圈起的比較操作(具有候選偏差值「0」的比較操作,且另外當「必要個數」少於參照項長度時的比較操作)找到必要的參照資料項之後面部分。基於決定了第5圖中之匹配者的比較操作(如第5圖中所示,由前一匹配決定流程的匹配向量所表示者)的所偵測偏差值,決定了該必要個數。特定而言,由於參照資料項的其餘部分小於區段的大小,該必要個數等於參照資料項的長度減去前一個所偵測偏差值(即,其等於所顯示的「2」)。該組必要的連續輸入元素因此由溢位比較電路系統所用之區段中的第一及第二輸入元素所分界。因此,該溢位比較操作將第一及第二輸入元素中的值與其等在參照資料項中的相應參照元素做比較,其中在此例中該等參照元素的偏差為「2」,代表第一資料輸入項必定是「l」而第二資料輸入項必定是「o」。如所示,該組必要的連續輸入元素[l o],的確符合對應的參照元素,因此具有的索引等於該溢位比較操作所使用之偏差值「0」的匹配元素被設定。注意,當前一區段的溢位旗標被設定時,被設定的匹配元素具有不同的意義,亦就是確認了該子字串在此區段中接續。因此對比較電路系統而言可以決定,在該輸入向量中由用於識別出基底輸入元素的匹配決定流程(此例中為前一匹配決定流程)之匹配元素所指示的位置處已找到完整的子集合(參照資料項)。
第7圖圖示根據一個實例的比較器網格,其由一輸入述詞向量控制。該輸入述詞向量可被用來對比較電路系統204中之比較器矩陣指示出要啟用哪些比較器。例如,當參照資料項(被搜尋的鍵值/子字串)的長度短於區段大小時,某些比較器可被停用。比較電路系統204包含複數個比較器,其中各比較器對應於一給定輸入元素及一相應參照元素之間的比較。因此,在所圖示實例(包含區段大小為4且可能的參照資料項大小為4)中,有16個比較器的網格被排列成一個4x4網格。第7圖中顯示之輸入述詞向量中的輸入述詞旗標各對應於一給定列中的比較器(如所示),其中該給定列的比較器比較各輸入元素與一給定參照資料項元素的值。例如在第7圖中,僅有輸入述詞向量的較低兩位元被設定,代表該參照資料項僅頭兩個元素為啟用(即被搜尋)的。換言之,在此例中全部必須被找到的是「ha」。當輸入述詞向量中的較高兩位元未被設定時,較高兩列比較器為停用的。最後,子字串「ha」確實在針對該區段中第三及第四位置的被圈起比較操作中被找到,因此(如上所述)匹配向量中於第三位置處的匹配元素被設定。
第8圖圖示溢位旗標的使用,該溢位旗標被輸入至鄰接另一比較電路系統的一比較電路系統。特定而言,資料處理電路系統102經描繪為包含暫存器802及複數個比較電路系統801-1、801-2、801-3及801-4。該等四個比較電路系統因此提供了用於在一給定區段中搜尋的比較器,而一起允許了實施跨於包含了四個區段之向量的完整寬度的搜尋。溢位旗標的傳播允許被搜尋的系列跨過至少一個區段分界。如所示,從比較電路系統801-1傳播至801-2的溢位旗標未被設定,然而從比較電路系統801-2傳播至801-3的溢位旗標被設定。在第6及7圖描繪的實例(其中在輸入向量中有找到參照資料項但其跨於兩區段而定位)中,溢位旗標被設定且從第一比較電路系統801-2被傳播至鄰接比較電路系統801-3,該鄰接比較電路系統如以上參照第7圖所說明地進行溢位比較操作。
第9圖圖示一流程圖,顯示根據一個實例的操作設備的方法。該程序開始於步驟900。於步驟901載入一參照資料項。於步驟902載入下一個(於第一迭代是第一個)輸入資料項。該程序繼續於步驟903選擇下一個(於第一迭代是第一個)偏差值。於步驟904進行一比較操作以決定一比較值,該比較值指示出是否來自該至少一個輸入元素之中的必要個數之連續輸入元素各具有的值等於該至少一個參照元素之連續參照元素中的一相應值。步驟905將匹配向量的一對應匹配元素設為具有該比較值的值。步驟906決定是否候選偏差值是最後偏差值。若不是,則重複步驟903~905直到滿足步驟906中的條件。若滿足步驟906中的條件,則於步驟907輸出該匹配向量。於步驟908決定是否輸入資料項(區段)是最後輸入資料項。若不是,則重複步驟902~907直到滿足步驟908中的條件(此為最後偏差值)。注意為了最簡單地描述比較操作,該流程圖將其記載為連續的步驟(於內迴圈中步驟904的各個被執行迭代),但從以上對比較電路系統實例的說明中將理解,當提供一比較器矩陣(例如在所論述實例中為4x4)時該等迭代將典型地平行操作,且因此對於一給定輸入資料項(即區段內容)的全部比較操作乃被同時進行。類似地,注意為了最簡單地描述輸入資料項(即區段)之比較,該流程圖將其記載為連續的步驟(於通過外迴圈之步驟902的各個被執行迭代),但從以上對比較電路系統實例的說明中將理解,當提供一組比較電路系統(例如在所論述實例中為四個平行者)時該等電路系統將典型地平行操作,且因此該指令所參照之向量的各輸入資料項(即區段內容)的全部比較操作乃被同時進行。最後,若步驟908中的條件被滿足,則該方法於步驟909完成。
第10圖圖示可使用的一模擬器實施方式。儘管先前所述實施例以用於操作支持本案相關技術的特定處理硬體的設備及方法來實施本發明,亦可以提供按照本文所述實施例的一種指令執行環境,其通過利用電腦程式來實施。此類電腦程式經常被模擬器,就此而言其提供一硬體架構的基於軟體之實施方式。模擬器電腦程式的各種變化包括模擬器、虛擬機器、模型、及二進位碼轉譯器(包括動態二進位碼轉譯器)。典型地,模擬器實施方式可在一主機處理器730上執行,該主機處理器可選地執行一主機作業系統720,該作業系統支援模擬器程式710。在一些配置方式中,在硬體與所提供指令執行環境(及/或在相同主機處理器上提供的多個相異指令執行環境)之間可有多個模擬層級。歷史上,曾需要強大的處理器來提供以合理速度執行的模擬器實施方式,但此種做法在特定情況(像是當為了相容性或重複使用之理由而需要執行原生於另一處理器之代碼時)中是合理的。例如,模擬器實施方式可提供具有額外功能性的指令執行環境,該指令執行環境不被主機處理器硬體所支持,或者提供常見為關聯於不同硬體架構的指令執行環境。在「Some Efficient Architecture Simulation Techniques」中(Robert Bedichek,1990年冬天USENIX會議,第53至63頁)提供了對模擬的概述。
在參照特定的硬體結構或特徵而先前已描述本案實施例的程度上,在一模擬實施例中,可藉由適當的軟體結構或特徵提供等效的功能性。例如,特定的電路系統可在一模擬實施例中被實施成電腦程式邏輯。類似地,記憶體硬體(像是暫存器或快取)可在模擬實施例中被實施成軟體資料結構。前述實施例中提及之硬體元件中一或更多者存在於主機硬體(例如主機處理器730)上的配置方式中,有些模擬實施例可利用主機硬體(恰當時)。
模擬器程式710可被儲存在電腦可讀取儲存媒體上(其可為非暫態媒體),且該模擬器程式提供一程式介面(指令執行環境)給目標碼700(其可包括應用程式、作業系統及虛擬機管理程序(hypervisor),如第2圖中顯示),該程式介面與模擬器程式710所模型化之硬體架構的應用程式介面相同。因此,可利用模擬器程式710在該指令執行環境內執行目標碼700的程式指令(包括上述的字串比對指令),使得其實不具有以上論述之設備200之硬體特徵的主機電腦730能夠模擬該等特徵。
第11圖圖示與以上各不同實例中所述之該組16個比較器相同者(即「比較電路系統」中的4x4矩陣),但該等比較器亦在該設備中被置於另一用途。在所顯示實例中此對應於其回應於亦為該設備所定義的「比對區段」(亦稱為MATCHSEG)指令。此MATCHSEG指令指明內含一輸入向量的一來源暫存器,該輸入向量再次被劃分成區段以匹配各比較電路系統的寬度,且致使針對一組計數值的各區段做出一決定,各指示出在該區段之元素的任意者中將找到一參照資料項中之一對應參照值幾次。據此,第11圖中所示中央4x4數值矩陣對應於(原先)參照第3圖所述同一組比較器,而在比較器之間有提供了額外的連接。不像以上論述的實例(從第3圖開始),該等針對比較器之水平行程(在第11圖中顯示的方向中)的連接且加總對各比較找到的匹配者,以給出被標記為「計數資料項」之各元素中的加總計數值。如第11圖之實例中顯示,該區段包含一組輸入值[4 2 2 0]而參照資料項包含一組4個參照值[0 1 2 3]。針對參照資料項之相應參照元素中的各參照值進行計數操作。因此,對於第一參照值「0」,找到一個匹配者(在索引為0的區段元素中)而所產生計數值則為一。針對具有參照值「1」的第二參照元素,由於該區段沒有值為「1」的輸入元素,針對該參照元素的計數值為零。對具有參照值「3」的最後參照元素亦是此情況。然而,由於在該子集合中有兩個輸入元素實例具有輸入值為「2」,對應於具有值「2」的第三參照元素的計數值具有計數值為二。據此,各計數值指示出在該區段中的輸入元素中,包含的輸入值匹配相應參照值的輸入元素個數。該比較電路系統(第2圖中的項目204)被提供以支持按照本案之技術的比較操作,並額外地支持該等回應於MATCHSEG指令所進行的計數操作,其中回應於此指令所產生的控制信號致使從比較器輸出結果導出的計數值被輸出,其中回應於本案之技術之字串比對指令所產生的控制信號致使該匹配向量被用來指示出是否(及何處)找到被搜尋之參照資料項的匹配者。因此指令解碼器電路系統回應於一給定指令所產生的控制信號為可操作以配置比較電路系統204,來進行子字串比較操作抑或計數操作(可能還有其他),依照被供應給指令解碼器電路系統的指令而定。
簡短地整體總結,提供了一種設備及一種操作此設備的方法,用於進行比較操作以比對一輸入向量內的一給定值序列。指令解碼器電路系統對指明一輸入向量之一區段的一字串比對指令做出回應,而產生控制信號來控制資料處理電路系統以進行一比較操作。該比較操作決定一比較值,其指示出是否該區段的一組必要的連續輸入元素之各輸入元素具有的值匹配參照資料項之連續參照元素中的一相應值。可進行複數個比較操作來決定對應於該輸入向量之該區段的一匹配向量,以指示出在該輸入向量中該子字串的開始位置。
在本案中,「經配置以…」等字句被用來表示一設備的一元件具有一種配置方式,其能夠實現所定義的操作。在此上下文中,「配置方式」代表硬體或軟體之交互連接的排列方式或方法。例如,該設備可具有提供所定義操作的專屬硬體,或者可程式編寫一處理器或其他處理裝置來進行該功能。「經配置以」並不暗示該設備元件必須以任何方式被改變以便提供所定義操作。
儘管在本文中已參照隨附圖式詳細地說明例示性實施例,應瞭解本發明不受限於該等確切的實施例,而本領域之技術人員能實現對其的各種改變、附加、及修改,而無悖離隨附申請專利範圍所定義的本發明範疇及精神。例如,附屬請求項的特徵能與獨立項的特徵做出各種不同組合,而無悖離本發明的範疇。
100‧‧‧資料處理設備101‧‧‧指令解碼器電路系統102‧‧‧處理電路系統103‧‧‧暫存器104‧‧‧記憶體105‧‧‧提取電路系統106‧‧‧載入/儲存單元200‧‧‧資料處理設備201‧‧‧資料處理電路系統202‧‧‧指令解碼電路系統203‧‧‧暫存器檔案204‧‧‧比較電路系統206‧‧‧提取電路系統207‧‧‧記憶體208‧‧‧載入/儲存單元301‧‧‧匹配決定電路系統302‧‧‧向量暫存器303‧‧‧匹配向量700‧‧‧目標碼710‧‧‧模擬器程式720‧‧‧主機作業系統730‧‧‧主機電腦801-1、801-2、801-3、801-4‧‧‧比較電路系統802‧‧‧暫存器900~909‧‧‧步驟
參照隨附圖式中所示之本案實施例(僅作為實例)將進一步說明本案之技術,在該等圖式中: 第1圖示意地圖示根據一個實例的一設備; 第2圖示意地圖示根據一個實例的一設備; 第3圖圖示在由根據一個實例之匹配決定電路系統進行的匹配決定流程期間所進行的比較操作; 第4圖圖示一實例中的一比較操作,該比較操作對應於一給定偏差值及一給定的必要個數; 第5圖圖示一實例中的一比較操作,其中該溢位旗標被設定以致使鄰接比較電路系統進行一溢位比較操作; 第6圖圖示在一實例中正由鄰接比較電路系統進行的一溢位比較操作; 第7圖圖示在一實例中的一輸入述詞向量,該輸入述詞向量正被用以指示出複數個輸入元素中何者包含該組必要連續輸入元素; 第8圖圖示一實例中的資料處理電路系統,該資料處理電路系統包含比較電路系統,其中一溢位旗標可被設定並被傳播至鄰接比較電路系統; 第9圖圖示一流程圖,其顯示當執行一實例中之匹配決定流程時所採取的一系列步驟; 第10圖示意地圖示在一實施例中提供一模擬器實施方式之系統的組件;及 第11圖圖示在一些實施例中一設備中存在的比較電路系統,該比較電路系統被用以實施一「比對區段」指令(指令本身並非本案之技術的標的),但該比較電路系統亦被用以實施本案之技術的字串比對指令。
200:資料處理設備
201:資料處理電路系統
202:指令解碼電路系統
203:暫存器檔案
204:比較電路系統
206:提取電路系統
207:記憶體
208:載入/儲存單元
Claims (12)
- 一種資料處理設備,包含:指令解碼器電路系統,該指令解碼器電路系統用於將指令解碼;及資料處理電路系統,該資料處理電路系統用於選擇地對一輸入資料向量的一或更多個區段應用向量處理操作,該輸入資料向量包含複數個區段位於該輸入資料向量中的相應位置處,其中該指令解碼器電路系統對指明該輸入資料向量之一區段及一參照資料項的一字串比對指令做出回應,以產生控制信號來致使該資料處理電路系統中的比較電路系統進行下列步驟:包含複數個比較操作的一匹配決定流程,其中用於各比較操作的一組必要的連續輸入元素開始於用於該比較操作之該區段中的一相應候選偏差處,其中該複數個比較操作的候選偏差值跨越該區段,其中該資料處理電路系統進一步包含複數個比較電路系統,該複數個比較電路系統的各比較電路系統回應於該等控制信號而進行複數個匹配決定流程的一相應匹配決定流程,該複數個匹配決定流程的各匹配決定流程乃針對來自該複數個區段之中的一相應區段而進行,且該複數個匹配決定流程的各匹配決定流程包 括該複數個比較操作,其中該複數個比較操作的各比較操作設定一相應的比較值,該比較值指示出是否該相應區段的該組必要的連續輸入元素中的各輸入元素具有的一值匹配該參照資料項之連續參照元素中的一相應值。
- 如請求項1所述之設備,其中該組必要的連續輸入元素的一元素個數等於該參照資料項中的一參照元素個數減去該相應比較操作的該相應候選偏差。
- 如請求項1所述之設備,其中該比較電路系統回應於該比較值被設定為一經偵測偏差值以匹配一候選偏差值,其中該經偵測偏差值指示出一基底輸入元素,該基底輸入元素經由該比較操作識別成該等連續輸入元素的一第一輸入元素。
- 如請求項1所述之設備,其中該匹配決定流程包含決定用於該區段的一匹配向量,且各比較操作的該比較值被用以設定該匹配向量中之一相應匹配元素的該值,其中各相應匹配元素具有在該匹配向量中的一位置,該位置對應於決定了該比較值之該比較操作的該相應候選偏差。
- 如請求項1所述之設備,其中各匹配決定流程包含決定用於該相應區段的一相應匹配向量,且各 比較操作的該比較值被用以設定該匹配向量中之一匹配元素的該值,其中各相應匹配元素具有在該相應匹配向量中的一位置,該位置對應於決定了該比較值之該比較操作的該相應候選偏差。
- 如請求項1所述之設備,其中複數個比較電路系統中的該比較電路系統回應於滿足一溢位條件而傳播一溢位旗標,該溢位旗標供該複數個比較電路系統之一鄰接比較電路系統之用,其中當該比較值被設定且該組必要的連續輸入元素中的元素個數小於該參照資料項中之一參照元素個數時,該溢位條件被滿足。
- 如請求項6所述之設備,其中當該溢位旗標被設定時該鄰接比較電路系統回應於被設定的該溢位旗標亦進行一溢位比較操作,以基於由該比較電路系統之該匹配決定流程所決定的該匹配向量來決定一組必要溢位的連續輸入元素。
- 如請求項1所述之設備,其中該組必要的連續輸入元素由一輸入述詞向量所指示,該輸入述詞向量包含複數個輸入述詞元素,該複數個輸入述詞元素之各者對應於由該比較操作使用的一輸入元素,其中該複數個輸入述詞元素指示出該複數個輸入元 素之何者包含該等連續輸入元素。
- 一種操作一資料處理設備的方法,該方法包含下列步驟:將指令解碼;選擇地對一輸入資料向量的一或更多個區段應用向量處理操作,該輸入資料向量包含複數個區段位於該輸入資料向量中的相應位置處;回應於指明該輸入資料向量之一區段及一參照資料項的一字串比對指令而產生控制信號,來致使資料處理電路系統中的比較電路系統進行下列動作:包含複數個比較操作的一匹配決定流程,其中用於各比較操作的一組必要的連續輸入元素開始於用於該比較操作之該區段中的一相應候選偏差處,其中該複數個比較操作的候選偏差值跨越該區段,其中該資料處理電路系統進一步包含複數個比較電路系統,該複數個比較電路系統的各比較電路系統回應於該等控制信號而進行複數個匹配決定流程中的一相應匹配決定流程,該複數個匹配決定流程的各匹配決定流程乃針對來自該複數個區段之中的一相應區段而進行,且該複數個匹配決定流程的各匹配決定流程包括該複數個比較操作,其中該複數個比較操作的各比較操作設定一相應的 比較值,該比較值指示出是否該相應區段的該組必要的連續輸入元素中的各輸入元素具有的一值匹配該參照資料項之連續參照元素中的一相應值。
- 一種資料處理設備,包含:用於將指令解碼的手段;用於選擇地對一輸入資料向量的一或更多個區段應用向量處理操作的手段,該輸入資料向量包含複數個區段位於該輸入資料向量中的相應位置處;用於回應於一字串比對指令而產生控制信號的手段,該字串比對指令指明該輸入資料向量之一區段及一參照資料項,該用於產生控制信號的手段用以致使該設備中的比較手段進行下列動作:包含複數個比較操作的一匹配決定流程,其中用於各比較操作的一組必要的連續輸入元素開始於用於該比較操作之該區段中的一相應候選偏差處,其中該複數個比較操作的候選偏差值跨越該區段,其中該設備進一步包含複數個用於比較的手段,該複數個用於比較的手段的各手段回應於該等控制信號而進行複數個匹配決定流程的一相應匹配決定流程,該複數個匹配決定流程的各匹配決定流程乃針對來自該複數個區段之中的一相應區段而進行,且該複數個匹配決定流程的各匹配決定流程包括該複數個比較操 作,其中該等比較操作的各比較操作設定一相應的比較值,該比較值指示出是否該區段的該組必要的連續輸入元素中的各輸入元素具有的一值匹配該參照資料項之連續參照元素中的一相應值。
- 一種用於控制一主機資料處理設備以提供一指令執行環境的電腦程式,該電腦程式包含:指令解碼程式邏輯,該指令解碼程式邏輯用於將指令解碼;及資料處理程式邏輯,該資料處理程式邏輯用於選擇地對一輸入資料向量結構的一或更多個區段應用向量處理操作,該輸入資料向量結構包含複數個區段位於該輸入資料向量結構中的相應位置處,其中該指令解碼程式邏輯對指明該輸入資料向量結構之一區段及一參照資料項結構的一字串比對指令做出回應,以產生控制信號來致使該資料處理程式邏輯中的比較程式邏輯進行下列步驟:包含複數個比較操作的一匹配決定流程,其中用於各比較操作的一組必要的連續輸入元素開始於用於該比較操作之該區段中的一相應候選偏差處,其中該複數個比較操作的候選偏差值跨越該區段,其中該資料處理程式邏輯進一步包含複數個比較程 式邏輯,該複數個比較程式邏輯的各比較程式邏輯回應於該等控制信號而進行複數個匹配決定流程的一相應匹配決定流程,該複數個匹配決定流程的各匹配決定流程乃針對來自該複數個區段之中的一相應區段而進行,且該複數個匹配決定流程的各匹配決定流程包括該複數個比較操作,其中該複數個比較操作的各比較操作設定一相應的比較值,該比較值指示出是否該相應區段的該組必要的連續輸入元素中的各輸入元素具有的一值匹配該參照資料項結構之連續參照元素中的一相應值。
- 一種電腦可讀取儲存媒體,該電腦可讀取儲存媒體以一非暫態的方式儲存如請求項11所述的電腦程式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/665,715 US10678506B2 (en) | 2017-08-01 | 2017-08-01 | Matching consecutive values in a data processing apparatus |
US15/665,715 | 2017-08-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201911081A TW201911081A (zh) | 2019-03-16 |
TWI782060B true TWI782060B (zh) | 2022-11-01 |
Family
ID=63077892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107124592A TWI782060B (zh) | 2017-08-01 | 2018-07-17 | 用於在資料處理設備中比對連續值的設備、方法、電腦程式及電腦可讀取儲存媒體 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10678506B2 (zh) |
EP (1) | EP3662361B1 (zh) |
JP (1) | JP7245817B2 (zh) |
KR (1) | KR102594770B1 (zh) |
CN (1) | CN110998512B (zh) |
IL (1) | IL272136B (zh) |
TW (1) | TWI782060B (zh) |
WO (1) | WO2019025752A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817297B2 (en) * | 2019-03-30 | 2020-10-27 | Intel Corporation | Method and apparatus for vector-matrix comparison |
US20240111541A1 (en) * | 2022-09-30 | 2024-04-04 | Texas Instruments Incorporated | Reducing Overhead In Processor Array Searching |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4991134A (en) * | 1988-03-30 | 1991-02-05 | International Business Machines Corporation | Concurrent sorting apparatus and method using FIFO stacks |
US20040199630A1 (en) * | 1999-06-30 | 2004-10-07 | Sarkissian Haig A. | State processor for pattern matching in a network monitor device |
TW200615795A (en) * | 2004-11-15 | 2006-05-16 | Ind Tech Res Inst | System and method of string matching using uniform data classification |
EP2421223A2 (en) * | 2006-05-02 | 2012-02-22 | Exegy Incorporated | Method and Apparatus for Approximate Pattern Matching |
US20140281371A1 (en) * | 2013-03-13 | 2014-09-18 | Hariharan Thantry | Techniques for enabling bit-parallel wide string matching with a simd register |
CN104750775A (zh) * | 2013-12-24 | 2015-07-01 | Tcl集团股份有限公司 | 内容比对方法及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4307377A (en) * | 1979-11-09 | 1981-12-22 | Bell Telephone Laboratories, Incorporated | Vector coding of computer graphics material |
CA1175575A (en) * | 1981-12-07 | 1984-10-02 | Michael S. Pelley | Programmable controller with multiple functions |
DE4334294C1 (de) * | 1993-10-08 | 1995-04-20 | Ibm | Prozessor für Zeichenketten variabler Länge |
US5608662A (en) * | 1995-01-12 | 1997-03-04 | Television Computer, Inc. | Packet filter engine |
US6708268B1 (en) * | 1999-03-26 | 2004-03-16 | Microchip Technology Incorporated | Microcontroller instruction set |
CN1293502C (zh) * | 1999-06-30 | 2007-01-03 | 倾向探测公司 | 用于监控网络流量的方法和设备 |
GB0210604D0 (en) * | 2002-05-09 | 2002-06-19 | Ibm | Method and arrangement for data compression |
US8762694B1 (en) * | 2003-02-19 | 2014-06-24 | Intel Corporation | Programmable event-driven yield mechanism |
US20050086234A1 (en) * | 2003-10-15 | 2005-04-21 | Sierra Wireless, Inc., A Canadian Corporation | Incremental search of keyword strings |
US9069547B2 (en) * | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US7908457B2 (en) * | 2008-05-05 | 2011-03-15 | International Business Machines Corporation | Retaining an association between a virtual address based buffer and a user space application that owns the buffer |
US9804839B2 (en) | 2012-12-28 | 2017-10-31 | Intel Corporation | Instruction for determining histograms |
-
2017
- 2017-08-01 US US15/665,715 patent/US10678506B2/en active Active
-
2018
- 2018-07-05 CN CN201880049537.3A patent/CN110998512B/zh active Active
- 2018-07-05 KR KR1020207004792A patent/KR102594770B1/ko active IP Right Grant
- 2018-07-05 JP JP2020503876A patent/JP7245817B2/ja active Active
- 2018-07-05 IL IL272136A patent/IL272136B/en unknown
- 2018-07-05 EP EP18749049.5A patent/EP3662361B1/en active Active
- 2018-07-05 WO PCT/GB2018/051897 patent/WO2019025752A1/en unknown
- 2018-07-17 TW TW107124592A patent/TWI782060B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4991134A (en) * | 1988-03-30 | 1991-02-05 | International Business Machines Corporation | Concurrent sorting apparatus and method using FIFO stacks |
US20040199630A1 (en) * | 1999-06-30 | 2004-10-07 | Sarkissian Haig A. | State processor for pattern matching in a network monitor device |
TW200615795A (en) * | 2004-11-15 | 2006-05-16 | Ind Tech Res Inst | System and method of string matching using uniform data classification |
EP2421223A2 (en) * | 2006-05-02 | 2012-02-22 | Exegy Incorporated | Method and Apparatus for Approximate Pattern Matching |
US20140281371A1 (en) * | 2013-03-13 | 2014-09-18 | Hariharan Thantry | Techniques for enabling bit-parallel wide string matching with a simd register |
CN104750775A (zh) * | 2013-12-24 | 2015-07-01 | Tcl集团股份有限公司 | 内容比对方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP7245817B2 (ja) | 2023-03-24 |
JP2020530151A (ja) | 2020-10-15 |
KR20200030582A (ko) | 2020-03-20 |
WO2019025752A1 (en) | 2019-02-07 |
EP3662361B1 (en) | 2022-03-23 |
TW201911081A (zh) | 2019-03-16 |
US20190042190A1 (en) | 2019-02-07 |
IL272136A (en) | 2020-03-31 |
EP3662361A1 (en) | 2020-06-10 |
CN110998512B (zh) | 2023-12-22 |
US10678506B2 (en) | 2020-06-09 |
IL272136B (en) | 2022-08-01 |
CN110998512A (zh) | 2020-04-10 |
KR102594770B1 (ko) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI501148B (zh) | 條件式比較指令 | |
TWI785064B (zh) | 用於測試向量元素內部的位元值的設備、方法、電腦程式及電腦可讀儲存媒體 | |
KR20200031150A (ko) | 데이터 처리장치의 데이터 항목들 내의 성분들의 계수 | |
TW201721410A (zh) | 用於執行疊接操作的裝置和方法 | |
JPWO2012023185A1 (ja) | 試験方法、演算処理装置、試験プログラム、試験プログラム生成方法、試験プログラム生成装置、及び試験プログラム生成プログラム | |
TW201514852A (zh) | 用於執行推論向量存取操作的資料處理裝置與方法 | |
TWI782060B (zh) | 用於在資料處理設備中比對連續值的設備、方法、電腦程式及電腦可讀取儲存媒體 | |
KR101016257B1 (ko) | 프로세서 및 정보 처리 장치 | |
CN108595917A (zh) | 基于fpga的面向基因测序串匹配算法的加速平台及设计方法 | |
TWI766056B (zh) | 用於資料處理的方法、設備、電腦程式及電腦可讀取儲存媒體 | |
US10133655B1 (en) | Emulation of target system using JIT compiler and bypassing translation of selected target code blocks | |
JP7335952B2 (ja) | ベクトル述語要約の生成 | |
JP7377208B2 (ja) | データ処理 | |
CN114995820A (zh) | 代码翻译方法、装置、设备、存储介质和程序产品 | |
JP2022021554A (ja) | アセンブリ命令変換プログラム、アセンブリ命令変換方法、及び情報処理装置 | |
JP2020201659A (ja) | 演算装置、演算方法、および演算プログラム | |
CN113703842A (zh) | 一种基于分支预测的值预测方法、装置及介质 | |
JP2000231495A (ja) | 仮想マシン |