What about a true CPU / GPU shared memory ?
Something like the swap/pagination on the OS level (cf. store a lot of memory on a disk) but at the GPU/CPU level (share/move GPU memory <-> CPU memory by small or larges chunk) …
Think about the GPU memory can be included into a part of the CPU memory, and this is the OS (or the driver) that handle all the PCI/AGP slow interface/consistancy between this two memory …
Something like glPointer but that can give you a real shared memory to alls pbuffers data
Or make somes CPU func calls into a GPU shader