Está en la página 1de 30

FACULTAD DE INGENiERIA

ESCUELA SISTEMAS

Sede : Valle Jequetepeque


Docente: Ing. Arellano Salazar, Cesar
Integrantes:

DOCENTE:
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

CONTENIDO

INTRODUCCION ................................................................................................................ 2
PROCESAMIENTO PARALELO ..................................................................................... 3
SEGMENTACION ............................................................................................................... 6
PROCESAMIENTO SEGMENTADO .............................................................................. 7
REQUISITOS PARA UN PROCESAMIENTO SEGMENTADO .................................. 9
RENDIMIENTO DEL PROCESAMIENTO SEGMENTADO ..................................... 10
Las detenciones del cauce ............................................................................................... 11
Desequilibrio de entre segmentos .................................................................................. 11
CLASIFICACIÓN DE LOS PROCESADORES SEGMENTADOS ............................ 12
Segmentación aritmética ................................................................................................ 12
Segmentación de instrucciones ...................................................................................... 14
Segmentación de procesadores ...................................................................................... 15
CONFLICTOS EN EL PROCESAMIENTO SEGMENTADO .................................... 16
Conflictos Estructurales ................................................................................................. 16
RAW - READ AFTER WRITE (LECTURA DESPUÉS DE ESCRITURA) ........ 18
WAR - WRITE AFTER READ (ESCRITURA DESPUÉS DE LECTURA) ........ 18
WAW - WRITE AFTER WRITE ............................................................................. 19
Conflicto De Control ....................................................................................................... 19
PROCESADORES CISC Y RISC .................................................................................... 21
LA ARQUITECTURA CISC (Complex Instruction Set Computer). ....................... 22
LA ARQUITECTURA RISC (RISC = Reduced Instruction Set Computer). .................. 24
PROCESADOR VECTORIAL ......................................................................................... 26
Tipos De Arquitectura Vectorial ................................................................................... 27
Rendimiento De Los Procesadores Vectoriales ............................................................ 29
Problemas De Los Procesadores Vectoriales ................................................................ 29

P á g i n a 1 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

INTRODUCCION

En la actualidad, hay una gran demanda de computadores rápidos para muchos campos de
aplicación de tipo científico, técnico, médico, etc. Para muchas de estas áreas de aplicación,
se necesita un gran volumen de cálculo. Sin el empleo de computadores muy potentes,
muchos de los cálculos precisos para este tipo de aplicaciones no podrían realizarse a una
velocidad razonable. Por otra parte, las tendencias actuales de la ciencia y la técnica siguen
planteando problemas que exigen cada vez más y más potencia de cálculo.

Es conocido que la velocidad de los computadores ha ido aumentando con el tiempo según
las evoluciones de la Tecnología. En cualquier caso, existen límites físicos para el aumento
indefinido de la velocidad de las máquinas. Estas limitaciones provocan que se busquen
nuevas alternativas para aumentar las prestaciones de las máquinas. Una de las alternativas
que resulta más evidente es poner a trabajar varios elementos de proceso simultáneamente,
dicho de otra forma, tratar de desarrollar el paralelismo; así el trabajo se repartirá y se tardará
menos tiempo en completar el proceso de cálculo.

Los procesadores segmentados sirven para mejorar el rendimiento sin necesidad de duplicar
excesivamente el hardware. Se usaron por primera vez en los años 60 para los grandes
sistemas(mainframes) de altas presentaciones, y fueron muy importantes en los años 80 para
el enfoqué RISC1del diseño de computadores (la mayoría de técnicas RISC se relacionan
con el objetivo de conseguir una buena segmentación).
El Intel i486 fue la primera implementación segmentada de la arquitecturaIA32.La
segmentación se utiliza mucho actualmente para el desarrollo de juegos de instrucciones del
procesador.
La segmentación se utiliza mucho actualmente para el desarrollo de juegos de instrucciones
del procesador
Actualmente, la tendencia es lograr segmentaciones más profundas para obtener frecuencias
de reloj muy altas. Es un método muy eficaz para obtener un mayor rendimiento.

P á g i n a 2 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

PROCESAMIENTO PARALELO
Paralelismo: Ejecución simultánea (en el mismo instante de tiempo) sobre diferentes
componentes físicos (procesadores). El paralelismo es un concepto asociado con la existencia
de múltiples procesadores ejecutando un algoritmo en forma coordinada y cooperante. Al
mismo tiempo se requiere que el algoritmo admita una descomposición en múltiples procesos
ejecutables en diferentes procesadores (concurrencia).

Objetivos del Procesamiento Paralelo:


• Disminuir los tiempos de ejecución.
• Incrementar la eficiencia.
• Atender fenómenos del mundo real que suceden en paralelo.

Proceso y Procesador: Un proceso es un bloque de programa secuencial, con su propio


seguimiento de control. El concepto de proceso es el concepto básico e inicial de la
programación concurrente: si en el sistema existen procesos independientes, existe la
concurrencia. Cada proceso puede residir en un procesador independiente o dedicado.
También se pueden tener múltiples procesos sobre el mismo procesador. Se debe notar que
en este último caso se tiene concurrencia, pero no paralelismo, o simultaneidad de ejecución.

Interacción, Comunicación y Sincronización de procesos: N procesos que residen en un


procesador o en varios procesadores interactúan para ejecutar los aspectos del algoritmo
global que requieran cooperación.

