Patent ID: 7412369

Claim:
An apparatus for designing a memory configuration for use in an embedded processing system, the apparatus comprising: a processing system, the processing system comprising: a data processor; a simulation controller simulating execution of a program to be executed by said embedded processing system; a memory access monitor monitoring memory accesses to a simulated memory space during said simulated execution of said program and concurrently generating memory usage statistical data associated with said monitored memory accesses, and wherein said memory accesses comprise read operations and write operations; and a memory optimization controller using said memory usage statistical data, a memory model, and one or more design criteria associated with said embedded processing system determining a plurality of memory configurations satisfying said one or more design criteria and determining a figure of merit for each determined memory configuration, wherein said memory model includes, for each of a plurality of memory types, one or more characteristics selected from write power, refresh power, read power, area per bit, area efficiency, write speed, read speed, erase capability and block size, wherein the figure of merit for each memory configuration indicates a degree to which the respective one of the memory configurations satisfies the one or more design criteria, and wherein said one or more design criteria are selected from memory type usage constraints, memory type size constraints, memory power consumption objectives, and memory speed objectives, wherein the memory optimization controller selecting one of the determined memory configurations for use in the embedded processing system to best meet the one or more design criteria; and a code optimization controller automatically modifying the program in response to the memory usage statistical data, the selected memory configuration, and the figure of merit for the selected memory configuration to achieve greater efficiencies.