IP Library Granted Patent US 12,197,356
Granted Patent B2
US 12,197,356 · App. 18/426,097 · Granted Jan 14, 2025

Collection of runtime information for debug and analysis, including by aggregating status information into a standardized message format and timestamping

Inventors: Meng Kun Lee (Cupertino, CA); Priyanka Nilay Thakore (Mountain View, CA); Chen Xiu (Beijing, CN); Lyle E. Adams (San Jose, CA); Xiaojun Ding (Shanghai, CN)
Assignee: Beijing Tenafe Electronic Technology Co., Ltd.
G06F13/1694G06F13/1689G06F2213/0038
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,197,356
App. No.
18/426,097
Granted
Jan 14, 2025
Kind
B2
Abstract

If a first group selection setting is set to TRUE, an NVM Express (NVMe) processor sends a first set of NVMe status information that includes a transfer data end event. If a second group selection setting is set to TRUE, the NVMe processor sends a second set of NVMe status information that includes an NVMe error event. A firmware functional module sends firmware status information. The aggregation module aggregates and timestamps the first and second sets of NVMe status information, if any, and the firmware status information to obtain a timestamped and aggregated message stream that is output by an interface. The timestamped and aggregated message stream enables a visualization system to analyze the NVMe processor and the firmware functional module. The NVMe processor, firmware functional module, aggregation module, and interface are in a storage controller, implemented on a system on chip (SOC), that manages a storage medium.

Claims (30)

1. A storage controller, implemented on a system on chip (SOC), that manages a storage medium, comprising:

an NVM Express (NVMe) processor, implemented on a hardware functional module, that:

in the event a first group selection setting is set to TRUE, sends, to an aggregation module and in a standardized message format, a first set of NVMe status information according to a first set of one or more reporting rules via a first dedicated link between the NVMe processor and the aggregation module, wherein the first set of NVMe status information includes a transfer data end event; and

in the event a second group selection setting is set to TRUE, sends, to the aggregation module and in the standardized message format, a second set of NVMe status information according to the first set of one or more reporting rules via the first dedicated link between the NVMe processor and the aggregation module, wherein the second set of NVMe status information includes an NVMe error event;

a firmware functional module that sends, to the aggregation module and in the standardized message format, firmware status information according to a second set of one or more reporting rules via a second dedicated link between the firmware functional module and the aggregation module;

the aggregation module that aggregates and timestamps:

the first set of NVMe status information, if any, in the standardized message format;

the second set of NVMe status information, if any, in the standardized message format; and

the firmware status information in the standardized message format to obtain a timestamped and aggregated message stream, wherein the timestamped and aggregated message stream enables a visualization system to analyze the NVMe processor and the firmware functional module; and

an interface that outputs the timestamped and aggregated message stream.

2. The storage controller recited in claim 1 , wherein the transfer data end event includes one or more of the following: a write transfer data end event or a read transfer data end event.

3. The storage controller recited in claim 1 , wherein the first set of NVMe status information further includes an NVMe command start event.

4. The storage controller recited in claim 1 , wherein the NVMe processor further: in the event a third group selection setting is set to TRUE, sends, to the aggregation module and in the standardized message format, a third set of NVMe status information according to the first set of one or more reporting rules via the first dedicated link between the NVMe processor and the aggregation module, wherein the third set of NVMe status information includes a transfer command start event.

5. The storage controller recited in claim 4 , wherein the transfer command start event includes one or more of the following: a write transfer command start event or a read transfer command start event.

6. The storage controller recited in claim 4 , wherein the third set of NVMe status information further includes an NVMe command end event.

7. A method, comprising:

using an NVM Express (NVMe) processor, implemented on a hardware functional module, to:

in the event a first group selection setting is set to TRUE, send, to an aggregation module and in a standardized message format, a first set of NVMe status information according to a first set of one or more reporting rules via a first dedicated link between the NVMe processor and the aggregation module, wherein the first set of NVMe status information includes a transfer data end event; and