La interacción requiere comunicación para el intercambio de datos entre los procesos. La


comunicación entre dos procesos puede ser por memoria compartida, a través de un mensaje
explícito entre los procesos, o de un mensaje implícito por medio de un proceso servidor
intermedio.

Cuando dos procesos necesitan ajustar el orden de ejecución de sus secuencias de


instrucciones al estado de la ejecución del otro, se deben sincronizar.

El Procesamiento en paralelo consiste en emplear un grupo de técnicas utilizadas para


proporcionar tareas simultáneamente de procesamiento de datos. Esto con la finalidad de
aumentar la velocidad computacional de un sistema de computadoras. Ofrece una gran
ventaja en cuanto a costos. Sin embargo, su principal beneficio, la estabilidad puede ser
difícil de alcanzar aun permitiendo ejecutar procesos en donde cada procesador se encarga
de uno u otro y aceleran de esta forma el cálculo.

P á g i n a 3 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Se basa en un procesamiento recurrente de datos para conseguir un menor tiempo de


ejecución. Implica:
 Sucesos Paralelos: Ocurren en múltiples recursos durante el mismo intervalo de
tiempo.
 Sucesos Simultáneos: Ocurren en el mismo instante.
 Sucesos Pipeline: Ocurren en lapsos superpuestos.

Permite sobrellevar algunas dificultades, particularmente en lo que respecta a la velocidad de


procesamiento; siempre que la arquitectura del computador sea la correcta. Lo cual mejoran:
La velocidad de procesamiento y E/S, mediante la utilización de CPU y discos en paralelos.
El Tiempo de respuesta, así como la productividad realizando en paralelo las distintas
subtareas de cada transacción. Logrando así, muchas operaciones simultáneamente.

CUENTA CON LOS DISEÑOS:


 Multiprocesamientos simétricos/ SMP: Diseño simple pero aun así efectivo. Los
procesadores comparten Memoria RAM y BUS del Sistema, esto permite que se
distribuya las tareas entre varios procesadores y que una aplicación obtenga la
memoria que necesita para una simulación compleja. Esto genera un problema:
Genera tráfico en el bus de memoria por lo que se satura, debido a esto SMP no es
escalable.

 Procesamiento masivamente paralelo/MPP: Para evitar los cuellos de botella en el


bus de memoria, MPP no utiliza memoria compartida. Usa tecnología altamente
escalable. La Memoria RAM es distribuida entre los procesadores. Este Sistema es
escalable, porque permite reducir el tráfico en el bus del sistema.

• Desventajas:
• Difícil de programar,
• La sincronización de datos entre tareas es difícil,
• requiere estar al tanto de la organización de la memoria.

 Procesamiento paralelo escalable / SPP: Hibrido de SMP y MPP, que utiliza una
memoria jerárquica de dos niveles para alcanzar la escalabilidad, esto permite reducir
el tráfico de bus del sistema. Aprovecha las ventajas de MPP y SMP (facilitar la
programación).

NIVELES DE PARALELISMO:

1. Paralelismo Temporal (Segmentación) Descomponer las operaciones que realizan


las unidades de control y aritmético- lógica.

P á g i n a 4 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

2. Paralelismo Especial O Replicación Varios procesadores operan sobre diferentes


datos. Cada uno de estos procesadores puede tener su propia unidad de control.

3. Paralelismo Funcional La ejecución de diferentes funciones (lógicas, adición,


multiplicación) es realizada en un mismo procesador, simultáneamente por varias
unidades especiales.

P á g i n a 5 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

SEGMENTACION

La segmentación es una técnica de gestión de memoria que pretende acercarse más al punto
de vista del usuario. Los programas se desarrollan, generalmente, en torno a un núcleo central
(principal) desde el que se bifurca a otras partes (rutinas) o se accede a zonas de datos (tablas,
pilas, etc.).
La segmentación (pipelining) es una técnica de implementación de procesadores que
desarrolla el paralelismo a nivel intra-instrucción. Mediante la segmentación se puede
solapar la ejecución de múltiples instrucciones. El procesamiento segmentado aprovecha la
misma filosofía de trabajo de la fabricación en cadena: cada etapa de la segmentación (o
segmento) completa una parte (subtarea) de la tarea total.
Desde este punto de vista, un programa es un conjunto de componentes lógicos de tamaño
variable o un conjunto de segmentos, es decir, el espacio lógico de direcciones se considera
como un conjunto de segmentos, cada uno definido por un identificador, y consistente de un
punto de inicio y el tamaño asignado.
La segmentación de un programa la realiza el compilador y en ella cada dirección lógica se
expresará mediante dos valores: Número de segmento (s) y desplazamiento dentro del
segmento (d).
Una de las implementaciones más obvias y directas de un espacio de memoria segmentado
es asignar un segmento distinto a cada una de las secciones del espacio en memoria de un
proceso.
Los segmentos están conectados cada uno con el siguiente, de forma que la salida de uno
pasa a ser la entrada del siguiente. Así, los segmentos configuran un cauce a través del que
se va procesando la tarea deseada (por ello, en algunas ocasiones, a los procesadores
segmentados también se les llama procesadores encauzados o, simplemente, cauces). Lo más
interesante de la segmentación es que las diferentes subtareas pueden procesarse de forma
simultánea, aunque sea sobre diferentes datos.

