TW202324103A - 收集用於除錯及分析之運行時間資訊 - Google Patents
收集用於除錯及分析之運行時間資訊 Download PDFInfo
- Publication number
- TW202324103A TW202324103A TW111126275A TW111126275A TW202324103A TW 202324103 A TW202324103 A TW 202324103A TW 111126275 A TW111126275 A TW 111126275A TW 111126275 A TW111126275 A TW 111126275A TW 202324103 A TW202324103 A TW 202324103A
- Authority
- TW
- Taiwan
- Prior art keywords
- event
- events
- group
- module
- message format
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
一系統單晶片(SOC)系統包含功能模組,其包含一第一功能模組及一第二功能模組。該第一功能模組及該第二功能模組經組態以分別根據一第一組及一第二組一或多個報告規則,以一標準化訊息格式發送與該第一功能模組及該第二功能模組相關聯的第一狀態資訊及第二狀態資訊至一彙總模組。該彙總模組彙總該標準化訊息格式之該第一狀態資訊及該標準化訊息格式之該第二狀態資訊且插入一時間戳記,以獲得一附上時間戳記及彙總訊息串流。該附上時間戳記及經彙總訊息串流被儲存,且使一可視化系統能夠分析該第一功能模組及該第二功能模組。
Description
鑑於此等系統之即時性及複雜性,嵌入式及/或系統單晶片(SOC)系統中之意外行為眾所周知難以除錯。與其他類型之系統一起工作之除錯技術(諸如在非即時系統之關鍵位置處添加之侵入式除錯探針,在簡單系統中之「蠻力」除錯及在分佈式系統中易於存取之點處添加探針)係對於一些嵌入式及/或SOC系統而言,不容易攜帶及/或不可行。提供更佳工具及/或技術用於分析、除錯及/或監測此等系統之新技術將係所欲的。
本申請案主張2021年7月15日申請之題為COLLECTION OF RUNTIME INFORMATION FOR DEBUG AND ANALYSIS之美國臨時專利申請案第63/222,257號的優先權,該申請案出於所有目的係以引用的方式併入本文中。
本發明可依多種方式實施,包含作為一程序;一設備;一系統;一物質之組成;體現於一電腦可讀儲存媒體上之一電腦程式產品;及/或一處理器,諸如經組態以執行儲存於及/或由耦合至處理器之一記憶體提供之指令之一處理器。在本說明書中,此等實施方案或本發明可採取之任何其他形式可指稱技術。一般而言,在本發明之範圍內可改變所揭示程序之步驟之順序。除非另有說明,否則描述為經組態以執行一任務之組件(諸如一處理器或一記憶體)可經實施為經暫時組態以在一給定時間執行任務之一通用組件或經製造為執行任務之一特定組件。如本文中所使用,術語「處理器」係指經組態以處理諸如電腦程式指令之資料之一或多個裝置、電路及/或處理核心。
下文提供對本發明之一或多個實施例之一詳細描述以及繪示本發明之原理之附圖。結合此等實施例描述本發明,但本發明不限於任何實施例。本發明之範疇僅由申請專利範圍限制且本發明涵蓋許多替代、修改及等效物。為了提供對本發明之一透徹理解,在以下描述中闡述許多具體細節。此等細節係出於實例之目的而提供且本發明可根據申請專利範圍來實踐,而無需此等具體細節之一些或全部。為清楚起見,沒有詳細描述與本發明相關之技術領域中已知之技術材料,因此不會不必要地模糊本發明。
本文描述用於捕獲、產生及/或儲存(例如,一或多個狀態及/或事件資訊)資訊之一技術及/或系統之各種實施例,其等可用於分析一嵌入式及/或系統單晶片(SOC)系統之行為(根據需要或若需要)。如本文中所使用,術語「嵌入式系統」及「SOC (系統)」可互換使用。對於其中存在許多操作中之一SOC系統之執行個體之應用,現有除錯及/或分析技術係不夠的。例如,假設在一SOC系統上實施一儲存控制器(諸如一固態磁碟機(SSD)控制器)。對於大型儲存系統,諸如一雲端及/或企業儲存系統,可有操作中之數百或甚至數千個儲存控制器。現有除錯技術可僅暴露有限數目個I/O測試引腳(例如,大約4或8個I/O測試引腳),考慮到一單一SOC系統中各種功能模組之數目及複雜性,其通常係不夠的,加上操作中之嵌入式及/或SOC系統之絕對數目。使用下文所描述之技術,可產生及儲存使一可視化系統能夠比以前可用更詳細及/或更佳(例如,時間戳記及/或或跨功能模組)註釋審查、除錯或依其他方式分析一或多個SOC系統中之功能模組之操作之資訊。下圖描述產生此等資訊之此技術之一個實施例。
圖1係繪示產生及儲存附上時間戳記及經彙總訊息之一程序之一實施例之一流程圖,該等訊息繼而可用於分析一SOC系統中之功能模組。在一些實施例中,該程序由經組態以執行下文所描述之步驟之一SOC系統執行。
在100處,複數個功能模組中之一第一功能模組用於根據一第一組一或多個報告規則以一標準化訊息格式發送與第一功能模組相關聯之第一狀態資訊至一彙總模組。
在102處,複數個功能模組中之一第二功能模組用於根據一第二組一或多個報告規則以標準化訊息格式發送與第二功能模組相關聯之第二狀態資訊至彙總模組。應注意,標準化訊息格式中之狀態資訊、內容及/或有效負載對於第一功能模組(例如,在步驟100處)與在第二功能模組(例如,在步驟102處)中之狀態資訊、內容及/或有效負載可不同,但兩個功能模組使用相同標準化訊息格式來封裝或依其他方式囊封其等資訊。
如本文中所使用,術語「功能模組」係指為其捕獲狀態資訊(例如,包含狀態資訊、事件資訊等等)之任何邏輯或定義模組(例如,在RTL或程式碼中定義)。一功能模組可(例如)執行或支援一或多個操作且具有輸入及輸出,該功能模組經由輸入及輸出與SOC系統中之其他功能模組通訊及/或耦合至其他功能模組。例如,在描述硬體之RTL或包括韌體之程式碼中,一功能模組可分別對應於RTL或韌體程式碼中之一硬體或韌體模組。在各種實施例中,一功能模組可為一韌體模組或一硬體模組。在各種實施例中,第一功能模組及第二功能模組可為相同類型(例如,第一功能模組及第二功能模組兩者係硬體)或不同類型(例如,第一功能模組係韌體且第二功能模組係硬體)。在一些實施例中,一功能模組包含一CPU (或其他嵌入式處理器)及經組態以在(相同)功能模組中之該CPU上操作之韌體兩者。
報告規則(例如,在步驟100及102中提及)為一對應功能模組定義在標準化訊息格式中包含什麼狀態資訊及何時發送此等資訊。在一個實例中,第一功能模組及第二功能模組具有不同功能及/或支援一不同組功能且因此彼等功能模組之報告規則係不同(例如,針對各功能模組定制及在除錯及/或對該功能模組之分析期間什麼為受關注)。替代地,若存在重複功能模組,則報告規則可相同。
在一些實施例中,報告規則包含一基於事件之報告規則,其中若一預定義條件或事件(例如,在報告規則中描述)在一給定功能模組中滿足或依其他方式滿足,則發送狀態資訊(例如,每次偵測一給定事件時)。此等實施例中之報告規則進一步包含當一給定事件發生時在標準化訊息格式中包含什麼狀態資訊。例如,假設一功能模組與通過一頻道進行通訊相關聯,其中此操作由具有一或多個中間事件(例如,與握手相關聯之事件、獲得對一共用通訊頻道之存取、一傳輸確認等等)之一開始事件及一結束事件書封。若此等事件之一者發生,則報告規則可(作為實例)指示功能模組包含(例如,以標準化訊息格式):(1)識別事件之資訊及(2)與該特定事件相關之選定資訊(例如,一相關聯狀態機、一相關聯緩衝區之一狀態、一通訊夥伴之一狀態、其中傳輸訊息所在之一指標或位置、一序號或與一傳輸訊息相關聯之其他後設資料等等),標準化訊息格式允許之空間。
在一些實施例中,報告規則包含一基於時間之報告規則,其中若功能模組滿足基於時間之報告規則中指定之一條件,則定期發送(例如,以預定義或設置之時間間隔)狀態資訊(由基於時間之報告規則指定),直至不再滿足條件。從概念上而言,基於時間之報告類似於在一SOC內暴露選擇信號或暫存器之I/O測試引腳,不同之處在於報告發生在離散時間(並非連續時間)且僅在滿足條件時發生。此外,報告之信號範圍及/或數目超過由有限數目個I/O測試引腳暴露之典型四個或八個信號之範圍及/或數目。此外,由彙總模組應用之時間戳記允許在分析及/或顯示期間交叉引用不同信號或資訊(例如,在一給定功能模組內或跨功能模組)。實際上,為了將報告之狀態資訊量保持為更易於管理或易於處理之資訊量,基於時間之報告(至少在此實例中)僅在此實例中滿足一條件時發生。(替代地,在一些實施例中,可沒有條件且總是報告指定之狀態資訊。)在一個實例中,若經報告之狀態資訊係一功能模組中之一有限狀態機之值或狀態,則該值或狀態(僅)在有限狀態機不處於空閒狀態時報告。
在104處,彙總模組用於彙總標準化訊息格式之第一狀態資訊及標準化訊息格式之第一狀態資訊。在一些實施例中,各功能模組具有至彙總模組之一專用鏈路,經由該鏈路將訊息(例如,具有標準化格式且含有狀態資訊)發送至彙總模組。由於在此等專用鏈路上接收訊息,其等可自多個串流合併至一單一串流。
在106處,彙總模組用於插入一時間戳記以獲得一附上時間戳記及經彙總訊息串流,其中附上時間戳記及經彙總訊息串流使一可視化系統能夠分析第一功能模組及第二功能模組。在各種實施例中,根據需要,可首先執行彙總(例如,在步驟104處),接著係時間戳記(例如,在步驟106處),或反之亦然。
時間戳記之插入使得一可視化系統(其擷取附上時間戳記及經彙總串流)能夠沿一共同時間軸對準來自各種功能模組之不同狀態資訊。類似地,在一單一功能模組內,附上時間戳記及經彙總訊息串流中之時間戳記容許比較及/或與不同報告規則相關聯之狀態資訊之時間相關性(例如,一個基於事件之報告規則係搜尋事件X及另一基於事件之報告規則係在一單一功能模組中搜尋事件Y)。
在一些實施例中,時間戳記(例如,在步驟106處)依容許使用一共同時間軸或時間基準對來自不同SOC系統之狀態資訊進行隨後比較之一方式執行。例如,此可藉由將SOC中之時間戳記值同步於與SOC系統互動之主機系統之一時間戳記值來完成。替代地,在一些實施例中,沒有嘗試建立一共同時間軸或時間參考,因為當比較一給定事件序列之不同SOC時,事件之間的時間及1個I/O自一端流至另一端之時間係比較因數。
在108處,一記憶體用於儲存附上時間戳記及經彙總訊息串流。如將在下文更詳細描述,記憶體可充當一緩衝器,以盡快自SOC系統導出附上時間戳記及經彙總訊息串流,使得記憶體不溢出。在一些實施例中,附上時間戳記及經彙總訊息串流自記憶體(例如,在SOC系統上)發送至一可視化系統(例如,用於即時及/或即時除錯或分析)。替代地,可將附上時間戳記及經彙總訊息串流自記憶體(例如,在SOC系統上)發送至一些脫離SOC儲存媒體,若稍後需要分析,則可隨後由一可視化系統自該儲存媒體擷取附上時間戳記及經彙總訊息串流。
如上文所描述,在一些實施例中,第一組一或多個報告規則包含一基於事件之報告規則;且發送標準化訊息格式之第一狀態資訊包含:判定第一功能模組是否滿足基於事件之報告規則;且回應於判定第一功能模組滿足基於事件之報告規則,以標準化訊息格式發送由基於事件之報告規則指定的狀態資訊至彙總模組。
如上文所描述,在一些實施例中,第一組一或多個報告規則包含一基於時間之報告規則;且發送標準化訊息格式之第一狀態資訊包含:判定第一功能模組是否滿足基於時間之報告規則;且當第一功能模組滿足基於時間之報告規則時,以標準化訊息格式週期性地發送由基於時間之報告規則指定的狀態資訊至彙總模組。
與僅限於少數測試I/O引腳之除錯技術相比,使用圖1之程序可獲得一更完整及更豐富之SOC系統圖。例如,有限數目個測試I/O引腳通常僅可暴露與一個功能模組相關聯的一個狀態機(作為一實例);鑑於測試I/O引腳之有限數目,此並不能提供有關其他功能模組同時發生之情況的洞察力。
此外,因為功能模組可為硬體模組及/或韌體模組,所以圖1之程序容許韌體及硬體兩者正在做什麼的比較及/或互相關。此由時間戳記之共同插入點(例如彙總模組)支援,使得可沿一共同時間軸正確放置硬體狀態資訊(例如,來自一給定硬體模組)及一韌體狀態資訊(例如,來自一給定韌體模組)用於呈現或顯示給一使用者。
應注意,設計及建構執行圖1之程序的除錯基礎設施及/或模組係相對耗時。使用數百或甚至數千個儲存控制器(例如,控制器之各者可在一SOC系統上實施)之大規模儲存系統(例如,雲端及/或企業儲存系統)更難除錯;在此等應用程式中,投資於一強大除錯基礎設施係一值得的投資。即使對於僅具有一個儲存控制器之較小實施,投資本文中所描述之基礎設施及/或模組亦係值得的,因為其有助於效能調諧,因為一個儲存裝置代表所有儲存裝置。
繪示執行圖1之程序之一實例系統可有幫助。下圖展示此一實例。
圖2係繪示一SOC系統之一實施例之一系統圖,在各功能模組中具有報告模組以收集及儲存狀態資訊。在此實例中,例示性SOC系統(200)包含複數個功能模組(202)。在各種實施例中,例示性SOC系統(200)係一特定應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)等等。在各種實施例中,一功能模組(202)係由電子電路單獨構成之一硬體模組、由在一處理單元上操作之指令程式碼組成之一韌體模組等等。
在此實例中,需要分析(例如,即時或在一些等待之後)複數個功能模組(202)之各者之行為及/或操作之能力。例如,功能模組之各者可有助於資料之關鍵處理或移動,使隨後分析及/或審查高度需要。為此,各功能模組(202)具有一子組件,在此圖中稱為一報告模組(204),其自其功能模組內收集狀態資訊,將該狀態資訊囊封至一訊息中,且將在一專用鏈路(206)上之囊封資訊發送至一中央訊息收集模組,在此圖中稱為一彙總模組(208)。在一些實施例中,不太關鍵及/或不太受關注(自一除錯角度來看)之功能模組不具有一報告模組。
在此實例中,各報告模組(204)包含一或多個報告規則(未展示),其描述產生及發送基於時間之訊息及/或基於事件之訊息之條件。此等報告規則亦可描述哪些特定暫存器、值、節點、狀態等等應經包含或依其他方式用作發送至彙總模組(208)之狀態資訊。例如,各報告模組(204)可包含將報告規則中指定之條件與該特定功能模組中之相關變量、狀態、事件等等進行比較之一控制器。
在此實例中,各報告模組(204)具有至彙總模組(208)之一專用鏈路(206)。儘管可使用一共用鏈路,但若共用鏈路正由另一報告模組使用且服務不足之報告模組用完緩衝區,則共用鏈路在報告模組處具有潛在丟失訊息。例如,假設功能模組之一者具有一突發訊息;通過一共用鏈路,突發功能模組可餓死非突發功能模組。使用一專用鏈路降低此等丟失訊息之可能性。
由於附上時間戳記係在彙總模組(208)處而非在報告模組(204)處執行,因此訊息依一及時到達彙總模組很重要(即,來自各種鏈路之訊息係時間敏感)。此係使用專用鏈路(206)而非共用鏈路可係所欲之另一原因。彙總亦在彙總模組(208)處執行,因此保持傳入序列之一準確表示係重要的(即,來自各種鏈路之訊息係序列敏感)。此係使用專用鏈路(206)之另一益處:其等有助於保持一正確及/或準確訊息序列。在一些實施例中,彙總模組(208)以硬體(例如,與韌體相反)實施,以便更佳跟上由各種報告模組(204)產生之訊息。
在此實例中,為了節省電力,報告模組(204)與彙總模組(208)之間的鏈路(206)以SOC系統之剩餘者之標稱操作頻率之一分率操作。例如,若SOC系統中之標稱操作頻率為1 GHz,則鏈路可在該頻率之1/4 (例如,250 MHz)或該頻率之1/5 (例如,200 MHz)下操作。類似地,由於訊息相對較小(例如,在16位元至64位元之範圍內),各鏈路(206)之寬度可在16位元之數量級,而SOC系統(200)之剩餘者中之一些匯流排大約係64位元。由此除錯結構產生之低頻率及少量資料允許對一典型系統之附加項非常低,藉此允許在現實世界操作期間始終啟用此功能。此繼而實現真實故障(資料)捕獲、快速故障分析及/或現實世界場及系統故障之分類。
在此實例中,訊息由彙總模組(208)自各種鏈路(206)接收且經彙總成一單一經彙總串流。接著將一時間戳記插入至經彙總串流中以獲得一附上時間戳記及經彙總串流。(應注意,儘管此實例首先描述彙總且接著係附上時間戳記,但圖1之程序沒有說明順序且若需要,可在彙總之前執行附上時間戳記。)
附上時間戳記及經彙總串流自彙總模組(208)傳遞至記憶體(210)。自記憶體(210),附上時間戳記及經彙總串流經由一通訊介面(212)自SOC系統(200)傳送至一可視化系統(214)。在此實例中,可視化系統(214)經組態以如由一使用者指示儲存、過濾、顯示、呈現及/或分析所接收之串流。例如,若一使用者想要立即即時觀察及/或分析SOC系統(200)之操作,則可需要自通訊介面(212)至可視化系統(214)之此路徑。
在此實例中,記憶體(210)中之附上時間戳記及經彙總串流亦經傳遞至一儲存介面(216),使得資訊可在晶片外導出至一(外部)儲存媒體(218),諸如快閃及/或固態磁碟機(SSD)記憶體。例如,此測試基礎設施首先在一儲存控制器上進行原型設計及/或實施,且因此已實施儲存介面(216)。換言之,在一些實施例中,儲存介面(216)係一「生產」介面,其係/已實施及/或由SOC (200)支援之例行非除錯相關操作使用。
出於繪示性目的,在此圖中展示多個介面或路徑(例如,212及216),經由其自SOC系統(200)輸出附上時間戳記及經彙總串流。在一些實施例中,僅實施一單一介面或路徑(例如,取決於對SOC系統及/或其功能模組之即時分析之應用及/或期望(或因此缺乏))。
在一些情況下,記憶體(210)已滿。在一些實施例中,若發生此情況,則覆蓋舊訊息以繼續捕獲新資訊,或可丟棄新訊息以允許儲存舊資訊。在一些情況下,較舊訊息由較新訊息覆蓋提高以後之可除錯性,前提係任何錯誤事件將觸發處理器一中斷且處理器可中斷此一覆蓋或清除含有錯誤之日誌。此實例中之彙總模組(208)負責偵測記憶體(210)何時已滿並決定如何處理其。
在一個具體實例中,SOC (200)係一快閃儲存控制器且儲存媒體(218)係由快閃儲存控制器管理及/或控制之快閃儲存媒體。在此申請案中,由於存在容易可用之一儲存媒體(218)且SOC (200)控制對該儲存媒體之寫入(例如,因此無需擔心任何捕獲資訊由另一裝置意外覆蓋),因此記憶體(210)中之資訊經由一儲存介面(216)在晶片外發送且不實施通訊介面(212)。若期望由一可視化系統分析,則儲存媒體(216)可由可視化系統存取以擷取儲存於其中之(例如除錯)資訊。
給出可由報告模組(204)使用之標準化訊息格式之一些實例可有幫助。下圖描述一些此等實例。
圖3係繪示一基於時間之訊息、一基於事件之訊息及一時間戳記訊息之實施例之一圖。此等係一標準化訊息格式之一些實例,其中狀態資訊可包含於圖1中之步驟100及102處。同樣地,在圖2中,報告模組(204)可使用此處展示之實例標準化訊息格式之一或多者向彙總模組(208)發送狀態資訊。在各種實施例中,一系統可支援任何數目種標準化訊息格式(即,訊息類型)。
在此實例中,展示三種訊息類型,其等由訊息中一固定位置中之一類型欄位(322)識別,其在此實例中係各訊息之前三位元。此實例中之第一訊息類型係一基於時間之訊息(300),其中第一欄位(包括3個位元)係類型欄位(302),具有將訊息識別為一基於時間之訊息的一值。
類型欄位(302)之後係一3位元序列欄位(304)。此欄位係一基於時間之序列識別符,其經包含用於其中給定功能模組之操作頻率大於一給定報告模組(例如,圖2中之204之一者)與彙總模組(例如,圖2中之208)之間的鏈路頻率之情況。例如,當埠與彙總模組之間的互連以(例如)標稱系統操作頻率之25%操作時,此係一常見情況,其(如上文所描述)節省電力。使用如此組態之系統,訊息可偶爾經丟棄,因為生產速率(例如,藉由報告模組)大於吸收或運輸速率(例如,藉由彙總模組)。條件經偵測且作為兩個相鄰訊息之序列識別符之一非均勻增量進行後處理。在一個實例中,每次發送一新基於時間之訊息時,序列欄位(304)增加一,使得若有兩個或更多個跳躍,則後處理器知道一些訊息已丟失。在一些實施例中,序號(304)基於及/或包含來自用於時間戳記訊息(340)之時間戳記之一些位元。
基於時間之訊息(300)中之下一個欄位係具有10位元之有效負載欄位(306)。例如,一基於時間之報告規則可指定在一基於時間之訊息(300)之有效負載欄位(306)中包含什麼狀態資訊。在一個實例中,當一有限狀態機不處於空閒狀態時(或同時),發送包含有限狀態機之值或狀態之基於時間之訊息(300)。此等基於時間之訊息(300)繼續經週期性地發送,直至有限狀態機返回至空閒狀態為止,在該點處基於時間之訊息產生停止(至少在此實例中)。
此實例中之第二類型之訊息係基於事件之訊息(320)。與其他訊息類型一樣,第一欄位係3位元類型欄位(322),其中值將訊息識別為一基於事件之訊息。
接下來係一13位元標籤欄位(324)及3位元子類型欄位(326)。子類型欄位(326)有時指稱一事件識別符欄位,因為由一基於事件之訊息捕獲及報告之各種事件各分配有一事件編號或識別符。在此實例中,因為子類型(即,事件識別符)欄位(326)具有3位元,所以事件識別符之範圍自0至7,包含端點。
對於一些功能模組,具有八個事件識別符足以唯一地識別所有需要記錄之事件。然而,一些功能模組支援許多不同類型之操作(例如,傳輸以及接收),在一開始事件與一結束事件之間具有許多受關注之中間事件,及/或具有一控制頻道及一資料頻道(各具有其自身相關聯事件)。因此,在一些情況下,八個事件識別符不足以唯一識別所有需要報告之事件。在此實例中,為了適應此等情況,一些事件共用一事件識別符值且標籤欄位(324)之一些部分用於區分共用一事件識別符值之事件。若一事件識別符值係唯一(即,其僅與一個事件相關聯),則標籤用於傳輸其他資訊,諸如額外狀態資訊(例如,根據相關基於事件之報告規則中之說明)。
基於事件之訊息(320)中之下一者係兩個保留欄位。第一保留欄位(328)係經保留用於用訊息產生功能模組之一識別符替換之一5位元空間。例如,在圖2中,一功能模組(202)將產生基於事件之訊息(320),但將此第一保留欄位(328)留空。在彙總模組(208)處,第一保留欄位(328)由彙總模組(208)用與自其接收基於事件之訊息(320)之功能模組(202)相關聯之識別符(例如,知道因為鏈路(206)係專用,而非共用)。
第二保留欄位(330)係為用一時間戳記替換而保留之一8位元欄位。事件訊息時間戳記(330)用於與基於時間之訊息(300)中之基於時間之序列識別符(304)相同之目的。然而,由於基於事件之訊息比基於時間之訊息更零星地出現,因此其等需要一更大欄位來捕獲基於事件之訊息(320)之間或一基於事件之訊息(320)與一時間戳記訊息(340)之間的一更大時間差(320)。與第一保留欄位(328)一樣,第二保留欄位由一報告模組(例如,圖2中之204)及/或功能模組(例如,圖2中之202)留空且在彙總模組處填寫(例如,圖2中之208)。
基於事件之訊息(320)中之最後欄位係用於攜帶與相關事件相關聯之有效負載之一32位元有效負載欄位(332)。包含於有效負載(332)中之特定(狀態)資訊由相關之基於事件之報告規則指定。
從概念上而言,基於事件之報告(例如,使用一基於事件之報告規則)可被認為係一(更多)稀疏報告技術,因為當偵測一條件時僅產生一個基於事件之訊息。相反,基於時間之報告(例如,使用一基於時間之報告規則)係一(更)密集報告技術,因為在滿足條件時會連續產生基於時間之訊息。因而,基於時間之報告將趨向於比基於事件之報告產生更多訊息。為解決此差異,例示性基於時間之訊息(300)之大小小於此實例中例示性基於事件之訊息(320)之大小(例如,例示性基於時間之訊息(300)之16位元與例示性基於事件之訊息(320)之64位元)。
此實例中之第三訊息係一時間戳記訊息(340),其包含用於將訊息識別為一時間戳記訊息之一3位元類型欄位(342)及用於儲存時間戳記之值之一29位元有效負載欄位(344)。在一些實施例中,寫入至基於事件之訊息(320)之第二保留欄位(330)中之時間戳記係包含於時間戳記訊息(342)之有效負載(344)中之較長時間戳記之最低八位元。
在一些實施例中,時間戳記訊息之產生或插入由時間驅動(例如,自從產生最後一個時間戳記訊息以來,其已長於某個時間臨限值,因此是時候產生另一時間戳記訊息)。在一些實施例中,其係事件驅動。例如,由於基於時間之訊息(300)具有一序列但沒有時間戳記,因此在一些實施例中,若已達到某個臨限值數目個連續之基於時間之訊息(例如,在一經彙總串流中)而沒有任一基於事件之訊息(其具有一時間戳記)或發生之一時間戳記訊息。
在此實例中,時間戳記訊息(340)不跨訊息互連(例如,圖2中之206)傳輸。相反,此實例中之時間戳記訊息由彙總模組(例如,圖2中之208)產生並插入至寫入至訊息捕獲記憶體(例如,圖2中之210)之串流中用於在訊息串流出於任何原因(例如,暫時性記憶體不可用)中斷時進行準確表示。
如此實例中所展示,在一些實施例中,時間戳記(例如,在圖1中之步驟106處)包含將一時間戳記訊息(例如,340)插入至一經彙總訊息串流中。
此實例亦展示,在一些實施例中,時間戳記(例如,在圖1中之步驟106處)包含將一時間戳記寫入至標準化訊息格式(例如,320)中之經保留用於時間戳記的一保留欄位(例如,330)中。
本文中所繪示之訊息大小及格式僅係例示性且不旨在限制。在各種實施例中,可使用不同訊息大小、欄位大小,及/或欄位位置。
在此實例中,三種例示性訊息類型(300、320及340)之大小經仔細選擇,使得在捕獲記憶體(例如,圖2中之210)中,訊息可在訊息邊界上均勻地交織,以在發生訊息覆蓋時防止部分訊息。下圖展示此之一實例。
圖4係繪示一訊息捕獲記憶體中之一彙總及時間戳記訊息串流之兩個實施例之一圖。在此圖中,一第一記憶體區段(400)及一第二記憶體區段(420)展示經儲存於訊息捕獲記憶體中之彙總及時間戳記訊息串流的兩個實例。例如,此等兩個記憶體區段(400及420)展示圖2中記憶體(210)之實例。
在第一記憶體區段(400)中,一32位元時間戳記訊息(402)首先出現,佔用一64位元記憶體槽之一半;槽之剩餘者未使用。在此實例中,各記憶體槽為64位元,且時間戳記訊息(402)具有圖3中所展示之實例大小及格式。
接下來,三個64位元事件訊息(404)各佔用一個記憶體槽,使得第二、第三及第四槽係由事件訊息佔用。
接著,儲存12個基於時間之訊息之一序列(406)。各基於時間之訊息(406)係16位元長,因此第五、第六及第七槽各具有每槽四個基於時間之訊息。在此實例中,基於時間之訊息用於捕獲一有限狀態機在其不處於空閒狀態時的狀態或值(例如,自其離開空閒狀態之時間直至其返回至空閒狀態之時間)。因而,在此實例中,術語「狀態捕獲」用於描述基於時間之訊息(406),但在其他實施例中,基於時間之訊息用於在一功能模組中捕獲或記錄其他類型的資訊。
最後槽由一基於事件之訊息(408)佔用。
在此實例中,各基於事件之訊息(例如,404)佔用一單一槽,而基於時間之訊息(例如,406)寫入四個至一槽。如此處所展示保持大小及(槽)偏移之優點係需要儲存之附加項資訊更少,若(作為一實例)事件訊息可在一槽內之任何偏移而非一零偏移開始,其將為必需的。類似地,若訊息大小並非彼此之倍數且訊息沒有與如此處所展示之槽對準,則當一舊訊息用一新訊息覆蓋時,隨機混合該兩個訊息將很難區分訊息邊界,從而建立部分訊息。部分訊息可缺少類型識別符(以區分訊息類型)及/或缺少訊息內容(使得難以識別訊息之結束)。
應注意,各種事件訊息(404及408)及狀態捕獲(即,基於時間之)訊息(406)可來自各種功能模組且不一定來自一單一功能模組。相反,其等在彙總模組處依其等經接收之順序彙總。
產生所展示之第一記憶體區段(400)之實施例之一缺點係支援多種訊息類型(各具有一不同訊息大小)增加彙總模組之複雜性。例如,為了確保最後事件訊息(408)開始於最後槽之開頭,彙總模組必須追蹤先前狀態捕獲(即,基於時間之)訊息(406)之數目,使得若數目並非四之一倍數,則在最後事件訊息之前插入一或多個未使用之第四槽(408)。在一些應用中,需要一不太複雜之實施方案,尤其係在首次實施除錯系統時。下圖展示一不太複雜之實施例,其中僅儲存事件訊息。
第二記憶體區段(420)展示其中僅產生及儲存基於事件之訊息(422)之一實例。即,在此實例中,(例如,由報告模組或彙總模組)既不產生時間戳記訊息,亦不產生狀態捕獲(即,基於時間之)訊息。
對僅產生及儲存基於事件之訊息(如第二記憶體區段(420)中所展示)之實施例之一益處在於彙總模組儲存訊息更簡單,因為僅有一個經支援之類型(及因此大小)之訊息。彙總模組不需要追蹤時間戳記訊息或狀態捕獲(即,基於時間之)訊息之數目且在需要之處插入未使用之第四或半個槽。這亦更節省記憶體,因為沒有未使用之部分,且所使用之記憶體之總量比第一記憶體組態少,因為趨向於有許多狀態捕獲(即,基於時間之)訊息,而基於事件之訊息趨向於變得更稀疏。由於此等原因,在一些實施例中,僅產生及儲存基於事件之訊息。
節省記憶體之另一方式係具有可組態或可選擇(例如事件)報告。下圖展示此之一實例。
圖5係繪示一快閃儲存控制器應用程式中可選擇事件群組之一實施例之一圖。在此實例中,SOC系統係一快閃儲存控制器(未展示),其寫入至快閃儲存媒體及自快閃儲存媒體讀取。例如,在圖2中,SOC系統(200)係一快閃儲存控制器且(外部)儲存媒體(218)係由快閃儲存控制器控制之快閃儲存媒體。在一些實施例中,例示性表(500及540)包含於一組報告規則中(參閱(例如)圖1中之步驟100及102)及/或一報告模組中(參閱(例如)圖2中之報告模組(204))。
在此實例中,具有所展示表之快閃儲存控制器具有硬體功能模組(例如,圖2中之202),其包含一NVM Express (NVMe)處理器、一NAND快閃控制器及一錯誤校正解碼器(例如,校正當資料長時間儲存及/或「洩漏」快閃儲存媒體時引入之錯誤)。硬體功能模組通常具有與每個主機命令相關聯之以4KBytes、8Kbytes等等為單位之一或多個資料處理。
例示性快閃儲存控制器中之韌體功能模組(例如,圖2中之202)包含主機管理韌體、一快閃轉譯層(FTL)及一後端模組(例如,與複數個NAND快閃介面控制器及/或一後端命令解析器相關聯),全部在一或多個CPU上操作。
對於硬體及韌體功能模組兩者,表示資料操作成功或失敗完成之重要事件包含資料處理之一開始、資料處理之一結束及如一CRC錯誤或某些索引不匹配之任何意外錯誤事件。捕獲此等事件對於除錯系統問題或理解系統內部行為非常有價值。
然而,取決於應用,在一些情況下,需要一更「節省記憶體」或稀疏方法,其中產生及儲存更少資訊,而在其他應用中,消耗更多記憶體之一方法係可接受的。例如,在沒有已知錯誤之情況下,前一種方法可係所欲的,但若已知存在一錯誤且快速識別一修復非常重要,則後一種方法可較佳。為此,在此實例中,一給定報告模組具有一或多個群組,其中各群組包含一或多個事件,且基於選定群組,報告對應事件(若選擇)。
第一表(500)展示為一NVMe處理器定義之群組及其事件。群組0 (502)包含三個事件:一事件ID為0之一寫入傳輸結束事件(504)、一事件ID為1之一讀取傳輸結束事件(506)及一事件ID為2之一NVMe命令開始事件(508)。
NVMe處理器表(500)中之群組1 (510)包含一單一事件:一事件ID為7之一NVME錯誤事件(512)。
NVMe處理器表(500)中之群組2 (514)包含三個事件:一事件ID為3之一寫入傳輸命令開始(516)、一事件ID為4之一讀取傳輸命令開始(518)及一事件ID為5之一NVMe命令結束事件(520)。
NVMe處理器具有許多受關注之事件,且因此在此表(500)中,一些群組具有多個事件(例如,群組0 (502)及群組2 (514))。相比之下,錯誤校正解碼器具有較少受關注事件,且因此各群組僅含有一單一事件。在錯誤校正解碼器表(530)中,群組0 (532)包含一解碼器結束事件(534),其具有一事件ID為0且與將經解碼資料寫入至某個目標之結束相關聯。錯誤校正解碼器表(530)中之群組1 (536)包含一事件ID為7之一解碼器錯誤事件(538)。錯誤校正解碼器表(530)中之群組2 (540)包含一解碼器開始事件(542)),其具有一事件ID為1且與自某個源讀取經編碼資料之開始相關聯。
在此實例中,所有錯誤事件(例如,NVMe錯誤(512)及解碼器錯誤(538)具有一事件ID為7(即,全部為1),使得可快速及/或更容易地定位錯誤。
此實例亦根據一(例如,典型或預期)重要性或興趣程度來組織群組。例如,群組0中之事件(例如,502及532)被認為具有最重要或最受關注之事件(例如,出於除錯及/或分析目的),群組1中之彼等(例如,510及536)係(略)不太重要及/或受關注,且群組2中之彼等(例如,514及540)係最不重要及/或受關注。
在此實例中,各群組在選擇行(522及544)中具有一對應選擇位元,使得可獨立於所有其他群組甚至其他功能群組中之群組來選擇各群組。在一個實例中,若需要一種非常稀疏之報告方法,則僅選擇群組0 (502及532)。若需要更多資訊,則選擇群組0及1 (502、510、532及536)。若具有所有可用資訊非常重要,則選擇所有群組(502、510、514、532、536及540)。此僅僅係一實例且對於各群組(至少在此實例中)具有一對應選擇位元,可選擇群組之任何組合。
下文係當選擇該表(500)中之所有群組(502、510及514)時由NVMe處理器功能模組產生之基於事件之訊息之一實例。T1、T2、T3等等按時間順序遞增。Tn可為T1之後之任何時間。
首先,產生對應於寫入傳輸命令開始事件之一寫入傳輸命令開始事件訊息(516)。此訊息包含識別NVMe處理器之一功能模組識別符、一子類型及/或事件ID為3 (對應於導致產生此訊息之事件)、具有來自主機之邏輯區塊位址編號之有效負載(例如,與寫入相關聯)及一時間戳記=T1。
接著,產生對應於寫入傳輸結束事件之一寫入傳輸結束事件訊息(504)。此訊息包含識別NVMe處理器之一功能模組識別符、一子類型及/或事件ID為0 (對應於導致產生此訊息之事件)、具有來自主機之邏輯區塊位址編號之一有效負載(例如,與寫入傳輸相關聯)及T2之一時間戳記。
此實例中之最後訊息係對應於NVMe錯誤事件(512)之一錯誤事件訊息。此訊息包含識別NVMe處理器之一功能模組識別符、一子類型及/或事件ID為7 (對應於導致產生此訊息之事件)、具有至針對其具一錯誤之命令之一鏈路或位址之一有效負載及T3之一時間戳記。
在可使用本文中所描述之技術除錯之一問題之一個實例中,假設一硬體功能模組具有在一些異常情況下(例如,由非常罕見之信號交互)該模組不發送一資料操作之一完成狀態之一錯誤。當發生此情況時,一系統資源(諸如一緩衝器槽)可經不必要地佔用且不經釋放(例如,因為其正在等待一完成狀態)。在系統級,此表現為硬體功能模組丟棄事件之後一系統停頓或長時間掛起。然而,使用本文中所描述之報告技術容許報告及/或產生與所討論之硬體功能模組相關聯之兩個基於事件之訊息:用於每個資料傳輸操作之一開始資料傳輸事件訊息及結束資料傳輸事件訊息。例外係未產生結束資料傳輸事件訊息之錯誤事務。藉由解析產生及儲存之經彙總及附上時間戳記串流,SOC開發者能夠識別此差異及根本原因(即,一特定硬體功能模組開始資料傳輸,但沒有完成資料傳輸(或,至少,沒有正確地發出資料傳輸完成之信號)。在沒有本文中所描述之技術之情況下,識別根本原因及修復錯誤之能力將花費更長時間且可想像可永遠無法找到。
下圖在一流程圖中更一般及/或正式描述上述實例(例如,具具有一或多個事件之可選群組)。
圖6係繪示以一標準化訊息格式發送第一狀態資訊之一程序之一實施例之一流程圖。在一些實施例中,圖6之程序用於圖1之步驟100中。圖1中之步驟100及102類似(在一些情況下,相同),且因此圖6中描述之技術可應用於圖1中之步驟102處發送一標準化訊息格式之第二狀態資訊。圖6之程序可由一功能模組(例如圖2中之202)中之一報告模組(例如圖2中之204)執行。
在600處,第一組一或多個報告規則經擷取,其中第一組一或多個報告規則包含:一第一群組之一或多個事件及與選擇第一群組之一或多個事件相關聯之一對應第一選擇位元;及第二群組之一或多個事件及與選擇第二群組之一或多個事件相關聯之一對應第二選擇位元。例如,圖5展示具有一或多個事件(504、506、508、512、516、518、520、534、538及542)之一些實例群組(502、510、514、532、536及540)。
如圖5之實例中所展示,在一些實施例中,第一群組之一或多個事件包含一結束操作事件且第二群組之一或多個事件包含一錯誤事件。
圖5亦展示在一些實施例中,第一群組之一或多個事件包含一結束操作事件;第二群組之一或多個事件包含一錯誤事件;且第一組一或多個報告規則進一步包含一第三群組之一或多個事件,其包含一開始操作事件。
在602處,判定第一選擇位元是否經確證。在判定第一選擇位元經確證之情況下,在604處,發送標準化訊息格式之第一狀態資訊至少部分基於第一群組之一或多個事件。在判定第一選擇位元未經確證之情況下,在606處,獨立於第一群組之一或多個事件發送標準化訊息格式之第一狀態資訊。換言之,報告模組不檢查未選擇之第一群組中之事件且彼等事件未報告。
在608處,判定第二選擇位元是否經確證。在判定第二選擇位元經確證之情況下,在610處,至少部分基於第二群組之一或多個事件發送標準化訊息格式之第一狀態資訊。在判定第二選擇位元未經確證之情況下,在612處,發生獨立於第二群組之一或多個事件發送標準化訊息格式之第一狀態資訊。即,第二群組中之事件未報告,因為未選擇該群組。
儘管為了清楚理解之目的已詳細描述前述實施例,但本發明不限於所提供之細節。有實施本發明之許多替代方式。所揭示之實施例係繪示性而非限制性。
100:步驟
102:步驟
104:步驟
106:步驟
108:步驟
200:例示性SOC系統
202:功能模組
204:報告模組
206:專用鏈路
208:彙總模組
210:記憶體
212:通訊介面
214:可視化系統
216:儲存介面
218:(外部)儲存媒體
300:基於時間之訊息
302:類型欄位
304:3位元序列欄位
306:有效負載欄位
320:基於事件之訊息
322:類型欄位
324:13位元標籤欄位
326:3位元子類型欄位
328:第一保留欄位
330:第二保留欄位
332:32位元有效負載欄位
340:時間戳記訊息
344:29位元有效負載欄位
400:第一記憶體區段
402:32位元時間戳記訊息
404:基於事件之訊息
406:基於時間之訊息
408:基於事件之訊息
420:第二記憶體區段
422:基於事件之訊息
500:第一表
502:群組0
504:寫入傳輸結束事件
506:讀取傳輸結束事件
508:NVMe命令開始事件
510:群組1
512:NVME錯誤事件
514:群組2
516:寫入傳輸命令開始
518:讀取傳輸命令開始
520:NVMe命令結束事件
522:選擇行
530:錯誤校正解碼器表
532:群組0
534:解碼器結束事件
536:群組1
538:解碼器錯誤事件
540:群組2
542:解碼器開始事件
544:選擇行
600:第一組一或多個報告規則經擷取,其中第一組一或多個報告規則包含:一第一群組之一或多個事件及與選擇第一群組之一或多個事件相關聯之一對應第一選擇位元;及第二群組之一或多個事件及與選擇第二群組之一或多個事件相關聯之一對應第二選擇位元
602:判定第一選擇位元是否經確證
604:至少部分基於第一群組之一或多個事件來發送標準化訊息格式之第一狀態資訊
606:獨立於第一群組之一或多個事件來發送標準化訊息格式之第一狀態資訊
608:判定第二選擇位元是否經確證
610:至少部分基於第二群組之一或多個事件來發送標準化訊息格式之第一狀態資訊
612:獨立於第二群組之一或多個事件來發送標準化訊息格式之第一狀態資訊
在以下詳細描述及附圖中揭示本發明之各種實施例。
圖1係繪示產生及儲存附上時間戳記及經彙總訊息之一程序之一實施例之一流程圖,該等訊息繼而可用於分析一SOC系統中之功能模組。
圖2係繪示一SOC系統之一實施例之一系統圖,在各功能模組中具有報告模組以收集及儲存狀態資訊。
圖3係繪示一基於時間之訊息、一基於事件之訊息及一時間戳記訊息之實施例之一圖。
圖4係繪示一訊息捕獲記憶體中之一彙總及時間戳記訊息串流之兩個實施例之一圖。
圖5係繪示一快閃儲存控制器應用程式中之可選擇事件群組之一實施例之一圖。
圖6係繪示以一標準化訊息格式發送第一狀態資訊之一程序之一實施例之一流程圖。
200:例示性SOC系統
202:功能模組
204:報告模組
206:專用鏈路
208:彙總模組
210:記憶體
212:通訊介面
214:可視化系統
216:儲存介面
218:(外部)儲存媒體
Claims (18)
- 一種系統單晶片(SOC)系統,其包括: 複數個功能模組,其包含一第一功能模組及一第二功能模組,其中: 該第一功能模組經組態以根據一第一組一或多個報告規則,以一標準化訊息格式發送與該第一功能模組相關聯之第一狀態資訊至一彙總模組;且 該第二功能模組經組態以根據一第二組一或多個報告規則,以該標準化訊息格式發送與該第二功能模組相關聯之第二狀態資訊至該彙總模組; 該彙總模組,其經組態以: 彙總該標準化訊息格式之該第一狀態資訊及該標準化訊息格式之該第二狀態資訊;且 插入一時間戳記以獲得一附上時間戳記及經彙總訊息串流,其中該附上時間戳記及經彙總訊息串流使一可視化系統能夠分析該第一功能模組及該第二功能模組;及 一記憶體,其經組態以儲存該附上時間戳記及經彙總訊息串流。
- 如請求項1之SOC系統,其中: 該第一組一或多個報告規則包含一基於事件之報告規則;且 發送該標準化訊息格式之該第一狀態資訊包含: 判定該第一功能模組是否滿足該基於事件之報告規則;及 回應於判定該第一功能模組滿足該基於事件之報告規則,以該標準化訊息格式發送由該基於事件之報告規則指定之狀態資訊至該彙總模組。
- 如請求項1之SOC系統,其中: 該第一組一或多個報告規則包含一基於時間之報告規則;且 發送該標準化訊息格式之該第一狀態資訊包含: 判定該第一功能模組是否滿足該基於時間之報告規則;及 當該第一功能模組滿足該基於時間之報告規則時,以該標準化訊息格式週期性地發送由該基於時間之報告規則指定的狀態資訊至該彙總模組。
- 如請求項1之SOC系統,其中時間戳記包含將一時間戳記訊息插入至一經彙總訊息串流中。
- 如請求項1之SOC系統,其中時間戳記包含將一時間戳記寫入至經保留用於該時間戳之該標準化訊息格式之一保留欄位中。
- 如請求項1之SOC系統,其中: 該SoC包含一快閃儲存控制器;且 該複數個功能模組包含以下之一或多者:一NVM Express (NVMe)處理器、一NAND快閃控制器、一錯誤校正解碼器、主機管理韌體、一快閃轉譯層(FTL)模組,或一後端模組。
- 如請求項1之SOC系統,其中發送該標準化訊息格式之該第一狀態資訊包含: 擷取該第一組一或多個報告規則,其中該第一組一或多個報告規則包含: 一第一群組之一或多個事件及與選擇該第一群組之一或多個事件相關聯之一對應第一選擇位元;及 一第二群組之一或多個事件及與選擇該第二群組之一或多個事件相關聯之一對應第二選擇位元; 判定該第一選擇位元是否經確證; 在判定該第一選擇位元經確證之情況下,發送該標準化訊息格式之該第一狀態資訊係至少部分基於該第一群組之一或多個事件; 在判定該第一選擇位元未經確證之情況下,發送該標準化訊息格式之該第一狀態資訊獨立於該第一群組之一或多個事件發生; 判定該第二選擇位元是否經確證; 在判定該第二選擇位元經確證之情況下,發送該標準化訊息格式之該第一狀態資訊係至少部分基於該第二群組之一或多個事件;及 在判定該第二選擇位元未經確證之情況下,發送該標準化訊息格式之該第一狀態資訊獨立於該第二群組之一或多個事件發生。
- 如請求項7之SOC系統,其中: 該第一群組之一或多個事件包含一結束操作事件;且 該第二群組之一或多個事件包含一錯誤事件。
- 如請求項7之SOC系統,其中: 該第一群組之一或多個事件包含一結束操作事件; 該第二群組之一或多個事件包含一錯誤事件;及 該第一組一或多個報告規則進一步包含一第三群組之一或多個事件,其包含一開始操作事件。
- 一種方法,其包括: 提供複數個功能模組,其包含一第一功能模組及一第二功能模組,其中: 該第一功能模組經組態以根據一第一組一或多個報告規則,以一標準化訊息格式發送與該第一功能模組相關聯之第一狀態資訊至一彙總模組;且 該第二功能模組經組態以根據一第二組一或多個報告規則,以該標準化訊息格式發送與該第二功能模組相關聯之第二狀態資訊至該彙總模組; 提供該彙總模組,其經組態以: 彙總該標準化訊息格式之該第一狀態資訊及該標準化訊息格式之該第二狀態資訊;且 插入一時間戳記以獲得一附上時間戳記及經彙總訊息串流,其中該附上時間戳記及經彙總訊息串流使一可視化系統能夠分析該第一功能模組及該第二功能模組;及 提供一記憶體,其經組態以儲存該附上時間戳記及經彙總訊息串流。
- 如請求項10之方法,其中: 該第一組一或多個報告規則包含一基於事件之報告規則;及 發送該標準化訊息格式之該第一狀態資訊包含: 判定該第一功能模組是否滿足該基於事件之報告規則;及 回應於判定該第一功能模組滿足該基於事件之報告規則,以該標準化訊息格式發送由該基於事件之報告規則指定的狀態資訊至該彙總模組。
- 如請求項10之方法,其中: 該第一組一或多個報告規則包含一基於時間之報告規則;及 發送該標準化訊息格式之該第一狀態資訊包含: 判定該第一功能模組是否滿足該基於時間之報告規則;及 當該第一功能模組滿足該基於時間之報告規則時,以該標準化訊息格式週期性地發送由該基於時間之報告規則指定的狀態資訊至該彙總模組。
- 如請求項10之方法,其中時間戳記包含將一時間戳記訊息插入至一經彙總訊息串流中。
- 如請求項10之方法,其中時間戳記包含將一時間戳記寫入至經保留用於該時間戳記之該標準化訊息格式之一保留欄位中。
- 如請求項10之方法,其中: 該SoC包含一快閃儲存控制器;及且 該複數個功能模組包含以下之一或多者:一NVM Express (NVMe)處理器、一NAND快閃控制器、一錯誤校正解碼器、主機管理韌體、一快閃轉譯層(FTL)模組,或一後端模組。
- 如請求項10之方法,其中發送該標準化訊息格式之該第一狀態資訊包含: 擷取該第一組一或多個報告規則,其中該第一組一或多個報告規則包含: 一第一群組之一或多個事件及與選擇該第一群組之一或多個事件相關聯之一對應第一選擇位元;及 一第二群組之一或多個事件及與選擇該第二群組之一或多個事件相關聯之一對應第二選擇位元; 判定該第一選擇位元是否經確證; 在判定該第一選擇位元經確證之情況下,發送該標準化訊息格式之該第一狀態資訊係至少部分基於該第一群組之一或多個事件; 在判定該第一選擇位元未經確證之情況下,發送該標準化訊息格式之該第一狀態資訊獨立於該第一群組之一或多個事件發生; 判定該第二選擇位元是否經確證; 在判定該第二選擇位元經確證之情況下,發送該標準化訊息格式之該第一狀態資訊係至少部分基於該第二群組之一或多個事件;及 在判定該第二選擇位元未經確證之情況下,發送該標準化訊息格式之該第一狀態資訊獨立於該第二群組之一或多個事件發生。
- 如請求項16之方法,其中: 該第一群組之一或多個事件包含一結束操作事件;及 該第二群組之一或多個事件包含一錯誤事件。
- 如請求項16之方法,其中: 該第一群組之一或多個事件包含一結束操作事件; 該第二群組之一或多個事件包含一錯誤事件;且 該第一組一或多個報告規則進一步包含一第三群組之一或多個事件,其包含一開始操作事件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163222257P | 2021-07-15 | 2021-07-15 | |
US63/222,257 | 2021-07-15 | ||
US17/854,435 US11544210B1 (en) | 2021-07-15 | 2022-06-30 | Collection of runtime information for debug and analysis |
US17/854,435 | 2022-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202324103A true TW202324103A (zh) | 2023-06-16 |
TWI825845B TWI825845B (zh) | 2023-12-11 |
Family
ID=84693106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111126275A TWI825845B (zh) | 2021-07-15 | 2022-07-13 | 收集用於除錯及分析之運行時間資訊 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11544210B1 (zh) |
CN (1) | CN115617600A (zh) |
TW (1) | TWI825845B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544210B1 (en) * | 2021-07-15 | 2023-01-03 | Beijing Tenafe Electronic Technology Co., Ltd. | Collection of runtime information for debug and analysis |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795963B1 (en) * | 1999-11-12 | 2004-09-21 | International Business Machines Corporation | Method and system for optimizing systems with enhanced debugging information |
US7251751B2 (en) | 2004-03-16 | 2007-07-31 | Arm Limited | Diagnostic mechanisms within multi processing systems |
US9038070B2 (en) | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
US7886150B2 (en) | 2007-05-11 | 2011-02-08 | Mips Technologies, Inc. | System debug and trace system and method, and applications thereof |
US8413120B2 (en) * | 2008-10-27 | 2013-04-02 | Advanced Micro Devices, Inc. | Method and system for thread monitoring |
CN101901145A (zh) | 2009-06-01 | 2010-12-01 | 紘康科技股份有限公司 | 图控化程序单晶片的方法 |
US8327198B2 (en) * | 2009-08-14 | 2012-12-04 | Intel Corporation | On-die logic analyzer for semiconductor die |
US9053251B2 (en) | 2011-11-29 | 2015-06-09 | Intel Corporation | Providing a sideband message interface for system on a chip (SoC) |
US9009541B2 (en) * | 2012-08-20 | 2015-04-14 | Apple Inc. | Efficient trace capture buffer management |
US9959186B2 (en) | 2012-11-19 | 2018-05-01 | Teradyne, Inc. | Debugging in a semiconductor device test environment |
US9612279B2 (en) * | 2013-02-26 | 2017-04-04 | Infineon Technologies Ag | System and method for determining operational robustness of a system on a chip |
US9158720B2 (en) * | 2013-08-11 | 2015-10-13 | Qualcomm Incorporated | System and method for scalable trace unit timestamping |
US20150082325A1 (en) * | 2013-09-15 | 2015-03-19 | Sandisk Technologies Inc. | Apparatuses and methods for generating and tracing event codes |
US10437694B2 (en) * | 2014-02-21 | 2019-10-08 | Rolf Segger | Real time terminal for debugging embedded computing systems |
US11281643B2 (en) * | 2014-04-15 | 2022-03-22 | Splunk Inc. | Generating event streams including aggregated values from monitored network data |
US9753836B2 (en) | 2014-09-12 | 2017-09-05 | Intel Corporation | Low power debug architecture for system-on-chips (SoCs) and systems |
JP6736083B2 (ja) | 2016-09-28 | 2020-08-05 | Nke株式会社 | 中継装置、中継方法、および中継システム |
CN107273427B (zh) * | 2017-05-18 | 2020-09-01 | 武汉大学 | 基于数据融合的跨设备网络信息搜索方法及系统 |
US10691576B1 (en) * | 2017-09-26 | 2020-06-23 | Amazon Technologies, Inc. | Multiple reset types in a system |
US10897417B2 (en) * | 2018-09-19 | 2021-01-19 | Amazon Technologies, Inc. | Automated route propagation among networks attached to scalable virtual traffic hubs |
US11438282B2 (en) * | 2020-11-06 | 2022-09-06 | Khoros, Llc | Synchronicity of electronic messages via a transferred secure messaging channel among a system of various networked computing devices |
US11544210B1 (en) * | 2021-07-15 | 2023-01-03 | Beijing Tenafe Electronic Technology Co., Ltd. | Collection of runtime information for debug and analysis |
-
2022
- 2022-06-30 US US17/854,435 patent/US11544210B1/en active Active
- 2022-07-13 TW TW111126275A patent/TWI825845B/zh active
- 2022-07-14 CN CN202210824725.7A patent/CN115617600A/zh active Pending
- 2022-12-01 US US18/073,056 patent/US11921654B2/en active Active
-
2024
- 2024-01-29 US US18/426,097 patent/US20240168897A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11921654B2 (en) | 2024-03-05 |
US20240168897A1 (en) | 2024-05-23 |
US20230022281A1 (en) | 2023-01-26 |
US20230096415A1 (en) | 2023-03-30 |
US11544210B1 (en) | 2023-01-03 |
TWI825845B (zh) | 2023-12-11 |
CN115617600A (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8375366B2 (en) | Embedding event information in the timing stream | |
US7710969B2 (en) | Rapid I/O traffic system | |
US7721263B2 (en) | Debug event instruction | |
US7417567B2 (en) | High speed data recording with input duty cycle distortion | |
US7797685B2 (en) | Method for generating timing data packet | |
US20240168897A1 (en) | Collection of runtime information for debug and analysis, including by aggregating status information into a standardized message format and timestamping | |
US20230153189A1 (en) | Visualization system for debug or performance analysis of soc systems | |
US7562259B2 (en) | Distributed depth trace receiver | |
US7797686B2 (en) | Behavior of trace in non-emulatable code | |
US7681084B2 (en) | TOD or time stamp inserted into trace recording stream | |
US20060256877A1 (en) | Rapid I/O Compliant Message Mapper | |
US20060279443A1 (en) | Trading Off Visibility for Volume of Data When Profiling Memory Events | |
US20060255978A1 (en) | Enabling Trace and Event Selection Procedures Independent of the Processor and Memory Variations | |
US20060268714A1 (en) | Rapid I/O Compliant Congestion Control | |
US20060256878A1 (en) | Out of Order Message Completion Management | |
US7555682B2 (en) | Distributed width trace receiver | |
US7590893B2 (en) | Recording control point in trace receivers | |
US7676697B2 (en) | Using a delay line to cancel clock insertion delays | |
US20060273944A1 (en) | System With Trace Capability Accessed Through the Chip Being Traced | |
US7613951B2 (en) | Scaled time trace | |
US20060256876A1 (en) | Fast Decode of Pending Interrupts |