TWI810652B - 可在記憶體裝置上執行的方法、記憶體裝置及非暫態性電腦可讀媒體 - Google Patents

可在記憶體裝置上執行的方法、記憶體裝置及非暫態性電腦可讀媒體 Download PDF

Info

Publication number
TWI810652B
TWI810652B TW110134241A TW110134241A TWI810652B TW I810652 B TWI810652 B TW I810652B TW 110134241 A TW110134241 A TW 110134241A TW 110134241 A TW110134241 A TW 110134241A TW I810652 B TWI810652 B TW I810652B
Authority
TW
Taiwan
Prior art keywords
command
debug
memory
implementations
log
Prior art date
Application number
TW110134241A
Other languages
English (en)
Other versions
TW202225971A (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 TW202225971A publication Critical patent/TW202225971A/zh
Application granted granted Critical
Publication of TWI810652B publication Critical patent/TWI810652B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3075Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • 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/324Display of status information
    • G06F11/328Computer systems status display
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0683Plurality of storage devices
    • 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/3037Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Stored Programmes (AREA)

Abstract

示例實施包括一種方法,其接收與主機命令相關聯的主機命令識別符、確定與該主機命令及記憶體控制器裝置相關聯的裝置命令、接收對應於該確定該裝置命令的時間的裝置命令時間戳、以及與該確定該裝置命令同時確定除錯記錄,該除錯記錄包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。示例實施還包括一種裝置,其可操作地耦合到該記憶體陣列,該記憶體控制器裝置被配置為接收與主機命令相關聯的主機命令識別符,並且被配置為確定與該主機命令及記憶體控制器裝置相關聯的裝置命令;以及除錯記錄產生器裝置,可操作地耦合到該記憶體控制器裝置並且被配置為接收對應於該確定的裝置命令的時間的裝置命令時間戳,並且被配置為與該確定該裝置命令同時確定除錯記錄,該除錯記錄包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。

Description

可在記憶體裝置上執行的方法、記憶體裝置及非暫態性電腦可讀媒體
本實施總體上有關電子記憶體裝置,並且尤有關高性能記憶體除錯記錄產生和管理。
記錄電子記憶體裝置及其組件的準確和完整的活動對於開發具有高性能特性的電子裝置至關重要。這種高性能特徵可包括可靠度、速度和容量。然而,傳統系統可能無法有效地記錄電子記憶體裝置及其組件的準確和完整的活動,或者可能透過顯著影響的可靠度和速度來做到這一點。因此,需要一種用於高性能記憶體除錯記錄產生和管理的技術解決方案。
示例實施包括一種方法,其接收與主機命令 相關聯的主機命令識別符、確定與該主機命令及記憶體控制器裝置相關聯的裝置命令、接收對應於該確定該裝置命令的時間的裝置命令時間戳、以及確定該裝置命令的同時確定除錯記錄,該除錯記錄包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。
示例實施還包括一種裝置,其可操作地耦合到該記憶體陣列,該記憶體控制器裝置被配置為接收與主機命令相關聯的主機命令識別符,並且被配置為確定與該主機命令及記憶體控制器裝置相關聯的裝置命令;以及除錯記錄產生器裝置,可操作地耦合到該記憶體控制器裝置並且被配置為接收對應於該確定的裝置命令的時間的裝置命令時間戳,並且被配置為確定該裝置命令的同時確定除錯記錄,該除錯記錄包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。
示例實施還包括一種非暫態性電腦可讀媒體,其儲存電腦可讀指令,使得當該等指令被執行時,使處理電路:接收與主機命令相關聯的主機命令識別符;確定與該主機命令及記憶體控制器裝置相關聯的裝置命令;接收對應於該確定該裝置命令的時間的裝置命令時間戳;以及確定該裝置命令的同時確定除錯記錄,該除錯記錄包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。
100:儲存裝置
102:命令輸入
104:控制器
106:記憶體陣列
108:時間戳輸入
110:除錯記錄產生器
112:除錯記錄管理器
114:系統
200:控制器
202:主機命令輸入節點
210:主機命令解譯器(HCI)
212:HCI監聽節點
220:緩衝器模組(BM)
222:BM監聽節點
230:查找表裝置(LUTE)/查找表模組(LUTE)
232:LUTE監聽節點
240:寫控制器(WC)
242:WC監聽節點
250:快閃記憶體介面層裝置(FIL)
252:FIL監聽節點
260:快閃記憶體控制器(FC)
262:作業記憶體節點
300:除錯記錄產生器
310:HCI監聽裝置
312:HCI監聽濾波器
314:HCI登錄節點
320:BM監聽裝置
322:BM監聽濾波器
324:BM登錄節點
330:LUTE監聽裝置
332:LUTE監聽濾波器
334:LUTE登錄節點
340:WC監聽裝置
342:WC監聽濾波器
344:WC登錄節點
350:FIL監聽裝置
352:FIL監聽濾波器
354:FIL登錄節點
400:除錯記錄管理器
410:監聽登錄產生器
420:登錄時間戳串聯器
430:監聽登錄濾波器
440:登錄批次處理器
442:除錯登錄節點
500:記憶體陣列
510:作業記憶體部分
512:除錯記憶體部分
600:方法
610:步驟
612:步驟
620:步驟
630:步驟
632:步驟
634:步驟
636:步驟
638:步驟
640:步驟
700:方法
710:步驟
720:步驟
730:步驟
732:步驟
740:步驟
742:步驟
744:步驟
750:步驟
760:步驟
770:步驟
780:步驟
800:方法
810:步驟
820:步驟
822:步驟
824:步驟
826:步驟
828:步驟
830:步驟
840:步驟
850:步驟
本實施的這些和其他方面和特徵對於熟於此技術之人士來說,在結合以下圖式閱讀以下具體實施的說明時將變得顯而易見:[圖1]顯示根據本實施的示例儲存裝置。
[圖2]顯示根據圖1的示例系統的示例控制器。
[圖3]顯示根據圖1的示例系統的示例除錯記錄產生器。
[圖4]顯示根據圖1的示例系統的示例除錯記錄管理器。
[圖5]顯示根據圖1的示例系統的示例記憶體陣列。
[圖6]顯示根據本實施的高性能記憶體除錯記錄產生及管理的示例方法。
[圖7]顯示對圖6的示例方法的進一步的高性能記憶體除錯記錄產生及管理的示例方法。
[圖8]顯示根據本實施的高性能記憶體除錯記錄產生及管理的另一示例方法。
現在將參照圖式詳細說明本實施,圖式作為實施的說明性示例提供,以使熟於此技術之人士能夠實踐熟於此技術之人士顯而易見的實施和備選方案。值得注意的是,以下的圖式和示例並不意指將本實施的範圍限制為單一實施例,而是藉由交換所說明或顯示的元件中的一些 或全部的其他實施是可行的。此外,在本實施的某些元件可以使用已知組件被部分或全部實施的情況下,將僅說明此類已知組件中對於理解本實施所必需的那些部分,並且為了不混淆本實施,將省略詳細說明此類已知組件的其他部分。說明為以軟體實現的實施不應限於此,而是可以包括以硬體或軟體與硬體的組合實現的實施,反之亦然,這對熟於此技術之人士來說是顯而易見的,除非本文另有說明。在本說明書中,顯示單一組件的實施例不應被認為是限制性的;相反,除非本文另有明確說明,否則本揭露旨在涵蓋包括多個相同組件的其他實施,反之亦然。此外,除非明確說明,否則申請人不打算將說明書或申請專利範圍中的任何術語賦予不常見或特殊的含義。此外,本實施包括本文透過說明方式提及的已知組件的目前和未來已知等效物。
在一些實施中,複雜的整合電子裝置包括許多單獨的邏輯功能,它們以管線或串聯方式連接以執行一系列動作。在一些實施中,每個邏輯功能在任何時候處理單一工作項,而作為一個整體的管線可以處理多個離散的工作項,因為每個功能從先前的功能接收新的工作項並傳遞完成的工作項順序到下一個功能。在一些實施中,為幫助除錯管線中出現的問題,每個程序單獨將其各自的活動記錄在具有時間戳的事件登錄中。在一些實施中,對於任何給定的工作項,與透過管線的多個程序相關聯的進度被記錄在多個單獨的事件登錄中,每個單獨的程序有一個登錄。在一些實施中,每個登錄的事件記錄項目的識別符、 時間戳和與發生的事件相關的其他資料。在高速管線中,處理數千或數百萬個工作項可能需要大量儲存空間來儲存登錄。在一些實施中,所需的儲存空間包括大量的揮發性記憶體。在一些實施中,所需的儲存空間包括大量的DRAM。在一些實施中,揮發性記憶體還被管線中的邏輯功能用於其他目的,事件的登錄亦會「竊取」記憶體I/O頻寬,這會導致管線本身運行得比有能力的其他情況下更慢。因此,有利的是提供一種用於在整合電子裝置中登錄的技術解決方案,同時減少或消除對額外記憶體儲存的需求以及來自用於操作和登錄過程的共享頻寬的性能降低的影響。
根據本文揭示和說明的本實施的配置包括整合電子裝置中的事件登錄方案,其最小化事件登錄所需的記憶體儲存並且減少由於事件登錄引起的記憶體I/O頻寬損失。在一些實施中,不是由裝置內的單獨邏輯功能寫入單獨的事件登錄,而是透過將來自單獨事件的重複資訊移除到單一登錄條目中來將來自多個邏輯程序的事件組合、合併等成單一登錄條目。在一些實施中,重複資訊包括但不侷限於與整合電子裝置內的邏輯功能正在處理的工作項相關聯的識別符。在一些實施中,將這種較小的事件登錄寫入記憶體消耗較少量的記憶體的可用I/O頻寬,並且消耗記憶體本身中的較少空間。在一些實施中,較小量消耗I/O頻寬允許裝置在執行事件登錄時對其正常工作項處理經歷較少的性能下降。在一些實施中,由於需要提供較少的記憶體來支援事件登錄,因此較少量的記憶體消耗降低 裝置的成本。
圖1顯示根據本實施的示例儲存裝置100。如圖1中的示例所示,儲存裝置100包括系統114和記憶體陣列106。在一些實施中,系統114包括命令輸入102和時間戳輸入108。在一些實施中,在一些實施中保持時脈且時間戳在儲存裝置100內產生。在一些實施中,系統114包括控制器104、除錯記錄產生器110和除錯記錄管理器112。
命令輸入102可操作以從主機電腦(為清楚起見未顯示)向系統114提供主機命令以執行關於記憶體陣列的一或多個操作。在一些實施中,命令輸入102可操作以向系統114提供記憶體存取命令和記憶體可操作性命令中的至少一者,針對指令,記憶體陣列106將進行一或多個記憶體存取活動或記憶體可操作性活動。在一些實施中,命令輸入包括高階記憶體讀命令、高階記憶體寫命令等。在一些實施中,命令輸入包括診斷命令、組態命令、校準命令等。在一些實施中,組態、校準等中的至少一項包括對記憶體陣列的一或多個實體或邏輯記憶體位置的組態或校準。在一些實施中,組態、校準等中的至少一項包括對系統114的一或多個組件的組態或校準。在一些實施中,命令輸入包括用以產生主機命令的邏輯、裝置、介面等。舉例來說,命令輸入的產生是回應於從提交佇列接收到一或多個獲取命令、從佇列中移除裝置命令、開始記憶體存取操作、檢測記憶體可靠度或可用性改變、開始任何記憶體診斷操作、完成任何記憶體診斷操作、開始執行主機命令、以及完成主機命令的執行。在一些實施中,命令輸入 包括用以從外部裝置、系統、使用者等中的至少一者接收主機命令的邏輯、裝置、介面等。在一些實施中,命令輸入102包括介面、輸入、耦合、連接、轉接器、標頭等。
時間戳輸入108可操作以向系統114提供時間戳以指示與系統114相關聯的特定事件的時間。在一些實施中,時間戳輸入可操作以提供絕對時間戳,包括但不侷限於UNIX時間戳。在一些實施中,時間戳輸入108可操作以與系統114的任何裝置或組件的任何裝置或時脈非同步地將時間戳提供給系統114。在一些實施中,時間戳輸入可操作以提供具有至少1微秒之粒度的時間戳。在一些實施中,時間戳輸入108可操作以與系統114的任何裝置或組件的至少一裝置或時脈同步、協調等地將參考時間戳提供給系統114。在一些實施中,系統114保持一個獨立的時脈並在內部產生它自己的時間戳,其藉由使用時間戳輸入108來設定時脈的開始時間從時間戳輸入108引用。在一些實施中,時間戳輸入108包括介面、輸入、耦合、連接、轉接器、標頭等。
記憶體陣列106用於儲存資料,包括但不限於從系統114接收的除錯資料。在一些實施中,記憶體陣列106包括一或多個硬體記憶體裝置,用於儲存二進制資料、數字資料或類似。在一些實施中,記憶體陣列106包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。在一些實施中,記憶體陣列106包括非揮發性記憶體裝置、揮發性記憶體裝置、固態記憶體裝置、隨機 存取記憶體(RAM)裝置、快閃記憶體裝置和NAND記憶體裝置中的至少一個裝置。在一些實施中,記憶體陣列106包括配置在一或多個實體記憶體陣列上的一或多個可定址記憶體區域。在一些實施中,實體記憶體陣列包括設置在特定半導體裝置、積體電路裝置、印刷電路板裝置等上的NAND閘陣列。在一些實施中,記憶體陣列106包括揮發性記憶體裝置和非揮發性記憶體裝置,其中揮發性記憶體裝置充當快取或緩衝器以高I/O頻寬儲存和檢索資料並且快取的資料是周期性的刷新到非揮發性記憶體。
控制器104可操作以將資料傳輸到記憶體陣列106和從記憶體陣列106傳輸資料。在一些實施中,控制器104還可操作以組態、校準等記憶體陣列106的一或多個實體或邏輯記憶體位置。在一些實施中,控制器104還可操作以組態、校準等系統114的一或多個組件。在一些實施中,控制器104包括用於控制記憶體陣列106或與記憶體陣列106交互的一或多個邏輯裝置。在一些實施中,控制器104包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
除錯記錄產生器110可操作以記錄來自控制器104的一或多個裝置命令和主機命令。在一些實施中,除錯記錄產生器可操作以被動地監控控制器104和裝置及其組成部分的一或多個輸入和輸出。在一些實施中,除錯記錄產生器110可操作地耦合到控制器104與記憶體陣列106之間的專用通訊線路、匯流排等。在一些實施中,除 錯記錄產生器110包括多個端子,該多個端子可操作地耦合到控制器104的一或多個裝置或組件。因此,在一些實施中,除錯記錄產生器110可操作以被動地監測來自控制器104的一或多個裝置的輸出,同時最小化支援與除錯記錄產生器110的通訊所需的控制器104的運算資源和硬體修改。作為一個示例,最小化運算資源包括最小化回應裝置命令活動的記錄時間戳的延遲。應當理解,根據本實施,除錯記錄產生器110可操作地直接或透過一條或多條通訊線路、匯流排等直接或間接地耦合到控制器104的一或多個裝置或組件。在一些實施中,除錯記錄產生器110包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
除錯記錄管理器112可操作以將一或多個除錯記錄傳送到記憶體陣列106。在一些實施中,除錯記錄管理器112可操作以串聯化、排序、組織等從除錯記錄管理器接收或與除錯記錄管理器相關聯的一或多個除錯記錄。在一些實施中,除錯記錄管理器112可操作以與記憶體裝置的正常操作同時、同期等對一或多個除錯記錄進行串聯化、排序、組織等。因此,在一些實施中,除錯記錄管理器112可操作以與除錯記錄產生器110和系統114的操作同期地、同時地等捕獲、組織和儲存記憶體除錯記錄。
圖2顯示根據圖1的示例系統的示例控制器。如圖2中的示例所示,示例控制器200包括主機命令輸入節點202、可操作地耦合到HCI監聽節點212的主機命令解譯 器(host command interpreter,HCI)210、可操作地耦合到BM監聽節點222的緩衝器模組(buffer module,BM)220、可操作地耦合到LUTE監聽節點232的查找表裝置(lookup table device,LUTE)230、可操作地耦合到WC監聽節點242的寫控制器(write controller,WC)240、可操作地耦合到FIL監聽節點252的快閃記憶體介面層裝置(flash interface layer,FIL)250、以及可操作地耦合到作業記憶體節點262的快閃記憶體控制器(flash controller,FC)260。在一些實施中,控制器104包括示例控制器200。應當理解,示例控制器200和示例控制器104可以在其中包括更多或更少的裝置,用於實現與記憶體陣列106的通訊和控制。應當進一步理解的是示例控制器200和示例控制器104的任何附加組件可以可操作地耦合到對應的監聽節點。應當理解,監聽節點212、222、232、242和252中的一或多個可以包括一或多個通訊線路、匯流排等。應當理解,示例除錯記錄產生器300和除錯記錄產生器110可以可選地包括HCI監聽濾波器312、BM監聽濾波器322、LUTE監聽濾波器332、WC監聽濾波器342和FIL監聽濾波器352。
HCI 210可操作以透過主機命令輸入節點202從命令輸入102接收、通訊、解譯等一或多個主機命令。在一些實施中,HCI 210可操作以基於從命令輸入102接收的一或多個主機命令產生一或多個裝置命令。在一些實施中,HCI 210可操作以基於接收到的主機命令向BM 220、LUTE 230、WC 240、FIL 250和FC 260中的一或多者提供 一或多個指令。在一些實施中,HCI 210透過一或多條通訊線路、匯流排等可操作地耦合到BM 220、LUTE 230、WC 240、FIL 250和FC 260中的一或多者。在一些實施中,HCI 210包括NVMe裝置。應當理解,HCI 210不限於包括NVMe裝置。在一些實施中,HCI監聽節點212可操作地耦合到HCI 210的輸出節點、匯流排等。在一些實施中,HCI監聽節點212可操作地耦合到HCI 210的輸出和BM 220的輸入。在一些實施中,HCI 210可操作以回應於檢索命令將除錯登錄從記憶體陣列106導出或傳輸到外部裝置或系統。作為一個示例,檢索命令包括用於來自記憶體106之讀取操作的主機命令。在一些實施中,HCI 210包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
BM 220可操作以暫時儲存在HCI 210或命令輸入102處接收到的資料。在一些實施中,BM 220可操作以從HCI 210接收資料以及向HCI 210傳輸資料。在一些實施中,HCI 210可操作以回應於從命令輸入102接收到的主機命令讀取儲存在BM 220中的資料並傳輸儲存在BM 220中的資料。作為一個示例,HCI可以透過一或多個通訊線路在外部傳輸資料以回應來自BM 220之向記憶體陣列106請求但尚未儲存在記憶體陣列106中的資料的主機命令。在一些實施中,BM監聽節點222可操作地耦合到BM 220的輸出節點、匯流排等。在一些實施中,BM監聽節點222可操作地耦合到BM 220的輸出和LUTE 230的輸入。在一些 實施中,BM 220包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化的電子組件、積體電路、半導體裝置、正反器、算術單元等。LUTE 230可操作以提供一或多個記憶體陣列位址、功能等。在一些實施中,LUTE監聽節點232可操作地耦合到LUTE 230的輸出節點、匯流排等。在一些實施中,LUTE監聽節點232可操作地耦合到LUTE 230的輸出和WC 240的輸入。在一些實施中,LUTE 230包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
WC 240可操作以回應於一或多個主機命令而產生一或多個寫命令、讀命令等。在一些實施中,WC 監聽節點242可操作地耦合到WC 240的輸出節點、匯流排等。在一些實施中,WC監聽節點242可操作地耦合到WC 240的輸出和FIL 250的輸入。在一些實施中,WC 240包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。FIL 250可操作以回應於從寫控制器240接收到的一或多個寫命令而產生與記憶體陣列106相容的一或多個快閃記憶體命令。在一些實施中,FIL監聽節點252可操作地耦合到FIL 252的輸出節點、匯流排等。在一些實施中,FIL監聽節點252可操作地耦合到FIL 250的輸出和FC 260的輸入。在一些實施中,FIL 250包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。FC 260可操作以基於從FIL 250接收的一或多個快閃記憶體命令產生一或多個記憶體陣列命令。在一些實施中,FC 260包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
圖3顯示根據圖1的示例系統的示例除錯記錄產生器。如圖3中示例所示,示例除錯記錄產生器300包括可操作地耦合到HCI監聽節點212的HCI監聽裝置310、可操作地耦合到BM監聽節點222的BM監聽裝置320、可操作地耦合到LUTE監聽節點232的LUTE監聽裝置330、可操作地耦合到WC監聽節點242的WC監聽裝置340、以及可操作地耦合到FIL監聽節點252的FIL監聽裝置250。示例除錯記錄產生器300還包括可操作地耦合到HCI監聽裝置310和HCI登錄節點314的HCI監聽濾波器312、可操作地耦合到BM監聽裝置320和BM登錄節點324的BM監聽濾波器322、可操作地耦合到LUTE監聽裝置330和LUTE登錄節點334的LUTE監聽濾波器332、可操作地耦合到WC監聽裝置340和WC登錄節點344的WC監聽濾波器342、以及可操作地耦合到FIL監聽裝置350和FIL登錄節點352的FIL監聽濾波器352。在一些實施中,除錯記錄產生器110包括示例除錯記錄產生器300。
HCI監聽裝置310可操作以檢測從HCI監聽節點212輸出的裝置命令,並從時間戳輸入108接收時間戳。在一些實施中,HCI監聽裝置310可操作以確定、產生等至少一個HCI除錯記錄。在一些實施中,HCI除錯記錄包括 與HCI裝置命令相關聯並且從命令輸入102接收的主機命令、從時間戳輸入108記錄的時間戳、以及HCI監聽裝置310的裝置識別符。在一些實施中,所記錄的時間戳對應於在HCI監聽裝置310處接收HCI裝置命令的時間。因此,在一些實施中,HCI監聽裝置310創建至少一個識別HCI裝置命令的HCI除錯記錄、觸發HCI裝置命令的主機命令、以及HCI裝置命令的接收時間。在一些實施中,HCI監聽裝置310在接收HCI裝置命令的同時產生HCI除錯記錄。在一些實施中,HCI監聽裝置310同時產生HCI除錯記錄以最小化接收時間戳與接收HCI裝置命令之間的延遲,並且最大化與HCI除錯記錄相關聯的時間的準確性。在一些實施中,HCI監聽裝置310包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
BM監聽裝置320可操作以檢測從BM監聽節點222輸出的裝置命令,並從時間戳輸入108接收時間戳。在一些實施中,BM監聽裝置320可操作以確定、產生等至少一個BM除錯記錄。在一些實施中,BM除錯記錄包括與BM裝置命令相關聯並且從命令輸入102接收的主機命令、從時間戳輸入108記錄的時間戳、以及BM監聽裝置320的裝置識別符。在一些實施中,所記錄的時間戳對應於在BM監聽裝置320處接收BM裝置命令的時間。因此,在一些實施中,BM監聽裝置320創建至少一個識別BM裝置命令的BM除錯記錄、觸發BM裝置命令的主機命令、以及BM裝置命令的接收時間。在一些實施中,BM監聽裝置 320在接收BM裝置命令的同時產生BM除錯記錄。在一些實施中,BM監聽裝置320同時產生BM除錯記錄以最小化接收時間戳與接收BM裝置命令之間的延遲,並且最大化與BM除錯記錄相關聯的時間的準確性。在一些實施中,BM監聽裝置320包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
LUTE監聽裝置330可操作以檢測從LUTE監聽節點232輸出的裝置命令,並從時間戳輸入108接收時間戳。在一些實施中,LUTE監聽裝置330可操作以確定、產生等至少一個LUTE除錯記錄。在一些實施中,LUTE除錯記錄包括與LUTE裝置命令相關聯並且從命令輸入102接收的主機命令、從時間戳輸入108記錄的時間戳、以及LUTE監聽裝置330的裝置識別符。在一些實施中,所記錄的時間戳對應於在LUTE監聽裝置330處接收LUTE裝置命令的時間。因此,在一些實施中,LUTE監聽裝置330創建至少一個識別LUTE裝置命令的LUTE除錯記錄、觸發LUTE裝置命令的主機命令、以及LUTE裝置命令的接收時間。在一些實施中,LUTE監聽裝置330在接收LUTE裝置命令的同時產生LUTE除錯記錄。在一些實施中,LUTE監聽裝置330同時產生LUTE除錯記錄以最小化接收時間戳與接收LUTE裝置命令之間的延遲,並且最大化與LUTE除錯記錄相關聯的時間的準確性。在一些實施中,LUTE監聽裝置330包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反 器、算術單元等。
WC監聽裝置340可操作以檢測從WC監聽節點242輸出的裝置命令,並從時間戳輸入108接收時間戳。在一些實施中,WC監聽裝置340可操作以確定、產生等至少一個WC除錯記錄。在一些實施中,WC除錯記錄包括與WC裝置命令相關聯並且從命令輸入102接收的主機命令、從時間戳輸入108記錄的時間戳、以及WC監聽裝置340的裝置識別符。在一些實施中,所記錄的時間戳對應於在WC監聽裝置340處接收WC裝置命令的時間。因此,在一些實施中,WC監聽裝置340創建至少一個識別WC裝置命令的WC除錯記錄、觸發WC裝置命令的主機命令、以及WC裝置命令的接收時間。在一些實施中,WC監聽裝置340在接收WC裝置命令的同時產生WC除錯記錄。在一些實施中,WC監聽裝置340同時產生WC除錯記錄以最小化接收時間戳與接收WC裝置命令之間的延遲,並且最大化與WC除錯記錄相關聯的時間的準確性。在一些實施中,WC監聽裝置340包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
FIL監聽裝置350可操作以檢測從FIL監聽節點252輸出的裝置命令,並從時間戳輸入108接收時間戳。在一些實施中,FIL監聽裝置350可操作以確定、產生等至少一個FIL除錯記錄。在一些實施中,FIL除錯記錄包括與FIL裝置命令相關聯並且從命令輸入102接收的主機命令、從時間戳輸入108記錄的時間戳、以及FIL監聽裝置350的 裝置識別符。在一些實施中,所記錄的時間戳對應於在FIL監聽裝置350處接收FIL裝置命令的時間。因此,在一些實施中,FIL監聽裝置350創建至少一個識別FIL裝置命令的FIL除錯記錄、觸發FIL裝置命令的主機命令、以及FIL裝置命令的接收時間。在一些實施中,FIL監聽裝置350在接收FIL裝置命令的同時產生FIL除錯記錄。在一些實施中,FIL監聽裝置350同時產生FIL除錯記錄以最小化接收時間戳與接收FIL裝置命令之間的延遲,並最大化與FIL除錯記錄相關聯的時間的準確性。在一些實施中,FIL監聽裝置350包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
HCI監聽濾波器312可操作以接收和過濾從HCI監聽裝置310接收的HCI除錯記錄。在一些實施中,HCI監聽濾波器312確定所接收的HCI除錯記錄是否滿足一或多個用於記錄或丟棄HCI除錯記錄的HCI監聽濾波器準則。在一些實施中,HCI監聽濾波器準則包括裝置命令類型、時間戳或時間戳範圍、主機命令類型、記憶體位址位置、記憶體位址位置範圍、命令傳輸速率、命令產生速率、要被存取的記憶體大小等中的一或多者。在一些實施中,僅當HCI除錯記錄滿足HCI監聽濾波器準則時,HCI監聽濾波器312才將HCI除錯記錄輸出到HCI登錄節點314。或者,在一些實施中,僅當HCI除錯記錄不滿足HCI監聽濾波器準則時,HCI監聽濾波器312才將HCI除錯記錄輸出到HCI登錄節點314。
在一些實施中,HCI監聽濾波器312可操作以在HCI監聽裝置產生HCI裝置記錄的同時或在HCI監聽裝置310處接收HCI裝置命令的同時過濾HCI除錯記錄。因此,HCI監聽濾波器312可操作以快速過濾大量HCI除錯記錄以僅記錄和儲存滿足預定HCI監聽濾波器準則的記錄。此在除錯記錄產生器110處過濾HCI監聽記錄減少將HCI除錯記錄傳輸到除錯記錄管理器112的系統114所專用的頻寬以及記憶體陣列106中所需的實體記憶體的量或記錄HCI除錯記錄所需的記憶體陣列裝置的數量。在一些實施中,HCI監聽濾波器312包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
BM監聽濾波器322可操作以接收和過濾從BM監聽裝置320接收的BM除錯記錄。在一些實施中,BM監聽濾波器322的操作與HCI監聽濾波器312的操作類似,包括但不限於關於BM除錯記錄和BM登錄節點324的監聽濾波器準則。在一些實施中,BM監聽濾波器322包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
LUTE監聽濾波器332可操作以接收和過濾從LUTE監聽裝置330接收的LUTE除錯記錄。在一些實施中,LUTE監聽濾波器332的操作與HCI監聽濾波器312的操作類似,包括但不限於關於LUTE除錯記錄和LUTE登錄節點334的監聽濾波器準則。在一些實施中,LUTE監聽濾波 器332包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
WC監聽濾波器342可操作以接收和過濾從WC監聽裝置340接收的WC除錯記錄。在一些實施中,WC監聽濾波器340的操作與HCI監聽濾波器312的操作類似,包括但不限於關於WC除錯記錄和WC登錄節點344的監聽濾波器準則。在一些實施中,WC監聽濾波器342包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
FIL監聽濾波器352可操作以接收和過濾從FIL監聽裝置352接收的FIL除錯記錄。在一些實施中,FIL監聽濾波器352的操作與HCI監聽濾波器312的操作類似,包括但不限於關於FIL除錯記錄和FIL登錄節點354的監聽濾波器準則。在一些實施中,FIL監聽濾波器352包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
圖4顯示根據圖1的示例系統的示例除錯記錄管理器。如圖4中的示例所示,示例除錯記錄管理器400包括監聽登錄產生器410、登錄時間戳串聯器420、監聽登錄濾波器430和登錄批次處理器440。在一些實施中,監聽登錄產生器410可操作地耦合到HCI登錄節點314、BM登錄節點324、LUTE登錄節點334、WC登錄節點344和FIL登錄節 點354中的一或多者。在一些實施中,登錄批次處理器440可操作地耦合到除錯登錄節點442。或者,在一些實施中,監聽登錄濾波器430可操作地耦合到除錯登錄節點442,其中,示例除錯記錄管理器400不包括、隔離自、旁路登錄批次處理器440。在一些實施中,HCI監聽濾波器312、BM監聽濾波器322、LUTE監聽濾波器332、WC監聽濾波器342、及FIL監聽濾波器352的一或多者可操作地耦合到時間戳輸入108。
監聽登錄產生器410可操作以接收來自HCI登錄節點314、BM登錄節點324、LUTE登錄節點334、WC登錄節點344和FIL登錄節點354中的一或多者的輸出。在一些實施中,監聽登錄產生器410可操作以組合、整合、合併、關聯等任何HCI除錯記錄、BM除錯記錄、LUTE除錯記錄、WC除錯記錄和FIL除錯記錄的至少一個子集。在一些實施中,監聽登錄產生器針對HCI、BM、LUTE、WC和FIL除錯記錄的子集確定除錯記錄內的常見或重複的字串,並將該些位元替換為短碼或字典,該字典將短碼與常見或重複的字串相關聯。在一些實施中,監聽登錄產生器針對HCI、BM、LUTE、WC和FIL除錯記錄的子集對除錯記錄執行無損資料壓縮函數。在一些實施中,資料壓縮函數包括但不限於LZW(Lempel Ziv Welch)函數、霍夫曼(Huffman)編碼函數、掃描長度(run-length)編碼函數和算術編碼函數。在一些實施中,監聽登錄產生器410可操作以藉由鎖存、緩衝、記錄等來自除錯記錄產生器410的輸出來同時組合、整合、合併、關聯等任何HCI除錯記錄、 BM除錯記錄、LUTE除錯記錄、WC除錯記錄和FIL除錯記錄的至少一個子集。因此,在一些實施中,監聽登錄產生器410可操作以接收和處理由除錯記錄產生器110產生的大量除錯記錄。在一些實施中,監聽登錄產生器410包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
登錄時間戳串聯器420可操作以在記憶體裝置的正常操作的同時串聯化、排序、組織等一或多個除錯記錄。在一些實施中,登錄時間戳串聯器420透過時間戳、主機命令、裝置命令、裝置識別符的一或多者以及與儲存裝置100或系統114相關聯的任何硬體特性、軟體特性、裝置特性、系統特性等排序所接收的除錯記錄。在一些實施中,登錄時間戳串聯器420藉由確定除錯記錄的共同最高有效位元、從每個記錄移除共同最高有效位元並創建記錄該等共同最高有效位元的新除錯記錄,來壓縮所接收的除錯記錄的時間戳。在一些實施中,登錄時間戳串聯器420包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。監聽登錄濾波器430可操作以接收和過濾從登錄時間戳串聯器420接收的任何除錯記錄。在一些實施中,監聽登錄濾波器430在類似於HCI監聽濾波器312的監聽濾波器準則下操作。因此,在一些實施中,監聽登錄濾波器430可操作用於根據全局或類似準則以集中化方式過濾除錯記錄。應當理解,與監聽登錄濾波器430 相關聯的監聽濾波器準則可以不同於與監聽裝置310、320、330、340和350中的一或多者相關聯的監聽登錄準則。在一些實施中,監聽登錄濾波器430包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
登錄批次處理器440可操作來對從登錄時間戳串聯器420接收的任何一組除錯記錄進行分組、劃分、組織等,並且產生一或多個除錯記錄批次,其包括一或多組從登錄時間戳串聯器420接收的除錯記錄。在一些實施中,登錄批次處理器440至少部分基於記憶體陣列106的特性產生一或多個除錯記錄批次。作為一個示例,登錄批次處理器440可以產生具有在記憶體陣列106的傳輸頻寬限制內之大小的除錯登錄批次。在一些實施中,登錄批次處理器440包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。應當理解,示例除錯記錄管理器400可以可選地包括登錄時間戳串聯器420、監聽登錄濾波器430和登錄批次處理器440中的一或多個。應進一步理解,回應於示例除錯記錄管理器400的任何裝置或組件的存在或不存在,監聽登錄產生器410、登錄時間戳串聯器420、監聽登錄濾波器430和登錄批次處理器440的任一者可以直接或間接操作地耦合到除錯登錄節點442。
圖5顯示根據圖1的示例系統的示例記憶體陣列。如圖5中的示例所示,示例記憶體陣列500包括作業記憶體部分510和除錯記憶體部分512。在一些實施中,作業 記憶體部分可操作地耦合到作業記憶體節點262。在一些實施中,除錯記憶體部分512可操作地耦合到除錯登錄節點442。在一些實施中,記憶體陣列106包括示例記憶體陣列500。在一些實施中,作業記憶體部分510和除錯記憶體部分512包括記憶體裝置106的不同邏輯區域。
在一些實施中,作業記憶體部分510和除錯記憶體部分512包括記憶體裝置106的不同實體區域。在一些實施中,作業記憶體部分510和除錯記憶體部分512包括記憶體裝置106的不同實體記憶體裝置。作為一個示例,作業記憶體部分510可以是第一積體電路,除錯記憶體部分520可以是第二積體電路,並且記憶體陣列500可以是印刷電路板等,可操作地耦合並且封裝作業記憶體部分510和除錯記憶體部分512。在一些實施中,作業記憶體部分510和除錯記憶體部分512中的一或多者包括一或多個記憶體裝置的連續邏輯或實體區域。在一些實施中,作業記憶體部分510和除錯記憶體部分512中的一或多者包括根據記憶體陣列106的記憶體裝置。在一些實施中,作業記憶體部分510和除錯記憶體部分512中的一或多者包括一或多個電氣組件、電子組件、可程式化電子組件、可再程式化電子組件、積體電路、半導體裝置、正反器、算術單元等。
圖6顯示根據本實施的高性能除錯記錄產生及管理的示例方法。
在步驟610,示例系統確定至少一個除錯記憶體位置。在一些實施中,示例系統接收一或多個邏輯或實體位址,該位址識別一或多個可操作、組態等的記憶體 位置,以接收一或多個除錯記錄、除錯登錄、除錯登錄批次等。在一些實施中,除錯記憶體位置包括除錯記憶體部分512。方法600接著繼續到步驟612。在步驟612,示例系統確定示例系統的一或多個除錯濾波器。在一些實施中,除錯記錄產生器110和除錯記錄管理器112中的一或多者接收、獲得或產生一或多個除錯濾波器準則。在一些實施中,除錯記錄產生器110和除錯記錄管理器112中的一或多者選擇一或多個除錯濾波器準則。接著方法600繼續到步驟620。
在步驟620,示例系統接收主機命令。在一些實施中,示例系統接收與記憶體存取事件相關聯的主機命令。作為一個示例,記憶體存取事件包括但不限於對與示例系統相關聯的記憶體陣列的讀取操作或寫入操作。在一些實施中,示例系統接收與記憶體可操作性事件相關聯的主機命令。作為一個示例,記憶體可操作性事件包括但不限於診斷、自測試、對特定記憶體位址或位址範圍的安全限制的應用或移除等。接著方法600繼續到步驟630。
在步驟630,示例系統確定與所接收的主機命令相關聯的裝置命令識別符(device command identifier,DCI)。在一些實施中,DCI包括與HCI 210、BM 220、LUTE 230、WC 240、FIL 250和FC 260中的一或多者相關聯的一或多個裝置命令。在一些實施中,步驟630包括步驟632、634、636、638和640中的一或多者。在一些實施中,步驟630包括同時地、並存地、並行地等執行步驟632、634、636、638和640中的一或多者。在一些 實施中,步驟630包括彼此同步地、彼此協調地、彼此依賴地等執行步驟632、634、636、638和640中的一或多者。在一些實施中,步驟630包括彼此非同步地、彼此獨立地等執行步驟632、634、636、638和640中的一或多者。在一些實施中,步驟630包括被動監測或被動接收來自HCI 210、BM 220、LUTE 230、WC 240、FIL 250和FC 260中的一或多者的輸出。
在步驟632,示例系統確定HCI 210的DCI。在步驟634,示例系統確定BM 220的DCI。在步驟636,示例系統確定LUTE 230的DCI。在步驟638,示例系統確定WC 240的DCI。在步驟640,示例系統確定FIL 250的DCI。接著該方法繼續到步驟710。應當理解,示例系統可操作以基於HCI 210、BM 220、LUTE 230、WC 240、FIL 250和FC 260中任何一者的任何支援或可支援的功能來確定DCI。應進一步理解,示例系統可操作以基於任何HCI 210、BM 220、LUTE 230、WC 240、FIL 250和FC 260的任何裝置或組件來確定DCI。
圖7顯示對圖6的示例方法的進一步的高性能除錯記錄產生及管理的示例方法。在一些實施中,示例儲存裝置100和示例系統114中的至少一者根據目前的實施執行方法700。在一些實施中,方法700開始於步驟710。方法700接著繼續到步驟720。
在步驟720,示例系統基於一或多個除錯濾波器準則過濾DCI。在一些實施中,HCI 210、BM 220、LUTE 230、WC 240、FIL 250和FC 260中的一或多者過濾 DCI。應當理解,示例系統可以可選地根據步驟720過濾DCI。方法700接著繼續到步驟730。在步驟730,示例系統接收與DCI相關聯的時間戳。在一些實施中,HCI監聽裝置310、BM監聽裝置320、LUTE監聽裝置330、WC監聽裝置340、FIL監聽裝置350和FC監聽裝置360中的一或多者從時間戳輸入108接收時間戳。方法700接著繼續到步驟732。在步驟732,示例系統確定DCI的裝置識別符。在一些實施中,HCI監聽裝置310、BM監聽裝置320、LUTE監聽裝置330、WC監聽裝置340、FIL監聽裝置350和FC監聽裝置360中的一或多者基於分別從HCI 210、BM 220、LUTE 230、WC 240、FIL 250和FC 260之一者接收輸入確定用於DCI的裝置識別符。方法700接著繼續到步驟740。
在步驟740,示例系統產生DCI的除錯記錄。在一些實施中,HCI監聽裝置310、BM監聽裝置320、LUTE監聽裝置330、WC監聽裝置340、FIL監聽裝置350和FC監聽裝置360中的一或多者確定DCI的裝置識別符。在一些實施中,HCI監聽裝置310、BM監聽裝置320、LUTE監聽裝置330、WC監聽裝置340、FIL監聽裝置350和FC監聽裝置360中的一或多者至少暫時產生至少一個除錯記錄並將其儲存在其專用記憶體中。方法700接著繼續到步驟742。在步驟742,示例系統產生除錯登錄。在一些實施中,監聽登錄產生器410產生除錯登錄。應當理解,如果不存在登錄、如果示例系統接收或產生替換現有除錯登錄的指令等,示例系統可以可選地產生除錯登錄。方法700接著繼續到步驟744。在步驟744,示例系統將除錯記錄加 到除錯登錄。在一些實施中,監聽登錄產生器藉由將除錯記錄附加到除錯登錄來加入除錯記錄。在一些實施中,監聽登錄產生器至少暫時產生至少一個除錯記錄並將其儲存在其專用記憶體中。方法700接著繼續到步驟750。
在步驟750,示例系統透過時間戳對收集的一或多個除錯記錄串聯化。在一些實施中,登錄時間戳串聯器420串聯化除錯記錄。方法700接著繼續到步驟760。在步驟760,示例系統過濾與除錯登錄相關聯的一或多個除錯記錄。在一些實施中,監聽登錄濾波器430過濾與除錯登錄相關聯的除錯記錄。應當理解,示例系統可以可選地根據步驟760過濾除錯記錄。方法700接著繼續到步驟770。在步驟770,示例系統至少部分地基於除錯登錄產生除錯登錄批次檔案。在一些實施中,登錄批次處理器440產生除錯登錄批次檔案。應當理解,示例系統可以可選地根據步驟770產生除錯登錄批次檔案。方法接著繼續到步驟780。在步驟780,示例系統將登錄批次加到除錯記憶體位置。在一些實施中,登錄批次處理器440藉由將登錄批次檔案傳送到記憶體陣列106或記憶體陣列106的除錯記憶體部分512來加入登錄批次檔案。在一些實施中,方法700在步驟780處結束。
圖8顯示根據本實施的高性能記憶體除錯記錄產生及管理的另一示例方法。在一些實施中,儲存裝置100和示例系統114中的至少一者執行根據本實施的方法800。在一些實施中,方法800開始於步驟810。
在步驟810,示例系統接收主機命令。在一 些實施中,示例系統根據步驟620接收主機命令。方法800接著繼續到步驟820。在步驟820,示例系統確定DCI。在一些實施中,示例系統根據步驟630中的一項或多項確定DCI。在一些實施中,步驟822、824、826、828和830中的一或多者分別對應於步驟632、634、636、638和640。方法800接著繼續到步驟840。在步驟840,示例系統接收與DCI相關聯的時間戳。在一些實施中,示例系統根據步驟730接收時間戳。方法800接著繼續到步驟850。在步驟850,示例系統產生與DCI相關聯的除錯記錄。在一些實施中,示例系統根據步驟740產生除錯記錄。在一些實施中,方法800在步驟850結束。
本文說明的標的有時顯示包含在不同其他組件內或與不同其他組件連接的不同組件。應當理解,這樣描繪的架構是說明性的,並且實際上可以實現許多其他達成相同功能的架構。在概念意義上,達成相同功能的任何組件配置都是有效地「關聯」,使得所需的功能得以達成。因此,本文中組合以達成特定功能的任何兩個組件可以被視為彼此「相關聯」,使得所需的功能得以達成,而與架構或中間組件無關。同樣地,如此關聯的任何兩個組件也可以被視為彼此「可操作地連接」或「可操作地耦合」以達成需要的功能,並且能夠如此關聯的任何兩個組件也可以被視為「可操作地耦合」,以達成需要的功能。可操作地耦合的具體示例包括但不限於實體上可匹配及/或實體上交互的組件及/或無線交互及/或無線交互的組件及/或邏輯交互及/或邏輯交互的組件。
關於此處使用的複數及/或單數術語,熟於此技術之人士可以根據上下文及/或應用從複數翻譯成單數及/或從單數翻譯成複數。為清楚起見,可以在本文中明確闡述各種單數/複數置換。
熟於此技術之人士將理解,一般而言,本文中,尤其是在所附申請專利範圍(例如,所附申請專利範圍的標的)中使用的術語通常旨在作為「開放」術語(例如,術語「包括」應解釋為「包括但不限於」,「具有」應解釋為「至少具有」,「包含」應解釋為「包含但不限於」等)。
儘管圖式和說明可以說明方法步驟的特定順序,但是這些步驟的順序可能與所描繪和說明的不同,除非以上另有說明。此外,除非以上另有說明,否則二或多個步驟可以同時或部分同時執行。例如,此種變化可能取決於所選擇的軟體和硬體系統以及設計者的選擇。所有此類變化都在本揭露的範圍內。同樣,所述方法的軟體實施可以用標準程式技術和基於規則的邏輯和其他邏輯來完成,以完成各種連接步驟、處理步驟、比較步驟和決定步驟。
本技術領域內之人士將進一步理解,如果意圖引述用特定數量申請專利範圍陳述,則此一意圖將在申請專利範圍中明確記載,並且在沒有這樣的陳述的情況下,則不存在這樣的意圖。例如,為幫助理解,以下所附申請專利範圍可能包含使用介紹性用詞「至少一個」和「一或多個」來介紹申請專利範圍陳述。然而,此類用詞 的使用不應被解釋為暗示用不定冠詞「a」或「an」的申請專利範圍引述將包含此類引述的申請專利範圍陳述的任何特定申請專利範圍限制成僅包含一個此類陳述的發明,即使當同一請求項包括介紹性用詞「一或多個」或「至少一個」和不定冠詞,例如「a」或「an」(例如,「a」及/或「an」通常應解釋為表示「至少一個」或「一或多個」);用於介紹申請專利範圍陳述的定冠詞的使用亦是如此。此外,即使明確地記載特定數量的引述的申請專利範圍陳述,熟於此技術之人士將認可到,此種陳述通常應該被解釋為至少是所記載的數量(例如,「二陳述」的簡單陳述)沒有其他修飾語,通常意指至少兩次記載,或二或更多陳述)。
此外,在類似於「A、B和C中的至少一者,等等」的約定的那些情況下,在使用這種結構時,一般來說,這種結構意在熟於此技術之人士會理解慣例的意義上(例如,「具有A、B和C中的至少一者的系統」將包括但不限於以下系統:單獨A、單獨B、單獨C、A及B一起、A及C一起、B及C一起、及/或A、B及C一起,等等)。在使用那些類似於「A、B或C等中的至少一者」的約定的情況下時,一般而言,這種結構意在熟於此技術之人士會理解慣例的意義上(例如,「具有A、B或C中的至少一者的系統」將包括但不限於具有單獨A、單獨B、單獨C、A及B一起、A及C一起、B及C一起、及/或A、B及C一起等等的系統)。熟於此技術之人士將進一步理解,實際上呈現二或多個替代術語的任何分離詞及/或用詞,無論是在說 明、申請專利範圍或圖式中,都應被理解為考慮到包括這些術語之中的任一者或二者的可能性。例如,用詞「A或B」將被理解為包括「A」或「B」或「A及B」的可能性。
此外,除非另有說明,否則「近似」、「大約」、「大約」、「基本上」等詞語的使用表示正負百分之十。
為描述和說明之目的,已呈現說明性實施的前述說明。對於所揭示的精確形式,其意圖不在窮舉或限制,並且根據以上教示,修改和變化是可行的,或者可以從所揭示的實施的實踐中獲得。本發明的範圍旨在由所附申請專利範圍及其等效物來界定。
100:儲存裝置
102:命令輸入
104:控制器
106:記憶體陣列
108:時間戳輸入
110:除錯記錄產生器
112:除錯記錄管理器
114:系統

