Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESCUELA SISTEMAS
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).
P á g i n a 3 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS
• 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:
P á g i n a 4 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS
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
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.
P á g i n a 9 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS
𝑛𝑚 𝑛
𝑆(𝑛)∞ = 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
P á g i n a 11 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS
Segmentación aritmética
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).
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).
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.
P á g i n a 17 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS
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
P á g i n a 21 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS
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 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.
P á g i n a 26 | 29
UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERIA DE SISTEMAS
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
P á g i n a 29 | 29