TW201033896A - Systems, methods, and devices for configuring a device - Google Patents
Systems, methods, and devices for configuring a device Download PDFInfo
- Publication number
- TW201033896A TW201033896A TW098144804A TW98144804A TW201033896A TW 201033896 A TW201033896 A TW 201033896A TW 098144804 A TW098144804 A TW 098144804A TW 98144804 A TW98144804 A TW 98144804A TW 201033896 A TW201033896 A TW 201033896A
- Authority
- TW
- Taiwan
- Prior art keywords
- registers
- data
- register
- search
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
201033896 六、發明說明: 【發明所屬之技術領域】 本發明之實施例大體而言係關於電子裝置,且更具體而 S ’在某些實施例中,係關於此等電子裝置之配置。 【先前技術】 在什算項域中,型樣辨識任務越來越具有挑戰性。電腦 之間傳輸之資料量不斷增大,且使用者期望識別之型樣數 目曰益增加。舉例而言,垃圾郵件或惡意軟體通常藉由搜 尋貝料串流中之型樣(例如,特定短語或片段程式碼)來 積測。型樣數目隨著垃圾郵件及惡意軟體之變化而增加, 此乃因可實施新型樣以搜尋新變體。針對此等型樣中之每 :者搜尋—資料争流可形成-計算瓶頸。通常,在接收該 i料串/4時,針對每—型樣對其進行搜尋,—次—個。在 f、先準備對a資料串流之下_部分進行搜尋之前的延遲隨 ❹ :型樣之數目增加。因此,型樣辨識可使資料之接收減 慢。 &硬體(例如,執行上述型樣辨識任務之硬體)可與多 /、裝置或系統介接。舉例而言,型樣辨識裝置可包含 t基於處理器的系統中以在-資料串流中偵測所期望型 製造者可選取製作一電子裝置「家族 ^此4算硬體可提供於具有*同於彼此之能力之 同裝置中。土丨. 装 且::少有些類似的功能性’但其在能力或其他特性方面 異。在某些實例中’此-家族可包含(按能力增加 序)一基本裝置、-標準裝置'-高級裝置及一超高 145319.doc 201033896 級裝置。然而,此等裝置之不同能力經常需要每一裝置以 一統一且嚴格之方式進行配置◎據信,此將限制設計及配 置一裝置家族中之構件之靈活性,且據信,此將增加與此 等裝置相關聯之設計及實施方案成本。 【實施方式】 圖1緣示對一資料串流12進行搜尋 示既1 U之 例。系統10可包含一型樣辨識處理器14,該型樣辨識處理 器根據搜尋準則16對資料事流12進行搜尋。 參 每一搜尋準則可規定一個或多個目標表達(亦即,型 樣)。短語「目標表達」係指型樣辨識處理器14所搜尋之 資料序列。目標表達之實例包含拼寫某一字之一字元序 列、詳細說明—基因之—遺傳驗基對序列、形成—影像之 分之-圖像或視訊㈣中之__位元序列、形成一程式 之-部分之一可執行檔案中之一位元序列或形成一歌曲或 -口浯短語之一部分之一音訊檔案中之一位元序列。 一搜尋準則可規定多於—個之目標表達。舉例而言,一 ❹ 料準則可規^以字母序列「⑴開頭之所有五個字母之 子:以子母序列「Cl」開頭之任一字 '包含字「cloud」多 ' 之奴落等。目標表達之可能組之數目係任意大, 例如,可存在與資料串流可呈現之資料排列同樣多之目標 表達。搜尋準則可以各種格式來表達,包含正規表違、簡 明地規定若干★且目 > 主 ^ 卞目標表達而不必列舉每一目標表達之—程 式化語言。 因此,~^搜 每搜尋準則可由一個或多個搜尋項構成 145319.doc -4 - 201033896 尋準則之每—目標表達可包含—個或多個搜尋項且某些目 標表達可使用共同搜尋項。如本文中所使用,短語「搜尋 項」係指在—單個拽尋循環期間所搜尋之-資料序列。該 資料序歹j可包含呈—二進制格式或其他格式(例如,十進 位、ASCII等)之多個資料位元。該序列可用—單個數位或 多個數位(❹’數個二進制數位)對資料進行編碼。舉例 而言,型樣辨識處理器14可一次一個字元地對一文字資料201033896 VI. Description of the Invention: [Technical Field of the Invention] Embodiments of the present invention generally relate to electronic devices, and more particularly, in some embodiments, to the configuration of such electronic devices. [Prior Art] In the calculation domain, the pattern recognition task is more and more challenging. The amount of data transmitted between computers continues to increase, and the number of types that users expect to identify increases. For example, spam or malware is usually measured by searching for patterns in a beech stream (for example, a specific phrase or fragment code). The number of patterns increases with spam and malware, as new types of samples can be implemented to search for new variants. For each of these types: search - data contention can form - the computational bottleneck. Usually, when the i-string/4 is received, it is searched for each pattern, one time. In f, the delay before the search for the _ part under the data stream is first: the number of patterns increases. Therefore, pattern recognition can slow down the reception of data. & hardware (eg, hardware that performs the above-described type identification tasks) can interface with multiple devices, systems, or systems. For example, the pattern recognition device can include a processor in a processor-based system to detect a desired type in the data stream. The manufacturer can select an electronic device to be "family". Same as the ability of each other in the same device. Bandit. Packed:: Less similar functionality' but different in terms of ability or other characteristics. In some instances 'this-family can contain (in order of increasing capacity) a basic device, a standard device'-advanced device, and an ultra-high 145319.doc 201033896 class device. However, the different capabilities of such devices often require each device to be configured in a uniform and rigorous manner. The flexibility of designing and configuring components in a family of devices will be limited, and it is believed that this will increase the cost of design and implementation associated with such devices. [Embodiment] Figure 1 illustrates the operation of a data stream 12 The search 10 shows an example of a system. The system 10 can include a pattern recognition processor 14 that searches the data stream 12 based on the search criteria 16. Each search criterion can specify one or more Standard expression (ie, pattern). The phrase "target expression" 14 Search data sequence of pattern-recognition processor means. Examples of target expressions include a sequence of spelling a character, a detailed description—genetic-genetic checkpoint sequence, formation-image division-image or video (4) __bit sequence, forming a program One of the parts may execute one bit sequence in the file or form one bit sequence in one of the audio files of one of the song or the mouth phrase. A search criterion can specify more than one target expression. For example, a material criterion can be used to specify all five-letter children beginning with the letter sequence "(1): any word beginning with the parent-child sequence "Cl" containing the word "cloud" and more. The number of possible groups of target expressions is arbitrarily large, for example, there may be as many target expressions as the data arrays that the data stream can present. The search criteria can be expressed in a variety of formats, including formal representations, concisely specifying a number of objects, and the main expressions of the target expressions without having to enumerate the expressions of each target. Therefore, each search criterion can be composed of one or more search terms. 145319.doc -4 - 201033896 Each of the search criteria can be included with one or more search terms and some target expressions can use a common search term. As used herein, the phrase "search term" refers to a sequence of data that is searched during a single seek cycle. The data sequence j may include a plurality of data bits in a binary format or other format (e.g., decimal, ASCII, etc.). The sequence can encode data by a single digit or multiple digits (❹'s number of binary digits). For example, the pattern recognition processor 14 can pair a text data one character at a time.
串流12進行搜尋,且搜尋項可規I組單字元,例如,字 母」子母&」或「6」,或規定一組所有單字元之 一通配符搜尋項。 一搜尋項可小於或大於規m(或其他字形—亦即, 資料_流所表達之資訊之基礎單元,例如,一音符、一遺 傳鹼基對、-1G進位數位或—子像素)之位元之數目。舉 例而言’-搜尋項可係8個位元且一單個字元可係16個位 元,在此情形下,兩個連續搜尋項可規定一單個字元。 搜尋準則16可由—編料18進行格式化以用於型樣辨識 處理器14。格式化可包含自該等搜尋準則解構搜尋項。舉 例而言,若f料串流12所表達之字形大於該等搜尋項,則 該編譯器可將搜尋準則解構成多個搜尋項以搜尋一單個字 形。類似地’若資料串流12所表達之字形小於該等搜尋 項,則編譯器18可針對每一單獨字形為一單個搜尋項提供 未使用位元。編譯器18亦可對搜尋準則16進行格式化以支 援型樣辨識處理器14未本地支援之各種規則表達運算子。 型樣辨識處理器14可藉由評估來自資料串流12之每一新 145319.doc -5- 201033896 項來對資料串流12進行搜尋。此處,措辭「項」係指可匹 配-搜尋項之資料量。在-搜尋循環期間,型樣辨識處理 器14可確定當前所呈現之項是否匹配搜尋準則中之當前搜 尋項。若該項匹配該搜尋項,則評估被「推進」,亦艮, 將下-項與搜尋準貝中之下一搜尋項進行比車交。若該^不 匹配’則將下-項與搜尋準射之第-項進行比較f藉此 重設該搜尋。 s 可將每一搜尋準則編譯至型樣辨識處理器14中之一不同 有限狀態機中。該等有限狀態機可並行運行,從而根據搜 尋準則16對資料串流12進行搜尋。當資料串流。匹配在前 搜尋項時,該等有限狀態機可步進穿過一搜尋準則中之每 -連續搜尋項,或若未匹配該搜尋項’則該等有限狀態機 可開始搜尋該搜尋準則之第一搜尋項。 型樣辨識處理器丨4可(例如)在―單個裝置循環期間在約 相同時間根據數個搜尋準則及其各別搜尋項評估每一新 項該等並行有限狀態機各自可在約相同時間接收來自資 料串流12之項,且該等並行有限狀態機中之每一者可確定 該項是否將該並行有限狀態機推進至其搜尋準則中之下一 搜尋項。該等並行有限狀態機可根據一相對大數目之搜尋 準則(例如,多於100、多於1000或多於1〇〇〇〇)來評估項。 由於其並行運作,因此其可將該等搜尋準則應用至具有一 相對高頻寬之一資料串流12(例如,大於或大體等於每秒 64 MB或每秒128 MB之一資料串流12),而不使該資料串 流減慢。在某些實施例中,搜尋循環持續時間不隨搜尋準 145319.doc 201033896 則之數目按比例調整’因此搜尋準則之數目對型樣辨識處 理器14之效能可幾乎沒有影響。 虽滿足一搜尋準則時(亦即,在推進至最後一個搜尋項 且與其匹配之後),型樣辨識處理器14可將對該準則之滿 足報告給一處理單元,諸如,一中央處理單元(CPU)20。 中央處理單元2〇可控制系統1〇之型樣辨識處理器丨4及其他 部分。 參 系統10可係對_資料串流進行搜尋之各㈣統或裝置中 之任一者。舉例而言,系統10可係監視資料串流12之一桌 1電胞》膝上型電腦、手持式或其他類型之電腦。系統 10亦可係-網路節,點,例如,一路由器、一祠服器或一用 戶端(例如’先前所闡述類型之電腦中之—者)。系統^可 係某-其他類別之電子裝置,例如,一複印機、一掃描 j、、Γ列印機、—軸㈣臺、—電視機、-機上視訊分 佈或5己錄系統、—雷錄人 電缓益、一個人數位媒體播放器、一工 廒自動化系統、一汽鱼®'脳么.. 旱電%系統或一醫療裝置。(用來 述系統之此等各種實例之输^五η门士 、之術(如同本文中所使用之諸多 ’、 術語)可共用某些參昭物, ^ ·'、、物且因此不應狹隘地僅根據 所列舉之其他物項來理解)。 資料串流12可係一使用者 芩及其他實體可期望搜尋之各種 類型之資料亊流中之一者或 裡 夕首舉例而言,警斜电冷 可係經由-網路接收之 f料机12 M /串^丨L,例如,經由網際網路 接收之封包或”―蜂巢路 串流12可係自愈李统1〇、“ 魏之‘或資料。資料 …系統1〇柄之-感測器(例如,-成像感 145319.doc 201033896 測器、一溫度感測器、一加速度計或類似物或其組合)接 收之資料。資料串流12可作為一串列資料串流由系統1〇接 收’其中資料係以具有意義之一次序(例如,以—明顯的 時間、詞法或語義次序)被接收。另一選擇係,資料串流 12可並行地或無序地被接收,且然後(例如)藉由將在網際 網路上接收之封包重新排序被轉換為一串列資料串流。在 某些實施例中,資料串流12可以串列方式呈現項,但表達 該等項中之每一者之位元可並行地被接收。資料串流12可 自系統10外部之一源被接收,或可藉由訊問一記憶體裝置 且由所儲存之資料形成資料串流12來形成。 端視資料串流12中之資料之類型,一設計者可挑選不同 類型之搜尋準則。舉例而言,搜尋準則16可係一病毒定義 標案。可表徵病毒或其他惡意軟體,且可使用惡意軟體之 態樣來形成指示資料串流12是否可能正在遞送惡意軟體之 搜尋準則。可將所得搜尋準則儲存於-伺服器上,且一用 戶^系統之—操作者可預訂將該等搜尋準則下載至系統10 之一服務。在不同類型之惡意軟體出現時,搜尋準則16可 广司服器週期性地更新。該等搜尋準則亦可用以規定可 、·生由網路接收之不期望内容,例如,不需要之電子郵件 (通㊉稱作垃圾郵件)或—使用者所反感之其他内容。 資料串流12可由料金^ , Λ 一 對系統10正在接收之資料感興趣之一第 — U而s,可針對在一版權作品中出現之文 子、—音訊序列戎—相_ — 相 ^ 視訊序列而監視資料串流12。可針對 與一刑事調查或民直Tn 事#3公有關或一雇主感興趣之言論而監 145319.doc 201033896 視資料串流12。 搜尋準則16亦可包含資料串流12中之型樣,例如,在可 由CPU 20或型樣辨識處理器14定址之記憶體中可得到該等 ^樣之—轉譯。舉例而言’搜尋準則16可各自規定一英語 子,對於該英語字,一對應西班牙語字儲存於記憶體中。 在另一實例中,搜尋準則16可職資料串流12之經編碼版 本(例如,MP3、MPEG 4、FLAC、Ogg Vorbis 等),對於該 等經編碼版本可得到資料串流12之一經解碼版本,或反之 亦然。 型樣辨識處理器14可係與cpu 2〇一起整合至一單個組件 (例如,-單個冑置)中之硬體或可形成為一單獨組件。舉 例而σ,型樣辨識處理器丨4可係一單獨積體電路。型樣辨 識處理器14可稱作一 r協同處理器」或一「型樣辨識協同 處理盗」。 圖2繪示型樣辨識處理器14之一實例。型樣辨識處理器 # 14可包含一辨識模組22及一聚合模組24。辨識模組22可經 配置以將所接收之項與搜尋項&行比較,且辨識模組^與 聚合模組24兩者可協作以確定將一項與一搜尋項匹配是否 滿足一搜尋準則。 辨識模組22可包含一列解碼器28及複數個特徵胞3〇。每 一特徵胞30可規定一搜尋項,且特徵胞3〇群組可形成形成 一搜尋準則之一並行有限狀態機。特徵胞3〇之組件可形成 一搜尋項陣列32、一偵測陣列34及一啟動路由矩陣%。搜 尋項陣列32可包含複數個輸入導體37,其每一者可使特徵 145319.doc •9· 201033896 胞30中之每一者與列解碼器“通信。 列解碼器28可基於資料电法” +咖—+ 貝科串流12之内容在該複數個輸入 體37中選擇特定導艚。無么 舉例而s,列解碼器28可係基於可 表示一個項之一所接收位元組之值啟動256個列中之—者 之一一個位元組至256列解碼器。--位元組項0_ 〇_ 可對應於該複數個輸人導體37中之制,^—位元 1111 1111可對應於該複數 、 /吸數個輸入導體37中之底列。因 此,端視自資料串流12接收到哪些項,可選擇不同輸入導 ㈣。在接收到不同項時,列解⑽28可去啟動對應於先 則項之列且啟動對應於新項之列。 偵測陣列34可柄合至-偵測匯流排38,該積測匯流排將 指示搜尋準則之完全或部分滿足之信號輸出至聚合模电 24。啟動路由料36可基於—搜尋準财之已被匹配之搜 尋項之數目選擇性地啟動及錢動特徵胞3〇。 聚合模組24可包含一麴尨# & , 匕3鎖存态矩陣40、一聚合路由矩陣 42、一臨限邏輯矩陣44、―羅 ^ 邏輯積矩陣46、一邏輯總和矩 陣48及一初始化路由矩陣5〇。 鎖存器矩陣4G可實施某些搜尋準収部分。某些搜尋準 則(例如,某些規則表達)僅計數—匹配或一匹配群組之第 一次發生。鎖存器矩陣40可包含記錄是否已發生一匹配之 鎖存器。可在初始化期間對鎖存器進行清除,且在運作期 間週期性地重新初始化,此乃因經確定毅了或不再滿足 搜尋準則—亦即,一較早拙墓is- 1 权干筏哥項可需要在可滿足該搜尋準 則之前被再次匹配。 145319.doc -10- 201033896 聚合路由矩陣42可類似於啟動路由矩陣36而運行。聚合 路由矩陣42可在偵測匯流排38上接收指示匹配之信號且可 將該等信號路由至連接至臨限邏輯矩陣44之不同群組邏輯 線53。聚合路由矩陣42亦可將初始化路由矩陣50之輸出路 由至偵測陣列34以當確定滿足或不可進一步滿足一搜尋準 則時重設偵測陣列3 4之部分。Stream 12 performs a search, and the search term can be a set of single characters, for example, a letter "mother" or "6", or a wildcard search term for a set of all single characters. A search term may be less than or greater than the rule m (or other glyphs - that is, the basic unit of information expressed by the data stream, for example, a note, a genetic base pair, a -1G carry bit, or a - sub-pixel) The number of yuan. For example, the search term can be 8 bits and a single character can be 16 bits. In this case, two consecutive search terms can specify a single character. The search criteria 16 can be formatted by the code 18 for use in the pattern recognition processor 14. Formatting can include deconstructing the search term from such search criteria. For example, if the g-stream represented by the f-stream 12 is larger than the search terms, the compiler can decompose the search criteria into a plurality of search terms to search for a single glyph. Similarly, if the glyphs represented by the data stream 12 are smaller than the search terms, the compiler 18 can provide unused bits for a single search term for each individual glyph. The compiler 18 may also format the search criteria 16 to support various rule representation operators that are not locally supported by the processor. The pattern recognition processor 14 can search the data stream 12 by evaluating each new item 145319.doc -5 - 201033896 from the data stream 12. Here, the wording "items" refers to the amount of data that can be matched - searched. During the -search cycle, pattern recognition processor 14 may determine whether the currently presented item matches the current search term in the search criteria. If the item matches the search item, the evaluation is "advanced" and, in other words, the next item is compared with the search item in the search order. If the ^ does not match 'the next item is compared with the first item of the search target f, thereby resetting the search. s Each search criterion can be compiled into one of the different finite state machines in the pattern recognition processor 14. The finite state machines can be run in parallel to search the data stream 12 in accordance with the search criteria 16. When the data is streamed. The finite state machine may step through each of the consecutive search terms in a search criterion when matching the previous search term, or the finite state machine may start searching for the search criteria if the search term is not matched A search item. Pattern recognition processor 丨4 may, for example, evaluate each new item based on a plurality of search criteria and their respective search terms at approximately the same time during a single device cycle, each of which may receive at approximately the same time From the item of data stream 12, and each of the parallel finite state machines can determine whether the item advances the parallel finite state machine to the next search term in its search criteria. The parallel finite state machines may evaluate terms based on a relatively large number of search criteria (e.g., more than 100, more than 1000, or more than 1 。). Because of their parallel operation, they can apply the search criteria to a data stream 12 having a relatively high frequency width (eg, greater than or substantially equal to 64 MB per second or 128 MB per second). Do not slow down the data stream. In some embodiments, the search loop duration is not scaled by the number of search criteria 145319.doc 201033896' so the number of search criteria may have little effect on the performance of the pattern recognition processor 14. While satisfying a search criterion (i.e., after advancing to and matching with the last search term), pattern recognition processor 14 may report the satisfaction of the criteria to a processing unit, such as a central processing unit (CPU) ) 20. The central processing unit 2 can control the system identification processor 丨4 and other parts. The system 10 can be any of the four systems or devices that search for the data stream. For example, system 10 can monitor one of the data streams 12, a laptop, a handheld or other type of computer. System 10 can also be a network node, such as a router, a server, or a user (e.g., in a computer of the type previously described). The system ^ can be a certain type of electronic device, for example, a copying machine, a scanning j, a printing machine, an axis (four), a television, an on-board video distribution or a 5 recording system, - Leh Human power slowdown, a mass media player, a factory automation system, FAW Fish® '脳 ... % dry system or a medical device. (The various methods used to describe the system, such as the many ', terms used in this article, can share some of the reference objects, ^ · ', and therefore should not Narrowly understood based on other items listed). The data stream 12 can be one of the users and other types of data turbulence that other entities can expect to search for. For example, the slanting electric cooling can be received via the network. 12 M / string ^ 丨 L, for example, a packet received via the Internet or "-hive road stream 12 can be self-healing Li Tong 1 〇, "Wei Zhi" or data. Information ... System 1 handle-sensor (for example, - imaging 145319.doc 201033896 detector, a temperature sensor, an accelerometer or the like or a combination thereof). The data stream 12 can be received by the system as a series of data streams, where the data is received in a meaningful order (e.g., in an apparent time, lexical or semantic order). Alternatively, data stream 12 can be received in parallel or out of order and then converted to a series of data streams, for example, by reordering packets received over the Internet. In some embodiments, data stream 12 can present items in a serial fashion, but the bits expressing each of the items can be received in parallel. The data stream 12 can be received from a source external to the system 10 or can be formed by interrogating a memory device and forming a data stream 12 from the stored data. Looking at the type of data in the data stream 12, a designer can select different types of search criteria. For example, the search criteria 16 can be a virus definition standard. The virus or other malware can be characterized and the pattern of malware can be used to form a search criterion indicating whether the data stream 12 is likely to be delivering malware. The resulting search criteria can be stored on the server, and a user's system's operator can subscribe to download the search criteria to one of the systems 10. When different types of malware appear, the search criteria 16 can be updated periodically by the server. These search criteria can also be used to specify undesired content that can be received by the network, such as unwanted emails (known as spam) or other content that the user dislikes. The data stream 12 can be made up of a material, ^, and a pair of data that the system 10 is receiving, and the U-s can be used for a text, an audio sequence, a phase, a phase, and a video sequence that appear in a copyrighted work. The data stream 12 is monitored. It can be monitored for comments related to a criminal investigation or a direct investigation of Tn 事#3 public or an employer. 145319.doc 201033896 Depends on data stream 12. The search criteria 16 may also include a pattern in the data stream 12, for example, in a memory addressable by the CPU 20 or the pattern recognition processor 14. For example, the search criteria 16 may each define an English sub-for which a corresponding Spanish word is stored in the memory. In another example, the search criteria 16 encodes an encoded version of the data stream 12 (e.g., MP3, MPEG 4, FLAC, Ogg Vorbis, etc.) for which a decoded version of the data stream 12 is available. Or vice versa. The pattern recognition processor 14 may be integrated with the CPU 2's hardware into a single component (e.g., a single device) or may be formed as a single component. For example, σ, the pattern recognition processor 丨4 can be a separate integrated circuit. The pattern recognition processor 14 may be referred to as an "r-coprocessor" or a "type identification cooperative processing". FIG. 2 illustrates an example of a pattern recognition processor 14. The pattern recognition processor #14 can include an identification module 22 and an aggregation module 24. The identification module 22 can be configured to compare the received item with the search term & line, and the recognition module and the aggregation module 24 can cooperate to determine whether matching one item with a search term satisfies a search criterion. . The identification module 22 can include a column of decoders 28 and a plurality of characteristic cells. Each feature cell 30 can define a search term, and the feature cell group can form a parallel finite state machine that forms a search criterion. The components of the feature cell can form a search term array 32, a detection array 34, and a boot routing matrix %. The search term array 32 can include a plurality of input conductors 37, each of which can cause each of the features 145319.doc • 9· 201033896 cells 30 to communicate with the column decoder. The column decoder 28 can be based on data electrical methods. + coffee - + The content of the Becca stream 12 selects a particular guide among the plurality of input bodies 37. For example, column decoder 28 may initiate one of the 256 columns to one of the 256 column decoders based on a value that can represent a byte received by one of the items. The byte item 0_ 〇_ may correspond to the plurality of input conductors 37, and the bits 1111 1111 may correspond to the bottom of the plurality of input conductors 37. Therefore, depending on which items are received from the data stream 12, different input guides can be selected (4). When a different item is received, the column solution (10) 28 can start the column corresponding to the rule item and start the column corresponding to the new item. The detection array 34 is slidably coupled to a detection bus 38 that outputs a signal indicating that the search criteria are fully or partially satisfied to the aggregate mode 24. The actuating routing material 36 can be selectively enabled and activated based on the number of search terms for which the search for the quasi-finance has been matched. The aggregation module 24 can include a &# &, 匕3 latched state matrix 40, an aggregate routing matrix 42, a threshold logic matrix 44, a "romatic logic product matrix 46, a logical sum matrix 48, and an initialization. Routing matrix 5〇. The latch matrix 4G can implement some search acquisition sections. Some search criteria (for example, some rule expressions) count only—the first occurrence of a match or a match group. Latch matrix 40 can include a latch that records whether a match has occurred. The latch can be cleared during initialization and periodically re-initialized during operation, either because it is determined or no longer meets the search criteria - that is, an earlier tomb is- 1 Items may need to be matched again before the search criteria can be met. 145319.doc -10- 201033896 Aggregate routing matrix 42 can operate similar to starting routing matrix 36. Aggregated routing matrix 42 may receive signals indicative of matching on detection bus 38 and may route the signals to different group logic lines 53 connected to threshold logic matrix 44. The aggregate routing matrix 42 may also route the output of the initialization routing matrix 50 to the detection array 34 to reset portions of the detection array 34 when it is determined that a search criterion is satisfied or may not be further satisfied.
❿ 臨限邏輯矩陣44可包含複數個計數器,例如,經配置以 遞增計數或遞減計數之32位元計數器。臨限邏輯矩陣44可 載入有一初始計數且其可基於由辨識模組發訊之匹配而自 該計數遞增計數或遞減計數。舉例而言,臨限邏輯矩陣44 可計數一字在某一長度之文字中出現之數目。 臨限邏輯矩陣44之輸出可係邏輯積矩陣衫之輸入。邏輯 積矩陣46可選擇性地產生「積」結果(例如,布林邏輯 (Boolean i〇glc)中之「AND」函數)。邏輯積矩陣a可實施 為-方矩陣,Λ中輸出積之數目等於來自臨限邏輯矩陣44 之輸入線之數目’或邏輯積矩陣46可具有不同於輸出之數 目之輸入。可將所得積值輸出至邏輯總和矩陣48。 邏輯總和料48可選擇性地產生和(例如,布林邏輯中 之「OR」函數)。邏輯總和矩陣48亦可係一方矩陣,或邏 =總和矩陣48可具有不同於輪出之數目之輸人。由於該等 :入係邏輯積,因此邏輯總和矩陣48之輪出可係積的邏輯 :如布林積的邏輯總和(sop)形式)。邏輯總和矩陣 輸出可由初始化路由矩陣50接收。 初始化路由矩㈣可經由聚合路由矩陣C重設偵測陣列 145319.doc 201033896 34及聚合模組24之部分。初始化路由矩陣5〇亦可實施為一 方矩陣,或初始化路由矩陣5〇可具有不同於輸出之數目之 輸入。(例如)當滿足一搜尋準則或確定不可進—步滿足該 搜尋準則時,初始化路由矩陣50可回應於來自邏輯總和矩 陣48之#號且重新初始化型樣辨識處理器14之其他部分。 聚合模組24可包含-輸出緩衝器51,其接收臨限邏"輯矩 陣44、聚合路由矩陣42及邏輯總和矩陣48之輸出。聚人模 組24之輸出可在輸出匯流排26上自輸出緩衝器51傳^至 CPU 2_υ。在某些實施例中,—輸出多工器可對來自 此等組件42、44及48之信號騎多卫且«示滿足準則或 匹配搜尋項之信號輸出至cpu 2〇(圖^。在其他實施例 中’可在不透過該輸出多工器傳輸該等信號之情形下報告 來自型樣辨識處理器14之結果,此並非暗示亦不可省略I ==之任一其他特徵。舉例而言,可在輸出匯流排 6上=臨限邏輯矩陣44、邏輯積矩陣Μ、邏輯總和矩 或初始化路由矩陣50之信號並行傳輸至該CPU。 一=圖:閣釋搜尋項陣列32(圖2)中之一單個特徵胞3。之 可H一二中稱為—搜尋項胞54之一組件)。搜尋項胞54 之Γ:! 56及複數個記憶體胞58。記憶體胞财 導體中之:Γ輪出導體56及複數個輸入導體37中之 胞㈣之每-者二L應於其輸入導體37被選擇’記憶體 輸出導體56輪出資料 值k而透過 體37可稱為「字線某些實施例中,該複數個輸入導 J 且輸出導體56可稱為一「資料 145319.doc 201033896 線」。 記憶體胞58可包含各種類型之記憶體胞中之任一類型。 舉例而言,記憶體胞58可係揮發性記憶體,諸如,具有一 電晶體及一電容器之動態隨機存取記憶體(dram)胞。該 電晶體之源極及汲極可分別連接至該電容器之一板及輸出 導體56,且該電晶艟之閘極可連接至輸入導體中之一 者。在揮發性記憶體之另一實例中,記憶體胞5 8中之每一 鲁者可包含-靜態隨機存取記憶體(SRAM)胞。該sram胞可 具有一輸出,該輸出藉由受輸入導體37中之一者控制之一 存取電晶體選擇性地柄合至輸出導體56。記憶體胞58亦可 包含非揮發性記憶體,例如,相變記憶體(例如,一雙向 裝置)、快閃記憶體、矽·氧化物-氮化物_氧化物石夕 (SONOS)記憶體、磁阻式記憶體或其他類型之非揮發性記 憶體。記憶體胞58亦可包含正反器(例如,由邏輯閘極製 成之記憶體胞)。 • 圖4及圖5繪示運作中之搜尋項胞54之一實例。圖4圖解 闡釋搜尋項胞54接收不匹配該胞之搜尋項之一項,且圖5 圖解闡釋一匹配。 如圖4所圖解闡釋,搜尋項胞54可經配置以藉由將資料 儲存於記憶體胞58中來搜尋一個或多個項。記憶體胞财 自可表示資料串流12可呈現之一項,例如,在圖3中每 一記憶體胞58表示一單個字母或數字,以字母「&」開始 且以數字「9」結束。表示滿足搜尋項之項之記憶體胞58 可經程式化以儲存一第一值,且不表示滿足搜尋項之項之 1453l9.doc •13- 201033896 記憶體胞58可經程式化以儲存—不同值。在所圖解閣釋之 實例中’搜尋項胞54經配置讀尋字母「b」。表示「b 之記憶體胞58可儲存-1或邏輯高,且不表示「b:之纪; 體胞58可經程式化以儲存一〇或邏輯低。 ° ‘ 。為將來自資料串流12之—項與搜尋項進行吨,列解碼 器28可選擇耗合至表示所接枚項之記憶體胞58之輸入導體 37。在圖4中’資料串流12呈現一小寫。此項可由資 料串流12以-八位以咖程式碼之形式呈現,且列解碼 器28可將此位元組解譯為—列位址,從而藉由給導體60通 電而在其上輸出~信號。 作為回應’由導體6〇控制之記憶體胞58可輸出指示記憶 體胞58所儲存之資料之—信號,线信號可由輸出導體% :送。在此情況下’由於字母「e」不係由搜尋項胞⑽ 疋之項中之一者,因此其不匹配搜尋項,且搜尋項胞科輸 出一 〇值’從而指示未發現匹配。 。在圖5中’資料串流12呈現一字元「b」。同樣,列解碼 器28了將此項解譯為一位址,且列解碼器可選擇導體 62。作為回應,表示字母「b」之記憶體胞58輸出其所儲 存值’在此情形下該值係一 1 ’從而指示一匹配。 搜尋項胞54可經配置以一次搜尋多於一個項。多個記憶 體胞58可經程式化以儲存一 1,從而規定與多於一個項匹 配之一搜尋項。舉例而言,表示小寫字母「a」及大寫字 母「A」之記憶體胞58可經程式化以儲存一 1,且搜尋項胞 54可搜尋任一項。在另一實例中’搜尋項胞54可經配置以 145319.doc •14- 201033896 在接收到任-子元之情形下輸出—匹配。所有記憶體胞Μ 可經程式化以儲存—1,以使得搜尋項胞54可充當一搜尋 準則中之一通配符項。 圖6至圖8繪示辨識模組22根據一多項搜尋準則進行搜尋 (例如,搜尋一字)。具體而言,圖6圖解闡釋辨識模組22偵 測一字之第一字母,圖7圖解闞釋第二字母之偵測,且圖8 圖解闡釋最後一個字母之伯測。 馨如圖6所圖解闡釋,辨識模組22可經配置以搜尋字 big」。對二個批鄰特徵胞63、64及66進行圖解闡釋。 特徵胞63經配置以偵測字母rb」。特徵胞M經配置以偵 測字母「i」。特徵胞66經配置以既偵測字母「g」又指示 搜尋準則被滿足。 圖6亦繪示偵測陣列34之額外細節。偵測陣列34可包含 特徵胞63、64及66中之每一者中之一偵測胞68。偵測胞68 中之每一者皆可包含一記憶體胞7〇(諸如,上述記憶體胞 φ 類型中之一者(例如’一正反器)),其指示特徵胞63、64或 66是活動還是不活動。偵測胞68可經配置以將指示偵測胞 68疋否係活動之一信號輸出至啟動路由矩陣%且已自其相 關聯搜尋項胞54接收到指示一匹配之一信號。不活動特徵 胞63、64及66可忽視匹配。偵測胞68中之每一者皆可包含 一 AND閘,其具有來自記憶體胞70及輸出導體56之輸入。 可將該AND閘之輸出路由至偵測匯流排3 8及啟動路由矩陣 36兩者或一者或另一者。 啟動路由矩陣3 6又可藉由寫入至偵測陣列3 4中之記憶體 145319.doc -15- 201033896 胞70來選擇性地啟動特徵胞63、64及66。啟動路由矩陣36 可根據搜尋準則及其次在資料串流12中搜尋哪一搜尋項來 啟動特徵胞63、64或66。 在圖6中,資料串流12呈現字母「b」。作為回應,特徵 胞63、64及66中之每—者可在其輸出㈣56上輸出指示儲 存於連接至導體62(其表示字母「b」)之記憶體胞58中之值 之一信號。然後,偵測胞56各自可確定其等是否已接收到 才曰示匹配之號及其等是否係活動。由於特徵胞經 配置以偵測字母「b」且係活動(如其記憶體胞7〇所指示),φ 因此特徵胞63中之偵測胞68可將指示搜尋準則之第一搜尋 項已被匹配之一信號輸出至啟動路由矩陣36。 如圖7所圖解闡釋,在匹配第一搜尋項之後,啟動路由 矩陣36可藉由將一 i寫入至下一特徵胞64之偵測胞68中之 記憶體胞70來啟動該特徵胞。在下一項滿足第一搜尋項之 情況下(例如,若接收到項序列「bbig」)’啟動路由矩陣 36亦可維持特徵胞63之活動狀態。在對資料串流η進行搜 哥期間之一部分時間或大致所有時間期間,搜尋準則之第 Θ 一搜尋項可維持處於一活動狀態中。 在圖7中,資料串流12將字母「丨」呈現給辨識模組22〇 · 作為回應,特徵胞63、64及66中之每一者可在其輸出導體 56上輸出指示儲存於連接至導體72(其表示字母「丨」)之纪 憶體胞58中之值之一信號。然後,偵測胞兄各自可確定其 等是否已接收到指示一匹配之一信號及其等是否係活動。 由於特徵胞64經配置以偵測字母「丨」且係活動(如其記情 145319.doc -16- 201033896 體胞70所指示),因此特徵胞64中之偵測胞68可將指示已 匹配其搜尋準則之下一搜尋項之一信號輸出至啟動路由矩 陣36。 接下來,啟動路由矩陣36可啟動特徵胞66,如圖8所圖 解闡釋。在評估下一項之前,可去啟動特徵胞64〇可藉由 特徵胞64之偵測胞68在偵測循環之間重設其記憶體胞7〇來 去啟動特徵胞64,或啟動路由矩陣36可去啟動特徵胞 64·(舉例而言)。The threshold logic matrix 44 may include a plurality of counters, for example, a 32-bit counter configured to count up or down. The threshold logic matrix 44 can be loaded with an initial count and can count up or down from the count based on the match sent by the recognition module. For example, the threshold logic matrix 44 can count the number of occurrences of a word in a certain length of text. The output of the threshold logic matrix 44 can be the input of the logical product matrix. The logical product matrix 46 can selectively produce a "product" result (e.g., an "AND" function in Boolean i〇glc). The logical product matrix a can be implemented as a - square matrix, the number of output products in Λ being equal to the number of input lines from the threshold logic matrix 44 or the logical product matrix 46 can have an input different from the number of outputs. The resulting product value can be output to the logical sum matrix 48. The logical summing material 48 can selectively generate sums (e.g., "OR" functions in the Boolean logic). The logical sum matrix 48 may also be a matrix of ones, or the logic = sum matrix 48 may have a different number of inputs than the number of rounds. Because of this: the logical product of the logical sum, the logic of the logical sum matrix 48 is rounded up: such as the logical sum (sop) form of the Boolean product. The logical sum matrix output can be received by the initialization routing matrix 50. The initialization routing moment (4) can be used to reset the detection array 145319.doc 201033896 34 and the portion of the aggregation module 24 via the aggregation routing matrix C. The initialization routing matrix 5 can also be implemented as a square matrix, or the initialization routing matrix 5 can have an input different from the number of outputs. The initialization routing matrix 50 may recognize the other portions of the processor 14 in response to the # from the logical sum matrix 48 and reinitialize the pattern 14 when, for example, a search criterion is satisfied or it is determined that the search criteria are not met. The aggregation module 24 can include an output buffer 51 that receives the output of the threshold logic " matrix, 44, aggregated matrix 42 and logical sum matrix 48. The output of the cluster module 24 can be passed from the output buffer 51 to the CPU 2_υ on the output bus 26. In some embodiments, the output multiplexer can ride the signals from the components 42, 44, and 48 and output a signal to the cpu 2 〇 (Fig. In an embodiment, the result from the pattern recognition processor 14 can be reported without transmitting the signals through the output multiplexer, which is not meant to imply or omit any other feature of I ==. For example, The signals may be transmitted to the CPU in parallel on the output bus 6 = the threshold logic matrix 44, the logical product matrix Μ, the logical sum matrix, or the initialization routing matrix 50. A = map: the search term array 32 (Fig. 2) One of the individual characteristic cells 3. It can be referred to as a component of the search term cell 54. Search for the cell 54 after: ! 56 and a plurality of memory cells 58. Among the memory cell conductors: each of the cells (4) of the turn-off conductor 56 and the plurality of input conductors 37 should be selected by the input conductor 37 to be selected by the memory output conductor 56. Body 37 may be referred to as a "word line". In some embodiments, the plurality of input conductors J and output conductor 56 may be referred to as a "data 145319.doc 201033896 line." Memory cell 58 can comprise any of a variety of types of memory cells. For example, memory cell 58 can be a volatile memory such as a dynamic random access memory (dram) cell having a transistor and a capacitor. The source and drain of the transistor can be respectively connected to one of the capacitor plates and the output conductor 56, and the gate of the transistor can be connected to one of the input conductors. In another example of volatile memory, each of the memory cells 58 may comprise a static random access memory (SRAM) cell. The sram cell can have an output that is selectively occluded to the output conductor 56 by an access transistor controlled by one of the input conductors 37. Memory cell 58 may also comprise non-volatile memory, such as phase change memory (eg, a two-way device), flash memory, germanium oxide-nitride-oxide (SONOS) memory, Magnetoresistive memory or other types of non-volatile memory. The memory cell 58 can also include a flip-flop (e.g., a memory cell made up of logic gates). • Figures 4 and 5 illustrate an example of a search term cell 54 in operation. Figure 4 illustrates an example in which the search term cell 54 receives a search term that does not match the cell, and Figure 5 illustrates a match. As illustrated in Figure 4, the search term cell 54 can be configured to search for one or more items by storing the data in the memory cell 58. The memory cell can represent one of the data streams 12 that can be presented. For example, in FIG. 3, each memory cell 58 represents a single letter or number, starting with the letter "&" and ending with the number "9". . The memory cell 58 representing the item satisfying the search term can be programmed to store a first value, and does not represent the item that satisfies the search term. 1453l.doc • 13- 201033896 The memory cell 58 can be programmed to be stored - different value. In the illustrated example, the search term cell 54 is configured to read the letter "b". Indicates that "b memory cell 58 can store -1 or logic high, and does not indicate "b: the age; cell 58 can be programmed to store a 〇 or logic low. ° '. For data stream 12 The item-and-search item is toned, and the column decoder 28 can optionally consume the input conductor 37 of the memory cell 58 representing the selected item. In Figure 4, the data stream 12 presents a lowercase. Stream 12 is presented in the form of an eight-bit coffee code, and column decoder 28 can interpret the byte as a column address, thereby outputting a ~ signal thereon by energizing conductor 60. In response to the 'memory cell 58 controlled by the conductor 6 可 can output a signal indicating the data stored in the memory cell 58 - the line signal can be sent by the output conductor % : in this case 'because the letter "e" is not searched One of the items of the cell (10), so it does not match the search term, and the search term cell outputs a value of ', indicating that no match was found. . In Figure 5, the data stream 12 presents a character "b". Similarly, column decoder 28 interprets this as a single address and column decoder selects conductor 62. In response, the memory cell 58 representing the letter "b" outputs its stored value 'in this case the value is a 1 ' indicating a match. The search term cell 54 can be configured to search for more than one item at a time. A plurality of memory cells 58 can be programmed to store a 1 to specify a search term that matches more than one item. For example, the memory cell 58 representing the lowercase "a" and the uppercase "A" can be programmed to store a 1, and the search term 54 can search for any one. In another example, the search term cell 54 can be configured to output - match in the event that any-child is received, 145319.doc • 14- 201033896. All memory cells can be programmed to store -1 such that the search term 54 can act as a wildcard entry in one of the search criteria. 6 through 8 illustrate the identification module 22 performing a search (e.g., searching for a word) based on a plurality of search criteria. In particular, Figure 6 illustrates that the recognition module 22 detects the first letter of a word, Figure 7 illustrates the detection of the second letter, and Figure 8 illustrates the home of the last letter. As illustrated in Figure 6, the recognition module 22 can be configured to search for the word big". Two batches of neighboring characteristic cells 63, 64 and 66 are graphically illustrated. The feature cell 63 is configured to detect the letter rb". The feature cell M is configured to detect the letter "i". The feature cell 66 is configured to detect both the letter "g" and the search criteria being satisfied. FIG. 6 also depicts additional details of the detection array 34. Detection array 34 can include one of characteristic cells 63, 64, and 66 to detect cells 68. Each of the detection cells 68 can include a memory cell 7 (such as one of the above memory cell φ types (eg, 'a flip-flop)) indicating the characteristic cell 63, 64 or 66 Is it active or inactive? The detection cell 68 can be configured to output a signal indicative of the detection cell 疋 系 activity to the activation routing matrix % and has received a signal indicating a match from its associated search term cell 54. Inactive features Cells 63, 64, and 66 can ignore matches. Each of the detection cells 68 can include an AND gate having inputs from the memory cell 70 and the output conductor 56. The output of the AND gate can be routed to either or both of the detection bus 38 and the routing matrix 36. The routing matrix 3 6 can be selectively activated by writing to the memory 145319.doc -15- 201033896 cell 70 in the detection array 34. The initiation routing matrix 36 can initiate the signature cells 63, 64 or 66 based on the search criteria and which search term is searched for in the data stream 12. In Figure 6, data stream 12 presents the letter "b". In response, each of the characteristic cells 63, 64, and 66 may output a signal indicative of a value stored in the memory cell 58 coupled to the conductor 62 (which represents the letter "b") on its output (4) 56. Then, the detecting cells 56 can each determine whether they have received the number of matching matches and whether they are active. Since the feature cell is configured to detect the letter "b" and is active (as indicated by its memory cell 7), φ therefore the detection cell 68 in the feature cell 63 can match the first search term indicating the search criteria. One of the signals is output to the startup routing matrix 36. As illustrated in Figure 7, after matching the first search term, the initiation routing matrix 36 can initiate the feature cell by writing an i to the memory cell 70 in the detection cell 68 of the next feature cell 64. In the case where the next item satisfies the first search term (e.g., if the item sequence "bbig" is received), the routing matrix 36 is activated to maintain the active state of the feature cell 63. During a portion of the time or substantially all of the time during which the data stream η is searched, the first search term of the search criteria may remain in an active state. In FIG. 7, data stream 12 presents the letter "丨" to the recognition module 22〇. In response, each of the feature cells 63, 64, and 66 can output an indication on its output conductor 56 to be stored in the connection. A signal from one of the values of the conductor 72 (which represents the letter "丨"). Then, the detecting brothers can each determine whether they have received a signal indicating that a match and whether they are active. Since the feature cell 64 is configured to detect the letter "丨" and is active (as indicated by its corpus 145319.doc -16- 201033896 cell 70), the detection cell 68 in the feature cell 64 can indicate that it has been matched. One of the search items under the search criteria is output to the start routing matrix 36. Next, the routing matrix 36 is enabled to activate the feature cell 66, as illustrated in Figure 8. Before evaluating the next item, the characteristic cell 64 can be deactivated, and the characteristic cell 64 can be activated by the detection cell 68 of the characteristic cell 64 to reset its memory cell 7 between detection cycles, or the routing matrix 36 can be activated. The feature cell 64 can be deactivated (for example).
在圖8中’資料串流12將項「g」呈現給列解碼器28,該 列解碼器選擇表示項「g」之導體74。作為回應,特徵胞 63、64及66中之每一者可在其輸出導體56上輸出指示儲存 於連接至導體74(其表示字母「g」)之記憶體胞58中之值之 一信號。然後,偵測胞68各自可確定其等是否已接收到指 示一匹配之一信號及其等是否係活動。由於特徵胞66經配 置以偵測字母「g」且係活動(如其記憶體胞7〇所指示),因 此特徵胞66中之偵測胞68可將指示已匹配其搜尋準則之最 後一個搜哥項之一信號輸出至啟動路由矩陣%。 一搜尋準則之末端或一搜尋準則之一部分可由啟動路由 矩陣36或偵測胞68來識別。此等組件36或68可包含指示其 特徵胞63、64或66規定一搜尋準則之最後一個搜尋項還是 一搜尋準則之一組成部分之記憶體。舉例而言,一搜尋準 則可規定其中字「cattle」出現兩次之所有句子,且辨識 模組可將指示「cattle」在一句子内之每一出現之一信號 輸出至聚合模組,該聚合模組可計數該等出現以確定是否 145319.doc •17· 201033896 滿足該搜尋準則。 可在數個條件下啟動特徵胞63、64或66。一特徵胞63、 64或66可係「料活動」,此意指其在整個或大致整個搜 尋期間保持活動。-始終活動特徵胞63、料或心一實例 係搜尋準則之第一特徵胞(例如,特徵胞63)。 -特徵胞63、64或66可係「在請求時活動」,此意指特 徵胞63、64或66在匹配某一在前條件時(例如,在匹配一 搜尋準則中之在前搜尋項時)係活動的。一實例係在由圖6 至圖8中之特徵胞63請求時係活動之特徵胞以及在由特徵 胞64請求時係活動之特徵胞66。 一特徵胞63、64或66可係「自啟動」,此意指一旦其被 啟動,則只要其搜尋項被匹配其即啟動其自身。舉例而 言,具有由任一數值數位匹配之一搜尋項之一自啟動特徵 胞可在序列「123456xy」中保持活動直至到達字母「X」 為止。每當匹配該自啟動特徵胞之搜尋項時,其可啟動搜 尋準則中之下一特徵胞。因此,一始終活動特徵胞可由一 自啟動特徵胞及一在請求時活動之特徵胞形成'該自啟動 特徵胞可與其儲存一 1之所有記憶體胞58一起程式化,且 其可在母一項後重複啟動在請求時活動之特徵胞。在某些 實施例中’每一特徵胞63、64及66可在其偵測胞68中或在 啟動路由矩陣36中包含規定該特徵胞是否係始終活動之一 記憶體胞,藉此由一單個特徵胞形成一始終活動特徵胞。 圖9繪示經配置以根據一第一搜尋準則75及一第二搜尋 準則76並行進行搜尋之一辨識模組22之一實例。在此實例 145319.doc •18- 201033896 中,第一搜尋準則75規定字「bigj ,且第二搜尋準則% 規疋子cab」。指示來自資料串流12之當前項之一信號 可在大體相同時間傳遞至每一搜尋準則75及76中之特徵 胞。輸入導體37中之每一者跨越搜尋準則75及76兩者。結 果,在某些實施例中,搜尋準則75及76兩者可大體同時評 估當前項。據信,此加速對搜尋準則之評估。其他實施例 可包含經配置以並行評估更多搜尋準則之更多特徵胞。舉 例而言’某些實施例可包含並行運作之多於1〇〇、5〇〇、 1000、5000、或1〇,〇〇〇個特徵胞。此等特徵胞可大體同時 評估數百個或數千個搜尋準則。 具有不同數目之搜尋項之搜尋準則可藉由將更多或更少 之特徵胞分配至該等搜尋準則來形成。簡單搜尋準則可消 耗比複雜搜尋準則更少之呈特徵胞形式之資源。據信,相 對於具有大量大體相同之核心之處理器(全部經配置以評 估複雜搜尋準則),此減小型樣辨識處理器14(圖2)之成 本。 圖10至圖12繪示一更複雜搜尋準則之一實例及啟動路由 矩陣36之特徵兩者。啟動路由矩陣36可包含複數個啟動路 由胞78 ’其群組可與特徵胞63、64、66、80、82、84及86 中之每一者相關聯。舉例而言,該等特徵胞中之每一者皆 可包含5、10、20、50個或更多個啟動路由胞78。啟動路 由胞78可經配置以在匹配一搜尋準則中之一在前搜尋項時 將啟動信號傳輸至下一搜尋項。啟動路由胞78可經配置以 將啟動信號路由至毗鄰特徵胞或同一特徵胞内之其他啟動 145319.doc -19- 201033896 路由胞78。啟動路由胞78可包含指示哪些特徵胞對應於一 搜尋準則中之下一搜尋項之記憶體。 如圖10至圖12所圖解闡釋,辨識模組22可經配置以根據 複雜搜尋準則而非規定單個字之準則進行搜尋。舉例而 言’辨識模組22可經配置以搜尋以一首碼88開頭且以兩個 尾碼90或92中之一者結束之字。所圖解闡釋之搜尋準則規 疋以字母序列「c」及「1」開頭且以字母序列「ap」或字 母序列「oud」結束之字。此係規定多個目標表達之一搜 哥準則(例如,字「clap」或字r cl〇U(j」)之一實例。 ⑩ 在圖10中’資料串流12將字母「c」呈現給辨識模組 22 ’且特徵胞63既係活動又偵測一匹配。作為回應,啟動 路由矩陣36可啟動下一特徵胞64。啟動路由矩陣36亦可維 持特徵胞63之活動狀態,此乃因特徵胞63係搜尋準則中之 第一搜尋項。In Figure 8, data stream 12 presents item "g" to column decoder 28, which selects conductor 74 representing item "g". In response, each of the characteristic cells 63, 64, and 66 can output a signal indicative of the value stored in the memory cell 58 coupled to the conductor 74 (which represents the letter "g") on its output conductor 56. The detection cells 68 can then each determine whether they have received a signal indicating a match and whether they are active. Since the characteristic cell 66 is configured to detect the letter "g" and is active (as indicated by its memory cell 7), the detection cell 68 in the feature cell 66 can indicate the last searcher that has matched its search criteria. One of the items is output to the start routing matrix %. The end of a search criterion or a portion of a search criterion can be identified by the initiation routing matrix 36 or the detection cell 68. Such components 36 or 68 may include memory indicating whether their characteristic cells 63, 64 or 66 specify a last search term for a search criterion or a component of a search criterion. For example, a search criterion may specify all sentences in which the word "cattle" appears twice, and the recognition module may output a signal indicating each occurrence of "cattle" in a sentence to the aggregation module, the aggregation. The module can count the occurrences to determine if 145319.doc •17· 201033896 meets the search criteria. The characteristic cells 63, 64 or 66 can be activated under a number of conditions. A characteristic cell 63, 64 or 66 may be "material activity", which means that it remains active throughout or substantially throughout the search. - Always active feature cell 63, material or heart instance is the first characteristic cell of the search criteria (e.g., characteristic cell 63). - The feature cell 63, 64 or 66 may be "active at request", which means that the feature cell 63, 64 or 66 matches a previous condition (eg, when matching a previous search term in a search criterion) ) is active. An example is a feature cell that is active when requested by the feature cell 63 of Figures 6-8 and a feature cell 66 that is active when requested by the feature cell 64. A feature cell 63, 64 or 66 may be "self-starting", which means that once it is activated, it initiates itself as long as its search term is matched. For example, a self-starting feature cell having one of the search terms matched by any numeric digit can remain active in the sequence "123456xy" until the letter "X" is reached. Each time a search term of the self-starting feature cell is matched, it can initiate the next feature cell in the search criteria. Therefore, an always active feature cell can be formed by a self-starting feature cell and a feature cell active at the time of request. The self-starting feature cell can be programmed together with all memory cells 58 storing one, and it can be in the parent cell. After the item is repeated, the feature cell that is active at the time of the request is started. In some embodiments, 'each characteristic cell 63, 64, and 66 may include in its detection cell 68 or in the initiation routing matrix 36 a memory cell that specifies whether the characteristic cell is always active, thereby A single characteristic cell forms an always active characteristic cell. FIG. 9 illustrates an example of an identification module 22 configured to search in parallel based on a first search criterion 75 and a second search criterion 76. In this example 145319.doc • 18- 201033896, the first search criterion 75 specifies the word "bigj and the second search criterion % rules the sub-cab". A signal indicating that one of the current entries from data stream 12 can be passed to the feature cells in each of search criteria 75 and 76 at substantially the same time. Each of the input conductors 37 spans both search criteria 75 and 76. As a result, in some embodiments, both search criteria 75 and 76 can generally evaluate the current term at the same time. It is believed that this accelerates the evaluation of search criteria. Other embodiments may include more feature cells configured to evaluate more search criteria in parallel. For example, some embodiments may include more than one, five, 1000, 5,000, or one 并行, characteristic cells operating in parallel. These traits can generally evaluate hundreds or thousands of search criteria simultaneously. Search criteria with a different number of search terms can be formed by assigning more or fewer signature cells to the search criteria. Simple search criteria can consume fewer resources in the form of eigencells than complex search criteria. It is believed that this reduction identifies the cost of processor 14 (Fig. 2) relative to processors having a large number of substantially identical cores (all configured to evaluate complex search criteria). Figures 10 through 12 illustrate both an example of a more complex search criterion and the features of the boot routing matrix 36. The initiation routing matrix 36 can include a plurality of initiating routing cells 78' whose groups can be associated with each of the characteristic cells 63, 64, 66, 80, 82, 84, and 86. For example, each of the eigencells can include 5, 10, 20, 50 or more priming routing cells 78. The boot routing cell 78 can be configured to transmit an enable signal to the next search term when one of the search criteria is matched to the previous search term. The boot routing cell 78 can be configured to route the enable signal to neighboring trait cells or other boot 145319.doc -19- 201033896 routing cells 78. The initiate route cell 78 can include memory indicating which feature cells correspond to the next search term in a search criterion. As illustrated in Figures 10-12, the recognition module 22 can be configured to search based on complex search criteria rather than criteria for specifying a single word. For example, the recognition module 22 can be configured to search for words beginning with a first code 88 and ending with one of the two end codes 90 or 92. The illustrated search criteria are those beginning with the letter sequence "c" and "1" and ending with the letter sequence "ap" or the alphabet sequence "oud". This is an example of one of a plurality of target expressions (eg, the word "clap" or the word r cl〇U(j"). 10 In Figure 10, the data stream 12 presents the letter "c" to The identification module 22' and the feature cell 63 are both active and detect a match. In response, the initiation routing matrix 36 can initiate the next feature cell 64. The initiation of the routing matrix 36 also maintains the active state of the feature cell 63. The feature cell 63 is the first search term in the search criteria.
在圖11中,資料串流12呈現一字母「丨」,且特徵胞64 辨識一匹配且係活動。作為回應,啟動路由矩陣3 6可將一 啟動仏號傳輸至第一尾碼9〇之第一特徵胞66及第二尾碼% 之第—特徵胞82兩者。在其他實例中,可啟動更多尾碼, 或多個首碼可啟動一個或多個尾碼。 接下來’如圖12所圖解闡釋,資料串流12將字母「〇」 呈現給辨識模組22,且第二尾碼92之特徵胞82偵測一匹配 且係活動。作為回應,啟動路由矩陣36可啟動第二尾碼92 之下特徵胞84。在允許特徵胞66變成不活動時,對第一 尾碼9〇之搜尋可停止。圖1〇至圖12所圖解闡釋之步驟可繼 1453l9.do« -20- 201033896 續通過字母「及「 d」’或搜尋可停止直至下一次匹配 首碼88為止。 在某實施例c例如’圖13中所圖解闡釋之實施例)中, .1樣辨識處理裔14可係由一控制器或某一其他裝置或系統 • 4機電腦系統94)存取之—型樣辨識裝置93之部 分。舉例而言,雷腦金μ Λ 勒系統94可包含諸如一中央處理單元 (CPU)2G之-處理器,該處理器經由—記憶體管理單元 參(則)96存取- §己憶體95。記憶體%可包含任一適合記憶 /、匕a但不限於靜態隨機存取記憶體(sraM)、 隨機存取Z )¾體(DRAM)或雙倍資料速率⑽r)記憶 體代(例如,DDR1、nr»r»iIn Figure 11, data stream 12 presents a letter "丨" and feature cell 64 identifies a match and is active. In response, the initiation routing matrix 36 can transmit a start nickname to both the first signature cell 66 of the first trailer code 9 and the first feature bank 82 of the second trailer code %. In other instances, more tail codes may be initiated, or multiple first codes may initiate one or more tail codes. Next, as illustrated in Figure 12, data stream 12 presents the letter "〇" to recognition module 22, and feature cell 82 of second tail code 92 detects a match and is active. In response, the initiation routing matrix 36 can initiate the characteristic cell 84 below the second tail code 92. When the feature cell 66 is allowed to become inactive, the search for the first tail code 9〇 can be stopped. The steps illustrated in Figures 1 to 12 can be continued by the letters "and "d"" or the search can continue until the next match of the first code 88 following 1453l9.do« -20- 201033896. In an embodiment c, such as the embodiment illustrated in Figure 13, the .1 identification processor 14 may be accessed by a controller or some other device or system computer system 94). Part of the pattern recognition device 93. For example, the Thunderbolt system 94 may include a processor such as a central processing unit (CPU) 2G that is accessed via a memory management unit (s) 96 - § Remembrance 95 . The memory % may include any suitable memory /, 匕 a but not limited to static random access memory (sraM), random access Z) 3⁄4 body (DRAM) or double data rate (10) r) memory generation (eg, DDR1) ,nr»r»i
DR2、DDR3 或 DDR4)。此外,MMU 96可提供於系統94之_單獨硬體組件(例如,—母板晶片 組之北橋)中或可整合至CPU 20中。 系統94亦可包含—個或多個儲存媒體103,其可儲存可 下載至記憶體95中且可由cpU2〇執行之各種資料及應用程 籲 A指令。此等應用程式指令可包含,但不限於,作業系統 例程、韌體、軟體驅動器及適於配置裝置%之指令(如下 文將更詳細地對其進行論述)。而且,該儲存媒體m可包 含能夠儲存此等指令之任何適當裝置或製件,包含一磁性 或固態硬驅動器、一CD_R〇M、一快閃記憶體或一些其他 光學、磁性或固態媒體。而且,該儲存媒體可包含具 有所有用於提供本文中所述之功能性之應用程式指令之二 單個此裝置’或可包含共同包含該等應用程式指令之多個 裝置。雖然當前將裝置93圖解闡釋為與電腦系統94分離, 145319.doc •21 - 201033896 統94之某些或所有組件 解闡釋且本文中所論述 但應瞭解,可將裝置93及電腦系 (包含但不限於圖13中所明確地圖 之彼等組件)整合至一單個裝置中 在某些實施例中’型樣辨識處理器14或具有型樣辨識處 理器Μ之裝置94可包含複數個暫存㈣精存與以上所閣 述之型樣辨識系統相關之資訊。為促進自暫存㈣讀取資 料及將資料寫人至暫存器97,暫存时取邏輯⑽可管理對 暫存器97之存取。可在硬體中或以任一其他適合方式實施 暫存器存取邏輯98。在各種實施例中,暫存器或暫 存器存取邏輯98可係型樣辨識處理器14之_部分或⑼ 型樣辨識處理器14分離但可由其存取。 一 該複數個暫存H 97可包含儲存匹配結果、計數、配置資 訊、控制資訊及狀態、除錯資訊等之暫存器。與以上所閣 述之型樣辨識過程相關之任何期望之資訊皆可料於暫存 器97中。可儲存於暫存㈣中之大量資料可導致— 數目之暫存器。 MMU 96可使用包含可由CPU 20直接存取之實體記憶體〇 位址之-位址映射99來促進cpu 20對各種記憶體位置(例 如’在記憶體95及暫存器97内)之直接存取。然而,位址 映射"可具有可映射至系統94及其他裝置(例如,裝置93) 之實體圮憶體位置之一有限數目之位址。舉例而言,在$ 些實施例令’系統94可包含一 32位元位址匯流排, 932>te J- w 、儿吁 個相異位址映射至位址映射99中之實體記憶體位置。在 此實施例中,且假定一固定大小之一位址空間,可映射 145319.doc •22- 201033896DR2, DDR3 or DDR4). In addition, the MMU 96 can be provided in a separate hardware component of the system 94 (e.g., a north bridge of a motherboard chipset) or can be integrated into the CPU 20. System 94 can also include one or more storage media 103 that can store various data and application A commands that can be downloaded into memory 95 and that can be executed by cpU2. Such application instructions may include, but are not limited to, operating system routines, firmware, software drivers, and instructions adapted to configure the device (as discussed in more detail below). Moreover, the storage medium m can comprise any suitable device or article capable of storing such instructions, including a magnetic or solid state hard drive, a CD_ROM, a flash memory or some other optical, magnetic or solid state medium. Furthermore, the storage medium may comprise a single device that has all of the application instructions for providing the functionality described herein or may comprise a plurality of devices that collectively include the application instructions. Although device 93 is currently illustrated as being separate from computer system 94, some or all of the components of 145319.doc • 21 - 201033896 system 94 are explained and discussed herein, but it should be understood that device 93 and computer system (including but Not limited to the components of the map as illustrated in Figure 13) integrated into a single device. In some embodiments, the 'type identification processor 14 or the device 94 having the pattern identification processor may include a plurality of temporary storages (4) Accurately store information related to the type identification system described above. To facilitate self-storage (4) reading of data and writing data to the scratchpad 97, the temporary logic logic (10) manages access to the scratchpad 97. The scratchpad access logic 98 can be implemented in hardware or in any other suitable manner. In various embodiments, the scratchpad or register access logic 98 can be separated from, but can be accessed by, the _ portion or the (9) pattern recognition processor 14 of the pattern recognition processor 14. The plurality of temporary storages H 97 may include a temporary storage device that stores matching results, counts, configuration information, control information and status, debug information, and the like. Any desired information relating to the pattern recognition process described above can be found in the scratchpad 97. A large amount of data that can be stored in the temporary storage (4) can result in a number of registers. The MMU 96 can facilitate the direct storage of the CPU 20 for various memory locations (e.g., 'in memory 95 and scratchpad 97') using an address map 99 containing physical memory addresses that are directly accessible by CPU 20. take. However, the address mapping " can have a limited number of addresses that can be mapped to the physical memory location of system 94 and other devices (e.g., device 93). For example, in some embodiments, the system 94 can include a 32-bit address bus, 932>te J-w, and a different address mapped to the physical memory location in the address map 99. . In this embodiment, and assuming a fixed size address space, it can be mapped 145319.doc •22- 201033896
至5己憶體95中之實體位置之位址之數目與可映射至記憶體 95外部(例如’在暫存器9?中)之實體位置之位址之數目呈 反比關係。舉例而言,若將每一位址映射至一一位元組實 體S己憶體位置,則232個可用位址可映射至4GB之記憶體, 且允許CPU 20對4GB之記憶體之直接存取。若將位址映射 99内一相當數目之位址分配至暫存器97,則較少位址將可 用於映射至3己憶體95,此可減小可由cpu 20存取之記憶體 95之量且導致系統94之效能降低。在某些實施例中,系統 及位址映射99之位址空間可透過下文所論述《間接定址 技術來節約。 根據本發明之某些實施例,大多數暫存器97可由系統9 間接存取(且不包含於系統9 4之位址空間或位址映射义 内)’而一特定子組之暫存器97可由系統%直接存取且自 3於系統94之記憶體空間内。此兩種類型之暫存器可分别 :為「間接暫存器」及「直接暫存器」。亦即,為節約— 理系統(例% ’系統94)之記憶體位址空严曰1,大量暫存器 ^經邏輯及/或實體定位以使得其等不可由處理單元直接 二:此等暫存器可具有任一期望之大小,例如,8位元 暫“、16位元暫存器、32位元暫存器、36位元暫存器、 64位元暫存器等等。 ° 可Γ二個實施例中’裝置93包含一單獨位址映射101,其 了用於促進對暫存器97之實體位址之存取,^至 於系統94之位址映射99中之間接暫存器射。 如下文所進-步論述,直接暫存以允許對間接暫存器之 J45319.doc -23· 201033896 存取’且可用於彙集對透過容易存取之直接暫存器存取該 等間接暫存器之所有請求。直接暫存器允許系統94(例 如,CPU 20)之快速存取,但將直接暫存器限定為一子組 暫存盗97減少系統94内用於暫存器97之記憶體位址空間 量。本文中所揭示之間接定址技術在某些實施例中可與一 型樣辨識處理器結合採用,而在不包含此一型樣辨識處理 器之其他實施例中,亦可使用此間接定址。 圖14根據本發明一實施例圖解闡釋具有型樣辨識處理器 14或裝置93之直接及間接暫存器之一系統1〇〇。系統ι〇〇包 含一直接暫存器組(或群組)1〇2(亦稱為一「基本暫存器 組」)及一間接暫存器組(或群組)104〇基本暫存器組1〇2可 包含任一數目之「臨界」暫存器,亦即,系統94(或某一 其他控制器、系統或裝置)之直接可存取性係最合意之彼 等暫存器。在圖14中所圖解闡釋之實施例中,基本暫存器 組102包含六個暫存器,但在其他實施例中基本暫存器組 1〇2中可使用任一數目之暫存器。此外,應瞭解對基本 暫存器組1〇2中所使用之「臨界」暫存器之選擇可基於型 樣辨識處理器Μ及該系統來配置。因此,在其他實施例 中,可省略圖14中之基本暫存器組1〇2之某些暫存器,且 其他暫存器可包含於基本暫存器組1〇2中。 在所圖解闡釋之實施例中,基本暫存器組1〇2包含以下 暫存器:一臨界狀態暫存器106 ; 一臨界控制暫存器. -刺激位元組輸入暫存器110’· 一間接庫選擇暫存器ιΐ2: -間接位址選擇暫存器m;及一間接資料輸入/輸出暫存 145319.doc -24· 201033896 器116。在一個實施例中,基本暫存器組102中之每—暫存 器可係一 32位元暫存器,且可經由一 32位元位址匯流排存 取。此外,暫存器組102中之暫存器可係讀取/寫入暫存 器,從而允許讀取及寫入兩者。如下文所進一步闡述,間 接庫選擇暫存器112、間接位址選擇暫存器ιΐ4及間接資料 輸入/輸出暫存器116幫助存取間接暫存器1〇4。此等三個 暫存器112、114及116可統稱為「間接定址存取暫存 器」。The number of addresses to the physical location in the memory 95 is inversely proportional to the number of addresses that can be mapped to the physical location outside the memory 95 (e.g., in the scratchpad 9?). For example, if each address is mapped to a one-bit tuple entity S, the 232 available addresses can be mapped to 4 GB of memory, and the CPU 20 is allowed to directly store 4 GB of memory. take. If a significant number of addresses in the address map 99 are allocated to the scratchpad 97, fewer addresses will be available for mapping to the 3 memory 95, which may reduce the memory 95 accessible by the CPU 20. The amount and resulting in reduced performance of system 94. In some embodiments, the address space of the system and address map 99 can be saved by the indirect addressing technique discussed below. In accordance with some embodiments of the present invention, most of the registers 97 may be indirectly accessed by the system 9 (and not included in the address space or address mapping of the system 94) and a particular subset of registers. 97 can be accessed directly by system % and from within the memory space of system 94. The two types of scratchpads can be respectively: "indirect scratchpad" and "direct register". That is, in order to save the memory system (example % 'system 94), the memory address is empty, and a large number of registers are logically and/or physically positioned so that they cannot be directly processed by the processing unit: The memory can have any desired size, for example, an 8-bit temporary ", a 16-bit scratchpad, a 32-bit scratchpad, a 36-bit scratchpad, a 64-bit scratchpad, etc. In the two embodiments, the device 93 includes a separate address map 101 for facilitating access to the physical address of the register 97, and to the interposer in the address map 99 of the system 94. As discussed below, direct staging allows access to the indirect scratchpad J45319.doc -23· 201033896 and can be used to aggregate access to the direct scratchpad through easy access. All requests to the scratchpad. The direct register allows for quick access by system 94 (e.g., CPU 20), but limits the direct register to a subset of temporary scams 97 for use in the system 94 for the scratchpad 97 The amount of memory address space. The indirect addressing technique disclosed herein can be distinguished from a type in some embodiments. The processor is used in combination, and in other embodiments that do not include the type identification processor, the indirect addressing may also be used. Figure 14 illustrates a pattern recognition processor 14 or device 93 according to an embodiment of the invention. One of the direct and indirect registers. System 〇〇 contains a direct register group (or group) 1〇2 (also known as a “basic register group”) and an indirect temporary storage. Group (or group) 104 〇 basic register group 1 〇 2 may contain any number of "critical" registers, that is, system 94 (or some other controller, system or device) may directly Accessibility is the most desirable of their registers. In the embodiment illustrated in Figure 14, the basic register set 102 includes six registers, but in other embodiments any number of registers can be used in the basic register set 1-2. In addition, it should be understood that the selection of the "critical" register used in the basic register set 1 can be configured based on the pattern identification processor and the system. Therefore, in other embodiments, some of the scratchpad banks 1〇2 of FIG. 14 may be omitted, and other registers may be included in the basic scratchpad group 1〇2. In the illustrated embodiment, the basic register set 1〇2 includes the following registers: a critical state register 106; a critical control register. - a stimulus byte input register 110'. An indirect library select register ιΐ2: - an indirect address select register m; and an indirect data input/output buffer 145319.doc -24· 201033896. In one embodiment, each of the scratchpad sets 102 can be a 32-bit scratchpad and can be accessed via a 32-bit address bus. In addition, the scratchpad in the scratchpad bank 102 can be a read/write scratchpad, allowing both read and write. As further explained below, the indirect bank select register 112, the indirect address select register ι4, and the indirect data input/output register 116 help access the indirect registers 1〇4. These three registers 112, 114 and 116 can be collectively referred to as "indirect addressed access registers".
臨界狀態暫存器106、臨界控制暫存器1〇8及刺激位元組Critical state register 106, critical control register 1 〇 8 and stimulation byte
輸入暫存器110提供對可由系統94或某—其他控制器快速 存取之功月b及資訊之存取,從而防止與經由間接暫存器 104提供此等功能及資訊相關聯之存取延遲。臨界控制暫 存器108在處理速度係臨界時之型樣匹配作業期間提供臨 界控制位元。舉例而言,此等位元可包含停止/運行、重 設、DMA開始/停止、模式選擇等。任何其他臨界控制位 元可用於臨界控制暫存器108中。 臨界狀態暫存器1G6在型樣匹配作f期間提供臨界狀態 資訊。儲存於暫存ϋ1()6中之狀態資訊位元可係「黏性」 位元(僅在明確請求時才更新)’可係「自動更新」,或可 係從不更新。儲存於暫存器⑽中之狀態位元之實例可包 含位元組排序模式 狀態、匹配狀態、匹配彳貞測等。Input register 110 provides access to power month b and information that can be quickly accessed by system 94 or some other controller, thereby preventing access delays associated with providing such functions and information via indirect register 104. . The critical control register 108 provides a critical control bit during the pattern matching operation when the processing speed is critical. For example, such bits can include stop/run, reset, DMA start/stop, mode selection, and the like. Any other critical control bits can be used in the critical control register 108. The critical state register 1G6 provides critical state information during pattern matching for f. The status information bits stored in the temporary memory 1()6 can be "sticky" bits (updated only when explicitly requested), can be "automatically updated", or can be never updated. Examples of status bits stored in the scratchpad (10) may include byte order mode status, match status, match guess, and the like.
位元組排序選擇、DMA模式、DMA 刺激位元組輸入暫存器11〇提供欲自資料串流Η搜尋: 資料之儲存。將該資料儲存於刺激位元組輸人暫存nn I45319.doc -25- 201033896 中允許發生並行功能,從而加速型樣辨識處理器14之作 業。舉例而言,可在與讀取間接「匹配結果」庫暫存器相 同之時間處理來自資料串流12之資料。 間接暫存器組104可包含包括一個或多個暫存器i 2〇之任 數目之暫存器庫118。下文闡述各種類型之間接暫存器 群組。然而,應瞭解,所闡述之群組僅係例示性且可包含 任何其他暫存器、暫存器群組及/或暫存器庫。間接暫存 器組104可包含一流動保存及恢復群組122、一匹配結果及 除錯群組124、一通電配置群組126及一型樣配置群組 @ 128。流動保存及恢復群組122可包含狀態指示符及計數器 值,例如,臨限計數器、經處理位元組計數器等。匹配結 果及除錯群組124可包含群組邏輯輸出、辨識陣列輸出以 及任何其他結果及輸出。通電配置群組126包含識別且配 置型樣辨識處理器14(例如,裝置能力庫15〇(圖16)、製造 商識別程式碼、系統參數等)之暫存器。最後,型樣配置 群組128包含與型樣辨識過程一起使用之功能及資訊,例 如,辨識陣列狀態、聚合功能等。 〇 間接庫選擇暫存器! 12選擇間接暫存器組1〇4中欲存取之 庫118。可藉由一特定位址值來選擇各種庫118中之每一 · 者,如一庫選擇匯流排線丨19所指示。在一個實施例中, 間接庫選擇暫存器112可係—32位元暫存器。間接位址選-擇暫存器m又將特定暫存器12()設定為欲在由間接庫暫存 器選擇112選擇之暫存器之庫内存取,如暫存器位址匯流 排121所指示°在每-較庫中,該等暫存器以-零位址 145319.doc • 26 · 201033896 p幵’始。間接資料輸入/輸出暫存器116為間接暫存器組刚 提供寫入或讀取功能性,如暫存器資料輸入/輸出匯流排 123所指示。向間接資料輸入/輸出暫存器ιΐ6寫入即將資 料寫入至由間接庫選擇暫存器112及間接位址選擇暫存器 114規定之位址處之暫存器i自間接㈣輸人/輸出暫存 器116讀取即讀取由間接庫選擇暫存器112及間接位址選擇 暫存器114之組合規定之位址處之暫存器。因&,藉由使 用間接庫選擇暫存器112、間接位址選擇暫存器丨14及間接 資料輸入/輸出暫存器116,可將資料寫入至間接暫存器 104或自間接暫存器ι〇4讀取資料。 儘管上文提供型樣辨識處理器14及裝置93之各種特徵之 某二實例但應/主意此等處理器及裝置或其他非型樣辨識 裝置之特定能力及特性可依不同實施例而不同。在某些實 施例中’ 一家族之裝置可共享一組大體類似功能性(例 如’型樣辨識功能性)’但所述家族中之每一裝置可包含 不同數目之組件來提供此等功能性。舉例而言,除了下文 所提供之其他實例外’ 一家族中的一個此裝置可包含大約 100,000個特徵胞30(圖2),而該家族中之另外兩個裝置可 分別包含大約500,000個特徵胞及1,〇〇〇,〇〇〇個特徵胞。如 可瞭解’ 一特定裝置之期望運作通常將相依於該裝置之適 當配置。而且,在一型樣辨識實施例中,型樣辨識裝置93 之準確性將相依於除其他組件外之特徵胞3 〇之一恰當配置 及控制。 因此’根據一個實施例,在圖1 5中大體繪示配置—裝置 145319.doc •27- 201033896 93之一方法130。儘管下文將更詳細地論述方法i3〇之各種 步驟,但方法130大體包含自一記憶體位置(例如,自暫存 器97中之一個或多個暫存器)存取資料之—步驟132,及在 一步驟134中依據所存取資料確定裝置93之能力。方法13〇 還大體包含基於步驟134中所確定之裝置能力配置裝置们 之一步驟136。如決定區塊138所指示,可在結束區塊14〇 處終止之前針對欲配置之任何額外裝置重複步驟132、134 及 136。 舉例說明,在一個實施例中,方法130可用於將暫存器 97中之至少某些暫存器之位元位置索引(例如,映射)至型 樣辨識處理器14之特定電路。一個實施例之暫存器”通常 可劃分成兩種類型之暫存器庫:全異暫存器庫146及公式 暫存器庫148 ^全異暫存器庫146通常包含—個或多個暫存 器庫(例如,一裝置能力庫150),其中此等庫中之每一者中 之暫存器在疋義上可明顯不同於該庫中之其他暫存器。應 注意,裝置能力庫150中之一個或多個暫存器通常以指示 裝置93之能力之值編碼’且可包含唯讀暫存器。對於此等 全異暫存器庫146而言’裝置功能性至暫存器之映射可透 過一表來完成,例如如下表: 表1 :映射一全異庫之實例The byte sort selection, DMA mode, DMA stimulus byte input register 11 provides the data stream search: data storage. The storage of this data in the stimulus byte input temporary storage nn I45319.doc -25- 201033896 allows the parallel function to occur, thereby accelerating the work of the pattern recognition processor 14. For example, the data from data stream 12 can be processed at the same time as the indirect "match result" library register. The indirect register bank 104 can include any number of scratchpad banks 118 including one or more registers i 2 . Various types of indirect scratchpad groups are set forth below. However, it should be understood that the groups set forth are merely illustrative and may include any other register, register group, and/or register bank. The indirect scratchpad set 104 can include a flow save and restore group 122, a match result and debug group 124, a power up configuration group 126, and a type configuration group @128. The flow save and restore group 122 can include status indicators and counter values, such as a threshold counter, a processed byte counter, and the like. The match result and debug group 124 can include the group logic output, the identification array output, and any other results and outputs. The power-on configuration group 126 includes a register that identifies and configures the pattern recognition processor 14 (e.g., device capability library 15 (Fig. 16), manufacturer identification code, system parameters, etc.). Finally, the pattern configuration group 128 contains functions and information for use with the pattern recognition process, such as identifying array status, aggregation functions, and the like.间接 Indirect library selection register! 12 Select the bank 118 to be accessed in the indirect scratchpad group 1〇4. Each of the various banks 118 can be selected by a particular address value, as indicated by a bank selection bus line 丨19. In one embodiment, the indirect bank select register 112 can be a 32-bit scratchpad. The indirect address select-select register m in turn sets the particular register 12() to be accessed within the bank of the register selected by the indirect bank register select 112, such as the scratchpad address bus 121. The indicated values are in the per-repository, and the registers start with the -zero address 145319.doc • 26 · 201033896 p幵'. The indirect data input/output register 116 provides write or read functionality to the indirect scratchpad group as indicated by the scratchpad data input/output bus 123. Write to the indirect data input/output register ι6 to write the data to the register specified by the indirect bank select register 112 and the indirect address select register 114 from the indirect (four) input/ The output register 116 reads and reads the register at the address specified by the combination of the indirect bank select register 112 and the indirect address select register 114. By using the indirect bank select register 112, the indirect address select register 14 and the indirect data input/output register 116, the data can be written to the indirect register 104 or from the indirect temporary The memory ι〇4 reads the data. Although certain examples of the various features of the processor 14 and the device 93 are provided above, it is contemplated that the particular capabilities and characteristics of such processors and devices or other non-patterned devices may vary from embodiment to embodiment. In some embodiments 'a family of devices may share a set of substantially similar functionality (eg, 'type identification functionality'' but each device in the family may include a different number of components to provide such functionality . For example, in addition to the other examples provided below, one of the devices in a family may contain approximately 100,000 characteristic cells 30 (Fig. 2), while the other two devices in the family may contain approximately 500,000 characteristic cells, respectively. And 1, 〇〇〇, 特征 a characteristic cell. As can be appreciated, the desired operation of a particular device will generally depend on the proper configuration of the device. Moreover, in a type identification embodiment, the accuracy of the pattern recognition device 93 will be properly configured and controlled depending on one of the characteristic cells 3 other than the other components. Thus, according to one embodiment, one of the methods 130 of the configuration 145319.doc • 27-201033896 93 is generally illustrated in FIG. Although the various steps of method i3 are discussed in more detail below, method 130 generally includes the step 132 of accessing data from a memory location (eg, from one or more registers in scratchpad 97), And in a step 134, the capabilities of the device 93 are determined based on the accessed data. The method 13A also generally includes a step 136 of configuring the device based on the device capabilities determined in step 134. As indicated by decision block 138, steps 132, 134, and 136 may be repeated for any additional devices to be configured prior to termination at end block 14〇. By way of example, in one embodiment, the method 130 can be used to index (e.g., map) the bit locations of at least some of the registers in the scratchpad 97 to a particular circuit of the pattern recognition processor 14. The register of one embodiment can generally be divided into two types of scratchpad banks: a disparity register library 146 and a formula register library 148. The disparity register library 146 typically contains one or more A scratchpad library (eg, a device capability library 150), wherein the scratchpads in each of the libraries are significantly different from other scratchpads in the library. Note that device capabilities One or more registers in library 150 are typically encoded with a value indicative of the capabilities of device 93 and may include a read-only register. For such disparity register library 146, device functionality to temporary storage The mapping of the device can be done through a table, such as the following table: Table 1: Mapping an instance of a disparate library
暫存器 名稱 暫存器說明 間接位址 Reg 1 Reg 1之功能及/或内容之說明 OxOOOOOOOOh Reg_2 Reg 2之功能及/或内容之說明 0x0000000lh .-- -— Λν ππ ArvnnrvNTU Reg_N | Reg_Ni功能及/或内色— UXvUvvFVlwvflNO 145319.doc -28- 201033896 一全異暫存器庫146中之每-暫存器可包含-獨特說明, 且間接暫存器位址可以—非八 相關聯。 '方式直接與此專獨特說明 ^ ’不同於全異暫存器庫146’公式暫存n庫148可包 纟具有在定義上與該庫内之其他暫存器大致相同之暫存器 ^暫存1"庫。舉例而言,用於配置型樣辨識處理器14以搜 哥特疋貝料型樣之暫存器(例如,型樣配置群組128),或用 φ於管理資料流動保存及恢復作業之暫存器(例如,暫存器 群組122)可僅在暫存器(及其位元)至一個或多個邏輯胞(例 如,特徵胞30、搜尋項胞54、債測祕、啟動路由胞78、 其他陣列之邏輯胞)或其它組件之映射方面彼此不同。在 某些實施例中,-些或所有公式暫存器庫148可與上文關 於圖2至圖12所閣述之各種邏輯胞陣列相關聯。此等邏輯 胞可包含,但不限於,搜尋項陣列32M貞測陣歹…、啟動 路由矩陣36、聚合路由矩陣42、臨限邏輯矩陣料、邏輯積 ❿矩陣46、邏輯總和矩陣48及初始化路由矩陣50之邏輯胞。 裝置93之各種邏輯胞(例如,型樣辨識處理器从彼等邏 輯胞)可分別接收獨特控制或配置信號以促進裝置功能 性,且此等信號可儲存在暫存器97中。 舉例而言…暫存器庫中之某些暫存器位元可用於設定 特徵胞63(圖6)來偏測字母「b」’該庫令之其他暫存器位 元可設定特徵胞64來偵測字母% ,而該庫中之又其他 暫存器位元可設定特徵胞66來偵測字母「§」。同樣,另 -暫存器庫中之其他暫存器位元可控制透過—邏輯胞陣列 145319.doc -29- 201033896 之前向路由及向後路由信號,例如,啟動路由矩陣%(圖 10)。在至少一個實施例中,方法130可用於藉由將一些或 所有公式暫存器庫148索引至型樣辨識處理器14之邏輯胞 或其他組件以使得將儲存在公式暫存器庫148之暫存器中 之控制信號路由到適當邏輯胞或組件來配置裝置%。 -既定庫中之暫存器之數目可由每一暫存器之寬度及欲 被配置之-陣列中之邏輯胞之行數目及列數目支配。舉例 而言’在-個實施财,啟動路由矩陣36可包含512個行 及8個列的啟動路由胞78,總共達4,〇96個啟動路由胞μ。 每-啟動路由胞78可分別藉由對該啟動路由胞係獨特之某 -數目之-個或多個控制信號控制,例如—組三個控制信 號 CTL-1、CTL-2及 CTL-3 〇 在此-實例中,該等控制信號可儲存在個別暫存器庫 :。若三個控制信號暫存器庫t之每—者包含处元暫存 器’且需要-個暫存器位元來儲存一特定啟動路由胞之每 -控制信號,每控制信號暫存器庫之位元數目將等於啟動 路由胞78之數目,且每一庫中之暫存器之數目將等於單元 78之總數目除以暫存器之寬度。因此,在本實财,暫存 器97中之某些暫存器可組織成一 128個暫存器之。孔]暫存 器庫,其包含用於啟動路由矩陣78之全部咖個㈤控 制信號位元;-128個暫存器之咖_2暫存器庫,其包含用 於啟動路由矩陣78之全部CTL-2控制信號位元;ϋ請 暫存器之CTL-3暫存轉,其類似地包含用於啟動路由矩 陣78之全部瓜·3控制信號位心儘管本文中出於清晰之 145319.doc -30- 201033896 目的已提供了某些實例,但應注意一裝置可具有根據儲存 在該裝置之暫存器中之控制信號控制之眾多其他邏輯胞或 組件。 如上文大體所述,不同裝置93可具有不同特性、能力或 用於提供此等能力之不同數目之組件。相關於型樣辨識實 施例’此等裝置之型樣辨識處理器14可包含除其特徵胞30 之總數目外之眾多差異。舉例而言,如在圖17中所大體繪 不,型樣辨識處理器14之電路可被劃分成一個或多個邏輯 區塊154,其每一者皆具有如上文關於圖2到圖12所論述之 一辨識模組22及一聚合模組24。此外,此等型樣辨識處理 器可在其所包含之邏輯區塊之數目以及該等邏輯區塊中之 每一者之特性方面不同。此等差異之非限制實例可係每區 塊特徵胞30之數目 之數目(例如,圖 目、每區塊前向及反向啟動及/或路由線Register Name Register Description of the function and/or content of the indirect address Reg 1 Reg 1 OxOOOOOOOOh Description of the function and / or content of Reg_2 Reg 2 0x0000000lh .-- -- Λν ππ ArvnnrvNTU Reg_N | Reg_Ni function and / Or inner color - UXvUvvFVlwvflNO 145319.doc -28- 201033896 Each of the disparity register libraries 146 may contain a unique description, and the indirect register address may be - not eight associated. 'The mode is directly related to this unique description ^ 'Different from the disparity register library 146' formula temporary storage n library 148 can have a temporary storage device with the same definition as other scratchpads in the library. Save 1" library. For example, it is used to configure the pattern recognition processor 14 to search for the register of the Gothic type (for example, the pattern configuration group 128), or to temporarily save and restore the operation data with φ. The registers (eg, the register group 122) may be only in the scratchpad (and its bits) to one or more logical cells (eg, the signature cell 30, the search term cell 54, the fingerprint test, the boot route cell) 78. Logical cells of other arrays or other components are mapped differently from each other. In some embodiments, some or all of the formula register banks 148 may be associated with the various logical cell arrays described above with respect to Figures 2-12. Such logical cells may include, but are not limited to, a search term array 32M, a start routing matrix 36, an aggregate routing matrix 42, a threshold logical matrix, a logical product matrix 46, a logical sum matrix 48, and an initialization route. The logical cell of matrix 50. The various logic cells of device 93 (e.g., the pattern recognition processor from their logic cells) can receive unique control or configuration signals, respectively, to facilitate device functionality, and such signals can be stored in scratchpad 97. For example, some of the scratchpad bits in the scratchpad library can be used to set the characteristic cell 63 (Fig. 6) to bias the letter "b". The other scratchpad bits of the bank can set the characteristic cell 64. To detect the letter %, and other scratchpad bits in the library can set the feature cell 66 to detect the letter "§". Similarly, other scratchpad bits in the scratchpad library can control the forward-routed and backward routing signals through the logical-cell array 145319.doc -29- 201033896, for example, starting the routing matrix % (Figure 10). In at least one embodiment, the method 130 can be used to index some or all of the formula register library 148 to the logic cell or other component of the pattern recognition processor 14 such that it will be stored in the formula register library 148. The control signals in the registers are routed to the appropriate logical cells or components to configure the device %. - The number of scratchpads in a given bank can be dictated by the width of each register and the number of rows and columns of logical cells to be configured in the array. For example, in the implementation, the boot routing matrix 36 may include 512 rows and 8 columns of boot routing cells 78, for a total of 4, 〇 96 boot routing cells μ. Each of the start-up routing cells 78 can be controlled by one or more control signals unique to the start-up routing cell, for example, a set of three control signals CTL-1, CTL-2, and CTL-3. In this example, the control signals can be stored in an individual register bank: If each of the three control signal register banks t contains a location register and requires a register bit to store a specific control channel, each control signal, each control signal register bank The number of bits will be equal to the number of boot routing cells 78, and the number of registers in each bank will be equal to the total number of cells 78 divided by the width of the scratchpad. Therefore, in this real money, some of the registers in the scratchpad 97 can be organized into a 128 temporary register. a hole] scratchpad library containing all of the five (5) control signal bits for starting the routing matrix 78; - 128 registers of the scratchpads of the scratchpad, which contain all of the routing matrix 78 CTL-2 control signal bit; request CTL-3 temporary transfer of the scratchpad, which similarly contains all the gua 3 control signal bits used to start the routing matrix 78, although this is for clarity 145319.doc -30- 201033896 OBJECTS Some examples have been provided, but it should be noted that a device may have numerous other logical cells or components that are controlled according to control signals stored in the registers of the device. As noted above, different devices 93 may have different characteristics, capabilities, or different numbers of components for providing such capabilities. The pattern recognition processor 14 associated with the pattern recognition embodiment can include a number of differences in addition to the total number of characteristic cells 30. For example, as generally depicted in FIG. 17, the circuitry of the pattern recognition processor 14 can be divided into one or more logic blocks 154, each having the same as described above with respect to Figures 2 through 12. One of the identification modules 22 and an aggregation module 24 is discussed. Moreover, such pattern recognition processors may differ in the number of logical blocks they contain and the characteristics of each of the logical blocks. A non-limiting example of such differences may be the number of feature cells 30 per block (e.g., graphics, forward and reverse start per block, and/or routing lines)
❿ 或每區塊臨限計數器之數目。❿ or the number of threshold counters per block.
145319.doc 料之裝置驅動器或其他軟體來 •31 - 201033896 存取。在一型樣辨識裝置93之一個實例中,一裝置能力庫 150可包含以下暫存器: 表2 :裝置能力暫存器匯總 暫存器 名稱 暫存器說明 間接位址 區塊 裝置中所含有之邏輯區塊之數目 OxOOOOOOOOh FC# 每區塊特徵胞之數目 0x00000001h FP# 每區塊前向啟動/路由線之數目 0x00000002h RP# 每區塊反向啟動/路由線之數目 0x00000003h GLL# 群組邏輯線之數目 0x00000004h CTR# 每區塊臨限計數器之數目 0x00000005h Bits# 每臨限計數器之位元之數目 0x00000006h P# 每區塊邏輯積之數目 0x00000007h SP# 每區塊積之邏輯總和之數目 0x00000008h RSV# 每區塊重新初始化線之數目 0x00000009h P#位元 經處理位元組計數器中之位元之數目 OxOOOOOOOAh M#位元 匹配計數器中之位元之數目 OxOOOOOOOBh FIFO# 匹配庫FIFO暫存器深度 OxOOOOOOOCh 當然’將瞭解,裝置能力庫150可包含少於上文表中所指 示之所有暫存器,或除上文所指示之彼等暫存器外或代替 上文所指示之彼等暫存器,可包含其他暫存器。基於此資 料’一配置系統(例如,圖13之系統94)可在步驟134中確定 裝置93之特性及能力且然後在步驟136中配置裝置93。如 將瞭解’此確定及配置可由系統94根據儲存在裝置94内且 由CPU 20執行之各種軟體或韌體來執行。 在一個實施例中,配置裝置93之步驟136可經由圖18中 所大體圖解閣釋之方法160來自動執行。特定而言,在此 145319.doc -32- 201033896 實施例中,可在一步驟162中提供各種配置方程式。舉例 而言,此等配置方程式可儲存於系統94之儲存媒體1〇3 中。此等配置方程式可包含通常與欲被配置之一裝置93特 之性相關聯之各種參數。舉例而言,在一個實施例中,此 等參數可包含以下參數: 表3 :裝置能力參數定義 暫存器 名稱 說明 參數 _名稱— N I 狄索引名稱、 及值方程式 η 〜ιαχ=(Ν-1) _0<=»<=(Ν-1) ι 4αχ=(Ι-1) 〇<=ί<=(ι_ι) 區塊 裝置中邏輯區塊之數目 FC# 每區塊特徵胞之數目 FP# 每區塊前向啟動/路由線之數目 Jr _____ .Jr Jfnax=(Jrl) ο<=/«Λη RP# 每區塊反向啟動/路由線之數目 Jr ---- \ J /___ J'r j.rmax=(Jr-l) 0<=!/r<=(Jr-l) GLL# 每區塊群組邏輯線之數目 Μ m »W=(M-1) 0<=w<=(M-l) CTR# 每區塊臨限計數器之數目 C c Cmax—(C-l) 0<=c<=(C-l) Bits# 每臨限計數器位元之數目 B b ^max=(B-l) 0<=Z)<=(B-1) P# 每區塊邏輯積之數目 P Pmax=(P-l) 〇<=/?<=(P-l) SP# 每區塊積之邏輯總和之數目 SP Spma^iSY-l) 0<=i/K=(SP-l) RSV# 每區塊重新初始化線之數目 RSV rsv ^vmax=(RSV-l) 0<=riv<=(RSV-1) 145319.doc • 33- 201033896 表4 :固定參數 參數 名稱 參數說明 索引範圍及 值方程式 sb 8位元刺激位元組之8至256解; 0<=^<=255(00h 至 FFh) INT 暫存器位元寬度 所有暫存器為32(20h) T1 臨限邏輯線 (始終等於GLL之數目,Μ) τι 77腿=(Μ-1) 0<=27<=(Μ-1) 步驟162中所提供之該等配置方程式可適於根據裝置93 之特定能力來配置裝置93。在具有上文在表3及表4中所闡 述之參數之一實施例中,步驟162中所提供之配置方程式 可包含以下表中所提供之用於計算欲包含於公式暫存器庫 148之各種暫存器庫中之暫存器數目之彼等配置方程式。 表5:用於每公式庫之暫存器總數目之方程式145319.doc device driver or other software to come • 31 - 201033896 access. In one example of a type identification device 93, a device capability library 150 can include the following registers: Table 2: Device Capability Register Summary Register Name Register Description Indirect Address Block Device Number of logical blocks OxOOOOOOOOh FC# Number of characteristic cells per block 0x00000001h FP# Number of forward start/route lines per block 0x00000002h RP# Number of reverse start/route lines per block 0x00000003h GLL# Group logic Number of lines 0x00000004h CTR# Number of thresholds per block 0x00000005h Bits# Number of bits per threshold counter 0x00000006h P# Number of logical products per block 0x00000007h SP# Number of logical sums per block product 0x00000008h RSV # Number of reinitialization lines per block 0x00000009h Number of bits in P# bit processed byte group OxOOOOOOOAh Number of bits in M# bit matching counter OxOOOOOOOBh FIFO# Matching library FIFO register depth OxOOOOOOOCh Of course, it will be appreciated that the device capability library 150 may contain less than all of the registers indicated in the above table, or in addition to the above Outside of their registers or register their place of the above indicated, may contain other register. Based on this information, a configuration system (e.g., system 94 of FIG. 13) can determine the characteristics and capabilities of device 93 in step 134 and then configure device 93 in step 136. As will be appreciated, this determination and configuration can be performed by system 94 in accordance with various software or firmware stored within device 94 and executed by CPU 20. In one embodiment, the step 136 of the configuration device 93 can be performed automatically via the method 160 generally illustrated in FIG. In particular, in the embodiment of 145319.doc-32-201033896, various configuration equations may be provided in a step 162. For example, such configuration equations can be stored in storage medium 1〇3 of system 94. These configuration equations may include various parameters typically associated with the characteristics of one of the devices 93 to be configured. For example, in one embodiment, these parameters may include the following parameters: Table 3: Device Capability Parameter Definition Scratchpad Name Description Parameter_Name - NI Di index name, and value equation η ~ιαχ=(Ν-1 ) _0<=»<=(Ν-1) ι 4αχ=(Ι-1) 〇<=ί<=(ι_ι) Number of logical blocks in the block device FC# Number of characteristic cells per block FP # Number of forward start/route lines per block Jr _____ .Jr Jfnax=(Jrl) ο<=/«Λη RP# Number of reverse start/route lines per block Jr ---- \ J /___ J 'r j.rmax=(Jr-l) 0<=!/r<=(Jr-l) GLL# Number of logical lines per block group Μ m »W=(M-1) 0<=w< =(Ml) CTR# The number of threshold counters per block C c Cmax—(Cl) 0<=c<=(Cl) Bits# The number of threshold bits per threshold B b ^max=(Bl) 0<=Z)<=(B-1)P# Number of logical products per block P Pmax=(Pl) 〇<=/?<=(Pl) SP# Number of logical sums per block product SP Spma^iSY-l) 0<=i/K=(SP-l) RSV# Number of reinitialization lines per block RSV rsv ^vmax=(RSV-l) 0<=riv<=(RSV-1) 145319 .doc • 33- 20 1033896 Table 4: Fixed parameters Parameter name Parameter Description Index range and value equation sb 8-bit imaginary byte 8-to-256 solution; 0<=^<=255(00h to FFh) INT register bit width all The scratchpad is 32 (20h) T1 threshold logic line (always equal to the number of GLL, Μ) τι 77 leg = (Μ-1) 0<=27<=(Μ-1) These are provided in step 162 The configuration equations can be adapted to configure the device 93 based on the particular capabilities of the device 93. In one embodiment having the parameters set forth above in Tables 3 and 4, the configuration equations provided in step 162 may include the calculations provided in the following table for calculation to be included in the formula register library 148. These configuration equations for the number of registers in the various scratchpad banks. Table 5: Equations for the total number of scratchpads per formula library
庫名稱 完整「說明性」庫名稱 用於計算該庫中之暫存 器數目之方程式 型樣辨識群組 RES_MEM 潛在回應記憶體型樣庫 N*RC*256 INI—ST 辨識陣列初始狀態庫 N*RC ~~ AF 在此前向路由線上啟動 N*RC*Jf SF 在此前向路由線上發送輸出 N*RC*Jf — PF 繼續傳遞此前向路由線 N*RC*Jf ~~~ AR 在反向路由線上啟動 N*RC*Jr ~~ ~~— SR 在此反向路由線上發送輸出 N*RC*Jr 〜—· PR 繼續傳遞此反向路由線 N*RC*Jr — LnL 辨識陣列輸出之經鎖存或非鎖存 版本 N*RC*M ~~~ 145319.doc -34- 201033896 庫名稱 完整「說明性」庫名稱 用於計算該庫中之暫存 器數目之方程式 型樣辨識群组 ΕΝΑ 啟用辨識陣列輸出聚合 N*RC*M CRB 在此RSV信號上重新初始化 N*RC*M TLMC 針對每一臨限CTR之初始計數值 N*C [每計數器位元<=INT] SelLPM 選擇此T1線包含於邏輯積項中 N*P [77 線 <=INT] DnDLPM 選擇T1或NOT-T1線包含於邏輯積 項中 N*P [77 線 <=INT] SelLSM 選擇P線包含於積之邏輯總和項中 N*SP [P 線 <=INT] DnDLSM 選擇P或NOTJP包含於積之邏輯總 和項中 N*SP [P 線 <+INT] RiRM 在此SP項上重新初始化(輸出RSv 信號) N*RSV [SP 線 <=INT] 流動保存及恢德漭組 ACT_ST 當前活動狀態庫 N*RC LATCH 鎖存器矩陣狀態 N*RC TH_VAL 臨限計數器值 N*C [每計數器位元<=INT] _一 匹配結果及除錯群組 MATCH 匹配結果庫 N*13 GLL_OUT 群组邏輯線輸出 N*1 [M<=INT] REC—OUT 辨識陣列輸出 N*RC CUR_MM 當前匹配矩陣 N*4 對於上文方程式,因數Rc可指代暫存器行數目且包含 在對一特定暫存器庫所需之暫存器數目可相依於一邏輯區 145319.doc •35· 201033896 之數目之考量 目不相依於暫 塊中之特徵胞數目及一單個暫存器中位元 中。RC之廣義方程式(其允許特徵胞(j)之數 存器中位元之數目(INT))可由以下提供:Library name complete "descriptive" library name is used to calculate the number of scratchpads in the library. Equation type identification group RES_MEM Potential response memory type library N*RC*256 INI-ST Identification array initial state library N*RC ~~ AF starts N*RC*Jf SF on the previous route line. Sends the output N*RC*Jf on the previous route line. PF continues to forward the previous route line N*RC*Jf ~~~ AR starts on the reverse route line. N*RC*Jr ~~ ~~— SR sends the output N*RC*Jr on this reverse routing line~—· PR continues to pass this reverse routing line N*RC*Jr — LnL recognizes that the array output is latched or Non-latching version N*RC*M ~~~ 145319.doc -34- 201033896 Library name Complete "Descriptive" library name Equation type identification group for calculating the number of scratchpads in the library 启用 Enable identification array Output Aggregation N*RC*M CRB Reinitialize N*RC*M TLMC on this RSV signal Initial count value N*C for each threshold CTR [per counter bit <=INT] SelLPM Select this T1 line to include In the logical product term N*P [77 lines <=INT] DnDLPM selects the T1 or NOT-T1 line to be included in the logical product N*P in the item [77 line <=INT] SelLSM Select the P line to be included in the logical sum of the product N*SP [P line <=INT] DnDLSM Select P or NOTJP to be included in the logical sum of the product N *SP [P line <+INT] RiRM is reinitialized on this SP item (output RSv signal) N*RSV [SP line <=INT] Flow save and recovery group ACT_ST Current active state library N*RC LATCH Latch matrix state N*RC TH_VAL Threshold counter value N*C [per counter bit <=INT] _ a match result and debug group MATCH match result bank N*13 GLL_OUT group logic line output N* 1 [M<=INT] REC—OUT Identification Array Output N*RC CUR_MM Current Matching Matrix N*4 For the above equation, the factor Rc can refer to the number of scratchpad rows and is included in a specific scratchpad library. The number of registers can be dependent on a logical region 145319.doc • 35· 201033896 The number of considerations does not depend on the number of signature cells in the temporary block and in a single scratchpad median. The generalized equation of RC (which allows the number of bits (INT) in the number of registers of the characteristic cell (j) can be provided by:
(I+INT-1)/INT=RC 此廣義方程式允許將針對一特定暫存器庫之所有資料位元 「封包」在最小數目之暫存器中。然而,在—些實施: 中,I可限為INT之整數倍,且RC可定義為如下:(I+INT-1)/INT=RC This generalized equation allows all data bits for a particular scratchpad library to be "packed" into a minimum number of registers. However, in some implementations: I can be limited to an integer multiple of INT, and RC can be defined as follows:
(I/INT)=RC 此外,應注意表5之暫存器庫中之每一者可包含與上述 裝置中之每一區塊之功能相關聯之所有暫存器,其中一鄰 接位址空間跨越區塊邊界。舉例而言’用於—型樣辨識處 理器之多個邏輯區塊之所有入1?暫存器可包含於AF暫存器 庫中。同# ’根據上文方程式,將明瞭,各種暫存器庫彼 此相比較可具有相同或不同數目之暫存器。 在步驟164中,配置系統或裝置(例如,系統94)可依 據從裝置能力庫150存取之暫存器資料來界定各種裝置參 數之值,包含但不限於上文所論述之彼等參數。然後,可 使用該等配置方程式在一步驟166中配置裝置Μ。舉例而 言’在-個實施例中,該等方程式可促進公式暫存器庫 148之位元至本文所論述之型樣辨識電路之特定部分之映 射。在此一實施例中,步驟162中所提供之該等配置方程 式可進-步包含用於索引(例如,映射)公式暫存器庫ι48中 之每一位元之方程式。 145319.doc -36- 201033896(I/INT)=RC In addition, it should be noted that each of the scratchpad banks of Table 5 may include all of the registers associated with the function of each of the above-described devices, one of which has a contiguous address space. Cross the block boundary. For example, all of the input buffers of the plurality of logical blocks used in the pattern recognition processor may be included in the AF scratchpad library. As with #', it will be apparent from the above equation that the various register banks can have the same or a different number of registers compared to each other. In step 164, the configuration system or device (e.g., system 94) can define values for various device parameters based on the scratchpad data accessed from device capability library 150, including but not limited to those parameters discussed above. The device 然后 can then be configured in a step 166 using the configuration equations. By way of example, in one embodiment, the equations may facilitate mapping of bits of the formula register bank 148 to particular portions of the pattern recognition circuit discussed herein. In this embodiment, the configuration equations provided in step 162 may further include equations for indexing (e.g., mapping) each bit in the formula register library ι48. 145319.doc -36- 201033896
表6:用於索引至暫存器庫中之方程式之實例 庫名稱 索引參數 用於索引至一特定點之方程式 RES—MEM n,I,sh (常數INT) 位元=〇·對INT的求模) 庫暫存器=1:(^^(^256)+((//11^1^256)+(^)] INT_ST n, i (常數INT) 位元=〇·對INT的求模) 庫暫存器=[〇?*RC)+(//lNT)] AF,SF, 及PR N,I,jf (常數I,Jf, 及 INT) 位元=(樹INT的求模) 庫暫存器=[(«*RC* Jf)+汾/INT)* AR,SR, 及PR h jr (常數I,jr, 及 INT) 位元=〇·對INT的求模) 庫暫存器=[(«*RC* JJK/J ENA, CRB, 及LnL n, i, m (常數I及 INT) 位元=(ί對INT的求模) 庫暫存器=[(«*RC*M>K〇yiNTf M)+(w)] TLMC n, b, c (常數C及 INT) 位元=〇對INT的求模) 庫暫存器=[(«*C)+c] SelLPM 及 DnDLPM n, Tl, p (常數M,P, 及 INT) 位元=(77對INT的求模) 庫暫存器=[(«*((M+INT-iyiNT)*P)+ ((77/INT)*P)+(p)] SelLSM 及 DnDLSM n, p, sp (常數P,SP, INT) 位元=〇對INT的求模) 庫暫存器=[〇2*((P+INT-iyiNT)*SP;)+ ((p/INT)*SP)+㈣] RiRM n, sp, rsv (常數SPA INT) 位元=0/7對INT的求模) 庫暫存器=[(«*(SP+INT-1)/INT)*RSV)+ ((5p/INT)*RSV)+(m;)] REC_OUT n, i (常數INT) 位元=〇對INT的求模) 庫暫存器=[(„*rC)+〇tint)] GLL一OUT n, m (常數INT) 位元=〇«對INT的求模) 庫暫存器=[(a〇+((w/INT)J 145319.doc -37- 201033896 庫名稱 索引參數 用於索引至一特定點之方程式 ACT_ST n, i (常數ΙΝΤ) 位元=〇對ΙΝΤ的求模) 庫暫存器=[(#RC)+(i/INT)] LATCH η, i (常數ΙΝΤ) 位元=(樹ΙΝΤ的求模) 庫暫存器=[(«*RC)+(i/INT)] TH_VAL η, b, c (常數C及 ΙΝΤ) 位元=(6對ΙΝΤ的求模) 庫暫存器=[(n*C)+c] 如從上文對某些實施例實例之論述中將瞭解,系統94可 從裝置93本身讀取裝置93之能力,且然後基於其自身獨特 能力配置裝置93。在一額外實施例中,系統94可配置具有 不同特性或能力之一裝置家族168中之任何或所有裝置。 舉例而言,除了能夠配置可具有100,〇〇〇個特徵胞之一裝 置93之外,系統94亦可配置分別具有(例如)500,000個及 1,000,000個特徵胞之裝置170及172。系統94可存取家族 168中之每一裝置之能力且基於其自身獨特能力配置彼裝 置。由於每一裝置之配置係基於該裝置之能力可適應,因 此,系統94能夠實現靈活且適應性地配置裝置家族168中 之每一裝置而不需要修改用於與此等裝置通信之系統94之 軟體或驅動器。此外,與其中迫使用於各種功能之暫存器 處於一預定位址處之一僵硬配置系統相比,本技術促進對 家族168中之其他裝置之實驗及此後之開發,而亦不需要 修改配置軟體。最後,應注意,在至少一個實施例中,本 文所揭示之技術中之任一者或所有者皆可與以下共同未決 專利中所述之技術中之一者或多者結合使用:2008年10月 18 日提出申請且名稱為「System and Method of Indirect 145319.doc -38- 201033896Table 6: Example library index for indexing to the scratchpad library. The index parameter is used to index the equation to a specific point RES_MEM n, I, sh (constant INT) bit = 〇 · INT模) Library register = 1: (^^(^256)+((//11^1^256)+(^)] INT_ST n, i (constant INT) bit = 〇 · modulo INT ) Library register = [〇?*RC)+(//lNT)] AF, SF, and PR N, I, jf (constant I, Jf, and INT) Bit = (modeling of tree INT) Library Register = [(« * RC * Jf) + 汾 / INT) * AR, SR, and PR h jr (constant I, jr, and INT) Bit = 〇 · modulo INT) Library register =[(«*RC* JJK/J ENA, CRB, and LnL n, i, m (constant I and INT) bit = (ί modulo INT) Library register = [(«*RC*M> ;K〇yiNTf M)+(w)] TLMC n, b, c (constant C and INT) Bit = 求 modulo INT) Library register =[(«*C)+c] SelLPM and DnDLPM n, Tl, p (constant M, P, and INT) Bit = (77 for INT modulo) Library register = [(«*((M+INT-iyiNT)*P)+ ((77/ INT)*P)+(p)] SelLSM and DnDLSM n, p, sp (constant P, SP, INT) Bit = 求 modulo INT) Library register = [〇2*((P+INT -iyiNT)*SP;)+ ((p/INT)*SP)+(4)] RiRM n, sp, rsv (constant SPA INT) Bit=0/7 modulo INT) Library register =[(«*(SP+INT-1) )/INT)*RSV)+ ((5p/INT)*RSV)+(m;)] REC_OUT n, i (constant INT) Bit = 求 modulo INT) Library register = [(„* rC)+〇tint)] GLL-OUT n, m (constant INT) Bit = 〇« modulo INT) Library register =[(a〇+((w/INT)J 145319.doc -37 - 201033896 The library name index parameter is used to index the equation to a specific point ACT_ST n, i (constant ΙΝΤ) bit = 求 求 )) library register = [(#RC) + (i / INT)] LATCH η, i (constant ΙΝΤ) bit = (tree modulo) library register =[(«*RC)+(i/INT)] TH_VAL η, b, c (constant C and ΙΝΤ) bits = (6 pairs of modulo modulo) Library register = [(n * C) + c] As will be appreciated from the discussion of certain embodiment examples above, system 94 can read device 93 from device 93 itself. The ability, and then configures the device 93 based on its own unique capabilities. In an additional embodiment, system 94 can be configured with any or all of the devices family 168 having different characteristics or capabilities. For example, system 94 can be configured with devices 170 and 172 having, for example, 500,000 and 1,000,000 feature cells, in addition to being configurable to have 100, one feature cell device 93. System 94 can access the capabilities of each of the family 168 and configure the device based on its own unique capabilities. Since the configuration of each device is adaptable based on the capabilities of the device, system 94 enables flexible and adaptive configuration of each of device families 168 without the need to modify system 94 for communicating with such devices. Software or drive. Moreover, the present technology facilitates experimentation and subsequent development of other devices in the family 168 as compared to a rigid configuration system in which the scratchpad for various functions is forced to be at a predetermined address, without modifying the configuration. software. Finally, it should be noted that in at least one embodiment, any one or more of the techniques disclosed herein may be used in conjunction with one or more of the techniques described in the following copending patents: 2008 10 Application dated 18th and named "System and Method of Indirect 145319.doc -38- 201033896
Register Access」之第12/253,966號共同未決美國專利申請 案及2008年10月18曰提出申請且名稱為「IndirectRegistered Access No. 12/253,966, co-pending U.S. Patent Application and October 18, 2008, filed with the name "Indirect
Access Method and System」之第 12/253,967號共同未決美 .國專利申請案。 、、 儘管可易於對本發明作出各種修改及替代形式但特定 實施例已經以實例方式顯示於圖式中並詳細闡述於本文 中。然❿,應肖冑,並不意欲將本發明限定於所揭示之特 ❿ $形式°而是’本發明將涵蓋歸屬於下文隨时請專利範 圍所界定之本發明精神及範疇内之所有修改、等效内容及 替代方案。 【圖式簡單說明】 圖1繪示搜尋一資料串流之系統之一實例; 圖2繪示圖〖之系統中之一型樣辨識處理器之一實例; 圖3繪示圖2之型樣辨識處理器中之一搜尋項胞之一實 例; • 圖4及圖5繪示針對—單個字元搜尋資料串流之圖3之搜 尋項胞; 圖6至圖8繪示包含數個搜尋項胞之一辨識模組針對一字 對資料串流進行搜尋; 圖9繪示經配置以針對兩個字並行地對資料串流進行搜 尋之辨識模組; 圖W至圖12繪示根據規定具有相同首碼之多個字之一搜 尋準則進行搜尋之辨識模組; 圖13根據本發明之一實施例繪示一型樣辨識裝置,其包 145319.doc -39- 201033896 含圖2之該型樣辨識處理器及與一基於處理器之系統通信 之一組暫存器; 圖14根據一個實施例圖解闡釋具有圖13之型樣辨識裝置 之直接及間接暫存器之一系統; 圖15是根據本發明之一實施例配置一裝置(例如,圖13 之型樣辨識裝置)之一方法之一流程圖; 圖16根據一個實施例圖解闡釋將全異暫存器庫及公式暫 存器庫包含在圖13之裝置之暫存器中; 圖17根據一個實施例繪示圖2之型樣辨識處理器之額外 細節; 圖18圖解闡釋藉由使用參數方程式以一可適應方式配置 圖13之裝置之一方法之一個實例;及 圖19根據一個實施例大體繪示系統94配置一裝置家族中 之一個或多個不同裝置之能力。 【主要元件符號說明】 10 系統 12 資料串流 14 型樣辨識處理器 16 搜尋準則 18 編譯器 20 中央處理單元 22 辨識模組 24 聚合模組 26 輸出匯流排 145319.doc 201033896 ❹ 28 列解碼器 30 特徵胞 32 搜尋項陣列 34 偵測陣列 36 啟動路由矩陣 37 輸入導體 38 伯測匯流排 40 鎖存器矩陣 42 聚合路由矩陣 44 臨限邏輯矩陣 46 邏輯積矩陣 48 邏輯總和矩陣 50 初始化路由矩陣 51 輸出緩衝器 53 群組邏輯線 54 搜尋項胞 56 輸出導體 58 記憶體胞 60 導體 62 導體 63 特徵胞 64 特徵胞 66 特徵胞 68 偵測胞 145319.doc -41 201033896 70 記憶體胞 72 導體 74 導體 75 第一搜尋準則 76 第二搜尋準則 78 啟動路由胞 80 特徵胞 82 特徵胞 84 特徵胞 86 特徵胞 88 首碼 90 尾碼 92 尾碼 93 型樣辨識裝置 94 系統 95 記憶體 96 記憶體管理單元 97 暫存器 98 暫存器存取邏輯 99 位址映射 100 系統 101 單獨位址映射 102 直接暫存器組(或群組) 103 儲存媒體 145319.doc -42- 201033896 104 間接暫存器組(或群組) 106 臨界狀態暫存器 108 臨界控制暫存器 110 刺激位元組輸入暫存器 112 間接庫選擇暫存器 114 間接位址選擇暫存器 116 間接資料輸入/輸出暫存器 參 118 暫存器庫 120 暫存器 121 暫存器位址匯流排 122 流動保存及恢復群組 123 暫存器資料輸入/輸出匯流排 124 匹配結果及除錯群組 126 通電配置群組 128 型樣配置群組 參 146 全異暫存器庫 148 公式暫存器庫 150 裝置能力庫 * 154 邏輯區塊 - 168 裝置家族 170 裝置 172 裝置 145319.doc -43-Access Method and System, No. 12/253,967, unpublished US patent application. The present invention has been shown by way of example in the drawings, and </ RTI> </ RTI> </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; , equivalent content and alternatives. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates an example of a system for searching for a data stream; FIG. 2 illustrates an example of a pattern recognition processor in the system of FIG. 2; FIG. 3 illustrates the pattern of FIG. Identifying one of the instances of the search cell in the processor; • Figures 4 and 5 depict the search term cell of Figure 3 for a single character search data stream; Figures 6-8 illustrate several search terms One of the cell identification modules searches for a data stream for a word; FIG. 9 illustrates an identification module configured to search for data streams in parallel for two words; FIGS. An identification module for searching for one of a plurality of words of the same first code; FIG. 13 illustrates a type identification device according to an embodiment of the present invention, which includes 145319.doc-39-201033896 including the type of FIG. A sample identification processor and a set of registers associated with a processor-based system; Figure 14 illustrates one system of direct and indirect registers having the pattern recognition device of Figure 13 in accordance with one embodiment; A device is configured in accordance with an embodiment of the invention (eg, Figure 13 Flowchart of one of the methods of the type identification device; FIG. 16 illustrates the inclusion of the disparity register library and the formula register library in the register of the device of FIG. 13 according to an embodiment; FIG. One embodiment illustrates additional details of the type identification processor of FIG. 2; FIG. 18 illustrates an example of a method of configuring the apparatus of FIG. 13 in an adaptive manner using parametric equations; and FIG. 19 is in accordance with an embodiment. The ability of system 94 to configure one or more different devices in a family of devices is generally illustrated. [Main component symbol description] 10 System 12 Data stream 14 Pattern recognition processor 16 Search criteria 18 Compiler 20 Central processing unit 22 Identification module 24 Aggregation module 26 Output bus 145319.doc 201033896 ❹ 28 column decoder 30 Feature cell 32 search term array 34 detection array 36 start routing matrix 37 input conductor 38 primary bus 40 latch matrix 42 aggregate routing matrix 44 threshold logic matrix 46 logical product matrix 48 logical sum matrix 50 initialization routing matrix 51 output Buffer 53 Group logic line 54 Search term cell 56 Output conductor 58 Memory cell 60 Conductor 62 Conductor 63 Characteristic cell 64 Characteristic cell 66 Characteristic cell 68 Detection cell 145319.doc -41 201033896 70 Memory cell 72 Conductor 74 Conductor 75 First Search Criteria 76 Second Search Criteria 78 Start Routing Cell 80 Feature Cell 82 Feature Cell 84 Feature Cell 86 Feature Cell 88 First Code 90 Tail Code 92 Tail Code 93 Pattern Recognition Device 94 System 95 Memory 96 Memory Management Unit 97 Scratchpad 98 Scratchpad Access Logic 99 Address Map 10 0 System 101 Single Address Map 102 Direct Register Group (or Group) 103 Storage Media 145319.doc -42- 201033896 104 Indirect Scratchpad Group (or Group) 106 Critical State Register 108 Critical Control Staging 110 stimulus byte input register 112 indirect bank selection register 114 indirect address selection register 116 indirect data input/output register node 118 register bank 120 register 121 register address Bus 122 Flow Save and Restore Group 123 Register Data Input/Output Bus 124 Match Result and Debug Group 126 Power-on Configuration Group 128 Model Configuration Group Reference 146 Disparity Register Library 148 Formula Staging Library 150 Device Capability Library * 154 Logic Block - 168 Device Family 170 Device 172 Device 145319.doc -43-
Claims (1)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/347,403 US8140780B2 (en) | 2008-12-31 | 2008-12-31 | Systems, methods, and devices for configuring a device |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201033896A true TW201033896A (en) | 2010-09-16 |
TWI409695B TWI409695B (en) | 2013-09-21 |
Family
ID=42061995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098144804A TWI409695B (en) | 2008-12-31 | 2009-12-24 | Systems, methods, and devices for configuring a device |
Country Status (3)
Country | Link |
---|---|
US (2) | US8140780B2 (en) |
TW (1) | TWI409695B (en) |
WO (1) | WO2010077770A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI646423B (en) * | 2013-01-31 | 2019-01-01 | 慧與發展有限責任合夥企業 | Mapping mechanism for large shared address spaces |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209521B2 (en) * | 2008-10-18 | 2012-06-26 | Micron Technology, Inc. | Methods of indirect register access including automatic modification of a directly accessible address register |
US8938590B2 (en) * | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
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 |
US10007486B2 (en) | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
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 |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
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 |
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 |
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 |
US9626190B2 (en) * | 2010-10-07 | 2017-04-18 | Advanced Micro Devices, Inc. | Method and apparatus for floating point register caching |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
JP5763784B2 (en) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | Grouping states for element usage |
WO2012103143A2 (en) | 2011-01-25 | 2012-08-02 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
WO2012103146A2 (en) | 2011-01-25 | 2012-08-02 | Micron Technology, Inc. | Utilizing special purpose elements to implement a fsm |
US8782624B2 (en) | 2011-12-15 | 2014-07-15 | Micron Technology, Inc. | Methods and systems for detection in a state machine |
US9443156B2 (en) | 2011-12-15 | 2016-09-13 | Micron Technology, Inc. | Methods and systems for data analysis in a state machine |
US8648621B2 (en) | 2011-12-15 | 2014-02-11 | Micron Technology, Inc. | Counter operation in a state machine lattice |
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 |
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 |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
US9235798B2 (en) | 2012-07-18 | 2016-01-12 | Micron Technology, Inc. | Methods and systems for handling data received by a state machine engine |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US9501131B2 (en) | 2012-08-31 | 2016-11-22 | Micron Technology, Inc. | Methods and systems for power management in a pattern recognition processing system |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
US8938796B2 (en) | 2012-09-20 | 2015-01-20 | Paul Case, SR. | Case secure computer architecture |
US9122622B1 (en) * | 2013-02-26 | 2015-09-01 | Digital Dynamics, Inc. | Configurable input/output controller system |
US9703574B2 (en) | 2013-03-15 | 2017-07-11 | Micron Technology, Inc. | Overflow detection and correction in state machine engines |
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 |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
WO2016109570A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Systems and devices for accessing a state machine |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
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 |
US12197510B2 (en) | 2016-10-20 | 2025-01-14 | Micron Technology, Inc. | Traversal of S portion of a graph problem to be solved using automata processor |
US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL38603A (en) * | 1972-01-21 | 1975-10-15 | Bar Lev H | Automatic pattern recognition method and apparatus particularly for optically recognizing alphanumeric characters |
JPS4891935A (en) * | 1972-03-08 | 1973-11-29 | ||
US4011547A (en) * | 1972-07-17 | 1977-03-08 | International Business Machines Corporation | Data processor for pattern recognition and the like |
GB1518093A (en) * | 1974-10-04 | 1978-07-19 | Mullard Ltd | Mark detection apparatus |
JPS51112236A (en) * | 1975-03-28 | 1976-10-04 | Hitachi Ltd | Shape position recognizer unit |
JPS5313840A (en) * | 1976-07-23 | 1978-02-07 | Hitachi Ltd | Analogy calculator |
US4204193A (en) * | 1978-11-03 | 1980-05-20 | International Business Machines Corporation | Adaptive alignment for pattern recognition system |
US4414685A (en) * | 1979-09-10 | 1983-11-08 | Sternberg Stanley R | Method and apparatus for pattern recognition and detection |
US4748674A (en) * | 1986-10-07 | 1988-05-31 | The Regents Of The University Of Calif. | Pattern learning and recognition device |
US5014327A (en) * | 1987-06-15 | 1991-05-07 | Digital Equipment Corporation | Parallel associative memory having improved selection and decision mechanisms for recognizing and sorting relevant patterns |
US5216748A (en) | 1988-11-30 | 1993-06-01 | Bull, S.A. | Integrated dynamic programming circuit |
US5617574A (en) * | 1989-05-04 | 1997-04-01 | Texas Instruments Incorporated | Devices, systems and methods for conditional instructions |
US6400996B1 (en) * | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
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 |
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 |
US5459798A (en) * | 1993-03-19 | 1995-10-17 | Intel Corporation | System and method of pattern recognition employing a multiprocessing pipelined apparatus with private pattern memory |
US20050251638A1 (en) * | 1994-08-19 | 2005-11-10 | Frederic Boutaud | Devices, systems and methods for conditional instructions |
JP3345515B2 (en) * | 1994-08-31 | 2002-11-18 | アイワ株式会社 | Peak shift correction circuit and magnetic recording medium reproducing apparatus using the same |
US6279128B1 (en) * | 1994-12-29 | 2001-08-21 | International Business Machines Corporation | Autonomous system for recognition of patterns formed by stored data during computer memory scrubbing |
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
US5754878A (en) * | 1996-03-18 | 1998-05-19 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having pattern recognition detector that uses table for translating instruction sequences intended to perform DSP function into DSP macros |
JP2940496B2 (en) * | 1996-11-05 | 1999-08-25 | 日本電気株式会社 | Pattern matching encoding apparatus and method |
US6195150B1 (en) * | 1997-07-15 | 2001-02-27 | Silverbrook Research Pty Ltd | Pseudo-3D stereoscopic images and output device |
US6041405A (en) * | 1997-12-18 | 2000-03-21 | Advanced Micro Devices, Inc. | Instruction length prediction using an instruction length pattern detector |
US6219776B1 (en) * | 1998-03-10 | 2001-04-17 | Billions Of Operations Per Second | Merged array controller and processing element |
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 |
US6317849B1 (en) | 1999-04-28 | 2001-11-13 | Intel Corporation | Method and apparatus for controlling available capabilities of a device |
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 |
US6640262B1 (en) | 1999-12-20 | 2003-10-28 | 3Com Corporation | Method and apparatus for automatically configuring a configurable integrated circuit |
US7080359B2 (en) * | 2002-01-16 | 2006-07-18 | International Business Machines Corporation | Stack unique signatures for program procedures and methods |
US6240003B1 (en) | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
US7146643B2 (en) | 2002-10-29 | 2006-12-05 | Lockheed Martin Corporation | Intrusion detection accelerator |
US7292572B2 (en) | 2002-12-11 | 2007-11-06 | Lsi Corporation | Multi-level register bank based configurable ethernet frame parser |
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 |
US7849119B2 (en) * | 2003-12-29 | 2010-12-07 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit |
US7243165B2 (en) * | 2004-01-14 | 2007-07-10 | International Business Machines Corporation | Parallel pattern detection engine |
US7487542B2 (en) * | 2004-01-14 | 2009-02-03 | International Business Machines Corporation | Intrusion detection using a network processor and a parallel pattern detection engine |
US7392229B2 (en) | 2005-02-12 | 2008-06-24 | Curtis L. Harris | General purpose set theoretic processor |
US7624256B2 (en) * | 2005-04-14 | 2009-11-24 | Qualcomm Incorporated | System and method wherein conditional instructions unconditionally provide output |
US7672529B2 (en) * | 2005-05-10 | 2010-03-02 | Intel Corporation | Techniques to detect Gaussian noise |
US7376782B2 (en) | 2005-06-29 | 2008-05-20 | Intel Corporation | Index/data register pair for indirect register access |
FR2891075B1 (en) | 2005-09-21 | 2008-04-04 | St Microelectronics Sa | MEMORY CIRCUIT FOR AHO-CORASICK TYPE RECOGNITION AUTOMATA AND METHOD FOR MEMORIZING DATA IN SUCH A CIRCUIT |
US7360063B2 (en) * | 2006-03-02 | 2008-04-15 | International Business Machines Corporation | Method for SIMD-oriented management of register maps for map-based indirect register-file access |
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 |
US8325819B2 (en) * | 2006-10-12 | 2012-12-04 | Qualcomm Incorporated | Variable length coding table selection based on video block type for refinement coefficient coding |
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 |
US7890923B2 (en) * | 2006-12-01 | 2011-02-15 | International Business Machines Corporation | Configurable pattern detection method and apparatus |
US7797521B2 (en) * | 2007-04-12 | 2010-09-14 | International Business Machines Corporation | Method, system, and computer program product for path-correlated indirect address predictions |
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 |
WO2012103143A2 (en) | 2011-01-25 | 2012-08-02 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
WO2012103146A2 (en) | 2011-01-25 | 2012-08-02 | 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 (en) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | Grouping states for element usage |
-
2008
- 2008-12-31 US US12/347,403 patent/US8140780B2/en active Active
-
2009
- 2009-12-10 WO PCT/US2009/067534 patent/WO2010077770A1/en active Application Filing
- 2009-12-24 TW TW098144804A patent/TWI409695B/en active
-
2012
- 2012-03-20 US US13/425,137 patent/US8725961B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI646423B (en) * | 2013-01-31 | 2019-01-01 | 慧與發展有限責任合夥企業 | Mapping mechanism for large shared address spaces |
Also Published As
Publication number | Publication date |
---|---|
US8725961B2 (en) | 2014-05-13 |
US20100169538A1 (en) | 2010-07-01 |
TWI409695B (en) | 2013-09-21 |
US8140780B2 (en) | 2012-03-20 |
US20120179854A1 (en) | 2012-07-12 |
WO2010077770A1 (en) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201033896A (en) | Systems, methods, and devices for configuring a device | |
US11782859B2 (en) | Methods and systems for devices with self-selecting bus decoder | |
TWI419045B (en) | Systems and methods for managing endian mode of a device | |
TWI519963B (en) | Methods and systems to accomplish variable width data input | |
TWI416332B (en) | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices | |
TWI590059B (en) | Buses for pattern-recognition processors | |
CN102272713B (en) | Method and system for power consumption management of type recognition processors | |
TWI488108B (en) | Devices, systems, and methods to synchronize parallel processing of a single data stream | |
TWI524203B (en) | Methods and devices for saving and/or restoring a state of a pattern-recognition processor | |
CN102741859B (en) | Method and apparatus for reducing power consumption in a pattern recognition processor | |
TWI507977B (en) | Systems and methods to enable identification of different data sets | |
US20190340454A1 (en) | Bus translator | |
TWI419002B (en) | Pattern-recognition processor with matching-data reporting module | |
TWI442318B (en) | System and method of indirect register access | |
TWI436271B (en) | Pattern-recognition processor with results buffer | |
TWI489300B (en) | Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine | |
TW201020912A (en) | Indirect register access method and system |