Goto page 1, 2 Next
slawek7
Guest
Sat Jul 04, 2009 6:40 am
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?
J.F.
Guest
Sat Jul 04, 2009 9:50 am
On Fri, 3 Jul 2009 21:46:07 -0700 (PDT), slawek7 wrote:
Quote:
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.
T.M.F.
Guest
Sat Jul 04, 2009 11:15 am
Quote:
Jak ilosc cykli jest zmienna, to juz wyznaczenie ilosci instrukcji na
sekunde jest trudne - sprzedawca uzyje najszybszych
Nie jest tak zle. Sa wystandaryzowane benchmarki, na podstawie ktorych
podaje sie predkosc.
Quote:
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.
Eee, troche cie ponioslo

32-bitowe mnozenie poskladane z 8-bitowych
to nie kilkaset instrukcji :)
--
Inteligentny dom -
http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
Grzegorz Kurczyk
Guest
Sat Jul 04, 2009 11:29 am
Użytkownik T.M.F. napisał:
Quote:
Eee, troche cie ponioslo

32-bitowe mnozenie poskladane z 8-bitowych
to nie kilkaset instrukcji
W ATtiny ?
shg
Guest
Sat Jul 04, 2009 11:40 am
On 4 Lip, 10:50, J.F. <jfox_xnosp...@poczta.onet.pl> wrote:
Quote:
Procesorow asynchronicznych na szczescie jeszcze nie ma, wiec
wszystkie wykonuja instrukcje zgodnie z zegarem.
Ciekawostka: są.
Co do wyznaczania wydajności, to są różne benchmarki, gdzie mierzony
jest czas wykonywania jakiegoś mniej lub bardziej różnorodnego zestawu
zadań, jeżeli chodzi o wydajnosć w obliczeniach, to wynik jest
miarodajny. Gorzej z podstawowymi operacjami typu pętle, skoki, czy
dostęp do pamięci. Tutaj to raczej trzeba samemu zajrzeć, ile cykli
zegarowych to zajmuje, bo trudno jest zrobić uniwersalny test
wydajności, który pokazałby, co jest szybkie, a co wolne na danej
architekturze.
Wielu producentów udostępnia wyniki takich benchmarków dla swoich CPU,
oczywiście wybierana jest procedura testowa dająca najlepszy wynik dla
produkowanej architektury, ale jednak zawsze coś z tego można
wywnioskować.
T.M.F.
Guest
Sat Jul 04, 2009 1:41 pm
W dniu 04.07.2009 12:29, Grzegorz Kurczyk pisze:
Quote:
Użytkownik T.M.F. napisał:
Eee, troche cie ponioslo

