For reference, the surface cache referred to in the article is similar to the one in Quake. Basically, you have a bunch of regular textures that you want to use when rasterizing your polygons. On top of that you want to blend low resolution lightmaps. These lightmaps need filtering (typically bilinear) to appear smooth when blended on top of the original texture.
It's wasteful to do this expensive filtering and blending every frame since the player typically sees those blended textures for a large number of frames when they're traversing the environment, so you keep a LRU cache of blended textures around. That's the surface cache.