Nondestructive patching mechanism
First Claim
1. A method comprising:
- receiving a plurality of parameters for customization of a plurality of hardware components for implementation on a programmable chip, wherein the plurality of parameters is received using an application environment configured to load an application environment manifest, wherein the application environment comprises a plurality of software components associated with a pre-patched module;
generating a logic description including a reference to the plurality of hardware components, the plurality of hardware components including a processor core and a peripheral; and
applying a software component specific patch to the pre-patched module to create a patched module, wherein each software component of the plurality of software components includes a patch manifest and a pre-patch manifest, the patch manifest mapping modules with patched implementations and the pre-patch manifest mapping modules with pre-patch implementations;
using version information to determine whether a software component should use a pre-patched module by only reading a pre-patch manifest or use a patched module by reading both a pre-patch manifest and a patch manifest, the patch manifest overriding an aspect of the pre-patch manifest.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques and mechanisms are provided for patching software, such as software for implementing parameterizable processor cores and peripherals on a programmable chip. Software components constructed using various shared modules can be updated without affecting other components using the same shared modules. In one example, a software component includes a manifest for identifying the implementations that should be associated with the various modules. When a patched implementation is provided for a particular module, the component manifest is changed to associate the patched implementation with the component. The pre-patch implementation is preserved so that other components using the pre-patch implementation may be kept unchanged.
45 Citations
20 Claims
-
1. A method comprising:
-
receiving a plurality of parameters for customization of a plurality of hardware components for implementation on a programmable chip, wherein the plurality of parameters is received using an application environment configured to load an application environment manifest, wherein the application environment comprises a plurality of software components associated with a pre-patched module; generating a logic description including a reference to the plurality of hardware components, the plurality of hardware components including a processor core and a peripheral; and applying a software component specific patch to the pre-patched module to create a patched module, wherein each software component of the plurality of software components includes a patch manifest and a pre-patch manifest, the patch manifest mapping modules with patched implementations and the pre-patch manifest mapping modules with pre-patch implementations; using version information to determine whether a software component should use a pre-patched module by only reading a pre-patch manifest or use a patched module by reading both a pre-patch manifest and a patch manifest, the patch manifest overriding an aspect of the pre-patch manifest. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system, comprising:
-
memory configured to maintain an application environment configured to receive a plurality of parameters for customization of a plurality of hardware components for implementation on a programmable chip, wherein the application environment is configured to load an application environment manifest, wherein the application environment comprises a plurality of software components associated with a pre-patched module; and a central processing unit configured to generate a logic description including a reference to the plurality of hardware components, the plurality of hardware components including a processor core and a peripheral; wherein a software component specific patch is applied to the pre-patched module to create a patched module, wherein each software component of the plurality of software components includes a patch manifest and a pre-patch manifest, the patch manifest mapping modules with patched implementations and the pre-patch manifest mapping modules with pre-patch implementations, and wherein version information is used to determine whether a software component should use a pre-patched module by only reading a pre-patch manifest or use a patched module by reading both a pre-patch manifest and a patch manifest, the patch manifest overriding an aspect of the pre-patch manifest.
-
-
15. A computer readable medium having instructions stored thereon that, if executed by a computing device, cause the computing device to perform operations comprising:
-
receiving a plurality of parameters for customization of a plurality of hardware components for implementation on a programmable chip, wherein the plurality of parameters are received using an application environment configured to load an application environment manifest, wherein the application environment comprises a plurality of software components associated with a pre-patched module; generating a logic description including a reference to the plurality of hardware components, the plurality of hardware components including a processor core and a peripheral; applying a software component specific patch to the pre-patched module to create a patched module, wherein each of the plurality of software components includes a patch manifest and a pre-patch manifest, the patch manifest mapping shared modules with patched implementations and the pre-patch manifest mapping shared modules with pre-patch implementations; using version information to determine whether a software component should use a pre-patched module by only reading a pre-patch manifest or use a patched module by reading both a pre-patch manifest and a patch manifest, the patch manifest overriding an aspect of the pre-patch manifest. - View Dependent Claims (16, 17)
-
-
18. An apparatus comprising:
-
means for receiving a plurality of parameters for customization of a plurality of hardware components for implementation on a programmable chip, wherein the plurality of parameters are received using an application environment configured to load an application environment manifest, wherein the application environment comprises a plurality of software components associated with a pre-patched module; means for generating a logic description including a reference to the plurality of hardware components, the plurality of hardware components including a processor core and a peripheral; means for applying a software component specific patch to the pre-patched module to create a patched module, wherein each of the plurality of software components includes a patch manifest and a pre-patch manifest, the patch manifest mapping shared modules with patched implementations and the pre-patch manifest mapping shared modules with pre-patch implementations; means for using version information to determine whether a software component should use a pre-patched module by only reading a pre-patch manifest or use a patched module by reading both a pre-patch manifest and a patch manifest, the patch manifest overriding an aspect of the pre-patch manifest. - View Dependent Claims (19, 20)
-
Specification