IP Library Granted Patent US 11,907,147
Granted Patent B1
US 11,907,147 · App. 18/216,987 · Granted Feb 20, 2024

Programmable message inspection engine implemented in hardware that generates an output message using a content modification plan and a destination control plan

Inventors: Priyanka Nilay Thakore (Mountain View, CA); Lyle E. Adams (San Jose, CA)
Assignee: Beijing Tenafe Electronic Technology Co., Ltd.
G06F13/36G06F2213/40
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 11,907,147
App. No.
18/216,987
Granted
Feb 20, 2024
Kind
B1
Abstract

A message inspection engine, implemented in hardware in a System on Chip (SOC), is configured using configuration information to obtain a configured message inspection engine. An input message is received at the configured message inspection engine from an upstream functional module in the SOC. The configured message inspection engine is used to analyze the input message to determine a content modification plan and a destination control plan and to generate an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan. The output message is output from the configured message inspection engine.

Claims (157)

1. A System On Chip (SOC), comprising:

an upstream functional module;

a message inspection engine, wherein:

the message inspection engine is implemented in hardware in the SOC and is configured using configuration information to obtain a configured message inspection engine; and

the configured message inspection engine:

receives an input message from the upstream functional module;

analyzes the input message to determine a content modification plan and a destination control plan;

generates an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputs the output message; and

the downstream functional module, wherein:

the SOC further includes a second upstream functional module and a second message inspection engine that is configured using the configuration information to obtain a second configured message inspection engine;

the configured message inspection engine performs error handling, including by examining input messages from the upstream functional module for one or more specified types of error messages; and

the second configured message inspection engine performs message acceleration, including by examining input messages from the second upstream functional module for one or more specified types of non-error messages.

2. The SOC of claim 1 , wherein at least the content modification plan is associated with error handling.

3. The SOC of claim 1 , wherein at least the content modification plan is associated with message acceleration.

4. The SOC of claim 1 , wherein at least the content modification plan is associated with message acceleration, including one or more of the following: grouping related message acceleration or sequence related message acceleration.

5. A System On Chip (SOC), comprising:

an upstream functional module;

a message inspection engine, wherein:

the message inspection engine is implemented in hardware in the SOC and is configured using configuration information to obtain a configured message inspection engine; and

the configured message inspection engine:

receives an input message from the upstream functional module;

analyzes the input message to determine a content modification plan and a destination control plan;

generates an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputs the output message;

the downstream functional module;

a second upstream functional module; and

a second message inspection engine that is configured using the configuration information to obtain a second configured message inspection engine, wherein:

the configured message inspection engine analyzes those input messages from the upstream functional module and ignores those input messages from the second upstream functional module; and

the second configured message inspection engine ignores said those input messages from the upstream functional module and analyzes said those input messages from the second upstream functional module.

6. A System On Chip (SOC), comprising:

an upstream functional module;

a message inspection engine, wherein:

the message inspection engine is implemented in hardware in the SOC and is configured using configuration information to obtain a configured message inspection engine; and

the configured message inspection engine:

receives an input message from the upstream functional module;

analyzes the input message to determine a content modification plan and a destination control plan;

generates an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputs the output message; and

the downstream functional module, wherein:

the input message includes a header which in turn includes a plurality of fields;

analyzing the input message includes inspecting those fields in the plurality of fields that are specified by the configuration information;

the input message further includes a payload which in turn includes a plurality of inspectable segments and a non-inspectable portion that does not overlap with the plurality of inspectable segments; and

analyzing the input message further includes inspecting those inspectable segments in the plurality of inspectable segments that are specified by the configuration information.

7. A System On Chip (SOC), comprising:

an upstream functional module;

a message inspection engine, wherein:

the message inspection engine is implemented in hardware in the SOC and is configured using configuration information to obtain a configured message inspection engine; and

the configured message inspection engine:

receives an input message from the upstream functional module;

analyzes the input message to determine a content modification plan and a destination control plan;

generates an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputs the output message; and

the downstream functional module, wherein:

the SOC includes a storage controller SOC;

the upstream functional module includes an error correction decoder;