Claims (20)

  1. 一種可在記憶體裝置上執行的方法,該記憶體裝置包括控制器和記憶體陣列,該方法包含:接收與主機命令相關聯的主機命令識別符;接收與該主機命令及記憶體控制器裝置相關聯的裝置命令;接收對應於該確定該裝置命令的時間的裝置命令時間戳;以及與該確定該裝置命令同時確定除錯記錄,該除錯記錄包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。
  2. 如請求項1之方法,還包含:確定與該記憶體控制器裝置和該裝置命令中的至少一者相關聯的濾波器條件;以及根據該濾波器條件且與該確定該裝置命令同時過濾該確定的裝置命令。
  3. 如請求項2之方法,其中,該確定該除錯記錄還包括根據該濾波器條件產生該除錯記錄。
  4. 如請求項1之方法,還包含:確定包括該除錯記錄的除錯登錄;以及根據與該除錯記錄相關聯的該裝置命令時間戳串聯化該除錯登錄。
  5. 如請求項2之方法,還包含:根據該濾波器條件且與該確定該裝置命令同時從該除 錯登錄中過濾該除錯記錄。
  6. 如請求項3之方法,還包含:產生除錯登錄批次,該除錯登錄批次包括至少一部分的該除錯登錄;以及將該除錯登錄批次加到除錯記憶體陣列。
  7. 如請求項1之方法,其中,該接收該裝置命令還包括回應於記憶體存取事件來接收該裝置命令。
  8. 如請求項1之方法,其中,該接收該裝置命令還包括回應於記憶體可操作性事件來接收該裝置命令。
  9. 如請求項2之方法,其中,該濾波器條件包含裝置頻寬條件,並且其中,該過濾該確定的裝置命令以滿足該裝置頻寬條件的速率發生。
  10. 如請求項2之方法,其中,該濾波器條件包括記憶體陣列條件,並且其中,該過濾該確定的裝置命令根據與該確定的裝置命令相關聯的記憶體陣列位置滿足該記憶體陣列條件的確定而發生。
  11. 一種記憶體裝置,包含:記憶體陣列;記憶體控制器裝置,可操作地耦合到該記憶體陣列,該記憶體控制器被配置為接收與主機命令相關聯的主機命令識別符,並且被配置為接收與該主機命令及記憶體控制器裝置相關聯的裝置命令;以及除錯記錄產生器裝置,可操作地耦合到該記憶體控制 器裝置並且被配置為接收對應於該確定的裝置命令的時間的裝置命令時間戳,並且被配置為與該確定該裝置命令同時確定除錯記錄,該除錯記錄包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。
  12. 如請求項11之裝置,其中,該除錯記錄產生器裝置還被配置為確定與該記憶體控制器裝置和該裝置命令中的至少一者相關聯的濾波器條件、被配置為根據該濾波器條件且與確定該裝置命令同時過濾該確定的裝置命令、以及配置為根據該濾波器條件產生該除錯記錄。
  13. 如請求項11之裝置,還包含:除錯記錄管理器裝置,可操作地耦合到該除錯記錄產生器,該除錯記錄管理器裝置被配置為產生包括該除錯記錄的除錯登錄、以及被配置為根據與該除錯記錄相關聯的該裝置命令時間戳串聯化該除錯登錄。
  14. 如請求項12之裝置,其中,該除錯記錄管理器裝置還被配置為根據該濾波器條件且與確定該裝置命令同時從該除錯登錄中過濾該除錯記錄。
  15. 如請求項13之裝置,還包含:記憶體陣列裝置,可操作地耦合到該除錯記錄管理器裝置並且包括除錯記憶體陣列,其中,該除錯記錄管理器裝置還被配置為產生包括至少一部分的該除錯登錄的除錯登錄批次,以及被配置為與確定該裝置命令同時將該除錯登錄批次加到該除錯記憶體 陣列。
  16. 如請求項11之裝置,其中,該記憶體控制器裝置還被配置為回應於記憶體存取事件來接收該裝置命令。
  17. 如請求項11之裝置,其中,該記憶體控制器裝置還被配置為回應於記憶體可操作性事件來接收該裝置命令。
  18. 如請求項12之裝置,其中,該濾波器條件包含裝置頻寬條件,並且其中,該除錯記錄產生器裝置還被配置為以滿足該裝置頻寬條件的速率來過濾該確定的裝置命令。
  19. 如請求項12之裝置,其中,該濾波器條件包括記憶體陣列條件,並且其中,該除錯記錄產生器裝置還被配置為根據與該確定的裝置命令相關聯的記憶體陣列位置滿足該記憶體陣列條件的確定來過濾該確定的裝置命令。
  20. 一種非暫態性電腦可讀媒體,其儲存電腦可讀指令,使得當該等指令被執行時,使處理電路:接收與主機命令相關聯的主機命令識別符;確定與該主機命令及記憶體控制器裝置相關聯的裝置命令;接收對應於該確定該裝置命令的時間的裝置命令時間戳;以及與該確定該裝置命令同時確定除錯記錄,該除錯記錄 包括該主機命令識別符、與該裝置命令相關聯的裝置命令識別符、以及該裝置命令時間戳。
