TW202324095A - 用於系統單晶片系統之除錯或性能分析之可視化系統 - Google Patents

用於系統單晶片系統之除錯或性能分析之可視化系統 Download PDF

Info

Publication number
TW202324095A
TW202324095A TW111126298A TW111126298A TW202324095A TW 202324095 A TW202324095 A TW 202324095A TW 111126298 A TW111126298 A TW 111126298A TW 111126298 A TW111126298 A TW 111126298A TW 202324095 A TW202324095 A TW 202324095A
Authority
TW
Taiwan
Prior art keywords
information
event
soc
message
firmware
Prior art date
Application number
TW111126298A
Other languages
English (en)
Other versions
TWI844053B (zh
Inventor
修宸
朴亞卡 尼雷 泰柯爾
孟坤 李
Original Assignee
大陸商北京特納飛電子技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商北京特納飛電子技術有限公司 filed Critical 大陸商北京特納飛電子技術有限公司
Publication of TW202324095A publication Critical patent/TW202324095A/zh
Application granted granted Critical
Publication of TWI844053B publication Critical patent/TWI844053B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一介面接收來自一系統單晶片(SOC)之報告資訊,其中該報告資訊包含:(1)由包含在該SOC中之一硬體功能模組報告之硬體報告資訊及(2)由包含在該SOC中之一韌體功能模組報告之韌體報告資訊。一處理器接收一或多個顯示設定,且至少部分基於(1)該一或多個顯示設定、(2)該硬體報告資訊及(3)該韌體報告資訊來產生視覺資訊。該視覺資訊經由一顯示器顯示。

Description

用於系統單晶片系統之除錯或性能分析之可視化系統
鑒於此等系統之即時性及複雜性,嵌入式及/或系統單晶片(SOC)系統中之意外行為係習知之難以除錯。與其他類型系統一起工作之除錯技術(諸如在非即時系統中之關鍵位置處添加之侵入式除錯探針、在簡單系統中之「蠻力」除錯,及在分散式系統中之易於存取點處添加探針)在一些嵌入式及/或SOC系統中不易移用及/或不可行。期望提供更好工具及/或技術用於分析、除錯及/或監視此等系統之新技術。
在一些實施例中,根據一個態樣,一種系統包括一介面、一處理器及一顯示器。該介面經組態以接收來自一系統單晶片(SOC)之報告資訊,其中該報告資訊包含:(1)由包含在該SOC中之一硬體功能模組報告之硬體報告資訊及(2)由包含在該SOC中之一韌體功能模組報告之韌體報告資訊。該處理器經組態以接收一或多個顯示設定,且至少部分基於(1)該一或多個顯示設定 (2)該硬體報告資訊及(3)該韌體報告資訊來產生視覺資訊。該顯示器經組態以顯示該視覺資訊。
在一些實施例中,根據一個態樣,一種方法包括:使用一介面接收來自一系統單晶片(SOC)之報告資訊,其中該報告資訊包含:(1)由包含在該SOC中之一硬體功能模組報告之硬體報告資訊及(2)由包含在該SOC中之一韌體功能模組報告之韌體報告資訊;在一處理器處接收一或多個顯示設定;及使用該處理器至少部分基於 (1)該一或多個顯示設定、(2)該硬體報告資訊及(3)該韌體報告資訊來產生視覺資訊;及使用一顯示器以顯示該視覺資訊。
相關申請案之交叉參考 本申請案主張2021年7月15日申請題為PERFORMANCE VISUALIZATION SYSTEM之美國臨時專利申請案第63/222,264號之優先權,該案之揭示內容以引用方式併入本文中。
本發明可依多種方式實施,包含作為一程序;一設備;一系統;物質之一組成;體現在一電腦可讀儲存媒體上之一電腦程式產品;及/或一處理器,諸如經組態以執行儲存在及/或由耦合至處理器之一記憶體提供之指令之一處理器。在本說明書中,此等實施方案或本發明可採取之任何其他形式可稱為技術。一般而言,在本發明之範疇內可改變所揭示之程序之步驟之順序。除非另有說明,否則被描述為經組態以執行一任務之一組件(諸如一處理器或一記憶體)可被實施為臨時經組態以在一給定時間執行任務之一通用組件或被製造以執行任務之一特定組件。如本文所使用,術語「處理器」指代經組態以處理資料(諸如電腦程式指令)之一或多個裝置、電路及/或處理核心。
以下提供本發明之一或多個實施例之一詳細描述,及繪示本發明原理之附圖。結合此等實施例描述本發明,但本發明不限於任何實施例。本發明之範疇僅受申請專利範圍之限制,且本發明包括許多替代、修改及等效物。以下描述中闡述許多具體細節以提供對本發明之一透徹理解。此等細節係為了實例之目的而提供,且本發明可根據申請專利範圍實踐,而無需此等特定細節之部分或全部。為了清楚起見,尚未詳細描述與本發明相關之技術領域中已知之技術材料,使得本發明不被不必要地模糊。
本文描述用於分析、除錯及/或評估一嵌入式及/或系統單晶片(SOC)系統之一可視化技術及/或系統之各種實施例。如本文所使用,術語「嵌入式系統」及「SOC(系統) 」可互換使用。如下文將更詳細描述,此等可視化系統可消除對可難以附接至一SOC系統之昂貴分析器之需要;此等可視化系統亦可提供現有分析器不支援之特徵、工具及/或操作(例如,可更好地瞭解SOC系統中之低效及/或誤差)。
圖1係繪示使用來自一SOC系統之硬體報告資訊及韌體報告資訊顯示視覺資訊之一程序之一實施例之流程圖。在一些實施例中,該程序由一可視化系統執行。在一些實施例中,使用在一(例如,通用)電腦上運行之一可視化程式來實施一可視化系統。一可視化程式可在安裝在一電腦上之一應用程式上實施,使用可經由一網際網路瀏覽器應用程式存取之一基於網路之應用程式,使用體現在一電腦可讀儲存媒體上之一電腦程式產品等。
在100處,接收來自一系統單晶片(SOC)之報告資訊,其中報告資訊包含:(1)由包含在SOC中之一硬體功能模組報告之硬體報告資訊及(2)由包含在SOC中之一韌體功能模組報告之韌體報告資訊。
在步驟100之一個實例中,來自SOC系統之報告資訊首先儲存在SOC系統及運行一可視化應用程式之一電腦兩者外部之一些儲存系統或儲存媒體上。使用電腦之(若干)內置介面,自(外部)儲存系統或儲存媒體中檢索報告資訊。替代地,在一些實施例中,報告資訊直接自SOC系統(產生報告資訊)傳遞至可視化系統。
在102處,接收一或多個顯示設定。在104處,至少部分基於(1)一或多個顯示設定、(2)硬體報告資訊及(3)韌體報告資訊來產生視覺資訊。
在106處,顯示視覺資訊。例如,可使用一電腦之一內置顯示器(在其上運行一可視化程式)來顯示視覺資訊。以下更詳細地描述一些實例螢幕截圖。
在步驟102、104及106之一個實例中,接收與「放大」順序相關聯之顯示設定,且產生及顯示相應之放大視覺資訊。可獲得一組初始顯示設定(例如,儲存在可視化系統中),用於產生一起始螢幕或一初始顯示之視覺資訊。此起始螢幕(至少在本實例中)處於SOC之最高(例如,階層)級別,具有可用之功能模組(例如,經組態以報告狀態及/或事件資訊)。例如,顯示此一起始視窗之圖形使用者介面可包含具有(例如,可用、報告等)硬體及韌體功能模組之一清單之一第一視窗,且另一視窗可包含(作為一實例)與此等功能模組之(例如,高級)操作相關聯之相應潛時散點圖。
一後續放大指令或互動產生(至少在本實例中)一放大螢幕,其中具有在縮放範圍內操作之性能度量及相關操作之一潛時圖。例如,顯示器中之一個視窗可為一操作度量表,總結與一或多個操作相關聯之一或多個(例如,性能)度量。亦可有一視窗,展示用於計算一給定操作之一給定度量之基礎資料。例如,度量可為「平均潛時」,且操作可為「自記憶體讀取」或「寫入記憶體」;一個視窗展示用於計算一讀取操作之平均潛時之資料(例如,以一潛時散點圖之形式),且另一視窗則展示用於一寫入操作之平均潛時。
一進一步放大可呈現最低及/或最詳細級別之資訊,諸如操作後設資料、操作之一大小或與操作相關聯之一條資料之一大小(例如,正在寫入、讀取、傳送、接收、轉換之資料之大小等)、操作類型、與一操作相關之設定、標籤資訊,及使用之資源(例如,來自共用資源,諸如共用緩衝區、共用通道、共用RAID資源等)。換言之,在較低(最低)級別顯示之資訊可包含來自各種訊息(例如,參見圖3)中之各個欄位之值,該等訊息係(相關)硬體功能模組及/或韌體功能模組產生且與(例如,所選)操作及/或感興趣之事件相關。
在一些實施例中,視覺資訊(例如,在步驟104處產生且在步驟106處顯示)係一2D或3D顯示之形式。在一個實例中,一工作負載視圖為一使用者提供隨時間執行之異動及/或操作之一視圖。在一個2D實例中,顯示(例如性能)度量之線繪圖,其中x軸為時間,且y軸為(例如,性能)度量。在一個3D實例中,x軸為命令(例如,若干命令),y軸為時間,z軸為大小(例如,一給定命令或與命令相關之一些資料)。用於此等顯示器之時間值可自訊息中之時戳獲得(例如,參見圖3中基於事件訊息(320)中之時戳欄位(330)及時戳訊息(340)中之有用負載(344))。
在更詳細地描述可視化系統之各種特徵及/或實施例之前,給出產生報告資訊(例如,在步驟100處接收)且由一可視化系統分析之一SOC系統之一些實例可為有幫助的;報告資訊之更詳細實例亦可有幫助的。下圖描述一些實例SOC系統及一些報告資訊之實例。
圖2係繪示一SOC系統之一實施例之一系統圖,各功能模組中具有報告模組以收集及儲存狀態資訊。在此實例中,例示性SOC系統(200)包含複數個功能模組(202)。在各種實施例中,例示性SOC系統(200)係一專用積體電路(ASIC)、一場可程式化閘陣列(FPGA)等。在各種實施例中,一功能模組(202)係僅由電子電路組成之一硬體模組、由在一處理單元上操作之指令碼組成之一韌體模組等。
在此實例中,期望(例如,即時或在一些等待之後)分析複數個功能模組(202)中之各者之行為及/或操作之能力。例如,功能模組之各者可有助於資料之關鍵處理或移動,使得後續分析及/或檢視極為有利。為此,各功能模組(202)具有一子組件,在此圖中稱為一報告模組(204),該子組件自其功能模組內聚集狀態資訊,以一標準化訊息格式封裝此狀態資訊,且在一專用鏈路(206)上將封裝資訊發送至一中央訊息聚集模組,在此圖中稱為一聚合模組(208)。在一些實施例中,不太重要及/或不太感興趣(自一除錯觀點)之功能模組沒有一報告模組。
在此實例中,各報告模組(204)包含一或多個報告規則(未展示),其描述基於時間訊息及/或基於事件訊息產生及發送之條件。此等報告規則亦可描述哪些特定暫存器、值、節點、狀態等應被包含或以其他方式用作發送至聚合模組(208)之狀態資訊。例如,各報告模組(204)可包含一控制器,該控制器將報告規則中指定之(若干)條件與此特定功能模組中之相關變數、狀態、事件等進行比較。
在此實例中,訊息由聚合模組(208)自各種鏈路(206)接收,且將其聚合為一單一聚合流。接著將一時戳***聚合流中以獲得一時戳及聚合流。儘管此實例首先描述聚合且接著時戳,但在一些實施例中,此順序係相反的。
時戳及聚合流自聚合模組(208)傳遞至記憶體(210)。時戳及聚合流經由一儲存介面(216)自記憶體(210)傳送出SOC系統(200),使得可將資訊自晶片外匯出至一(外部)儲存媒體(218),諸如快閃及/或固體狀態驅動機(SSD)記憶體。例如,此測試基礎設施首先係在一儲存控制器上原型化及/或實施,且因此儲存介面(216)已實施。換言之,在一些實施例中,儲存介面(216)係已實施及/或由SOC (200)支援之例行、非除錯相關操作使用之一「產生」介面。
自(外部)儲存媒體(218),一可視化系統(214)經組態以按照一使用者之指示攝取、過濾、顯示及/或分析自儲存媒體(218)獲得之時戳及聚合流。
在一個具體實例中,SOC (200) (即,使用可視化系統(214)分析之裝置)係一快閃儲存控制器,且儲存媒體(218)係由快閃儲存控制器管理及/或控制之快閃儲存媒體。在此應用程式中,由於存在隨時可用之一儲存媒體(218),且SOC (200)控制對此儲存媒體之寫入(例如,因此不擔心任何擷取資訊被另一裝置意外覆蓋),因此記憶體(210)中之資訊經由一儲存介面(216)在晶片外發送。若或當期望藉由一可視化系統進行分析時,由資訊處理器可存取儲存媒體(216),以檢索其中儲存之(例如,除錯)資訊。
下圖描述由一報告模組(204)可使用之標準化訊息格式之一些實例。
圖3係繪示一基於時間訊息、一基於事件訊息及一時戳訊息之實施例之一圖式。此等係可包含在狀態資訊之一標準化訊息格式之一些實例。接著,此等訊息可聚合及加時戳,以創建儲存之一聚合及時戳流,且一可視化系統可攝取該流,以便分析產生訊息之SOC系統。在圖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,包含0到7。
對於一些功能模組,具有八個事件識別符足以唯一標識需要記錄之所有事件。然而,一些功能模組支持諸多不同類型之操作(例如,傳送及接收),在一起始事件於一結束事件之間具有諸多感興趣之中間事件,及/或具有一控制通道及一資料通道(各者具有其自己的關聯事件)。因此,在某些情況下,八個事件識別符不足以唯一標識需要報告之所有事件。在此實例中,為了適應此等情況,一些事件共用一事件識別符值,且標籤欄位(324)之一些部分用於區分共用一事件識別符值之事件。在一事件識別符值唯一之情況下(即,其僅與一個事件關聯),標籤用於傳送其他資訊,諸如額外狀態資訊(例如,根據相關基於事件報告規則中之指令)。
接下來在基於事件訊息(320)中係兩個保留欄位。第一保留欄位(328)係保留用於用訊息產生功能模組之一識別符替換之一5位元空間。例如,在圖2中,一功能模組(202)將產生基於事件訊息(320),但將第一保留欄位(328)留空。在聚合模組(208)處,第一保留欄位(328)由聚合模組(208)用與自其接收基於事件訊息(320)之功能模組(202)相關聯之識別符填充(例如,已知,因為鏈路(206)係專用的,而非共用的)。
第二保留欄位(330)係保留用於替換一時戳之8位元欄位。事件訊息時戳(330)用於與基於時間訊息(300)中基於時間順序識別符(304)相同之目的。然而,因為基於事件訊息比基於時間訊息更偶爾出現,所以其等需要一更大之欄位以擷取基於事件訊息(320)之間或一基於事件訊息(320)與一時戳訊息(340)之間的一更大時間差。與第一保留欄位(328)一樣,第二保留欄位由一報告模組(例如圖2中之204)及/或功能模組(例如,圖2中之202)留空,且在聚合模組(例如圖2中之208)處填充。
基於事件訊息(320)中之最後一個欄位係一32位元有用負載欄位(332),用於承載與相關事件相關聯之有用負載。有用負載(332)中包含之特定(狀態)資訊由相關之基於事件報告規則指定。
從概念上而言,基於事件報告(例如,使用一基於事件報告規則)可被認為係一(更)稀疏之報告技術,因為當偵測到一條件時,只產生一條基於事件訊息。相反,基於時間報告(例如,使用一基於時間報告規則)係一(更)密集之報告技術,因為在滿足條件時,會連續產生基於時間訊息。因此,基於時間報告將傾向於比基於事件報告產生更多訊息。為瞭解決此差異,例示性基於時間訊息(300)之大小小於此實例中例示性基於事件訊息(320)之大小(例如,例示性基於時間訊息(300)為16位元,而例示性基於事件訊息(320)為64位元)。
此實例中之第三條訊息係一時戳訊息(340),該時戳訊息(340)包含一3位元類型欄位(342),以將訊息標識為一時戳訊息,及一29位元有用負載欄位(344),用於儲存時戳之值。在一些實施例中,寫入基於事件訊息(320)之第二保留欄位(330)之時戳係包含在時戳訊息(342)之有用負載(344)中之較長時戳之最低八位元。
在此實例中,時戳訊息(340)不跨越訊息互連傳送(例如,圖2中之206)。相反,此實例中之時戳訊息由聚合模組(例如,圖2中之208)產生且***到寫入訊息擷取記憶體(例如,在圖2中之210)之流中,以便準確表示,訊息流因任何原因(例如,臨時記憶體不可用)而中斷。
如此實例所展示,在一些實施例中,時戳(例如,在圖1之步驟106處)包含將一時戳訊息(例如,340)***一聚合訊息流。
此實例亦展示,在一些實施例中,時戳(例如,在圖1中之步驟106處)包含將一時戳寫入在標準化訊息格式(例如320)中為時戳保留之一保留欄位(例如330)。
本文所繪示之訊息大小及格式僅為例示性的,且不意在限制。在各種實施例中,可使用不同訊息大小、欄位大小及/或欄位位置。
如圖2及圖3所展示,在一些實施例中,報告資訊(例如,在圖1中之步驟100處接收)包含一時戳及聚合訊息流(例如,自聚合模組(例如,圖2中之208)發送至記憶體(例如,圖2中之210),且時戳及聚合訊息流由包含在SOC (例如,圖2中200)中之一聚合模組(如,圖2中之208)產生,該聚合模組經組態以自硬體功能模組(例如,圖2中之功能模組(200)之一者)接收依一標準化訊息格式之硬體事件資訊(例如,見圖3中基於事件訊息(320)),自韌體功能模組(例如,圖2中之功能模組(200)之一者)接收依標準化訊息格式之韌體事件資訊(例如,見圖3中基於事件訊息(320)),且將依標準化訊息格式之硬體事件資訊及依標準化訊息格式之韌體事件資訊聚合及加時戳,以獲得時戳及聚合訊息流。
在一些實施例中,時戳(例如,依標準化訊息格式之硬體事件資訊及/或依標準化訊息格式之韌體事件資訊,以獲得時戳及聚合訊息流)包含將一時戳寫入標準化訊息格式中為時戳保留之一保留欄位。
在圖3之實例中,仔細選擇三種例示性訊息類型(300、320及340)之大小,使得在擷取記憶體中(例如,圖2中之210),訊息可在訊息邊界上均勻交錯,以防止在訊息覆寫時出現部分訊息。下圖展示此一實例。
圖4係繪示一訊息擷取記憶體中一聚合及時戳訊息流之兩個實施例之一圖式。在此圖中,一第一記憶體段(400)及一第二記憶體段(420)展示儲存在訊息擷取記憶體中之聚合及時戳訊息流之兩個實例。例如,此等兩個記憶體段(400及420)展示圖2中記憶體(210)之實例。
在第一記憶體段(400)中,首先出現32位元時戳訊息(402),佔據一64位元記憶體之槽之一半;槽之其餘部分未使用。在此實例中,記憶體之各槽係64位元,且時戳訊息(402)具有圖3所展示之實例大小及格式。
接下來,三個64位元事件訊息(404)各佔用一個記憶體槽,使得第二、第三及第四槽由事件訊息佔用。
接著,儲存13條基於時間訊息(406)之一順序。各基於時間訊息(406)長16位元,因此第五、第六及第七槽每個槽具有四個基於時間訊息。在此實例中,基於時間訊息用於擷取一有限狀態機不處於空閒狀態時之狀態或值(例如,自其離開空閒狀態之時間直至其返回空閒狀態之時間)。因此,在此實例中,術語「狀態擷取」用於描述基於時間訊息(406),但在其他實施例中,基於時間訊息用於擷取或記錄一功能模組中之其他類型之資訊。
最後一個槽被一基於事件訊息(408)佔用。
在此實例中,各基於事件訊息(例如404)佔用一單一槽,而基於時間訊息(如406)被寫入四個至一槽。保持此處所展示之大小及(槽)偏位之優點係,若(例如)事件訊息可在一槽內之任何偏位處而非一零偏位處開始,則需要保存更少之附加資訊。類似地,若訊息大小不係彼此之倍數,且訊息沒有與此處所展示之槽對齊,接著當一舊訊息由一新訊息覆蓋時,隨機混合兩條訊息將很難區分訊息邊界,創建部分訊息。部分訊息可具有遺漏類型識別符(以區分訊息類型)及/或遺漏訊息內容(難以識別訊息結束)。
注意,各種事件訊息(404及408)及狀態擷取(即基於時間)訊息(406)可來自各種功能模組,且未必來自一單一功能模組。相反,其等在聚合模組處按其等接收之序列聚合。
產生所展示之第一記憶體段(400)之實施例之一缺點係,支援多種訊息類型(各者具有一不同訊息大小)增加聚合模組之複雜性。例如,為了確保最後一個事件訊息(408)在最後一個槽之開始處起始,聚合模組必須跟蹤之前狀態擷取(即基於時間)訊息(406)之數量,使得若數量不係四之一倍數,則在最後一個事件訊息(408)之前***一或多個未使用之第四槽。在一些應用程式中,需要一種不那麼複雜之實施方案,特別係若首次實施除錯系統。下圖展示僅儲存事件訊息之不太複雜之實施例。
第二記憶體段(420)展示僅產生及儲存基於事件訊息(422)之一實例。即,在此實例中,既不產生時戳訊息,也不產生狀態擷取(即基於時間)訊息(例如,由報告模組或聚合模組產生)。
僅產生及儲存基於事件訊息(如第二記憶體段(420)所展示)之實施例之一益處係,聚合模組儲存訊息要簡單得多,因為只支持一種類型(且因此大小)之訊息。聚合模組不需要跟蹤時戳訊息或狀態擷取(即基於時間)訊息之數量,且在需要之地方***未使用之第四或一半槽。記憶體效率亦更高,因為沒有未使用之部分,且使用之記憶體總量比第一記憶體組態更少,因為傾向於有諸多狀態擷取(即基於時間)訊息,而基於事件訊息傾向於更稀疏。由於此等原因,在一些實施例中,僅產生及儲存基於事件訊息。
下圖繪示根據本文描述之技術使用一可視化系統分析及/或除錯之一實例快閃儲存控制器(在一SOC系統上實施)。接著,描述在除錯及/或分析實例快閃儲存控制器時可由一可視化系統顯示之實例螢幕截圖。
圖5係繪示在一SOC系統上實施之一快閃儲存控制器之一實施例之一圖式。快閃儲存控制器(500)係圖2中之SOC系統(200)之一個實例,該系統產生硬體報告資訊及韌體報告資訊,且隨後由一可視化系統(例如,根據圖1)使用此硬體報告資訊及韌體報告資訊進行除錯及/或分析。為了保持圖式之可讀性且便於解釋,此處展示例示性硬體功能模組及韌體功能模組之一取樣;此不係一完整之功能方塊圖。例如,儘管本文僅描述硬體功能模組,但在一些實施例中,其他實施例包含經組態以報告狀態資訊之韌體功能模組。
在此實例中,快閃儲存控制器(500)包含一PCI Express (PCIe)功能模組(502)。在一些實施例中,PCIe (502)係一硬體功能模組及IP核心。例如,一協力廠商可銷售PCIe功能模組,且購買者可將IP核心「放入」其等SOC設計中。
此實例中之另一功能模組係非揮發性記憶體(NVMe) (504)。在此實例中,NVMe (504)係一硬體功能模組,其與主機驅動器通信以接收主機命令(例如,起始資料提取或複製至主機或自主機複製等),且其係實體PCIe層上之邏輯協定層。
LDPC解碼器(506)係對儲存在快閃儲存媒體(508)中之資料執行糾錯解碼之一硬體功能模組。例如,儲存在快閃儲存媒體(508)上之資料可歸因於電荷洩漏而經歷資料降級。此對於在快閃儲存媒體(508)上儲存一相對較長時間之資料及/或當快閃儲存媒體(508)磨損及「洩漏」(例如,當快閃儲存媒體(508))經歷一相對大量程式及/或擦除週期)時尤其如此。在一讀取操作期間,LDPC解碼器(506)在糾錯顯著降級之讀取資料時可會引入大量延遲,因為LDPC解碼器必須求助於更強大之解碼技術,此亦會消耗更多時間。因此,當分析讀取路徑之性能時,LDPC解碼器(506)可引起關注,因為其可增加顯著之潛時。
快閃儲存控制器(500)亦包含為硬體功能模組之通道0 NCmd處理器(510a)–通道3 NCmd處理器(510d)。此等功能模組係與經由其接收命令之四個通道介接之處理器。此處所展示之通道數量只係例示性的,且對於更大產出量之應用程式,可會有更多通道。
下表繪示由圖5所展示之功能模組報告之一些實例事件,此等事件隨後用於分析快閃儲存控制器(500)之性能及/或除錯快閃儲存控制器(500)。為簡潔起見,與多個功能模組相關之類似或相同事件未必展示。例如,各功能模組可報告(若干)誤差事件,此對除錯有用,但為簡潔起見,表1僅展示用於PCIe功能模組之一誤差事件。
功能模組 ( 報告) 事件 事件描述
PCIe 低功率 報告何時發生PCIe 低功率模組及/或操作
誤差 報告何時一PCIe誤差事件發送
NVMe ReadXferDone 讀取操作結束
WriteXferDone 寫入操作結束
NVMe Cmd Fetch End 命令提取操作結束
BAR0 Write 當發生對 BAR0 之寫入時(BAR0 係控制器中主機寫入以連通命令資訊之記憶體空間)
通道 0 NCmd 處理器 SCMD Xfer Done 通道 0 已完成一轉移
通道 1 NCmd 處理器 SCMD Xfer Done 通道 1 已完成一轉移
通道 2 NCmd 處理器 SCMD Xfer Done 通道 2 已完成一轉移
通道 3 NCmd 處理器 SCMD Xfer Done 通道 3 已完成一轉移
LDPC 解碼器 Decode Write Data Xfer End 誤差解碼結束
表1:圖5所展示之實例功能模組報告之實例事件。
本文描述之可視化系統之一益處係,其消除對外部及/或實體分析器之需要,該等分析器可為昂貴、大型及/或在某種程度上受到限制。例如,在圖5中,一PCIe分析器(513)位於主機(512)與快閃儲存控制器(500)之間。快閃儲存控制器(500)之此側有時被稱為前端。PCIe分析器有時用於分析及/或除錯包含一PCIe功能模組(502)之SOC系統。在此實例中,一可視化系統提供及/或支援與PCI分析相關之操作,使得不需要一實體PCIe分析器(513)。PCIe分析器非常昂貴(例如,約數十萬美元),因此需要能夠分析PCI相關之通信及/或操作,而無需購買一PCIe分析器。此外,在一些例示中,難以存取快閃儲存控制器(500)及/或快閃儲存控制器(500)周圍沒有足夠之空間以附接一PCIe分析器。例如,在一企業及/或雲儲存系統中,可有諸多快閃儲存控制器緊密地封裝在一起,且可沒有足夠空間以存取快閃儲存控制器及附接一PCIe分析器(513)。
可視化系統可消除對另一分析及/或工具之一需要,該分析及/或工具係位於快閃儲存控制器(500)與快閃儲存媒體(508)之間的一邏輯分析器(514)。快閃儲存控制器(500)之此側有時被稱為後端。在此實例中,一可視化系統提供及/或支援與邏輯分析器相關之操作,使得不需要一邏輯分析器(513)。與SOC系統相比,邏輯分析器(514)運行速度較慢;例如,前者可僅在數百kHz範圍內運行,而後者通常在MHz範圍內運行。因此,當使用一邏輯分析器時,SOC系統(例如500)必須減速,此在某些情況下可消除或隱藏一故障或性能問題。相比之下,通過本文描述之分析技術,SOC系統可在其等正常操作時鐘頻率下運行,此有助於暴露或以其他方式再現一故障或性能問題。邏輯分析器(514)亦傾向於係記憶體有限的,使得只能擷取、顯示及分析有限期間及/或有限數量之信號。對於圖5所展示之快閃儲存控制器(500)應用程式,快閃儲存媒體(508) (例如,其中在由一可視化系統檢索之前儲存硬體報告及韌體報告資訊)之大小要大得多,且超過一邏輯分析器(514)之儲存容量幾個數量級。
此外,與由一可視化系統提供之特徵及/或工具相比,由PCIe分析器及邏輯分析器提供之特徵亦可相對粗糙及/或不完整(即,可視化系統提供PCIe分析器及邏輯學分析器沒有之特徵及/或工具)。例如PCIe分析器及邏輯分析器無法存取硬體及韌體功能模組內之各種中間事件,該等事件有助於識別故障(例如,確定一系統「停擺」發生係因為其中一個韌體功能模組及/或硬體功能模組沒有正確地發出一結束事件之信號以結束一操作及/或釋放一共用資源)及/或提高性能(例如,能夠存取由韌體功能模組及/或硬體功能模組報告之晶粒使用資訊以確保發生晶粒交錯係一(更)高效方式)。下圖展示由一可視化系統呈現之一些實例顯示,其中部分或全部不受PCIe分析器或邏輯分析器之支援。
圖6係繪示與一快閃儲存控制器之讀寫操作相關之性能相關視覺資訊之一實施例之一圖式。在此實例中,顯示器(600)展示由圖5中之快閃儲存控制器(500)執行之多個讀寫操作之潛時資訊。此顯示器(600)展示由一可視化系統在圖1之步驟106處顯示之視覺資訊之一個實例。
顯示器頂部係三個潛時圖表:一左側圖表(602a)展示讀取潛時及寫入潛時,一中間圖表(602b)展示(剛)讀取潛時,且一右側圖表(602c)展示(剛)寫入潛時。所有圖表(602a-602c)以時間為x軸,且在此實例中,此等x軸時間值係自一基於事件訊息(例如,圖3中之320)中之一時戳欄位(例如,在圖3中之330)所獲得。
在此實例中,讀取潛時值(展示在讀寫潛時圖(602a)及讀取潛時圖表(602b)中)係藉由自對應於「ReadXferEnd」事件訊息之自(稍後)時戳之NVMe功能模組產生之「ReadXferStart」基於事件訊息(對應於一讀取操作之起始)中減去時戳來計算(對應於一讀取操作之完成)。藉由在開始及結束事件訊息之一適當欄位中具有相同值來識別對應之讀取事件訊息。因為可使用「WriteXferStart」及「writeXferEnd」基於事件訊息對寫潛時執行類似計算。
讀取潛時圖表(602b)展示,最快讀取潛時在0 us-100 us範圍內,而最慢讀取潛時則在1000 us-1200 us範圍內。寫入潛時圖表(602c)展示,最快寫入潛時在0 us-25 us範圍內,而最慢寫入潛時則在300 us-400 us範圍內。藉由點擊或選擇潛時圖表(602a–602c)之一者中較慢潛時之一者,可視化系統回應於更新事件資訊視窗(604),以顯示所選讀取或寫入潛時之相關事件資訊。例如,此可有助於SOC開發者識別讀取或寫入路徑中之低效。
在此實例中,快閃儲存控制器已製造,因此,任何短期改進(例如,藉由圖5所展示之潛時分析識別)可藉由調整設定(例如,在硬體及/或韌體中)及/或藉由更新在SOC上運行之韌體來實施。針對硬編碼效率低下之長期(例如,硬體)改進可在(硬體)暫存器傳送語言(RTL)中實施,使得製造具有此等(硬體)改進之下一代SOC系統。
如此實例所展示,在一些實施例中,SoC (例如,圖1中所提及)包含一快閃儲存控制器,且視覺資訊(例如,在圖1之步驟106處顯示)包含潛時資訊。
底部視窗(604)展示由功能模組報告之事件。各列對應於一功能模組,且各列中之點對應於此功能模組報告之一事件。下圖展示當一第一游標(例如游標X)及一第二游標(例如,游標Y)分別設定為一第一及第二時間時之一放大視圖。
圖7係繪示一放大視窗之一實施例之一圖式,該視窗展示由一快閃儲存控制器中之一NVMe功能模組報告之基於事件訊息中之資訊。在此實例中,顯示器(700)對應於圖6中底部視窗(604)之一放大版本。
在此實例中,NVMe功能模組(702)已展開,以展示由NVMe功能模組(702b)報告之事件WriteXferDone (704a)、ReadXferDone (704b)及NVMe Cmd Fetch End (704c)。各事件(704a–704c)右側係與各自事件相關聯之基於事件訊息之欄位、內容及/或有用負載。如此實例所展示,WriteXferDone訊息(706a)包含一時戳、一ctag (例如,一標籤類型)、一TAGID (例如,一識別符類型)及一SCMDID (例如另一識別符);ReadXferDone訊息(706b)包含一時戳及一ctag;且NVMe Cmd Fetch End訊息(706c)包含一時戳、一ctag、一讀/寫(R/W) 指示符、一TAGID及一FLBA (例如,一位址類型)。
下圖在一流程圖中更一般及/或正式地描述使用起始及結束訊息(例如,自動)計算潛時之此技術。
圖8係繪示使用一潛時產生視覺資訊之一程序之一實施例之一圖式。在一些實施例中,在圖1中之步驟104處產生視覺資訊包含執行圖8中之程序。在一個實例中,圖8之程序由圖2所展示之可視化系統(214)執行。
在800處,一基於起始事件訊息及一基於結束事件訊息至少部分地基於在基於起始事件訊息及一基於結束事件訊息中之一唯一操作識別符之一相同值來識別。
例如,在表1 (以上)中,有一條ReadXferDone事件訊息。NVMe可經組態以產生一相關之ReadXferStart事件訊息。兩條訊息可包含唯一標識對應於基於起始及結束事件訊息之一欄位或值(例如,圖2中基於事件訊息(320)中之標籤欄位(324)或有用負載欄位(332)之某些部分具有相同值)。此可為一命令順序號碼、正在處理之資料之一位置、一命令之一位置等,且其等在基於起始及結束事件訊息中將具有相同值。
在802處,藉由自包含在基於結束事件訊息中之一結束時戳減去包含在基於起始事件訊息中之一起始時戳來計算一潛時。例如,參見圖2中基於事件訊息(320)中之時戳欄位(330)。
在804處,至少部分地基於潛時來產生視覺資訊。例如,在圖6中,左側圖表(602a)展示沿y軸繪製之複數個讀寫潛時,中間圖表(602b)展示沿y軸繪製之讀取潛時,且右側圖表(602c)展示沿y軸繪製之寫入潛時。此等繪製點之y軸值基於計算之潛時值。
潛時資訊只係可顯示用於除錯及/或分析(例如,性能)一SOC系統之一種類型資訊。下圖展示展示各種視覺資訊之各種顯示實施例。藉由查看各種度量之一視覺表示(例如,隨時間變化之潛時範圍、連續操作中之間隙或高級操作中之事件等),可更易於識別異常值且獲取有關異常值之資訊,以識別系統中哪些功能模組及/或階段具有意外遲延。
圖9係繪示視覺資訊之一實施例之一圖式,該視覺資訊展示與一快閃儲存控制器之一前端、一中間端及一後端相關之間隙值。在此實例中,圖表(900–905)係2D圖表,其中一x軸表示順序號碼及一y軸表示間隙值(例如,連續事件之間,以μs為單位)之。各圖表展示一不同功能模組之間隙值及/或一給定功能模組之不同事件。
頂部圖表(900)展示NVMe模組上連續提取操作之間的間隙值(圖表中之「NVMe提取模組成本」)。頂部第二個圖表(901)展示一韌體前端虛擬佇列中連續事件或操作之間的間隙值(圖表中之「FW FE VQ成本」)。頂部第三個圖表(902)展示一韌體前端模組處連續事件或操作之間的間隙值(圖表中之「FW_FE模組成本」)。底部第三個圖表(903)展示一韌體中間端虛擬佇列中連續事件或操作之間的間隙值(圖表中之「FW_ME VQ成本」)。底部第二個圖表(904)展示一韌體中間端模組處連續事件或操作之間的間隙值(圖表中之「FW_ME模組成本」)。底部圖表(905)展示一韌體後端虛擬佇列處請求事件或操作之間的間隙值(圖表中之「FW_BE_REQ VQ成本」)。
在說明如何計算一間隙值之一個實例中,記入或記錄之事件資訊(例如,由一功能模組產生之基於事件訊息)可包含順序號碼或其他相關或識別資訊(例如用於識別哪些事件係關注之連續事件),且可使用時序資訊(例如基於事件訊息中之一時戳欄位)來計算間隙;根據事件及時序資訊,用於連續事件之間隙資訊可如此處所展示呈現。
圖10係繪示展示一快閃儲存控制器之工作負載度量之視覺資訊之一實施例之一圖式。在此實例中,頂部圖表(1000)展示對於讀取及寫入而言,沿左y軸之每秒輸入/輸出操作(IOPS)及沿右y軸讀取及寫入之命令大小。中間圖表(1002)展示讀寫產出量。底部圖表(1004)展示用於讀取及寫入之命令大小、時間及命令計數(作為三個軸)之一3D圖表。
圖11係繪示展示一快閃儲存控制器中之一個通道之匯流排利用率之視覺資訊之一實施例之一圖式。在此實例中,頂部展示三個具有命令統計之表:左側之匯流排利用率(1100)、中心通道0之實體命令時序(1102)及右側通道0每100 μs之實體命令號碼(即計數) (1104)。自一命令碼之觀點來看,此等度量與匯流排利用率相關。在一些應用程式中,此有助於瞭解一些命令之發出係否超過實現一預期結果或操作(例如,絕對)之需要。一晶片開發者或設計者可查看此等實例中展示之資訊,以識別性能改進(例如,最佳化命令之數量、大小及/或順序,以實現相同功能,但更高效及/或更快)。
例如,若快閃已完成請求之一寫入或讀取操作,則由快閃儲存控制器向快閃發出0x78之命令(十六進位)以進行讀取。此0x78在本文中有時稱為一狀態檢查。發送太多狀態檢查命令會降低匯流排利用率。瞭解此費用可識別及消除不必要之狀態檢查命令。例如,參見圓形列(1106),該列展示狀態檢查命令佔用所討論通道之3.68%匯流排利用率。
處於底部之圖表(1108及1110)展示SCmd之間的間隙(例如,自韌體傳遞至硬體之兩個連續命令之間)。頂部圖表(1108)係根據間隙值排序之一長條圖及/或分佈。底部圖表(1110)係資訊之未排序版本,且按順序號碼或時間排序。在此實例中,藉由將一先前SCmd端部之時戳與一當前(即下一個) SCmd端部之時戳相減來計算各間隙值。
在此實例中,最大間隙(1113a及1113b)約為80 μs,而平均間隙值為7.45 μs。在一理想系統中,不應存在異常值,尤其係與平均間隙值存在如此大偏差。藉由識別及分析此等異常值,可識別及緩減韌體處理時間中不必要之長間隙。緩減此間隙亦可導致更高快閃匯流排利用率。在此實例中,顯示之資訊由硬體功能模組事件產生,但亦有助於表示、識別及/或隔離硬體韌體交互遲延。
如此實例所展示,在一些實施例中,SoC (例如,圖1中所提及)包含一快閃儲存控制器,且視覺資訊(例如,在圖1之步驟106處所顯示)包含匯流排利用率資訊。
圖12係繪示展示用於一快閃儲存控制器之晶粒存取資訊之視覺資訊之一實施例之一圖式。在此實例中,快閃儲存媒體(例如,圖5中之508)使用多個晶粒實施,且因此存取快閃儲存媒體包含選擇要存取之一晶粒,且一些晶粒順序存取模式比其他模式更有效。一般而言,在一特定命令集內之晶粒之間交錯或切換係不好的及/或非期望的,而對相同晶粒(例如,在一命令集內)之連續存取係好的及/或期望的。
此處呈現之視覺資訊允許一開發者快速且輕鬆地識別晶粒存取順序中之任何低效。在此實例中,存在對晶粒指數1 (1200)之一隔離存取,此中斷對晶粒指數0 (1202a及1202b)之存取順序。識別此非期望晶粒存取順序可幫助一開發者理解潛在問題,且在設計中進行更改,使得可消除此交錯或至少減少頻率。
如此實例所展示,在一些實施例中,SoC (例如,圖1中所提及)包含一快閃儲存控制器,快閃儲存控制器經組態以管理對包含複數個晶粒之快閃儲存媒體之存取,且視覺資訊(例如,在圖1之步驟106處顯示)包含與快閃儲存媒體中之複數個晶粒相關聯之一晶粒存取順序。
圖13係繪示展示用於一快閃儲存控制器之統計潛時資訊之視覺資訊之一實施例之一圖式。在此實例中,頂部處之表(1300)具有存在平均潛時資訊之行(1302)、具有最大潛時資訊之行(1304)及具有最小潛時資訊之行(1306)。
圖14係繪示展示一快閃儲存控制器中所有四個通道之匯流排利用率資訊之視覺資訊之一實施例之一圖式。圖14之實例類似於圖11之實例,只是展示所有四個通道(例如,參見組1400、1402、1404及1406)之匯流排利用率、實體命令時序及實體命令號碼,而不僅展示一單一通道。藉由並排比較此資訊,其可更易於識別不同通道之間的偏差及/或利用不足。
在以上實例中,藉由各種分析工具及/或操作呈現之資訊取決於韌體報告資料及/或硬體報告資料中之某些基於事件訊息。歸因於儲存限制,產生所有類型之基於事件訊息可並不總係可行的。下圖描述一實例,其中由可視化系統發送一適當模板以組態一SOC系統,以產生適當 (例如基於事件)訊息,該訊息將允許可視化系統顯示一所期望之圖表、表格或其他類型之(例如視覺)資訊。
在一些實施例中,一可視化系統包含各種模板,該等模板針對一給定視覺顯示或要報告之資訊類型描述由各種功能模組應啟用及/或以其他方式報告哪些基於事件訊息。例如,為了產生圖12中所展示之晶粒(指數)存取順序,可自SOC中之功能模組獲取一某組基於事件訊息,而圖11中所展示之匯流排利用率資訊可需要自SOC中功能模組之一組不同基於事件訊息。
圖15係繪示使用硬體報告資訊及使用來自一可視化系統之一模板產生之韌體報告資訊來顯示視覺資訊之一程序之一實施例之流程圖。在一個實例中,圖15之程序由圖2中之可視化系統(214)執行。
在1500處,接收到要顯示之視覺資訊之一選擇。例如,經由可視化系統之一圖形使用者介面,一使用者可選擇要顯示之顯示器、圖表、表格或以上所展示之其他實例視覺資訊之一者。
在1502處,至少部分基於要顯示之視覺資訊之選擇獲得一模板,其中模板包含(1)包含在一系統單晶片(SOC)中之一硬體功能模組或(2)包含在SOC中之一韌體功能模組中之至少一者之一或多個報告組態。在一些實施例中,模板係預先產生的,且自一些儲存模板集合中選擇。在一些實施例中,即時產生一模板。
在圖2之實例中,一模板(220)自可視化系統(214)發送至SOC中之報告模組(204)。模板(220)中之報告組態用於組態報告模組,使得產生適當(例如基於事件)訊息,用於由可視化系統之一使用者所需之顯示、分析,及/或除錯。
返至圖15,在1504處,接收來自SOC之報告資訊,其中:報告資訊包含:(1)由包含在SOC中之硬體功能模組報告之硬體報告資訊及(2)由包含SOC中之韌體功能模組報告之韌體報告資訊;且報告資訊至少部分基於一或多個報告組態。
在1506處,接收一或多個顯示設定。
在1508處,至少部分基於(1)一或多個顯示設定、(2)硬體報告資訊及(3)韌體報告資訊來產生視覺資訊。如以上所描述,模板確保由SOC產生所期望視覺資訊所需之適當(例如,基於事件)訊息。
在1510處,顯示視覺資訊。例如,此係在步驟1500處中選擇之視覺資訊。
儘管為了清楚理解,已對以上實施例進行一些詳細描述,但本發明不限於提供之細節。有諸多實施本發明之替代方法。所揭示之實施例係說明性而非限制性的。
100:步驟 102:步驟 104:步驟 106:步驟 200:系統單晶片(SOC)系統 202:功能模組 204:報告模組 206:鏈路 208:聚合模組 210:記憶體 214:可視化系統 216:儲存介面 218:儲存媒體 220:模板 300:基於時間訊息 302:類型欄位 304:順序欄位 306:有用負載 320:基於事件訊息 322:類型欄位 324:標籤欄位 326:子類型欄位 328:第一保留欄位 330:第二保留欄位 332:有用負載欄位 340:時戳訊息 344:有用負載 400:第一記憶體段 402:時戳訊息 404:事件訊息 406:狀態擷取/基於時間訊息 408:事件訊息 420:第二記憶體段 422:基於事件訊息 500:快閃儲存控制器 502:PCI Express (PCIe)功能模組 504:非揮發性記憶體(NVMe) 506:LDPC解碼器 508:快閃儲存媒體 510a:通道0 NCmd處理器 510d:通道3 NCmd處理器 512:主機 513:PCLe分析器 514:邏輯分析器 600:顯示器 602a:左側圖表 602b:中間圖表 602c:右側圖表 604:底部窗口 700:顯示器 702:NVMe功能模組 704a:事件 704b:事件 704c:事件 706a:WriteXferDone訊息 706b:ReadXferDone訊息 706c:NVMe Cmd Fetch End訊息 800:步驟 802:步驟 804:步驟 900:頂部圖表 901:頂部第二個圖表 902:頂部第三個圖表 903:底部第三個圖表 904:底部第二個圖表 905:底部圖表 1000:頂部圖表 1002:中間圖表 1004:底部圖表 1102:實體命令時序 1104:實體命令號碼 1106:圓形列 1108:頂部圖表 1110:底部圖表 1200:晶粒指數1 1202a:晶粒指數0 1202b:晶粒指數0 1300:表 1302:平均潛時資訊之行 1304:最大潛時資訊之行 1306:最小潛時資訊之行 1400:組 1402:組 1404:組 1406:組 1500:步驟 1502:步驟 1504:步驟 1506:步驟 1508:步驟 1510:步驟
本發明之各種實施例在以下詳細描述及附圖中揭示。
圖1係繪示使用來自一SOC系統之硬體報告資訊及韌體報告資訊來顯示視覺資訊之一程序之一實施例之流程圖。
圖2係繪示一SOC系統之一實施例之一系統圖,各功能模組中具有報告模組以收集及儲存狀態資訊。
圖3係繪示一基於時間訊息、一基於事件訊息及一時戳訊息之實施例之一圖式。
圖4係繪示一訊息擷取記憶體中一聚合及時戳訊息流之兩個實施例之一圖式。
圖5係繪示在一SOC系統上實施之一快閃儲存控制器之一實施例之一圖式。
圖6係繪示與一快閃儲存控制器之讀寫操作相關之性能相關視覺資訊之一實施例之一圖式。
圖7係繪示一放大視窗之一實施例之一圖式,該視窗展示由一快閃儲存控制器中之一NVMe功能模組報告之基於事件訊息中之資訊。
圖8係繪示使用一潛時產生視覺資訊之一程序之一實施例之一圖式。
圖9係繪示視覺資訊之一實施例之一圖式,該視覺資訊展示與一快閃儲存控制器之一前端、一中間端及一後端相關之間隙值。
圖10係繪示展示一快閃儲存控制器之工作負載度量之視覺資訊之一實施例之一圖式。
圖11係繪示展示一快閃儲存控制器中之一個通道之匯流排利用率之視覺資訊之一實施例之一圖式。
圖12係繪示展示用於一快閃儲存控制器之晶粒存取資訊之視覺資訊之一實施例之一圖式。
圖13係繪示展示用於一快閃儲存控制器之統計潛時資訊之視覺資訊之一實施例之一圖式。
圖14係繪示展示一快閃儲存控制器中所有四個通道之匯流排利用率資訊之視覺資訊之一實施例之一圖式。
圖15係繪示使用硬體報告資訊及使用來自一可視化系統之一模板產生之韌體報告資訊來顯示視覺資訊之一程序之一實施例之流程圖。
200:系統單晶片(SOC)系統
202:功能模組
204:報告模組
206:鏈路
208:聚合模組
210:記憶體
214:可視化系統
216:儲存介面
218:儲存媒體
220:模板

Claims (16)

  1. 一種系統,其包括: 一介面,其經組態以接收來自一系統單晶片(SOC)之報告資訊,其中該報告資訊包含:(1)由包含在該SOC中之一硬體功能模組報告之硬體報告資訊及(2)由包含在該SOC中之一韌體功能模組報告之韌體報告資訊; 一處理器,其經組態以: 接收一或多個顯示設定;及 至少部分基於(1)該一或多個顯示設定、(2)該硬體報告資訊及(3)該韌體報告資訊來產生視覺資訊;及 一顯示器,其經組態以顯示該視覺資訊。
  2. 如請求項1之系統,其中: 該報告資訊包含一時戳及聚合訊息流;及 該時戳及聚合訊息流由該SOC中包含之一聚合模組產生,該聚合模組經組態以: 自該硬體功能模組接收依一標準化訊息格式之硬體事件資訊; 自該韌體功能模組接收依該標準化訊息格式之韌體事件資訊;及 將依該標準化訊息格式之該硬體事件資訊及依該標準化訊息格式之該韌體事件資訊聚合及加時戳,以獲得該時戳及聚合訊息流。
  3. 如請求項2之系統,其中加時戳包含將一時戳寫入該標準化訊息格式中為該時戳保留之一保留欄位。
  4. 如請求項1之系統,其中產生視覺資訊包含: 至少部分地基於在一基於起始事件訊息及一基於結束事件訊息中之一唯一操作識別符之一相同值來識別該基於起始事件訊息及一基於結束事件訊息; 藉由自包含在該基於結束事件訊息中之一結束時戳減去包含在該基於起始事件訊息中之一起始時戳來計算一潛時;及 至少部分基於該潛時產生潛時相關之視覺資訊,其中該視覺資訊包含該潛時相關之視覺資訊。
  5. 如請求項1之系統,其中: 該SoC包含一快閃儲存控制器;及 該視覺資訊包含潛時資訊。
  6. 如請求項1之系統,其中: 該SoC包含一快閃儲存控制器;及 該視覺資訊包含匯流排利用率資訊。
  7. 如請求項1之系統,其中: 該SoC包含一快閃儲存控制器; 該快閃儲存控制器經組態以管理對包含複數個晶粒之快閃儲存媒體之存取;及 該視覺資訊包含與該快閃儲存媒體中之該複數個晶粒相關聯之一晶粒存取順序。
  8. 如請求項1之系統,其中: 該系統進一步包含一使用者介面,該使用者介面經組態以接收要顯示之視覺資訊之一選擇;及 該處理器進一步經組態以至少部分基於要顯示之視覺資訊之該選擇來獲得一模板,其中該模板包含(1)包含在該SOC中之該硬體功能模組或(2)包含在該SOC中之該韌體功能模組中之至少一者之一或多個報告組態。
  9. 一種方法,其包括: 使用一介面接收來自一系統單晶片(SOC)之報告資訊,其中該報告資訊包含:(1)由包含在該SOC中之一硬體功能模組報告之硬體報告資訊及(2)由包含在該SOC中之一韌體功能模組報告之韌體報告資訊; 在一處理器處接收一或多個顯示設定;及 使用該處理器至少部分基於(1)該一或多個顯示設定、(2)該硬體報告資訊及(3)該韌體報告資訊來產生視覺資訊;及 使用一顯示器以顯示該視覺資訊。
  10. 如請求項9之方法,其中: 該報告資訊包含一時戳及聚合訊息流;及 該時戳及聚合訊息流由包含在該SOC中之一聚合模組產生,該聚合模組經組態以: 自該硬體功能模組接收依一標準化訊息格式之硬體事件資訊; 自該韌體功能模組接收依該標準化訊息格式之韌體事件資訊;及 將依該標準化訊息格式之該硬體事件資訊及依該標準化訊息格式之該韌體事件資訊聚合且時戳,以獲得該時戳及聚合訊息流。
  11. 如請求項10之方法,其中時戳包含將一時戳寫入在該標準化訊息格式中為該時戳保留之一保留欄位。
  12. 如請求項9之方法,其中產生視覺資訊包含: 至少部分地基於在一基於起始事件訊息及一基於結束事件訊息中之一唯一操作識別符之一相同值來識別該基於起始事件訊息及一基於結束事件訊息; 藉由自包含在該基於結束事件訊息中之一結束時戳減去包含在該基於起始事件訊息中之一起始時戳來計算一潛時;及 至少部分基於該潛時產生潛時相關之視覺資訊,其中該視覺資訊包含該潛時相關之視覺資訊。
  13. 如請求項9之方法,其中: 該SoC包含一快閃儲存控制器;及 該視覺資訊包含潛時資訊。
  14. 如請求項9之方法,其中: 該SoC包含一快閃儲存控制器;及 該視覺資訊包含匯流排利用率資訊。
  15. 如請求項9之方法,其中: 該SoC包含一快閃儲存控制器; 該快閃儲存控制器經組態以管理對包含複數個晶粒之快閃儲存媒體之存取;及 該視覺資訊包含與該快閃儲存媒體中之該複數個晶粒相關聯之一晶粒存取順序。
  16. 如請求項9之方法,其中: 該方法進一步包含使用一使用者介面以接收要顯示之視覺資訊之一選擇;及 該方法進一步包含使用該處理器以獲得至少部分基於要顯示之視覺資訊之該選擇之一模板,其中該模板包含(1)包含在該SOC中之該硬體功能模組或(2)包含在該SOC中之該韌體功能模組中之至少一者之一或多個報告組態。
TW111126298A 2021-07-15 2022-07-13 用於系統單晶片系統之除錯或性能分析之可視化系統 TWI844053B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163222264P 2021-07-15 2021-07-15
US63/222,264 2021-07-15
US17/858,443 US11620176B2 (en) 2021-07-15 2022-07-06 Visualization system for debug or performance analysis of SOC systems
US17/858,443 2022-07-06

Publications (2)

Publication Number Publication Date
TW202324095A true TW202324095A (zh) 2023-06-16
TWI844053B TWI844053B (zh) 2024-06-01

Family

ID=

Also Published As

Publication number Publication date
CN116185788A (zh) 2023-05-30
US20230045254A1 (en) 2023-02-09
US11620176B2 (en) 2023-04-04
US20230153189A1 (en) 2023-05-18

Similar Documents

Publication Publication Date Title
US20230153189A1 (en) Visualization system for debug or performance analysis of soc systems
US7590892B2 (en) Method and system of profiling real-time streaming channels
US8032329B2 (en) Method and system to monitor, debug, and analyze performance of an electronic design
US5642478A (en) Distributed trace data acquisition system
US7937626B2 (en) Techniques for generating a trace stream for a data processing apparatus
US7710969B2 (en) Rapid I/O traffic system
US10452513B2 (en) Trace data capture device and method, system, diagnostic method and apparatus and computer program
CN100440154C (zh) Dma设备的实时调试支持及其方法
US10698805B1 (en) Method and system for profiling performance of a system on chip
CN104615477A (zh) 运行中的fpga ***的周期精确级重放和调试
US9792402B1 (en) Method and system for debugging a system on chip under test
CN104850480A (zh) 高密度存储服务器硬盘性能测试的方法及装置
EP3564898A1 (en) Apparatus and methods for generating dynamic trace data on a gpu
US9477577B2 (en) Method and apparatus for enabling an executed control flow path through computer program code to be determined
US20240168897A1 (en) Collection of runtime information for debug and analysis, including by aggregating status information into a standardized message format and timestamping
TWI844053B (zh) 用於系統單晶片系統之除錯或性能分析之可視化系統
CN105528300A (zh) 一种ddr内存控制器及其访问监控方法
US20060256877A1 (en) Rapid I/O Compliant Message Mapper
US7684970B2 (en) Graphical user interface for use during processor simulation
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
US20060256878A1 (en) Out of Order Message Completion Management
JP5515815B2 (ja) 検証装置及び検証プログラム
WO2017149737A1 (ja) 高位合成装置、高位合成方法及び高位合成プログラム
CN118214701A (zh) 一种总线带宽测量方法及装置
CN117319181A (zh) 一种基于Linux的访问交换芯片的方法、装置及网络设备