the downstream functional module includes a storage media interface that communicates with storage media that is external to the storage controller SOC; and

analyzing the input message includes:

determining whether the input message satisfies an error message match criteria; and

in the event it is determined that the input message satisfies the error message match criteria, the content modification plan includes generating an output message associated with re-reading the storage media and the destination control plan includes directing the output message associated with re-reading the storage media to the storage media interface.

8. The SOC of claim 7 , wherein the content modification plan further includes generating the output message associated with re-reading the storage media to change a read configuration associated with re-reading the storage media.

9. The SOC of claim 1 , wherein the content modification plan includes generating an output message associated with reconfiguration.

10. A System On Chip (SOC), comprising:

an upstream functional module;

a message inspection engine, wherein:

the message inspection engine is implemented in hardware in the SOC and is configured using configuration information to obtain a configured message inspection engine; and

the configured message inspection engine:

receives an input message from the upstream functional module;

analyzes the input message to determine a content modification plan and a destination control plan;

generates an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputs the output message; and

the downstream functional module, wherein:

the SOC includes a storage controller SOC;

the downstream functional module includes a logical to physical (L2P) interface that communicates with L2P storage that is in the storage controller SOC; and

analyzing the input message includes determining whether the input message satisfies an out-of-group match criteria during an atomic operation to the L2P storage, wherein in the event it is determined that the input message satisfies the out-of-group match criteria, the configured message inspection engine causes one or more messages associated with the out-of-group match criteria to be held, at least temporarily.

11. A System On Chip (SOC), comprising:

an upstream functional module;

a message inspection engine, wherein:

the message inspection engine is implemented in hardware in the SOC and is configured using configuration information to obtain a configured message inspection engine; and

the configured message inspection engine:

receives an input message from the upstream functional module;

analyzes the input message to determine a content modification plan and a destination control plan;

generates an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputs the output message; and

the downstream functional module, wherein:

the SOC includes a storage controller SOC;

the downstream functional module includes a host interface that communicates with a host that is external to the storage controller SOC; and

analyzing the input message includes determining whether the input message satisfies an out-of-sequence match criteria, wherein in the event it is determined that the input message satisfies the out-of-sequence match criteria, the configured message inspection engine causes one or more messages associated with the out-of-sequence match criteria to be held, at least temporarily.

12. A method, comprising:

receiving configuration information;

configuring a message inspection engine, implemented in hardware in a System on Chip (SOC), using the configuration information to obtain a configured message inspection engine;

receiving, at the configured message inspection engine, an input message from an upstream functional module in the SOC;

analyzing, using the configured message inspection engine, the input message to determine a content modification plan and a destination control plan;

generating, using the configured message inspection engine, an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputting the output message from the configured message inspection engine, wherein:

the SOC further includes a second upstream functional module and a second message inspection engine that is configured using the configuration information to obtain a second configured message inspection engine; and

the method further includes:

performing error handling using the configured message inspection engine, including by examining input messages from the upstream functional module for one or more specified types of error messages; and

performing message acceleration using the second configured message inspection engine, including by examining input messages from the second upstream functional module for one or more specified types of non-error messages.

13. The method of claim 12 , wherein at least the content modification plan is associated with error handling.

14. The method of claim 12 , wherein at least the content modification plan is associated with message acceleration.

15. The method of claim 12 , wherein at least the content modification plan is associated with message acceleration, including one or more of the following: grouping related message acceleration or sequence related message acceleration.

16. A method, comprising:

receiving configuration information;

configuring a message inspection engine, implemented in hardware in a System on Chip (SOC), using the configuration information to obtain a configured message inspection engine;

receiving, at the configured message inspection engine, an input message from an upstream functional module in the SOC;

analyzing, using the configured message inspection engine, the input message to determine a content modification plan and a destination control plan;

generating, using the configured message inspection engine, an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputting the output message from the configured message inspection engine, wherein:

the SOC further includes a second upstream functional module and a second message inspection engine that is configured using the configuration information to obtain a second configured message inspection engine; and

the method further includes:

analyzing, at the configured message inspection engine, those input messages from the upstream functional module and ignore those input messages from the second upstream functional module; and

