What qualities exactly does a processor posess that make it 32 bit or 64 bit? Clearly there are instructions that the processor can perform and these will typically take data words of a given length . . . so, say, a 32 bit processor will have an ADD instruction that takes two 32 bit data words and returns a 32 bit result.
But is there any reason that the same 32 bit processor can't do a 64 bit calculation? It might not have a 64 bit instruction to add two 64 bit words, but it's not a terribly complex bit of programming to invent a 64 bit variable, or to create a bit of code to add two of them together, 32 bits at a time. I guess this is an emulation approach - in operating system terms the difference between 32 and 64 bit Windows will be the instruction set it natively uses. . .
But am I right in thinking that there's no reason that a 32 bit processor can't do whatever calculations you like on 64 bit or higher values? For instance. . . when I work with 16 bit microcontrollers, multiplying two 16 bit words gives a 32 bit result in two memory locations, and I can use either the most or least significant half of the result, or both.
The real difference between a 32 bit and 64 bit processors and operating systems is therefore the data word size that the CPU can deal with effeciently - i.e. in a single instruction. There's no reason a 32 bit machine can't deal with values of size 64 bits, or higher. . . it just becomes more complicated and, more critically, far slower.
So when will we need 128-bit machines? I guess when 128 bit data words become important. Not sure what you'd need that level of precision for in general purpose computing. The other issues like memory address space seem far away too, but never say never. I think my holodeck will need lots of ram.