TW110134241A 2020-09-16 2021-09-14 可在記憶體裝置上執行的方法、記憶體裝置及非暫態性電腦可讀媒體 TWI810652B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/022,943 2020-09-16
US17/022,943 US11847037B2 (en) 2020-09-16 2020-09-16 Device and method for high performance memory debug record generation and management

Publications (2)

Publication Number Publication Date
TW202225971A TW202225971A (zh) 2022-07-01
TWI810652B true TWI810652B (zh) 2023-08-01

Family

ID=80627835

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110134241A TWI810652B (zh) 2020-09-16 2021-09-14 可在記憶體裝置上執行的方法、記憶體裝置及非暫態性電腦可讀媒體

Country Status (3)

Country Link
US (1) US11847037B2 (zh)
CN (1) CN114265795A (zh)
TW (1) TWI810652B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847037B2 (en) * 2020-09-16 2023-12-19 Kioxia Corporation Device and method for high performance memory debug record generation and management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160013992A1 (en) * 2014-07-11 2016-01-14 Vmware, Inc. Methods and apparatus to retire hosts in virtual server rack deployments for virtual computing environments
TWI546692B (zh) * 2011-10-27 2016-08-21 電子戰協會公司 包括與已知電路板資訊有關之電路測試及驗證等特徵的裝置鑑別之系統及方法
CN103930944B (zh) * 2011-06-23 2016-08-24 奥布隆工业有限公司 用于空间输入装置的自适应跟踪系统
EP3531321B1 (en) * 2015-09-15 2020-08-19 Gatekeeper Ltd. System and method for securely connecting to a peripheral device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661534B1 (en) 1998-09-16 2003-12-09 Texas Instruments Incorporated Selective screening for printing files in a page description language
US7219173B2 (en) 2001-07-31 2007-05-15 Micronas Usa, Inc. System for video processing control and scheduling wherein commands are unaffected by signal interrupts and schedule commands are transmitted at precise time
US7418450B2 (en) 2005-10-03 2008-08-26 International Business Machines Corporation Method for analyzing computer events recorded in a plurality of chronicle datasets
US8055816B2 (en) 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US20160018998A1 (en) * 2014-07-17 2016-01-21 Sandisk Enterprise Ip Llc Methods and Systems for Scalable Reliability Management of Non-Volatile Memory Modules
US10379747B2 (en) 2015-12-21 2019-08-13 Western Digital Technologies, Inc. Automated latency monitoring
US10635613B2 (en) 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
US11132147B2 (en) 2018-10-16 2021-09-28 Micron Technology, Inc. Memory command verification
US11294750B2 (en) * 2019-07-15 2022-04-05 Micron Technology, Inc. Media management logger for a memory sub-system
CN110843867B (zh) 2019-10-15 2021-03-12 交控科技股份有限公司 4编组双列位库的列车休眠唤醒方法及系统
US11847037B2 (en) * 2020-09-16 2023-12-19 Kioxia Corporation Device and method for high performance memory debug record generation and management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103930944B (zh) * 2011-06-23 2016-08-24 奥布隆工业有限公司 用于空间输入装置的自适应跟踪系统
TWI546692B (zh) * 2011-10-27 2016-08-21 電子戰協會公司 包括與已知電路板資訊有關之電路測試及驗證等特徵的裝置鑑別之系統及方法
US20160013992A1 (en) * 2014-07-11 2016-01-14 Vmware, Inc. Methods and apparatus to retire hosts in virtual server rack deployments for virtual computing environments
EP3531321B1 (en) * 2015-09-15 2020-08-19 Gatekeeper Ltd. System and method for securely connecting to a peripheral device