P á g i n a 6 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

PROCESAMIENTO SEGMENTADO

El procesamiento segmentado aprovecha la misma filosofía de trabajo de la fabricación en


cadena: cada etapa de la segmentación (o segmento) completa una parte (subtarea) de la tarea
total. Los segmentos están conectados cada uno con el siguiente, de forma que la salida de
uno pasa a ser la entrada del siguiente. Así, los segmentos configuran un cauce a través del
que se va procesando la tarea deseada (por ello, en algunas ocasiones, a los procesadores
segmentados también se les llama procesadores encauzados o, simplemente, cauces). Lo más
interesante de la segmentación es que las diferentes subtareas pueden procesarse de forma
simultánea, aunque sea sobre diferentes datos.
Una contribución clave de la segmentación es 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 no es el tiempo total transcurrido desde que se comienza una determinada tarea
hasta que se termina (tiempo de latencia del procesador), sino el tiempo máximo que puede
pasar entre la finalización de dos tareas consecutivas.
Evidentemente, la segmentación no es posible sin incrementar los recursos de proceso, de la
misma manera que la fabricación en cadena no es posible sin aumentar el número de
operarios. Por ello, los procesadores segmentados necesitan redundancia de muchos
recursos: registros, circuitos aritméticos, etc.
Considérese una tarea, compuesta por n subtareas. Si estas subtareas se procesan de forma
totalmente secuencial, el tiempo necesario para procesar la tarea total será la suma de los
tiempos necesarios para la terminación de cada una de las subtareas.

En este esquema Tji representa la subtarea j dentro de la tarea i. Por otra parte, para comenzar
el tratamiento de una nueva tarea será necesario esperar ese mismo tiempo. Esto se debe a
que habrá algunas unidades funcionales que serán necesarias para llevar a cabo varias de las
subtareas y por ello, esas subtareas no podrán superponerse en el tiempo.
Si, para procesar esa misma tarea, se emplea un procesador segmentado, basta que se haya
terminado la primera subtarea para poder empezar a procesar una nueva tarea.

P á g i n a 7 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

En la figura anterior puede verse el continuo flujo de tareas que se van procesando a través
de los n segmentos encargados de procesar cada una de las subtareas. Puede observarse que
el tiempo total de procesamiento de una tarea completa puede ser el mismo, aunque
frecuentemente será mayor, que el tiempo empleado para el procesamiento secuencial de la
misma tarea mostrada en la primera figura.
Esto, sin embargo, carece de importancia ya que lo verdaderamente importante es el ritmo al
que las tareas van saliendo del procesador (velocidad de emisión de tareas). Al número de
segmentos del procesador, n, se le llama, en muchas ocasiones, profundidad de la
segmentación.
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 ha dividido la
tarea total tarden en procesarse el mismo tiempo. Esto es debido a que las tareas no podrán
evolucionar al segmento siguiente hasta que no se haya terminado la subtarea más lenta. Por
ello, si el procesador no está equilibrado, los segmentos más rápidos estarán cierto tiempo
sin hacer trabajo alguno, lo que disminuirá el rendimiento del procesador.
La relación de precedencia de un conjunto de subtareas Ti, …, Tn, que componen cierta tarea
T, específica para cada subtarea Tj, que ésta no puede comenzar hasta que haya terminado
ciertas subtareas Ti. Las relaciones de precedencia para todas las subtareas de T forman su
grafo de precedencia.

P á g i n a 8 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

En el ejemplo de la figura anterior se ha supuesto que las tareas que se procesan en el cauce
tienen un grafo de precedencia lineal. Esto significa que una subtarea Tj, no puede comenzar
hasta que todas las subtareas previas, es decir Ti, para todas las i menores que j, hayan
finalizado. A los procesadores segmentados que sólo pueden procesar tareas con grafo de
precedencia de este tipo, se les denomina cauces lineales.

REQUISITOS PARA UN PROCESAMIENTO


SEGMENTADO

 Características del proceso necesarias para poder aplicar segmentación:


 Se debe poder descomponer en etapas.
 Es necesario que las entradas de una etapa estén determinadas únicamente por las
salidas de la anterior.
 Cada etapa debe poder ser realizada por un circuito específico de forma más rápida
que el conjunto del proceso.
 Los tiempos de ejecución de cada etapa deben parecidos.

P á g i n a 9 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

RENDIMIENTO DEL PROCESAMIENTO


SEGMENTADO

Para estudiar el rendimiento de los procesadores segmentados empezaremos por calcular la


ganancia de velocidad ideal en un procesador de este tipo.
Esta ganancia ideal sólo se podrá obtener si el procesador está equilibrado y, además, si no
se pierden ciclos de reloj. La ganancia de velocidad en un procesador segmentado de n
segmentos vendrá dada por la relación entre el tiempo de ejecución de m tareas en un
procesador convencional, t (1), y el tiempo de ejecución de esas mismas m tareas, en un
procesador segmentado, t(n).
En las mejores condiciones y si el procesador está equilibrado se puede suponer que el
periodo de reloj es el mismo en ambos casos. Observando la primera figura, podemos deducir
fácilmente que el tiempo empleado en ejecutar m tareas en un procesador convencional,
medido en ciclos de reloj será
𝑡(1) = 𝑛𝑚
Por otra parte, para un procesador segmentado, el tiempo empleado en ejecutar esas m tareas
tendrá dos partes: el tiempo empleado en llenar el cauce, o lo que es lo mismo, el tiempo
empleado en ejecutar la primera tarea (n ciclos) y, luego un ciclo de reloj por cada una de las
tareas restantes (m – 1 ciclos). Por tanto:
𝑡(𝑛) = 𝑛 + (𝑚 − 1)
Con estos datos, podemos deducir que la ganancia de velocidad de un procesador
segmentado, respecto a un procesador convencional es
𝑡(1) 𝑛𝑚
𝑆(𝑛)𝑖𝑑𝑒𝑎𝑙 = =
𝑡(𝑛) 𝑛 + 𝑚 − 1
Cuando el número de tareas ejecutadas, m, sea muy grande, es decir, cuando haya pasado
un poco de tiempo, tendremos que la ganancia estacionaria será:

