Está en la página 1de 11

Universidad Nacional de San Antonio Abad del Cusco

Escuela Profesional de Ingeniería Eléctrica, Electrónica,


Informática y Mecánica
Carrera Profesional de Ingeniería Informática y de Sistemas

Asignatura : Microprocesadores
Tema : Procesadores Segmentados
Alumno : Ancco Peralta Rubén
Código : 120879

Cusco – Perú
2020
Procesadores Segmentados

1.- Definición

La segmentación (pipelining) es una técnica empleada en el diseño de


procesadores que trata de explotar el paralelismo intrínseco que existe entre las
instrucciones de un flujo secuencial. Los segmentos están conectados cada uno
con el siguiente, de forma que la salida de uno pasa a ser la entrada
del siguiente. A los procesadores segmentados también se
les denomina procesadores encauzados.

Lo característico de la segmentación es que las diferentes subtareas pueden


procesarse de forma simultánea, aunque sea sobre diferentes datos, siendo el
factor clave la posibilidad de comenzar una nueva tarea sin necesidad de que la
anterior se haya terminado. La medida de la eficacia de un procesador
segmentado es el tiempo máximo que pasa entre la
finalización de dos tareas consecutivas.

Para que el tiempo de latencia del procesador segmentado sea el mínimo


posible, es necesario que el procesador esté equilibrado, es decir, que todas las
subtareas en que se haya dividido la tarea total tarde en procesarse el mismo
tiempo.
Arquitectura segmentada genérica

La arquitectura segmentada genérica que se presenta en esta sección (ASG)


utiliza tipo de registros de propósito general donde los operandos se referencian
explícitamente. Las instrucciones aritmético-lógicas de la ASG utilizan en total
tres operandos y ninguno
de ellos se referencia en memoria. A las máquinas en las que los operandos no
se referencian en memoria se les denomina máquinas registro-registro o
máquinas de carga/almacenamiento.

En la ASG el modo de direccionamiento es con desplazamiento, la Dirección


Efectiva se calcula sumando al contenido de un registro el operando OP
declarado en la instrucción, que se interpreta como un desplazamiento respecto

al contenido del registro.

Repertorio de instrucciones de la ASG

La ASG tiene un total de 32 registros genéricos de 32 bits identificados como


Rl0, Rl , R2, .. . , R31. Cada registro puede contener un valor entero con la única
excepción del registro R0 que siempre contiene el valor cero. Además, hay un
conjunto de registros de coma flotante que se pueden utilizar como 32 registros
de simple precisión (32 bits) o como parejas par-impar que contienen valores de
doble precisión (64 bits). Los registros de coma flotante de 64 bits se identifican
como F0 , F2 , F4, … , F28, F30 .

La longitud de todas las instrucciones de la ASG es de 32 bits.


Implementación de la segmentación de instrucciones en la ASG

En el diseño de un procesador segmentado, el cálculo a segmentar es el trabajo


que es necesario realizar en cada ciclo de instrucción, que es el número de ciclos
de reloj que consume su procesamiento.
En la ASG un ciclo de una instrucción se descompone en cinco etapas básicas:

• IF (lllstruction Fetch): Lectura de la instrucción de la caché de instrucciones.


• ID (lnstruction Decoding): Decodificación de la instrucción y lectura de sus
operandos del fichero de registros.
• EX (Execution): Ejecución de las operaciones si se trata de una instrucción
aritmético-lógica y del cálculo de la condición y de la dirección de salto si se
trata de una bifurcación o salto condicional.
• MEM (Memoly access): Acceso a la caché de datos para lecturas (cargas) o
escrituras (almacenamientos).
• WB (Write): Escritura del resultado de la instrucción en memoria.
El tiempo total de ejecución de la instrucción segmentada es
ligeramente superior al de su equivalente no segmentada debido al tiempo que
se consume en el control de la
segmentación. Este tiempo viene determinado por varios factores:

• Los cerrojos o buffers de contención que hay que colocar en el camino de


datos del procesador con el objeto de aislar la información entre etapas.
• La duración de todas las etapas de la segmentación es similar y viene
determinada por la duración de la etapa más lenta.
• Los riesgos que se producen en la segmentación y que introducen
detenciones en el cauce.

Ventajas de la segmentación

• No reduce el tiempo de ejecución de una instrucción individual (algo superior


debido a

• Cerrojo o buffers de contención para aislar la información entre etapas.


• La duración de todas las etapas es similar y viene determinada por la
duración de la etapa más lenta
• Los riesgos que se producen en la segmentación (siguiente apartado)
Riesgos en la segmentación

• Se denomina riesgo a la dependencia entre instrucciones que provoca que


la instrucción que sucede a aquella con la cual posee dependencias no pueda
ejecutarse en el ciclo de reloj que le corresponde ya que ha de esperar algún
resultado para poder efectuar su ejecución.

• Existen:

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

1. Riesgos estructurales

Conflictos en los recursos; una instrucción en una etapa no puede avanzar


a la siguiente porque el hardware que necesita lo está usando otra.

Ejemplo: máquina con un único puerto de memoria (no dispone de dos


memorias caché).
SOLUCIÓN: Una detención no resuelve el problema globalmente (con
estas instrucciones sí).

ASG dispone de dos cachés


(datos + instrucciones)
No todas las etapas tienen la misma duración

I1: ADD R3, R6, R7


I2: MULT R4, R1, R2
I3: MULT R5, R8, R9
I4: SD 7(R11), R10

2. Riesgos por dependencias de datos (dos instrucciones comparten algún


dato)

• RAW - Read After Write (dependencia verdadera)

• Una dependencia RAW hace referencia a una situación donde se necesita un


dato que aún no ha sido calculado, por ejemplo:

• ADD R1, R2, R3


SUB R4, R1, R5
• WAR - Write After Read (antidependencia o dependencia falsa)

• Una dependencia WAR representa un problema de ejecución


concurrente, por ejemplo:
• ADD R1, R2, R3
SUB R2, R4, R5

• Es necesario asegurarse de que no se almacenará el resultado en el registro


R2 antes de que la instrucción 1 haya podido leer sus operandos.

• WAW - Write After Write


• Una dependencia WAW es otra de las posibles situaciones problemáticas en
un entorno de ejecución concurrente, por ejemplo:

• ADD R1, R2, R3


SUB R1, R4, R5

• Debe retrasarse la escritura (etapa WB) de la instrucción 2 hasta que la


instrucción 1 haya finalizado.

• RAR (Read After Read) no es un riesgo.


• La ASG solo tiene riesgos de tipo
– RAW->SOLUCIONES
• REORGANIZACIÓN DEL CÓDIGO.
• INTERBLOQUEO ENTRE ETAPAS
• ADELANTAMIENTO
• WAR no se presenta pues lecturas de registro en ID es anterior a escrituras
de registro en WB.
• WAW no se produce pues solo se escribe en una etapa WB.

También podría gustarte