Arquitectura (lenguaje máquina)

Este es el nivel que separa el hardware del software. Los elementos básicos de entrada son las transferencias y transformaciones posibles de información en la ruta de datos de un computador. Con ellos se construyen las instrucciones máquina y su método de secuenciamiento, es decir, lo que se denomina un lenguaje máquina. Lo más significativo de este nivel es que con él comienzan los niveles propiamente simbólicos, es decir, niveles cuyos componentes básicos no son objetos físicos, sino símbolos relacionados por un lenguaje, el instrumento por excelencia del conocimiento simbólico.

El nivel de lenguaje máquina suele ser el primer nivel al que tiene acceso el usuario de un computador, salvo si la máquina es microprogramable, en cuyo caso dispone de un nivel intermedio que permite modificar el repertorio de instrucciones. Normalmente, el usuario no utiliza directamente el lenguaje máquina, sino una representación simbólica del mismo conocida como lenguaje ensamblador, que ofrece algunas prestaciones más que el puro lenguaje máquina, como el uso de macros y la definición simbólica de constantes y posiciones de memoria.

Este nivel queda definido por 1) el repertorio de instrucciones, con sus formatos, tipos de direccionamiento, modos de secuenciamiento y representación de datos, y 2) la memoria y el conjunto de registros visibles por el programador. En la actualidad cabe distinguir dos planteamientos diferentes a la hora de definir el nivel máquina de un computador.

Arquitectura (lenguaje máquina)

En primer lugar está el planteamiento CISC (Complex Instruction Set Computers) que define un repertorio de instrucciones bastante complejo y numeroso, con muchos tipos de direccionamiento y muchos modos de control, pretendiendo reducir la distancia semántica que lo separa de los lenguajes de alto nivel, y facilitar así el diseño del compilador. La microprogramación es la técnica de diseño de la unidad de control con la flexibilidad suficiente para facilitar la implementación de las máquinas CISC. Un caso extremo de proximidad al lenguaje de alto nivel lo tenemos en arquitecturas avanzadas que tienen este tipo de lenguaje como su lenguaje máquina.

En segundo lugar tenemos el planteamiento RISC ( Reduced Instruction Set Computer), que simplifica la complejidad y el número de instrucciones máquina, dejándolo reducido a un conjunto pequeño y rápido que cubre un porcentaje muy elevado del peso computacional de los programas. Los compiladores para este tipo de arquitecturas asumen la responsabilidad de utilizar eficientemente unas instrucciones con poco contenido semántico pero elevada velocidad de ejecución.

Dos aspectos importantes del nivel máquina son también la gestión de memoria y la entrada/salida. Sin embargo, en los computadores actuales estos recursos los utiliza el programa del usuario a través del sistema operativo.

Fuente: Estructura de Computadores, Facultad de Informática, UCM