𝑛𝑚 𝑛
𝑆(𝑛)∞ = lim 𝑆𝑖𝑑𝑒𝑎𝑙 = lim = lim 𝑛 𝑚−1 =n
𝑚→∞ 𝑚→∞ 𝑛+𝑚−1 𝑚→∞ 𝑚+ 𝑚

De esta forma podemos ver que la ganancia ideal estacionaria obtenida con un procesador
segmentado de n etapas es la misma que la que se consigue con un sistema paralelo de n
procesadores no segmentados.
Evidentemente, esta ganancia ideal no se consigue nunca por diversas razones:
P á g i n a 10 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

 Las detenciones del cauce


 El desequilibrio entre los segmentos

Las detenciones del cauce


Son causadas porque, en ciertas condiciones, el cauce no pude avanzar en algunas de sus
etapas y ello provoca la parada de la cadena de proceso desde la etapa detenida hacia atrás.
Para entender el concepto de detención, se puede hacer la idea de la fabricación en cadena:
si alguna de las etapas de la cadena deja de cumplir su función, la cadena se parará desde
ese punto hacia atrás hasta que la etapa detenida pueda volver a funcionar

Desequilibrio de entre segmentos


Que causa que el ciclo de reloj de la maquina segmentado tenga que ser mayor que el de
una maquina equivalente no segmentada.

P á g i n a 11 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

CLASIFICACIÓN DE LOS PROCESADORES


SEGMENTADOS

Segmentación aritmética

La ALU de un computador puede segmentarse para la ejecución de algoritmos aritméticos


complejos. La segmentación aritmética es muy útil para procesar instrucciones vectoriales,
es decir, operaciones que deben repetirse de la misma forma sobre todas las componentes de
un vector; esto se consigue provocando que un segmento de la unidad aritmética trabaje sobre
una de las componentes, mientras los demás trabajan sobre las componentes siguientes,
realizándose así las diferentes subfunciones necesarias para la ejecución de la operación
aritmética. En la actualidad, este tipo de segmentación se emplea en muchos procesadores
para ejecutar operaciones aritméticas con números representados en punto flotante.
Un ejemplo clásico de este tipo de procesadores es el multiplicador segmentado basado en
un árbol de Wallace
Los bloques CSA representan a sumadores con salvaguarda de llevadas y los bloques CLA,
a sumadores con generación anticipada de llevadas. Las líneas inclinadas hacia la izquierda
indican que los vectores de llevadas deben desplazarse a la izquierda un lugar antes de entrar
en la etapa siguiente. Por otra parte, es necesario señalar que las sumas deben efectuarse con
extensión de signo y que es necesario dejar bits de guarda para tener en cuenta las posibles
llevadas salientes. Las cajas sombreadas representan registros cerrojos (latchs) que, en este
caso, se llaman registros de segmentación. Estos registros retienen las informaciones
salientes de cada etapa durante un ciclo de reloj para que se mantengan en la entrada de la
siguiente etapa. Se ha supuesto que el retardo del sumador con anticipación es doble que el
del sumador con salvaguarda de llevadas.

P á g i n a 12 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

P á g i n a 13 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Segmentación de instrucciones:
La ejecución de un flujo de instrucciones puede adoptar una estructura segmentada que
permita el solapamiento de la ejecución de una instrucción con la lectura, decodificación,
búsqueda de operandos, etc. de las instrucciones siguientes. Esta técnica también se
denomina anticipación de instrucciones (instruction lookahead).

La figura corresponde a un computador de tipo registro-registro, es decir, un computador en


que los accesos a memoria están restringidos a instrucciones específicas (LOAD y STORE),
y en que el modo de direccionamiento empleado para estos accesos a memoria y para las
bifurcaciones, es el relativo al contador de programa.

P á g i n a 14 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Se supone que el computador dispone de arquitectura Harvard, es decir, que posee memorias
caché separadas para código y datos. En el ejemplo, se ha dividido la ejecución completa de
cada instrucción en cuatro segmentos:
 Lectura.
 Decodificación y lectura de operandos.
 Ejecución.
 Acceso a la memoria de datos (si es necesario).

Prácticamente, todos los computadores actuales disponen de segmentación de instrucciones.

