Las usas a diario sin saberlo, pero ¿qué son las instrucciones de tu CPU

Las usas a diario sin saberlo, pero ¿qué son las instrucciones de tu CPU

Josep Roca

Ya hemos tratado la forma en la que las CPU ejecutan las instrucciones, lo que es denominado el ciclo de instrucción. Pero, ¿qué es una instrucción cuando hablamos de procesadores? Si lo desconocéis o el vocablo os lleva a confusiones, entonces no os preocupéis, una vez leáis este artículo al completo entenderéis sin problema lo que es la instrucción de un programa informático.

Las CPU de millones de ordenadores en todo el mundo solo saben hacer una cosa, ejecutar instrucciones de manera continua. Pero, ¿qué es una instrucción? Seguid leyendo para saberlo.

¿Qué es una instrucción?

Sistema binario

Una instrucción es la unidad mínima de un programa, la cual le indica a la CPU que ha de hacer a través de una serie de instrucciones que se ejecutan de manera secuencial. Cada instrucción son un número de bits en el código binario que se divide en tres partes distintas:

  • Bits de instrucción: estos bits indican que instrucción ejecutara la CPU y por tanto el camino que seguirá la instrucción para ejecutarse, también es llamado opcode.
  • Bits de direccionamiento: indican en que dirección de memoria se encuentran los datos en memoria.
  • Bits de modo: Los bits de modo indican como se ejecuta una instrucción, se utilizan cuando hay varias formas de ejecutar una instrucción o existen diferentes condicionantes.

Si queréis saber la forma en la que una CPU ejecuta las instrucciones os recomendamos el artículo «Así es como tu CPU ejecuta las instrucciones que le da el software» en HardZone, este mismo sitio web.

Direccionamiento de instrucciones

CPU RAM

Dependiendo de donde se encuentren los datos podemos tener diferentes variaciones de un mismo tipo de instrucción, a la forma en la que un procesador accede a los datos se les llama modo de direccionamiento.

  • El direccionamiento inmediato se utiliza cuando el dato se encuentra la misma instrucción, en este caso el dato se almacena en un registro o memoria interna del procesador para ejecutarse desde allí.
  • El segundo tipo de direccionamiento es el directo, donde el programa indica la dirección de la memoria en la que se encuentra el dato.
  • El tercer tipo de direccionamiento es el indirecto, el cual nos da la dirección donde se encuentra la dirección de memoria en la que se encuentra el dato.

Se ha de aclarar que algunas instrucciones carecen de modo de direccionamiento, ya que no requieren de un dato para poderse ejecutar.

Tipos de instrucción en una CPU

RISC-V_3

A continuación os hacemos un resumen de las instrucciones más comunes utilizadas por los diferentes procesadores. Estas instrucciones son comunes en todos los conjuntos de registros e instrucciones, independientemente si son x86, ARM, MIPS, PowerPC, etc. Así como tampoco tiene relación si el conjunto de instrucciones es RISC o CISC.

  • Las instrucciones de manipulación aritmética son las que realizan operaciones de manipulación matemática como suma, resta, multiplicación y división. Así como también de operaciones más complejas como pueden ser fórmulas trigonométricas, raíces cuadradas, potencias.
  • Las instrucciones lógicas son el segundo tipo de instrucciones ejecutadas por la ALU, en realidad son operaciones binarias que emulan el funcionamiento de las puertas lógicas. Es decir, AND, OR, XOR, NAND, NOR, XNOR y NOT.
  • Las instrucciones de manipulación de bits, se basan en manipular los bits de una cadena de idem con instrucciones como desplazar un bit a izquierda o derecha, invertir el orden o conmutarlos.
  • Las instrucciones de movimiento de datos encargan del movimiento de datos de una parte a otra de la memoria, de una memoria a otra, del procesador a la memoria y de la memoria al procesador.
  • Las instrucciones de control de programa son aquellas que se activan al darse ciertas condiciones, como por ejemplo
  • Las instrucciones de salto son las que indican que el programa no continua en la siguiente dirección de memoria, sino a una dirección de memoria en concreto que es marcada por la instrucción de salto.

Tipos de datos y multiplicidad de instrucciones

Procesadores

Debido a que una CPU a día de hoy puede tratar con diferentes tipos de datos, por ejemplo enteros y coma flotante. Algunas instrucciones aritméticas suelen estar duplicadas para el conjunto de instrucciones en coma flotante. También están las instrucciones vectoriales, como los sets de instrucciones AVX, o conocidas también como instrucciones SIMD, las cuales operan con varios operandos al mismo tiempo.

Dado que dichas instrucciones se ejecutan en unidades distintas estas acaban por necesitar bits de instrucción distintos, lo que se traduce en que el añadido de nuevos tipos de datos en un procesador supone en muchos casos aumentar considerablemente el conjunto de instrucciones, la complejidad de los mismos. así como la parte que las descodifica y ejecuta en una CPU.