(toppers-users 4426) Re: TOPPERS/FMP(Cyclone V)の第2コアの処理速度が遅い件について

Shinya Honda honda @ ertl.jp
2015年 9月 17日 (木) 16:20:43 JST


$B3'MM(B

$BK\ED$G$9!%(B

$B2<5-$NBP1~$r$7$^$7$?!%(BFMP$B%+!<%M%k$N(BSoCFPGA$B4J0W%Q%C%1!<%8$r%j%j!<%9$7$^$7$?!%(B

fmp_socfpga_gcc-20150917.tar.gz

$B$^$?!$(Bi.MX6Q$B8~$1$N(BFMP$B%+!<%M%k$bF1;~$K%j%j!<%9$7$^$7$?!%(B

fmp_imx6_gcc-20150917.tar.gz

$B0J>e(B,$B$h$m$7$/$*4j$$$7$^$9(B.

On 2015/09/02 12:36, y.akiyoshi @ screen.co.jp wrote:
> $BK\EDMM(B
> 
> SCREEN$B%[!<%k%G%#%s%0%9$N=)5H$G$9!#(B
> 
> $BBP1~$$$?$@$-!"$"$j$,$H$&$4$6$$$^$9!#(B
> 
> $BD:$$$?%Q%C%A$G(Barmgcc$BHG$r=$@5$7$?$H$3$m(B2$B%3%"$H$bF1$8<B9T;~4V$GF0:n$9$k$3$H(B
> $B$r3NG'$7$^$7$?!#(B
> $BM}M3$b$O$C$-$j$7$FG<F@$9$k$3$H$,$G$-$^$7$?!#(B
> 
> $B:#8e$H$b$I$&$>$h$m$7$/$*4j$$CW$7$^$9!#(B
> 
> $B3t<02q<R(BSCREEN$B%[!<%k%G%#%s%0%9(B
> $B=)5HJ]5*(B
> 
> 
> 
> $BAw?.85(B: Shinya Honda <honda @ ertl.jp>
> $B08 @ h(B:   users @ toppers.jp
> $BF|IU(B:   2015/09/01 15:21
> $B7oL>(B:   (toppers-users 4418) Re: TOPPERS/FMP(Cyclone V)$B$NBh#2%3%"$N=hM}B.(B
> $BEY$,CY$$7o$K$D$$$F(B
> $BAw?.<T(B: users-bounces @ toppers.jp
> 
> 
> 
> $B=)5H$5$s(B
> 
> $BK\ED$G$9!%(B
> 
> $B$*CN$i$;$"$j$,$H$&$4$6$$$^$9!%(B
> 
> $B$3$A$i$G$b0c$&%?!<%2%C%H$G3NG'$7$^$7$?$,!$3N$+$K%3%"(B2$B0J9_$N @ -G=$,Dc$$7k(B
> $B2L$H$J$j$^$7$?!%(B
> 
> $BD4::$7$?7k2L!$%3%"(B2$B0J9_$OJ,4tM=B,$,M-8z$K$J$C$F$$$^$;$s$G$7$?!%(B
> 
> $B%Q%C%A$rAw$j$^$9$N$G!$$3$A$i$G;n$7$F$b$i$($J$$$G$7$g$&$+!%=$@5$7$?%3!<%I(B
> $B$r6a$$$&$A$K%j%j!<%9$7$^$9!%(B
> 
> ===================================================================
> --- arm_armcc/mpcore/mpcore_tool.h      ($B%j%S%8%g%s(B 1108)
> +++ arm_armcc/mpcore/mpcore_tool.h      ($B:n6H%3%T!<(B)
> @@ -75,6 +75,11 @@
>          cp15_icache_invalidate = 0;
>              \ } while(false)
> 
> +#define CP15_ICACHE_INVALIDATE() do {
>              \+       register uint32_t cp15_branchip_invalidate
> __asm("cp15:0:c7:c5:6");     \
> +       cp15_branchip_invalidate = 0;
>              \+} while(false)
> +
>   #if __TARGET_ARCH_ARM == 6
> 
>   #define CP15_DCACHE_INVALIDATE() do {
>              \Index: arm_gcc/mpcore/mpcore.c
> ===================================================================
> --- arm_gcc/mpcore/mpcore.c     (a?aa??a?$B8c(B?$B'c(B?3 1122)
> +++ arm_gcc/mpcore/mpcore.c     ($Bd=(B?$Bf%-c(B?$B3c(B??a??)
> @@ -477,6 +477,9 @@
> 
>          mpcore_dcache_invalidate();
> 
> +       CP15_DATA_SYNC_BARRIER();
> +       CP15_PBUFFER_FLUSH();
> +
>          bits |= CP15_CONTROL_C_BIT;
>          CP15_CONTROL_WRITE(bits);
>   }
> @@ -501,6 +504,9 @@
>          else{
>                  mpcore_dcache_invalidate();
>          }
> +
> +       CP15_DATA_SYNC_BARRIER();
> +       CP15_PBUFFER_FLUSH();
>   }
> 
>   /*
> @@ -515,13 +521,18 @@
>          /*
>           *  $B$9$G$KM-8z$J$i%j%?!<%s(B
>           */
> -       if(bits & CP15_CONTROL_I_BIT){
> +       if((bits & (CP15_CONTROL_I_BIT|CP15_CONTROL_Z_BIT))
> +          == (CP15_CONTROL_I_BIT|CP15_CONTROL_Z_BIT)){
>                  return;
>          }
> 
>          mpcore_icache_invalidate();
> +       CP15_BRANCHP_INVALIDATE();
> 
> -       bits |= CP15_CONTROL_I_BIT;
> +       CP15_DATA_SYNC_BARRIER();
> +       CP15_PBUFFER_FLUSH();
> +
> +       bits |= CP15_CONTROL_I_BIT|CP15_CONTROL_Z_BIT;
>          CP15_CONTROL_WRITE(bits);
>   }
> 
> @@ -538,6 +549,9 @@
>          CP15_CONTROL_WRITE(bits);
> 
>          mpcore_icache_invalidate();
> +
> +       CP15_DATA_SYNC_BARRIER();
> +       CP15_PBUFFER_FLUSH();
>   }
> 
>   /*
> @@ -658,7 +672,7 @@
>          mpcore_pbuffer_flash();
> 
>          /*
> -        * TTBR0$B$rMQ$$$kMQ$K;XDj(B
> +        * TTBR0$B$rMQ$$$kMM$K;XDj(B
>           */
>          CP15_TTBCR_WRITE(0);
> 
> Index: arm_gcc/mpcore/mpcore.h
> ===================================================================
> --- arm_gcc/mpcore/mpcore.h     ($B%j%S%8%g%s(B 1122)
> +++ arm_gcc/mpcore/mpcore.h     ($B:n6H%3%T!<(B)
> @@ -61,6 +61,7 @@
>   #define CP15_CONTROL_XP_BIT   (1 << 23)
>   #define CP15_CONTROL_V_BIT    (1 << 13)
>   #define CP15_CONTROL_I_BIT    (1 << 12)
> +#define CP15_CONTROL_Z_BIT    (1 << 11)
>   #define CP15_CONTROL_C_BIT    (1 <<  2)
>   #define CP15_CONTROL_M_BIT    (1 <<  0)
> 
> Index: arm_gcc/mpcore/mpcore_tool.h
> ===================================================================
> --- arm_gcc/mpcore/mpcore_tool.h        ($B%j%S%8%g%s(B 1122)
> +++ arm_gcc/mpcore/mpcore_tool.h        ($B:n6H%3%T!<(B)
> @@ -57,6 +57,8 @@
>   #define CP15_AUXILIARY_WRITE(x)  Asm("mcr p15, 0, %0, c1, c0, 1"::"r"(x))
> 
>   #define CP15_ICACHE_INVALIDATE()           Asm("mcr p15, 0, %0, c7, c5,
> 0"::"r"(0))
> +#define CP15_BRANCHP_INVALIDATE()          Asm("mcr p15, 0, %0, c7, c5,
> 6"::"r"(0))
> +
>   #if __TARGET_ARCH_ARM == 6
>   #define CP15_DCACHE_INVALIDATE()           Asm("mcr p15, 0, %0, c7, c6,
> 0"::"r"(0))
>   #define CP15_DCACHE_CLEAN_AND_INVALIDATE() Asm("MCR p15, 0, %0, c7,
> c14, 0"::"r"(0))
> 
> 
> On 2015/08/31 18:44, y.akiyoshi @ screen.co.jp wrote:
>> TOPPERS$B%W%m%8%'%/%H$N$_$J$5$^(B
>>
>> $B3t<02q<R(BSCREEN$B%[!<%k%G%#%s%0%9$N=)5H$H?=$7$^$9!#(B
>>
>> $B0JA0!"%"%k%F%iHG(BDS-5$B$G$N%3%s%U%#%0%l!<%?8F$S=P$7$K$D$$$F<ALd$5$;$F$$$?$@(B
> $B$$(B
>> $B$?$b$N$G$9$,!"(B
>> MDK-ARM$B$NNc$r;29M$K$7$FF0:n$5$;$k$3$H$,$G$-$^$7$?!#$"$j$,$H$&$4$6$$$^$7(B
> $B$?(B
>> $B!#(B
>>
>>
>> $B:#!"(BCyclone V SoC$BMQ$N(BFMP$B4J0W%Q%C%1!<%8(B(1.3.0/2015-02-17)$B$r;HMQ$7$F$$$k$N(B
> $B$G(B
>> $B$9$,!"(B
>> $B%3%"(B1$B$H%3%"(B2$B$KF1$8=hM}$r$5$;$F<B9T;~4V$rB,$C$F$_$k$HBh#2%3%"$,CY$$$H$$$&(B
> $B7k(B
>> $B2L$K$J$C$F$7$^$$$^$9!#(B
>>
>> $B=hM}$O%P%V%k%=!<%H$rJ#?t2s7+$jJV$9$@$1$N$b$N$G!"<B9T;~4V$O(Bget_tim$B$GB,$k(B
> $B$H(B
>> $B%3%"(B2$B$G=hM}$7$?>l9g$NJ}$,(B
>> 3$B3d$[$ICY$$7k2L$K$J$j$^$7$?!#!JB>$N=hM}$G$O(B2$BG\6a$/CY$$>l9g$b$"$j$^$9!K(B
>>
>> $B$3$l$i$N=hM}$OJBNsF0:n$5$;$F$*$i$:!"%=!<%H%?%9%/$@$1$,F0$$$F$$$k>u67$G$9(B
> $B!#(B
>> $B$^$?!"$=$l$>$l$N(Bget_tim$B$O$[$\F1$8B.EY$GF0$$$F$$$^$9!#(B
>> $B%Z%j%U%'%i%k$N @ _Dj$O4pK\E*$K%5%s%W%k$HF1$8$G!"(Bsample1.c$B$N%?%9%/$rA4$F:o(B
> $B=|(B
>> $B$7$F%3%"#1(B/2$B$K$=$l$>$l%?%9%/$rN)$F$F$$$^$9(B
>>
>> $B860x$O$3$l$+$i @ Z$jJ,$1$F$$$/$H$3$m$G$9$,!"(BTOPPERS/FMP$BB&$G2?$+860x$K$J$j(B
> $B$&(B
>> $B$k$h$&$J=hM}$O$"$k$N$G$7$g$&$+!#(B
>> $B$4B8CN$NJ}$,$$$i$C$7$c$$$^$7$?$i!"$I$&$>$h$m$7$/$*4j$$$7$^$9!#(B
>>
>>
>> $B3t<02q<R(BSCREEN$B%[!<%k%G%#%s%0%9(B
>> $B=)5HJ]5*(B
>>
> 
> 
>