Around this time a new generation of central processors (CPUs) were coming to market, offering 32-bit address spaces and (initially optional) support for a memory management unit (MMU). The MMU handled the instructions needed to implement a virtual memory (VM) system by keeping track of which "pages" of memory were in use by various programs. This offered a new solution to the port concept, using the copy on write mechanism used by VM. Instead of copying data between programs, all that had to be sent was the data needed to instruct the MMU to provide access to the same memory. This system would implement the interprocess communications system with dramatically higher performance.