-
Data: 2009-11-08 20:23:28
Temat: Re: Zelety architektury Von Neumannna w uC ARM?
Od: Adam Dybkowski <a...@4...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Paweł pisze:
>> Mówi się ze dane z pamięci Flash są pobierane wolniej niż z RAM. czy
>> jest to gdzieć napisane. Przykład. Spotkałem opis programu na ARM typu
>> AT91SAM7S256 w którym w celu przyspieszenia pracy zrobiono "sztuczkę"
>> polegającą na przerzuceniu programu z FLASHa do RAM.
>> Dlaczego.Przecież to odczyt. Rozumiem zapis do pamięci, ale odczyt
>> miałby być dłuższy?
>> Skąd to się bierze?
>
> Wszystko jest dokładnie opisane w dokumentacji do procesora.
> W zależności od częstotliwości zegara programuje się odpowiednie
> opóźnienia przy dostępie do pamięci Flash. Tak więc w praktyce
> wykonywanie programu w pamięci RAM zwykle jest znacznie szybsze.
100% true. A do tego jeżeli już mówimy o AT91SAM7Sxx to tam wewnątrz
jest AFAIR pamięć Flash o organizacji 16-bitowej i dlatego wykonywanie
programu w trybie ARM (o instrukcjach 32-bitowych) jest powoolne.
Dodatkowo pamięć Flash ma 1 waitstate powyżej chyba 33 MHz zegara (a ten
procek musi śmigać na 48MHz gdy działa USB). Pobrania z pamięci programu
są "pakowane" w kawałki 32-bitowe (taki mini cache). Ale i tak w
praktyce warto kompilować wszystko w trybie Thumb (z instrukcjami
16-bitowe) - nie dość, że kod jest krótszy to jeszcze szybciej działa
niż w trybie Thumb. A krytyczne czasowo funkcje kompilować w trybie ARM
i wykonywać z RAMu.
Jak miło, że nie trzeba takich kombinacji alpejskich robić w ARM9 (np.
AT91SAM9260), bo pamięć cache programu śmiga z pełną prędkością (a dane
pobiera np. z SDRAM całymi liniami do cache). W tym przypadku kompilacja
w trybie Thumb daje co prawda krótszy kod wynikowy, ale wolniejszy.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Najnowsze wątki z tej grupy
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
- Korekcja perspektywy
- Wentylator zabija zasilacze LEDek?
- Re: Kompensacja mocy biernej przy 230VAC
- Totaliztyczny obowiązek naprawy maszyn i urządzeń
Najnowsze wątki
- 2025-05-06 Agregat z lodówki olej
- 2025-05-06 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-06 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-06 Dęblin => Node.js / Fullstack Developer <=
- 2025-05-06 Warszawa => IT Business Analyst (projects in the telco sector) <=
- 2025-05-06 Title: The Economics and Systemic Implications of Bitcoin: Cost, Scarcity, and the Institutional Race for Dominance .
- 2025-05-06 SMSy
- 2025-05-06 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-05-06 Warszawa => Strategic Account Manager <=
- 2025-05-06 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-05-06 Gdynia => ML Ops Engineer <=
- 2025-05-06 Drobne umowy o dzielo z przeniesieniem praw autorskich
- 2025-05-06 wydobywanie Bitcoinów jest aktualnie zajęciem po prostu nieopłacalnym. Jak wynika z opublikowanych danych, średni koszt wygenerowania jednego Bitcoina wynosi ok. 137 tysięcy dolarów.
- 2025-05-06 Join Bitcoin Blockchain Nonce Global University
- 2025-05-06 Gdynia => ML Ops Engineer <=