Segmentación de procesadores:
Este tipo de procesamiento se produce cuando el mismo flujo de datos es tratado por una
serie de procesadores, de forma que cada uno de ellos efectúe una subtarea del proceso total.
Cada procesador dejará sus resultados en una memoria, que también será accesible desde el
siguiente, para que éste procese esos resultados para ejecutar la siguiente subtarea sobre el
flujo de datos. Este tipo de segmentación se emplea solamente en procesadores vectoriales
de muy altas prestaciones.
Por otra parte, los procesadores segmentados pueden ser tanto mono -función como multi-
función. Los primeros sólo pueden realizar una función fija; por el contrario, los procesadores
segmentados multifunción pueden efectuar diferentes funciones, en instantes distintos,
conectando de formas diferentes los segmentos del cauce.
Los procesadores segmentados multifunción son estáticamente configurables si no pueden
cambiar su configuración mientras se está ejecutando una función; esto implica que no
pueden ejecutarse varias funciones diferentes al mismo tiempo. Por el contrario, son
dinámicamente configurables si pueden cambiar su configuración en cualquier momento; por
ello, los cauces de este tipo pueden mantener varias configuraciones simultáneas y, por tanto,
ejecutar varias funciones diferentes a la vez.

P á g i n a 15 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

CONFLICTOS EN EL PROCESAMIENTO
SEGMENTADO

En los procesadores segmentados, a los problemas potenciales que pueden ocurrir se les
conocen como Hazards.
Las instrucciones de un procesador segmentado son ejecutadas en varias etapas, de modo que
en un momento dado se encuentran en proceso varias instrucciones y puede que éstas no sean
completadas en el orden deseado.
Un riesgo aparece cuando dos o más de estas instrucciones simultáneas (posiblemente fuera
de orden) entran en conflicto.

Conflictos Estructurales
También llamados Structural Hazard, estos son causados por insuficiencia del hardware, ya
que está siendo usado y por lo tanto provoca que una etapa no pueda avanzar.
Este tipo de conflicto puede resolverse, en causes mono-funcion (puede realizar una función
fija), duplicando los recursos del hardware que sea necesario (no recomendable) o duplicando
archivos de registro que también nos lleva a problemas de inconsistencia.
Uno de los SH más frecuentes son los de acceso a memoria los cuales ocurren en el momento
de leer una instrucción y acceso de un dato. Este conflicto se resuelve mediante la arquitectura
Harvard en la cual existen memorias caches para instrucciones y datos.

P á g i n a 16 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Pero aun así hay conflictos cuando existen accesos simultáneos de datos por parte de varios
segmentos. Para esto se agregan nuevos puertos a la cache de datos o también limitando los
accesos a datos a determinadas
instrucciones para que sea difícil que se super-ponga (arquitecturas registro-registro o
carga-almacenamiento).
El problema todavía se agrava más en los cauces multifunción dinámicamente configurables.
En estos casos ocurren las colisiones que son usos simultáneos de varios segmentos por parte
de ejecuciones distintas de una misma función o por varias funciones.
Para este problema se lleva a cabo las llamadas tablas de reservas, las cuales contienen
información sobre la ocupación de cada segmento en cada uno de los ciclos máquina. Las
filas representan a los segmentos y las columnas a los ciclos necesarios para la ejecución de
la tarea.

¿Qué hay que hacer para resolver esto?


Lo que se tiene que hacer es superponer la misma tabla, pero desplazada un espacio a la
derecha y si hay un espacio de segmento que está siendo ocupada por la tabla original y
desplazada es imposible que se ejecute por segunda vez esa instrucción en el siguiente ciclo
del procesador. Se seguirá desplazando hasta que las dos tablas no ocupen un mismo
segmento.
El número de desplazamiento entre ambas tablas nos indica el número de ciclos que hay que
esperar (Latencia).

P á g i n a 17 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Conflictos por dependencia de datos


Este conflicto se da cuando una instrucción necesita los resultados de otra anterior, que aún
no ha acabado de ejecutarse y no tiene listo los resultados. Si estas dependencias no son
resultas no son resueltas provocaran riesgos de datos o incluso condiciones de carrera.
Existen 3 tipos principales de dependencias

RAW - READ AFTER WRITE (LECTURA DESPUÉS DE ESCRITURA)


La instrucción B trata de leer un operando antes de que la instrucción A lo haya escrito; de
esta forma, B puede tomar un valor incorrecto de ese operando. Este es el tipo de dependencia
más común.
Una dependencia RAW hace referencia a una situación donde se necesita un dato que aún no
ha sido calculado, por ejemplo:
 R2 <- R1 + R3
 R4 <- R2 + R3
La primera instrucción calcula un valor que será guardado en el registro R2, mientras que la
segunda necesita este valor para computarlo y almacenar el resultado en el registro R4. Sin
embargo, en un procesador segmentado, cuando se capturan los operandos para realizar la
segunda instrucción, los resultados de la primera aún no han sido guardados, de forma que
aparece una dependencia de datos.
La existencia de riesgo o no depende de la separación de temporal de las instrucciones A y
B, así como de la profundidad de la segmentación.

WAR - WRITE AFTER READ (ESCRITURA DESPUÉS DE LECTURA)


La instrucción B trata de escribir en un registro antes de que sea leído por la A; por ello, A
tomaría un valor incorrecto, ya que debería tomar el valor antes de modificarse. Este riesgo
es poco frecuente, debido a que la escritura de los resultados se efectúa en los últimos
segmentos y es difícil que esa escritura se adelante al segmento de lectura de una instrucción
anterior.
Una dependencia WAR representa un problema de ejecución concurrente, por ejemplo:
 r1 <- r2 + r3
 r3 <- r4 x r5