ignoring, at the second configured message inspection engine, said those input messages from the upstream functional module and analyze said those input messages from the second upstream functional module.

17. A method, comprising:

receiving configuration information;

configuring a message inspection engine, implemented in hardware in a System on Chip (SOC), using the configuration information to obtain a configured message inspection engine;

receiving, at the configured message inspection engine, an input message from an upstream functional module in the SOC;

analyzing, using the configured message inspection engine, the input message to determine a content modification plan and a destination control plan;

generating, using the configured message inspection engine, an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputting the output message from the configured message inspection engine, wherein:

the input message includes a header which in turn includes a plurality of fields;

analyzing the input message includes inspecting those fields in the plurality of fields that are specified by the configuration information;

the input message further includes a payload which in turn includes a plurality of inspectable segments and a non-inspectable portion that does not overlap with the plurality of inspectable segments; and

analyzing the input message further includes inspecting those inspectable segments in the plurality of inspectable segments that are specified by the configuration information.

18. A method, comprising:

receiving configuration information;

configuring a message inspection engine, implemented in hardware in a System on Chip (SOC), using the configuration information to obtain a configured message inspection engine;

receiving, at the configured message inspection engine, an input message from an upstream functional module in the SOC;

analyzing, using the configured message inspection engine, the input message to determine a content modification plan and a destination control plan;

generating, using the configured message inspection engine, an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputting the output message from the configured message inspection engine, wherein:

the SOC includes a storage controller SOC;

the upstream functional module includes an error correction decoder;

the downstream functional module includes a storage media interface that communicates with storage media that is external to the storage controller SOC; and

analyzing the input message includes:

determining whether the input message satisfies an error message match criteria; and

in the event it is determined that the input message satisfies the error message match criteria, the content modification plan includes generating an output message associated with re-reading the storage media and the destination control plan includes directing the output message associated with re-reading the storage media to the storage media interface.

19. A method, comprising:

receiving configuration information;

configuring a message inspection engine, implemented in hardware in a System on Chip (SOC), using the configuration information to obtain a configured message inspection engine;

receiving, at the configured message inspection engine, an input message from an upstream functional module in the SOC;

analyzing, using the configured message inspection engine, the input message to determine a content modification plan and a destination control plan;

generating, using the configured message inspection engine, an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputting the output message from the configured message inspection engine, wherein:

the SOC includes a storage controller SOC;

the downstream functional module includes a logical to physical (L2P) interface that communicates with L2P storage that is in the storage controller SOC; and

analyzing the input message includes determining whether the input message satisfies an out-of-group match criteria during an atomic operation to the L2P storage, wherein in the event it is determined that the input message satisfies the out-of-group match criteria, the configured message inspection engine causes one or more messages associated with the out-of-group match criteria to be held, at least temporarily.

20. A method, comprising:

receiving configuration information;

configuring a message inspection engine, implemented in hardware in a System on Chip (SOC), using the configuration information to obtain a configured message inspection engine;

receiving, at the configured message inspection engine, an input message from an upstream functional module in the SOC;

analyzing, using the configured message inspection engine, the input message to determine a content modification plan and a destination control plan;

generating, using the configured message inspection engine, an output message based at least in part on the input message, the content modification plan, and the destination control plan, including by populating the output message with a downstream functional module specified by the destination control plan; and

outputting the output message from the configured message inspection engine, wherein:

the SOC includes a storage controller SOC;

the downstream functional module includes a host interface that communicates with a host that is external to the storage controller SOC; and

analyzing the input message includes determining whether the input message satisfies an out-of-sequence match criteria, wherein in the event it is determined that the input message satisfies the out-of-sequence match criteria, the configured message inspection engine causes one or more messages associated with the out-of-sequence match criteria to be held, at least temporarily.

Assignments (2)
CHANGE OF NAME Recorded Aug 13, 2025
From: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
To: NANJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 072008/0631 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2023
From: THAKORE, PRIYANKA NILAY; ADAMS, LYLE E.
To: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 065915/0747 →
Continuity (1)
Provisional Application 63392992 · Jul 28, 2022