專利名稱:串行比特流正則表達式引擎的制作方法
串行比特流正則表達式引擎相關(guān)申請的交叉引用本申請依照35U. S. C. § 119(e)要求序列號61/266,966,2009年12月4日申請的 美國臨時申請的優(yōu)先權(quán),通過引用將其全文結(jié)合于本文。
背景技術(shù):
本發(fā)明涉及測試及測量儀器,更具體地,涉及具有對串行比特流進行正則表達式 處理的測試及測量儀器。正則表達式可用于分析字符流。例如,如Perl和AWK的程序基于正則表達式模式 匹配。正則表達式可以用于定義字符的匹配序列。但是,這種正則表達式匹配是在已經(jīng)轉(zhuǎn) 化為字節(jié)、字、或其它多比特格式的數(shù)據(jù)上進行的。相反地,串行比特流不能歸類為這種多 比特格式。
圖1是根據(jù)本發(fā)明實施例的具有正則表達式引擎的測試和測量儀器的框圖。圖2是根據(jù)本發(fā)明實施例的具有數(shù)字化儀前端的圖1的測試和測量儀器的框圖。圖3示出了根據(jù)本發(fā)明實施例的來自正則表達式引擎的波形、對應(yīng)的比特序列以 及匹配比特序列。圖4示出了根據(jù)本發(fā)明實施例的來自正則表達式引擎的波形、對應(yīng)的比特序列、 匹配比特序列以及對齊序列。圖5是根據(jù)本發(fā)明實施例的具有觸發(fā)系統(tǒng)的測試和測量儀器的框圖,該觸發(fā)系統(tǒng) 具有正則表達式引擎。圖6是根據(jù)本發(fā)明實施例的在觸發(fā)系統(tǒng)中具有正則表達式引擎的測試和測量儀 器的框圖。圖7示出了根據(jù)本發(fā)明實施例的來自正則表達式引擎的波形、對應(yīng)的比特序列、 匹配比特序列以及關(guān)聯(lián)數(shù)據(jù)。圖8是根據(jù)本發(fā)明實施例的具有正則表達式引擎的測試和測量儀器的用戶界面 的實例。圖9是根據(jù)本發(fā)明實施例的具有正則表達式引擎的測試和測量儀器的用戶界面 的另一個實例。
具體實施例方式本說明書描述了具有用于串行比特流的正則表達式引擎的測試和測量儀器的實 施例。圖1是根據(jù)本發(fā)明實施例的具有正則表達式引擎的測試和測量儀器的框圖。該儀 器包括配置為接收串行比特流10的控制器12??梢杂枚喾N方式生成該串行比特流10。例 如,該儀器可以是配置為將輸入信號數(shù)字化的示波器。數(shù)字化的輸入信號,其可被表示為數(shù)字化的模擬信號,能夠表示數(shù)字化數(shù)據(jù)。那就是說,數(shù)字化的輸入信號能表示數(shù)據(jù)流的一系 列比特。該串行比特流10可以是這種從數(shù)字化輸入信號中提取的一系列比特。在另一個實施例中,該儀器可以是邏輯分析器。該邏輯分析器可以配置為比較輸 入信號與閾值以便為通道生成串行比特流。該串行比特流10可以是這種來自邏輯分析器 的通道的比特流。能生成串行比特流的任意儀器都可以包括本文所述的正則表達式引擎。在實 流10可以存儲于非易失性存儲器,例如磁盤驅(qū)動器或其它大容量存儲設(shè)備。不管串行比特流10的來源如何,控制器12都可以配置為接收該串行比特流10。 控制器12可以是任意類型的電路。例如,數(shù)字信號處理(DSP)、微處理器、可編程邏輯設(shè)備、 通用處理器、或具有所期望的適當外圍設(shè)備的其它處理系統(tǒng)可以用作控制器12來實現(xiàn)正 則表達式引擎13的功能。從完全整合到完全分立部件之間的任意變型都可以用于實現(xiàn)控 制器12。正則表達式引擎13表示控制器12的功能,其用于將正則表達式應(yīng)用到串行比特 流10。控制器12耦合到用戶界面14。用戶界面14可以包括任意類型的界面。例如,用 戶界面14可以包括輸入界面,例如按鈕、旋鈕、滑塊、鍵盤、指針設(shè)備等等。用戶界面14可 以包括輸出界面,例如顯示器、燈、揚聲器等等。用戶界面14可以包括輸入/輸出界面,例 如通信界面、觸摸屏或類似物。任何種類的用戶界面或這些界面的組合都可以用作用戶界 面??刂破?2可以配置為響應(yīng)于將正則表達式應(yīng)用到串行比特流10而通過用戶界面 呈現(xiàn)獲取的數(shù)據(jù)。在實施例中,獲取的數(shù)據(jù)可以是串行比特流10本身。但是,在其它實施 例中,獲取的數(shù)據(jù)和串行比特流10是不同的。例如,如下面將詳細描述的一樣,正則表達式 的串行比特流中的匹配可以用于觸發(fā)其它數(shù)據(jù)被獲取以作為獲取的數(shù)據(jù)。正則表達式引擎13可以用于影響串行比特流10的各種表示。例如,如下面將詳 細描述的一樣,數(shù)據(jù)可以與正則表達式相關(guān)聯(lián)。數(shù)據(jù)可以表示在匹配比特序列中被編碼的 符號。串行比特流10可以用符號呈現(xiàn)而作為覆蓋圖、單獨的符號或類似物。在另一個實例中,正則表達式引擎13可以用于搜索、標記或以別的方式識別串行 比特流10、相關(guān)聯(lián)的數(shù)據(jù)或類似物中的模式。例如,在示波器上,可對表示獲取的信號的數(shù) 字化波形搜索特定比特序列。數(shù)字化波形的關(guān)聯(lián)序列可以通過用戶界面來呈現(xiàn)。備選地, 可以標記該關(guān)聯(lián)序列。在另一個實例中,正則表達式引擎13可以用于過濾獲取的數(shù)據(jù)。例如,如將在下 面進行詳細說明的那樣,正則表達式可以定義包結(jié)構(gòu)(package structure)和僅匹配來自 特定設(shè)備的包的匹配值。數(shù)據(jù)獲取可以被過濾以便僅存儲匹配的獲取。在另一個實施例中,正則表達式引擎13的輸出可以多于純粹匹配。例如,串行比 特流10可以與獲取的數(shù)字化波形相關(guān)聯(lián)。數(shù)字化波形可以表示為值與時間的關(guān)系的曲線。 當匹配被輸出時,可以將額外的數(shù)據(jù)、例如關(guān)聯(lián)的數(shù)字化波形中的時間添加到該輸出中。因 此,可以調(diào)整用戶界面14以反映該時間。圖2是根據(jù)本發(fā)明實施例的具有數(shù)字化儀前端的圖1的測試及測量儀器的框圖。 數(shù)字化儀20可以配置為將輸入信號22數(shù)字化以生成串行數(shù)據(jù)流10。
雖然沒有示出,但每個數(shù)字化儀26具有前置放大器、衰減器、濾波器、和/或模擬 通道中所需的其它模擬電路。因此,對數(shù)字化儀26的輸入信號可以在數(shù)字化之前被放大、 衰減、或被過濾。此外,數(shù)字化儀26可以是能將信號數(shù)字化的任意類型的電路。例如,數(shù)字 化儀26可以包括電路、例如對相關(guān)聯(lián)的輸入信號進行采樣所需 的跟蹤保持電路、A/D轉(zhuǎn)換 器、多路分配器電路(de-multiplexer circuit)。圖3示出了根據(jù)本發(fā)明實施例的來自正則表達式引擎的波形、對應(yīng)的比特序列和 匹配比特序列。在實施例中,正則表達式語法可以定義如下
<RegExpr> :=1 | 0 | X
I <RegExpr> <RegExpr> I <RegExpr> | <RegExpr> I <RegExpr> + I <RegExpr> * I <RegExpr> ? I <RegExpr> * INTEGER I (<RegExpr>)
5在這個實例中,匹配比特可以定義為1、0或無所謂的X。正則表達式可以后跟正則 表達式。備選的正則表達式可以由OR “|”操作符定義。一個或多個“ + ”或零或多個“*” 操作符可以用于潛在地定義重復(fù)的正則表達式?!??”操作符意味著零或一個在先的正則表 達式。跟著“*”操作符的整數(shù)意思是正則表達式的重復(fù)數(shù)。括號可以用于歸類正則表達式 或歸類一系列正則表達式。雖然上面描述了特定的語法,但實施例可以使用其它語法。特 別地,使用其它語法的進一步實例將在下面給出。而且,正則表達式引擎13使用的語法能 夠但不必實現(xiàn)上述語法或下列語法的所有方面。使用上述語法作為示例,可以定義正則表達式的匹配。例如,“1010000110”可以 被定義為正則表達式。波形44和對應(yīng)的數(shù)字值46在圖3中示出。將比特序列40識別為 匹配,因為其具有比特“1010000110”。但是,比特序列42不會匹配這個序列。備選的正則表達式可以定義為“1010XX0110”。與上述例子相反,兩個無所謂的 “X”值包含于該正則表達式中。因此,序列40和42都匹配于該正則表達式“1010XX0110”。圖4示出了根據(jù)本發(fā)明實施例的來自正則表達式引擎的波形、對應(yīng)的比特序列、 匹配的比特序列以及對齊序列。在實施例中,正則表達式引擎13能配置為對齊串行比特流 10中的操作。例如,如8b/10b的編碼技術(shù)能定義能用于對齊的特定比特序列(或多個序 列)。8b/10b編碼中的“1100000”或“0011111”序列可以指示在串行比特流中的10比特 對齊??梢远x正則表達式的語法以允許這種對齊序列的表達式。例如,具有對齊表達 式的正則表達式可以定義為<RegExprWithAlignment>:<RegExpr>〈Alignment〉
< Alignment〉width <Expr>
I alignment <RegExpr> I <AIignment> width <Expr> I 〈Alignment〉alignment <RegExpr>此處,操作符“alignment”可以表明隨后的正則表達式定義了串行比特流10中的 用于對齊序列的匹配。例如,使用上面的序列,正則表達式“alignment (1100000 I 0011111)” 可用于將“ 1100000”或“0011111”定義為對齊序列。除對齊序列之外,還可以指定寬度。在這個實例語法中,width操作可以指示在串 行比特流10中的多個比特寬的“word”。例如,在8b/10b編碼中寬度可以是10比特。因 此,8b/10b 編碼的對齊表達式可以是“alignment (1100000 I 0011111) widthlO,,。特別地,對寬度的定義供對齊正則表達式使用,例如上面那些表達式,它們比提供 的寬度要寬或窄。在上面的實例中,對齊正則表達式定義了具有10比特寬度的兩個7比特 的匹配序列。因此,當正則表達式引擎13向串行比特序列10中對索引增量時,該增量是按 照寬度的。就是說,在實施例中,正則表達式可以不應(yīng)用于每個比特,但是卻開始于根據(jù)對 齊正則表達式對齊的串行比特流10中的比特。參考圖4,考慮正則表達式“l(fā)OlOOOOllOalignment (1100000 |0011111)width 10”。與圖3類似,示出了波形60和對應(yīng)的數(shù)字值68。比特序列62與對齊正則表達式 “ (1100000|0011111) ”相匹配。使用定義的寬度,根據(jù)識別的對齊比特序列62和定義的寬 度可以對齊執(zhí)行正則表達式到波形60的應(yīng)用。虛線70描繪了波形60中“字”的邊界。在這個實例中,比特序列64和66都與正 則表達式“1010000110”相匹配。但是,只有比特序列64對齊到邊界70。因此,只有比特序 列64會是匹配而不是比特序列66會是匹配。在圖4中,示出了與對齊比特序列62相鄰的匹配比特序列64 ;但是,這種鄰近不 是必要的。例如,在實施例中,控制器可配置為使用對齊正則表達式搜索串行比特流。一旦 找到,正則表達式引擎13可以配置為響應(yīng)于與對齊正則表達式的匹配而應(yīng)用正則表達式 的余項。就是說,在串行比特流10中并根據(jù)定義的寬度對齊應(yīng)用該余項。與正則表達式的余項的匹配可以直到顯著地在對齊序列之后才被找到。例如,直 到找到與正則表達式的余項匹配時,可以從獲取存儲器中丟棄對齊比特序列。但是,正則表 達式引擎13依然能夠執(zhí)行到串行比特流10的對齊。在其它實施例中,寬度可以由對齊序列隱含地定義。例如,對齊正則表達式“align ment (1100000XXX 0011111XXX) ” 可以與"alignment (1100000 0011111) width 10,,基本類 似地操作。就是說,正則表達式引擎13可以配置為確定對齊正則表達式的寬度是串行比特 流10中“字”的寬度。在實施例中,對齊比特序列可能不是已知的,甚至是不存在的;但是寬度是已知 的。例如,對齊正則表達式可以是“width 10”。在這種情況下,引用串行比特流10的索引可以響應(yīng)于width而被增量;但是,可能需要確定對齊。各種技術(shù) 可以用于確定串行比特流10中的對齊。例如,正則表達式引擎13可以 配置為使用等于該正則表達式寬度的引用串行比特流10的多個索引來將正則表達式應(yīng)用 于串行比特流10。就是說,對于不會重復(fù)早先類似對齊的給定寬度的串行比特流10中的每 個潛在的索引來應(yīng)用正則表達式。例如,如果寬度是10,0的索引可以基本上與10的索引 相似。在寬度所定義的粒度級別上可以為每個潛在的對齊來應(yīng)用正則表達式??蛇x擇具有 與正則表達式最大匹配數(shù)量的索引作為使用的索引。在另一個實施例中,能夠指示對齊的其它技術(shù)可以用于確定與串行比特流10 配合使用的對齊索引。例如,使用8b/10b編碼,符號末端的運行不一致性(running disparity)能限制在特定范圍內(nèi)。在運行不一致性處于期望范圍內(nèi)的情況的該串行比特流 10中的偏移索引可以用作識別的索引。雖然特定例子是串行比特流10的特性能夠用于識 別串行比特流10中的偏移索引,但是能夠指示對齊的串行比特流10的任意特性、所期望的 格式、或類似物可以在寬度中的每個索引上被搜索以確定合適的索引。在實施例中,串行比特流10具有動態(tài)寬度。為了適應(yīng)動態(tài)寬度,控制器12可以配 置為搜索串行比特流10的有效模式。一旦識別了有效模式,該有效模式的位置可以用于將 正則表達式與串行比特流10對齊。在另一個實例中,可以解碼串行比特流10并對其檢查錯誤。如果存在錯誤、超出 閾值,或類似事件,使用另一個偏移量執(zhí)行對串行比特流10的解碼。一旦發(fā)現(xiàn)偏移量具有 極小差錯,可以使用該偏移量來將正則表達式與串行比特流10對齊。雖然已經(jīng)描述了確定對齊和/或確定串行比特流10的字的寬度的多種方法,但也 可以使用其它技術(shù)獲得這些信息。在實施例中,控制器12能夠配置為通過用戶界面14接 收引用串行比特流10的索引。該索引能夠以多種方式生成。例如,用戶能夠提供偏移量、 寬度,或二者都提供。這種提供的信息可以通過用戶界面14、控制器12或類似物變換為引 用串行比特流10的索引。使用這種索引,控制器能夠?qū)⒄齽t表達式應(yīng)用到串行比特流10。在另一個實例中,用戶可以使用光標位置來定義串行比特流10的偏移量索引。可 以通過用戶界面14來呈現(xiàn)串行比特流10。用戶可以控制光標,不管是手動的,還是通過一 些自動功能或類似物,以指示所呈現(xiàn)的串行比特流10中的位置。作為響應(yīng),控制器12能夠 確定引用串行比特流10的比特索引。因此,在這種對齊序列不可用、還未定義或類似的情 況下,用戶依然可以檢查數(shù)據(jù)并指示串行比特流10中的對齊。圖5是根據(jù)本發(fā)明實施例的具有觸發(fā)系統(tǒng)的測試及測量儀器的框圖,該觸發(fā)系統(tǒng) 具有正則表達式引擎。觸發(fā)系統(tǒng)90能夠配置為響應(yīng)于觸發(fā)輸入92而生成觸發(fā)信號94。在 實施例中,控制器12能夠配置為響應(yīng)于觸發(fā)信號94而將具有正則表達式引擎13的正則表 達式應(yīng)用于串行比特流。例如,控制器12能夠配置為使用引用與觸發(fā)信號94相關(guān)聯(lián)的串行比特流10的索 弓丨??刂破?2能夠配置為接收來自觸發(fā)系統(tǒng)90觸發(fā)信號94??梢詫r間上與觸發(fā)信號 94相關(guān)聯(lián)的串行比特流10的比特、位于離觸發(fā)信號94特定偏移量處的比特,或類似物用作 對齊指示符,以用于正則表達式的處理。一旦建立了對齊,就如上所述應(yīng)用正則表達式。在另一個實施例中,觸發(fā)系統(tǒng)90能夠具有正則表達式引擎91。正則表達式引擎 91能夠配置為將正則表達式應(yīng)用到觸發(fā)輸入92。在這個實例中,觸發(fā)輸入92可以是串行比特流。使用上述實例,正則表達式可以是“(llOOOOOlOOlllll)”??梢杂烧齽t表達式引擎 對觸發(fā)輸入92分析匹配??身憫?yīng)于該匹配而生成觸發(fā)信號94。在實施例中,觸發(fā)信號94 可包括觸發(fā)輸入92中的串行比特流內(nèi)的對齊信息、匹配表達式、識別的時間或樣本位置、 串行比特流本身、這些信息的組合,或類似物。將這些信息提供給控制器12,并用于正則表 達式引擎13、在獲取數(shù)據(jù)中使用,或如其它所期望的那樣。如上所述,正則表達式引擎13能夠響應(yīng)于觸發(fā)信號94而將相關(guān)聯(lián)的正則表達式 應(yīng)用到對齊的串行比特流10。但是,在這個實施例中,可以生成觸發(fā)信號94以響應(yīng)正則表 達式引擎91。如上所述,觸發(fā)系統(tǒng)90的正則表達式引擎91所應(yīng)用的正則表達式可以是對 齊正則表達式。因此,觸發(fā)系統(tǒng)90能執(zhí)行處理以確定對齊,控制器12的正則表達式引擎13 能應(yīng)用另一個正則表達式來確定匹配。圖6是根據(jù)本發(fā)明實施例的具有觸發(fā)系統(tǒng)中的正則表達式引擎的測試及測量儀 器的框圖。正則表達式引擎功能可以以多種方式分配。如上所述,正則表達式功能可以遍 布控制器12和觸發(fā)系統(tǒng)90來分配。在這個實施例中,控制器93不需要具有正則表達式引 擎。正則表達式引擎91是觸發(fā)系統(tǒng)90的一部分。觸發(fā)系統(tǒng)90可以配置為觸發(fā)獲取以響 應(yīng)正則表達式對觸發(fā)信號92的串行比特流的匹配。在實施例中,這種觸發(fā)可用于僅在匹配發(fā)生時獲取數(shù)據(jù)。例如,該儀器能從共享介 質(zhì)中獲取數(shù)據(jù)。正則表達式能被定義為指示特定設(shè)備、包、源地址或類似物。因此,當從匹 配源接收信號時,只能使用對應(yīng)的數(shù)據(jù)。例如,從這種數(shù)據(jù)中能夠生成實時數(shù)據(jù)眼。通過使 用正則表達式,只有來自期望源的信號能夠?qū)?shù)據(jù)眼起作用。圖7示出了根據(jù)本發(fā)明實施例的來自正則表達式引擎的波形、對應(yīng)的比特序列、 匹配比特序列和關(guān)聯(lián)數(shù)據(jù)。在實施例中,數(shù)據(jù)可在正則表達式中呈現(xiàn)。例如,下列語法使得 數(shù)據(jù)能夠被描述<RegExprffithData> :<RegExpr> :<Data>出于清晰的目的,正則表達式語法的余部沒有列出;但是,正則表達式 “ <RegExprffithData> ”可以用作本文所述的任意正則表達式“ <RegExpr> ”。在一個實例中,正則表達式“ (1010000110 :“D15. 6+”)”可以將比特序列 “1010000110”與數(shù)據(jù)“D15. 6+”相關(guān)聯(lián)。在圖7中示出波形110和對應(yīng)的比特序列92。比 特序列112匹配“1010000110”。因此,關(guān)聯(lián)的數(shù)據(jù)“D15. 6+”通過用戶界面14在框116中 呈現(xiàn)。類似地,對于正則表達式“ (1000111101 :"D17. 4-,,) ”,由于比特序列114匹配該正則 表達式,所以通過用戶界面14框118可以呈現(xiàn)關(guān)聯(lián)的數(shù)據(jù)“D17. 4_”。在實施例中,使用這種數(shù)據(jù)關(guān)聯(lián)性,可以實現(xiàn)解碼器。例如,如上所述,兩個 比特序列112和114與符號“D15. 6+”和“D17. 4_”關(guān)聯(lián)。"D15. 6+”和“D17. 4_”是 作為8b/10b解碼方案的一部分的符號。定義了解碼器的正則表達式可以定義為 “ ((1000111100 :"D17. 3,,)| (1000111101 :"D17. 4-,,)· . . (1010000110 :"D15. 6+,,)) alignment (1100000 I 0011111) widthlO”。在這個實例中,有超過所述三種的許多其它比特 序列與符號的關(guān)系;但是,用這三種作為例子。因此,如果定義了所有比特序列與符號的關(guān) 系,那么正則表達式能夠用于解碼串行比特流10。如上所述,源波形和/或比特流不需要呈 現(xiàn)。在實施例中,這種關(guān)聯(lián)的數(shù)據(jù)可以在儀器的后續(xù)操作中使用。例如,控制器能夠配置為基于該數(shù)據(jù)進行搜索。使用上述實例,執(zhí)行對“D15. 6+”符號的搜索。在實施例中,基礎(chǔ)的正則表達式能夠但不必對用戶隱藏。例如,能夠?qū)Ω鞣N正則表達式預(yù)定義特定符號或 類似物,該特定符號伴隨測試啟動而被載入。用戶能夠選擇與正則表達式關(guān)聯(lián)的數(shù)據(jù),而無 需基礎(chǔ)的正則表達式中的信息。雖然文本已經(jīng)作為與正則表達式關(guān)聯(lián)的數(shù)據(jù)的實例來使用,但其它類型的信息也 可以作為該數(shù)據(jù)。例如,數(shù)字、表達式、函數(shù)或類似物能夠成為相關(guān)聯(lián)數(shù)據(jù)一部分。圖8是根據(jù)本發(fā)明實施例具有正則表達式引擎的測試及測量儀器的用戶界面的 實例。在實施例中,用戶界面14配置為呈現(xiàn)正則表達式。在一個實例中,用戶界面能夠配 置為呈現(xiàn)之前定義的正則表達式的數(shù)據(jù)???32和134表示在用戶界面130中呈現(xiàn)的之前定義的正則表達式。例如,框132 能夠表示正則表達式“(1010000110 :"D15. 6+,,)alignment (1100000 | 0011111) width 10,,, 而框 134 能表示“(1000111101 :“D17. 4-,,)alignment (1100000 | 0011111)width 10,,。用戶輸入、例如指針設(shè)備的拖動輸入由箭頭138表示。通過該輸入,用戶能指示用 于構(gòu)成正則表達式的輸入框136可以由與框132相關(guān)聯(lián)的正則表達式填充。例如,一開始, 框136可能是空的。響應(yīng)于箭頭138的用戶輸入,將與框132相關(guān)聯(lián)的正則表達式填入框 136。但是,框136中的正則表達式不需要擴展。就是說,框136中的正則表達式可以保 持由與源正則表達式相關(guān)聯(lián)的數(shù)據(jù)所表示的那樣。在這個實例中,該數(shù)據(jù)將是“D15. 6+”。 此外,多于一個的之前定義的正則表達式可以添加到框136中。例如,用戶可以將框134添 加到框136以添加關(guān)聯(lián)的正則表達式、插入操作符或類似物。在實施例中,呈現(xiàn)的正則表達式可以是任意的正則表達式。如上所述,框132具有 關(guān)聯(lián)的對齊和寬度項。但是,關(guān)聯(lián)的正則表達式可以是“ (1010000110 :"D15. 6+”) ”,而沒有 對齊和寬度項中的一個或多個。在另一個實例中,之前定義的正則表達式可以是‘‘((11000001011 1010000110) “K28.5”)”。這個正則表達式可以呈現(xiàn)為“K28. 5”。響應(yīng)于用戶輸入,構(gòu)成的正則表達式可 以具有擴展的“((110000010111010000110) :"K28. 5,,),,。就是說,添加的正則表達式不必
限制于純粹的字面序列,但能包括任意有效的正則表達式。由于正則表達式能夠是任意有效的正則表達式,這些正則表達式可以相對復(fù)雜, 甚至能夠構(gòu)成更加復(fù)雜的正則表達式,其對用戶潛在地隱藏其復(fù)雜性。例如,如上所述, 8b/10b解碼器可描述為正則表達式。類似地,可以定義其它解碼方案,例如64b/66b。 ‘‘8b/10b”可以在框132中呈現(xiàn),‘‘64b/66b”可以在框134中呈現(xiàn)。用戶能夠構(gòu)造用于8b/10b 和64b/66b編碼的組合解碼器。就是說,通過用戶將“8b/10b”拖動到框136中,輸入OR操 作符“ I ”并將“64b/66b”拖動到框136中,可以構(gòu)造正則表達式。此外,由于添加的正則表達式能夠是任意的正則表達式,這種復(fù)雜的組合不需要 對每個單元都是完整的。例如,“8b/10b”正則表達式可以完全解碼8b/10b的比特流;但是 “64b/66b”正則表達式僅可以定義關(guān)聯(lián)的編碼方案的一部分。例如,用于“64b/66b”的正則 表達式可以是“(10|01)X*64width 66”。雖然已經(jīng)使用文本框作為用于構(gòu)造正則表達式的用戶界面的實例,但能夠允許用 戶輸入文字、操作符、之前定義的正則表達式或類似物的任意界面都可以代替或作為框136的補充來使用。圖9是根據(jù)本發(fā)明實施例具有正則表達式引擎的測試及測量儀器的用戶界面 的另一個實例。示出了用戶界面的外觀150,其具有字段描述158和入口項字段(entry field) 160。在這個實例中,描述了用于IP包的正則表達式;但是,也可以使用其它格式。 使用正則表達式來定義包的語法可以是
<Packet>:<BasePacket>
I <BasePacket>〈Alignment〉
5
<BasePacket>: <Field>
I <Packet> ',’ <Field>
5
<Field>:'[‘ <RegExpr> '],’:,ID
,在這個實例中,之前定義的正則表達式可以是“ W000100000000000],[X*4] Version, [X*4] =HeaderLength, [X*8] :T0S, [X*16] =TotalLength, [X*16] :ID, [X*3] Flags, [X*13] =FragmentOffset, [X*8] :TTL,[X*8] =Protocol,[X*16] =Checksum, [X*32] SourcelPAddr,[X*32] :DestIPAddr,[X* (TotalLength-20) *8] :Data,,。此處,TotalLength ID可以表示以字節(jié)計的長度。因此,Data字段的比特總數(shù)將是以字節(jié)計的TotalLength-20 個報頭字節(jié)乘以每字節(jié)8比特。在實施例中,對于正則表達式的〈Field〉部分,通過用戶界面14能夠呈現(xiàn)對應(yīng) 的標簽和入口項字段。在這個實例中,用戶空著字段152和154,并使用十六進制的值 C0A80105(其表示源IP地址192. 168. 1.5)填入字段156。因此,這種用戶輸入可以用于生 成正則表達式,例如 “
,[X*16] =TotalLength, [X*5411000000101 010000000000100000101X*32X* (TotalLength-20) *8] ”。就是說,如果字段 152 和 154 沒有 填滿,則這些字段可以被壓縮,能夠添加與 元素關(guān)聯(lián)的值以修改正則表達式,可以將值擴展 為比特或類似的。在實施例中,在正則表達式的其它位置可以引用〈Field〉的ID參數(shù)。在這個實例 中,在Data字段中使用TotalLength。特別地,Data字段中匹配比特的數(shù)量的長度取決于 TotalLength字段的值。在一個實例中,TotalLength字段可以是定義的值,類似于源IP地 址。在另一個實例中,TotalLength字段可以從被分析的特定比特序列來確定。就是說,如 果開始匹配正則表達式的TotalLength字段的比特引用了值“ 120”,那么Data字段中匹配 比特的數(shù)量可以是(120-20)*8或800比特。對于正則表達式對不同的比特序列、比特序列 中開始位置或類似物的每個應(yīng)用,這種值可改變。在實施例中,正則表達式引擎能夠配置為反向應(yīng)用正則表達式。例如,串行數(shù)據(jù)流 10中的特定對齊序列可以出現(xiàn)于匹配正則表達式的比特序列之后。因此,當對齊序列找到 時,正則表達式引擎可以從對齊序列反向被應(yīng)用。另一個實施例包括計算機可讀介質(zhì)所包含的計算機可讀代碼,當其執(zhí)行時,致使計算機執(zhí)行任意的上述操作。如此處所使用的一樣,計算機是能執(zhí)行代碼的任意設(shè)備。微 處理器、可編程邏輯設(shè)備、多處理器系統(tǒng)、數(shù)字信號處理器、個人計算機或類似物全都是這 種計算機的實例。在實施例中,計算機可讀介質(zhì)可以是有形的計算機可讀介質(zhì),其配置為以 非暫時性的方式存儲計算機可讀代碼。
雖然已經(jīng)描述了特定實施例,但可以了解本發(fā)明的原理不限于那些實施例??勺?出變化和修改而不偏離下面的權(quán)利要求中所闡述的本發(fā)明的原理。
權(quán)利要求
1.一種測試及測量儀器,包括 用戶界面;以及控制器,其配置為 接收串行比特流;將正則表達式應(yīng)用于該串行比特流;以及響應(yīng)于該正則表達式對該串行比特流的應(yīng)用而通過該用戶界面呈現(xiàn)獲取的數(shù)據(jù)。
2.如權(quán)利要求1的測試及測量儀器,其中該控制器進一步配置為 使用該正則表達式的對齊正則表達式搜索該串行比特流;以及響應(yīng)于該串行比特流中與該對齊正則表達式的匹配而應(yīng)用該正則表達式的余項。
3.如權(quán)利要求1的測試及測量儀器,其中該控制器進一步配置為響應(yīng)于由該正則表達式定義的寬度,當該正則表達式應(yīng)用于該串行比特流時,對引用 該串行比特流的索引進行增量。
4.如權(quán)利要求1的測試及測量儀器,其中該控制器進一步配置為使用等于該正則表達式寬度的引用串行比特流的多個索引來將該正則表達式應(yīng)用于 該串行比特流;以及從這些索引中選擇具有最大數(shù)量的與該正則表達式的匹配的索引。
5.如權(quán)利要求1的測試及測量儀器,進一步包括 配置為生成觸發(fā)信號的觸發(fā)系統(tǒng);其中該控制器進一步配置為使用引用與該觸發(fā)信號相關(guān)聯(lián)的串行比特流的索引,來將 該正則表達式應(yīng)用于該串行比特流。
6.如權(quán)利要求1的測試及測量儀器,其中該控制器進一步配置為 響應(yīng)于該用戶界面來生成引用該串行比特流的索引;以及使用該索引將該正則表達式應(yīng)用于該串行比特流。
7.如權(quán)利要求1的測試及測量儀器,其中該控制器進一步配置為將該正則表達式的數(shù)據(jù)與該串行比特流中的該正則表達式的匹配相關(guān)聯(lián)。
8.如權(quán)利要求1的測試及測量儀器,其中該用戶界面配置為呈現(xiàn)之前定義的正則表達式的數(shù)據(jù);該控制器配置為響應(yīng)于與該之前定義的正則表達式的呈現(xiàn)數(shù)據(jù)相關(guān)聯(lián)的用戶輸入來 構(gòu)造正則表達式。
9.如權(quán)利要求1的測試及測量儀器,進一步包括觸發(fā)系統(tǒng),其配置為響應(yīng)于該正則表達式對該串行比特流的匹配而觸發(fā)獲取。
10.一種方法,包括 接收串行比特流;將正則表達式應(yīng)用于該串行比特流;以及響應(yīng)于該正則表達式對該串行比特流的應(yīng)用而通過用戶界面呈現(xiàn)獲取的數(shù)據(jù)。
11.如權(quán)利要求10的方法,進一步包括使用該正則表達式的對齊正則表達式搜索該串行比特流;以及響應(yīng)于該串行比特流中與該對齊正則表達式的匹配而應(yīng)用該正則表達式的余項。
12.如權(quán)利要求10的方法,進一步包括響應(yīng)于由該正則表達式定義的寬度,當該正則表達式應(yīng)用于該串行比特流時,對引用 該串行比特流的索引進行增量。
13.如權(quán)利要求10的方法,進一步包括使用等于該正則表達式寬度的引用該串行比特流的多個索引來將該正則表達式應(yīng)用 于該串行比特流;以及從索引中選擇具有最多數(shù)量的與該正則表達式的匹配的索引。
14.如權(quán)利要求10的方法,進一步包括使用引用與該觸發(fā)信號相關(guān)聯(lián)的串行比特流的索引,來將該正則表達式應(yīng)用于該串行 比特流。
15.如權(quán)利要求10的方法,進一步包括響應(yīng)于該用戶界面而生成引用該串行比特流的索引;以及 使用該索引將該正則表達式應(yīng)用于該串行比特流。
16.如權(quán)利要求10的方法,進一步包括將該正則表達式的數(shù)據(jù)與該串行比特流中的該正則表達式的匹配相關(guān)聯(lián)。
17.如權(quán)利要求10的方法,進一步包括 呈現(xiàn)之前定義的正則表達式的數(shù)據(jù);響應(yīng)于與該之前定義的正則表達式的呈現(xiàn)數(shù)據(jù)相關(guān)聯(lián)的用戶輸入而構(gòu)造正則表達式。
18.如權(quán)利要求10的方法,進一步包括響應(yīng)于該正則表達式對該串行比特流的匹配而觸發(fā)獲取。
19.一種測試及測量儀器,包括 用戶界面;控制器,配置為通過該用戶界面呈現(xiàn)之前定義的正則表達式的數(shù)據(jù);以及響應(yīng)于與該之前定義的正則表達式的呈現(xiàn)數(shù)據(jù)相關(guān)聯(lián)的用戶輸入而構(gòu)造正則表達式。
20.如權(quán)利要求19的測試及測量儀器,其中該控制器配置為通過該用戶界面接收與該之前定義的正則表達式相關(guān)聯(lián)的至少一個匹配值;以及 將該至少一個匹配值添加到該正則表達式中。
21.如權(quán)利要求19的測試及測量儀器,其中該控制器配置為 從該之前定義的正則表達式構(gòu)造正則表達式;接收與該之前定義的正則表達式的元素相關(guān)聯(lián)的值;以及 響應(yīng)于該值,修改該正則表達式。
全文摘要
描述了一種測試及測量儀器,其包括用戶界面和控制器。該控制器配置為接收串行比特流;將正則表達式應(yīng)用于該串行比特流;以及通過用戶界面呈現(xiàn)獲取的數(shù)據(jù)或其它數(shù)據(jù)以響應(yīng)該正則表達式對該串行比特流的應(yīng)用。
文檔編號H03M7/02GK102130689SQ20101062502
公開日2011年7月20日 申請日期2010年12月6日 優(yōu)先權(quán)日2009年12月4日
發(fā)明者K·D·魯爾 申請人:特克特朗尼克公司