Witam Startujê z ARMmami i przegl±daj±c dokumentacjê ich nigdzie nie znalaz³em opisu ile dany rozkaz potrzebuje cykli zegarowych. Czy s± jakie¶ dokumenty opisujêce to? Dodam jeszcze ¿e na pocz±tek wybra³em sobie uk³ady Philipsa (LPC2138). Micha³ K.
[ARM] Czasy wykonywania instrukcji
Aug 01, 2005
3 Replies
MichalK napisał(a):
Jakieś 90% Prędkości zegara (większość wykonuje się w jednym cyklu). To jeszcze chyba zależy od tego czy pracuje w trybie 16bit czy 32bit, i w jakim stopniu program wykorzystuje instrukcje 1-cyklowe. W .pdf-ie do AT91SAM7S (on ma to samo jądro co Twój Philips) pisze iż pracując przy zegarze 55MHz w najgorszym wypadku instrukcje będą się wykonywać w takcie 30MHz.
Jest cykl chyba 5 czy 6 PDFow do sciagniecia ze strony firmy ARM, opisujacych m.in. asembler ARM i asembler Thumb, w tym czasy wykonania instrukcji. Czasy wykonania wielu rozkazow zaleza od kilku czynnikow, m.in. czasow dostepu (waitstate'y), trybow pobierania danych z pamieci, AFAIR takze wykonania warunkowego.
Tu akurat chyba nie doczytales. Atmel pisze, ze program wykonywany w trybie ARM z wewnetrznej pamieci Flash nie pojdzie szybciej niz na 30 MHz. Wynika to z wolnej pracy pamieci Flash. Program wykonywany natomiast z RAMu chodzi bez problemu z maksymalna czestotliwoscia zegara (az 55 MHz nie probowalem, bo uzywam AT91SAM7S256 caly czas na 48 MHz ze wzgledu na USB). I to nie zalezy od jadra (7TDMI), ale od czasow dostepu do pamieci. Seria AT91SAM7Sxx ma optymalizer dostepow do Flasha w trybie Thumb i wtedy mozna wykonywac program z max. czestotliwoscia zegara (55 MHz), bo z pamieci sa pobierane slowa 32-bitowe a wykonywane 16-bitowe (jak to w trybie Thumb).
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required