Initialization time become longer with D-cache&I-cache enabled 5746C

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Initialization time become longer with D-cache&I-cache enabled 5746C

1,437件の閲覧回数
ChrisMCU
Contributor II

hi

for reduced CPU, I've turned D-cahce&I-cache on in startup code, but I find that the initialization become longer than before, is there any operation takes much time when cache is enabled?

Do I have any solution for it?

thanks!

タグ(2)
0 件の賞賛
返信
7 返答(返信)

1,429件の閲覧回数
davidtosenovjan
NXP TechSupport
NXP TechSupport

Hi, I guess it'll be rather issue with I-cache than D-cache. After POR cache content is invalid, by first code execution the code is being loaded to the cache by bursts, what could cause initial delay (in dependence of the code, with linear code you should see no impact) plus initialization of cache itself (invalidation takes some cycles). On the other hand during runtime having enabled caches greatly increase execution performance.

But if there is some difference in execution time I would not expect much. Do you have some numbers?

You may consider enabling of I-cache in the main application. Another point is whether you are configuring PLL clocks before MCU init, this may significantly increase initialization time.

0 件の賞賛
返信

1,426件の閲覧回数
ChrisMCU
Contributor II

Hi,

very appreciate for your reply.

As you said, caches can greatly increase execution performance after been enabled.

that's a good idea to enable cache in the main function, shall D-cache be enabled in main function either?

0 件の賞賛
返信

1,405件の閲覧回数
davidtosenovjan
NXP TechSupport
NXP TechSupport

I think in the case of D-cache it shouldn't matter as main portion of data accesses during MCU initialization are SRAM writes (initializing ECC). And these should take same amount of time as on this device used core supports only write-through mode an so SRAM init writes takes same amount of time with cache enabled or disabled.

However still there is a time for D-cache initialization itself (cache invalidation takes 134 CPU cycles).

0 件の賞賛
返信

1,391件の閲覧回数
ChrisMCU
Contributor II

I've tried to move this handler to main function, and it works. Thanks a lot.

but I'm still working on why D-cache cannot be enabled in startup code. Finally, I find D-cache may influence flash data readout. when D-cache was enabled, the E-EEPROM data readout time increased a lot.

I will set SMPU to avoid Data consistence, but I don't know which area shall I set, NVM area or SRAM?

0 件の賞賛
返信

1,385件の閲覧回数
davidtosenovjan
NXP TechSupport
NXP TechSupport

Please clarify your last sentence, I haven't understand what you want to do. Dont you rather to set cache inhibited attribute for EEPROM address space by CMPU?

0 件の賞賛
返信

1,380件の閲覧回数
ChrisMCU
Contributor II

Sorry for my poor English.

Yes, I want to set CI attribute for EEPROM address, but I'm not sure is this right or not.

0 件の賞賛
返信

1,359件の閲覧回数
davidtosenovjan
NXP TechSupport
NXP TechSupport

OK, CI attribute is needed to configure by CMPU.

 

You may use following tool:

https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/Core-MPU-configurator/ta-p/1100529

0 件の賞賛
返信