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.
Does kahit sino may katulad na karanasan?
Salamat
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.
Does kahit sino may katulad na karanasan?
Salamat