viernes, 16 de mayo de 2014

RENOMBRAMIENTO DE REGISTROS

Renombramientos de registros 

El renombrado de registros es una técnica de optimización utilizada para evitar las anti dependencias que pueden existir entre las instrucciones.  Es una técnica que, mediante hardware permite el renombramiento de los registros de forma dinámica. Dicho renombramiento se realiza en la fase de decodificación utilizando una tabla de asignación, en la cual se guarda el último renombramiento de un registro.
Cuando se requiera renombrar un registro se verifica si en el depósito de los registros físicos existe alguno disponible, si fuera así se lo toma. Por otro lado a medida que dichos registros ya no se requieran se los va liberando, y para ser posible esta liberación se realiza atraves de reglas como las que se muestran a continuación:

  • ·         El resultado de la operación que genera el renombramiento es escrito en el mismo.
  • ·         Todas las instrucciones que requerían de este valor ya realizaron la lectura.
  • ·         Finalmente el registro fue liberado.
Para poder llevar a cabo la verificación de estas reglas, la tabla de asignaciones lleva los siguientes campos:
·         Un contador para almacenar el número de instrucciones que esperan dicho valor. Este se incrementa cuando inicia una instrucción y se decrementa cundo lee el registro.
·         Verificación de escritura.- Se utiliza un bit para indicar si un resultado fue escrito o no.
·         Bit de verificación virtual.- Es un bit que indica si el registro está asignado a un registro virtual.
METODOS DE RENOMBRAMIENTO DE REGISTROS

  • ·         Archivo de renombramiento de registros independiente
  • ·         Renombramiento con ROB(reorder buffer)




APLICACIÓN EN LA ARQUITECTURA SUPERESCALAR

La aplicación de esta técnica en arquitecturas superescalares se basan en asignar o renombrar registros a las instrucciones que entren en conflicto por usar el mismo registro ya que al ser instrucciones que se ejecutan paralelamente se genera una dependencia si una de ellas utiliza el mismo registro. Esta técnica mejora la performance de la arquitectura.

BIBLIOGRAFIA

  • Duran L.(2006).Ampliar, configurar y reparar su PC. Ediciones marcombo. España-Barcelona.


 

viernes, 9 de mayo de 2014

CLASIFICACION DE FLYNN

CLASIFICACION DE FLYNN

La clasificacion de flynn es un tipo de clasificacion que se realiza segun la forma de procesar los datos paralelamente, que en este caso resulta  una clasificacion debido a la cantidad de datos e instrucciones que se manejan.
Esta es una de otros tipos de clasificaciones que fueron surgiendo gracias al crecimiento del procesamiento paralelo, comenzando desde el procesamiento en paralelo
atravez de multicomputadoras gracias a las redes de computadoras, hasta lo que hoy en dia se puede lograr en una sola computadora gracias a los sistemas multicore.


La clasificacion de flynn hace mencion a cuatro grupos:

  • SISD(Simples instrucciones, simples datos).
  • SIMD(Simples instrucciones, multiples datos).
  • MISD(Multiples instrucciones, multiples datos).
  • MIMD(Multiples instrucciones, multiples datos).
Las SISD tienen la caracteristica de procesar una instruccion por cada ciclo de reloj. Un ejemplo es el siguiente:
Las SIMD ejecutan una instruccion con multiples datos:

 Las MISD ejectan varias instrucciones con un solo dato:

Las MIMD ejecutan diferentes instrucciones con diferentes datos:
 
Sin embargo existieron muchas otras estructuras nuevas que no se ajustaban a la clasificacion realizada por flynn, y debido a esta aparicion de arquitecturas   Andrew T. realizo una clasificacion extendida de la siguiente forma:
Multiprocesadores:
  • COMA(Acceso solo a memoria cache).
  • NUMA(Acceso no uniforme a memoria).
  • UMA(Acceso uniforme a memoria).
La clasificacion de multicomputadoras es de la siguiente forma:
  • Grid
  • Cluster
  • MPP
Segun Martha A. (2006) la clasificacion se representa atravez del siguiente esquema:


