Wyznaczenie mocy obliczeniowej uC

Jul 04, 2009 20 Replies

Cześć. Powiedzcie mi jak się wyznacza moc obliczeniową danego uC. I co oznacza stwierdzenie że "AVR nie ma dostatecznej mocy obliczeniowej i należy zastosować inny uC np ARM" JEst to niby intuicyjne, ale jak się zabieram do tego, to nie za bardzo to rozumiem? Czy jednostką mocy obliczeniowej jest MIPS?


Zalezy czy sprzedajesz czy kupujesz :-)

Procesorow asynchronicznych na szczescie jeszcze nie ma, wiec wszystkie wykonuja instrukcje zgodnie z zegarem. Czestotliwosc zegara doprowadzona z zewnatrz potrafia sobie przemnozyc. Jedna instrukcja moze zajac kilka cykli, a moga istniec konstrukcje gdzie sie wykonanie naklada i rozpoczynamy kolejna instrukcje gdy poprzednia jeszcze trwa, albo w ogole kilka rownolegle sie wykonuje, czy kilka osobnych procesorow w jednej kosci mamy.

Jak ilosc cykli jest zmienna, to juz wyznaczenie ilosci instrukcji na sekunde jest trudne - sprzedawca uzyje najszybszych :-)

A osobna sprawa to co to za instrukcje. Moze sie okazac ze jedna instrukcja takiego ARM wymaga kilkaset instrukcji 8-bitowego procesorka zeby zrobic to samo. Bo to jest instrukcja mnozenia

32-bitowych liczb, a maly procesorek potrafi tylko dodawac i tylko 8-bitowe.

Sporo wiec zalezy od tego jakie masz potrzeby obliczeniowe w programie.

J.

Nie jest tak zle. Sa wystandaryzowane benchmarki, na podstawie ktorych podaje sie predkosc.

Eee, troche cie ponioslo :) 32-bitowe mnozenie poskladane z 8-bitowych to nie kilkaset instrukcji :)

Użytkownik T.M.F. napisał:

W ATtiny ? ;-)

W dniu 04.07.2009 12:29, Grzegorz Kurczyk pisze:

A ATTiny ma sprzetowe mnozenie 8-bitowe, o ktorym pisalem?:)

to przemnoz dwie liczby 32 bitowe zapamietane w roznych miejscach pamieci na 6502 na przyklad

bez sprzetowego mnozenia to sa 32 obiegi petli, w kazdym dodawanie 4 do 8 bajtow .. i setka instrukcji wychodzi.

J.

Oj, w przykladzie byl ARM i AVR, a ty tu z jakims procesorem z epoki procesorow lupanych wychodzisz. ATMegi maja sprzetowe mnozenie 8 bitowe, wiec zrobienie z tego mnozenia 32-bitowego jest krotkie. Natomiast jesli istotnie nie masz wsparcia hardwarowego to dla 32 bitow kilkaset instrukcji wychodzi. Chociaz dodalbym, ze to tylko kilka instrukcji w petli, bo kilkaset instrukcji brzmi powaznie :)

W artykule snipped-for-privacy@4ax.com J.F napisał:

Meaningless Indicator of Processor Speed ;)

JS pisze:

;)

IMHO niezłym obiektywnym benchmarkiem procesora jest Dhrystone, dający wynik w jednostkach DMIPS. Da się go odpalić na wielu platformach, a nawet sami producenci procesorów i mikrokontrolerów reklamują wydajność swoich produktów w DMIPS (ew. dużo mówiące o wydajności współczynniki DMIPS/MHz czy o energochłonności DMIPS/mW).

formatting link
Wystarczy wiedzieć, jaka wymagana wydajność jest potrzebna do realizacji konkretnego algorytmu (np. dekodowania MP3) i już wiadomo, jaki procek z założenia trzeba omijać bo nie wydoli.

Jak to mowil znajomy - predkosc, ktora producent gwarantuje ze procesor nie przekroczy :-)

J.

Adamie - ale przeciez swietnie zdajesz sobie sprawe ze to jakies oszustwo. Innych operacji wymaga MP3, innych dekompresja danych, innych grafika na malym wyswietlaczu, innych na duzym, zmienny przecinek - nie da sie tego jedna liczba opisac.

J.

Użytkownik T.M.F. napisał:

No właśnie nie ma. Czyli nawet we współczesnych prockach 8-mio bitowych może to być kilkaset instrukcji.

Pozdrawiam Grzegorz

J.F. pisze:

Jasne. Dlatego niezależnie od DMIPS'ów warto zdawać sobie sprawę, do czego można dążyć (np. optymalizując swój kod). Czyli że na ARM7TDMI dekodowanie MP3 128kbps wymaga popędzenia zegarem minimum 30 MHz (liczby przykładowe, wyssane z palca), a na ARM926EJ-S posiadającym trochę nowych instrukcji a'la DSP już tylko 20 MHz.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required