fbpx
Wikipedia

Microarquitectura

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.[1]​ Las implementaciones pueden variar debido a diferentes objetivos de diseño o debido a cambios en la tecnología.[2]​ La arquitectura de computadora es la combinación del conjunto de instrucciones y el diseño concreto de la microarquitectura.

Microarquitectura del Nehalem de Intel.

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:

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:

  1. Se lee una instrucción
  2. Se decodifica la instrucción
  3. Se encuentra cualquier dato asociado que sea necesario para procesar la instrucción
  4. Se procesa la instrucción
  5. 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:

Referencias

  1. Miles Murdocca and Vincent Heuring (2007). Computer Architecture and Organization, An Integrated Approach. Wiley. p. 151. 
  2. Michael J. Flynn (2007). Computer Architecture Pipelined and parallel Processor Design. Jones and Bartlett. pp. 1-3. 
  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

Véase también

Enlaces externos

  • Definición de Microarquitectura
  •   Datos: Q259864
  •   Multimedia: Microarchitectures

microarquitectura, ingeniería, computación, microarquitectura, veces, abreviada, como, µarch, uarch, también, llamada, como, organización, computadora, manera, arquitectura, conjunto, instrucciones, instruction, architecture, implementa, procesador, dada, pued. En ingenieria de computacion la microarquitectura a veces abreviada como µarch o uarch tambien llamada como organizacion 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 1 Las implementaciones pueden variar debido a diferentes objetivos de diseno o debido a cambios en la tecnologia 2 La arquitectura de computadora es la combinacion del conjunto de instrucciones y el diseno concreto de la microarquitectura Microarquitectura del Nehalem de Intel Indice 1 Relacion del conjunto de instrucciones con la arquitectura 2 Aspectos de la microarquitectura 3 Conceptos microarquitectonicos 4 Referencias 5 Lectura adicional 6 Vease tambien 7 Enlaces externosRelacion del conjunto de instrucciones con la arquitectura EditarEl conjunto de instrucciones ISA es mas o menos lo mismo que el modelo de programacion 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 ejecucion 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 como estas se interconectan e interoperan para implementar la ISA La microarquitectura de una maquina se presenta generalmente como diagramas mas o menos detallados que describen las interconexiones de los diferentes elementos microarquitectonicos de la maquina Estos elementos pueden ser desde simples puertas y registros hasta unidades aritmetico logicas completas asi como elementos mas 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 senales de control que a su vez manejan el funcionamiento del camino de datos 3 Cada elemento microarquitectonico es a su vez representado por un diagrama esquematico que describe las interconexiones de las puertas logicas usadas para implementarlo Cada puerta logica se representa por un diagrama de circuito describiendo las conexiones de los transistores usados para implementarla en alguna familia logica particular Esto hace que maquinas 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 asi como con avances en la fabricacion de semiconductores Lo que se consigue con esto es que una sola microarquitectura pueda ejecutar diferentes ISA haciendo cambios menores al microcodigo Una microarquitectura describe entre otros el nombre de las etapas del cauce segmentado y su tamano el numero y tipo de memorias cache la existencia de un renombre de registros de una unidad de ejecucion 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 EditarEl camino de datos segmentado pipelined datapath es el diseno mas comun de camino de datos en la microarquitectura de hoy Esta tecnica se usa en la mayoria de los microprocesadores microcontroladores y DSPs modernos La arquitectura segmentada permite solapar diferentes instrucciones durante la misma ejecucion siendo algo muy similar a la linea de montaje de una fabrica La segmentacion incluye varias etapas fundamentales en disenos de las microarquitecturas 3 como pueden ser la lectura de la instruccion fetch la descodificacion de la instruccion la ejecucion y la escritura write back de los resultados Algunas arquitecturas incluyen otras etapas tales como acceso a la memoria El diseno de los cauces segmentados es una de las tareas centrales de la microarquitectura Las unidades de ejecucion son tambien esenciales para la microarquitectura Estas unidades incluyen las unidades aritmetico logicas ALU las unidades de coma flotante FPU las unidades de la lectura escritura load store la prediccion de bifurcacion y SIMD Estas unidades realizan las operaciones o los calculos del procesador La seleccion del numero de unidades de ejecucion su latencia y rendimiento es otra de las tareas centrales del diseno microarquitectonico El tamano latencia el rendimiento y la conectividad de las memorias dentro del sistema son tambien decisiones de dicho diseno Las decisiones de diseno a nivel de sistema tales como incluir o no perifericos como controladores de memoria tambien pueden considerarse como partes del proceso de diseno microarquitectonico Esto incluye decisiones sobre el nivel de desempeno y la conectividad de dichos perifericos A diferencia del diseno arquitectonico donde lo que se pretende es lograr un nivel de desempeno optimo el diseno microarquitectonico presta una atencion mas cercana a otras necesidades Puesto que las decisiones de diseno microarquitectonico afectan directamente a lo que va dentro de un sistema se debe prestar atencion a cosas como Area coste del chip Consumo de energia Complejidad de la logica Facilidad de la conectividad Facilidad de fabricacion Facilidad de la depuracion Facilidad de hacer pruebasConceptos microarquitectonicos EditarTodas las CPU asi como las implementaciones de microprocesadores en un simple chip o multichips en general ejecutan los programas realizando los siguientes pasos Se lee una instruccion Se decodifica la instruccion Se encuentra cualquier dato asociado que sea necesario para procesar la instruccion Se procesa la instruccion Se escriben los resultadosEsta serie de pasos simple en apariencia se complican debido a la jerarquia de memoria en la que se incluye la memoria cache la memoria principal y el almacenamiento no volatil como pueden ser los discos duros donde se almacenan las instrucciones y los datos del programa que son mas lentos que el procesador en si mismo Con mucha frecuencia el paso 2 origina un retardo muy largo en terminos de ciclos de CPU mientras los datos llegan en el bus del computador De hecho se sigue investigando intensamente sobre la forma crear disenos que eviten estos retardos tanto cuanto sea posible Durante muchos anos una de las metas principales del diseno microinformatico ha sido la de ejecutar el mayor numero posible de instrucciones en paralelo aumentando asi la velocidad efectiva de ejecucion de un programa Al principio estos esfuerzos crearon estructuras logicas y de circuito bastante complejas De hecho en un principio estas tecnicas solo podian implementarse en costosos mainframes y supercomputadores debido a la cantidad de circuiteria necesaria para realizarlas No obstante estas tecnicas han podido implementarse en chips semiconductores cada vez mas pequenos a medida que la fabricacion de estos fue progresando y avanzando lo que ha abaratado notablemente su costo Algunas tecnicas microarquitectonicas comunes en los CPU modernos son Seleccion del conjunto de instrucciones Entubado de instrucciones Instruction pipelining Memoria cache Prediccion de bifurcacion Superescalar Ejecucion fuera de orden Renombrado de registros Multiprocesamiento y multihiloReferencias Editar 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 a b John L Hennessy and David A Patterson 2006 Computer Architecture A Quantitative Approach Forth Edition edicion Morgan Kaufmann Publishers Inc ISBN 0123704901 Lectura adicional EditarD 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 webpageVease tambien EditarArquitectura Harvard Arquitectura de von Neumann Arquitectura 60 bitsCPU Microprocesador Unidad de control Unidad aritmetico logica Unidad de punto flotante Bus Interface Unit Unidad de gestion de memoria Unidad de ejecucion Registro hardware Microcodigo Barrel shifterEnlaces externos EditarDefinicion de Microarquitectura Datos Q259864 Multimedia Microarchitectures Obtenido de https es wikipedia org w index php title Microarquitectura amp oldid 139120409, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos