Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Arquitecturas Segmentadas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Arquitecturas segmentadas

Las arquitecturas segmentadas o con segmentación del cauce buscan


mejorar el desempeño realizando paralelamente varias etapas del ciclo de
instrucción al mismo tiempo.

Detalles de Arquitectura Segmentadas


 Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o
ciclo de fetch-decode-execute en inglés) es el período que tarda la
unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje
máquina.
 Comprende una secuencia de acciones determinada que debe llevar a
cabo la CPU para ejecutar cada instrucción en un programa.
 Cada instrucción del juego de instrucciones de una CPU puede requerir
diferente número de ciclos de instrucción para su ejecución.
 Un ciclo de instrucción está formado por uno o más ciclos máquina.

¿Qué es la segmentación o pipelining?

La segmentación (pipelining) es una técnica de implementación por la


cual se solapa la ejecución de múltiples instrucciones. Hoy día, la
segmentación es la técnica de implementación clave utilizada para hacer CPU
rápidas.

La segmentación es como una línea de ensamblaje: cada etapa de la


segmentación completa una parte de la instrucción. Como en una línea de
ensamblaje de automóviles, el trabajo que va a realizar en una instrucción se
descompone en partes más pequeñas, cada una de las cuales necesita una
fracción del tiempo necesario para completar la instrucción completa. Cada uno
de estos pasos se define como etapa de la segmentación o segmento. Las
etapas están conectadas, cada una a la siguiente, para formar una especie de
cauce las instrucciones que entran por un extremo, son procesadas a través de
las etapas y salen por el otro extremo.

La productividad de la segmentación está determinada por la frecuencia


con que una instrucción salga del cauce. Como las etapas están conectadas
entre sí, todas las etapas deben estar listas para proceder al mismo tiempo. El
tiempo requerido para desplazar una instrucción, un paso, a lo largo del cauce
es un ciclo máquina. La duración de un ciclo máquina está determinada por el
tiempo que necesita la etapa más lenta (porque todas las etapas progresan a la
vez). Con frecuencia, el ciclo máquina es un ciclo de reloj (a veces dos, o
raramente más), aunque el reloj puede tener múltiples fases.

El objetivo del diseñador es equilibrar la duración de las etapas de la


segmentación. Si las etapas están perfectamente equilibradas, entonces el
tiempo por instrucción de la máquina segmentada -suponiendo
condiciones ideales es igual a:

UPE - Ingeniería en Informática -Arquitectura de Computadores II - 2021


Tiempo por instrucción en la máquina no segmentada
Número de etapas de la segmentación

Bajo estas condiciones, la mejora de velocidad debida a la segmentación


es igual al número de etapas. Sin embargo, habitualmente, las etapas no están
perfectamente equilibradas; además, la segmentación involucra algún gasto.
Así, el tiempo por instrucción en la máquina segmentada no tendrá su valor
mínimo posible, aunque pueda estar próximo (digamos en un 10 por 100).

La segmentación consigue una reducción en el tiempo de ejecución


medio por instrucción. Esta reducción se puede obtener decrementando la
duración del ciclo de reloj de la máquina segmentada o disminuyendo el
número de ciclos de reloj por instrucción, o haciendo ambas cosas.
Normalmente, el mayor impacto está en el número de ciclos de reloj por
instrucción, aunque el ciclo de reloj es, con frecuencia, más corto en una
máquina segmentada (especialmente en supercomputadores segmentados).
En las secciones de segmentación segmentada avanzada de este capítulo
veremos qué profundidad de segmentación se puede utilizar para decrementar
el ciclo de reloj y mantener un CPI bajo.

La segmentación es una técnica de implementación, que explota el


paralelismo entre las instrucciones de un flujo secuencial. Tiene la ventaja
sustancial que, de forma distinta a algunas técnicas de aumento de velocidad,
no es visible al programador.

Tipos de cauces:

 Unifunción: ejecutan un único proceso.


 Multifunción: pueden ejecutar varios procesos:
 Estáticos: en un instante determinado sólo pueden ejecutar uno.
 Dinámicos: pueden ejecutar simultáneamente varios procesos.
 Lineal: a cada etapa sólo le puede seguir otra etapa concreta.
 No lineal: se pueden establecer recorridos complejos de las etapas.

Segmentación de instrucciones

 Arquitectura DLX.
 Encauzamiento de instrucciones en el DLX.
 Parones:

1. por dependencia estructural,


2. por dependencia de datos,
3. por dependencia de control.

 Múltiples unidades funcionales.


 Ejemplo: el MIPS R4000.

UPE - Ingeniería en Informática -Arquitectura de Computadores II - 2021


Formato de instrucciones DLX
La arquitectura del conjunto de instrucciones DLX fue presentada por
primera vez en la obra “Computer Architecture: A Quantitative Approach” de
Jonh Hennessy y Dave Patterson. Según sus autores, DLX es el segundo
computador poliinsaturado del mundo. Se ha elegido la arquitectura del DLX
sobre la base de observaciones de las primitivas utilizadas con más frecuencia
en los programas. Las instrucciones más sofisticadas (y menos críticas en
cuanto a rapidez) son implementadas por software mediante la ejecución de
instrucciones múltiples.