Si por alguna razón la instrucción 2 puede finalizar antes de que lo haga la 1 (por ejemplo,
en ejecución concurrente), es necesario asegurarse de que no se almacenará el resultado en
el registro R3 antes de que la instrucción 1 haya podido leer sus operandos.
P á g i n a 18 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

WAW - WRITE AFTER WRITE


La instrucción B intenta escribir un operando antes de que sea escrito por la A. Dado que las
escrituras se están realizando en orden incorrecto, el resultado final depositado es el
correspondiente a la instrucción A cuando debería ser el depositado por la B. Este conflicto
solo se produce en procesadores segmentos que escriben en más de una etapa y esto no es
muy frecuente.
Una dependencia WAW es otra de las posibles situaciones problemáticas en un entorno de
ejecución concurrente, por ejemplo:
 r2 <- r1 + r3
 r2 <- r4 x r7
En este caso debe retrasarse la escritura (etapa WB) de la instrucción 2 hasta que la
instrucción 1 haya finalizado
Conflicto De Control
Estas se deben a las instrucciones de control de flujo, en que no se puede leer la instrucción
siguiente hasta que se conozca su dirección.
¿Pero por qué ocurre este problema?
El cálculo de la dirección de destino se efectúa en la fase de escritura de resultado y esta fase
suele ser en la mayoría de casos la última. Por lo que una instrucción de control de flujo
provocara una detención del procesador.
Otros conflictos de este tipo que podríamos mencionar, aunque un poco más difíciles de
controlar, serían las interrupciones, dado que estos casos no están previstos dentro de la
ejecución de un programa.

P á g i n a 19 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Podemos mejorar este tiempo si dejamos que se continúen leyendo instrucciones. De esta
manera si la condición de salto no se da ya se habrá avanzado algo.
Una de las soluciones para evitar esta pérdida de rendimiento es hacer que el compilador
encuentre algo que hacer mientras se calcula la dirección de destino de salto. Si el compilador
no pudiera encontrar ninguna instrucción para ocupar los huecos libres dejados por las
instrucciones de salto, rellenaría con instrucciones NOP.

P á g i n a 20 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

PROCESADORES CISC Y RISC

Los Microprocesadores o CPU administran juegos de instrucciones basadas en pilas,


acumuladores y registros. Las instrucciones basadas en registros han recibido la mayor
atención por parte de los programadores, hecho que a su vez ha propiciado que los fabricantes
de semiconductores, diseñen arquitecturas de microprocesadores según la forma en que se
administran los registros. Partiendo de esa base, han surgido dos grandes arquitecturas de
microprocesadores para PC: los diseñados con instrucciones avanzadas o complejas llamados
CISC (Complex Instruction Set Computer) y los diseñados con instrucciones simples o
reducidas llamados RISC (Reduced Instruction Set Computer).

P á g i n a 21 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

LA ARQUITECTURA CISC (Complex Instruction Set


Computer).

La tecnología CISC (Complex Instruction Set Computer) nació de la mano de Intel, creador
en 1971 del primer microchip que permitiría el nacimiento de la informática personal.
Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser
muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en
los registros internos.
Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que en la
actualidad la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que
convierte dichas instrucciones complejas en varias instrucciones simples, llamadas
generalmente microinstrucciones.
La microprogramación es una característica importante y esencial de casi todas las
arquitecturas CISC. La microprogramación significa que cada instrucción de máquina es
interpretada por un micro programa localizado en una memoria en el circuito integrado del
procesador. Las instrucciones compuestas son decodificadas internamente y ejecutadas con
una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de
varios ciclos de reloj, al menos uno por microinstrucción. Es así entonces como los chips
CISC utilizan comandos que incorporan una gran diversidad de pequeñas instrucciones para
realizar una única operación.
Cuando el sistema operativo o una aplicación requiere de una de estas acciones, envía al
procesador el nombre del comando para realizarla junto con el resto de información
complementaria que se necesite. Pero cada uno de estos comandos de la ROM del CISC
varían de tamaño y, por lo tanto, el chip debe en primer lugar verificar cuanto espacio requiere
el comando para ejecutarse y poder así reservárselo en la memoria interna. Además, el
procesador debe determinar la forma correcta de cargar y almacenar el comando, procesos
ambos que ralentizan el rendimiento del sistema.
El procesador envía entonces el comando solicitado a una unidad que lo descodifica en
instrucciones más pequeñas que podrán ser ejecutadas por un nano procesador, una especie
de procesador dentro del procesador. Y al no ser las instrucciones independientes, pues son
instrucciones menores procedentes de la descodificación de una instrucción mayor, sólo
puede realizarse una instrucción cada vez.
A través de la compleja circuitería del chip, el nano procesador ejecuta cada una de las
instrucciones del comando. El desplazamiento por esta circuitería también ralentiza el
proceso. Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos de
reloj.

P á g i n a 22 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Características
 Instrucciones de longitud variable La longitud de la instrucción depende del modo de
direccionamiento usado en los operandos
 Las instrucciones requieren múltiples ciclos de reloj para ejecutar Antes de que una
instrucción pueda ser ejecutada los operandos deben ser buscados desde diferentes
ubicaciones en memoria
 Predominan las instrucciones con dos operandos Los CISC soportan cero, uno o más
