Previous | Next --- Slide 31 of 41
Back to Lecture Thumbnails
amolakn

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?