-
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
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
- Laptop MSI się nie uruchamia.
- Dobra listwa LED (CRI 90-95, bez migotania)
- masowe programowanie AVR
- Fajny pomysł na monitor z klawiaturą
- Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- Aparat, zewnętrzny mikrofon, brum
- Wieszanie się przy aktywnym SMP
- Prognozowanie zużycia energii przez PGE?
- Odkurzacz mnie bije :(
- Rapsberry Pi i synchronizacja plików
Najnowsze wątki
- 2024-10-19 Warszawa => Software Engineer .Net <=
- 2024-10-19 Warszawa => Senior SAP HANA Developer <=
- 2024-10-19 Warszawa => Specjalista Helpdesk <=
- 2024-10-19 PUE ZUS -- administracyjna nuda...
- 2024-10-18 Marsz niepodleglosci
- 2024-10-18 Pożar parkingu w Luton
- 2024-10-18 Łódź => Spedytor Międzynarodowy <=
- 2024-10-18 Gdańsk => Technical Lead ( (Java Background)) <=
- 2024-10-18 Warszawa => Head of International Freight Forwarding Department <=
- 2024-10-18 uwazajmy na haczyki w umowach
- 2024-10-18 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-10-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-10-18 Gdańsk => Software .Net Developer <=
- 2024-10-18 Warszawa => Junior Rekruter <=
- 2024-10-18 Warszawa => Key Account Manager <=