2.6 Instrucciones
Un conjunto de instrucciones o ISA (del inglés Instruction Set Architecture, Arquitectura del Conjunto de Instrucciones) es una especificación que detalla las instrucciones que una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseño particular de una CPU. El término describe los aspectos del procesador generalmente visibles a un programador, incluyendo los tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y las interrupciones, entre otros aspectos.
Cualquier conjunto de instrucciones se puede implementar de varias maneras. Todas las maneras de implementar un conjunto de instrucciones dan el mismo modelo programado, y todas pueden hacer funcionar los mismos ejecutables binarios. Las varias maneras de implementar un conjunto de instrucciones dan diversas compensaciones entre el coste, el funcionamiento, el consumo de energía, el tamaño, el etc.
Al diseñar microarquitecturas, los ingenieros usaron bloques de circuitos electrónicos “duramente-conectados” (diseñado a menudo por separado) por ejemplo l, los multiplexores, los contadores, los registros, ALUs etc. Un cierto tipo del lenguaje de transferencia de registros es a menudo usado para describir la codificación y la secuencia de cada instrucción de ISA usando esta microarquitectura física.
Hay también algunos nuevos diseños de CPU que compilan el conjunto de instrucción a una RAM escribible o FLASH dentro de la CPU (tal como el procesador Recursiv y el Imsys Cjip), o FPGA (computación reconfigurable). Western Digital MCP-1600 es un ejemplo antiguo, usando una ROM dedicada, separada del microcódigo.
ISA se puede también emular en software por un intérprete. Naturalmente, debido a la interpretación de “overhead”, es más lento que ejecutar programas directamente sobre el hardware emulado. Hoy, es práctica para los vendedores de nuevos ISAs o microarchitectures poner emuladores del software a disposición de los desarolladores de programas informáticos antes de que la implementación del hardware esté lista.
l