A friend was confused at a lack of a 32-bit version of a program, there was a 64-bit version and an 86-bit version... at which I pointed out his mistake and starting going into the history lesson.
Intel has been at the centre of CPU design in PCs since the seventies. Their naming tends to become de-facto. One of Intel's earlier, but most popular chips, was the 8086, which was succeeded with the 80186 and 80286 - these chips all used the same instructions to operate and thus rose the x86 name, where the X is whatever the generation on processor using the same x86 instructions.
How does this relate to 32-bit? Well, it doesn't. The 8086 was 16-bit. The 386 processor (people stopped using 80 at the start, but that was still its formal name) was Intel's first desktop 32-bit processor but still using the same instructions to talk. Intel refer to their "bits" with the abbreviation IA-16, IA-32, IA-64.
Intel introduced IA-64 to the world with the "Itanium" processor, which was not x86 compatible (and for good reason, Intel have been trying to shrug off the old an inefficient x86 instructions to compete with the likes or ARM RISC). The problem was, the world wasn't ready to re-write all their code to work with new instructions, yet at the same time, we were hitting the 4GiB limit of 32-bit addressing.
AMD, Intel's major competitor, saw the opportunity to define a new extension to x86 and called is AMD64. This still used the same x86 compatible instructions but allowed for 64-bit memory addressing (up-to 16EiB). This was an instant hit and Intel was forced to accept it to maintain competitiveness. Intel have used the name IA-32e, EM64T and just Intel64, but either way it's got confusing. The most defined way of naming it was naturally x86-64 (x86 compatible, 64-bit).
And this is the point where things get muddled up. Various people naming things in different fashions has seen x86 dropped from x86-64 often, and then just x86 (without the -32) to distinguish the "normal" 32-bit version. So we now have some muddled up naming conventions. In summary:
x86 = Generally means "normal" (now old) 32-bit PC (Windows, Mac OS, Linux etc)
x86_64, AMD64, x64 = 64-bit, but still a normal PC.
IA-64 = Itanium, not seen in the PC world.
With that cleared up, I got thinking back to the introduction of the Intel Core-i7, and why it was called "i7". I did read an article mentioning it but cannot find out why - it seems the answer is the seventh generation architecture from Intel.
Huh? Intel started naming their processors for trade mark reasons but the Pentium was the 586. Intel then introduced the Pentium Pro 686 in the server-space, which architecture eventually made its way to the desktop space in the form of the Pentium III.
The next major architecture change came with the Pentium 4 and was called "Netburst" (apparently called P68 internally). This was the seventh generation.
Huh? How does that work since the Pentium 4 is really old? Truth be told, Netburst was a failure. When Intel switched to the "Core Duo" architecture it was actually a reversion to what we had in the Pentium III (and brought up-to-date). So we went back to 6th generation.
Intel then introduced the revolutionary "Nehalem" architecture which radically changed how the CPU works and consigned the Front-Side-Bus to history. When Nehalem was brought to production it was given the product name of Core i7 - representing the new seventh generation architecture. Then for marketing reasons their needed to be cheaper variants, so we get the randomly named i5 and i3. Later the Pentium brand also reappeared as a even lower-end budget option.
We've seen countless Core i7 processors released with Intel's tick-tock approach, but the new generations (Sandy Bridge, Haswell, Skylake) are still based on the same approach as Nehalem.
Will Intel introduce a new brand on the next major change? Probably, marketing people like that sort of thing.