Tanong tungkol sa pagganap ng cache sa AT91RM9200

C

coros

Guest
Hi everybody,

Ako gumagawa ng imahe sa pagpoproseso ng proyekto sa AT91RM9200, kaya gusto kong dagdagan ang pagganap sa pamamagitan ng pag-enable ang cache at ang MMU.Narito ang code:

magpawalang-bisa init_TLB () (
uint ako, j, isang; uint * tlb = (uint *) 0x20000000;
for (i = 0; i <4,096; i) (
tlb = 0x12 | (i <<20);
)
for (i = 512; i <528; i) (
tlb | = 0xC; / / paganahin write_back cache para sa SDRAM
)
i = 0x20000000;
asm ( "mcr p15, 0, 0%, C2, C2, 0":: "r" (i)); / / set TLB batayang
i = 3;
asm ( "mcr p15, 0, 0%, C3, c0, 0":: "r" (i)); / / itakda ang domain ng access
i = 0;
asm ( "mcr p15, 0, 0%, c7, c7, 0":: "r" (i)); / / magpawalang-bisa ICache & DCache
i = 0xC000107D;
asm ( "mcr p15, 0, 0%, c1, c0, 0":: "r" (i)); / / paganahin ang MMU & ICache & DCache & asyn orasan
)

Pagkatapos ko sukatin ang pagganap sa pamamagitan ng nadaragdagan ang bilang ng mga svd decompositions ng isang 6x6 matris sa 2.5s.

isang = AT91C_BASE_ST-> ST_CRTR 5;
i = 0;
habang (a> AT91C_BASE_ST-> ST_CRTR) (
Q = V;
svd (Q, W, E);
ako;
)
STD:: hukuman << "\ nsvd ng Q \ n" <<W << "\ nCalculated" <<i << "beses sa 2.5s";

Makuha ko ang mga sumusunod na mga resulta:
walang cache ng 33 beses
lamang sa pagtuturo ng cache ng 270
data at pagtuturo cache 35

Bakit ito kaya mabagal na kapag pareho ang cache ay ina-pinagana?Ito kaya mabagal na bilang na walang cache.
Salamat

 

Welcome to EDABoard.com

Sponsor

Back
Top