Lo que hace poderoso a un CPU es el hecho de ser programable.

Ventajas del software
El software nos permite realizar algo que el hardware no podría, siguiendo el ejemplo, nuestra ALU no tiene la funcionalidad de dividir dos números, en cambio, el programa hecho nos da esta funcionalidad y luego otros programas pueden usar este para realizar cosas más elegantes.
Ejemplo cuenta con una ALU que manipular solo 4 bits, solo manipular 16 espacios de memoria, para solvertar esto los CPU usan dos estrategias, la más directa es tener instrucciones más grandes, con más bits, como 32 o 64 bits. Esto se conoce como el tamaño de la instrucción.
La segunda es usar instrucciones de tamaño variable. Por ejemplo imagina un CPU que solo usa códigos de operación de 8 bits, cuando el CPU ve una instrucción que no necesita valores extras, como la instrucción HALT, puede ejecutarse de forma inmediata. Sin embargo, si ve una instrucción JUMP, sabe que además debe agregar la dirección a la cual debe saltar, la cual guarda de manera inmediata en memoria, detrás de la instrucción JUMP. A esto se le conoce valor inmediato.
En ese diseño de procesador, las instrucciones pueden tener cualquier cantidad bytes de largo, lo que hace el ciclo de recuperación de un CPU un poco más complicado.