Performance de la mémoire cache dans AT91RM9200

C

coros

Guest
Salut tout le monde,

Je fais des projets de traitement d'image sur le AT91RM9200, je tiens donc à augmenter les performances en permettant le cache et l'UMM.Voici le code:

void init_TLB () (
uint i, j, a; uint * tlb = (uint *) 0x20000000;
for (i = 0; i <4096; i ) (
tlb = 0x12 | (i <<20);
)
for (i = 512; i <528; i ) (
tlb | = 0xC; / / activer le cache pour write_back SDRAM
)
i = 0x20000000;
asm ( "mcr p15, 0,% 0, C2, C2, 0":: "r" (i)); / / set SEG base
i = 3;
asm ( "mcr p15, 0,% 0, C3, c0, 0":: "r" (i)); / / set accès de domaine
i = 0;
asm ( "mcr p15, 0,% 0, C7, C7, 0":: "r" (i)); / / invalider ICACHE & DCache
i = 0xC000107D;
asm ( "mcr p15, 0,% 0, c1, c0, 0":: "r" (i)); / / enable MMU ICACHE & & & clock DCache asyn
)

Puis-je mesurer la performance en comptant le nombre de décompositions svd d'une matrice 6x6 en 2.5s.

a = AT91C_BASE_ST-> ST_CRTR 5;
i = 0;
while (a> AT91C_BASE_ST-> ST_CRTR) (
Q = V;
SVD (Q, W, E);
i ;
)
std:: cout << "\ nsvd de Q \ n" <<W << "\ nCalculated" <<i << "fois en 2.5s";

J'obtiens des résultats suivants:
pas de cache 33 fois
Instruction Cache seulement 270
données et de cache d'instructions 35

Pourquoi est-il si lent lorsque les deux caches sont activés?C'est tellement lent que, sans cache.
Personne n'a une expérience similaire?
Merci

 

Welcome to EDABoard.com

Sponsor

Back
Top