Method and system for embedded virtual memory management
AssigneeMarvell International Ltd.
InventorDeepak Kumar Gauba
Life of this patent
Estimating the term…
Abstract
Aspects of the disclosure provide a virtual memory management method that can reduce memory requirement and improve system performance. The method can include detecting a scenario, matching the detected scenario with a predefined scenario that includes a pre-set mapping relationship of a first module to a dynamic memory address within a first portion of a dynamic memory, and writing the first module from a static memory to the first portion of the dynamic memory at the dynamic memory address. Further, the method can include executing the first module from the dynamic memory. In addition, the method can include storing a second module at a second portion of the dynamic memory independent of the detected scenario.
Claims30
A method for managing memory, comprising:
- detecting a change from a first scenario that uses a first communication protocol to a second scenario that uses a second communication protocol in a system, the first scenario requiring execution of a first code module, and the second scenario requiring execution of a second code module, the first code module, the second code module, and a third code module co-existing in a static memory;
- matching the detected second scenario with a predefined scenario that includes a pre-set mapping relationship of the second code module to a dynamic memory address within a first portion of a dynamic memory, the predefined scenario being at least based on a type of a communication port of the system, wherein the pre-set mapping relationship maps the third code module to another dynamic memory address within a second portion of the dynamic memory and the pre-set mapping relationship of the third code module stays the same independent of the change, the second portion being reserved as a performance critical portion of the dynamic memory that is unaffected by the change;
- and
- writing the second code module from the static memory to the first portion of the dynamic memory at the dynamic memory address to replace the first code module in the dynamic memory.
A method of manufacturing a computer system, comprising:
- identifying a first scenario that uses a first communication protocol and a second scenario that uses a second communication protocol;
- finding a first code module that is associated with the first scenario, and a second module that is associated with the second scenario, the first code module, the second code module, and a third module co-existing in a static memory;
- establishing a first mapping relationship of the first code module to a dynamic memory address within a dynamic memory for the first scenario;
- establishing a second mapping relationship of the second code module to the dynamic memory address for the second scenario;
- establishing a third mapping relationship of the third code module to another dynamic memory address and maintaining the third mapping relationship independent of the first and second scenarios, the other dynamic memory address being reserved as a performance critical portion of the dynamic memory that is unaffected by the first and second scenarios;
- storing the first scenario and the first mapping relationship as a first predefined scenario in a memory medium, and the second scenario and the second mapping relationship as a second predefined scenario in the memory medium, the first and second predefined scenarios being at least based on a type of a communication port of the computer system;
- and
- including the memory medium with the computer system.
A system for managing memory, comprising:
- a static memory that is configured to store a first code module required in a first scenario that uses a first communication protocol at a first static memory address and a second code module required in a second scenario that uses a second communication protocol at a second static memory address, the first code module, the second code module, a third code module co-existing in the static memory;
- a dynamic memory that is configured to have a first portion that stores the first code module in the first scenario and the second code module in the second scenario, the dynamic memory further configured to have a second portion that stores the third code module;
- a controller that is configured to detect a scenario change from the first scenario to the second scenario, match the detected second scenario with a predefined scenario that includes a pre-set mapping relationship of the second code module to a dynamic memory address within the first portion of the dynamic memory, the predefined scenario being at least based on a type of a communication port of the system, and write the second code module from the static memory to the first portion of the dynamic memory at the dynamic memory address to replace the first code module in the dynamic memory, wherein the pre-set mapping relationship maps the third code module to another dynamic memory address within the second portion of the dynamic memory and the pre-set mapping relationship of the third code module stays the same independent of the scenario change, the second portion being reserved as a performance critical portion of the dynamic memory that is unaffected by the change.
A computer system, comprising:
- a static memory that is configured to store a first code module required in a first scenario that uses a first communication protocol at a first static memory address and a second code module required in a second scenario that uses a second communication protocol at a second static memory address, the first code module, the second code module, and a third code module co-existing in the static memory;
- a dynamic memory that is configured to have a first portion that stores the first code module in the first scenario and the second code module in the second scenario, the dynamic memory further configured to have a second portion that stores the third code module;
- a controller that is configured to detect a scenario change from the first scenario to the second scenario, match the detected second scenario with a predefined scenario that includes a pre-set mapping relationship of the second code and a dynamic memory address, the predefined scenario being at least based on a type of a communication port of the system, and write the second code module from the static memory to the first portion of the dynamic memory at the dynamic memory address to replace the first code module in the dynamic memory address, wherein the pre-set mapping relationship maps the third code module to another dynamic memory address within the second portion of the dynamic memory and the pre-set mapping relationship of the third code module stays the same independent of the scenario change change the second portion being reserved as a performance critical portion of the dynamic memory that is unaffected by the scenario change;
- and
- a CPU that is configured to execute the second code module from the dynamic memory.
An application specific device having an embedded system, comprising:
- a static memory that is configured to store a first code module required in a first scenario that uses a first communication protocol at a first static memory address and a second code module required in a second scenario that uses a second communication protocol at a second static memory address, the first code module, the second code module, and a third code module co-existing in the static memory;
- a dynamic memory that is configured to have a first portion that stores the first module in the first scenario and the second code module in the second scenario, the dynamic memory further configured to have a second portion that stores the third code module;
- a controller that is configured to detect a scenario change from the first scenario to the second scenario, match the detected second scenario with a predefined scenario that includes a pre-set mapping relationship of the second code module to a dynamic memory address, the predefined scenario being at least based on a type of a communication port of the embedded system, and write the second code module from the static memory to the first portion of the dynamic memory at the dynamic memory address to replace the first code module in the dynamic memory, wherein the pre-set mapping relationship maps the third code module to another dynamic memory address within the second portion of the dynamic memory and the pre-set mapping relationship of the third code module stays the same independent of the scenario change, the second portion being reserved as a performance critical portion of the dynamic memory that is unaffected by the scenario change;
- a CPU that is configured to execute the second code module from the dynamic memory;
- and
- a device specific component that is coupled with the CPU and is configured to execute a device specific function under control of the CPU.
Dependencies are inferred from the claim text.