Also Published As

Publication number Publication date
TW202225971A (zh) 2022-07-01
US20220083442A1 (en) 2022-03-17
US11847037B2 (en) 2023-12-19
CN114265795A (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
US7596729B2 (en) Memory device testing system and method using compressed fail data
KR102378466B1 (ko) 메모리 장치 및 모듈
AU2017223094B2 (en) Bus bridge for translating requests between a module bus and an axi bus
US9904608B2 (en) Filtering event log entries
US20090125659A1 (en) Inter-Integrated Circuit (12C) Slave with Read/Write Access to Random Access Memory
US20030126358A1 (en) Method and apparatus for implementing loop compression in a program counter trace
US6802036B2 (en) High-speed first-in-first-out buffer
TWI810652B (zh) 可在記憶體裝置上執行的方法、記憶體裝置及非暫態性電腦可讀媒體
CN113253916A (zh) 延迟和吞吐量为中心的可重新配置存储设备
US5440724A (en) Central processing unit using dual basic processing units and combined result bus and incorporating means for obtaining access to internal BPU test signals
US9513984B2 (en) Hardware signal logging in embedded block random access memory
WO2018231482A1 (en) Performing background functions using logic integrated with a memory
CN109445686B (zh) 一种存储磁盘以及存取数据的方法
CN105701060A (zh) 基于fpga的高速实时数据记录系统
JPH06242925A (ja) ソート処理装置
CN112185455A (zh) Sram通用测速电路
US10348605B2 (en) Embedding analyzer functionality in storage devices
TWI676175B (zh) 預比對系統及預比對方法
US11506710B1 (en) Method for testing a circuit system and a circuit system thereof
CN110851374B (zh) 预比对系统及预比对方法
JP7363344B2 (ja) メモリ制御装置、および制御方法
TWI839592B (zh) 儲存裝置以及用於加速儲存裝置中的操作的方法
CN111949431B (zh) 片上系统产品的致命错误提供方法与致命错误识别方法
US8816718B1 (en) Variable response mode for synchronous data read
JP6869823B2 (ja) 演算装置