I'd imagine doing a memcpy without transferring data back to the chip would create more complexities to maintain sequential memory consistency right? You'd need to somehow keep track of when the memcpy was completed on the processor when nothings being done in the processor.
ant
The intent to separate that logic from the CPU and provide an interrupt on completion gave rise to DMA, I think. (https://en.wikipedia.org/wiki/Direct_memory_access)
From what I could gather from the paper, nothing much changes from the processor's perspective. The referenced paper (Seshadri 13 - http://dl.acm.org/citation.cfm?id=2540725) talks about how this method is better than DMA, as even though DMA reduces cache pollution, it still requires that data be transferred over the memory bus.
EggyLv999
DMA is handled at the OS level as well as the hardware level, so the OS needs to coordinate to prevent the CPU from causing cache coherency problems. This isn't easy: take a look at this article on some subtle bugs that can happen: https://lwn.net/Articles/2265/
ferozenaina
Could someone please explain or compare this with DMA? How do they differ?
I'd imagine doing a memcpy without transferring data back to the chip would create more complexities to maintain sequential memory consistency right? You'd need to somehow keep track of when the memcpy was completed on the processor when nothings being done in the processor.
The intent to separate that logic from the CPU and provide an interrupt on completion gave rise to DMA, I think. (https://en.wikipedia.org/wiki/Direct_memory_access)
From what I could gather from the paper, nothing much changes from the processor's perspective. The referenced paper (Seshadri 13 - http://dl.acm.org/citation.cfm?id=2540725) talks about how this method is better than DMA, as even though DMA reduces cache pollution, it still requires that data be transferred over the memory bus.
DMA is handled at the OS level as well as the hardware level, so the OS needs to coordinate to prevent the CPU from causing cache coherency problems. This isn't easy: take a look at this article on some subtle bugs that can happen: https://lwn.net/Articles/2265/
Could someone please explain or compare this with DMA? How do they differ?