ScholarGate
Asistente

Arquitectura del Conjunto de Instrucciones

La arquitectura del conjunto de instrucciones (ISA, por sus siglas en inglés) es la interfaz abstracta entre el hardware y el software: el conjunto de instrucciones, registros, tipos de datos, modos de direccionamiento y modelo de memoria que un procesador expone al programador y al compilador.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Una arquitectura de conjunto de instrucciones es el contrato que define las operaciones que un procesador puede ejecutar, los operandos y el almacenamiento sobre los que actúan, y la codificación binaria de los programas, de modo que cualquier implementación que cumpla el contrato ejecute el mismo código máquina.

Scope

Esta área cubre lo que hace una máquina desde el punto de vista del software, independientemente de cómo lo implemente el hardware. Incluye las clases de instrucciones (aritméticas, lógicas, de transferencia de datos, de control), los formatos y la codificación de las instrucciones, la organización de los registros, los modos de direccionamiento, el modelo de memoria y la endianness, las excepciones y la interfaz de llamadas al sistema, y las filosofías contrastantes RISC y CISC. Excluye la realización microarquitectónica de una ISA —tuberías (pipelines), cachés y motores fuera de orden— que se tratan en la microarquitectura del procesador.

Sub-topics

Core questions

  • ¿Qué operaciones, tipos de operandos y registros debe exponer una ISA para ser un objetivo de programación completo?
  • ¿Cómo se codifican las instrucciones en binario y cómo se equilibra la densidad del código con la simplicidad de decodificación?
  • ¿Cómo especifican los modos de direccionamiento dónde residen los operandos en los registros y la memoria?
  • ¿Qué distingue la filosofía RISC de instrucciones simples de formato fijo de la filosofía CISC de instrucciones ricas de longitud variable?
  • ¿Cómo se mantiene estable la ISA como contrato de compatibilidad mientras se extiende a lo largo de décadas?

Key concepts

  • formatos de instrucción y códigos de operación
  • archivo de registros de propósito general
  • modos de direccionamiento
  • arquitectura de carga-almacenamiento
  • RISC vs CISC
  • endianness y alineación
  • compatibilidad binaria
  • excepciones y llamadas al sistema
  • extensiones del conjunto de instrucciones

Key theories

Separación arquitectura/implementación
La ISA se separa deliberadamente de la microarquitectura para que el mismo conjunto de instrucciones pueda ser implementado por muchas organizaciones de hardware diferentes a lo largo de generaciones, preservando la compatibilidad binaria y permitiendo que el rendimiento mejore.
Principios de diseño RISC
El argumento del conjunto de instrucciones reducido sostiene que un pequeño conjunto de instrucciones simples, de longitud fija y de registro a registro puede ser segmentado (pipelined) eficientemente y compilado bien, a menudo superando a los conjuntos de instrucciones complejos a pesar de ejecutar más instrucciones.

Clinical relevance

La ISA es el activo de larga duración de una plataforma informática: x86, ARM y RISC-V anclan vastos ecosistemas de software, y las decisiones sobre el conjunto de instrucciones determinan qué compiladores, sistemas operativos y binarios pueden ejecutarse. Las ISA estables permiten que el hardware evolucione bajo un software inalterado, mientras que las ISA abiertas como RISC-V han reconfigurado el diseño y la educación de los procesadores.

History

Las primeras máquinas exponían conjuntos de instrucciones idiosincrásicos; el IBM System/360 (1964) fue pionero en la idea de una única ISA implementada en una familia de máquinas. La década de 1970 vio conjuntos de instrucciones cada vez más complejos (CISC), lo que provocó la reacción RISC de principios de la década de 1980 asociada con Patterson en Berkeley y Hennessy en Stanford. La ISA abierta RISC-V, iniciada en Berkeley alrededor de 2010, revivió el interés en el diseño de conjuntos de instrucciones limpios y extensibles.

Debates

RISC versus CISC
Si los conjuntos de instrucciones simples de formato fijo son inherentemente superiores a los complejos de longitud variable sigue siendo un debate; en la práctica, las implementaciones CISC modernas de alto rendimiento traducen las instrucciones complejas en microoperaciones tipo RISC internamente, difuminando la distinción original.

Key figures

  • David A. Patterson
  • John L. Hennessy
  • Gene Amdahl
  • Seymour Cray
  • Krste Asanović

Related topics

Seminal works

  • hennessy2019
  • patterson2020
  • patterson1980risc

Frequently asked questions

¿Cuál es la diferencia entre la arquitectura del conjunto de instrucciones y la microarquitectura?
La ISA es la interfaz visible —las instrucciones y los registros que utiliza un programa— mientras que la microarquitectura es la organización interna del hardware (tubería, cachés, unidades de ejecución) que implementa esa interfaz. Muchas microarquitecturas pueden implementar la misma ISA.
¿Por qué es tan importante la compatibilidad binaria?
Debido a que el software se compila para una ISA específica, mantener la ISA estable permite a los usuarios ejecutar programas existentes en nuevos procesadores sin recompilación, protegiendo enormes inversiones en software mientras el hardware mejora por debajo.

Methods for this concept

Related concepts