QUE SON?
Un conjunto de instrucciones, repertorio de
instrucciones, juego 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 unidad central de procesamiento 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 para
un programador, incluyendo los tipos de datos nativos, las instrucciones, los
registros, la arquitectura de memoria y las interrupciones, entre otros
aspectos.
Existen principalmente tres tipos: CISC (Complex
Instruction Set Computer), RISC (Reduced Instruction Set Computer)
y SISC (Simple Instruction Set Computing).
QUE ES EL ISA Y QUE HACE?
La arquitectura del conjunto de instrucciones (ISA) se emplea a
veces para distinguir este conjunto de características de la micro
arquitectura, que son los elementos y técnicas que se emplean para implementar
el conjunto de instrucciones. Entre estos elementos se encuentran las
microinstrucciones y los sistemas de caché.
Procesadores con diferentes diseños internos pueden compartir un
conjunto de instrucciones; por ejemplo, el Intel Pentium y AMD Athlon implementan
versiones casi idénticas del conjunto de instrucciones x86, aunque tienen
diseños diferentes.
DISEÑO
En computadoras antiguas, la memoria del
programa era costosa, así que minimizar el tamaño de un programa para asegurar
que va a caber en la memoria limitada era a menudo central. Así el tamaño
combinado de todas las instrucciones necesitó realizar una tarea particular, la
densidad del código, era una característica importante de cualquier sistema de
instrucción. Las computadoras con alta densidad del código también tenían a
menudo instrucciones complejas para la entrada del procedimiento, los retornos
parametrizados, los lazos, etc. Sin embargo, "instrucciones CISC"
combinan simplemente una operación básica de la ALU, tal como "add",
con el acceso de uno o más operandos en memoria (usando modos de dirección
tales como directo, indirecto, indexado). Ciertas arquitecturas pueden permitir
dos o tres operandos (incluido el resultado) directamente en memoria o pueden
permitir realizar funciones tales como el incremento automático del puntero.
TIPOS DE INSTRUCCIONES
·
Transferencia de datos
- registro a registro.
- registro a memoria.
- memoria a registro.
- memoria a memoria.
Instrucciones aritméticas
Son efectuadas por la ALU y suelen cambiar los flags o
indicadores de condición.
Instrucciones de comparación
Suelen preceder a una instrucción de bifurcación condicional y
modifican los flags. No hay que pensar que las instrucciones de
salto condicional dependen de este repertorio, ya que lo único que hace el
salto condicional es consultar los flags y salta si precede,
pero no depende de ninguna instrucción de comparación. (De hecho cualquier
operación aritmética realizada anteriormente a un salto condicional puede
provocar que este "salte").
Instrucciones lógicas
Realizan operaciones booleanas "bit a bit" entre dos
operandos. Como las aritméticas también modifican los flags.
Instrucciones lógicas
Realizan operaciones booleanas "bit a bit" entre dos
operandos. Como las aritméticas también modifican los flags.
Instrucciones de desplazamiento
Pueden ser aritmético o lógico y pueden incluir o no rotaciones.
Pueden ser de izquierda a derecha.
Instrucciones de bits
Comprueban un bit del operando y su valor lo reflejan en el
indicador de cero. Pueden poner un bit a 0 o complementarlo.
Instrucciones de control
Permiten modificar la secuencia normal de ejecución de un
programa, puede hacerse por salto condicional relativo o absoluto.
Se clasifican en cuatro grupos:
Instrucciones de entrada y salida
Son instrucciones de transferencia salvo que el origen/destino
de dicho flujo es un puerto de un dispositivo de entrada y salida. Estas
instrucciones pueden darse mediante dos alternativas: