1. A memory management method for a memory having a plurality of program contexts including an active program context in an active region and at least one inactive program context in an inactive region, each program context having a first and a second part wherein said first and second parts of said active program context are separated by a contiguous memory space comprising a free memory block and a common data parameter store, said method comprising: swapping a location of said second part of said active program context with said contiguous memory space to move said second part to be adjacent said first part of said first program context; swapping a location of a said inactive program context with said active program context and any program context therebetween; and swapping a location of a second part of said inactive program context with said contiguous memory space, after which said inactive program context becomes currently active.