operandos
 Variedad del direccionamiento de operandos Registro a registro, registro a memoria
y memoria a registro
 Múltiples modos de direccionamiento Alguno de los direccionamientos soportados
son el directo de memoria, indirecto de memoria y el indexado a través de registros
Ventajas
 Facilidad de implementación del conjunto de instrucciones
 Compatibilidad hacia adelante y hacia atrás de nuevas CPU’s
 Facilidad de programación
 Puede ser menor la complejidad del compilador
Desventajas
 La complejidad del conjunto de instrucciones crece
 Las instrucciones de longitud variable reducen el rendimiento del sistema
 Inclusión de instrucciones que raramente se usan

P á g i n a 23 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

LA ARQUITECTURA RISC (RISC = Reduced Instruction Set


Computer).

La idea estuvo inspirada también por el hecho de que muchas de las características que eran
incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo
ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del
procesador en relación con la memoria de la computadora que accedía era cada vez más alta.
Debido a que se tiene un conjunto de instrucciones simplificado, éstas se pueden implantar
por hardware directamente en la CPU, lo cual elimina el microcódigo y la necesidad de
decodificar instrucciones complejas.
La arquitectura RISC funciona de modo muy diferente a la CISC, su objetivo no es ahorrar
esfuerzos externos por parte del software con sus accesos a la RAM, sino facilitar que las
instrucciones sean ejecutadas lo más rápidamente posible. La forma de conseguirlo es
simplificando el tipo de instrucciones que ejecuta el procesador. Así, las instrucciones más
breves y sencillas de un procesador RISC son capaces de ejecutarse mucho más aprisa que
las instrucciones más largas y complejas de un chip CISC. Sin embargo, este diseño requiere
de mucha más RAM y de una tecnología de compilador más avanzada.
La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseño
más cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicación de
las más recientes tecnologías de semiconductores. Por ello, los procesadores RISC no solo
tienden a ofrecer una capacidad de procesamiento del sistema de 2 a 4 veces mayor, sino que
los saltos de capacidad que se producen de generación en generación son mucho mayores
que en los CISC.
Los comandos que incorpora el chip RISC en su ROM constan de varias instrucciones
pequeñas que realizan una sola tarea. Las aplicaciones son aquí las encargadas de indicar al
procesador qué combinación de estas instrucciones debe ejecutar para completar una
operación mayor.
Además, los comandos de RISC son todos del mismo tamaño y se cargan y almacenan del
mismo modo. Al ser estas instrucciones pequeñas y sencillas, no necesitan ser descodificadas
en instrucciones menores como en el caso de los chips CISC, pues ya constituyen en sí
unidades descodificadas. Por ello, el procesador RISC no gasta tiempo verificando el tamaño
del comando, en descodificarlo ni en averiguar cómo cargarlo y guardarlo.
El procesador RISC puede además ejecutar hasta 10 comandos a la vez pues el compilador
del software es el que determina qué comandos son independientes y por ello es posible
ejecutar varios a la vez. Y al ser los comandos del RISC más sencillos, la circuitería por la
que pasan también es más sencilla. Estos comandos pasan por menos transistores, de forma

P á g i n a 24 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

que se ejecutan con más rapidez. Para ejecutar una sola instrucción normalmente les basta
con un ciclo de reloj.
Características
 Pequeño conjunto de instrucciones Poseen un número significativamente menor de
instrucciones
 Instrucciones simples
 Instrucciones de longitud fija La mayoría de las instrucciones son de la misma
longitud, lo que permite que una instrucción se busque con una operación individual
 Predominan las instrucciones que se ejecutan en un ciclo de máquina La mayoría de
las instrucciones se ejecutan en un solo ciclo, esto permite la implementación de la
segmentación (Pipelining)
 Procesamiento de segmentación Los procesadores RISC tienen la capacidad de
manejar varias instrucciones al mismo tiempo, por medio de la técnica de
segmentación o línea de trabajo
 Causas de la Latencia Instrucciones requieren más de un ciclo de máquina
Instrucciones de longitud variable Instrucciones de punto flotante Acceder a
operandos desde memoria en vez que desde registros Acceder a un recurso
compartido
 El problema de la Dependencia Mutua La dependencia mutua entre instrucciones
impone un orden secuencial en la ejecución
VENTAJAS
 Cada instrucción puede ser ejecutada en un solo ciclo del CPU
 Hardware más simple debido a instrucciones más sencillas que requieren menos
espacio en el chip
 Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que, a
diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria
los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones. La
CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar instrucciones.
DESVENTAJAS
 Excesiva dependencia en la efectividad del compilador
 La depuración de los programas se hace difícil por la programación de instrucciones
 Se incrementa el tamaño del código de lenguaje máquina
 Necesidad de memoria rápida.

P á g i n a 25 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

