IP Library Granted Patent US 10,402,259
Granted Patent B2
US 10,402,259 · App. 14/726,255 · Granted Sep 3, 2019

Systems and methods for resource leakage recovery in processor hardware engines

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 10,402,259
App. No.
14/726,255
Granted
Sep 3, 2019
Kind
B2
Abstract

The embodiments described herein provide systems and methods for recovering resources in processing devices. Specifically, the embodiments described herein provide techniques for recovering leaked resources allocated to hardware engines in a hardware processing core. As one example, the recovery of resources allocated to hardware engines can be facilitated by making a specified register available to monitoring software. When leaked or otherwise stuck resources are identified, the monitoring software can set the register to trigger the recovery of those resources. This recovery of resources can be then performed by stopping the execution of processes in the hardware engines, invalidating the resources previously allocated to the hardware engines, initializing the resources, and starting the handling of new processes in the hardware engines. This process effectively recovers those resources, and allows those hardware engines to quickly resume operations.

Claims (30)

1. A processing unit, comprising:

a hardware processing core;

a plurality of hardware engines in the hardware processing core;

a memory in the hardware processing core;

a resource manager in the hardware processing core, wherein

the resource manager is configured to manage allocation of resources in the memory for the plurality of hardware engines,

the resource manager comprises a memory mapped register accessible to software, wherein the memory mapped register is configured to receive a command to recover a leaked resource in the memory, and, in response to a received command to recover the leaked resource in the memory, the resource manager is further configured to:

stop processes in the plurality of hardware engines,

invalidate resources in the memory previously allocated to the hardware engines,

initialize the resources in the memory, and

start handling of new processes in the hardware engines.

2. The processing unit of claim 1 , wherein the processing unit is further configured to identify an occurrence of the leaked resource in the memory in the hardware processing core by being configured to monitor for a stuck frame in the hardware processing core.

3. The processing unit of claim 2 , wherein the processing unit is configured to monitor for a stuck frame in the hardware processing core by being configured to monitor for a frame counter that doesn't change for a set period of time while an associated port is active.

4. The processing unit of claim 3 , wherein the processing unit is configured to set the memory mapped register in the resource manager in response to the frame counter not changing for the set period of time while the associated port is active.

5. The processing unit of claim 1 , wherein the resource manager is configured to invalidate the resources in the memory previously allocated to the hardware engine by being configured to send a command to the hardware engine instructing the hardware engine to invalidate the resources in the memory.

6. The processing unit of claim 1 , wherein the resource manager is configured to initialize the resources in the memory by being configured to clear a buffer available vector.

7. A processing unit, comprising:

a plurality of hardware processing cores, each of the plurality of hardware processing cores including:

a memory;

a plurality of hardware engines;

a plurality of resource managers, each of the plurality of resource managers configured to allocate resources in the memory, each of the plurality of resource managers including a memory mapped register accessible to software, with each memory mapped register configured to receive a command to recover a leaked resource in the memory, and wherein, in response to a received command to recover the leaked resource in the memory, the resource manager is configured to:

stop processes in the plurality of hardware engines;

invalidate resources in the memory previously allocated to the plurality of hardware engines;

initialize the resources in the memory; and

start handling of new processes in the plurality of hardware engines; and

a monitoring module, the monitoring module configured to identify an occurrence of a leaked resource in the memory in the hardware processing core by monitoring for a stuck frame in the plurality of hardware processing cores, the monitoring module configured to issue the command to recover the leaked resource in the memory to a corresponding one of the plurality of resource managers in response a detecting the stuck frame in the plurality of hardware processing cores.

8. The processing unit of claim 7 , wherein the monitoring module is configured to monitoring for a stuck frame in the hardware processing core by being configured to monitor for a frame counter that doesn't change for a set period of time while an associated port is active.

9. The processing unit of claim 8 , wherein the monitoring module is configured to set the memory mapped register in the resource manager in response to the frame counter not changing for the set period of time while the associated port is active.

10. The processing unit of claim 7 , wherein the corresponding one of the plurality of resource managers is configured to invalidate the resources in the memory previously allocated to a corresponding plurality of hardware engines by being configured to send a command to the corresponding plurality of hardware engines instructing the corresponding plurality of hardware engines to invalidate the resources in the memory.

11. The processing unit of claim 7 , wherein the one of the plurality of resource managers is configured to initialize the resources in the memory by being configured to clear a buffer available vector on the corresponding one of the plurality of resource managers.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →