Why do we need the .x extensions?
Development of major versions of the Arm architecture can take many years. For example, Armv7-A was released in 2007 and Armv8-A followed six years later, in 2013. Because architecture needs to evolve between major versions to add new features, minor versions, the .x extensions, are added.
Since the release of Armv8-A, the process of adding to the architecture between major versions has been formalized. There is now an annual release of a .x extension. Beginning with Armv8.0-A, the base specification, the Armv8.1-A extension was added in 2015, the Armv8.2-A extension was added in 2016, and so on. Each .x extension builds on the last, so that Armv8.2-A includes all the features of Armv8.1-A, and adds new features.
Each .x extension is relatively minor. The Arm Architecture Reference Manual (Arm ARM) for the base specification, and original release, is approximately 6,000 pages long. By comparison, the Armv8.3-A specification is only 48 pages long.