El autor incluye una arquitectura "Grid" la cual hace mencion de convertirse en una arquitectura de mas impacto en el futuro. Tambien hace referencia a una arquitectura "Cluster" la cual explica que se trata de un sistema multicomputadora o el conjunto de dos o mas computadoras interconectadas por una red de baja latencia.

BIBLIOGRAFIA
  • Martha A.(2006).UJAT2006.Mexico-Tabasco. 

viernes, 2 de mayo de 2014

Procesamiento en serie vs procesamiento paralelo



Procesamiento en serie vs procesamiento paralelo


Para clasificar las arquitecturas podemos usar el término grado de paralelismo, con este término nos referiremos a la máxima cantidad de bits que puede procesar una arquitectura por unidad de tiempo.

De este modo encontramos 4 tipos de procesamiento:

·         Palabra en serie y bit en serie (WSBS): es el procesamiento más lento y existió en las primeras computadoras, este procesa un bit a la vez.

·         Palabra en paralelo y bit en serie (WPBS): Procesa una porción de bits a la vez.

·         Palabra en serie y bit en paralelo (WSBP): Usada en la arquitectura Von Neumann, esto procesa palabras de n bits a la vez.

·         Palabra en paralelo y bit en paralelo (WPBP): Es el más rápido, procesa por vez un arreglo.

Ancho de banda del subsistema

La estructura del bus tiene el problema de cuello de botella en la comunicación. Sin embargo este problema es permitido debido a los siguientes motivos:


·         Simplifica el concepto del diseño de la máquina y se adopta a la inclinación de hacer las cosas una a una.

·         Nos simplifica una sola conexión entre las distintas partes como se muestra en la siguiente imagen.



¿Qué es ancho de banda de subsistema?

En forma sintética se puede decir que es la cantidad de operaciones por unidad de tiempo. Por otro lado cuando se mide ancho de banda se debe tomar en cuenta:

·         En el caso de ancho de banda de la memoria se refiere a capacidad de información a transmitir por unidad de tiempo.
    En la siguiente tabla un ejemplo de memorias RAM DDR3:



·         En el caso de la CPU se refiere a la cantidad de instrucciones que procesa por unidad de tiempo.

·         En el caso de unidades externas el concepto varía un poco porque la tasa de transferencia varia de un sistema a otro. Por ejemplo en un disco el ancho de banda será la tasa de transferencia promedio (3Mb/s), en otro caso en impresoras y lectores este será más lento.

·         En el caso de los procesadores el ancho de banda podemos definirlo utilizando el término de megaflops(millones de instrucciones por segundo de punto flotante). Como también los MIPS(millones de instrucciones por segundo).


Sin embargo si quisiéramos sacar el ancho de banda útil se realiza sobre la cantidad de resultados por segundo.


Por tanto el ancho de banda de la memoria tiene que ser mayor ya que es utilizada por los diferentes dispositivos de entrada y salida como por la CPU. Por este hecho el ancho de banda se reparte entre todos los dispositivos, y para igualar la potencia entre los 3 subsistemas se utiliza los siguientes mecanismos:

·         Balance entre la entrada y salida y memoria.

·         Balance entre cpu.

Paralelismo con una sola CPU.


Es la capacidad de procesar datos concurrentes al mismo tiempo para aumentar la capacidad de computo con un solo procesador, y para realizar aquello se utiliza técnicas como pipeline o multiplicación de los componentes de hardware.

Características de componentes paralelos: Se pueden dividir en las siguientes configuraciones

·         Computadores Pipeline

·         Procesadores matriciales

·         Sistemas multiprocesadores

Los computadores que utilizan la técnica de pipeline realizan operaciones superpuestas. Por otro lado los procesadores matriciales usan varias ALU’S sincronizadas y los multiprocesadores son un conjunto de procesadores que comparten recursos o interactúan entre sí.

Una característica de la arquitectura pipeline es que permiten aumentar la carga de trabajo y reduce el costo de implementación.

El funcionamiento de la arquitectura pipeline podemos definirlo comparando con la forma de operar en una industria donde las tareas son divididas a varias unidades especializadas.
BIBLIOGRAFIA
  • Miguel A.Nuevas tendencias en la informática: Arquitecturas paralelas y programación declarativa.Ed. COMPOBELL.
  • Stephen W.(2009).Multicore processors and systems.Ed. Springer.USA.