a53 core have L1, L2 cache and it is used for read/write data between cpu core and ddr memory.
i don't know if other hardware (such as FPGA) write data to ddr memory, how to detect data was modified.
i tested this problem. (use xilinx ZYNQ MPSoC)
1. ARM : write some random data.
2. read data region for caching.
3. FPGA DMA module: transfer these data to DDR memory region by AXI bus.
4. ARM : read transferred data region.
i think read data on step 4 is cached data on step 2, if it couldn't detect ddr data was changed.
but, test result tell me cache is updated. write data/ read data was identical.
of course all read data cache may be removed other data transition, but there is no fault (read/write data was differ) in a long time test.
So my question is DDR data was changed other H/W by data bus(just AXI bus, not CCI), cache controller can detect it ?
or cache controller continuously monitoring DDR memory data which stored in cache?
You already mentioned CCI. So you need to check which parts of the SoC are covered by the CCI.
I mean if dedicated H/W (like DMA engine) write data to DDR through out of CCI,
how to detect change of data and update valid bit on ARM cache controller.
see below picture, Non-coherent master (right side) write data to DDR. this transfer not connected to CCI, so APU (and it's cache controller) couldn't know data was modified.
so if some DDR location was cached, and that data was modified by other H/W outside of CCI,then only method of set valid bit on APU's cache controller is execute cache update instruction (Clean, Invalidate, Zeroing) mannually.(if there are no other unintended cache update)
is this true ?
i think if it is true, the reason of my test was failed is memory location my app want to read is not cached, so app's read instruction issuing caching from memory.
Right, if H/W does not "know" about modifications of RAM, S/W has to take measures.
If the DMA is hardware coherent with CPU cache in your SoC system, then yes, step 4 can find the data is changed. Otherwise, CPU software will need to perform
DC IVAC, X1 ; ensure cache is not dirty. A clean operation could be used; but as the DMA will subsequently overwrite this region an; invalidate operation is sufficient and usually more efficientDMB SY ; ensures cache invalidation is observed before the next store; is observedSTR W0, [X3] ; sends flag to external agentWAIT_ACQ ([X4]==1) ; waits for a different flag from an external agentLDR W5, [X1]
to get the updated data by DMA.
Really interesting suggestions. B2B lead generation by https://belkins.io/how-to-guides/lead-generation-research/how-to-generate-sales-leads can be a challenging prospect for any business. Without effective marketing strategies, it is nearly impossible to acquire new customers and grow your customer base. This blog post will cover some of the best b2b lead generation techniques that you should focus on in order to generate more leads for your company. The question of how to generate b2b leads is one that many business owners have. The good news is, there are a lot of ways to get them! There are some cost-effective methods you can use to make sure your b2b lead generation strategy works for you and doesn't break the bank. In this blog post, we will discuss the following: 1) What does b2b lead generation entail with https://help.folderly.com/en/articles/4507190-sign-in-with-app-passwords? 2) How do you know if it's working? 3) What strategies work best for generating more b2b leads? 4) Why should I be doing b2b lead generation in the first place? 5) Where should I start with my own strategy on generating more B2B leads? The art of selling to a business is different than the process of selling to an individual. It requires a specialized skill set that often takes years to develop. That's why it's so important for companies in this industry to have a reliable source of leads. We want your company to be successful and generate new revenue, but we also know how difficult it can be building your own list from scratch without some help.In this blog post, you'll learn about all the benefits that come with working with us as your b2b lead generation partner!