1. A data processing system, comprising: a main processor having access to multiple levels of cache memories, the main processor being suitable for executing a main thread; means for executing an assist thread, wherein the assist thread and the main thread are derived from a common source code object and wherein the assist thread includes memory access instructions, only those arithmetic instructions required to resolve memory references in the memory access instructions, and only those branch instructions required to determine whether a memory access instruction must be executed; and a scheduler coupled to the main processor and to the assist thread execution means, the scheduler being configured to schedule the assist thread in conjunction with the corresponding execution tread, and wherein the scheduler is further configured to execute the assist thread ahead of the execution thread.