Hello, Friends of Hive and dear readers, it is a pleasure to be with you presenting topics of interest in science, research, technology, and innovation. The content that I dissert here is about Energy Management in Embedded Systems.
Hola Amigos de Hive y apreciados lectores, un gusto estar con ustedes presentándoles temas de interés de la ciencia, investigación, tecnología e innovación. El contenido que aquí diserto es sobre el Manejo de la Energía en Sistemas Empotrados.
It is important to note that the topic of this post includes specific fundamentals and elements that are scattered in the literature of electronics, digital, and computer systems, which I have managed and integrated, from my expertise with Embedded Computer Systems, resulting in a content that can be used to enrich the knowledge.
Es importante destacar, que el tema de este post incluye fundamentos y elementos específicos que están dispersos en la literatura de la electrónica, los sistemas digitales y computacionales, que he manejado e integrado, desde mi experticia con Sistemas Computacionales Empotrados, dando como resultado un contenido que pueda ser utilizado para enriquecer el conocimiento.
When energy management is incorporated in an Embedded System (ES), the components associated with its architecture may be susceptible in their performance, due to the enabling or not of some of them, the fluctuation of the current ranges for its operation, the energization or not of some or group of components, among others.
Cuando en un Sistema Empotrado (SE) se incorpora la gestión de energía, los componentes asociados a su arquitectura podrán ser susceptibles en su desempeño, debido a la habilitación o no de alguno de ellos, la fluctuación de los rangos de corriente para su funcionamiento, la energización o no de algún o grupo de componentes, entre otros.
This energy management can be carried out in three ways, battery technology, from the hardware and software, respectively.
Esta gestión de energía se puede llevar a cabo por tres vías, la tecnología de las baterías, desde el hardware y software, respectivamente.
Battery technology is characterized by the total amount of energy they can store and their physical dimensions (weight and size), issues presented in previous posts, examples of them, the content of the biobatteries.
La tecnología de las baterías se caracteriza por la cantidad total de energía que pueden almacenar y sus dimensiones físicas (peso y tamaño), asunto presentado en post anteriores, ejemplo de ellos, el contenido de las biopilas.
Power management from the hardware, where there are effective ways to achieve power reduction, such as reducing the number of transistors in the system, applying asynchronous design methodologies to avoid unnecessary activities, discussed in previous post.
La gestión de energía desde el hardware, donde existen formas efectivas para lograr la reducción de energía, como reducir el número de transistores en el sistema, aplicar metodologías de diseño asíncrono para evitar actividades innecesarias, tratado en el post anterior.
And, from the software side, since the applications have direct knowledge of how the user is using the system, it is possible to use this knowledge to make decisions about energy management in the system. Let's see what this is all about.
Y, desde el software, dado que las aplicaciones tienen un conocimiento directo de la forma en que el usuario se encuentra utilizando el sistema, es posible utilizar este conocimiento para tomar las decisiones sobre el manejo de energía en el sistema. Veamos a continuación de qué se trata.
The energy management from software, technically speaking, has two aspects, one using code optimization in the compilation process, and the other using energy-saving mechanisms in the middle software layer (control kernel or operating system), provided that the processor has the management facilities and resources.
El manejo de la energía desde el software, técnicamente hablando, tiene dos vertientes, una usando la optimización del código en el proceso de compilación, y otra, utilizando los mecanismos de ahorro de energía en la capa intermedia de software (núcleo de control o sistema operativo), siempre y cuando el procesador tenga las facilidades y recursos de gestión.
Here I will explain code optimization in the compilation process.
Aquí explicaré la optimización del código en el proceso de compilación.

Source/Fuente: mohamed_hassan by PxHere
When code optimization is used in the compilation process to minimize memory and load requirements, code and algorithm transformation techniques are used.
Cuando se usa la optimización del código en el proceso de compilación con el fin de minimizar los requerimientos de memoria y carga se utilizan técnicas de transformación de códigos y algoritmos.
Software developers know that a compiler's response is to deliver efficient code with as few instructions as possible while implementing the highest possible processing speed in the object code. If it is used as an energy manager, there is a trade-off between code size (complexity and efficiency) and speed that translates into an adjustment of energy consumption.
Los desarrolladores de software conocen que la respuesta de un compilador es entregar un código eficiente con el menor número de instrucciones posibles implementando la mayor velocidad de procesamiento posible en el código objeto. Si es empleado como gestor de energía, existe un compromiso entre el tamaño del código (complejidad y eficiencia) y la velocidad que se traduzca en un ajuste del consumo de la energía.
The above can be estimated using the power consumed, i.e. the sum of the number of operations within the algorithms manifests a change in capacitance. In summary, the above affect the size and complexity of the algorithms.
Lo anterior se puede estimar por medio de la potencia consumida, es decir, la suma del número de operaciones dentro de los algoritmos manifiesta un cambio en la capacitancia. En resumen, lo anterior, afectan el tamaño y la complejidad de los algoritmos.

In code and algorithm transformation techniques, known methods are used to reduce the number of operations and optimize control cycles, replace operations by a combination of simple operations to adjust power, and even identify possible parts of the code where it is possible to perform processor frequency and voltage scaling.
En las técnicas de transformación de códigos y algoritmos se usan, métodos conocidos para reducir el número de operaciones y optimización de ciclos de control, el reemplazo de operaciones mediante una combinación de operaciones simples para ajustar la energía, hasta, identificar posibles partes del código en donde es posible realizar escalamiento de frecuencia y voltaje del procesador.
However, cases may arise where different applications may require the same device in different power states. These issues must be resolved at design time with integrated compilers and appropriate embedded software development dynamics.
No obstante, se podrían presentar casos donde diferentes aplicaciones podrían requerir al mismo dispositivo en diferentes estados de energía. Estos asuntos deben ser resueltos en tiempo de diseño con compiladores integrados y adecuados en la dinámica del desarrollo de software empotrado.

See you soon, I hope the reading has been enriching.
Nos vemos pronto, espero que la lectura haya sido enriquecedora.
I invite you to visit and follow me at @alfonsoalfonsi.
Los invito a visitarme y seguirme en @alfonsoalfonsi.

Brackenbury, L. E. M. & Shao, W. (2007). Lowering power an experimental RISC processors. Microprocessors & Microsystems, 31(5), 360-368.
https://doi.org/10.1016/j.micpro.2006.12.005
Cooling, J. (2019). Real-time Operating Systems Book 1: The Theory (2nd ed.). Lindentree Associates.
Lacamare, D. (2018). Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems. Packt Publishing.
Schmidt, M. y Kim, J. (2018). Embedded Systems Design. Scitus Academics LLC.
Taylor, J. T. & Taylor, W. T. (2021). Patterns in the Machine: A Software Engineering Guide to Embedded Development. Apress. https://doi.org/10.1007/978-1-4842-6440-9_1
Figures and Images / Figuras e Imágenes
The Title image was made by @alfonsoalfonsi using CANVAS and PxHere.
La imagen del Título fue realizado por @alfonsoalfonsi usando CANVAS e imagen de PxHere.
The separator used is my own and is made using CANVAS and an image from klipartz.
El separador es de mi propiedad y está realizado usando CANVAS e imagen de klipartz.
The banner and the photographs on it are my property. Made with Power Point, Paint and the Linerock Investment LTD ToonMe App.
El banner y las fotografías son de mi propiedad. Realizado con Power Point, Paint y Linerock Investment LTD Aplicación ToonMe.