The term: microarchitecture was used to describe the units that were controlled by the microprogram words, in contrast to the term: "architecture" that was visible and documented for programmers. While architecture usually had to be compatible between hardware generations, the underlying microarchitecture could be easily changed.