32-bitowe mnozenie poskladane z 8-bitowych
to nie kilkaset instrukcji :)
W ATtiny ?
A ATTiny ma sprzetowe mnozenie 8-bitowe, o ktorym pisalem?:)
--
Inteligentny dom -
http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
J.F.
Guest
Sat Jul 04, 2009 2:58 pm
On Sat, 4 Jul 2009 03:27:01 -0700 (PDT), shg wrote:
Quote:
On 4 Lip, 10:50, J.F. <jfox_xnosp...@poczta.onet.pl> wrote:
Procesorow asynchronicznych na szczescie jeszcze nie ma, wiec
wszystkie wykonuja instrukcje zgodnie z zegarem.
Ciekawostka: są.
Na szczescie nie dostepne w sklepach, wiec mozemy sobie darowac :-)
Ale jesli masz jakies ciekawe linki, to podaj w osobnym watku.
Quote:
Co do wyznaczania wydajności, to są różne benchmarki, gdzie mierzony
jest czas wykonywania jakiegoś mniej lub bardziej różnorodnego zestawu
zadań, jeżeli chodzi o wydajnosć w obliczeniach, to wynik jest
miarodajny.
Miarodajny dla tych benchmarkow oczywicie :-(
J.
J.F.
Guest
Sat Jul 04, 2009 3:02 pm
On Sat, 04 Jul 2009 12:15:07 +0200, T.M.F. wrote:
Quote:
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.
Eee, troche cie ponioslo

32-bitowe mnozenie poskladane z 8-bitowych
to nie kilkaset instrukcji
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.
slawek7
Guest
Sat Jul 04, 2009 4:40 pm
Coś mi tu namieszaliście. Nic z tego nie rozumiem.
Mam AtMega 8 i chciałbym wiedzieć jaka jest jego moc obliczeniowa? I
jak ją wyznaczyć oraz do czego służy ten paramer. I chciałbym to
porównać np z ARM AT91SAM7256.
Nie słyszałem o Benchmarkach do AVR'ach?
I przykład. Powiedzmy, że mam zbudowany na ATmega8 analizator widma z
DFT. Skąd mam wiedzieć że jego moc obliczeniowa jest wystarczająca do
tego zadania i skąd mam wiedzieć że ARM będzie odpowiedni.
shg
Guest
Sat Jul 04, 2009 5:40 pm
On 4 Lip, 16:50, slawek7 <sholo...@wp.pl> wrote:
Quote:
Coś mi tu namieszaliście. Nic z tego nie rozumiem.
Mam AtMega 8 i chciałbym wiedzieć jaka jest jego moc obliczeniowa? I
jak ją wyznaczyć oraz do czego służy ten paramer. I chciałbym to
porównać np z ARM AT91SAM7256.
Parametr służy do orientacyjnego określenia, który procesor będzie
lepszy w danym zastosowaniu, w tym celu trzeba porównać wyniki wielu
różnych benchmarków, a także wiedzieć co nieco o tym, co będzie robił
program.
Quote:
I przykład. Powiedzmy, że mam zbudowany na ATmega8 analizator widma z
DFT. Skąd mam wiedzieć że jego moc obliczeniowa jest wystarczająca do
tego zadania i skąd mam wiedzieć że ARM będzie odpowiedni.
ARM będzie odpowiedni.
A tak poważnie, to w praktyce potrzebną moc obliczeniową określa się
na oko i buduje prototyp. Jak się okazuje, że jest za mało, to albo
się buduje kolejny prototyp z mocniejszym CPU, albo optymalizuje się
program, albo wreszcie zmienia się założenia (np. odświeżanie 30 razy
na sekundę zamiast 50). Często za pomocą optymalizacji da się
przyśpieszyć nawet kilkukrotnie.
Co zaś do określania mocy obliczeniowej na oko, to przydaje się
doświadczenie.
Quote:
Nie słyszałem o Benchmarkach do AVR'ach?
Nie wiem, wydaje mi się że nie.
Przykład, ten akurat do obliczeń zmiennoprzecinkowych:
http://www.nabble.com/Whetstone-Benchmark-td14987664.html
Źródło i więcej danych:
http://www.eecs.berkeley.edu/~boser/courses/40/labs/docs/microcontroller%20benchmarks.pdf
Dopóki nie piszesz w asemblerze, to i tak większość zależy od
kompilatora, powyższy link jest tego znakomitym dowodem.
J.F.
Guest
Sat Jul 04, 2009 5:56 pm
On Sat, 4 Jul 2009 07:50:11 -0700 (PDT), slawek7 wrote:
Quote:
Coś mi tu namieszaliście. Nic z tego nie rozumiem.
Mam AtMega 8 i chciałbym wiedzieć jaka jest jego moc obliczeniowa? I
jak ją wyznaczyć oraz do czego służy ten paramer. I chciałbym to
porównać np z ARM AT91SAM7256.
I tak namieszalismy ze nic nie rozumiesz ?
To bardzo dobrze. Tego sie nie da tak latwo porownac :-)
Quote:
I przykład. Powiedzmy, że mam zbudowany na ATmega8 analizator widma z
DFT. Skąd mam wiedzieć że jego moc obliczeniowa jest wystarczająca do
tego zadania
Skoro masz zbudowany to widac jest wystarczajaca :-)
No chyba ze np wystarczajaca to ona jest do analizowania harmonicznych
w sieci 50Hz, ale na 60Hz juz za wolny :-)
Quote:
i skąd mam wiedzieć że ARM będzie odpowiedni.
Bedzie odpowiedni. I dostepne zegary sa z 10x szybsze, i architektura
ulatwia obliczenia arytmetyczne a nie utrudnia.
J.
slawek7
Guest
Sat Jul 04, 2009 6:40 pm
Z tym DFT to podałem jako przykład. Nic nie mam zbudowane.
Czy to oznacza że im szybszy uC tym większa moc obliczeniowa? A co np
w sytuacji, gdy w układzie mamy przetwornik ADC który działa w
określonym czasie niezależnym od zegara?
i inny przykład, dlaczego możliwe jest dekodowanie programowe plików
MP3 przy pomocy ARM'a a już AVR podobno sobie nie radzi? Dlaczego
sobie nie radzi?
T.M.F.
Guest
Sat Jul 04, 2009 7:23 pm
Quote:
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.
Eee, troche cie ponioslo

