從聲明協(xié)議描述導出硬件解碼加速的制作方法
【專利說明】從聲明協(xié)議描述導出硬件解碼加速
[0001]相關申請數(shù)據(jù)
本申請要求出于全部目的并入本文的2014年1月24日提交的美國臨時專利申請序列號62/068,384的利益。
【背景技術】
[0002]本發(fā)明涉及測試和測量儀器,并且更具體地涉及在測試和測量儀器中重創(chuàng)建比特流的分析的方式。
[0003]信號的實時分析占有一席之地。但是有時,其對事后并且較為緩慢地重創(chuàng)建測試測量儀器對數(shù)據(jù)的操作是有用的,使得可以檢查細節(jié)。當前,不存在當分析比特流中的數(shù)據(jù)時進行該分析重創(chuàng)建的方式。
[0004]本發(fā)明的實施例解決就現(xiàn)有技術而言的這個和其它問題。
【附圖說明】
[0005]圖1A示出用于匹配特定分組的協(xié)議的示例。
[0006]圖1B示出可以匹配圖1A的分組的狀態(tài)機。
[0007]圖1C示出在涉及圖1A的分組的數(shù)據(jù)的條件下可以觸發(fā)的狀態(tài)機。
[0008]圖2A示出用于匹配若干分組的協(xié)議的第二示例。
[0009]圖2B示出匹配圖2A的分組的未經優(yōu)化的狀態(tài)機。
[0010]圖2C示出匹配圖2A的分組的經優(yōu)化的狀態(tài)機。
[0011]圖2D示出在涉及圖2A的分組的數(shù)據(jù)的條件下可以觸發(fā)的狀態(tài)機。
[0012]圖3A-3B示出經修改以反映復合觸發(fā)條件的圖1B的狀態(tài)機。
[0013]圖4示出根據(jù)本發(fā)明的實施例的可以創(chuàng)建和使用圖1B-1C和2B-2D的狀態(tài)機以在滿足各種觸發(fā)條件時觸發(fā)測試和測量儀器并且將反映圖1B-1C和2B-2D的狀態(tài)機的操作的面包肩(breadcrumb)保存到存儲器中的測試和測量儀器。
[0014]圖5示出關于圖4的狀態(tài)機修改器的更多細節(jié)。
[0015]圖6示出關于圖4的面包肩的更多細節(jié)。
[0016]圖7A-7B示出根據(jù)本發(fā)明的實施例的用于使用圖4的測試和測量儀器從協(xié)議和用戶配置創(chuàng)建觸發(fā)狀態(tài)機的過程的流程圖。
[0017]圖8示出根據(jù)本發(fā)明的實施例的用于使用圖4的測試和測量儀器從協(xié)議和復合觸發(fā)條件創(chuàng)建觸發(fā)狀態(tài)機的過程的流程圖。
[0018]圖9示出根據(jù)本發(fā)明的實施例的用于使用圖4的測試和測量儀器優(yōu)化狀態(tài)機的過程的流程圖。
[0019]圖10示出根據(jù)本發(fā)明的實施例的用于使用圖4的測試和測量儀器來使用創(chuàng)建可以保存面包肩的狀態(tài)機的過程的流程圖。
【具體實施方式】
[0020]在解釋本發(fā)明如何工作之前,理解正則表達式與狀態(tài)機之間的關系是有用的。給定正則表達式,可以構造表示該正則表達式的狀態(tài)機。狀態(tài)機然后可以用于確定特定輸入是否匹配正則表達式。如果狀態(tài)機進行到可接受的結束狀態(tài),則輸入匹配正則表達式;否貝IJ,輸入不匹配正則表達式。
[0021]圖1A示出表述為正則表達式的用于名為“dataPacket(數(shù)據(jù)分組)”的數(shù)據(jù)分組的協(xié)議的示例。協(xié)議105描述數(shù)據(jù)分組。當比特流與該正則表達式比較時,系統(tǒng)可以確定是否在比特流內發(fā)現(xiàn)分組。
[0022]圖1B示出對應于圖1A的正則表達式的狀態(tài)機。狀態(tài)機110包括狀態(tài)115,120,125,130,135,140和145,在這些狀態(tài)之間進行轉換。每一個狀態(tài)(其還可以稱為節(jié)點或頂點)描述需要匹配什么數(shù)據(jù)以進入狀態(tài)(接受準則)。每一個箭頭是倘若滿足針對狀態(tài)的目標接受準則,則可以遍歷的路徑。除了開始狀態(tài)115和成功狀態(tài)145之外,這些狀態(tài)順序對應于分組所預期的數(shù)據(jù)。因此,狀態(tài)120匹配比特流內的狀態(tài)S,狀態(tài)125匹配對照標記為“begin(開始)”的字段的數(shù)據(jù)的三個比特,狀態(tài)130匹配對照標記為“addK地址)”字段的數(shù)據(jù)的四個比特等等。假定所有數(shù)據(jù)都可以由狀態(tài)機110的狀態(tài)匹配,當?shù)竭_成功狀態(tài)145時,系統(tǒng)可以聲明分組“dataPacket”已經被成功地匹配。
[0023]狀態(tài)機110表示實際狀態(tài)機的簡化版本。例如,狀態(tài)機110不標記各種狀態(tài)之間的轉換,狀態(tài)機110也不示出當數(shù)據(jù)不匹配預期時所使用的錯誤狀態(tài)或轉換。本領域技術人員甚至在沒有這些細節(jié)的情況下也將理解狀態(tài)機110如何運行。
[0024]正式地,以數(shù)學術語,狀態(tài)機可以表示為五元組(Σ,S,so, δ, F),其中Σ為字母表(狀態(tài)機所識別的符號集合),S為狀態(tài)機中的狀態(tài)集合,so為初始狀態(tài),δ是轉換函數(shù),其從S中的每一個狀態(tài)和Σ中的每一個符號映射到S中的狀態(tài)(其可以是與輸入狀態(tài)相同的狀態(tài)),并且F為S中的最終狀態(tài)的集合。因此,狀態(tài)機110可以更正式地表示為(Σ,S,so,δ, F),其中:
Σ = {S,0,1,…}(可以潛在地存在比僅僅狀態(tài)S和二進制值O和I更多的所識別的符號,即使這些是僅有的由狀態(tài)機所識別的符號)
S = {110, 115, 120, 125, 130, 135, 140, 145}so = 110
δ(δ在此并未更加詳細地表述,因為表述完整的轉換函數(shù)將會非常棘手并且具有極少價值)
F = {145}
事實上,狀態(tài)機110的這種表述不一定是完整的。轉換典型地發(fā)生在各個符號上,而不是符號組。因此,從狀態(tài)120到125的轉換可以實際上涉及三個轉換(以及因此的一些中間狀態(tài)):針對標記為“begin”的字段所識別的每一個比特一個。但是作為簡化,本領域技術人員將理解狀態(tài)機110如何運行。
[0025]如果針對狀態(tài)機110中的給定狀態(tài)讀取到特定值,用戶可能想要觸發(fā)某個過程。例如,如果地址字段存儲值10(以二進制,1010;以十六進制,A),用戶可能想要觸發(fā)過程。圖1C示出狀態(tài)機110可以如何進行修改以實現(xiàn)該觸發(fā)的示例。在圖1C中,取代于對照針對地址字段的任何可能值進行匹配,狀態(tài)機150比較比特流與特定值1010(在狀態(tài)155中)。如果找到該值,則在狀態(tài)160處,觸發(fā)被視為滿足,并且觸發(fā)導致過程開始(無論過程可能是什么)。
[0026]要指出的是,狀態(tài)115和120在狀態(tài)機150中與在狀態(tài)機110中相同:狀態(tài)115是其中狀態(tài)機開始的狀態(tài),以及狀態(tài)120匹配來自比特流的狀態(tài)S。但是狀態(tài)165不同于狀態(tài)125,因為狀態(tài)165不關心正在讀取的特定字段。換言之,在狀態(tài)165中重要的是從比特流讀取三個比特。狀態(tài)155也不同于狀態(tài)130,因為狀態(tài)155僅涉及匹配特定比特模式1010,而不是匹配地址字段(如在狀態(tài)130中那樣)。最后,一旦匹配了用戶條件,不需要進行另外的匹配,因此狀態(tài)機150不包括狀態(tài)135和140的類似物:觸發(fā)可以在條件滿足之后立即發(fā)布。
[0027]圖1A-1C示出正則表達式、匹配正則表達式的狀態(tài)機和觸發(fā)狀態(tài)機的相當簡單的示例。(觸發(fā)狀態(tài)機有時簡單地稱為“狀態(tài)機”,但是從上下文本領域技術人員可以確定特定狀態(tài)機是觸發(fā)狀態(tài)機還是匹配正則表達式的狀態(tài)機)。圖2A-2D示出更復雜的示例。在圖2A中,示出用于三個不同分組的正則表達式。這些正則表達式可以轉變成狀態(tài)機,如圖2B中所示。要指出的是,圖2B中的狀態(tài)機205使用單個起始狀態(tài)來覆蓋所有三個可能的協(xié)議。
[0028]狀態(tài)機205可以如所示那樣使用。但是使用如所示的狀態(tài)機205將要求前瞻或回溯,這要求附加的存儲器并且可能減慢比特流的處理。例如,假定其中給定特定輸入可以到達多個狀態(tài),最左(如圖2B將被人員讀取,而不是處理器可能如何使用狀態(tài)機205)。例如,要指出的是,狀態(tài)210,215和220全部匹配Begin狀態(tài),并且狀態(tài)225,230和235全部匹配作為sIaveAddress(從地址)字段的4個比特。使用最左第一方案,在讀取Begin狀態(tài)和作為slaveAddress字段的4個比特之后,系統(tǒng)將處于狀態(tài)225。但是如果下一比特讀數(shù)