TWI764581B - 記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統 - Google Patents
記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統Info
- Publication number
- TWI764581B TWI764581B TW110106098A TW110106098A TWI764581B TW I764581 B TWI764581 B TW I764581B TW 110106098 A TW110106098 A TW 110106098A TW 110106098 A TW110106098 A TW 110106098A TW I764581 B TWI764581 B TW I764581B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- firmware
- storage device
- source code
- debug file
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/321—Display for diagnostics, e.g. diagnostic result display, self-test user interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Stored Programmes (AREA)
Abstract
一種記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統。所述方法包括:根據來源程式碼產生偵錯檔案,其中所述偵錯檔案帶有與所述來源程式碼中的描述訊息有關的符號(symbol)資訊;接收所述記憶體儲存裝置運行所述韌體而產生的記憶體資料;載入所述偵錯檔案以自動分析所述記憶體資料;以及經由應用程式介面呈現分析結果,其中所述分析結果藉由所述符號資訊之輔助而反映所述韌體的狀態。
Description
本發明是有關於一種記憶體檢查技術,且特別是有關於一種記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統。
在記憶體儲存裝置出廠後,若記憶體儲存裝置的韌體(例如開機碼)出現異常,一般都需要透過特定的裝置來擷取記憶體儲存裝置的資料並使用此裝置對其進行分析。例如,常見的記憶體資料擷取裝置包括線上仿真器(In-Circuit Emulator, ICE)。線上仿真器可模擬處理器之運行並自然地與記憶體儲存裝置溝通。但是,線上仿真器在使用上必須直接連接至安裝有記憶體儲存裝置的主機板並經由主機板的通訊埠來存取記憶體儲存裝置。此外,線上仿真器擷取出來的記憶體資料也只能經由線上仿真器自身對其分析,在使用上缺乏彈性,也不適用於逐漸普及的遠端除錯作業。
本發明提供一種記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統,可提高對記憶體儲存裝置執行韌體檢查的工作效率。
本發明的範例實施例提供一種記憶體檢查方法,其用於對記憶體儲存裝置中的韌體進行檢查。所述記憶體檢查方法包括:根據來源程式碼產生偵錯檔案,其中所述偵錯檔案帶有與所述來源程式碼中的描述訊息有關的符號(symbol)資訊;接收所述記憶體儲存裝置運行所述韌體而產生的記憶體資料;載入所述偵錯檔案以自動分析所述記憶體資料;以及經由應用程式介面呈現分析結果,其中所述分析結果藉由所述符號資訊之輔助而反映所述韌體的狀態。
在本發明的一範例實施例中,根據所述來源程式碼產生所述偵錯檔案的步驟包括:經由編譯器處理所述來源程式碼以產生所述偵錯檔案,且所述符號資訊不以機器語言或組合語言呈現。
在本發明的一範例實施例中,所述的記憶體檢查方法更包括:經由所述應用程式介面接收使用者下達的調整指令;以及根據所述調整指令更新所述韌體中的至少部分韌體碼。
本發明的範例實施例另提供一種記憶體檢查裝置,其用於對記憶體儲存裝置中的韌體進行檢查。所述記憶體檢查裝置包括儲存電路與處理器。所述儲存電路用以儲存來源程式碼與偵錯檔案。所述處理器耦接至所述儲存電路。所述處理器用以根據所述來源程式碼產生所述偵錯檔案。所述偵錯檔案帶有與所述來源程式碼中的描述訊息有關的符號資訊。所述處理器更用以接收所述記憶體儲存裝置運行所述韌體而產生的記憶體資料。所述處理器更用以載入所述偵錯檔案以自動分析所述記憶體資料。所述處理器更用以經由應用程式介面呈現分析結果。所述分析結果藉由所述符號資訊之輔助而反映所述韌體的狀態。
在本發明的一範例實施例中,所述記憶體檢查裝置更包括輸入/輸出介面。所述輸入/輸出介面耦接至所述處理器。所述處理器經由所述輸入/輸出介面從所述記憶體儲存裝置接收所述記憶體資料。
在本發明的一範例實施例中,所述處理器更用以經由所述應用程式介面接收使用者下達的調整指令。所述處理器更用以根據所述調整指令更新所述韌體中的至少部分韌體碼。
本發明的範例實施例另提供一種記憶體檢查系統,其包括記憶體儲存裝置與主機系統。所述記憶體儲存裝置具有韌體。所述主機系統耦接至所述記憶體儲存裝置。所述主機系統用以根據來源程式碼產生偵錯檔案。所述偵錯檔案帶有與所述來源程式碼中的描述訊息有關的符號資訊。所述主機系統更用以接收所述記憶體儲存裝置運行所述韌體而產生的記憶體資料。所述主機系統更用以載入所述偵錯檔案以自動分析所述記憶體資料。所述主機系統更用以經由應用程式介面呈現分析結果。所述分析結果藉由所述符號資訊之輔助而反映所述韌體的狀態。
在本發明的一範例實施例中,根據所述來源程式碼產生所述偵錯檔案的操作包括:經由編譯器處理所述來源程式碼以產生所述偵錯檔案,且所述符號資訊不以機器語言或組合語言呈現。
在本發明的一範例實施例中,所述符號資訊用以將所述來源程式碼中的所述描述訊息關聯至所述韌體中的特定符號。
在本發明的一範例實施例中,所述記憶體資料是由耦接至所述記憶體儲存裝置的模擬電路對所述記憶體儲存裝置中的至少一記憶體模組進行讀取而獲得。
在本發明的一範例實施例中,所述模擬電路包括線上仿真器。
在本發明的一範例實施例中,所述記憶體資料是由所述主機系統從所述記憶體儲存裝置接收。
在本發明的一範例實施例中,所述主機系統更用以經由所述應用程式介面接收使用者下達的調整指令。所述主機系統更用以根據所述調整指令更新所述韌體中的至少部分韌體碼。
基於上述,偵錯檔案可根據來源程式碼產生。特別是,所述偵錯檔案可帶有與所述來源程式碼中的描述訊息有關的符號資訊。在接收記憶體儲存裝置運行韌體而產生的記憶體資料後,所述偵錯檔案可被執行以自動分析所述記憶體資料。接著,分析結果可經由應用程式介面呈現,以藉由所述符號資訊之輔助而反映所述韌體的狀態。藉此,可提高對記憶體儲存裝置執行記憶體檢查的工作效率。
圖1是根據本發明的一範例實施例所繪示的記憶體檢查系統的示意圖。請參照圖1,記憶體檢查系統10包括主機系統11與記憶體儲存裝置12。主機系統11用以對記憶體儲存裝置12中的韌體進行檢查。例如,所述韌體可包括安裝於記憶體儲存裝置12中的開機碼及/或其他在記憶體儲存裝置12運行過程中所需的韌體碼。例如,所述檢查包括對記憶體儲存裝置12中的所述韌體的至少部分韌體碼進行除錯、修改或調整。例如,主機系統11可包括筆記型電腦、桌上型電腦、平板電腦、工業用電腦或伺服器等具有運算功能的電腦系統。在一範例實施例中,主機系統11亦稱為韌體檢查裝置或記憶體檢查裝置。
記憶體儲存裝置12可包括隨身碟、記憶卡、固態硬碟(Solid State Drive, SSD)或無線記憶體儲存裝置。此外,記憶體儲存裝置12可包括嵌入式多媒體卡(embedded Multi Media Card, eMMC)或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置等各類型將記憶體模組直接耦接於主機板上的嵌入式儲存裝置。
在一範例實施例中,主機系統11可接收記憶體儲存裝置12運行所述韌體而產生的記憶體資料101。亦即,記憶體資料101可反映所述韌體在記憶體儲存裝置12上的運行結果。主機系統11可自動分析記憶體資料101以對記憶體儲存裝置12中的所述韌體進行檢查。
圖2是根據本發明的一範例實施例所繪示的主機系統的概要方塊圖。請參照圖2,主機系統11包括處理器21、儲存電路22及輸入/輸出介面23。處理器21用以負責主機系統11的整體或部分操作。例如,處理器21可包括中央處理單元(Central Processing Unit, CPU)、圖形處理器(Graphic Processing Unit, GPU),或是其他可程式化之一般用途或特殊用途的微處理器、數位訊號處理器(Digital Signal Processor, DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits, ASIC)、可程式化邏輯裝置(Programmable Logic Device, PLD)或其他類似裝置或這些裝置的組合。
儲存電路22耦接至處理器21並用以儲存資料。例如,儲存電路22可包括傳統硬碟(Hard Disk Drive, HDD)及/或固態硬碟。輸入/輸出介面23耦接至處理器21並用以接收或發送訊號。例如,輸入/輸出介面23可包括滑鼠、鍵盤、觸控板、螢幕、揚聲器、麥克風、網路介面卡及/或通用序列匯流排(Universal Serial Bus, USB)等各式連接介面。
在一範例實施例中,儲存電路22中儲存有偵錯檔案201、記憶體資料202、除錯程式203及應用程式介面204。偵錯檔案201包含與圖1的記憶體儲存裝置12中的韌體有關的除錯資訊。記憶體資料202可根據圖1的記憶體資料101而儲存於儲存電路22中。處理器21可將偵錯檔案201與記憶體資料202載入至除錯程式203。在載入偵錯檔案201與記憶體資料202後,處理器21可運行除錯程式203以自動分析記憶體資料202。然後,處理器21可經由應用程式介面204呈現記憶體資料202的分析結果。根據此分析結果,處理器21可自動或者由除錯人員輔助對記憶體儲存裝置12中的韌體的狀態進行檢查(例如除錯)。
在一範例實施例中,處理器21可根據一個來源程式碼產生偵錯檔案201。此來源程式碼帶有描述訊息。例如,此描述訊息可用以對來源程式碼中的至少部分程式碼的宣告、定義或功能進行描述。須注意的是,偵錯檔案201可帶有與此來源程式碼中的所述描述訊息有關的符號(symbol)資訊。
圖3是根據本發明的一範例實施例所繪示的根據來源程式碼產生偵錯檔案的示意圖。請參照圖3,在一範例實施例中,處理器21包括編譯器(compiler)31。編譯器31可用以處理(例如編譯)來源程式碼32以產生偵錯檔案33。偵錯檔案32可相同或相似於圖2的偵錯檔案201。須注意的是,來源程式碼32攜帶有描述訊息321。描述訊息321可用以對來源程式碼32中的至少部分程式碼的宣告、定義或功能進行描述。
在一範例實施例中,偵錯檔案33包括執行檔331與附加檔332。執行檔331與附加檔332皆是由編譯器31對來源程式碼32進行處理而產生。執行檔331是以機器語言(或組合語言)呈現的檔案並可視為藉由編譯來源程式碼32而產生的主程式。附加檔332用以攜帶與描述訊息321有關的符號資訊。特別是,附加檔332不以機器語言(或組合語言)呈現。在一範例實施例中,附加檔332可視為來源程式碼32以及以機器語言(或組合語言)呈現的執行檔331之間的描述檔。在一範例實施例中,附加檔332所攜帶的符號資訊可用以將描述訊息321關聯(或映射)至圖1的記憶體儲存裝置12的韌體中的特定符號。
圖4是根據本發明的一範例實施例所繪示的描述訊息的示意圖。請參照圖4,描述訊息401可包含於圖3的描述訊息321中。描述訊息401可用以對圖3的來源程式碼32中的至少部分程式碼的宣告、定義或功能進行描述。
在一範例實施例中,圖1的記憶體資料101是由耦接至記憶體儲存裝置12的一個模擬電路對記憶體儲存裝置12中的至少一記憶體模組進行讀取而獲得。例如,所述至少一記憶體模組可包括揮發性記憶體模組及/或非揮發性記憶體模組。例如,所述揮發性記憶體模組可包括動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)模組及/或靜態隨機存取記憶體(Static Random Access Memory, SRAM),而所述非揮發性記憶體模組可包括快閃記憶體模組。此外,所述模擬電路可不設置於主機系統11中。
在一範例實施例中,所述模擬電路可包括線上仿真器(In-Circuit Emulator, ICE)。此線上仿真器可耦接至安裝有記憶體儲存裝置12的主機板。在記憶體儲存裝置12執行其內部之韌體後,此線上仿真器可經由此主機板的通訊介面從記憶體儲存裝置12中的所述至少一記憶體模組中讀取記憶體資料101。所讀取的記憶體資料101可被攜帶或傳送至主機系統11進行分析。在一範例實施例中,主機系統11還可以藉由其他類型的讀取裝置或由主機系統11自身從記憶體儲存裝置12讀取記憶體資料101,本發明不加以限制。
圖5是根據本發明的一範例實施例所繪示的記憶體檢查操作的示意圖。請參照圖5,在將偵錯檔案201(例如圖3的執行檔331與附加檔332)與記憶體資料202載入至除錯程式203後,除錯程式203可根據偵錯檔案201中與圖1的記憶體儲存裝置12中的韌體有關的除錯資訊來對記憶體資料202進行分析並產生分析結果501。分析結果501可經由應用程式介面204呈現,例如呈現於圖1的主機系統11的顯示器。
在一範例實施例中,分析結果501可藉由偵錯檔案201所攜帶的符號資訊之輔助而反映所述韌體的狀態(例如所述韌體中可能存在的異常)。例如,在運行除錯程式203後,除錯程式203可將所述韌體中的一或多個韌體碼所對應的符號與偵錯檔案201中的符號資訊進行關聯(或映射)。根據此關聯結果(或映射結果),原先記載於圖3的描述訊息321中相關聯的描述(例如與某一程式碼有關的宣告、定義或功能描述)可被呈現於應用程式介面204中。
在一範例實施例中,當除錯程式203偵測到對應於記憶體儲存裝置12中的某一韌體碼的異常事件時,除錯程式203可將此異常事件(或發生異常的韌體碼或記憶體位置)以及相關聯的描述訊息同時呈現於應用程式介面204中。特別是,類似於原始程式碼中的描述訊息(例如圖3的描述訊息321),應用程式介面204中呈現的描述訊息是以人類可讀的方式呈現,從而有助於除錯人員針對所述異常事件進行錯誤鎖定與排除。
在一範例實施例中,除錯程式203可經由應用程式介面204接收使用者下達的調整指令502。此調整指令502可經由圖2的輸入/輸出介面23輸入至應用程式介面204。除錯程式203可根據調整指令502來更新所述韌體中的至少部分韌體碼。例如,除錯人員可根據應用程式介面204所呈現的異常事件來下達調整指令502。除錯程式203可根據調整指令502來對圖1的記憶體儲存裝置12中與此異常事件有關的韌體碼進行更新,以嘗試排除此異常事件。
圖6是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。請參照圖6,記憶體儲存裝置62可相同或相似於圖1的記憶體儲存裝置12。在一範例實施例中,記憶體儲存裝置62包括連接介面單元621、記憶體控制電路單元622、可複寫式非揮發性記憶體模組623及揮發性記憶體模組624。
在一範例實施例中,連接介面單元621是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此。在一範例實施例中,連接介面單元621亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、USB標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、MCP介面標準、MMC介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元621可與記憶體控制電路單元622封裝在一個晶片中,或者連接介面單元621是佈設於一包含記憶體控制電路單元622之晶片外。
記憶體控制電路單元622用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統的指令在可複寫式非揮發性記憶體模組623中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組623耦接至記憶體控制電路單元622並且用以儲存資料。可複寫式非揮發性記憶體模組623可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quad Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組623中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
揮發性記憶體模組624耦接至記憶體控制電路單元622並且用以暫時性地儲存資料。例如,揮發性記憶體模組624可包括DRAM模組及/或SRAM模組。
在一範例實施例中,記憶體控制電路單元622可將包含開機碼的韌體碼儲存於可複寫式非揮發性記憶體模組623。當記憶體儲存裝置62處於開機或其他工作狀態時,相應的韌體碼可被讀取到揮發性記憶體模組624中執行。此外,執行所述韌體碼而產生的暫態資料也會暫存於揮發性記憶體模組624中。在一範例實施例中,圖1的記憶體資料101即包含此暫態資料。在一範例實施例中,透過將圖2的偵錯檔案201中的資訊與此暫態資料進行比對等分析處理,相應的異常事件即可被偵測並呈現於圖2的應用程式介面204。
圖7是根據本發明的一範例實施例所繪示的記憶體檢查方法的流程圖。請參照圖7,在步驟S701中,根據來源程式碼產生偵錯檔案。所述偵錯檔案帶有與所述來源程式碼中的描述訊息有關的符號資訊。在步驟S702中,接收記憶體儲存裝置運行韌體而產生的記憶體資料。在步驟S703中,載入所述偵錯檔案以自動分析所述記憶體資料。在步驟S704中,經由應用程式介面呈現分析結果,其中所述分析結果藉由所述符號資訊之輔助而反映所述韌體的狀態。
然而,圖7中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖7中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖7的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,偵錯檔案可根據來源程式碼產生。特別是,所述偵錯檔案可帶有與所述來源程式碼中的描述訊息有關的符號資訊。在接收記憶體儲存裝置運行韌體而產生的記憶體資料後,所述偵錯檔案可被執行以自動分析所述記憶體資料。接著,分析結果可經由應用程式介面呈現,以藉由所述符號資訊之輔助而反映所述韌體的狀態。藉此,可提高對記憶體儲存裝置執行記憶體檢查的工作效率。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
10:記憶體檢查系統
11:主機系統
12, 62:記憶體儲存裝置
101:記憶體資料
21:處理器
22:儲存電路
23:輸入/輸出介面
201, 33:偵錯檔案
202:記憶體資料
203:除錯程式
204:應用程式介面
31:編譯器
32:來源程式碼
321, 401:描述訊息
331:執行檔
332:附加檔
501:分析結果
502:調整指令
621:連接介面單元
622:記憶體控制電路單元
623:可複寫式非揮發性記憶體模組
624:揮發性記憶體模組
S701:步驟(根據來源程式碼產生偵錯檔案,其中所述偵錯檔案帶有與所述來源程式碼中的描述訊息有關的符號資訊)
S702:步驟(接收記憶體儲存裝置運行韌體而產生的記憶體資料)
S703:步驟(載入所述偵錯檔案以自動分析所述記憶體資料)
S704:步驟(經由應用程式介面呈現分析結果,其中所述分析結果藉由所述符號資訊之輔助而反映所述韌體的狀態)
圖1是根據本發明的一範例實施例所繪示的記憶體檢查系統的示意圖。
圖2是根據本發明的一範例實施例所繪示的主機系統的概要方塊圖。
圖3是根據本發明的一範例實施例所繪示的根據來源程式碼產生偵錯檔案的示意圖。
圖4是根據本發明的一範例實施例所繪示的描述訊息的示意圖。
圖5是根據本發明的一範例實施例所繪示的記憶體檢查操作的示意圖。
圖6是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖7是根據本發明的一範例實施例所繪示的記憶體檢查方法的流程圖。
S701:步驟(根據來源程式碼產生偵錯檔案,其中所述偵錯檔案帶有與所述來源程式碼中的描述訊息有關的符號資訊)
S702:步驟(接收記憶體儲存裝置運行韌體而產生的記憶體資料)
S703:步驟(載入所述偵錯檔案以自動分析所述記憶體資料)
S704:步驟(經由應用程式介面呈現分析結果,其中所述分析結果藉由所述符號資訊之輔助而反映所述韌體的狀態)
Claims (18)
- 一種記憶體檢查方法,用於對一記憶體儲存裝置中的一韌體進行檢查,且該記憶體檢查方法包括:根據一來源程式碼產生一偵錯檔案,其中該偵錯檔案帶有與該來源程式碼中的一描述訊息有關的符號(symbol)資訊;接收該記憶體儲存裝置運行該韌體而產生的一記憶體資料,其中該記憶體資料是由耦接至該記憶體儲存裝置的一模擬電路對該記憶體儲存裝置中的至少一記憶體模組進行讀取而獲得;由記憶體檢查裝置載入該偵錯檔案並根據該偵錯檔案分析該記憶體資料;以及經由一應用程式介面呈現一分析結果,其中該分析結果藉由該符號資訊之輔助而反映該韌體的狀態。
- 如請求項1所述的記憶體檢查方法,其中根據該來源程式碼產生該偵錯檔案的步驟包括:經由一編譯器處理該來源程式碼以產生該偵錯檔案,且該符號資訊不以機器語言或組合語言呈現。
- 如請求項1所述的記憶體檢查方法,其中該符號資訊用以將該來源程式碼中的該描述訊息關聯至該韌體中的特定符號。
- 如請求項1所述的記憶體檢查方法,其中該模擬電路包括一線上仿真器(In-Circuit Emulator,ICE)。
- 如請求項1所述的記憶體檢查方法,其中該記憶體資料更由一主機系統從該記憶體儲存裝置接收。
- 如請求項1所述的記憶體檢查方法,更包括:經由該應用程式介面接收一使用者下達的一調整指令;以及根據該調整指令更新該韌體中的至少部分韌體碼。
- 一種記憶體檢查裝置,用於對一記憶體儲存裝置中的一韌體進行檢查,且該記憶體檢查裝置包括:一儲存電路,用以儲存一來源程式碼與一偵錯檔案;以及一處理器,耦接至該儲存電路,其中該處理器用以根據該來源程式碼產生該偵錯檔案,該偵錯檔案帶有與該來源程式碼中的一描述訊息有關的符號資訊,該處理器更用以接收該記憶體儲存裝置運行該韌體而產生的一記憶體資料,該記憶體資料是由耦接至該記憶體儲存裝置的一模擬電路對該記憶體儲存裝置中的至少一記憶體模組進行讀取而獲得,該處理器更用以載入該偵錯檔案並根據該偵錯檔案分析該記憶體資料,並且該處理器更用以經由一應用程式介面呈現一分析結果,其中該分析結果藉由該符號資訊之輔助而反映該韌體的狀態。
- 如請求項7所述的記憶體檢查裝置,其中根據該來源程式碼產生該偵錯檔案的操作包括:經由一編譯器處理該來源程式碼以產生該偵錯檔案,且該符 號資訊不以機器語言或組合語言呈現。
- 如請求項7所述的記憶體檢查裝置,其中該符號資訊用以將該來源程式碼中的該描述訊息關聯至該韌體中的特定符號。
- 如請求項7所述的記憶體檢查裝置,其中該模擬電路包括一線上仿真器。
- 如請求項7所述的記憶體檢查裝置,其中該記憶體檢查裝置更包括一輸入/輸出介面,該輸入/輸出介面耦接至該處理器,並且該處理器更經由該輸入/輸出介面從該記憶體儲存裝置接收該記憶體資料。
- 如請求項7所述的記憶體檢查裝置,其中該處理器更用以經由該應用程式介面接收一使用者下達的一調整指令,並且該處理器更用以根據該調整指令更新該韌體中的至少部分韌體碼。
- 一種記憶體檢查系統,包括:一記憶體儲存裝置,具有一韌體;以及一主機系統,耦接至該記憶體儲存裝置,其中該主機系統用以根據一來源程式碼產生一偵錯檔案,該偵錯檔案帶有與該來源程式碼中的一描述訊息有關的符號資訊,該主機系統更用以接收該記憶體儲存裝置運行該韌體而產生 的一記憶體資料,該記憶體資料是由耦接至該記憶體儲存裝置的一模擬電路對該記憶體儲存裝置中的至少一記憶體模組進行讀取而獲得,該主機系統更用以載入該偵錯檔案並根據該偵錯檔案分析該記憶體資料,並且該主機系統更用以經由一應用程式介面呈現一分析結果,其中該分析結果藉由該符號資訊之輔助而反映該韌體的狀態。
- 如請求項13所述的記憶體檢查系統,其中根據該來源程式碼產生該偵錯檔案的操作包括:經由一編譯器處理該來源程式碼以產生該偵錯檔案,且該符號資訊不以機器語言或組合語言呈現。
- 如請求項13所述的記憶體檢查系統,其中該符號資訊用以將該來源程式碼中的該描述訊息關聯至該韌體中的特定符號。
- 如請求項13所述的記憶體檢查系統,其中該模擬電路包括一線上仿真器。
- 如請求項13所述的記憶體檢查系統,其中該記憶體資料更由該主機系統從該記憶體儲存裝置接收。
- 如請求項13所述的記憶體檢查系統,其中該主機系統更用以經由該應用程式介面接收一使用者下達的一調整指令,並且該主機系統更用以根據該調整指令更新該韌體中的至少部分 韌體碼。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110106098A TWI764581B (zh) | 2021-02-22 | 2021-02-22 | 記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統 |
US17/200,910 US11960381B2 (en) | 2021-02-22 | 2021-03-15 | Memory check method, memory check device, and memory check system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110106098A TWI764581B (zh) | 2021-02-22 | 2021-02-22 | 記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI764581B true TWI764581B (zh) | 2022-05-11 |
TW202234230A TW202234230A (zh) | 2022-09-01 |
Family
ID=82594197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110106098A TWI764581B (zh) | 2021-02-22 | 2021-02-22 | 記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11960381B2 (zh) |
TW (1) | TWI764581B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635473A (zh) * | 2003-12-30 | 2005-07-06 | 联发科技股份有限公司 | 判断存储器模块中程序码正确性的方法 |
TW200945022A (en) * | 2008-03-17 | 2009-11-01 | Freescale Semiconductor Inc | Qualification of conditional debug instructions based on address |
TW201616356A (zh) * | 2014-10-17 | 2016-05-01 | Insyde Software Corp | 偵錯韌體/軟體以產生追蹤資料之系統與方法、記錄媒體及電腦程式產品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4202673B2 (ja) * | 2002-04-26 | 2008-12-24 | 株式会社東芝 | システムlsi開発環境生成方法及びそのプログラム |
US20110029953A1 (en) * | 2009-07-28 | 2011-02-03 | Xavier Pouyollon | System and Method for Scalable Handling of Debug Information |
-
2021
- 2021-02-22 TW TW110106098A patent/TWI764581B/zh active
- 2021-03-15 US US17/200,910 patent/US11960381B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635473A (zh) * | 2003-12-30 | 2005-07-06 | 联发科技股份有限公司 | 判断存储器模块中程序码正确性的方法 |
TW200945022A (en) * | 2008-03-17 | 2009-11-01 | Freescale Semiconductor Inc | Qualification of conditional debug instructions based on address |
TW201616356A (zh) * | 2014-10-17 | 2016-05-01 | Insyde Software Corp | 偵錯韌體/軟體以產生追蹤資料之系統與方法、記錄媒體及電腦程式產品 |
Also Published As
Publication number | Publication date |
---|---|
US20220269581A1 (en) | 2022-08-25 |
US11960381B2 (en) | 2024-04-16 |
TW202234230A (zh) | 2022-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7321951B2 (en) | Method for testing flash memory power loss recovery | |
US10504605B2 (en) | Method and system for testing firmware of solid-state storage device, and electronic apparatus | |
US11294743B2 (en) | Firmware event tracking for NAND-based storage devices, and methods and instruction sets for performing the same | |
US9158661B2 (en) | Enhanced debugging for embedded devices | |
KR102229024B1 (ko) | 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템 | |
US9262283B2 (en) | Method for reading kernel log upon kernel panic in operating system | |
US9336082B2 (en) | Validating persistent memory content for processor main memory | |
US8707102B2 (en) | Method and program for verifying operation of processor | |
US11984181B2 (en) | Systems and methods for evaluating integrity of adjacent sub blocks of data storage apparatuses | |
US20230004320A1 (en) | Method of managing debugging log in storage device | |
US11093369B2 (en) | Reconfigurable simulation system and method for testing firmware of storage | |
US10359971B2 (en) | Storing memory profile data of an application in non-volatile memory | |
TWI764581B (zh) | 記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統 | |
CN112820341B (zh) | 存储器检查方法、存储器检查装置及存储器检查系统 | |
US8291394B2 (en) | Method and apparatus for detecting transient faults via dynamic binary translation | |
US11156664B2 (en) | Scan chain techniques and method of using scan chain structure | |
US11646091B2 (en) | System for outputting test data from multiple cores and method thereof | |
US11650873B2 (en) | Memory controller, method of operating the memory controller, and storage device including memory controller | |
TWI794997B (zh) | 固態硬碟裝置的除錯方法及裝置以及電腦程式產品 | |
JP4324149B2 (ja) | エミュレータ及びそれを用いた開発支援システム | |
US20230026712A1 (en) | Generating system memory snapshot on memory sub-system with hardware accelerated input/output path | |
CN117636967A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |