IP Library Granted Patent US 10,169,025
Granted Patent B2
US 10,169,025 · App. 15/362,386 · Granted Jan 1, 2019

Dynamic management of software load at customer premise equipment device

Inventors: Christopher S. Del Sordo (Souderton, PA); Samuel Anthony Iacovera, Jr. (San Diego, CA); Albert F. Elcock (West Chester, PA)
Assignee: ARRIS Enterprises LLC
G06F8/62G06F8/36G06F9/44521G06F8/61
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,169,025
App. No.
15/362,386
Granted
Jan 1, 2019
Kind
B2
Abstract

Methods, systems, and computer readable media can be operable to facilitate the dynamic management of the software load at a customer premise equipment device. Software components may be dynamically loaded into volatile memory of a customer premise equipment (CPE) device from a download server or non-volatile memory of the CPE device when an interaction with the CPE device creates a request for the software components. The CPE device may be configured to dynamically unload software components from volatile memory to create space for an incoming software component. The CPE device may identify one or more software components to be removed from volatile memory based upon a calculated probability to unload value for the software components within volatile memory, wherein the probability to unload value for each of the software components is calculated based upon one or more criteria associated with each software component.

Claims (42)

1. A method comprising:

detecting a request to load a requested executable software component to volatile memory;

determining that the size of the requested executable software component is greater than the size of available space in the volatile memory;

determining a probability to unload value for each executable software component of one or more executable software components currently loaded in the volatile memory, wherein the probability to unload value for each respective one executable software component is calculated based upon one or more criteria associated with an execution of the respective one executable software component;

based upon the probability to unload values determined for each of the one or more executable software components that are currently loaded in the volatile memory, identifying one or more of the executable software components for removal from the volatile memory;

removing the identified one or more executable software components from the volatile memory; and

loading the requested executable software component to the volatile memory.

2. The method of claim 1 , wherein the requested executable software component is loaded into the volatile memory from non-volatile memory.

3. The method of claim 1 , wherein the requested executable software component is loaded into the volatile memory from a download server.

4. The method of claim 1 , further comprising:

before identifying one or more of the executable software components for removal from the volatile memory based upon the probability to unload values, removing one or more executable software components associated with a disabled feature from the volatile memory.

5. The method of claim 1 , further comprising:

determining an amount of available network bandwidth, wherein the available network bandwidth is used in the identification of the one or more executable software components for removal from the volatile memory.

6. The method of claim 1 , wherein the one or more executable software components identified for removal from the volatile memory comprise one or more executable software components having the highest probability to unload values relative to the probability to unload values of the other executable software components loaded in the volatile memory.

7. The method of claim 1 , wherein the requested executable software component is loaded into the volatile memory from non-volatile memory when a required latency associated with the requested executable software component is less than a threshold latency, and wherein the requested executable software component is loaded into the volatile memory from a download server when the required latency associated with the requested executable software component is greater than the threshold latency.

8. The method of claim 1 , wherein the one or more criteria associated with the respective one executable software component is downloaded as part of a software component database comprising one or more criteria associated with each of one or more software components.

9. The method of claim 8 , wherein one or more of the criteria within the software component database is periodically updated.

10. An apparatus comprising one or more modules configured to:

detect a request to load a requested executable software component to volatile memory;

determine that the size of the requested executable software component is greater than the size of available space in the volatile memory;

determine a probability to unload value for each executable software component of one or more executable software components currently loaded in the volatile memory, wherein the probability to unload value for each respective one executable software component is calculated based upon one or more criteria associated with an execution of the respective one executable software component;

based upon the probability to unload values determined for each of the one or more executable software components that are currently loaded in the volatile memory, identify one or more of the executable software components for removal from the volatile memory;

remove the identified one or more executable software components from the volatile memory; and

load the requested executable software component to the volatile memory.

11. The apparatus of claim 10 , wherein the requested executable software component is loaded into the volatile memory from non-volatile memory.

12. The apparatus of claim 10 , wherein the requested executable software component is loaded into the volatile memory from a download server.

13. The apparatus of claim 10 , wherein the one or more executable software components identified for removal from the volatile memory comprise one or more executable software components having the highest probability to unload values relative to the probability to unload values of the other executable software components loaded in the volatile memory.

14. One or more non-transitory computer readable media having instructions operable to cause one or more processors to perform the operations comprising:

detecting a request to load a requested executable software component to volatile memory;

determining that the size of the requested executable software component is greater than the size of available space in the volatile memory;

determining a probability to unload value for each executable software component of one or more executable software components currently loaded in the volatile memory, wherein the probability to unload value for each respective one executable software component is calculated based upon one or more criteria associated with an execution of the respective one executable software component;

based upon the probability to unload values determined for each of the one or more executable software components that are currently loaded in the volatile memory, identifying one or more of the executable software components for removal from the volatile memory;

removing the identified one or more executable software components from the volatile memory; and

loading the requested executable software component to the volatile memory.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the requested executable software component is loaded into the volatile memory from non-volatile memory.

16. The one or more non-transitory computer-readable media of claim 14 , wherein the requested executable software component is loaded into the volatile memory from a download server.

17. The one or more non-transitory computer-readable media of claim 14 , wherein the instructions are further operable to cause the one or more processors to perform the operations comprising:

before identifying one or more of the executable software components for removal from the volatile memory based upon the probability to unload values, removing one or more executable software components associated with a disabled feature from the volatile memory.

18. The one or more non-transitory computer-readable media of claim 14 , wherein the instructions are further operable to cause the one or more processors to perform the operations comprising:

determining an amount of available network bandwidth, wherein the available network bandwidth is used in the identification of the one or more executable software components for removal from the volatile memory.

19. The one or more non-transitory computer-readable media of claim 14 , wherein the one or more executable software components identified for removal from the volatile memory comprise one or more executable software components having the highest probability to unload values relative to the probability to unload values of the other executable software components loaded in the volatile memory.

20. The one or more non-transitory computer-readable media of claim 14 , wherein the requested executable software component is loaded into the volatile memory from non-volatile memory when a required latency associated with the requested executable software component is less than a threshold latency, and wherein the requested executable software component is loaded into the volatile memory from a download server when the required latency associated with the requested executable software component is greater than the threshold latency.

Assignments (8)
SECURITY INTEREST Recorded Apr 8, 2026
From: ARRIS ENTERPRISES LLC; RUCKUS IP HOLDINGS LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075476/0814 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 049905/0504 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); ARRIS TECHNOLOGY, INC.; ARRIS SOLUTIONS, INC.; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; RUCKUS WIRELESS, LLC (F/K/A RUCKUS WIRELESS, INC.)
Reel/Frame 071477/0255 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
ABL SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049892/0396 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049905/0504 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2019
From: ARRIS ENTERPRISES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 049820/0495 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2016
From: DELSORDO, CHRISTOPHER S.; IACOVERA, SAMUEL ANTHONY, JR.; ELCOCK, ALBERT F.
To: ARRIS ENTERPRISES LLC
Reel/Frame 040434/0180 →
Continuity (1)
Related Publication 20180150287A1 · May 31, 2018