מתקני המחזור מלאים בסוללות שאולי אפשר היה לנצל אותן טוב יותר. הנה מאמר קצר על חשיבה ותכנון מוכווני צריכת חשמל בפיתוח אמבדד.
עוד לא פגשתי מתכנת מחשבים שלקח בחשבון את צריכת החשמל של הקוד שלו. השיקול הכי קרוב, אולי, הוא העומס על המעבד הראשי, וגם אז המטרה ברוב המקרים היא רק לפנות משאבים עבור קוד אחר. בעולם האמבדד, לעומת זאת, חיסכון בחשמל יכול להיות השיקול החשוב ביותר בפרויקט, והוא נעשה הן באמצעי תוכנה והן בחומרה.
הבעיה הבסיסית היא שמערכות אמבדד רבות צריכות לעבוד על סוללה זמן ממושך מאוד. מי ירצה מקלדת אלחוטית שצריך להחליף בה סוללה פעם בשבוע, או שעון חכם שחייבים לטעון כל שעה עגולה? וזה לא רק עניין של נוחות: משדר למעקב אחרי לוויתנים או כלבי ים חייב לשחות עם בעל החיים ולפעול שבועות וחודשים בלי שום אפשרות תחזוקה, ויש עוד הרבה מאוד מקרים דומים, גם אם פחות אקזוטיים.
תכנון מוצלח של מערכת חסכונית בחשמל מחייב לקחת בחשבון גורמים רבים שתלויים זה בזה, ולכן הוא יהיה כמעט תמיד איטרטיבי. אנחנו נתחיל במיפוי מצבי הפעולה השונים של המערכת (לדוגמה: המתנה לפקודה, איסוף ועיבוד נתונים, הפעלת מנוע חשמלי), והאחוז מהזמן הכולל שבו המערכת צפויה להיות בכל אחד מהם. נסתכל גם על הדרישות הטכניות מהמערכת, כגון עוצמת המנוע הדרושה, או הגודל המקסימלי שמותר לאלקטרוניקה לתפוס במוצר. כל המידע הזה ייתן לנו הערכה ראשונית של סוג הרכיבים שאיתם נוכל לעבוד, ושל סוג וגודל הסוללה הדרושים.
באופטימיזציה "קלאסית" של קוד תוכנה, אחד מחוקי היסוד הוא שצריך להשקיע בקטעים שבהם התוכנה נמצאת רוב הזמן. ניקח לדוגמה מנוע גרפי למשחקים: גם אם אקצר את זמן הטעינה של המנוע עצמו בחמש שניות שלמות, זה עדיין יהיה פחות משמעותי מקיצוץ של אלפית שנייה בלבד במשך הרינדור של כל פריים יחיד. אותו הדבר נכון לגבי צריכת חשמל: אם גאדג'ט נמצא במצב רדום שבוע שלם ואז מפעיל נורת פלאש רבת עוצמה לשבריר שנייה, המקום הנכון לקיצוצים הוא המצב הרדום – וזה אומר להסתכל על זרמים חשמליים בקנה מידה של אלפיות ואפילו מיליוניות אמפר. בשביל הפרופורציה, אלו הם ערכים שמתקרבים לערכי הפריקה העצמית של סוללות (המטען שהם מאבדות עם השנים רק מעצם השהייה שלהן במגירה). בפועל זה אומר לבחון במיקרוסקופ אלקטרונים, כביכול, כל מצב פעולה, לחפש מקומות ותנאים שאפשר לחסוך בהם, לנבור בדפי נתונים של רכיבים, למדוד(!), ומדי פעם להסיק מסקנות ביניים שיחזירו אותנו לסבב שינויים במיפוי שאיתו התחלנו. בסופו של דבר נמצא פתרון משביע רצון, או שנגלה שמדובר בחלום בלתי ניתן להגשמה בטכנולוגיות של ימינו (כן, גם זה קורה לפעמים).
כמו בכל אופטימיזציה כמעט, הגרף של תועלת כפונקציה של השקעה הוא אסימפטוטי: מעבר לנקודה מסוימת תידרש יותר ויותר השקעה כדי להשיג שיפורים הולכים וקטנים. השאיפה הריאלית צריכה לפיכך להיות מציאה של נקודת איזון מעשית לעולם האמיתי, לא שבירה של שיא עולם.