Managing position independent code using a software framework
View Patent ↗A method for managing position independent code using a software framework is presented. A software framework provides the ability to cache multiple plug-in's which are loaded in a processor's local storage. A processor receives a command or data stream from another processor, which includes information corresponding to a particular plug-in. The processor uses the plug-in identifier to load the plug-in from shared memory into local memory before it is required in order to minimize latency. When the data stream requests the processor to use the plug-in, the processor retrieves a location offset corresponding to the plug-in and applies the plug-in to the data stream. A plug-in manager manages an entry point table that identifies memory locations corresponding to each plug-in and, therefore, plug-ins may be placed anywhere in a processor's local memory.
1. A computer-implemented method comprising:
receiving a data stream at a processor, wherein the data stream includes a plug-in identifier, an impending plug-in identifier, and data;
extracting the plug-in identifier from the data stream;
in response to extracting the plug-in identifier from the data stream, identifying a location offset in an entry point table that corresponds to the plug-in;
in response to identifying the location offset, retrieving the plug-in using the identified location offset;
processing the data that is included in the data stream using the retrieved plug-in;
extracting the impending plug-in identifier from the data stream, wherein the impending plug-in identifier corresponds to an impending plug-in that is utilized by a subsequent data stream;
determining whether the impending plug-in identifier is included in the entry point table;
in response to determining that the impending plug-in identifier is not included in the entry point table, loading the impending plug-in;
incrementing a usage count in the entry point table that corresponds to the plug-in;
retrieving one or more preferences;
determining whether to remove the plug-in from a local memory area based upon the usage count and one or more of the preferences; and
removing the plug-in from the local memory area in response to the determination.