Está en la página 1de 5

Microarquitectura

Ir a la navegaciónIr a la búsqueda

Microarquitectura del Nehalem de Intel.


En ingeniería de computación, la microarquitectura (a veces abreviada como µarch o
uarch), también llamada como organización de la computadora, es la manera en que
una arquitectura del conjunto de instrucciones (ISA, Instruction Set Architecture)
se implementa en un procesador. Una ISA dada puede ser implementada con diferentes
microarquitecturas.1Las implementaciones pueden variar debido a diferentes
objetivos de diseño o debido a cambios en la tecnología.2La arquitectura de
computadora es la combinación del conjunto de instrucciones y el diseño concreto de
la microarquitectura.

Índice
1 Relación del conjunto de instrucciones con la arquitectura
2 Aspectos de la microarquitectura
3 Conceptos microarquitectónicos
4 Referencias
5 Lectura adicional
6 Véase también
7 Enlaces externos
Relación del conjunto de instrucciones con la arquitectura
El conjunto de instrucciones (ISA) es más o menos lo mismo que el modelo de
programación de un procesador, en la manera que es visto por un programador de
lenguaje ensamblador o escritor de un compilador. La ISA incluye el modelo de
ejecución, los registros del procesador, los modos de direccionamiento y los
formatos de datos, entre otras cosas. La microarquitectura incluye las partes
constituyentes del procesador y cómo estas se interconectan e interoperan para
implementar la ISA.

La microarquitectura de una máquina se presenta generalmente como diagramas más o


menos detallados que describen las interconexiones de los diferentes elementos
microarquitectónicos de la máquina. Estos elementos pueden ser desde simples
puertas y registros, hasta unidades aritmético-lógicas completas así como elementos
más grandes. Estos diagramas suelen incluir dos rutas: el camino de datos
(datapath), que es la ruta que recorren las instrucciones, operandos y resultados;
y la trayectoria de control (control path), por donde viajan las señales de
control, que a su vez manejan el funcionamiento del camino de datos.3

Cada elemento microarquitectónico es, a su vez, representado por un diagrama


esquemático que describe las interconexiones de las puertas lógicas usadas para
implementarlo. Cada puerta lógica se representa por un diagrama de circuito
describiendo las conexiones de los transistores usados para implementarla en alguna
familia lógica particular. Esto hace que máquinas con diferentes microarquitecturas
puedan tener la misma arquitectura del conjunto de instrucciones, por lo que son
capaces de ejecutar los mismos programas. Se consigue seguir utilizando un mismo
ISA al tiempo que se alcanzan mayores rendimientos mediante nuevas
microarquitecturas y/o soluciones de circuitos, así como con avances en la
fabricación de semiconductores.

Lo que se consigue con esto es que una sola microarquitectura pueda ejecutar
diferentes ISA haciendo cambios menores al microcódigo.

Una microarquitectura describe, entre otros:

el nombre de las etapas del cauce segmentado y su tamaño,


el número y tipo de memorias caché,
la existencia de un renombre de registros,
de una unidad de ejecución desordenada,
de una unidad de predictor de saltos.
La microarquitectura y la arquitectura de conjunto de instrucciones conforman la
arquitectura de una computadora.

Aspectos de la microarquitectura
El camino de datos segmentado (pipelined datapath) es el diseño más común de camino
de datos en la microarquitectura de hoy. Esta técnica se usa en la mayoría de los
microprocesadores, microcontroladores, y DSPs modernos. La arquitectura segmentada
permite solapar diferentes instrucciones durante la misma ejecución, siendo algo
muy similar a la línea de montaje de una fábrica. La segmentación incluye varias
etapas fundamentales en diseños de las microarquitecturas,3 como pueden ser la
lectura de la instrucción (fetch), la descodificación de la instrucción, la
ejecución y la escritura (write back) de los resultados. Algunas arquitecturas
incluyen otras etapas tales como acceso a la memoria. El diseño de los cauces
segmentados es una de las tareas centrales de la microarquitectura.

Las unidades de ejecución son también esenciales para la microarquitectura. Estas


unidades incluyen las unidades aritmético lógicas (ALU), las unidades de coma
flotante (FPU), las unidades de la lectura/escritura (load/store), la predicción de
bifurcación, y SIMD. Estas unidades realizan las operaciones o los cálculos del
procesador. La selección del número de unidades de ejecución, su latencia y
rendimiento es otra de las tareas centrales del diseño microarquitectónico. El
tamaño, latencia, el rendimiento y la conectividad de las memorias dentro del
sistema son también decisiones de dicho diseño.

Las decisiones de diseño a nivel de sistema tales como incluir o no periféricos


como controladores de memoria también pueden considerarse como partes del proceso
de diseño microarquitectónico. Esto incluye decisiones sobre el nivel de desempeño
y la conectividad de dichos periféricos.

A diferencia del diseño arquitectónico, donde lo que se pretende es lograr un nivel


