cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
629 Views
Registered: ‎05-30-2019

Usage of cache in microblaze to reduce latency

Hi Team,

 

I am using Microblaze Processor and through SDK, i am dumping my code. The problem is latency is very high, so i want to use cache memory to reduce latency. But i include cache, some other pins are coming.

1.Could you please guide me how to use cache efficiently and how is it internlly working?

2. After enabling cache in the microblaze configurations, is cache automatically instantiated?

3. Continuity to previous question, Do we need extrenal peripheral to start the cache?

4. What does this warning mean?

[xilinx.com:ip:microblaze:11.0-24] /microblaze_0:  No D-cache cacheable memory was found in the address space. Please either turn off the cache, add an IP core with cacheable memory to the design, or set external port address segment usage to memory.

Is cache is not instantiated here?

 

Thank you in advance,

D Bhavya Deepika.

0 Kudos
8 Replies
Highlighted
Teacher
Teacher
620 Views
Registered: ‎07-09-2009

Micro blaze is a soft CPU.

When you create the micorblaze, using the IP, one of the questoins is cache and size. The IP then makes the cache and the size you want.

So to use cache, you need to up date the IP, 

 

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Highlighted
562 Views
Registered: ‎05-30-2019

When i enabled cache while configuring microbalze below warning is coming.

[xilinx.com:ip:microblaze:11.0-24] /microblaze_0: No D-cache cacheable memory was found in the address space. Please either turn off the cache, add an IP core with cacheable memory to the design, or set external port address segment usage to memory.

What does this warning mean?

Is cache is not instantiated here? If yes, why the latency is not changing? Do i need to do anything more?

 

1. After enabling cache in the microblaze configurations, is cache automatically instantiated?

2. Continuity to previous question, Do we need extrenal peripheral to start the cache?

 

Thanks in advance,

D Bhavya Deepika.

0 Kudos
Highlighted
Teacher
Teacher
549 Views
Registered: ‎07-09-2009

How are you generating the micorblaze ?
<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Highlighted
497 Views
Registered: ‎05-30-2019

 

I am taking Microblaze IP and running block automation, enabling data and instruction cache while configuring the microblaze.

 

 

Thanks & Regards,

D Bhavya Deepika.

0 Kudos
Highlighted
Observer
Observer
450 Views
Registered: ‎05-18-2015

 

How are you implementing the RAM for the microblaze?  Is it an external memory (DDR, SRAM, etc)  or is an internal block ram (BRAM)?

 

Cache really only helps with performance when using external memories with high latency and good burst performance (like DDR SDRAM).  If you are using internal BRAM for your memory, then cache is not going to give you much of an improvement.   Internal BRAM already operates at one clock per memory cycle, so it is already operating at cache-like speeds.  I suspect that cache is simply not supported for internal BRAM since it does not make sense.   I think that this may be why you are getting the error message about "no cacheable memories".     

If you are using BRAM and you still need more performance, you could simply increase the clock speed of the processor clock.   Also check the compiler optimization settings, and be sure that you are not building your application in  debug mode as that will make it run slower.

0 Kudos
Highlighted
425 Views
Registered: ‎05-30-2019

Hi,

I am not using any external memory as you said, i have only bram. I can't increase my clock speed because i need it to be 100MHz.

If I use external memory, can you guide me how does it work and how the connections will be there.

And I am not using Debug mode, I am running it in release mode.

 

Regards,

D Bhavya Deepika.

0 Kudos
Highlighted
Teacher
Teacher
411 Views
Registered: ‎07-09-2009

Cache is normally in Bram , and is used to speed up external memory. So putting cache in external memory will not help .

Looks like uyiubate stuck unless you increase your cpu speed or improve your code .
<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Highlighted
Scholar
Scholar
401 Views
Registered: ‎08-07-2014

@deepikadasari31,

As pointed out to your earlier, the cheapest and fastest cache for you are BRAMs.

If you want to use uBlaze cache, then just use the options from the IP config. The IP automation tool will instantiate stuff for you. You don't need to do any external connections to the uBlaze IP core.

I can't increase my clock speed because i need it to be 100MHz.

Why?

You can always use CDC FIFOs to communicate with slower clocked peripherals.

--------------------------------------------------------------------------------------------------------
FPGA enthusiast!
All PMs will be ignored
--------------------------------------------------------------------------------------------------------