What is the difference between PtoP and DtoD memcpys?

While profiling an application using nvvp I see that both PtoP and DtoD memcpy are present there. I am wondering what’s the difference between these two.