Kamroq quvvat sarfini ta'minlash uchun kodni optimallashtirish usullari bormi. Arxitektura - ARM. Til - C
Quvvat sarfini kamaytirish uchun kodni optimallashtira olamizmi?
Javoblar (9)
ARM texnik ma'lumotnoma saytidan:
ARM11 MPCore protsessorining energiya samaradorligini oshiradigan xususiyatlari quyidagilardan iborat:
- to'g'ri filial va sub-odatiy qaytishni bashorat qilish, noto'g'ri ko'rsatmalarni olish va dekodlash operatsiyalari sonini kamaytirish
- jismoniy manzilli keshlardan foydalanish, bu keshni tozalash va to'ldirish sonini kamaytiradi, tizimda energiyani tejaydi.
- MicroTLB-lardan foydalanish har bir tsiklda tarjima va himoya qidiruvlarida iste'mol qilinadigan quvvatni kamaytiradi
- keshlar yorliqli RAM va kiruvchi ma'lumotlar operativ xotiralariga kirishlar sonini kamaytirish uchun ketma-ket kirish ma'lumotlaridan foydalanadi.
ARM11 MPCore protsessorida foydalanilmagan funktsional bloklarga kirishni o'chirish uchun eshikli soatlar va eshiklardan keng foydalaniladi. Faqat hisob-kitobni amalga oshirish uchun faol foydalaniladigan mantiq har qanday dinamik quvvatni sarflaydi.
Ushbu ma'lumotlarga asoslanib, protsessor siz uchun quvvatni tejash uchun juda ko'p ish qiladi, deb aytaman. Har qanday quvvatni isrof qilish kerak bo'lgandan ko'ra ko'proq ishlov beradigan noto'g'ri yozilgan koddan kelib chiqadi, siz baribir buni xohlamaysiz. Agar siz quvvatni tejashni xohlasangiz, ilovangizning umumiy dizayni ko'proq ta'sir qiladi. Tarmoqqa kirish, ekranni ko'rsatish va boshqa quvvat talab qiladigan operatsiyalar energiya iste'moli uchun ko'proq tashvish uyg'otadi.
Kamroq quvvat ishlatish uchun kodni optimallashtirish, samarali ravishda kodni optimallashtirishdir. Sizning motivlaringiz pul, ijtimoiy, siyosiy yoki shunga o'xshash bo'lishidan qat'i nazar, kamroq CPU tsikllari = kamroq energiya sarflanadi. Men aytmoqchi bo'lgan narsa shundaki, siz "quvvat iste'moli" ni "bajarilish vaqti" bilan almashtirishingiz mumkin, chunki ular asosan to'g'ridan-to'g'ri proportsional bo'lishi mumkin - va shuning uchun odamlarni "qo'rqitmagan" holda ko'proq muvaffaqiyatga erishishingiz mumkin. kuch bilan bog'liq savol. Biroq, men tuzatilishim mumkin :)
Ha. profilerdan foydalaning va protsessorning ko‘p qismi qaysi dasturlarda ishlatilishini ko‘ring. ARM da ba'zi JTAG ulagichlaridan foydalanishingiz mumkin, agar mavjud bo'lsa (men Lauterbach ham disk raskadrovka, ham profil yaratish uchun). Asosiy muammo, odatda, protsessorni ishlamay qolganda, kam iste'mol holatiga (chuqur uyqu) qo'yishdir. Agar siz CPU ulushini ko'p (masalan, 80% dan 50% gacha) kamaytira olmasangiz, bu katta farq qilmaydi. Qaysi operatsion tizimlar ishlayotganingizga qarab, variantlar farq qilishi mumkin.
ACM aloqalarining 2010-yil iyul sonida sizni qiziqtirishi mumkin bo‘lgan energiya tejaydigan algoritmlar haqidagi maqola bor. Men uni hali o'qimaganman, shuning uchun uning hech qanday hikmatini berolmayman.
Bo'sh aylanishlar uchun chip xotirasida (keshda) qolishga harakat qiling, kirish/chiqarishni minimal darajaga tushiring, avtobuslarda minimal aylanishni saqlang. NV xotirasi balo va flesh kabi nollarni saqlash uchun birlardan ko'ra ko'proq quvvat sarflaydi (shuning uchun ular birlarga o'chiriladi, u aslida nolga teng, lekin tranzitor(lar) uni ko'rishdan oldin bitni o'zgartiradi, nollar bir sifatida saqlanadi, birlar esa shunday saqlanadi. nollar, shuning uchun ham ular muvaffaqiyatsizlikka uchraganlarida bir darajaga tushadi), men o'zgaruvchan xotiralar haqida bilmayman, dram sram kabi yarim ko'proq tranzistorlardan foydalanadi, lekin yangilanishi kerak.
Bularning barchasi muhim bo'lishi uchun siz pastroq quvvat tizimidan boshlashingiz kerak, chunki yuqorida aytilganlar sezilmasligi mumkin. Masalan, inteldan hech narsa foydalanmang.
Agar siz Windows XP+ yoki Linuxning yangiroq versiyasini ishga tushirmasangiz, HLTdan boshqa hech narsa qilmaydigan fon oqimini ishga tushirishingiz mumkin.
CPUIdle kabi dasturlar shunday qilib quvvat sarfini/issiqlikni kamaytiradi.
Agar protsessor kamroq aylanishlar kerak bo'lganda kamroq quvvat sarflaydigan qilib sozlangan bo'lsa, kodingizni yanada samarali ishga tushirish - bu yechim. Aks holda, operatsion tizim quvvatni boshqarishning qandaydir funksiyalarini ochib bermasa, siz ko'p narsa qila olmaysiz.
IO ni minimal darajada saqlang.
Ba'zi ARM protsessorlarida kuchlanish regulyatorini kutish rejimiga qo'yish orqali quvvat sarfini kamaytirish mumkin.
//
optimallashtirish operatoridan foydalaning. :) - person SLaks   schedule 25.05.2010#include "gogreen.h"
. - person corsiKa   schedule 25.05.2010