Approximate computation in digital systems using bit partitioning
US-11914447-B1 · Feb 27, 2024 · US
US10324520B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10324520-B2 |
| Application number | US-201715633297-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 26, 2017 |
| Priority date | Aug 13, 2015 |
| Publication date | Jun 18, 2019 |
| Grant date | Jun 18, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Technologies for discontinuous execution include a compiler computing device and one or more target computing devices. The compiler computing device converts a computer program into a sequence of atomic transactions and coalesces the transactions to generate additional sequences of transactions. The compiler computing device generates an executable program including two or more sequences of transactions having different granularity. A target computing device selects an active sequence of transactions from the executable program based on the granularity of the sequence and a confidence level. The confidence level is indicative of available energy produced by an energy harvesting unit of the target computing device. The target computing device increases the confidence level in response to successfully committing transactions from the active sequence of transactions into non-volatile memory. In response to a power failure, the target computing device resets the confidence level and resumes executing the transactions. Other embodiments are described and claimed.
Opening claim text (preview).
The invention claimed is: 1. A computing device for compiling code for a target device, the computing device comprising: a compiler analysis module to (i) convert a computer program into a first sequence of transactions and (ii) coalesce the first sequence of transactions to generate one or more coalesced sequences of transactions, wherein each coalesced sequence of transactions has a granularity that is more coarse than a granularity of the first sequence of transactions; a profiler module to collect an energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions, wherein the energy profile is indicative of energy consumed by the target device to execute a transaction of the corresponding sequence of transactions; and a code generation module to (i) select a plurality of selected sequences of transactions from the first sequence of transactions and the coalesced sequences of transactions based on the energy profiles, and (ii) generate an executable program for the target device, wherein the executable program includes the selected sequences of transactions, and wherein the executable program selects between the selected sequences of transactions at runtime based on available energy. 2. The computing device of claim 1 , wherein the computing device comprises a server device. 3. The computing device of claim 1 , wherein the target device comprises an edge device. 4. The computing device of claim 1 , wherein to collect the energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions comprises to receive energy profile data from the target device, wherein the energy profile data is indicative of operating conditions of the target device. 5. The computing device of claim 1 , wherein: the profiler module is further to collect an available energy profile in relation to the target device; and to select the plurality of selected sequences of transactions further comprises to select the selected sequences of transactions based on the available energy profile. 6. The computing device of claim 5 , wherein to collect the available energy profile in relation to the target device comprises to receive the available energy profile from the target device. 7. The computing device of claim 6 , wherein to receive the available energy profile comprises to receive a confidence level that is indicative of the available energy from the target device. 8. The computing device of claim 1 , wherein to collect the energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions comprises to determine the energy profile based on a design profile of the target device. 9. The computing device of claim 8 , wherein to collect the energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions comprises to simulate execution of the first sequence of transactions and the coalesced sequences of transactions by the target device. 10. A method for compiling code for a target device, the method comprising: converting, by a computing device, a computer program into a first sequence of transactions; coalescing, by the computing device, the first sequence of transactions to generate one or more coalesced sequences of transactions, wherein each coalesced sequence of transactions has a granularity that is more coarse than a granularity of the first sequence of transactions; collecting, by the computing device, an energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions, wherein the energy profile is indicative of energy consumed by the target device to execute a transaction of the corresponding sequence of transactions; selecting, by the computing device, a plurality of selected sequences of transactions from the first sequence of transactions and the coalesced sequences of transactions based on the energy profiles; and generating, by the computing device, an executable program for the target device, wherein the executable program includes the selected sequences of transactions, and wherein the executable program selects between the selected sequences of transactions at runtime based on available energy. 11. The method of claim 10 , wherein collecting the energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions comprises receiving energy profile data from the target device, wherein the energy profile data is indicative of operating conditions of the target device. 12. The method of claim 10 , further comprising: collecting an available energy profile in relation to the target device; wherein selecting the plurality of selected sequences of transactions further comprises selecting the selected sequences of transactions based on the available energy profile. 13. The method of claim 12 , wherein collecting the available energy profile in relation to the target device comprises receiving the available energy profile from the target device. 14. The method of claim 10 , wherein collecting the energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions comprises determining the energy profile based on a design profile of the target device. 15. One or more machine readable storage media comprising a plurality of instructions that in response to being executed cause a computing device to: convert a computer program into a first sequence of transactions; coalesce the first sequence of transactions to generate one or more coalesced sequences of transactions, wherein each coalesced sequence of transactions has a granularity that is more coarse than a granularity of the first sequence of transactions; collect an energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions, wherein the energy profile is indicative of energy consumed by the target device to execute a transaction of the corresponding sequence of transactions; select a plurality of selected sequences of transactions from the first sequence of transactions and the coalesced sequences of transactions based on the energy profiles; and generate an executable program for the target device, wherein the executable program includes the selected sequences of transactions, and wherein the executable program selects between the selected sequences of transactions at runtime based on available energy. 16. The one or more machine readable storage media of claim 15 , wherein to collect the energy profile in relation to the target device for each of the first sequence of transactions and the coalesced sequences of transactions comprises to receive energy profile data from the target device, wherein the energy profile data is indicative of operating conditions of the target device. 17. The one or more machine readable storage media of claim 15 , further comprising a plurality of instructions that in response to being executed cause the computing device to: collect an available energy profile in relation to the target device; wherein to select the plurality of selected sequences of transactions further comprises to select the selected sequences of transactions based on the available energy profile. 18. The one or more machine readable storage
Related publications grouped by family.
Answers are generated from the same data shown on this page.