TWI442318B - 間接暫存器存取之系統及方法 - Google Patents
間接暫存器存取之系統及方法 Download PDFInfo
- Publication number
- TWI442318B TWI442318B TW098134535A TW98134535A TWI442318B TW I442318 B TWI442318 B TW I442318B TW 098134535 A TW098134535 A TW 098134535A TW 98134535 A TW98134535 A TW 98134535A TW I442318 B TWI442318 B TW I442318B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- register
- registers
- memory
- indirect
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 36
- 230000015654 memory Effects 0.000 claims description 149
- 230000008859 change Effects 0.000 claims description 43
- 238000003909 pattern recognition Methods 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 description 73
- 239000004020 conductor Substances 0.000 description 37
- 238000001514 detection method Methods 0.000 description 31
- 230000014509 gene expression Effects 0.000 description 14
- 230000002776 aggregation Effects 0.000 description 12
- 238000004220 aggregation Methods 0.000 description 12
- 230000000977 initiatory effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 241000283690 Bos taurus Species 0.000 description 2
- 241000700605 Viruses Species 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011840 criminal investigation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 208000003580 polydactyly Diseases 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Classifications
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- 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/30098—Register arrangements
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
一般而言,本發明之實施例係關於數位資料處理,且更具體而言,在某些實施例中,係關於提供及管理暫存器。
在計算領域中,型樣辨識任務越來越具有挑戰性。電腦之間傳輸之資料量不斷增大,且使用者期望識別之型樣之數目日益增加。舉例而言,垃圾郵件或惡意軟體通常藉由搜索一資料流中之型樣(例如,特定短語或片段程式碼)來偵測。型樣之數目隨著垃圾郵件及惡意軟體之變化而增加,此乃因可實施新型樣以搜索新變體。針對此等型樣中之每一者對一資料流進行搜索可形成一計算瓶頸。通常,在接收到資料流時,針對每一型樣對其進行搜索,一次一個。在系統準備對資料流之下一部分進行搜索之前的延遲隨著型樣之數目增加。因此,型樣辨識可使資料之接收減慢。
另外,執行型樣辨識及其他相關聯處理之系統可使用多個暫存器來儲存各種資料,例如,搜索資料、組態參數、狀態資訊、型樣匹配結果或類似物。舉例而言,此等「處理器暫存器」通常可直接由該系統之一處理單元使用,以提供與可由該處理單元存取之其他儲存裝置相比更快速之存取。然而,應瞭解,諸多系統包含用於記錄各種形式之記憶體(包含主系統記憶體(例如,隨機存取記憶體)以及此等暫存器)之實體位置之一有限定址空間。此外,某些系統(例如,型樣辨識系統)可包含大量暫存器以達成系統之組態及作業。若一系統包含可由處理單元存取之大量暫存器,則可減小可用於主系統記憶體之剩餘位址空間且可影響該系統之總效能。
圖1繪示對一資料流12進行搜索之一系統10之一實例。系統10可包含一型樣辨識處理器14,其根據搜索準則16對資料流12進行搜索。
每一搜索準則可規定一個或多個目標表達(亦即,型樣)。短語「目標表達」係指型樣辨識處理器14正在搜索之一資料序列。目標表達之實例包含拼寫某一字之一字元序列、詳細說明一基因之一遺傳鹼基對序列、形成一影像之一部分之一圖像或視訊檔案中之一位元序列、形成一程式之一部分之一可執行檔案中之一位元序列或形成一歌曲或一口語短語之一部分之一音訊檔案中之一位元序列。
一搜索準則可規定多於一個目標表達。舉例而言,一搜索準則可規定以字母序列「c1」開頭之所有五個字母之字、以字母序列「c1」開頭之任一字、包含字「cloud」多於三次之一段落等。可能組之目標表達之數目係任意大的,例如,可存在與資料流可呈現之資料排列同樣多之目標表達。搜索準則可以多種格式來表達,包含正規表達、簡明地規定若干組目標表達而不必列舉每一目標表達之一程式化語言。
每一搜索準則可由一個或多個搜索項構成。因此,一搜索準則之每一目標表達可包含一個或多個搜索項且某些目標表達可使用共同搜索項。如本文中所使用,短語「搜索項」係指在一單個搜索循環期間所搜索之一資料序列。該資料序列可包含呈一二進制格式或其他格式(例如,十進位、ASCII等)之多個資料位元。該序列可對具有一單個數位或多個數位(例如,數個二進制數位)之資料進行解碼。舉例而言,型樣辨識處理器14可一次一個字元地對一文字資料流12進行搜索,且搜索項可規定一組單字元,例如,字母「a」,字母「a」或「e」,或規定一組所有單字元之一通配符搜索項。
搜索項可小於或大於規定一字元(或其他字形-亦即,資料流所表達之資訊之基礎單元,例如,一音符、一遺傳鹼基對、一10進位數位或一子像素)之位元之數目。舉例而言,一搜索項可係8個位元且一單個字元可係16個位元,在此情況下,兩個連續搜索項可規定一單個字元。
搜索準則16可由一編譯器18進行格式化以用於型樣辨識處理器14。格式化可包含自該等搜索準則解構出搜索項。舉例而言,若資料流12所表達之字形大於該等搜索項,則該編譯器可將搜索準則解構為多個搜索項以搜索一單個字形。類似地,若資料流12所表達之字形小於該等搜索項,則編譯器18可針對每一單獨字形為一單個搜索項提供未使用位元。編譯器18亦可對搜索準則16進行格式化以支援型樣辨識處理器14未本機支援之各種正規表達運算子。
型樣辨識處理器14可藉由評估來自資料流12之每一新項來對資料流12進行搜索。此處,字「項」係指可匹配一搜索項之資料量。在一搜索循環期間,型樣辨識處理器14可確定當前所呈現之項是否匹配搜索準則中之當前搜索項。若該項匹配該搜索項,則評估被「推進」,亦即,將下一項與搜索準則中之下一搜索項進行比較。若該項不匹配,則將下一項與搜索準則中之第一項進行比較,藉此重設搜索。
可將每一搜索準則編譯至型樣辨識處理器14中之一不同有限狀態機中。該等有限狀態機可平行運行,從而根據搜索準則16對資料流12進行搜索。當資料流12匹配在先搜索項時,該等有限狀態機可步進穿過一搜索準則中之每一連續搜索項,或若未匹配該搜索項,則該等有限狀態機可開始搜索該搜索準則之第一搜索項。
型樣辨識處理器14可在約相同時間(例如,在一單個裝置循環期間)根據數個搜索準則及其各別搜索項評估每一新項。該等平行有限狀態機各自可在約相同時間接收來自資料流12之項,且該等平行有限狀態機中之每一者可確定該項是否將該平行有限狀態機推進至其搜索準則中之下一搜索項。該等平行有限狀態機可根據一相對大數目(例如,多於100、多於1000或多於10,000)之搜索準則來評估項。由於其平行運作,因此其可將該等搜索準則應用至具有一相對高頻寬之一資料流12(例如,大於或大體等於每秒64MB或每秒128MB之一資料流12)而不會使該資料流減慢。在某些實施例中,搜索循環持續時間不隨搜索準則之數目按比例調整,因此搜索準則之數目對型樣辨識處理器14之效能可幾乎沒有影響。
當滿足一搜索準則時(亦即,在推進至最後一個搜索項且與其匹配之後),型樣辨識處理器14可將該準則之滿足報告給一處理單元,例如,一中央處理單元(CPU)20。中央處理單元20可控制系統10之型樣辨識處理器14及其他部分。
系統10可係對一資料流進行搜索之各種系統或裝置中之任一者。舉例而言,系統10可係監視資料流12之一桌上型電腦、膝上型電腦、手持式或其他類型之電腦。系統10亦可係一網路節點,例如,一路由器、一伺服器或一用戶端(例如,先前所述類型之電腦中之一者)。系統10可係某一其他類別之電子裝置,例如,一複印機、一掃描器、一列印機、一遊戲控制臺、一電視、一機上視訊分佈或記錄系統、一電纜盒、一個人數位媒體播放器、一工廠自動化系統、一汽車電腦系統或一醫療裝置。(用來闡述系統之此等各種實例之術語(如同本文中所使用之諸多其他術語)可共用某些參照物,且因此不應僅根據所列舉之其他物項來理解)。
資料流12可係一使用者或其他實體可期望進行搜索之各種類型之資料流中之一者或多者。舉例而言,資料流12可係在一網路上接收之一資料流,例如,在網際網路上接收之封包或在一蜂巢式網路上接收之語音或資料。資料流12可係自與系統10通信之一感測器(例如,一成像感測器、一溫度感測器、一加速度計或類似物或其組合)接收之資料。資料流12可作為一串列資料流由系統10接收,其中資料係以具有意義之一次序(例如,以一明顯的時間、詞法或語義次序)被接收。另一選擇係,資料流12可平行地或無序地被接收,且然後(例如)藉由將在網際網路上接收之封包重新排序被轉換為一串列資料流。在某些實施例中,資料流12可以串列方式呈現項,但表達該等項中之每一者之位元可平行地被接收。資料流12可係自在系統10外部之一源接收,或可藉由訊問一記憶體裝置且由所儲存之資料形成資料流12來形成。
端視資料流12中之資料之類型,一設計者可挑選不同類型之搜索準則。舉例而言,搜索準則16可係一病毒定義檔案。可表徵病毒或其他惡意軟體,且可使用惡意軟體之態樣來形成指示資料流12是否可能正在遞送惡意軟體之搜索準則。可將所得搜索準則儲存於一伺服器上,且一用戶端系統之一操作者可預訂將該等搜索準則下載至系統10之一服務。可隨著不同類型之惡意軟體之出現自該伺服器週期性地更新搜索準則16。該等搜索準則亦可用來規定可在一網路上接收之不期望之內容,舉例而言,不需要之電子郵件(通常稱為垃圾郵件)或一使用者發現係令人反感之其他內容。
資料流12可由對系統10正在接收之資料感興趣之一第三方來搜索。舉例而言,可針對在一版權作品中出現之文字、一音訊序列或一視訊序列而監視資料流12。可針對與一刑事調查或民事訴訟有關或一雇主感興趣之言論而監視資料流12。
搜索準則16亦可包含資料流12中之型樣,例如,在可由CPU 20或型樣辨識處理器14定址之記憶體中可得到該等型樣之一轉譯。舉例而言,搜索準則16各自可規定一英語字,對於該英語字,一對應西班牙語字儲存於記憶體中。在另一實例中,搜索準則16可規定資料流12之經編碼版本,例如,MP3、MPEG 4、FLAC、Ogg Vorbis等,對於該等經編碼版本,可得到資料流12之一經解碼版本,或反之亦然。
型樣辨識處理器14可係與CPU 20一起整合至一單個組件(例如,一單個裝置)中之硬體或可形成為一單獨組件。舉例而言,型樣辨識處理器14可係一單獨積體電路。型樣辨識處理器14可稱為一「共處理器」或一「型樣辨識共處理器」。
圖2繪示型樣辨識處理器14之一實例。型樣辨識處理器14可包含一辨識模組22及一聚合模組24。辨識模組22可經組態以將所接收之項與搜索項進行比較,且辨識模組22與聚合模組24兩者可協作以確定將一項與一搜索項匹配是否滿足一搜索準則。
辨識模組22可包含一列解碼器28及複數個特徵胞30。每一特徵胞30可規定一搜索項,特徵胞30群組可形成一形成一搜索準則之平行有限狀態機。特徵胞30之組件可形成一搜索項陣列32、一偵測陣列34及一啟動路由矩陣36。搜索項陣列32可包含複數個輸入導體37,其每一者皆可使特徵胞30中之每一者與列解碼器28通信。
列解碼器28可基於資料流12之內容在該複數個輸入導體37中選擇特定導體。舉例而言,列解碼器28可係一一位元組至256列解碼器,其基於可表示一個項之一所接收位元組之值啟動256個列中之一者。一一位元組項0000 0000可對應於該複數個輸入導體37中之頂列,且一一位元組項1111 1111可對應於該複數個輸入導體37中之底列。因此,端視自資料流12接收到哪些項,可選擇不同輸入導體37。在接收到不同項時,列解碼器28可去啟動對應於先前項之列且啟動對應於新項之列。
偵測陣列34可耦合至一偵測匯流排38,該偵測匯流排將指示搜索準則之全部或部分滿足之信號輸出至聚合模組24。啟動路由矩陣36可基於一搜索準則中之已被匹配之搜索項之數目選擇性地啟動及去啟動特徵胞30。
聚合模組24可包含一鎖存器矩陣40、一聚合路由矩陣42、一臨限邏輯矩陣44、一邏輯積矩陣46、一邏輯和矩陣48及一初始化路由矩陣50。
鎖存器矩陣40可實施某些搜索準則之部分。某些搜索準則(例如,某些規則表達)僅計數一匹配或一匹配群組之第一次發生。鎖存器矩陣40可包含記錄是否已發生一匹配之鎖存器。可在初始化期間對鎖存器進行清除,且在作業期間週期性地重新初始化,此乃因經確定滿足了或不再滿足搜索準則-亦即,一較早搜索項可需要在可滿足該搜索準則之前被再次匹配。
聚合路由矩陣42可類似於啟動路由矩陣36地運行。聚合路由矩陣42可在偵測匯流排38上接收指示匹配之信號且可將該等信號路由至連接至臨限邏輯矩陣44之不同群組邏輯線53。聚合路由矩陣42亦可將初始化路由矩陣50之輸出路由至偵測陣列34以在經確定已滿足了或不再滿足一搜索準則時重設偵測陣列34之部分。
臨限邏輯矩陣44可包含複數個計數器,例如,經組態以遞增計數或遞減計數之32位元計數器。臨限邏輯矩陣44可載入有一初始計數且其可基於由辨識模組發訊之匹配而自該計數遞增計數或遞減計數。舉例而言,臨限邏輯矩陣44可計數某一長度之文字中一字之出現數目。
臨限邏輯矩陣44之輸出可係邏輯積矩陣46之輸入。邏輯積矩陣46可選擇性地產生「積」結果(例如,布林邏輯(Boolean logic)中之「AND」函數)。邏輯積矩陣46可實施為一正方形矩陣,其中輸出積之數目等於來自臨限邏輯矩陣44之輸入線之數目,或邏輯積矩陣46可具有數目不同於輸出之輸入。可將所得積值輸出至邏輯和矩陣48。
邏輯和矩陣48可選擇性地產生和(例如,布林邏輯中之「OR」函數)。邏輯和矩陣48亦可係一正方形矩陣,或邏輯和矩陣48可具有數目不同於輸出之輸入。由於該等輸入係邏輯積,因此邏輯和矩陣48之輸出可係邏輯積和(例如,布林邏輯積和(SOP)形式)。邏輯和矩陣48之輸出可由初始化路由矩陣50接收。
初始化路由矩陣50可經由聚合路由矩陣42重設偵測陣列34及聚合模組24之部分。初始化路由矩陣50亦可實施為一正方形矩陣,或初始化路由矩陣50可具有數目不同於輸出之輸入。初始化路由矩陣50可回應於來自邏輯和矩陣48之信號且重新初始化型樣辨識處理器14之其他部分(例如,在已滿足了一搜索準則或經確定不再滿足該搜索準則時)。
聚合模組24可包含一輸出緩衝器51,其接收臨限邏輯矩陣44、聚合路由矩陣42及邏輯和矩陣48之輸出。聚合模組24之輸出可在輸出匯流排26上自輸出緩衝器51傳輸至CPU 20(圖1)。在某些實施例中,一輸出多工器可對來自此等組件42、44及48之信號進行多工處理且將指示準則之滿足或搜索項之匹配之信號輸出至CPU 20(圖1)。在其他實施例中,可在不將該等信號傳輸通過該輸出多工器之情況下報告來自型樣辨識處理器14之結果,此並非暗示亦不可省略本文中所闡述之任一其他特徵。舉例而言,可在輸出匯流排26上將來自臨限邏輯矩陣44、邏輯積矩陣46、邏輯和矩陣48或初始化路由矩陣50之信號平行傳輸至該CPU。
圖3圖解闡釋搜索項陣列32(圖2)中之一單個特徵胞30之一部分(本文中稱為一搜索項胞54之一組件)。搜索項胞54可包含一輸出導體56及複數個記憶體胞58。記憶體胞58中之每一者皆可耦合至輸出導體56及複數個輸入導體37中之導體中之一者兩者。回應於其輸入導體37被選擇,記憶體胞58中之每一者可輸出指示其所儲存值之一值,從而透過輸出導體56輸出資料。在某些實施例中,該複數個輸入導體37可稱為「字線」,且輸出導體56可稱為一「資料線」。
記憶體胞58可包含各種類型之記憶體胞中之任一類型。舉例而言,記憶體胞58可係揮發性記憶體,例如,具有一電晶體及一電容器之動態隨機存取記憶體(DRAM)胞。該電晶體之源極與汲極可分別連接至該電容器之一板及輸出導體56,且該電晶體之閘極可連接至輸入導體37中之一者。在揮發性記憶體之另一實例中,記憶體胞58中之每一者可包含一靜態隨機存取記憶體(SRAM)胞。該SRAM胞可具有一輸出,其藉由受輸入導體37中之一者控制之一存取電晶體選擇性地耦合至輸出導體56。記憶體胞58亦可包含非揮發性記憶體,例如,相變記憶體(例如,一雙向裝置)、快閃記憶體、矽-氧化物-氮化物-氧化物-矽(SONOS)記憶體、磁阻式記憶體或其他類型之非揮發性記憶體。記憶體胞58亦可包含正反器,例如,由邏輯閘極製成之記憶體胞。
圖4及圖5繪示運作中之搜索項胞54之一實例。圖4圖解闡釋搜索項胞54接收不匹配該胞之搜索項之一項,且圖5圖解闡釋一匹配。
如圖4所圖解闡釋,搜索項胞54可經組態以藉由將資料儲存於記憶體胞58中來搜索一個或多個項。記憶體胞58各自可表示資料流12可呈現之一項,例如,在圖3中,每一記憶體胞58表示一單個字母或數字,以字母「a」開始且以數字「9」結束。表示滿足搜索項之項之記憶體胞58可經程式化以儲存一第一值,且不表示滿足搜索項之項之記憶體胞58可經程式化以儲存一不同值。在所圖解闡釋之實例中,搜索項胞54經組態以搜索字母「b」。表示「b」之記憶體胞58可儲存一1或邏輯高,且不表示「b」之記憶體胞58可經程式化以儲存一0或邏輯低。
為將來自資料流12之一項與搜索項進行比較,列解碼器28可選擇耦合至表示所接收項之記憶體胞58之輸入導體37。在圖4中,資料流12呈現一小寫「e」。此項可由資料流12以一八位元ASCII程式碼之形式呈現,且列解碼器28可將此位元組解譯為一列位址,從而藉由給其通電而在導體60上輸出一信號。
作為回應,由導體60控制之記憶體胞58可輸出指示記憶體胞58所儲存之資料之一信號,且該信號可由輸出導體56傳送。在此情況下,由於字母「e」不係由搜索項胞54規定之項中之一者,因此其不匹配搜索項,且搜索項胞54輸出一0值,從而指示未發現匹配。
在圖5中,資料流12呈現一字元「b」。同樣,列解碼器28可將此項解譯為一位址,且列解碼器28可選擇導體62。作為回應,表示字母「b」之記憶體胞58輸出其所儲存值,在此情況下,其係一1,從而指示一匹配。
搜索項胞54可經組態以一次搜索多於一個項。多個記憶體胞58可經程式化以儲存一1,從而規定與多於一個項匹配之一搜索項。舉例而言,表示小寫字母「a」及大寫字母「A」之記憶體胞58可經程式化以儲存一1,且搜索項胞54可搜索任一項。在另一實例中,搜索項胞54可經組態以在接收到任一字元之情況下輸出一匹配。所有記憶體胞58可經程式化以儲存一1,以使得搜索項胞54可充當一搜索準則中之一通配符項。
圖6至圖8繪示辨識模組22根據一多項搜索準則進行搜索(例如,搜索一字)。具體而言,圖6圖解闡釋辨識模組22偵測一字之第一字母,圖7圖解闡釋第二字母之偵測,且圖8圖解闡釋最後一個字母之偵測。
如圖6所圖解闡釋,辨識模組22可經組態以搜索字「big」。對三個毗鄰特徵胞63、64及66進行圖解闡釋。特徵胞63經組態以偵測字母「b」。特徵胞64經組態以偵測字母「i」。特徵胞66經組態以既偵測字母「g」又指示滿足了搜索準則。
圖6亦繪示偵測陣列34之額外細節。偵測陣列34可包含特徵胞63、64及66中之每一者中之一偵測胞68。偵測胞68中之每一者皆可包含一記憶體胞70(例如,上述類型之記憶體胞中之一者(例如,一正反器)),其指示特徵胞63、64或66是活動還是不活動。偵測胞68可經組態以將指示偵測胞68是否係活動之一信號輸出至啟動路由矩陣36且已自其相關聯搜索項胞54接收到指示一匹配之一信號。不活動特徵胞63、64及66可忽視匹配。偵測胞68中之每一者皆可包含具有來自記憶體胞70及輸出導體56之輸入之一AND閘極。可將該AND閘極之輸出路由至偵測匯流排38及啟動路由矩陣36兩者或一者或另一者。
轉而,啟動路由矩陣36可藉由向偵測陣列34中之記憶體胞70寫入來選擇性地啟動特徵胞63、64及66。啟動路由矩陣36可根據搜索準則及接下來在資料流12中搜索哪個搜索項來啟動特徵胞63、64或66。
在圖6中,資料流12呈現字母「b」。作為回應,特徵胞63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體62(其表示字母「b」)之記憶體胞58中之值之一信號。然後,偵測胞56各自可確定其等是否已接收到指示一匹配之一信號及其等是否係活動。由於特徵胞63經組態以偵測字母「b」且係活動(如其記憶體胞70所指示),因此特徵胞63中之偵測胞68可將指示已匹配搜索準則之第一搜索項之一信號輸出至啟動路由矩陣36。
如圖7所圖解闡釋,在匹配第一搜索項之後,啟動路由矩陣36可藉由將一1寫入至下一特徵胞64之偵測胞68中之記憶體胞70來啟動該特徵胞。在下一項滿足第一搜索項之情況下(例如,若接收到項序列「bbig」),啟動路由矩陣36亦可維持特徵胞63之活動狀態。在對資料流12進行搜索期間之一部分時間或大致所有時間期間,搜索準則之第一搜索項可維持於一活動狀態中。
在圖7中,資料流12將字母「i」呈現給辨識模組22。作為回應,特徵胞63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體72(其表示字母「i」)之記憶體胞58中之值之一信號。然後,偵測胞56各自可確定其等是否已接收到指示一匹配之一信號及其等是否係活動。由於特徵胞64經組態以偵測字母「i」且係活動(如其記憶體胞70所指示),因此特徵胞64中之偵測胞68可將指示已匹配其搜索準則之下一搜索項之一信號輸出至啟動路由矩陣36。
接下來,啟動路由矩陣36可啟動特徵胞66,如圖8所圖解闡釋。在評估下一項之前,可去啟動特徵胞64。特徵胞64可由在偵測循環之間重設其記憶體胞70之其偵測胞68去啟動或啟動路由矩陣36可去啟動特徵胞64(舉例而言)。
在圖8中,資料流12將項「g」呈現給列解碼器28,該列解碼器選擇表示項「g」之導體74。作為回應,特徵胞63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體74(其表示字母「g」)之記憶體胞58中之值之一信號。然後,偵測胞68各自可確定其等是否已接收到指示一匹配之一信號及其等是否係活動。由於特徵胞66經組態以偵測字母「g」且係活動(如其記憶體胞70所指示),因此特徵胞66中之偵測胞68可將指示已匹配其搜索準則之最後一個搜索項之一信號輸出至啟動路由矩陣36。
一搜索準則之末端或一搜索準則之一部分可由啟動路由矩陣36或偵測胞68來識別。此等組件36或68可包含指示其特徵胞63、64或66是規定一搜索準則之最後一個搜索項還是一搜索準則之一組分之記憶體。舉例而言,一搜索準則可規定其中字「cattle」出現兩次之所有句子,且辨識模組可將指示「cattle」在一句子內之每一出現之一信號輸出至聚合模組,該聚合模組可計數該等出現以確定是否滿足了該搜索準則。
可在數個條件下啟動特徵胞63、64或66。一特徵胞63、64或66可係「始終活動」,此意指其在整個或大致整個搜索期間保持活動。一始終活動特徵胞63、64或66之一實例係搜索準則之第一特徵胞(例如,特徵胞63)。
一特徵胞63、64或66可係「在請求時活動」,此意指特徵胞63、64或66在匹配某一在先條件時(例如,在一搜索準則中之在先搜索項被匹配時)係活動。一實例係在由圖6至8中之特徵胞63請求時係活動之特徵胞64及在由特徵胞64請求時係活動之特徵胞66。
一特徵胞63、64或66可係「自啟動」,此意指一旦其被啟動,則只要匹配其搜索項其即啟動其自身。舉例而言,具有由任一數值數位匹配之一搜索項之一自啟動特徵胞可在序列「123456xy」中保持活動直至到達字母「x」為止。每當匹配該自啟動特徵胞之搜索項時,其可啟動搜索準則中之下一特徵胞。因此,一始終活動特徵胞可由一自啟動特徵胞及一在請求時活動之特徵胞形成。該自啟動特徵胞可與其儲存一1之所有記憶體胞58一起程式化,且其可在每一項後重複啟動在請求時活動之特徵胞。在某些實施例中,每一特徵胞63、64及66可在其偵測胞68中或在啟動路由矩陣36中包含規定該特徵胞是否係始終活動之一記憶體胞,藉此由一單個特徵胞形成一始終活動特徵胞。
圖9繪示經組態以根據一第一搜索準則75及一第二搜索準則76平行進行搜索之一辨識模組22之一實例。在此實例中,第一搜索準則75規定字「big」,且第二搜索準則76規定字「cab」。指示來自資料流12之當前項之一信號可在大體相同時間傳遞至每一搜索準則75及76中之特徵胞。輸入導體37中之每一者皆跨越搜索準則75及76兩者。因此,在某些實施例中,搜索準則75及76兩者可大體同時評估當前項。據信,此加速搜索準則之評估。其他實施例可包含經組態以平行評估更多搜索準則之更多特徵胞。舉例而言,某些實施例可包含平行運作之多於100、500、1000、5000、10,000個特徵胞。此等特徵胞可大體同時評估數百個或數千個搜索準則。
具有不同數目之搜索項之搜索準則可藉由將更多或更少之特徵胞分配至該等搜索準則來形成。簡單搜索準則可消耗比複雜搜索準則更少之呈特徵胞形式之資源。據信,相對於具有一大數目之大體相同之核心之處理器(全部經組態以評估複雜搜索準則),此減小型樣辨識處理器14(圖2)之成本。
圖10至圖12繪示一更複雜搜索準則之一實例及啟動路由矩陣36之特徵兩者。啟動路由矩陣36可包含複數個啟動路由胞78,其群組可與特徵胞63、64、66、80、82、84及86中之每一者相關聯。舉例而言,該等特徵胞中之每一者皆可包含5、10、20、50個或更多個啟動路由胞78。啟動路由胞78可經組態以在一搜索準則中之一在先搜索項被匹配時將啟動信號傳輸至下一搜索項。啟動路由胞78可經組態以將啟動信號路由至毗鄰特徵胞或相同特徵胞內之其他啟動路由胞78。啟動路由胞78可包含指示哪些特徵胞對應於一搜索準則中之下一搜索項之記憶體。
如圖10至圖12所圖解闡釋,辨識模組22可經組態以根據複雜搜索準則而非規定單個字之準則進行搜索。舉例而言,辨識模組22可經組態以搜索以一前綴88開頭且以兩個後綴90或92中之一者結束之字。所圖解闡釋之搜索準則規定依次以字母「c」及「l」開頭且以字母序列「ap」或字母序列「oud」結束之字。此係規定多個目標表達(例如,字「clap」或字「cloud」)之一搜索準則之一實例。
在圖10中,資料流12將字母「c」呈現給辨識模組22,且特徵胞63既係活動又偵測一匹配。作為回應,啟動路由矩陣36可啟動下一特徵胞64。啟動路由矩陣36亦可維持特徵胞63之活動狀態,此乃因特徵胞63係搜索準則中之第一搜索項。
在圖11中,資料流12呈現一字母「l」,且特徵胞64辨識一匹配且係活動。作為回應,啟動路由矩陣36可將一啟動信號傳輸至第一後綴90之第一特徵胞66及第二後綴92之第一特徵胞82兩者。在其他實例中,可啟動更多後綴,或多個前綴可啟動一個或多個後綴。
接下來,如圖12所圖解闡釋,資料流12將字母「o」呈現給辨識模組22,且第二後綴92之特徵胞82偵測一匹配且係活動。作為回應,啟動路由矩陣36可啟動第二後綴92之下一特徵胞84。在允許特徵胞66變為不活動時,對第一後綴90之搜索可停止。圖10至圖12所圖解闡釋之步驟可繼續通過字母「u」及「d」,或搜索可停止直至下一次匹配前綴88為止。
在某些實施例(例如,圖13中所圖解闡釋之實施例)中,型樣辨識處理器14可係由一控制器或某一其他裝置或系統(例如,一主機電腦系統94)存取之一裝置93之部分。舉例而言,電腦系統94可包含諸如一中央處理單元(CPU)20之一處理器,該處理器經由一記憶體管理單元(MMU)96存取一記憶體95。記憶體95可包含任一適合記憶體裝置,其包含但不限於靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)或新一代雙倍資料速率(DDR)記憶體(例如,DDR1、DDR2、DDR3或DDR4)。此外,MMU 96可提供於系統94之一單獨硬體組件(例如,一母板晶片組之一北橋)中或可整合至CPU 20中。雖然當前將裝置93圖解闡釋為與電腦系統94分離,但應瞭解,可將裝置93及電腦系統94之某些或所有組件(包含但不限於圖13中所明確圖解闡釋且本文中所論述之彼等組件)整合至一單個裝置中。
如下文所進一步闡述,在某些實施例中,型樣辨識處理器14或具有型樣辨識處理器14之裝置94可包含複數個暫存器97以儲存與以上所闡述之型樣辨識系統相關之資訊。為促進自暫存器97讀取資料及將資料寫入至暫存器97,暫存器存取邏輯98可管理對暫存器97之存取。可在硬體中或以任一其他適合方式實施暫存器存取邏輯98。在各種實施例中,暫存器97及/或暫存器存取邏輯98可係型樣辨識處理器14之一部分,或可與型樣辨識處理器14分離但可由其存取。
該複數個暫存器97可包含儲存匹配結果、計數、組態資訊、控制資訊及狀態、除錯資訊等之暫存器。與以上所闡述之型樣辨識過程相關之任何期望之資訊皆可儲存於暫存器97中。可儲存於暫存器97中之大量資料可導致一相對大數目之暫存器。
MMU 96可使用包含可由CPU 20直接存取之實體記憶體位址之一位址映射99來促進CPU 20對各種記憶體位置(例如,在記憶體95及暫存器97內)之直接存取。然而,位址映射99可具有可映射至系統94及其他裝置(例如,裝置93)之實體記憶體位置之一有限數目之位址。舉例而言,在某些實施例中,系統94可包含一32位元位址匯流排,其允許232
個相異位址映射至位址映射99中之實體記憶體位置。在此一實施例中,且假定一固定大小之一位址空間,可映射至記憶體95中之實體位置之位址之數目與可映射至記憶體95外部(例如,在暫存器97中)之實體位置之位址之數目呈反比關係。舉例而言,若將每一位址映射至一一位元組實體記憶體位置,則232
個可用位址可映射至4GB之記憶體,且允許CPU 20對4GB之記憶體之直接存取。若將位址映射99內一相當數目之位址分配至暫存器97,則較少位址將可用於映射至記憶體95,此可減小可由CPU 20存取之記憶體95之量且導致系統94之效能降低。在某些實施例中,系統94及位址映射99之位址空間可透過下文所論述之間接定址技術來保存。
根據本發明之某些實施例,大多數暫存器97可由系統94間接存取(且不包含於系統94之位址空間或位址映射99內),而一特定子組之暫存器97可由系統94直接存取且包含於系統94之記憶體空間內。此兩種類型之暫存器可分別稱為「間接暫存器」及「直接暫存器」。亦即,為保留一處理系統(例如,系統94)之記憶體位址空間,大量暫存器可經邏輯及/或實體定位以使得其不可由處理單元直接存取。此等暫存器可具有任一期望之大小,例如,8位元暫存器、16位元暫存器、32位元暫存器、36位元暫存器、64位元暫存器等等。
在一個實施例中,裝置93包含一單獨位址映射101,其可用於促進對暫存器97之實體位址之存取,且通常提供對不包含於系統94之位址映射99中之間接暫存器之一映射。如下文所進一步論述,直接暫存器亦允許對間接暫存器之存取,且可用於彙集對透過容易存取之直接暫存器存取該等間接暫存器之所有請求。該等直接暫存器允許由系統94(例如,由CPU 20)進行快速存取,但將該等直接暫存器限制於一子組暫存器97會減小系統94內用於暫存器97之記憶體位址空間量。另外,在某些實施例中,各種技術可加速對間接暫存器之存取,從而減小因存取此等間接暫存器所導致的任何系統減速。雖然在某些實施例中可結合一型樣辨識處理器採用本文中所揭示之間接定址技術,但此間接定址亦可在不包含此一型樣辨識處理器之其他實施例中使用。
圖14圖解闡釋根據本發明一實施例之具有型樣辨識處理器14之直接及間接暫存器之一系統100。系統100包含一直接暫存器組(或群組)102(亦稱為一「基本暫存器組」)及一間接暫存器組(或群組)104。基本暫存器組102可包含任一數目之「重要」暫存器,亦即,系統94(或某一其他控制器、系統或裝置)之直接可存取性係最合意之彼等暫存器。在圖14中所圖解闡釋之實施例中,基本暫存器組102包含六個暫存器,但在其他實施例中基本暫存器組102中可使用任一數目之暫存器。此外,應瞭解,對基本暫存器組102中所使用之「重要」暫存器之選擇可基於型樣辨識處理器14及該系統來組態。因此,在其他實施例中,可省略圖14中之基本暫存器組102之某些暫存器,且其他暫存器可包含於基本暫存器組102中。
在所圖解闡釋之實施例中,基本暫存器組102包含以下暫存器:一臨界狀態暫存器106;一臨界控制暫存器108;一刺激位元組輸入暫存器110;一間接記憶庫選擇暫存器112;一間接位址選擇暫存器114;及一間接資料輸入/輸出暫存器116。在一個實施例中,基本暫存器組102中之每一暫存器可係一32位元暫存器,且可經由一32位元位址匯流排存取。此外,暫存器組102中之暫存器可係允許讀取及寫入兩者之讀取/寫入暫存器。如下文所進一步闡述,間接記憶庫選擇暫存器112、間接位址選擇暫存器114及間接資料輸入/輸出暫存器116幫助存取間接暫存器104。此等三個暫存器112、114及116可統稱為「間接定址存取暫存器」。
臨界狀態暫存器106、臨界控制暫存器108及刺激位元組輸入暫存器110提供對可由系統94或某一其他控制器快速存取之功能及資訊之存取,從而防止與經由間接暫存器104提供此等功能及資訊相關聯之存取延遲。臨界控制暫存器108在處理速度係臨界時之型樣匹配作業期間提供臨界控制位元。舉例而言,此等位元可包含停止/運行、重設、DMA起動/停止、模式選擇等。任何其他臨界控制位元可用於臨界控制暫存器108中。
臨界狀態暫存器106在型樣匹配作業期間提供臨界狀態資訊。儲存於暫存器106中之狀態資訊位元可係「黏性」位元(僅在明確請求時更新),可係「自動更新的」,或可係從不更新。儲存於暫存器106中之狀態位元之實例可包含位元組排序模式、位元組排序選擇、DMA模式、DMA狀態、匹配狀態、匹配偵測等。
刺激位元組輸入暫存器110提供欲自資料流12搜索之資料之儲存。將資料儲存於刺激位元組輸入暫存器110中允許發生平行功能,從而加速型樣辨識處理器14之作業。舉例而言,可在與讀取間接「匹配結果」記憶庫暫存器相同之時間處理來自資料流12之資料。
間接暫存器組104可包含包括一個或多個暫存器120之任一數目之暫存器記憶庫118。下文闡述各種類型之間接暫存器群組。然而,應瞭解,所闡述之群組僅係例示性且可包含任何其他暫存器、暫存器群組及/或暫存器記憶庫。間接暫存器組104可包含一流動保存及恢復群組122、一匹配結果及除錯群組124、一通電組態群組126及一型樣組態群組128。流動保存及恢復群組122可包含狀態指示符及計數器值,例如,臨限計數器、經處理位元組計數器等。匹配結果及除錯群組124可包含群組邏輯輸出、辨識陣列輸出以及任何其他結果及輸出。通電組態群組126包含識別且組態型樣辨識處理器14(例如,裝置能力、製造商識別程式碼、系統參數等)之暫存器。最後,型樣組態群組128包含與型樣辨識過程一起使用之功能及資訊,例如,辨識陣列狀態、聚合功能等。
在某些實施例中,存取一間接暫存器可需要三個或更多個匯流排循環,例如,選擇一暫存器記憶庫、在該記憶庫內選擇一間接暫存器且然後將資料寫入至該間接暫存器或自該間接暫存器接收資料。然而,根據本發明之一實施例,間接定址存取暫存器112、114及116提供用於減少對間接暫存器組104之存取時間之一系統。間接記憶庫選擇暫存器112選擇間接暫存器組104中欲存取之記憶庫118。可藉由一特定位址值來選擇各種記憶庫118中之每一者,如一記憶庫選擇匯流排線119所指示。在一個實施例中,間接記憶庫選擇暫存器112可係一32位元暫存器。如下文所更詳細闡述,可使用間接記憶庫選擇暫存器112之某些位元為選定暫存器記憶庫選擇「自動改變位址模式」。另外,向間接記憶庫選擇暫存器112寫入可將間接位址選擇暫存器114自動設定至一預定值。在一個實施例中,此寫入可將間接位址選擇暫存器114自動重設至零(例如,對於一32位元暫存器,為0x00000000h)。
間接位址選擇暫存器114將特定暫存器120設定為欲在由間接記憶庫暫存器選擇112選擇之暫存器之記憶庫內存取,如暫存器位址匯流排121所指示。在每一選定記憶庫中,該等暫存器在一零位址處起動。在某些實施例中,由於在向間接記憶庫選擇暫存器112寫入之後將間接位址選擇暫存器114設定至零,因此在寫入間接記憶庫選擇暫存器112之後,可向間接位址選擇暫存器114寫入所期望之位址。如下文所進一步闡述,間接位址選擇暫存器114能夠「自動遞增」、「自動遞減」、「自動重設」且係「不改變」模式(稱為「自動改變位址模式」),該等「不改變」模式在對連續暫存器位址進行連續讀取或寫入時增加效能。
間接資料輸入/輸出暫存器116為間接暫存器組104提供寫入或讀取功能性,如暫存器資料輸入/輸出匯流排123所指示。向間接資料輸入/輸出暫存器116寫入即將資料寫入至由間接記憶庫選擇暫存器112及間接位址選擇暫存器114規定之位址處之暫存器中。自間接資料輸入/輸出暫存器116讀取即讀取由間接記憶庫選擇暫存器112及間接位址選擇暫存器114之組合規定之位址處之暫存器。因此,藉由使用間接記憶庫選擇暫存器112、間接位址選擇暫存器114及間接資料輸入/輸出暫存器116,可將資料寫入至間接暫存器104或自間接暫存器104讀取資料。
由於存取間接暫存器104中之每一者皆需要存取暫存器112、114及116,因此對間接暫存器104之存取可明顯慢於存取直接暫存器102。如上所述,為加速對間接暫存器組104之記憶庫之存取,型樣辨識處理器14及暫存器邏輯96可利用一個或多個自動改變位址模式。在一個實施例中,該自動改變位址模式可經由間接記憶庫選擇暫存器112之一個或多個位元來設定。此等位元可稱為「自動改變位址位元」。在其他實施例中,可使用任一暫存器來設定及儲存該等自動改變位址位元。
該等自動改變位址模式可包含用以加速對間接暫存器104之記憶庫118之連續暫存器之存取之各種模式,或可包含用以快速重設間接位址選擇暫存器114之模式。在一個實施例中,此等模式可包含一「自動遞增」模式、一「自動遞減」模式及一「自動重設」模式。另外,可選擇一「不改變」模式。
在該自動遞增模式中,由間接位址選擇暫存器114規定之當前存取之暫存器位址在當前間接資料輸入/輸出暫存器匯流排循環完成時遞增。類似地,在該自動遞減模式中,由間接位址選擇暫存器114規定之當前存取之暫存器位址在當前間接資料輸入/輸出暫存器匯流排循環完成時遞減。若選擇該自動重設模式,則在當前循環完成時將間接位址選擇暫存器114設定至一預定值(例如,在一「自動重設至零」模式中為零)。若選擇該不改變模式,則在當前循環完成時不對由間接位址選擇暫存器114規定之當前選定暫存器位址做出改變。表1中概述上述實施例之自動改變位址模式。
應瞭解,各種實施例可包含上述自動改變位址模式中之任何一者或多者。在其他實施例中,可實施修改一當前存取之暫存器位址之任何其他自動改變位址模式,包含邏輯運算子(例如,AND、OR、XOR等等)、HASH函數等。
圖15A至15C圖解闡釋根據本發明一實施例之上述自動改變位址模式中之自動遞增模式之作業。圖15A至15C繪示具有複數個暫存器132(例如,可包含於間接暫存器組104中)之一暫存器記憶庫130。如上所述,向間接記憶庫選擇暫存器112寫入即設定所期望暫存器記憶庫130之位址、指示自動改變位址模式之自動改變位址位元,且將間接位址選擇暫存器114重設至一預定位址(例如,零)。因此,為設置對記憶庫130及暫存器132之間接存取,僅需一個寫入循環,此與單獨寫入循環相反,為向間接記憶庫選擇暫存器112第一次寫入,確定自動改變位址模式且然後將間接位址暫存器114選擇為零(舉例而言)。
在向間接記憶庫選擇暫存器112寫入以選擇記憶庫130之後,可在間接暫存器位址<0>係選定記憶庫130之所期望間接暫存器之情況下將資料寫入至間接資料輸入/輸出暫存器116或自間接資料輸入/輸出暫存器116讀取資料。若需要存取一不同間接暫存器,則向間接位址選擇暫存器114寫入所期望暫存器位址以選擇一特定暫存器。舉例而言,如圖15A中所示,記憶庫130之具有一位址「<address>」之一第一暫存器134可透過間接記憶庫選擇暫存器112及間接位址選擇暫存器114來選擇。在選擇暫存器134之後,可將資料寫入至間接資料輸入/輸出暫存器116或自間接資料輸入/輸出暫存器116讀取資料。
在自動遞增模式中,間接位址選擇暫存器114中所設定之當前暫存器位址「<address>」在寫入第一暫存器134之後自動遞增,如圖15B中之箭頭136所圖解闡釋。下一寫入循環向具有一暫存器位址「<address>+1」之一第二暫存器138寫入。因此,下一暫存器138係在不必向間接記憶庫選擇暫存器112或間接位址選擇暫存器114重寫之情況下寫入的。類似地,如圖15C中所圖解闡釋,下一寫入循環使當前選定位址「<address>+1」遞增一,如箭頭140所圖解闡釋。下一寫入向具有一暫存器位址「<address>+2」之一第三暫存器142寫入。寫入循環繼續向經遞增暫存器位址寫入直至記憶庫130之末端為止。自動遞增模式允許對連續暫存器134、138、142等之存取之叢發,從而增加寫入或讀取間接暫存器之大記憶庫之速度。
圖16A至16C圖解闡釋根據本發明一實施例之記憶庫130及記憶庫暫存器132上之自動改變位址模式之自動遞減模式之作業。如上所述,向間接記憶庫選擇暫存器112寫入即經由自動改變位址位元設定欲寫入之暫存器記憶庫130、自動遞減模式,且將間接位址選擇暫存器114重設至零(或某一其他預定值)。在設定間接記憶庫選擇位址112之後,設定間接位址選擇暫存器114以選擇一特定暫存器,例如,具有一位址「<address>」之暫存器146。舉例而言,如圖16A中所示,記憶庫130之一第一暫存器146可藉由向間接資料輸入/輸出暫存器116寫入來寫入。在自動遞減模式中,當前暫存器位址「<address>」在寫入第一暫存器146之後自動遞減一個位址值,如圖16B中之箭頭148所圖解闡釋。下一寫入循環向具有一暫存器位址「<address>-1」之一第二暫存器150寫入。在此寫入循環之後,使當前選定之暫存器位址「<address>-1」遞減一個位址值,如圖15C中之箭頭152所指示。下一寫入循環向具有一暫存器位址「<address>-2」之一第三暫存器154寫入。連續寫入循環不斷使當前選定之間接暫存器位址遞減直至記憶庫130之末端為止。如同自動遞增模式一樣,自動遞減模式達成在對連續暫存器146、150、154等之存取之叢發中自暫存器132讀取資料或將資料寫入至暫存器132,從而增加寫入或讀取暫存器之大記憶庫之速度。
在期望無遞增或遞減功能性時,可使用以上所提及之額外自動改變位址模式、自動重設模式及不改變。舉例而言,在當前所存取之暫存器係一狀態、中斷或在一記憶庫中僅具有一個暫存器之其他功能之情況下,可使用不改變模式,以使得不期望任何叢發讀取或寫入。當頻繁地讀取或寫入間接暫存器位址<0>但偶爾讀取或寫入另一間接暫存器時,可使用一「自動重設至零」模式。
圖17繪示根據本發明一實施例之用於向間接暫存器104寫入或自間接暫存器104讀取之一過程200。一寫入或讀取作業藉由將所期望記憶庫位址寫入至間接記憶庫選擇暫存器112而開始(區塊202)。在本實施例中,寫入間接記憶庫選擇暫存器112即將間接位址選擇暫存器114設定至零(例如,對於一32位元暫存器,為0x00000000h)(區塊204)。藉由寫入至間接記憶庫位址暫存器112之專用自動改變位址模式位元設定自動改變位址模式(區塊206)。如圖17中所圖解闡釋,區塊202、204及206在一個寫入循環中發生,如虛線區域208所指示。亦即,向間接記憶庫選擇暫存器112寫入引起過程200之區塊204及206之自動執行。
將欲寫入之特定暫存器位址(稱為「<address>」)寫入至間接位址選擇暫存器114(區塊210)。端視所請求之作業,經由間接資料輸入/輸出暫存器116將資料寫入至「<address>」處之暫存器或自「<address>」處之暫存器讀取資料(區塊212)。
然後,自間接記憶庫選擇暫存器112接收之自動改變位址模式確定是否修改當前所存取之暫存器位址<address>。若自動改變位址模式係自動遞增模式(如箭頭214所指示),
則當前暫存器位址之「<address>」遞增一(區塊216)。寫入或讀取選定記憶庫中之下一連續暫存器(區塊218)。若尚未到達記憶庫之末端(決策區塊220),則過程200可繼續使區塊216處之當前位址遞增直至記憶庫之末端為止。應瞭解,自動遞減模式以類似方式運行,只是在區塊216中當前暫存器位址「<address>」遞減一。在一個實施例中,若已到達記憶庫之末端,則可採取各種進一步行動(區塊222)。舉例而言,在一個實施例中,可防止向選定暫存器記憶庫之進一步寫入且可在試圖進行另一寫入之情況下指示一錯誤條件。在其他實施例中,可將當前位址重設至選定記憶庫之第一位址(在自動遞增模式中)或最後一個位址(在自動遞減模式中),可使間接記憶庫選擇暫存器112中之選定記憶庫遞增或遞減(端視當前自動改變位址模式),可採取某一其他行動,或可執行此等行動之某一組合。舉例而言,在一自動遞增模式中,一旦到達一記憶庫之末端,即可使間接記憶庫選擇暫存器值遞增,且可將間接位址選擇暫存器值設定至零或某一其他值。
另一選擇係,若自動改變位址模式係返回至零模式(如箭頭224所指示),則將間接位址選擇暫存器重設至零(例如,對於一32位元暫存器為0x00000000h)(區塊226)。若自動改變位址模式係不改變(如箭頭228所指示),則不對間接位址選擇暫存器做出改變(區塊230),例如,間接位址選擇暫存器保持設定在當前暫存器位址「<address>」處。
儘管可易於對本發明作出各種修改及替代形式,但具體實施例已以實例方式顯示於圖式中並詳細闡述於本文中。然而,應理解,並非意欲將本發明限定於所揭示之特定形式。相反,本發明將涵蓋歸屬於如以下隨附申請專利範圍所界定之本發明精神及範疇內之所有修改、等效內容及替代方案。
10...系統
12...資料流
14...型樣辨識處理器
16...搜索準則
18...編譯器
20...中央處理器
22...辨識模組
24...聚合模組
26...輸出匯流排
28...列解碼器
30...特徵胞
32...搜索項陣列
34...偵測陣列
36...啟動路由矩陣
37...輸入導體
38...偵測匯流排
40...鎖存器矩陣
42...聚合路由矩陣
44...臨限邏輯矩陣
46...邏輯積矩陣
48...邏輯和矩陣
50...初始化路由矩陣
51...輸出緩衝器
53...不同群組邏輯線
54...搜索項胞
56...輸出導體
58...記憶體胞
60...導體
62...導體
63...特徵胞
64...特徵胞
66...特徵胞
68...偵測胞
70...記憶體胞
72...導體
74...導體
75...搜索準則
76...搜索準則
78...啟動路由胞
80...特徵胞
82...特徵胞
84...特徵胞
86...特徵胞
88...前綴
90...後綴
92...後綴
93...裝置
94...主機電腦系統
95...記憶體
96...記憶體管理單元
97...暫存器
98...暫存器存取邏輯
99...位址映射
100...系統
101...單獨位址映射
102...直接暫存器組(或群組)
104...間接暫存器組(或群組)
106...臨界狀態暫存器
108...臨界控制暫存器
110...刺激位元組輸入暫存器
112...間接記憶庫選擇暫存器
114...間接位址選擇暫存器
116...間接資料輸入/輸出暫存器
118...記憶庫/暫存器記憶庫
120...暫存器
121...暫存器位址匯流排
122...流動保存及恢復群組
123...暫存器資料輸入/輸出匯流排
124...匹配結果及除錯群組
126...通電組態群組
128...型樣組態群組
130...暫存器記憶庫
132...暫存器/記憶庫暫存器
134...第一暫存器
138...第二暫存器
142...第三暫存器
146...第一暫存器
150...第二暫存器
154...第三暫存器
圖1繪示對一資料流進行搜索之系統之一實例;
圖2繪示圖1之系統中之一型樣辨識處理器之一實例;
圖3繪示圖2之型樣辨識處理器中之一搜索項胞之一實例;
圖4及圖5繪示圖3之搜索項胞針對一單個字元對資料流進行搜索;
圖6至圖8繪示包含針對一字對資料流進行搜索之數個搜索項胞之一辨識模組;
圖9繪示經組態以針對兩個字平行地對資料流進行搜索之辨識模組;
圖10至圖12繪示根據規定具有相同前綴之多個字之一搜索準則進行搜索之辨識模組;
圖13繪示根據本發明一實施例之具有可存取暫存器之圖2之型樣辨識處理器;
圖14圖解闡釋根據本發明一實施例之具有圖2之型樣辨識處理器之直接及間接暫存器之一系統;
圖15A至圖15C圖解闡釋根據本發明一實施例之一自動改變位址模式之一自動遞增模式之作業;
圖16A至圖16C圖解闡釋根據本發明一實施例之一自動改變位址模式之一自動遞減模式之作業;及
圖17繪示根據本發明一實施例之用於向一型樣辨識處理器之間接暫存器寫入或自該等間接暫存器讀取之一過程。
100...系統
102...直接暫存器組(或群組)
104...間接暫存器組(或群組)
106...臨界狀態暫存器
108...臨界控制暫存器
110...刺激位元組輸入暫存器
112...間接記憶庫選擇暫存器
114...間接位址選擇暫存器
116...間接資料輸入/輸出暫存器
118...記憶庫/暫存器記憶庫
120...暫存器
121...暫存器位址匯流排
122...流動保存及恢復群組
123...暫存器資料輸入/輸出匯流排
124...匹配結果及除錯群組
126...通電組態群組
128...型樣組態群組
Claims (37)
- 一種間接暫存器存取之系統,其包括:複數個暫存器,其中該複數個暫存器包括:一第一組暫存器,其可由一裝置直接存取;及一第二組暫存器,其可由該裝置經由該第一組暫存器間接存取;其中該第一組暫存器包含彼此交互作用而使能夠由該裝置間接存取該第二組暫存器之一第一子組暫存器及不同於該第一子組之一第二子組暫存器。
- 如請求項1之系統,其中該第一組暫存器包括經組態以儲存該第二組暫存器之一記憶庫位址之一間接記憶庫選擇暫存器。
- 如請求項1之系統,其中該第一組暫存器包括經組態以儲存該第二組暫存器中之一暫存器之一位址之一間接位址選擇暫存器。
- 如請求項1之系統,其中該第一組暫存器包括經組態以向該第二組暫存器中之一暫存器寫入或自該暫存器讀取之一資料暫存器。
- 如請求項1之系統,其中該第二子組暫存器包括一狀態暫存器、一控制暫存器或一輸入暫存器中之至少一者。
- 如請求項1之系統,其中該第一組暫存器包括經組態以儲存用以指示一自動改變位址模式之一個或多個位元之一暫存器。
- 如請求項1之系統,其包括經組態以管理對該第一組暫 存器及該第二組暫存器之存取之存取邏輯。
- 如請求項7之系統,其包括一包含該存取邏輯之型樣辨識處理器。
- 如請求項7之系統,其中該存取邏輯與一型樣辨識處理器分離且可由該型樣辨識處理器存取。
- 如請求項7之系統,其中該存取邏輯經組態以自該第一組暫存器中之一第一暫存器讀取一自動改變位址模式。
- 如請求項10之系統,其中該存取邏輯經組態以將該第一組暫存器中之一第二暫存器設定至一預定值。
- 如請求項1之系統,其中該第二組暫存器包括一個或多個暫存器記憶庫。
- 一種存取暫存器之方法,其包括:直接存取一第一組暫存器;經由該第一組暫存器間接存取一第二組暫存器;及基於一第一組暫存器之一第一暫存器選擇複數個自動改變位址模式中之一者,其中該複數個自動改變位址模式包括:一自動遞增模式,其中儲存於該第一組暫存器之一位址暫存器中之一第一位址在一匯流排循環完成時遞增;一自動遞減模式,其中儲存於該第一組暫存器之該位址暫存器中之一第一位址在該匯流排循環完成時遞減;及一自動重設模式,其中該第一組暫存器之該位址暫存器在一匯流排循環完成時設定至一預定值。
- 如請求項13之方法,其中存取該第一組暫存器中之一第一暫存器將該第一組暫存器中之一第二暫存器設定至一預定值。
- 如請求項13之方法,其中存取該第二組暫存器包括經由儲存於該第一組暫存器中之一位址暫存器中之一第一位址存取該第二組暫存器中之一第二暫存器。
- 如請求項15之方法,其包括使該第一位址遞增以存取該第二組暫存器中之一第三暫存器。
- 如請求項15之方法,其包括使該第一位址遞減以存取該第二組暫存器中之一第三暫存器。
- 如請求項15之方法,其包括將該位址暫存器設定至一預定值。
- 如請求項15之方法,其包括根據一邏輯函數自動修改儲存於該位址暫存器中之一值。
- 如請求項19之方法,其中該邏輯函數包含一OR函數、一AND函數或一XOR函數中之至少一者。
- 如請求項15之方法,其包括根據一HASH函數自動修改儲存於該位址暫存器中之一值。
- 一種處理資料之方法,其包括:執行一第一循環,其包括:將一記憶庫位址寫入至一第一組暫存器中之一第一暫存器;設定該第一組暫存器中之一第二暫存器之一暫存器位址; 存取一第二組暫存器中由該記憶庫位址及該暫存器位址指示之一第三暫存器;自該第一暫存器讀取一自動改變位址模式,該自動改變位址模式來自複數個自動改變位址模式,其中該複數個自動改變位址模式包括包括一組可能的自動改變位址模式,該組可能的自動改變位址模式至少包含下列每一者:一自動遞增模式,其中儲存於該第一組暫存器之一位址暫存器中之一第一位址在一匯流排循環完成時遞增;一自動遞減模式,其中儲存於該第一組暫存器之該位址暫存器中之一第一位址在該匯流排循環完成時遞減;及一自動重設模式,其中該第一組暫存器之該位址暫存器在該匯流排循環完成時設定至一預定值;及執行一第二循環,包括:根據自該第一暫存器讀取之該自動改變位址模式自動修改該第二暫存器之該暫存器位址。
- 如請求項22之方法,其中設定該第二暫存器之該暫存器位址包含將該暫存器位址設定至一預定值。
- 如請求項23之方法,其中回應於將該記憶庫位址寫入至該第一暫存器而自動執行將該暫存器位址設定至該預定值。
- 如請求項22之方法,其中設定該暫存器位址包含將該暫 存器位址寫入至該第二暫存器。
- 如請求項22之方法,其包括執行一第三循環,包括存取該第二組暫存器中之由該記憶庫位址及該經自動修改之暫存器位址指示之一第四暫存器。
- 如請求項22之方法,其中自動修改該暫存器位址包含使該暫存器位址遞增。
- 如請求項22之方法,其中自動修改該暫存器位址包含使該暫存器位址遞減。
- 如請求項22之方法,其中存取該第三暫存器包含讀取儲存於該第三暫存器中之資料。
- 如請求項22之方法,其中存取該第三暫存器包含將資料自該第一組暫存器中之一額外暫存器寫入至該第三暫存器。
- 一種處理資料之方法,其包括:自一第一組暫存器中之一第一暫存器讀取一自動改變位址模式;基於該第一暫存器選擇複數個自動改變位址模式中之一者,其中該複數個自動改變位址模式包括一組可能的自動改變位址模式,該組可能的自動改變位址模式至少包含下列每一者:一自動遞增模式,其中儲存於該第一組暫存器之一位址暫存器中之一第一位址在一匯流排循環完成時遞增;一自動遞減模式,其中儲存於該第一組暫存器之該 位址暫存器中之一第一位址在該匯流排循環完成時遞減;及一自動重設模式,其中該第一組暫存器之該位址暫存器在一匯流排循環完成時設定至一預定值自該第一組暫存器中之該位址暫存器讀取一位址;存取一第二組暫存器中在該位址處之一第二暫存器;及基於該自動改變位址模式自動修改該位址。
- 如請求項31之方法,其中修改該位址包括使該位址遞增。
- 如請求項31之方法,其中修改該位址包括使該位址遞減。
- 如請求項31之方法,其中修改該位址包括將該位址設定至一預定值。
- 如請求項34之方法,其中將該位址設定至一預定值包括將該位址設定至零。
- 如請求項31之方法,其包括基於該自動改變位址模式自動修改該第一組暫存器中之一記憶庫選擇暫存器。
- 如請求項36之方法,其中自動修改一記憶庫選擇暫存器包含修改該第一暫存器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/253,966 US8209521B2 (en) | 2008-10-18 | 2008-10-18 | Methods of indirect register access including automatic modification of a directly accessible address register |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201023033A TW201023033A (en) | 2010-06-16 |
TWI442318B true TWI442318B (zh) | 2014-06-21 |
Family
ID=41353788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098134535A TWI442318B (zh) | 2008-10-18 | 2009-10-12 | 間接暫存器存取之系統及方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8209521B2 (zh) |
TW (1) | TWI442318B (zh) |
WO (1) | WO2010045028A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938590B2 (en) * | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
US7970964B2 (en) | 2008-11-05 | 2011-06-28 | Micron Technology, Inc. | Methods and systems to accomplish variable width data input |
US7917684B2 (en) * | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US10007486B2 (en) | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
US8214672B2 (en) | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
US8489534B2 (en) | 2009-12-15 | 2013-07-16 | Paul D. Dlugosch | Adaptive content inspection |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
US8766666B2 (en) | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
TWI452465B (zh) * | 2010-08-19 | 2014-09-11 | Zeroplus Technology Co Ltd | Method of arranging and processing the electronic measuring device and its tandem parallel data |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
JP5763784B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 要素利用のための状態のグループ化 |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US8726253B2 (en) | 2011-01-25 | 2014-05-13 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
US9443156B2 (en) | 2011-12-15 | 2016-09-13 | Micron Technology, Inc. | Methods and systems for data analysis in a state machine |
US8782624B2 (en) | 2011-12-15 | 2014-07-15 | Micron Technology, Inc. | Methods and systems for detection in a state machine |
US8680888B2 (en) | 2011-12-15 | 2014-03-25 | Micron Technologies, Inc. | Methods and systems for routing in a state machine |
US8593175B2 (en) | 2011-12-15 | 2013-11-26 | Micron Technology, Inc. | Boolean logic in a state machine lattice |
US8648621B2 (en) | 2011-12-15 | 2014-02-11 | Micron Technology, Inc. | Counter operation in a state machine lattice |
US20130275709A1 (en) | 2012-04-12 | 2013-10-17 | Micron Technology, Inc. | Methods for reading data from a storage buffer including delaying activation of a column select |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9235798B2 (en) | 2012-07-18 | 2016-01-12 | Micron Technology, Inc. | Methods and systems for handling data received by a state machine engine |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
US9501131B2 (en) | 2012-08-31 | 2016-11-22 | Micron Technology, Inc. | Methods and systems for power management in a pattern recognition processing system |
WO2014046974A2 (en) | 2012-09-20 | 2014-03-27 | Case Paul Sr | Case secure computer architecture |
US9448965B2 (en) | 2013-03-15 | 2016-09-20 | Micron Technology, Inc. | Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine |
US9703574B2 (en) | 2013-03-15 | 2017-07-11 | Micron Technology, Inc. | Overflow detection and correction in state machine engines |
CN104111883A (zh) * | 2013-04-22 | 2014-10-22 | 鸿富锦精密工业(深圳)有限公司 | 电子装置主板跳帽测试方法及系统 |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
WO2016109570A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Systems and devices for accessing a state machine |
US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
US10019311B2 (en) | 2016-09-29 | 2018-07-10 | Micron Technology, Inc. | Validation of a symbol response memory |
US10268602B2 (en) | 2016-09-29 | 2019-04-23 | Micron Technology, Inc. | System and method for individual addressing |
US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
US11030128B2 (en) * | 2019-08-05 | 2021-06-08 | Cypress Semiconductor Corporation | Multi-ported nonvolatile memory device with bank allocation and related systems and methods |
US11823771B2 (en) * | 2020-01-30 | 2023-11-21 | Stmicroelectronics S.R.L. | Streaming access memory device, system and method |
US11217323B1 (en) | 2020-09-02 | 2022-01-04 | Stmicroelectronics International N.V. | Circuit and method for capturing and transporting data errors |
CN115686164A (zh) * | 2021-07-26 | 2023-02-03 | 瑞昱半导体股份有限公司 | 供电端装置、供电系统以及非暂态电脑可读取媒体 |
CN113918883B (zh) * | 2021-11-03 | 2022-05-27 | 海光信息技术股份有限公司 | 数据处理方法、装置以及设备和计算机可读存储介质 |
US11698833B1 (en) | 2022-01-03 | 2023-07-11 | Stmicroelectronics International N.V. | Programmable signal aggregator |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3946366A (en) * | 1973-01-26 | 1976-03-23 | Sanders Associates, Inc. | Addressing technique employing both direct and indirect register addressing |
JPH0454652A (ja) * | 1990-06-25 | 1992-02-21 | Nec Corp | マイクロコンピュータ |
US5331227A (en) | 1992-05-15 | 1994-07-19 | Micron Semiconductor, Inc. | Programmable logic device macrocell with an exclusive feedback line and an exclusive external input line |
US5300830A (en) | 1992-05-15 | 1994-04-05 | Micron Semiconductor, Inc. | Programmable logic device macrocell with an exclusive feedback and exclusive external input lines for registered and combinatorial modes using a dedicated product term for control |
WO1995032466A1 (en) | 1994-05-19 | 1995-11-30 | Vlsi Technology, Inc. | Flexible register mapping scheme |
JP2677202B2 (ja) * | 1994-08-12 | 1997-11-17 | 日本電気株式会社 | マイクロプロセッサ |
US5890222A (en) * | 1995-01-04 | 1999-03-30 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indirect addressing mode |
US5752015A (en) * | 1996-03-29 | 1998-05-12 | Integrated Device Technology, Inc. | Method and apparatus for repetitive execution of string instructions without branch or loop microinstructions |
US5903919A (en) * | 1997-10-07 | 1999-05-11 | Motorola, Inc. | Method and apparatus for selecting a register bank |
US6192463B1 (en) * | 1997-10-07 | 2001-02-20 | Microchip Technology, Inc. | Processor architecture scheme which uses virtual address registers to implement different addressing modes and method therefor |
US6029241A (en) | 1997-10-28 | 2000-02-22 | Microchip Technology Incorporated | Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor |
US6052766A (en) * | 1998-07-07 | 2000-04-18 | Lucent Technologies Inc. | Pointer register indirectly addressing a second register in the processor core of a digital processor |
US6880087B1 (en) | 1999-10-08 | 2005-04-12 | Cisco Technology, Inc. | Binary state machine system and method for REGEX processing of a data stream in an intrusion detection system |
US6240003B1 (en) | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
US6735664B1 (en) | 2000-10-18 | 2004-05-11 | Advanced Micro Devices, Inc. | Indirect addressing method and device incorporating the same |
US7142669B2 (en) * | 2000-11-29 | 2006-11-28 | Freescale Semiconductor, Inc. | Circuit for generating hash values |
US7146643B2 (en) | 2002-10-29 | 2006-12-05 | Lockheed Martin Corporation | Intrusion detection accelerator |
US7089352B2 (en) | 2002-12-23 | 2006-08-08 | Micron Technology, Inc. | CAM modified to be used for statistic calculation in network switches and routers |
US6944710B2 (en) | 2002-12-30 | 2005-09-13 | Micron Technology, Inc. | Multiple category CAM |
US6906938B2 (en) | 2003-08-15 | 2005-06-14 | Micron Technology, Inc. | CAM memory architecture and a method of forming and operating a device according to a CAM memory architecture |
US7487542B2 (en) | 2004-01-14 | 2009-02-03 | International Business Machines Corporation | Intrusion detection using a network processor and a parallel pattern detection engine |
US20050259777A1 (en) * | 2004-05-19 | 2005-11-24 | George Claseman | Method for expanding the addressing capability of a plurality of registers and apparatus for implementation thereof |
US7392229B2 (en) | 2005-02-12 | 2008-06-24 | Curtis L. Harris | General purpose set theoretic processor |
FR2891075B1 (fr) | 2005-09-21 | 2008-04-04 | St Microelectronics Sa | Circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et procede de memorisation de donnees dans un tel circuit |
US7512634B2 (en) | 2006-06-05 | 2009-03-31 | Tarari, Inc. | Systems and methods for processing regular expressions |
US7725510B2 (en) * | 2006-08-01 | 2010-05-25 | Alcatel-Lucent Usa Inc. | Method and system for multi-character multi-pattern pattern matching |
US8065249B1 (en) | 2006-10-13 | 2011-11-22 | Harris Curtis L | GPSTP with enhanced aggregation functionality |
US7774286B1 (en) | 2006-10-24 | 2010-08-10 | Harris Curtis L | GPSTP with multiple thread functionality |
US7774661B2 (en) * | 2007-03-29 | 2010-08-10 | Montage Technology Group Limited | Register read mechanism |
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
US7970964B2 (en) | 2008-11-05 | 2011-06-28 | Micron Technology, Inc. | Methods and systems to accomplish variable width data input |
US9639493B2 (en) | 2008-11-05 | 2017-05-02 | Micron Technology, Inc. | Pattern-recognition processor with results buffer |
US7917684B2 (en) | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US10007486B2 (en) | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
US9164945B2 (en) | 2008-12-01 | 2015-10-20 | Micron Technology, Inc. | Devices, systems, and methods to synchronize parallel processing of a single data stream |
US9348784B2 (en) | 2008-12-01 | 2016-05-24 | Micron Technology, Inc. | Systems and methods for managing endian mode of a device |
US8140780B2 (en) | 2008-12-31 | 2012-03-20 | Micron Technology, Inc. | Systems, methods, and devices for configuring a device |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
US8214672B2 (en) | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
US8843523B2 (en) | 2009-01-12 | 2014-09-23 | Micron Technology, Inc. | Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
US8766666B2 (en) | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
JP5763784B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 要素利用のための状態のグループ化 |
US8726253B2 (en) | 2011-01-25 | 2014-05-13 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
-
2008
- 2008-10-18 US US12/253,966 patent/US8209521B2/en active Active
-
2009
- 2009-09-30 WO PCT/US2009/059128 patent/WO2010045028A1/en active Application Filing
- 2009-10-12 TW TW098134535A patent/TWI442318B/zh active
-
2012
- 2012-06-22 US US13/531,077 patent/US9176740B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8209521B2 (en) | 2012-06-26 |
WO2010045028A1 (en) | 2010-04-22 |
US9176740B2 (en) | 2015-11-03 |
US20120265970A1 (en) | 2012-10-18 |
TW201023033A (en) | 2010-06-16 |
US20100100714A1 (en) | 2010-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI442318B (zh) | 間接暫存器存取之系統及方法 | |
US10020033B2 (en) | Indirect register access method and system | |
TWI409695B (zh) | 用於配置裝置之系統、方法及裝置 | |
TWI519963B (zh) | 用以完成可變寬度資料輸入之方法及系統 | |
TWI419045B (zh) | 用於管理裝置之端序模式之系統及方法 | |
TWI489300B (zh) | 用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法 | |
TWI507977B (zh) | 啟用不同資料集之識別之系統及方法 | |
TWI419002B (zh) | 具有資料匹配報告模組之型樣辨識處理器 | |
TWI524203B (zh) | 用於保存及/或復原圖型辨識處理器之狀態之方法及裝置 | |
TWI414998B (zh) | 型樣辨識處理器之電力消耗管理之方法及系統 | |
TWI426390B (zh) | 用於直接將裝置連接至微控制器之方法及系統 | |
TWI416332B (zh) | 藉由多個裝置同步化單一資料串流之同時直接記憶體存取平行處理之裝置、系統及方法 | |
TWI465945B (zh) | 用於型樣辨識處理器中降低電力消耗之方法及裝置 | |
TWI488108B (zh) | 用以同步一單一資料串流之平行處理的裝置、系統及方法 | |
TWI590059B (zh) | 用於型樣辨識處理器之匯流排 |