La Arquitectura del Conjunto de Instrucciones (ISA) es el modelo abstracto de una computadora que define cómo el software controla el hardware. Específicamente, una ISA especifica el conjunto de instrucciones (operaciones básicas como sumar, cargar, almacenar), los modos de direccionamiento (cómo se accede a los operandos), los registros visibles para el programador, el formato de los datos y el modelo de memoria. Actúa como un contrato entre el compilador (que genera código máquina) y el microprocesador (que ejecuta ese código), permitiendo que diferentes implementaciones de hardware ejecuten el mismo software siempre que cumplan con la misma ISA. Las ISAs pueden ser de tipo CISC (Complex Instruction Set Computer) o RISC (Reduced Instruction Set Computer), con filosofías de diseño fundamentalmente distintas.
En el mundo real, las ISAs más prevalentes incluyen x86-64 (también conocido como AMD64), dominante en PCs y servidores, implementado por CPUs de Intel (ej. Xeon, Core i7) y AMD (ej. EPYC, Ryzen). ARM (Advanced RISC Machine) es otra ISA ubicua, especialmente en dispositivos móviles (smartphones, tablets con procesadores como Apple A-series, Qualcomm Snapdragon), sistemas embebidos, y ganando tracción en servidores (ej. AWS Graviton) y PCs (ej. Apple M1/M2). RISC-V es una ISA de código abierto y libre de royalties que está emergiendo como una alternativa flexible para una amplia gama de aplicaciones, desde microcontroladores hasta CPUs de alto rendimiento, con implementaciones como SiFive y chips personalizados.
Para un Arquitecto de Sistemas, la elección o consideración de una ISA es fundamental debido a sus implicaciones en rendimiento, consumo energético, coste, compatibilidad de software y longevidad del sistema. Una ISA RISC como ARM o RISC-V puede ofrecer mayor eficiencia energética y un diseño de hardware más simple, ideal para sistemas embebidos o con restricciones de potencia. Por otro lado, x86-64 ofrece una vasta base de software y herramientas, y un rendimiento bruto superior en cargas de trabajo específicas, a menudo a expensas de un mayor consumo. Entender la ISA permite evaluar los trade-offs entre la complejidad del hardware, la eficiencia de la ejecución de instrucciones, la facilidad de desarrollo de compiladores y sistemas operativos, y la portabilidad del software. La elección de la ISA impacta directamente en la estrategia de migración, el ecosistema de software disponible y la capacidad de escalar o optimizar soluciones a nivel de hardware.