El procesador DLX
 Direcciones de memoria de 32 bits
– Modelo de memoria “BIG-ENDIAN”
 Tamaño de las transferencias de datos
– Entre GPRs y memoria
• 8, 16 y 32 bits
– Entre FPRs y memoria
• 32 y 64 bits
 Datos e instrucciones alineados en memoria
– La dirección de memoria donde se ubica un dato ha de ser
múltiplo de su tamaño.

UPE - Ingeniería en Informática -Arquitectura de Computadores II - 2021


Ciclos de cada instrucción
Ejecución de instrucciones en 5 ciclos

Etapas del cause

Dónde:
 IF: Búsqueda de instrucción
o Búsqueda de una instrucción de la memoria de instrucciones
 ID: Búsqueda de registros y decodificación de instrucciones
 EXE: Ejecución o cálculo de dirección
 MEM: Acceso a la memoria de datos.
 WB: Escribir datos en el archivo de registros.

UPE - Ingeniería en Informática -Arquitectura de Computadores II - 2021


Ejecución instrucciones segmentadas

Lección sobre la segmentación

 La segmentación no ayuda en la realización de una única tarea, ayuda


en la realización de una carga de trabajo.
 Se pueden realizar múltiples tareas simultáneamente utilizando
diferentes recursos.
 La velocidad se incrementa si se aumenta el número de segmentos.
 La razón de segmentación está dada por el segmento más lento.
 El desbalance en el largo de los segmentos reduce la velocidad
(speedup)
 El tiempo en llenar y vaciar los segmentos reduce la velocidad.
 Almacén para las dependencias.
 Consiste en dedicar unidades específicas del procesador a cada una de
las partes del ciclo de instrucción y ejecutarlas paralelamente.
 Mejora dramáticamente el rendimiento debido a que en los procesadores
modernos tienen hasta 14 etapas en el ciclo de instrucción.
 La unidad de control se subdivide en dos o más unidades funcionales,
cada una encargada de llevar a cabo una parte del ciclo de instrucción.
 Se comunican a través de una cola de instrucciones (Pipeline).

UPE - Ingeniería en Informática -Arquitectura de Computadores II - 2021


¿Qué lo hace tan fácil?

 Todas las instrucciones son del mismo largo


 Pocos formatos de instrucciones
 Los operandos con memoria solo aparecen en las instrucciones de
carga y almacene.

¿Qué lo hace difícil?

 Riesgos: Hay situaciones en la segmentación cuando la siguiente


instrucción no se puede ejecutar en el próximo ciclo de reloj.
 Hay tres riesgos:

1. Riesgos estructurales
2. Riesgos de control
3. Riesgos de datos

Los riesgos en la segmentación pueden hacer necesario detenerla. La


diferencia principal entre detenciones en una máquina segmentada y en una
no segmentada se presenta porque hay múltiples instrucciones ejecutándose a
la vez. Una detención en una máquina segmentada requiere, con frecuencia,
que prosigan algunas instrucciones, mientras se retardan otras. Normalmente,
cuando una instrucción está detenida, todas las instrucciones posteriores a
esta instrucción también se detienen. Las instrucciones anteriores a la
instrucción detenida pueden continuar, pero no se buscan instrucciones nuevas
durante la detención.

Riesgos estructurales
El hardware no puede manejar la combinación de instrucciones que
deben ejecutarse en el mismo ciclo. (suponiendo que se cuenta con una única
memoria)
Ejemplo: IF y MEM no pueden ejecutarse en el mismo ciclo ya que
ambas necesitan accesar datos de la memoria.

UPE - Ingeniería en Informática -Arquitectura de Computadores II - 2021


Riesgo de control

 Los riesgos en el control ocurren porque el procesador no “sabe” lo


suficiente.

– Cuando se producen saltos condicionales


– Saltos incondicionales

Solución:

 Atascamiento (Stall): se puede retrasar la ejecución de la unidad de


salto después de que se conozca la información.

 Predicción (predict): se puede predecir esta información en forma


temprana.

 Retardar el salto.

Los riesgos de datos


Ocurren porque una instrucción depende del resultado de una
instrucción previa en el segmento.

NOTA: las instrucciones “add” o “sub” no escriben el resultado hasta el


estado WB. • Ejemplo:

Algunas veces se puede resolver (o reducir) atascamientos para los riesgos de


datos utilizando la técnica adelantamiento (forwarding)

Referencia bibliográfica sobre este tema de segmentación:


Libro Arquitectura de computadores
Un enfoque cuantitativo
John L. Hennessy (Universidad de Stanford)
David A. Patterson (Universidadde California en Berkeley)
Primera edición, capítulo 6, página 269

UPE - Ingeniería en Informática -Arquitectura de Computadores II - 2021

También podría gustarte