32-bitowe mnozenie poskladane z 8-bitowych
to nie kilkaset instrukcji :)
to przemnoz dwie liczby 32 bitowe zapamietane w roznych miejscach
pamieci na 6502 na przyklad
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 :)
--
Inteligentny dom -
http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
J.F.
Guest
Sat Jul 04, 2009 7:24 pm
On Sat, 4 Jul 2009 10:20:01 -0700 (PDT), slawek7 wrote:
Quote:
Z tym DFT to podałem jako przykład. Nic nie mam zbudowane.
Czy to oznacza że im szybszy uC tym większa moc obliczeniowa?
Tak generalnie, choc co to za instrukcje sa tez sie liczy.
Quote:
A co np
w sytuacji, gdy w układzie mamy przetwornik ADC który działa w
określonym czasie niezależnym od zegara?
Pytales o moc obliczeniowa, a nie o predkosc ADC :-)
Quote:
i inny przykład, dlaczego możliwe jest dekodowanie programowe plików
MP3 przy pomocy ARM'a a już AVR podobno sobie nie radzi? Dlaczego
sobie nie radzi?
no bo dekodowanie MP3 jest zblizone do DFT. Wymaga sporo arytmetyki, w
tym mnozen, z dokladnoscia lepsza niz 16 bit, a czasu malo.
44kHz daje nam ~22us na probki w dwoch kanalach, czyli 11us. A zegary
niezbyt duze. No i mocy obliczeniowej nie starcza.
A dodatkowo takie rzeczy ze nie mozna tego odtwarzac po probce, trzeba
zdekodowac caly blok, potem go odtwarzac, a rownolegle dekodowac
drugi. DMA nie ma, a przerwania przy tej czestotliwosci zajma juz
istotny procent mocy obliczeniowej.
Pamieci malo, a tu trzeba bufor na dane rozkopresowane, zdekodowane,
FAT z karty, katalog .. na ARM sobie mozesz caly plik do pamieci
zaladowac przed odtwarzaniem ..
J.
T.M.F.
Guest
Sat Jul 04, 2009 7:29 pm
W dniu 04.07.2009 19:20, slawek7 pisze:
Quote:
Z tym DFT to podałem jako przykład. Nic nie mam zbudowane.
Czy to oznacza że im szybszy uC tym większa moc obliczeniowa? A co np
No mozna tak powiedziec.
Quote:
w sytuacji, gdy w układzie mamy przetwornik ADC który działa w
określonym czasie niezależnym od zegara?
Zaleznym jak najbardziej. Ale szybkosc ADC i szybkosc procesora to dwie
rozne rzeczy.
Quote:
i inny przykład, dlaczego możliwe jest dekodowanie programowe plików
MP3 przy pomocy ARM'a a już AVR podobno sobie nie radzi? Dlaczego
sobie nie radzi?
Bo dekodowanie mp3 to sporo obliczen. A AVR ma tylko proste obliczenia
8-bitowe, wiec jesli musisz zrobic zmiennopozycyjne o wiekszej precyzji
to wychodzi tragedia czasowa. Potrzebujesz wiec procesor duzo szybszy
(dla uproszczenia taktowany duzo wyzszym zegarem) lub wspierajacy
hardwarowo obliczenia. ARM spelnia oba warunki. Z tym, ze mozesz
wykorzystac sprzetowy dekoder mp3 i wtedy... zwykly AVR podola zadaniu.
Co do dobierania predkosci procesora - trudno sie zgodzic z shg, ze robi
sie to calkowicie emipirycznie. Masz problem, obmyslasz algorytm,
widzisz jego zlozonosc i mozesz oszacowac jego koszt. Znajac
architekture wybranego procesora wiesz ile instrukcji jest potrzebnych
do jego realizacji, co daje ci dosyc dokladne oszacowanie jaki procesor
potrzebujesz. Oczywiscie majac duze doswiadczenie od poczatku wiesz, ze
pewnych rzeczy nie zrobisz na prostym AVR i siegasz po cos mocniejszego.
--
Inteligentny dom -
http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
Goto page 1, 2 Next