in the event a second group selection setting is set to TRUE, send, to the aggregation module and in the standardized message format, a second set of NVMe status information according to the first set of one or more reporting rules via the first dedicated link between the NVMe processor and the aggregation module, wherein the second set of NVMe status information includes an NVMe error event;

using a firmware functional module to send, to the aggregation module and in the standardized message format, firmware status information according to a second set of one or more reporting rules via a second dedicated link between the firmware functional module and the aggregation module;

using the aggregation module to aggregate and timestamp:

the first set of NVMe status information, if any, in the standardized message format;

the second set of NVMe status information, if any, in the standardized message format; and

the firmware status information in the standardized message format to obtain a timestamped and aggregated message stream, wherein the timestamped and aggregated message stream enables a visualization system to analyze the NVMe processor and the firmware functional module; and

using an interface to output the timestamped and aggregated message stream, wherein the NVMe processor, the firmware functional module, the aggregation module, and the interface are included in a storage controller, implemented on a system on chip (SOC), that manages a storage is medium.

8. The method recited in claim 7 , wherein the transfer data end event includes one or more of the following: a write transfer data end event or a read transfer data end event.

9. The method recited in claim 7 , wherein the first set of NVMe status information further includes an NVMe command start event.

10. The method recited in claim 7 , further including using the NVMe processor to: in the event a third group selection setting is set to TRUE, send, to the aggregation module and in the standardized message format, a third set of NVMe status information according to the first set of one or more reporting rules via the first dedicated link between the NVMe processor and the aggregation module, wherein the third set of NVMe status information includes a transfer command start event.

11. The method recited in claim 10 , wherein the transfer command start event includes one or more of the following: a write transfer command start event or a read transfer command start event.

12. The method recited in claim 10 , wherein the third set of NVMe status information further includes an NVMe command end event.

Continuity (4)
Continuation 18073056 · Dec 1, 2022
Continuation 17854435 · Jun 30, 2022
Provisional Application 63222257 · Jul 15, 2021
Related Publication 20240168897A1 · May 23, 2024
References Cited (27)
US 6795963B1 · Andersen · 2004 [cited by applicant]
US 7251751B2 · Blasco Allue · 2007 [cited by applicant]
US 7886150B2 · Stollon · 2011 [cited by applicant]
US 8499201B1 · Chiu · 2013 [cited by applicant]
US 9053251B2 · Adler · 2015 [cited by applicant]
US 9830241B2 · Lippett · 2017 [cited by applicant]
US 9959186B2 · Hutner · 2018 [cited by applicant]
US 10691576B1 · Shapira · 2020 [cited by applicant]
US 11438255B2 · Tillotson · 2022 [cited by applicant]
US 11438282B2 · Cotner · 2022 [cited by examiner]
US 11544210B1 · Lee · 2023 [cited by applicant]
US 20100107143A1 · Emberling · 2010 [cited by applicant]
US 20140052930A1 · Gulati · 2014 [cited by examiner]
US 20140239987A1 · Mayer · 2014 [cited by applicant]
US 20150046617A1 · Shirlen · 2015 [cited by examiner]
US 20150082325A1 · Aharonov · 2015 [cited by applicant]
US 20160077905A1 · Menon · 2016 [cited by applicant]
US 20160292057A1 · Segger · 2016 [cited by applicant]
US 20190294598A1 · Hsiao · 2019 [cited by examiner]
CN 101901145 · 2010 [cited by applicant]
CN 106575249 · 2017 [cited by applicant]
CN 107257953 · 2017 [cited by applicant]
CN 107273427 · 2017 [cited by applicant]
JP 2018055326 · 2018 [cited by applicant]
TW 201133008 · 2011 [cited by applicant]
Author Unknown, Intel® Quartus® Prime Pro Edition User Guide: Debug Tools, Jun. 21, 2021. [cited by applicant]
Author Unknown, Ise Tutorial: Using Xilinx ChipScope Pro ILA Core with Project Navigator to Debug FPGA Applications, Mar. 20, 2013. [cited by applicant]