Isn't it interesting, that after the FX/R300 debacle, both companies have more or less embraced the technical modus operandi of the other?
R300 showed us that a single quad pipeline (that held more or less texture units and shaders) was inefficient, by introducing multiple, independent ALUs. nVidia has embraced that idea wholeheratedly, and even gone as far as breaking the vector units and quads down into individual, scalar ALUs. While ATi/AMD seems to have gone in the opposite direction: multiple, strict quad and vector pipelines, (albeit unified).
R300 showed us that a single quad pipeline (that held more or less texture units and shaders) was inefficient, by introducing multiple, independent ALUs. nVidia has embraced that idea wholeheratedly, and even gone as far as breaking the vector units and quads down into individual, scalar ALUs. While ATi/AMD seems to have gone in the opposite direction: multiple, strict quad and vector pipelines, (albeit unified).