AM335x inicializace, rychlost

Josef Štengl ok1ced na nagano.cz
Pondělí Únor 23 12:52:15 CET 2015


Jediné, co mě napadá (cortex A neznám) je použít PMU (performance monitor unit) a změřit si, jak dlouho trvají jednotlivé 
úseky kódu/instrukce v CPU cyklech. Dobré je vědět, jak dlouho trvá povolení/zakázání int (v nejjednodušší formě).

Bude z toho jasno, jestli je to PLL nebo chybně nastavená sběrnice („to je přece dobře“ se mi již několikrát vymstilo :-()

ced


Dne 23.2.2015 v 11:37 Jaroslav Buchta napsal(a):
> Jeste jsem zkusil prehodit zasobnik do SRAM u jadra, to se tak o 50% zrychlilo, predtim byla data v L3 OCMC coz je mimo
> jadro a bezi asi na 200 MHz Program tam zustal ale to by snad mela resit instrukcni cache (ma vliv).
> 5M iteraci tohoto cyklu:
>
> 0x40304B28    mov    r3, #0
> 0x40304B2C    str    r3, [r11, #-24]
> 0x40304B30    b    0x40304b40 <main+180>
> 0x40304B34    ldr    r3, [r11, #-24]
> 0x40304B38    add    r3, r3, #1
> 0x40304B3C    str    r3, [r11, #-24]
> 0x40304B40    ldr    r2, [r11, #-24]
> 0x40304B44    movw    r3, #19263    ; 0x4b3f
> 0x40304B48    movt    r3, #76    ; 0x4c
> 0x40304B4C    cmp    r2, r3
> 0x40304B50    ble    0x40304b34 <main+168>
>
> trva nyni asi 1s, coz mi prijde zalostne. Inicializoval jsem uz vsechny PLL bez efektu. Hrubym odhadem muze jedna iterace
> trvat tak 20 internich cyklu? Pri frekvenci jadra 600MHz bych cekal za sekundu tedy 8x vetsi vykon.
> V cem muze byt problem???
>
> Dne 23. 2. 2015 v 8:32 Jaroslav Buchta napsal(a):
>> Normalne, na zasobniku, vse v interni SRAM
>> Takto vypada disassemblovany kod - IMHO presny preklad bez
>> optimalizace, leze jen do interni pameti:
>>
>> 0x403046B0    mov    r3, #0
>> 0x403046B4    str    r3, [r11, #-24]
>> 0x403046B8    b    0x403046d4 <main+176>
>> 0x403046BC    ldr    r3, [r11, #-28]
>> 0x403046C0    add    r3, r3, #1
>> 0x403046C4    str    r3, [r11, #-28]
>> 0x403046C8    ldr    r3, [r11, #-24]
>> 0x403046CC    add    r3, r3, #1
>> 0x403046D0    str    r3, [r11, #-24]
>> 0x403046D4    ldr    r2, [r11, #-24]
>> 0x403046D8    movw    r3, #41247    ; 0xa11f
>> 0x403046DC    movt    r3, #7
>> 0x403046E0    cmp    r2, r3
>> 0x403046E4    ble    0x403046bc <main+152>
>>
>>
>> Dne 23. 2. 2015 v 8:16 Jan Waclawek napsal(a):
>>>>      volatile int idx;
>>>>      volatile int x;
>>>
>>>>          for (idx=0; idx<500000; idx++)
>>>>          {
>>>>              x++;
>>>>          }
>>> Bez toho aby som sa pokusal pochopit ten SoC, kde su alokovane tieto dve
>>> premenne?
>>>
>>> wek
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> ---
>> This email has been checked for viruses by Avast antivirus software.
>> http://www.avast.com
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> http://www.avast.com
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list