PROCESADOR VECTORIAL
La gran mayoría de las CPU de hoy en día son escalares o superes calares. Los procesadores
vectoriales son muy comunes en el área de la computación científica, formando la base de la
mayor parte de los supercomputadores durante los años 80 y 90. Sin embargo, parece claro
que la mejora de la tecnología y de los diseños de procesadores van a acabar con el uso de
procesadores vectoriales como procesadores de propósito general. IBM, Toshiba y Sony han
anunciado el procesador Cell, que está formado en parte por procesadores vectoriales.
Casi todas las CPU de hoy en día incluyen algunas instrucciones de procesamiento de tipo
vectorial, conocidas como SIMD. En particular, las consolas de videojuegos y las tarjetas
gráficas hacen un uso intenso de este tipo de procesamiento.
Los procesadores vectoriales proporcionan operaciones de alto nivel que trabajan sobre
vectores.
Una máquina vectorial consta de una unidad escalar segmentada y una unidad vectorial. La
unidad vectorial dispone de M registros vectoriales de N elementos y de unidades funcionales
vectoriales (de suma/resta, multiplicación, división, de carga/almacenamiento, etc.) que
trabajan sobre los registros vectoriales, y un conjunto de registros escalares.

Se trata de procesadores con unidades vectoriales segmentadas, además de unidades


escalares. Cada unidad vectorial dispone de un banco de registros vectoriales (cada uno con
64 o 128 words) y una unidad funcional vectorial fuertemente segmentada. Dispone de
instrucciones escalares clásicas e instrucciones vectoriales (load, store, alu, mixed). El
usuario puede operar directamente sobre vectores en assembler (hoy utilidad relativa)

P á g i n a 26 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Tipos De Arquitectura Vectorial


 La máquina vectorial con registros: todas las operaciones que realiza este tipo de
procesador son vectoriales a excepción del “Load” y el “Store”, además de esto
operan con vectores almacenados en registros. Cabe decir que este tipo de
arquitectura vectorial es la más utilizada. Algunos ejemplos de máquinas que utiliza
esta arquitectura son:
o Cray Research (CRAY-1, CRAY-2, X-MP, Y-MP y C-90)
o Los supercomputadores japoneses (NEC SX/2 y SX/3, las Fujitsu VP200 y
VP400 y la Hitachi S820)
Ejemplo maquina vectorial con registros:

 La máquina vectorial memoria-memoria: es capaz de extraer dos vectores de memoria


y realizar operaciones sobre ellos. Otra de sus características es que tiene un costo
menor y que fue la primera arquitectura vectorial que se implementó. Pero uno de los
inconvenientes que se presentan en esta arquitectura es un cuello de botella al
momento de asesar a la memoria. Sin embargo, a esta arquitectura se pueden hacer
algunas mejoras:
o Aumentar el ancho de banda de la memoria este consiste en que la memoria
tenga varios módulos y que se puedan acceder simultáneamente a varias
posiciones consecutivas.
o Añadir una memoria interna de mayor velocidad entre la memoria y el
procesador, por ejemplo, añadir una memoria cache.
Ejemplo maquina vectorial con memoria-memoria:

P á g i n a 27 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Instrucción Vectorial:
Las maquinas vectoriales proporcionan operaciones que trabajan sobre vectores. Una
instrucción vectorial es equivalente a la ejecución de un bucle completo de instrucciones
ordinarias, donde cada iteración trabaja sobre cada una de los componentes del vector. Las
operaciones vectoriales tienen algunas ventajas sobre las escalares:
 En las operaciones vectoriales, cada resultado es independiente de los anteriores. Esto
permite efectuar los cálculos en un procesador segmentado sin que existan conflictos
por dependencia de datos.
 Una simple instrucción vectorial sustituye a muchas escalares. Por ello, el cuello de
botella producido por l lectura de esa instrucción es pequeño, comprado con el que
produciría el conjunto de instrucciones escalares al equivalente.
 Las instrucciones vectoriales que precisan acceder a memoria, lo hacen con un patrón
de acceso fijo (normalmente serán adyacentes). Esto facilitara su lectura paralela
mediante una memoria entrelazada. En cualquier caso, si no se dispusiera de
memorias entrelazadas, las posiciones de memoria adyacentes se cargarán en cache,
con el consiguiente ahorro de tiempo.
 Si se utiliza una instrucción vectorial, evitaremos el riesgo de control del salto del
bucle, que se produciría si procesáramos las instrucciones escalares equivalentes en
un procesador segmentado.
 Visto lo anterior, parece claro que las computadoras vectoriales deben basar su unidad
de ejecución en un procesador segmentado que tomara uno a uno todos los
componentes del vector y la ira procesando sin dependencias de datos ni control
durante la ejecución de toda la instrucción vectorial.

P á g i n a 28 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS

Rendimiento De Los Procesadores Vectoriales:


Para el cálculo del rendimiento de los procesadores vectoriales debemos tomar en cuenta:
1. El tiempo necesario para procesar cada componente en una pasada del bucle.
2. El tiempo de inicialización de cada bucle provocado por el seccionamiento.
3. El tiempo ocupado por el arranque del programa, carga inicial de los vectores en los
registros, etc. (BASTIDA, 2006).

Problemas De Los Procesadores Vectoriales:


1. El problema de la longitud de los vectores, mesto en los procesadores vectoriales del
tipo registro – registro, ya que la capacidad de almacenamiento de los registros
vectoriales es limitada.
2. Otro problema es el proceso de vectores cuyas componentes no son adyacentes a
memoria. Este es el caso de la multiplicación de matrices, que se puede convertir en
multiplicación de vectores.
3. Finalmente se puede plantear el problema de dependencia de datos entre los diferentes
vectores que intervienen en el cálculo, pero esto resuelve con el encadenamiento, que
consiste en imponer solo dos condiciones para comenzar la operación vectorial.

P á g i n a 29 | 29

También podría gustarte