1. A method comprising:
converting memory access instructions in a source code into intermediary standard formatted memory access instructions;
generating a plurality of memory access partitions containing corresponding subsets of the intermediary standard formatted memory access instructions, with the plurality of memory access partitions directed to specific memory banks;
identifying matching instructions based on comparisons of pre-defined instruction patterns to the intermediary standard formatted memory access instructions in the plurality of memory access partitions; and
transforming the identified matching instructions to vector memory access instructions, with the transformed vector memory access instructions, when executed, causing a corresponding memory access operation to be performed for a group of memory locations.
2. The method of claim 1 in which converting comprises converting memory access instructions that read or write less than a minimum data access unit (MDAU) to memory access instructions that read or write a multiple of the minimum data access unit.
3. The method of claim 2 in which converting further comprises transforming the memory access instructions that read or write the multiple of the minimum data access unit to a format including a base address plus an offset.
4. The method of claim 1 in which generating the plurality of memory access partitions comprises:
generating a data flow graph containing basic blocks including the intermediary standard formatted memory access instructions; and
for each basic block, applying a set of rules.
5. The method of claim 4 in which applying comprises limiting a subnode of one of the plurality of memory access partitions to a memory read or a memory write.
6. The method of claim 1 in which the memory banks include a static random access memory (SRAM).
7. The method of claim 1 in which the memory banks include a dynamic random access memory (DRAM).
8. The method of claim 1 in which the memory banks include a scratchpad memory.
9. The method of claim 1 in which the memory banks include an EEPROM.
10. The method of claim 1 in which the memory banks include flash memory.
11. The method of claim 1 in which the memory banks include a NVRAM.
12. The method of claim 1 in which the instruction patterns comprise a pattern describing instruction semantics.
13. The method of claim 1 in which the vector memory access instructions comprise single memory access instructions representing multiple memory accesses to a type of memory.
14. A compilation method comprising:
converting source code that includes memory access instructions that read or write less than a minimum data access unit (MDAU) to intermediary code that includes memory access instructions that read or write a multiple of the minimum data access unit;
converting the memory access instructions of the intermediary code into intermediary memory access instructions that have a format including a base address plus an offset;
grouping subsets of the intermediary memory access instructions into a plurality of memory access partitions, with the plurality of memory access partitions containing intermediate memory access instructions directed to specific memory banks; and
transforming the intermediary memory access instructions in the subsets corresponding to the plurality of memory access partitions that match pre-defined instruction patterns to vector memory access instructions, with the transformed vector memory access instructions, when executed, causing a corresponding memory access operation to be performed for a group of memory locations.
15. The compilation method of claim 14 in which grouping comprises:
generating a data flow graph containing basic blocks including intermediary memory access instructions; and
generating subnodes in the plurality of the memory access partitions, each subnode including intermediary memory access instructions directed to the same operation in a memory bank corresponding to the respective memory access partition.
16. The compilation method of claim 15 in which the operation is a read.
17. The compilation method of claim 15 in which the operation is a write.
18. The compilation method of claim 15 in which the memory bank is a static random access memory (SRAM).
19. The compilation method of claim 15 in which the memory bank is a dynamic random access memory (DRAM).
20. The compilation method of claim 15 in which the memory bank is a scratchpad memory.
21. The compilation method of claim 15 in which the memory bank is an EEPROM.
22. The compilation method of claim 15 in which the memory bank is flash memory.
23. The compilation method of claim 15 in which the memory bank is NVRAM.
24. The compilation method of claim 14 in which the instruction patterns comprises instruction semantics.
25. The compilation method of claim 24 in which the instruction semantics comprises segments.
26. A computer program product, for vectorizing memory access instructions, the computer program product residing on a computer readable medium for storing computer instructions that, when executed, cause data processing apparatus to:
convert memory access instructions residing in a source code into intermediary standard formatted memory access instructions;
generate a plurality of memory access partitions containing corresponding subsets of the intermediary standard formatted memory access instructions, with the plurality of memory access partitions directed to specific memory banks;
identify matching instruction based on comparisons of pre-defined instruction patterns to the intermediary standard formatted memory access instructions in the plurality of memory access partitions; and
transform the identified matching instructions to vector memory access instructions, with the transformed vector memory access instructions, when executed, causing a corresponding memory access operation to be performed for a group of memory locations.
27. The computer program product of claim 26, the computer instruction that cause the data processing apparatus to convert comprise computer instructions that cause the data processing apparatus to convert memory access instructions that read or write less than a minimum data access unit to memory access instructions that read or write a multiple of the minimum data access unit.
28. The computer program product of claim 27, the computer instruction that cause the data processing apparatus to convert memory access instructions further comprise computer instructions that cause the data processing apparatus to transform the memory access instructions that read or write the multiple of the minimum data access unit to a format including a base address plus an offset.
29. The computer program product of claim 26, the computer instruction that cause the data processing apparatus to generate partitions comprise computer instructions that cause the data processing apparatus to:
generate a data flow graph containing basic blocks including the intermediary standard formatted memory access instructions; and
generate subnodes in the plurality of memory access partitions, the subnodes including intermediary standard formatted memory access instructions directed to the same operation in the memory banks corresponding to the respective memory access partitions.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. An energy-saving power converter having a suspend mode for providing electric power to an electricity consuming device having at least two electricity consuming modes, including a working mode and a non-working mode, wherein the power converter has a suspend mode corresponding to the non-working mode of the electricity consuming device and a normal operating mode corresponding to the working mode of the electricity consuming device, the power converter comprising:
an output port for being electrically connected to the electricity consuming device;
a voltage-transforming unit having a controller and adapted for outputting at least one predetermined output voltage via the output port;
a processing unit including:
a sensor to be powered by the voltage-transforming unit and adapted for detecting the electric power to be output via the output port to assess the electricity consuming mode of the electricity consuming device, thereby deactivating the voltage-transforming unit; and
a switch for selectively determining whether or not the sensor is to be powered; and
a wake-up unit for activating the deactivated voltage-transforming unit upon receipt of a mechanical powering signal derived from outside of the power converter.
2. The power converter according to claim 1, wherein the voltage-transforming unit comprises transforming circuits for selecting one out of a plurality of predetermined different output voltages and transmitting the selected output voltage to the output port.
3. The power converter according to claim 1, further comprising an input port for receiving an input voltage and transmitting the input voltage to the voltage-transforming unit, at which the input voltage is converted into the least one predetermined output voltage.
4. The power converter according to claim 3, wherein the voltage-transforming unit comprises transforming circuits for converting an input voltage fed to the input port into one of a plurality of predetermined different output voltages to be transmitted to the output port, and a selector for selectively placing one of the transforming circuits in an electrically connected state.
5. The power converter according to claim 3, wherein the voltage-transforming unit comprises an amplifier having an inverting input terminal, a non-inverting input terminal and an output terminal connected to the inverting input terminal to form a feedback loop, and wherein the voltage-transforming unit further comprises a pulse-width modulation output terminal for outputting a compensated pulse-width modulation signal with a variable duty-cycle ratio to the amplifier.
6. The power converter according to claim 3, wherein the wake-up unit is electrically connected to the input port and powered by the input voltage.
7. The power converter according to claim 6, wherein the wake-up unit comprises an actuation sensor.
8. The power converter according to claim 1, wherein the wake-up unit comprises a micro power generator.
9. The power converter according to claim 1, wherein the processing unit further comprises a memory device, in which a predetermined threshold value for the electricity consuming mode is stored and serves as a standard for the assessment of the electricity consuming mode of the electricity consuming device by the sensor when the sensor is powered.