1. A 3D graphics processing system comprising: a fragment shading unit configured to run multiple threads; a first on chip cache internal to the fragment shading unit and configured to store cached instruction used by the fragment shading unit; and a second on chip cache internal to the fragment shading unit and configured to store global data used by the fragment shading unit; wherein the fragment shading unit is further configured to switch operations between the multiple threads upon the occurrence of a cache miss.