de desempeño óptimo, el diseño microarquitectónico presta una atención más cercana
a otras necesidades. Puesto que las decisiones de diseño microarquitectónico
afectan directamente a lo que va dentro de un sistema, se debe prestar atención a
cosas como:

Área/coste del chip


Consumo de energía
Complejidad de la lógica
Facilidad de la conectividad
Facilidad de fabricación
Facilidad de la depuración
Facilidad de hacer pruebas
Conceptos microarquitectónicos
Todas las CPU, así como las implementaciones de microprocesadores en un simple chip
o multichips en general, ejecutan los programas realizando los siguientes pasos:

Se lee una instrucción


Se decodifica la instrucción
Se encuentra cualquier dato asociado que sea necesario para procesar la instrucción
Se procesa la instrucción
Se escriben los resultados
Esta serie de pasos, simple en apariencia, se complican debido a la jerarquía de
memoria, en la que se incluye la memoria caché, la memoria principal y el
almacenamiento no volátil como pueden ser los discos duros, (donde se almacenan las
instrucciones y los datos del programa), que son más lentos que el procesador en sí
mismo. Con mucha frecuencia, el paso (2) origina un retardo muy largo (en términos
de ciclos de CPU) mientras los datos llegan en el bus del computador. De hecho, se
sigue investigando intensamente sobre la forma crear diseños que eviten estos
retardos tanto cuanto sea posible. Durante muchos años, una de las metas
principales del diseño microinformático ha sido la de ejecutar el mayor número
posible de instrucciones en paralelo, aumentando así la velocidad efectiva de
ejecución de un programa. Al principio, estos esfuerzos crearon estructuras lógicas
y de circuito bastante complejas. De hecho, en un principio estas técnicas solo
podían implementarse en costosos mainframes y supercomputadores debido a la
cantidad de circuitería necesaria para realizarlas. No obstante, estas técnicas han
podido implementarse en chips semiconductores cada vez más pequeños a medida que la
fabricación de estos fue progresando y avanzando, lo que ha abaratado notablemente
su costo.

Algunas técnicas microarquitectónicas comunes en los CPU modernos son:

Selección del conjunto de instrucciones


Entubado de instrucciones (Instruction pipelining)
Memoria caché
Predicción de bifurcación
Superescalar
Ejecución fuera de orden
Renombrado de registros
Multiprocesamiento y multihilo
Referencias
Miles Murdocca and Vincent Heuring (2007). Computer Architecture and Organization,
An Integrated Approach. Wiley. p. 151.
Michael J. Flynn (2007). Computer Architecture Pipelined and parallel Processor
Design. Jones and Bartlett. pp. 1-3.
John L. Hennessy and David A. Patterson (2006). Computer Architecture: A
Quantitative Approach (Forth Edition edición). Morgan Kaufmann Publishers, Inc.
ISBN 0123704901.
Lectura adicional
D. Patterson and J. Hennessy (2 de agosto de 2004). Computer Organization and
Design: The Hardware/Software Interface. Morgan Kaufmann Publishers, Inc. ISBN
1558606041.
V. C. Hamacher, Z. G. Vrasenic, and S. G. Zaky (2 de agosto de 2001). Computer
Organization. McGraw-Hill. ISBN 0072320869.
William Stallings (15 de julio de 2002). Computer Organization and Architecture.
Prentice Hall. ISBN 0130351199.
J. P. Hayes (3 de septiembre de 2002). Computer Architecture and Organization.
McGraw-Hill. ISBN 0072861983.
Gary Michael Schneider (1985). The Principles of Computer Organization. Wiley. pp.
6–7. ISBN 0471885525.
M. Morris Mano (19 de octubre de 1992). Computer System Architecture. Prentice
Hall. p. 3. ISBN 0131755633.
Mostafa Abd-El-Barr and Hesham El-Rewini (3 de diciembre de 2004). Fundamentals of
Computer Organization and Architecture. Wiley-Interscience. p. 1. ISBN 0471467413.
IEEE Computer Society
PC Processor Microarchitecture
Computer Architecture: A Minimalist Perspective - book webpage
Véase también
Arquitectura Harvard
Arquitectura de von Neumann
Arquitectura 60 bits
CPU
Microprocesador
Unidad de control
Unidad aritmético lógica
Unidad de punto flotante
Bus Interface Unit
Unidad de gestión de memoria
Unidad de ejecución
Registro (hardware)
Microcódigo
Barrel shifter
Enlaces externos
Definición de Microarquitectura
Control de autoridades
Proyectos WikimediaWd Datos: Q259864Commonscat Multimedia: Microarchitectures /
Q259864
Categoría: Microprocesadores
Menú de navegación
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
ArtículoDiscusión
LeerEditarVer historial
Buscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Citar esta página
Elemento de Wikidata
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir
En otros proyectos
Wikimedia Commons

En otros idiomas
‫العربية‬
Deutsch
English
Français
日本語
Bahasa Melayu
Português
Русский
中文
20 más
Editar enlaces
Esta página se editó por última vez el 12 may 2022 a las 08:11.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.

También podría gustarte