Af5 Eq2 Arqcom N2-013

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 58

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

FACULTAD DE INGENIERIA MECANICA Y ELECTRICA


Arquitectura de Computadoras
Equipo #2
Actividad Fundamental # 5
Matricula Miembro Carrera
2017169 Jesús Antonio Rivera Torres I.A.S.

Catedrático: M. C. Jorge Alejandro Lozano González


Días de clase y hora: lunes, miércoles y viernes – N2
Semestre: Agosto - diciembre 2024
Salón: 4106 Grupo:013
Ciudad Universitaria, San Nicolás de los Garza, N.L
Índice

Introducción
Desarrollo
1.- Nuevos dispositivos de tecnología avanzada
2.- CISC
3.- RISC 9
4.- INTEL 13
5.- PENTIUM
6.- UlTRASPARC II
7.- PICOJAVA II 24
8.- Pipeline
9.- Taxonomía de Flynn
10.- Arreglos de Procesadores
11.- Procesadores vectoriales
12.- Multiprocesador
13.- Multicomputadoras
14.- Clúster
Conclusión general
Bibliografías

2
Introducción
La arquitectura de procesadores ha sido un factor
crucial en la evolución de las computadoras,
marcando el ritmo del desarrollo tecnológico durante
décadas. Actuando como el "cerebro" de estos
dispositivos, la arquitectura de un procesador define
la manera en que las computadoras ejecutan
instrucciones y gestionan recursos, afectando
directamente su rendimiento, eficiencia y capacidad
para llevar a cabo múltiples tareas. A lo largo de la historia, las distintas
arquitecturas han dado lugar a avances significativos en la capacidad de
procesamiento, y estos cambios han permitido la creación de nuevos dispositivos
de tecnología avanzada, cada vez más potentes y especializados.

En este contexto, algunos hitos importantes han sido los procesadores PENTIUM
e INTEL, que revolucionaron el mercado de las computadoras personales,
ofreciendo un rendimiento superior en comparación con generaciones anteriores.
Más allá de estos, arquitecturas como la ULTRASPARC II y PICOJAVA II abrieron
nuevas posibilidades en el ámbito de los servidores y la computación embebida,
proporcionando soluciones específicas para entornos de alto rendimiento y
aplicaciones móviles.

Asimismo, los arreglos de procesadores han permitido la creación de sistemas


más eficientes al combinar múltiples procesadores en un solo sistema, lo que ha
dado lugar a arquitecturas avanzadas como las multicomputadoras y los
clústeres.

Otro tema fundamental en la arquitectura de procesadores es la distinción entre


las arquitecturas RISC (Reduced Instruction Set Computing) y CISC (Complex

3
Instruction Set Computing). Mientras que la arquitectura RISC se centra
en una menor cantidad de instrucciones simples y rápidas, la
arquitectura CISC busca realizar más operaciones con menos
instrucciones, aprovechando su complejidad para optimizar ciertos tipos de
tareas.

1. Nuevos dispositivos de tecnología avanzada

Últimamente han surgido nuevas tecnologías que van mejorando lo que ya


tenemos, y esto hace que entremos en un bucle constante de seguir innovando,
las siguientes tecnologías principalmente están basadas en los procesadores de
un computador y son tecnologías que son novedosas e interesantes de conocer.

Procesadores Multinúcleo

Una de las innovaciones clave ha sido la


integración de varios núcleos de procesamiento
en un solo chip. Estos "procesadores
multinúcleo" permiten que los dispositivos
ejecuten múltiples tareas a la vez, aumentando
significativamente su eficiencia y velocidad. Por
ejemplo, los smartphones más modernos
pueden tener hasta 8 o más núcleos, lo que
facilita que puedas estar viendo un video, enviando mensajes y
descargando archivos sin que el dispositivo se ralentice.

Tecnología de Procesadores ARM

ARM es una arquitectura de procesador que se utiliza en muchos


dispositivos móviles, incluidos smartphones, tablets y relojes inteligentes.
Estos procesadores son conocidos por ser extremadamente eficientes en el
consumo de energía, lo que los hace ideales para dispositivos que
necesitan durar todo el día con una sola carga. Además, los procesadores
4
ARM están comenzando a ser utilizados en laptops, permitiendo
una duración de batería mucho mayor comparada con
procesadores tradicionales.

Arquitectura de Procesadores RISC-V

RISC-V es una arquitectura emergente


que ha ganado popularidad en la
investigación y desarrollo de tecnología
avanzada. A diferencia de otras
arquitecturas de procesadores como
ARM o x86, RISC-V es de código
abierto, lo que significa que cualquier empresa o investigador puede
acceder a su diseño y modificarlo.
Esto ha abierto un abanico de
posibilidades para la
personalización y optimización en
aplicaciones específicas, como
dispositivos del Internet de las
Cosas (IoT), inteligencia artificial y
hasta en servidores.

GPU y Procesadores Dedicados para IA

Además de los procesadores centrales


(CPU), los dispositivos modernos también
están integrando unidades de procesamiento
gráfico (GPU) más avanzadas, que
originalmente eran usadas solo para

5
videojuegos pero ahora también se emplean para tareas de
inteligencia artificial y aprendizaje automático. Las GPU pueden
procesar grandes cantidades de datos en paralelo, lo que las hace
perfectas para entrenar modelos de IA y realizar cálculos masivos en corto
tiempo. También hay procesadores dedicados específicamente para IA,
como los que utiliza Google en sus centros de datos (TPUs).

2. CISC
En arquitectura computacional, CISC (del inglés Complex Instruction Set
Computer, en español Computador con Conjunto de Instrucciones Complejas) es
un modelo de arquitectura de computadores. 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, en contraposición a la arquitectura RISC.

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 del tipo RISC, llamadas generalmente microinstrucciones.

Los CISC pertenecen a la primera corriente de


construcción de procesadores, antes del
desarrollo de los RISC. Ejemplos de ellos son:
Motorola 68000, Zilog Z80 y toda la familia Intel
x86 usada en la mayoría de las computadoras personales actuales. Para realizar
una sola instrucción un chip CISC requiere de cuatro a diez ciclos de reloj.

Microprogramación de los procesadores CISC

6
La microprogramación es una característica importante y esencial de
casi todas las arquitecturas CISC. Como por ejemplo: Intel 8086, 8088,
80286, 80386, 80486, Motorola 68000, 68010, 620, 8030, 684.

La microprogramación significa que cada instrucción de máquina es interpretada


por un microprograma localizado en una memoria en el circuito integrado del
procesador. En la década de los sesentas la micropramación, por sus
características, era la técnica más apropiada para las tecnologías de memorias
existentes en esa época y permitía desarrollar también procesadores con
compatibilidad ascendente. En consecuencia, los procesadores se dotaron de
poderosos conjuntos de instrucciones.

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). La
meta fundamental de la arquitectura de
CISC es terminar una tarea adentro
como pocas líneas de la asamblea
como sea posible. Esto es alcanzado
construyendo el hardware del
procesador que es capaz de entender y
de ejecutar una serie de operaciones.

Para esta tarea particular, un


procesador de CISC vendría preparado
con una instrucción específica a la que
se le nombrara MULT. Cuando está
instrucción esta ejecutada, carga los dos valores en los registros separados,
multiplica los operandos en la unidad de la ejecución, y después almacena el
producto en el registro apropiado. Así, la tarea entera de multiplicar dos números
se puede terminar con una instrucción.

7
Características de los procesadores CISC

● El tamaño del código es pequeño, lo que implica una baja necesidad de


memoria RAM
● Las instrucciones complejas suelen necesitar más de un ciclo de reloj para
ejecutar el código
● Se requieren menos instrucciones para escribir un software
● Soporte para una estructura de datos compleja y fácil de compilar en
lenguajes de alto nivel
● Compuesto por menos registros y más nodos de direccionamiento,
habitualmente entre 5 y 20
● ·Instrucciones pueden ser más grandes que una sola palabra
● Se enfatiza la construcción de instrucciones en el hardware, ya que es más
rápido que crear el software

Ventajas de los procesadores CISC

● Para el compilador se requiere de poco esfuerzo para traducir programas


de alto nivel o lenguajes de instrucciones a lenguaje ensamblador o
máquina
● El tamaño del código es corto, reduciendo los requisitos de memoria
● Genera procesos de administración de uso de energía que permiten ajustar
la velocidad y el voltaje del reloj
● Requiere de menos instrucciones configuradas para realizar la misma
instrucción que la arquitectura RISC

Desventajas de los procesadores CISC

8
● Pueden requerir de varios ciclos de reloj para completar una
instrucción de un software
● El rendimiento del equipo sufre un descenso debido a la velocidad
del reloj
● La ejecución mediante canalización en procesadores CISC puede ser
realmente complicado
● Este diseño de procesadores requiere muchos más transistores que la
arquitectura RISC
● Utilizan sobre el 20% de las instrucciones existentes en un evento de
programación
● Tienen un diseño mucho mayor que la arquitectura RISC, lo cual conlleva
más generación de temperatura, mayor consumo y mayor requisito de
espacio físico

3. RISC
RISC (Reduced Instruction Set Computer) es un tipo de arquitectura de
procesadores que se enfoca en simplificar las instrucciones que el procesador
puede ejecutar. A diferencia de otras arquitecturas más complejas, RISC reduce
el número de instrucciones que el procesador debe manejar, lo que hace que sea
más rápido y eficiente en muchas
tareas.

¿Qué es RISC?

RISC es una arquitectura de


procesadores que se basa en la
idea de que, si un procesador solo
tiene que ejecutar un conjunto limitado y sencillo de instrucciones, puede hacerlo
mucho más rápido y con menos recursos. En lugar de tener muchas instrucciones
complicadas, RISC se enfoca en pocas, pero muy rápidas. Estas instrucciones

9
simples son ejecutadas directamente por el hardware, lo que reduce la
necesidad de hacer operaciones adicionales o transformaciones
complejas.

Tecnología

Los inicios de la tecnología RISC surgen en el ambiente académico, en 1980, en


la Universidad de Berkeley California, donde el
Dr. David A. Patterson inició un proyecto
denominado RISC I, obteniendo resultados en
tan solo 19 meses, seguido por RISC II, SOAR
Smalltalk on a RISC y SPUR (Symbolic
Processing on a RISC), pero simultáneamente,
en la Universidad de Stanford, el Dr. John
Hennesy inició también un proyecto de
implementación RISC, denominado MIPS, seguido por el sistema MIPS-XMP,
enfocados hacia el proceso simbólico, demostrando así las capacidades de
velocidad de la arquitectura RISC.

Ambos profesores se vieron envueltos rápidamente, en proyectos de productos


comerciales, y en concreto,el llamado Hennesy fué uno de los fundadores de
MIPS Computer Systems, mientras Patterson actuaba de asesor durante el
desarrollo del primer SPARC.

Características de los procesadores RISC

● Para ejecutar una instrucción en estos procesadores, en un procesador de


este tipo se requiere un ciclo de reloj. Cada ciclo de reloj incluye un método
de obtención, decodificación y ejecución de la instrucción
● La técnica de canalización se usa en esta arquitectura para ejecutar
múltiples partes o etapas de instrucciones para obtener un funcionamiento
más eficiente

10
● Estos procesadores están optimizados basándose en múltiples
registros que se pueden usar para el almacenamiento de
instrucciones y la respuesta rápida del procesador y se minimicen
las interacciones con la memoria del sistema
● Soporta un modo de direccionamiento simple y que tiene una longitud de
instrucción fija para la ejecución de la canalización
● Usan instrucciones LOAD y STORE para acceder a la memoria
● Las instrucciones simples y limitadas permiten reducir los tiempos de
ejecución de un proceso

Ventajas de RISC

1. Simplicidad: Como las instrucciones de RISC son más simples, el


procesador no necesita hacer muchas cosas al mismo tiempo. Esto
permite que el diseño del chip sea más sencillo, con menos transistores.
2. Velocidad: Debido a que las instrucciones son simples, el procesador
puede ejecutar más instrucciones por segundo. Esto es muy útil para
aplicaciones que requieren rapidez en cálculos, como videojuegos o
gráficos.
3. Eficiencia energética: Como RISC realiza tareas de manera más simple y
rápida, consume menos energía. Esto es importante en dispositivos que
necesitan una batería de larga duración, como los smartphones.
4. Facilidad de escalado: RISC es fácil de adaptar para nuevos
procesadores. Como tiene un conjunto de instrucciones básico, es más
fácil añadir más núcleos (como en los procesadores multinúcleo) sin hacer
que el procesador sea mucho más complicado.

11
Desventajas de los procesadores RISC

● El rendimiento del procesador puede variar dependiendo del


código que se ejecuta, ya que las instrucciones posteriores que se ejecuten
pueden depender de una instrucción anterior
● Actualmente la mayoría de software y compiladores hacen uso de
instrucciones complejas
● Necesitan de memorias muy rápidas para almacenar diferentes cantidades
de instrucciones, que requieren de una gran cantidad de memoria caché
para responder a la instrucción en el menor tiempo posible

¿Cómo funciona RISC?

En un procesador RISC, cada instrucción realiza


una tarea muy simple. Por ejemplo, si quieres
sumar dos números, el procesador lo hace en
pasos individuales como "cargar número A",
"cargar número B" y "sumar A y B". Aunque parece
que eso tomaría más tiempo, en realidad estos
pasos simples se ejecutan muy rápido porque el
procesador no está intentando hacer todo a la vez.
Este enfoque minimalista permite que el procesador trabaje de manera eficiente
sin tener que lidiar con instrucciones complicadas.

En comparación, los procesadores CISC (Complex Instruction Set Computer)


como los de Intel o AMD utilizan un enfoque más "pesado", con instrucciones que
pueden hacer varias cosas a la vez, pero que son más lentas y consumen más
energía.

RISC en el mundo real

12
Muchas tecnologías modernas usan procesadores basados en la
arquitectura RISC. Uno de los ejemplos más conocidos es la arquitectura
ARM, que es muy popular en smartphones y tablets. ARM es una
arquitectura RISC y su éxito se debe a que es eficiente en el uso de energía, ideal
para dispositivos que necesitan baterías de larga duración.

Además, RISC está presente en otros dispositivos, como routers, relojes


inteligentes y algunos servidores de bajo consumo. Incluso se están explorando
en aplicaciones de inteligencia artificial y el Internet de las Cosas (IoT) debido a
su eficiencia y escalabilidad.

4. INTEL
Intel es una de las compañías más importantes en la historia de los procesadores
y la tecnología informática. Su impacto en la arquitectura de procesadores ha sido
fundamental para el desarrollo de las computadoras personales, servidores, e
incluso dispositivos móviles.

Los Orígenes de Intel

Intel fue fundada en 1968 por Robert Noyce y


Gordon Moore, dos ingenieros que ya tenían
experiencia trabajando en Fairchild Semiconductor,
una de las primeras empresas de semiconductores.
La visión de Intel era crear tecnología innovadora,
especialmente en el campo de los semiconductores,
que son los componentes clave para fabricar chips
de computadora.

Dato interesante: El nombre "Intel" viene de


"Integrated Electronics," lo que refleja el enfoque de
13
la empresa en la creación de circuitos integrados, un componente
esencial en los procesadores.

Primeros Procesadores de Intel

El primer gran éxito de Intel fue el


procesador Intel 4004, lanzado en 1971.
Este fue el primer microprocesador
comercial de la historia. Aunque hoy en día
suena pequeño en comparación con la
tecnología actual, el Intel 4004 tenía 2,300
transistores y podía realizar alrededor de
60,000 operaciones por segundo. En su
momento, esto era un avance revolucionario porque permitía que una
computadora, que antes ocupaba varias habitaciones, pudiera reducirse a algo
mucho más compacto.

El siguiente gran salto fue el Intel 8080, lanzado en 1974. Este procesador fue el
que realmente ayudó a que las primeras computadoras personales comenzaran a
tener un auge, ya que era mucho más potente que su predecesor y fue utilizado
en sistemas como el Altair 8800, una de las primeras PC’s.

La Arquitectura x86

14
Uno de los mayores hitos en la
historia de Intel fue la
introducción de la arquitectura
x86 con el lanzamiento del
procesador Intel 8086 en 1978.
Esta arquitectura fue la base de
muchos procesadores que vinieron
después y se convirtió en el
estándar para las computadoras
personales. Cuando escuchas que una computadora es "x86", significa que está
utilizando un procesador basado en esta arquitectura.

La gran ventaja de la arquitectura x86 es que estaba diseñada para ser


compatible con una gran variedad de software, lo que hizo que muchas empresas
comenzaran a crear programas y aplicaciones basadas en esta arquitectura.
Como resultado, Intel se posicionó rápidamente como líder en el mercado de
procesadores para PC’s.

Intel y la Competencia con AMD

Aunque Intel fue el pionero en la creación de la arquitectura x86, no estuvo solo


en el mercado por mucho tiempo. A lo largo de los años, surgió una fuerte
competencia con otras compañías, especialmente AMD (Advanced Micro
Devices), que empezó a fabricar sus propios procesadores compatibles con la
arquitectura x86. Esta rivalidad entre Intel y AMD impulsó una carrera tecnológica
para crear procesadores cada vez más rápidos y eficientes.

Intel ha seguido innovando constantemente con sus series de procesadores


Pentium, Core, y más recientemente, con los procesadores Core i3, i5, i7 e i9.
Estas líneas de procesadores no solo mejoraron el rendimiento, sino que también
introdujeron características avanzadas como la tecnología Hyper-Threading y el
Turbo Boost, que permiten a los procesadores manejar múltiples tareas y
aumentar su velocidad cuando es necesario.

15
16
5. PENTIUM
La serie de procesadores Pentium de Intel es uno de los nombres más
emblemáticos en la historia de la computación, especialmente porque fue crucial
en el desarrollo de las computadoras personales en los años 90 y principios de
los 2000. Para entender cómo Pentium cambió la forma en que usamos
computadoras, veamos los detalles sobre su arquitectura y cómo funciona.

Origen del Procesador Pentium

El procesador Pentium fue lanzado por Intel en 1993 y representó un gran salto
tecnológico comparado con las generaciones anteriores de procesadores x86. Su
nombre "Pentium" viene de la raíz griega "pente", que significa cinco, ya que era
el sucesor de la línea 486, pero debido a razones de marca registrada, no se le
llamó 586.

La serie de procesadores Pentium


de Intel es uno de los nombres más
emblemáticos en la historia de la
computación, especialmente porque
fue crucial en el desarrollo de las
computadoras personales en los
años 90 y principios de los 2000.

Arquitectura del Pentium

El procesador Pentium introdujo varias mejoras en la arquitectura x86 que lo


hicieron más eficiente y potente. A continuación, te explico los puntos clave de su
arquitectura:

1. Superescalar: Uno de los avances más importantes del Pentium fue que
era superescalar, lo que significa que podía ejecutar más de una
instrucción por ciclo de reloj. Esto mejoró enormemente el rendimiento, ya

17
que las computadoras podían realizar varias tareas al mismo tiempo,
algo que antes no era posible.
2. Pipeline de cinco etapas: El Pentium utilizaba un sistema de
"pipeline" de cinco etapas. Esto significa que las instrucciones que recibía
se dividían en cinco fases (buscar, decodificar, ejecutar, escribir resultado,
etc.). Este diseño permitía que el procesador comenzara a trabajar en la
siguiente instrucción antes de que la anterior hubiera terminado,
acelerando el procesamiento.
3. Coprocesador matemático integrado: En las generaciones anteriores,
como el 486, los cálculos matemáticos avanzados requerían un
coprocesador separado. Con el Pentium, Intel incluyó un coprocesador
matemático integrado, lo que hizo que los cálculos de punto flotante
fueran mucho más rápidos y eficientes. Esto fue especialmente útil para
aplicaciones gráficas y científicas.
4. Memoria caché mejorada: El Pentium contaba con dos niveles de caché,
L1 para datos y L1 para instrucciones, lo que permitía que el procesador
accediera rápidamente a la información más utilizada sin tener que ir a la
memoria RAM constantemente. Esta mejora hizo que las computadoras
fueran más rápidas y eficientes.

Evolución del Pentium

El procesador Pentium original fue solo el comienzo de una familia de


procesadores que se fue desarrollando a lo largo de los años. Algunos de los más
destacados fueron:

● Pentium Pro (1995): Este procesador fue diseñado para servidores y


estaciones de trabajo avanzadas. Introdujo la idea de ejecutar múltiples
instrucciones fuera de orden, una técnica que mejoró aún más la eficiencia.
● Pentium II (1997): Este procesador mejoró la velocidad y el rendimiento
del Pentium original al introducir nuevas tecnologías, como un mayor

18
tamaño de caché y un mejor soporte para gráficos 3D, que
comenzaron a ser populares en los videojuegos y aplicaciones
gráficas.
● Pentium III (1999): Con el auge de internet, el Pentium III incluyó
optimizaciones para aplicaciones en línea y multimedia. Introdujo las
instrucciones SSE (Streaming SIMD Extensions), que mejoraban el
rendimiento en operaciones de video y gráficos.
● Pentium 4 (2000): Con un enfoque en lograr velocidades de reloj más
altas, el Pentium 4 fue conocido por llegar a frecuencias superiores a los 3
GHz. Aunque era más rápido en algunas tareas, su eficiencia energética
era menor en comparación con generaciones anteriores.

19
Importancia del Pentium en la Computación Personal

La serie Pentium fue fundamental para el crecimiento de las computadoras


personales. Antes de Pentium, las computadoras eran relativamente lentas y
caras, lo que limitaba su adopción en hogares. Con la llegada del Pentium, las
computadoras se volvieron lo suficientemente potentes como para manejar tareas
multimedia, juegos y, más adelante, aplicaciones web. Gracias a su precio más
accesible y su rendimiento superior, el Pentium impulsó la popularización de las
PC en todo el mundo.

El Legado de Pentium

Aunque la serie de procesadores Core de Intel


eventualmente reemplazó a Pentium como la
principal línea de procesadores para
computadoras personales, el legado de
Pentium sigue presente. Los procesadores
Pentium continuaron evolucionando como
opciones de bajo costo para computadoras de
entrada, mientras que Intel desarrollaba líneas
más potentes como Core i3, i5, i7 e i9.

El impacto de Pentium en el desarrollo de la informática fue enorme. Muchas de


las innovaciones que introdujo, como la arquitectura superescalar, el pipeline y el
coprocesador matemático integrado, sentaron las bases para los procesadores
modernos.

20
6. ULTRASPARC II

Es una de las primeras versiones de la familia de microprocesadores


UltraSPARC, desarrollados por Sun Microsystems como parte de su línea de
procesadores RISC (Reduced Instruction Set Computing) basados en la
arquitectura SPARC V9. Fue lanzado en 1997 y jugó un papel fundamental en las
estaciones de trabajo y servidores de gama alta de Sun durante la segunda mitad
de la década de los 90 y principios de los 2000.

Arquitectura y Tecnología

El UltraSPARC II utiliza la arquitectura SPARC V9,


que es una versión de 64 bits del conjunto de
instrucciones SPARC, lo que permitió mayores
capacidades de cálculo y manejo de grandes
cantidades de memoria. La arquitectura RISC, en la
que está basado, se enfoca en ejecutar
instrucciones simples y optimizadas, lo que permite
un alto rendimiento y eficiencia energética.

Características principales de la arquitectura:

● 64-bit: Soporta direccionamiento y procesamiento de 64 bits, lo que permite


el uso eficiente de grandes cantidades de memoria RAM y una mayor
precisión en los cálculos de enteros.
● Pipeline Superescalar: El UltraSPARC II es un procesador superescalar,
lo que significa que puede ejecutar múltiples instrucciones por ciclo de
reloj. Esto se logra dividiendo las instrucciones en diferentes etapas dentro
de la "línea de ensamblaje" del procesador, permitiendo que varias
operaciones se procesen simultáneamente.
● Unidad de punto flotante (FPU): Al ser un procesador de gama alta, el
UltraSPARC II tiene una unidad de punto flotante integrada que está

21
optimizada para cálculos científicos y gráficos, lo que lo hizo adecuado
para tareas intensivas como simulaciones, modelado y gráficos 3D.
● Instrucciones multimedia VIS (Visual Instruction Set): Incluye
un conjunto de instrucciones especializadas diseñadas para acelerar
operaciones multimedia como procesamiento de gráficos, video y señales,
permitiendo mejorar el rendimiento en aplicaciones visuales.

Rendimiento

El UltraSPARC II fue lanzado en


versiones con diferentes velocidades de
reloj, que iban desde los 250 MHz
hasta los 650 MHz, dependiendo del
modelo y el proceso de fabricación
utilizado. Las versiones más rápidas
estaban dirigidas a servidores de gama
alta donde el rendimiento era clave.

Algunas variantes de la serie UltraSPARC II incluyen:

● UltraSPARC IIi: Una versión optimizada para integrar más funciones en el


chip y con un costo más bajo, diseñada principalmente para estaciones de
trabajo más asequibles.
● UltraSPARC IIe: Esta variante fue diseñada específicamente para
servidores integrados y estaciones de trabajo de nivel medio.

Eficiencia en multitarea:

Gracias a su arquitectura superescalar y su capacidad para manejar grandes


cantidades de memoria, el UltraSPARC II podía ejecutar aplicaciones complejas y
multitarea sin comprometer el rendimiento, algo que era esencial para entornos
de servidores.

22
Memoria y Caché

El UltraSPARC II cuenta con:

● Caché L1 (nivel 1) integrada para instrucciones y datos, de 16 KB cada


una.
● Caché L2 (nivel 2): Soporta una caché externa de hasta 8 MB, lo cual
ayudaba a mantener un rendimiento óptimo en aplicaciones que requerían
acceso rápido a grandes volúmenes de datos. La caché L2 es crucial para
reducir los tiempos de acceso a la memoria principal, mejorando la
velocidad de procesamiento.

Proceso de Fabricación

Los primeros UltraSPARC II se fabricaron utilizando un proceso de 0.35 micras.


Más adelante, el proceso de fabricación se redujo a 0.25 micras, lo que permitió
que el chip fuera más eficiente y alcanzara mayores velocidades de reloj al
reducir la distancia que las señales electrónicas debían recorrer dentro del chip.
Esta transición también permitió una mayor integración de transistores y una
mejora en el consumo de energía.

Aplicaciones

El UltraSPARC II fue utilizado principalmente en


estaciones de trabajo y servidores de Sun
Microsystems, conocidos como Sun Enterprise y Sun
Ultra Workstations. Estos equipos estaban orientados
a sectores como la investigación científica, la ingeniería,
las telecomunicaciones y las finanzas, donde se
requería gran capacidad de procesamiento y fiabilidad.

23
Algunos ejemplos de aplicaciones:

● Servidores empresariales: Los sistemas basados en UltraSPARC


II se utilizaron ampliamente en grandes centros de datos para gestionar
bases de datos críticas, servidores web y aplicaciones empresariales.
● Estaciones de trabajo para diseño y simulación: Estas estaciones de
trabajo eran ideales para ingenieros y científicos que necesitaban un alto
rendimiento gráfico y capacidad de cálculo para simulaciones y modelado
3D.
● Procesamiento multimedia y gráficos: Gracias a las instrucciones VIS,
los procesadores UltraSPARC II eran capaces de manejar cargas de
trabajo multimedia pesadas, como edición de video, diseño gráfico y otras
aplicaciones que dependían de procesamiento visual intensivo.

Innovaciones Técnicas

El UltraSPARC II introdujo algunas innovaciones clave para su época:

● Coprocesador VIS (Visual Instruction Set): Aceleración de aplicaciones


multimedia y gráficos.
● Optimización para multitarea: Capacidad de manejar múltiples procesos
simultáneos de manera eficiente.
● Diseño superescalar: Capacidad para ejecutar múltiples instrucciones por
ciclo de reloj, lo que permitió un aumento significativo en el rendimiento
global en comparación con sus predecesores.

24
7. PICOJAVA II

El PicoJava II es un diseño de
microprocesador basado en la arquitectura
Java que fue desarrollado por **Sun
Microsystems** a finales de los años 90. Se
diseñó específicamente para ejecutar de
manera eficiente programas escritos en el
lenguaje de programación Java, lo que lo
convierte en un procesador especializado
en el procesamiento de bytecode Java, el
código intermedio generado por el
compilador de Java.

Antecedentes

Java, como lenguaje de programación, se popularizó por su enfoque


multiplataforma gracias a su lema "Write Once, Run Anywhere" (Escribe una vez,
ejecútalo en cualquier lugar), donde el código Java se compila en bytecode, el
cual es ejecutado por una máquina virtual Java (JVM) en diferentes plataformas.
Sin embargo, la ejecución de bytecode Java en procesadores convencionales
(como los basados en la arquitectura x86 o RISC) requería una capa de
interpretación, lo que podía disminuir el rendimiento. Sun Microsystems buscaba
eliminar esa barrera de rendimiento al crear un procesador que ejecutara
bytecode Java de manera nativa.

PicoJava II

El PicoJava II fue una evolución de la primera versión del procesador PicoJava.


Su principal característica es que fue diseñado para ejecutar bytecode Java
directamente en hardware, lo que permitía mejorar significativamente el
rendimiento de las aplicaciones Java, ya que eliminaba la necesidad de
interpretar el bytecode mediante software (JVM). Esto lo convertía en un

25
procesador ideal para dispositivos embebidos, donde el uso de Java
estaba empezando a ganar terreno.

Características principales del PicoJava II:

1. Ejecución directa de bytecode Java: El procesador estaba optimizado para


ejecutar el conjunto de instrucciones del bytecode Java, lo que reducía la
sobrecarga asociada a la interpretación o compilación de este código
intermedio.
2. Arquitectura RISC: Aunque estaba diseñado para ejecutar Java, el
PicoJava II también podía ejecutar algunas instrucciones no Java (RISC),
lo que le daba cierta flexibilidad.
3. Pipeline de cuatro etapas: Al igual que muchos procesadores de esa
época, contaba con un pipeline para mejorar el rendimiento. Este pipeline
permitía la ejecución en paralelo de diferentes instrucciones.
4. Control de excepciones y recolección de basura (garbage collection): El
procesador también tenía características específicas para mejorar el
manejo de excepciones y facilitar la recolección de basura, lo que es
fundamental en el entorno de ejecución de Java.
5. Compatibilidad con JVM: Aunque el PicoJava II ejecutaba bytecode Java
en hardware, era compatible con las versiones estándar de la JVM, lo que
facilitaba la migración de software Java a hardware basado en PicoJava.

26
Ventajas

❖ Mejora del rendimiento: La capacidad de ejecutar bytecode Java


directamente en hardware eliminaba la necesidad de un intérprete o
compilador Just-In-Time (JIT), lo que mejoraba notablemente el
rendimiento en comparación con las arquitecturas convencionales.
❖ Dispositivos embebidos: Al ser un procesador eficiente en la ejecución de
Java, fue una opción atractiva para dispositivos embebidos y sistemas con
recursos limitados, como teléfonos móviles y set-top boxes, donde Java
estaba empezando a ganar popularidad.

Limitaciones

❖ Falta de adopción generalizada: A pesar de sus ventajas, el PicoJava II no


tuvo una adopción masiva, en parte debido a la evolución de otros
procesadores generales que comenzaron a optimizar la ejecución de Java
mediante mejoras en las JVM y compiladores JIT.
❖ Compatibilidad limitada: Aunque el procesador estaba optimizado para
Java, su rendimiento en aplicaciones no Java era limitado, lo que reducía
su atractivo en sistemas más generales donde se usaban otros lenguajes y
aplicaciones.

Impacto y legado

Aunque el PicoJava II no se convirtió en un estándar para la ejecución de Java,


su diseño inspiró el desarrollo de otras arquitecturas especializadas en ejecutar
lenguajes de programación específicos de manera más eficiente. Además, los
conceptos detrás de la ejecución directa de bytecode influyeron en el desarrollo
de compiladores JIT más avanzados en las JVM modernas.

La tecnología del PicoJava II también fue licenciada a varias compañías para su


uso en dispositivos específicos, y en algunos casos fue integrado en sistemas
embebidos que ejecutaban aplicaciones Java.

27
8. PIPELINE

La arquitectura en pipeline consiste en ir transformando un flujo de datos


en un proceso comprendido por varias fases secuenciales, siendo la entrada de
cada una la salida de la anterior, con almacenamiento temporal de datos o
buffering entre los
procesos. El nombre
quiere decir en español
"tuberías", y el sistema es
básicamente como el
agua que circula por
cañerías o tubos. En este
caso el agua vendría a ser
la información o los
procesos.

Los elementos de una tubería a menudo se ejecutan en paralelo o en forma de


división de tiempo; en ese caso, a menudo se inserta cierta cantidad de
almacenamiento intermedio entre los elementos.

Los pipelines relacionadas con computadoras incluyen:

● pipeline de instrucciones , como la tubería RISC clásica , que se utilizan


en unidades de procesamiento central (CPU) para permitir la ejecución
superpuesta de instrucciones múltiples con el mismo circuito . Los circuitos
generalmente se dividen en etapas y cada etapa procesa una instrucción a
la vez. Ejemplos de etapas son decodificación de instrucciones, aritmética /
lógica y búsqueda de registros.
● pipeline de gráficos , que se encuentran en la mayoría de las unidades de
procesamiento gráfico (GPU), que consisten en unidades aritméticas
múltiples o CPU completas que implementan las distintas etapas de las
operaciones comunes de renderizado ( proyección de perspectiva , recorte
de ventana, cálculo de color y luz , renderizado, etc.) .

28
● Canalizaciones de software , donde se pueden escribir
comandos donde la salida de una operación se pasa
automáticamente a la siguiente, después de la operación. El
conducto de llamada del sistema Unix es un ejemplo clásico de este
concepto, aunque otros sistemas operativos también admiten tubos.
● Canalización de HTTP , donde se envían varias solicitudes sin esperar el
resultado de la primera solicitud.

Formas de Pipeline

· Pipeline Lineal: Un procesador de tubería lineal es una serie de etapas de


procesamiento y acceso a la memoria.

· Pipeline No Lineal: Una canalización no lineal (también denominada


canalización dinámica) se puede configurar para realizar varias funciones en
diferentes momentos. En una canalización dinámica, también hay una
conexión de feed-forward o feed-back. Una tubería no lineal también permite
palabras de instrucción muy largas.

Ciclo de vida de una instrucción

La acción básica de cualquier microprocesador, en tanto se mueva a través de la


corriente de instrucciones, se puede descomponer en 4 pasos, que cada
instrucción en la corriente de código se debe atravesar para poder ejecutarse con
éxito:

1. Fetch: se encarga de “traer” la instrucción que se debe ejecutar, de la


dirección que está almacenada en el contador del programa.
2. Store: se encarga de “guardar o almacenar” la instrucción en el registro de
instrucciones y luego “descifrarla”, incrementando la dirección en el
contador de programa.
29
3. Execute: se ejecuta la instrucción almacenada en el registro de
instrucciones. Si la instrucción no es un instrucción de rama si no
una instrucción aritmética, este proceso la envía la ALU donde el
microprocesador “lee” el contenido de los registros de entrada y “agrega” el
contenido de los registros de entrada.
4. Write: “escribe” los resultados de esa instrucción dentro del registro de
destinación.

En un proceso moderno, los cuatro pasos son repetidos una y otra vez hasta que
el programa termine de ejecutarse.

Características de una pipeline

Dentro del Pipeline se puede hablar de niveles de paralelismo que son


caracterizados de la siguiente manera:

● Multiprogramación y Multiprocesamiento: Estas acciones se toman a un


nivel de Programa o Trabajo.
● Tarea o Procedimientos: Acciones que se toman dentro de un mismo
programa ejecutándose procesos
que son independientes de
manera simultánea.
● Interinstrucciones: Acciones a
nivel de instrucción, o sea dentro
del mismo proceso o tarea sé que
se pueden ejecutar instrucciones
independientes de manera
simultánea.

30
9. TAXONOMÍA DE FLYNN

En 1966 Michael Flynn propuso un mecanismo de clasificación de las


computadoras. El método de Flynn se basa en el número de instrucciones y de la
secuencia de datos que la computadora utiliza para procesar información. Puede
haber secuencias de instrucciones sencillas o múltiples y secuencias de datos
sencillas o múltiples. Esto da lugar a 4 tipos de computadoras, de las cuales
solamente dos son aplicables a las computadoras paralelas.

La taxonomía de Flynn clasifica las arquitecturas de las


computadorassegún la presencia de únicos o múltiples flujos de datos e
instrucciones

● SISD define las computadoras seriales.


● MISD implica que muchos procesadores aplican
diferentesinstrucciones al mismo dato, esta posibilidad hipotética
seconsidera generalmente impracticable.
● SIMD implica que múltiples procesadores
ejecutansimultáneamente la misma instrucción sobre diferentes
datos.
● MIMD implica que múltiples procesadores
ejecutanautónomamente diversas instrucciones sobre diversos
datos.

31
● SISD: Una única instrucción para un solo dato, o dicho de otra
forma interpreta una única secuencia de instrucciones para operar con los
datos de una única memoria, es típico de Von Neumann, es además
arquitectura de un único procesador.

La unidad de control se representa como CU, para la unidad de procesamiento


tenemos PU, en la unidad de memoria MU y ellos estarán conformados en la
cadena de instrucciones para un determinado elemento de proceso.

Caracteristicas del modelo SISD:

o La CPU procesa únicamente una instrucción por cada ciclo de reloj

o Únicamente un dato es procesado en cada ciclo de reloj

o Es el modelo más antiguo de computadora y el más extendido

● SIMD: Una única instrucciones va a controlar la ejecución simultánea de


varias unidades de proceso, podría decirse que para esta arquitectura se
explotarán varios flujos de datos dentro de un único flujo de instrucciones,
para los sistemas típicos son los procesadores vectoriales y matriciales,
será típico de arrays de procesadores y que además distribuyen el proceso

32
sobre una cantidad considerable de hw, la unidad de control es por si
misma un computador de Von Neumann, se podría decir que se le dice
UC ya que esta diseñada para controlar los procesadores.

Características del modelo SIMD:

o Todas las unidades ejecutan la misma instrucción

o Cada unidad procesa un dato distinto

o Todas las unidades operan simultáneamente

Flynn de 1972 subdividió SIMD en tres categorías adicionales:

o Procesador de rayos – Estos reciben la instrucción (samo) pero


cada unidad de procesamiento paralelo tiene su propio archivo de
memoria y registro separado y distinto.

o Procesador de tuberías – Estos reciben la instrucción (samo) pero


luego leen los datos de un recurso central, cada uno procesa
fragmentos de esos datos, luego escribe los resultados al mismo
recurso central.

o Procesador asociado – Estos reciben la instrucción (samo) pero en


cada unidad de procesamiento paralelo una independiente se toma

33
la decisión sobre la base de datos local a la unidad, en cuanto a
si realizar la ejecución o si saltarla. En terminología moderna
esto se conoce como "predicado" (masked) SIMD.

● MISD: Para este caso se transmite una dicha secuencia de datos a un


determinado conjunto de procesadores, para cada procesador se ejecuta
una instrucción diferente sobre el mismo conjunto de datos.

Características del modelo MISD:

o Cada unidad ejecuta una instrucción distinta

o Cada unidad procesa el mismo dato

o Aplicación muy limitada en la vida real

● MIMD: Se representa como un conjunto de procesadores que ejecutan


distintas instrucciones sobre distintos conjuntos de datos diferentes, y que
además son de carácter general.

34
Para esta arquitectura tenemos que se distribuye el procesamiento
entre un número determinado de procesadores independientes,
además cada procesador opera concurrentemente y en paralelo con
el resto, y cada procesador puede ejecutar su propio programa.

Características del modelo MIMD:

o Cada unidad ejecuta una instrucción distinta

o Cada unidad procesa un dato distinto

o Todas las unidades operan simultáneamente

Clasificaciones Adicionales

Aunque estos no forman parte del trabajo de Flynn, algunos dividen aún más la
categoría MIMD en las dos categorías siguientes y, a veces, se consideran
subdivisiones adicionales.

● Un programa, múltiples datos (SPMD) - múltiples procesadores


autónomos que trabajan simultáneamente sobre el mismo conjunto de
instrucciones (aunque en puntos independientes) sobre datos diferentes.
También se le llama 'un proceso, múltiples datos'.

● Múltiples programas, múltiples datos (MPMD) - múltiples procesadores


autónomos que trabajan simultáneamente sobre al menos dos programas
independientes. Normalmente este sistema elige a un nodo para ser el host
o administrador, que corre el programa y otorga los datos a todos los
demás nodos que ejecutan un segundo programa. Esos demás nodos

35
devuelven sus resultados directamente al administrador. Un ejemplo
podría ser la consola de Sony PlayStation 3, que tiene la arquitectura
de procesador SPU/PPU.

10. ARREGLOS DE PROCESADORES

Los arreglos de procesadores, también conocidos como procesamiento en


paralelo o procesamiento vectorial, son una arquitectura avanzada utilizada en
procesadores que permite realizar múltiples tareas de forma simultánea,
aumentando considerablemente el rendimiento. Este enfoque se utiliza para
mejorar la eficiencia en aplicaciones que requieren mucha potencia de cálculo,
como la inteligencia artificial, simulaciones científicas o gráficos 3D.

¿Qué son los Arreglos de Procesadores?

Un arreglo de
procesadores es
básicamente un sistema
donde varios
procesadores trabajan
juntos de forma
coordinada para
resolver una tarea
grande. Imagina que tienes que hacer un trabajo que toma mucho tiempo si lo
haces solo, pero si puedes dividirlo entre varias personas, el trabajo se completa
mucho más rápido. Eso es exactamente lo que hacen los procesadores en un
arreglo: dividen una tarea grande en muchas pequeñas y cada procesador se
encarga de una parte.

En lugar de tener un solo procesador que realiza una tarea a la vez, como
sucedía en las computadoras más antiguas, los arreglos de procesadores

36
permiten que varias unidades de procesamiento trabajen en paralelo, lo
que mejora la velocidad y la eficiencia.

Tipos de Arreglos de Procesadores

Existen diferentes formas de organizar y coordinar los procesadores en un


arreglo. Aquí están los principales tipos:

1. Sistemas Multi-core (Multinúcleo): Es uno de los tipos más comunes de


arreglos de procesadores en la actualidad. Los procesadores multi-core
tienen múltiples núcleos de procesamiento dentro de un solo chip. Por
ejemplo, un procesador quad-
core tiene cuatro núcleos que
pueden trabajar al mismo tiempo
en diferentes tareas. Estos
núcleos están diseñados para
ejecutar instrucciones de manera
independiente, lo que permite
que se ejecuten varias
aplicaciones simultáneamente
sin que la computadora se
ralentice.
○ Ejemplo simple: Imagina que estás viendo un video en YouTube
mientras escuchas música y tu computadora está descargando un
archivo. Con un procesador multinúcleo, cada una de esas tareas
puede ser manejada por un núcleo diferente, por lo que todas se
ejecutan sin problemas.
2. Procesamiento en paralelo SIMD (Single Instruction, Multiple Data): En
este tipo de arquitectura, un único procesador ejecuta una instrucción, pero
esa instrucción se aplica simultáneamente a múltiples datos. Esto es útil en
tareas donde se necesita procesar grandes cantidades de datos en
paralelo, como en gráficos 3D o cálculos científicos. Las GPU (Unidades

37
de Procesamiento Gráfico) son un buen ejemplo de este tipo de
arquitectura.
○ Ejemplo simple: Si tienes que aplicar un mismo filtro a varias
imágenes al mismo tiempo, con SIMD puedes hacerlo mucho más
rápido porque el procesador aplica la misma instrucción a todos los
datos simultáneamente.
3. Procesamiento en paralelo MIMD (Multiple Instruction, Multiple Data):
En este caso, múltiples procesadores pueden ejecutar instrucciones
diferentes al mismo tiempo en distintos conjuntos de datos. Es decir, no
solo se están manejando datos diferentes, sino que también se están
ejecutando diferentes instrucciones en paralelo. Esto es útil en sistemas
donde se ejecutan varias tareas complejas al mismo tiempo, como en
supercomputadoras o servidores grandes.
○ Ejemplo simple: Piensa en una granja de servidores en internet
donde diferentes procesadores están manejando millones de
solicitudes de usuarios. Cada procesador está ejecutando una
instrucción diferente para un usuario diferente.

Ventajas de los Arreglos de Procesadores

El uso de arreglos de procesadores tiene varias ventajas importantes,


especialmente en aplicaciones que requieren mucha potencia de cálculo. Algunas
de estas ventajas incluyen:

● Mayor rendimiento: Al dividir una tarea en múltiples partes y procesarlas


en paralelo, el trabajo se completa mucho
más rápido en comparación con un solo
procesador trabajando de manera
secuencial.
● Eficiencia en el consumo de energía: En
muchos casos, los procesadores multi-core
pueden ser más eficientes

38
energéticamente, ya que permiten completar tareas en menos tiempo y
con menor carga en cada núcleo.
● Mejor manejo de múltiples aplicaciones: En una computadora
con varios núcleos, es mucho más fácil ejecutar varias aplicaciones al
mismo tiempo sin que se afecte el rendimiento general.

Aplicaciones de los Arreglos de Procesadores

Los arreglos de procesadores se utilizan en una variedad de campos, cada uno


de los cuales se beneficia de su capacidad para realizar tareas en paralelo:

1. Simulaciones científicas:
Cuando los científicos realizan
simulaciones complejas, como
el modelado del clima, los
procesadores en paralelo
permiten manejar la gran
cantidad de cálculos necesarios
en menor tiempo.
2. Gráficos y videojuegos: Las tarjetas gráficas (GPU) son un ejemplo
clásico de arreglos de procesadores en acción. Una GPU está diseñada
con cientos o miles de pequeños procesadores que trabajan en paralelo
para procesar los gráficos de manera rápida y eficiente. Esto es crucial
para los videojuegos, donde cada fotograma debe ser renderizado
rápidamente para evitar retrasos.

39
3. Inteligencia Artificial:
En áreas como el
aprendizaje profundo,
donde se manejan grandes
volúmenes de datos y se
requieren miles de cálculos
simultáneos, los arreglos de
procesadores permiten entrenar modelos de inteligencia artificial de
manera más eficiente.
4. Computación en la nube: Los servidores que soportan los servicios en la
nube dependen de arreglos de procesadores para manejar las solicitudes
de miles o millones de usuarios de forma simultánea. Esto permite que los
servicios en línea funcionen de manera fluida.

Desafíos de los Arreglos de Procesadores

A pesar de todas las ventajas, el uso de arreglos de procesadores también


presenta algunos desafíos:

● Complejidad en la programación: Diseñar software que pueda


aprovechar eficientemente múltiples procesadores es más complicado que
escribir programas para un solo procesador. Los desarrolladores deben
pensar en cómo dividir las tareas de manera efectiva para evitar que los
procesadores estén inactivos.
● Sincronización: Cuando varios procesadores están trabajando en
paralelo, deben sincronizarse correctamente para evitar conflictos,
especialmente cuando están accediendo a la misma memoria o recursos.
● Consumo de energía: Aunque los procesadores multi-core pueden ser
más eficientes en algunos casos, en aplicaciones de procesamiento
masivo en paralelo, como en supercomputadoras, el consumo de energía
puede ser un gran desafío.

40
11. PROCESADORES VECTORIALES

Un procesador vectorial es una unidad central de procesamiento (CPU) que


implementa un conjunto de instrucciones que contienen instrucciones que operan
en un arreglo unidimensional de datos llamados vectores.

Estas operaciones consistirán en funciones aritméticas y lógicas aplicadas sobre


los componentes de los vectores. La diferencia entre un procesador vectorial y
uno escalar estriba en que el procesador vectorial puede decodificar instrucciones
cuyos operandos son vectores completos. La conversión de un programa
correspondiente a un procesador escalar a otro vectorial se llama vectorización.

Los primeros procesadores vectoriales aparecieron en los 70, siendo la base de


la mayoría de las supercomputadoras entre los 80 y los 90. Los procesadores
vectoriales eran comunes en computadoras para investigaciones científicas.

Procesamiento Vectorial

Un operando vectorial
contiene una secuencia
de n elementos, llamados
componentes, donde n
es la longitud del vector.
Cada componente del
vector es un escalar de
cualquier tipo (entero,
punto flotante, etc.). Los
operadores vectoriales
pueden tener cinco
formas.

41
Ventajas

● En las operaciones vectoriales, cada resultado es independiente de los


anteriores.
● Una simple instrucción vectorial sustituye a muchas escalares, teniendo un
cuello de botella pequeño.
● Las instrucciones vectoriales que precisan acceder a memoria, lo hacen
con un patrón de acceso fijo (normalmente serán adyacentes). Esto
facilitará su lectura paralela mediante una memoria entrelazada.
● Si se utiliza una instrucción vectorial, evitaremos el riesgo de control de
salto de bucle.
● Por todas estas razones, las operaciones vectoriales pueden ejecutarse de
forma rápida que la secuencia de instrucciones equivalentes sobre el
mismo conjunto de datos.

Desventajas

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.

42
Rendimiento de los Procesadores Vectoriales.

Para el cálculo del rendimiento de los procesadores vectoriales debemos tomar


en cuenta:

● El tiempo necesario para procesar cada componente en una pasada del


bucle.
● El tiempo de inicialización de cada bucle provocado por el seccionamiento.
● El tiempo ocupado por el arranque del programa, carga inicial de los
vectores en los registros, etc (BASTIDA, 2006).

Arquitectura de los Procesadores Vectoriales.

● Procesador Vectorial Memoria-Memoria.

Es capaz de extraer dos vectores de memoria y operar sobre ellos. El


inconveniente de este tipo de máquinas sería el cuello de botella que
supondrían los accesos de memoria

Para mejorar se debe aumentar el ancho debanda de la memoria, esto se


consigue entrelazando memorias, de modo que se tenga varios módulos y se
pueda acceder de manera simultánea a varias posiciones consecutivas que se
hallen en módulos diferentes. Además de añadir una memoria intermedia de
mayor velocidad entre la memoria y el procesador.

● Procesador Vectorial Registro-Registro.

43
Son procesadores vectoriales que dispongan de un banco o registros
vectoriales que hagan de memoria intermedia, generalmente los
procesadores vectoriales actúan como coprocesadores de
procesadores escalares que trata las instrucciones no vectoriales.

Los computadores vectoriales


se pueden considerar cómo
computadoras del tipo SIMD de
Flynn, sin embargo, hay que
tener en cuenta, que si bien los
procesadores vectoriales
ejecutan la misma instrucción
sobre datos diferentes, estos
datos forman parte del mismo flujo, por eso se los llama máquinas SIMD
vectoriales.

44
12. MULTIPROCESADOR

Un multiprocesador es un sistema informático con dos o más unidades


centrales de procesamiento (CPU), y cada una comparte la memoria principal
común y los periféricos. Esto ayuda en el procesamiento simultáneo de
programas.

El objetivo clave de usar un multiprocesador es aumentar la velocidad de


ejecución del sistema, con otros objetivos como tolerancia a fallas y coincidencia
de aplicaciones.

Una buena ilustración de un multiprocesador es una torre central única conectada


a dos sistemas informáticos. Un multiprocesador se considera como un medio
para mejorar las velocidades de cómputo, el rendimiento y la rentabilidad, así
como para proporcionar una mayor disponibilidad y confiabilidad.

Los ordenadores multiprocesador presentan problemas de diseño que no se


encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho
de que dos programas pueden ejecutarse simultáneamente y, potencialmente,
pueden interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y
escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:

● La arquitectura NUMA, donde cada procesador tiene acceso y control


exclusivo a una parte de la memoria.
● La arquitectura SMP, donde todos los procesadores comparten toda la
memoria.

Esta última debe lidiar con el problema de la coherencia de caché. Cada


microprocesador cuenta con su propia memoria cache local. De manera que
cuando un microprocesador escribe en una dirección de memoria, lo hace
únicamente sobre su copia local en caché. Si otro microprocesador tiene
almacenada la misma dirección de memoria en su caché, resultará que trabaja

45
con una copia obsoleta del dato almacenado.
Para que un multiprocesador opere correctamente necesita un sistema
operativo especialmente diseñado para ello. La mayoría de los sistemas
operativos actuales poseen esta capacidad.

Hay dos formas de incrementar el rendimiento del hardware, la primera es


incrementando la velocidad del procesador, lo cual con lleva a la disminución del
tamaño de los componentes, pero esta solución se ve limitada por las leyes de la
física, ya que al hacer los componentes mas pequeños con la finalidad de

incrementar su velocidad, comienzan a aparecer corrientes de fuga, corrientes


que deberían detenerse en una compuerta lógica determinada, pero que debido a
la proximidad saltan de una compuerta a otra, produciendo errores inesperados.
La otra forma es tomar los componentes, replicarlos y duplicar sus estructuras
para hacer un efecto de “la unión hace la fuerza.

La idea principal de los sistemas de multiprocesadores es lograr la unión de los


procesadores de forma tal que trabajen como si se tratase de una única
computadora, en la cual se encuentran reunidas las capacidades de
procesamiento de todos los procesadores y claro esta del resto de los recursos
asociados a estos, como lo es la RAM, la memoria secundaria y los dispositivos
de entrada y salida.

46
Los equipos de multiprocesadores son empleados generalmente para la
realización de cálculos complejos en investigación científica o para
simular modelos de diferentes ciencias y que serian imposibles de
procesador por un equipo convencional debido a la gran cantidad de variables a
analizar.

El multiprocesamiento ofrece un aumento en la productividad al permitir la


ejecución de diferentes procesos sobre diferentes procesadores, al mismo tiempo
que ofrece un aumento en la velocidad con la que se ejecutan los procesos, pero
estas mejoras no están libres de ciertas complicaciones, al realizar una ejecución
paralela de un programa, las diferentes partes del programa deben de
sincronizarse e intercambiar datos para poder completar los cálculos, lo cual
necesita hacerse con protección, detección y corrección de errores.

Los motivos para usar un sistema multiprocesador son variados, pero podemos
mencionar:

● Rendimiento y potencia de calculo. Al ejecutar los programas de forma


paralela
● Tolerancia a fallos. La redundancia natural de un sistema multiprocesador
permite transferir un proceso a otros procesadores en caso de fallo.
● Flexibilidad. Los sistemas multiprocesador pueden reconfigurarse
dinámicamente para adaptarse a las cargas de trabajo.
● Escalabilidad. Se pueden añadir nuevos módulos para incrementar la
potencia de calculo.
● Especialización funcional. Se pueden agregar procesadores de diseño
especifico para dedicarse a una determinada tarea

Los multiprocesadores se clasifican de acuerdo a la clasificación de arquitecturas


paralelas propuesto por Flynn, en el cual se toman como componentes el flujo de
instrucciones y la cantidad de datos, creando los siguientes elementos:

● SI.- Flujo de instrucciones simple

47
● MI.- Flujo de instrucciones multiple
● SD.- Un dato simple
● MD.- Datos multiples

Con lo cual se produce la siguiente clasificación:

● SISD: Sistemas monoprocesador.


● SIMD: Sistemas vectoriales en los que una instrucción puede operar sobre
diferentes datos en diferentes procesadores.
● MISD.- En este esquema multiples instrucciones operan sobre un mismo
dato.
● MIMD.- Estos incluyen a la mayoría de los multiprocesadores

Los multiprocesadores del modelo MIMD pueden ser clasificados a su vez


en:

● Fuertemente acoplados.- Cuando existe memoria global


● Débilmente acoplados.- Cuando en lugar de memoria global se usa
memoria privada

Una memoria global indica que todos los procesadores acceden a una misma
memoria común, mientras que la memoria privada indica que cada procesador
posee su propia memoria y que ninguno de los procesadores tiene acceso a la
memoria de otro procesador.

48
13.

MULTICOMPUTADORAS

Se refiere a un sistema compuesto


por varias computadoras
independientes conectadas entre sí
para trabajar de manera conjunta en
la resolución de tareas o problemas específicos. Estas computadoras, aunque
autónomas, se coordinan para compartir y distribuir el procesamiento de datos.
Las multicomputadoras son un tipo de arquitectura distribuida, donde cada nodo o
computadora individual tiene su propia memoria, procesador y sistema operativo,
a diferencia de los sistemas de multiprocesamiento, donde varios procesadores
comparten una única memoria.

Características principales de las multicomputadoras:

1. Distribución de la memoria: En una multicomputadora, cada nodo


(computadora) tiene su propia memoria local, y no hay una memoria
compartida entre los nodos. Este modelo es conocido como memoria
distribuida.
2. Comunicaciones a través de redes: Las computadoras dentro de una
multicomputadora se comunican entre sí mediante redes de interconexión.
Estas redes pueden ser redes locales (LAN) o redes especializadas de alta
velocidad. La comunicación por mensajes es el método común para
intercambiar datos entre los nodos.
3. Escalabilidad: Las multicomputadoras son altamente escalables, lo que
significa que se pueden añadir más nodos fácilmente para aumentar el
poder de procesamiento. Esto las hace adecuadas para aplicaciones que
requieren grandes cantidades de procesamiento y capacidad de cálculo,

49
como simulaciones científicas, procesamiento de datos masivos y
aplicaciones de inteligencia artificial.
4. Procesamiento paralelo: Al estar compuestas por múltiples
computadoras, las multicomputadoras son ideales para el procesamiento
paralelo, donde diferentes nodos pueden ejecutar partes de un programa
al mismo tiempo. Esto acelera el tiempo de resolución de problemas
complejos.

Arquitectura de una multicomputadora:

● Nodos independientes: Cada nodo es una computadora autónoma con su


propio procesador, memoria, almacenamiento y recursos de entrada/salida.
● Red de interconexión: Los nodos están conectados por una red que
permite el envío de mensajes y datos entre
ellos.
● Sistema operativo distribuido: Aunque
cada nodo puede tener su propio sistema
operativo, algunos sistemas de
multicomputadoras utilizan un sistema
operativo distribuido que coordina y
gestiona los recursos de todos los nodos
como si fuera un sistema unificado.

Tipos de redes en multicomputadoras:

1. Topología de red de malla: En este tipo de interconexión, los nodos se


conectan de manera que forman una malla, donde cada nodo está
directamente conectado a varios otros. Esto permite múltiples rutas para el
envío de mensajes.
2. Topología de anillo: Los nodos están conectados en forma de anillo,
donde cada nodo está conectado a dos nodos adyacentes. Los datos
deben pasar de nodo en nodo hasta llegar a su destino.

50
3. Topología de estrella: Todos los nodos están conectados a un
nodo central que actúa como un concentrador o controlador de las
comunicaciones.
4. Red de interconexión completa: Cada nodo está conectado directamente
con todos los demás nodos, lo que garantiza la máxima eficiencia en las
comunicaciones, aunque puede ser costoso implementar debido a la gran
cantidad de conexiones necesarias.

Aplicaciones de las multicomputadoras:

1. Simulaciones científicas: Las multicomputadoras se usan comúnmente


en simulaciones complejas como la predicción del clima, la simulación de
colisiones en física de partículas, y la modelación molecular, donde se
necesita gran capacidad de procesamiento paralelo.
2. Bases de datos distribuidas: En sistemas de bases de datos distribuidos,
diferentes nodos de una multicomputadora pueden manejar fragmentos de
una base de datos, distribuyendo las consultas y mejorando el rendimiento.
3. Renderizado gráfico: En la industria de efectos visuales y animación, las
multicomputadoras se utilizan para distribuir el trabajo de renderizado de
imágenes y escenas 3D entre múltiples nodos, reduciendo
significativamente el tiempo de procesamiento.
4. Inteligencia artificial y aprendizaje profundo: Las multicomputadoras
son adecuadas para entrenar modelos de inteligencia artificial y redes
neuronales, dado que estas tareas pueden ser divididas en subtareas y
distribuidas entre los diferentes nodos de manera paralela.

51
14. CLÚSTER

El clúster es una técnica utilizada en


computación y que consiste en agrupar
varios recursos computacionales, como
servidores, computadoras personales o
dispositivos de almacenamiento, en una
única unidad lógica. Esos recursos se
conectan en red y trabajan en conjunto
para ejecutar tareas, procesar datos y
almacenar información.

Con la clusterización (o clustering), es


posible mejorar el rendimiento de las
aplicaciones, garantizar alta disponibilidad,
reducir costos y aumentar la escalabilidad,
ya que los recursos se pueden compartir y distribuir de manera eficiente para
atender las demandas de la aplicación en tiempo real.

Cabe señalar que, en el clúster, cada computadora se denomina “nodo” o “nudo”


y que no hay un máximo de nudos que se puedan conectar. Así, un clúster puede
componerse de una red de computadoras (todos los equipos de la empresa, por
ejemplo) o solo de las que pertenecen a equipos estratégicos.

Su configuración se puede hacer de varias maneras, dependiendo del tipo de


aplicación y de los requisitos específicos de la empresa u organización. Un
ejemplo es el clúster de alta disponibilidad, diseñado para garantizar que un
servicio esté siempre disponible aun si ocurre una falla en uno de los nodos del
clúster.

52
De esa forma, las computadoras pasan a actuar dentro de un único
sistema, trabajando en conjunto en el procesamiento, análisis e
interpretación de datos, información y/o realización de tareas
simultáneas.

Funcionamiento de un clúster de computadoras

El objetivo principal de un clúster de computadoras es aumentar el rendimiento y


la capacidad informática sin tener que comprar equipos individualmente. El
usuario puede agregar o quitar recursos según sea necesario para satisfacer sus
necesidades.

Los clústeres generalmente están compuestos por varios nodos, cada uno con su
propio procesador, memoria RAM y disco duro. Estos nodos se conectan entre sí
mediante redes Ethernet o Fibra óptica. Lo anterior, permite el intercambio de
datos entre los miembros del clúster.

Hay dos tipos principales de clústeres: el «clustering almacenado» (que se utiliza


para aumentar la capacidad) y el «clustering paralelo» (que se usa para mejorar
el rendimiento). Estos dos tipos proporcionan ventajas en función del tipo de
aplicaciones que se van a ejecutar en ellos.

Tipos de clústeres de computadoras

Los clústeres se pueden dividir en tres tipos principales: los clústeres


compartidos, los clústeres independientes y los clústeres paralelos.

● Los clústeres compartidos se utilizan cuando dos o más computadoras


usan recursos comunes, como almacenamiento, memoria y
procesamiento. Esta configuración es útil cuando se necesita escalar la
capacidad del sistema informático para satisfacer las necesidades
cambiantes del usuario.

53
● Los clústeres independientes son aquellos donde cada nodo
tiene su propio almacenamiento, memoria y procesamiento. Esta
configuración es útil para las aplicaciones que requieren alta
disponibilidad o redundancia. Puesto que si un nodo falla, el resto del
clúster todavía está funcionando correctamente.
● Los clústeres paralelos se utilizan cuando hay necesidad de realizar
muchas tareas simultáneamente. En este tipo de clúster, cada nodo tiene
su propia memoria y procesador, pero trabajan juntos para completar la
misma tarea rápidamente. Esta configuración es ideal para entornos con
gran cantidad de datos o análisis complejos.

Ventajas:

● Mejora la fiabilidad. Los clústeres permiten a los usuarios distribuir la


carga entre varios servidores para incrementar la disponibilidad del
sistema. Esto significa que si un servidor falla, otro podrá reemplazarlo sin
interrupción en el servicio.
● Aumento de la escalabilidad. La escalabilidad es un aspecto importante a
considerar al diseñar un sistema informático. Los clústeres permiten añadir
nuevos nodos cuando sea necesario y así garantizan el buen
funcionamiento del sistema incluso cuando hay un gran volumen de
trabajo.
● Mejora el rendimiento. Al dividir los procesos entre varios servidores, se
puede lograr un mejor rendimiento general del sistema. Esto permite llevar
a cabo tareas computacionalmente complejas con mayor eficiencia y
rapidez.
● Reducción de costes. Los clústeres permiten compartir recursos entre
varios equipos, lo que reduce los costes asociados con la adquisición y
mantenimiento de hardware individual para cada servidor.

54
Desventajas:

● Mayor complejidad. Los clústeres son más complicados de


configurar y mantener que otros tipos de servidores individuales ya que hay
que establecer comunicaciones entre todos los nodos del clúster para
garantizar su buen funcionamiento. Además, están sujetos a problemas
comunes tales como fallos en las conexiones entre nodos o interrupciones
en el servicio causadas por errores en el software instalado en los equipos
del clúster.
● Coste elevado. Aunque puedan reducirse los costes en comparación con
otros tipos de servidores, la puesta en marcha y mantenimiento de
clústeres puede resultar cara debido al hardware especializado requerido
para su correcta configuración y al personal cualificado necesario para
operarlos adecuadamente.

Aplicaciones de los clústeres de computadoras

Los clústeres de computadoras son ideales para cualquier organización que


necesite procesar grandes cantidades de datos o realizar tareas intensivas en
tiempo real, como en la industria financiera, el diseño gráfico o la minería de
datos.

Aquí hay algunas formas en las que los clústeres pueden ayudar a su
organización:

● Rendimiento mejorado. Los clústeres permiten distribuir el trabajo entre


varias computadoras conectadas, lo que hace que los procesos se
ejecuten más rápido. Esto es particularmente útil para tareas intensivas en
CPU, como el renderizado 3D y la codificación de vídeo.
● Mayor almacenamiento. Muchos clústeres cuentan con varios discos
duros conectados entre sí, lo que permite una mayor capacidad de
almacenamiento y redundancia si un disco falla.

55
● Escalabilidad. Los clústeres permiten agregar nuevos nodos a
medida que crece la carga de trabajo. Lo que implica que su
organización no tiene que invertir en hardware costoso y obsoleto
si desea expandirse o realizar grandes proyectos de investigación y
desarrollo sin interrupciones.
● Menor coste total de propiedad (TCO). Debido a la redundancia
incorporada y el uso compartido del hardware entre varios nodos, los
clústeres generalmente resultan ser más baratos a largo plazo comparados
con soluciones individuales basadas en servidores dedicados o
equipamiento informático personalizado costoso.
● Seguridad mejorada. La redundancia garantiza una menor probabilidad
de falla del sistema debido a problemas mecánicos o humanos, así como
un mayor nivel de seguridad para sus datos al replicarlos automáticamente
entre varios nodos del clúster.

56
Conclusión
En conclusión, la arquitectura de procesadores es uno de los elementos
más importantes en el funcionamiento de una computadora, ya que define cómo
se procesan las instrucciones y cómo se optimiza el rendimiento del sistema. A lo
largo del tiempo, hemos visto grandes avances en este campo, con dispositivos
como los procesadores PENTIUM e INTEL, que han impulsado el desarrollo de
computadoras más rápidas y eficientes, mejorando la experiencia para los
usuarios.

Sin embargo, no todo se trata de velocidad. Otros avances importantes, como el


ULTRASPARC II y el PICOJAVA II, han permitido que la tecnología se adapte a
diferentes tipos de tareas, como servidores o dispositivos móviles, lo que
demuestra que no existe una única solución para todos los problemas de
procesamiento. Además, la aparición de los arreglos de procesadores, las
multicomputadoras y los clústeres nos ha mostrado cómo la colaboración entre
varios procesadores puede aumentar significativamente la capacidad para
procesar grandes volúmenes de datos o ejecutar tareas complejas de forma más
rápida.

Finalmente, los dos enfoques de diseño principales, RISC y CISC, también juegan
un papel clave. RISC simplifica las instrucciones para que los procesadores
puedan ejecutarlas más rápido, mientras que CISC utiliza instrucciones más
complejas que a veces pueden resultar más eficientes en ciertos escenarios.
Entender estas diferencias nos permite apreciar mejor cómo se diseñan los
procesadores según las necesidades de cada aplicación.

57
Bibliografía
Libros:
1. Hennessy, J. L., & Patterson, D. A. (2017). Computer
architecture: A quantitative approach (6th ed.). Morgan
Kaufmann.
2. Patterson, D. A., & Hennessy, J. L. (2020). Computer
organization and design: The hardware/software
interface (5th ed.). Morgan Kaufmann.
3. Shen, J. P., & Lipasti, M. H. (2013). Modern processor
design: Fundamentals of superscalar processors (2nd
ed.). Waveland Press.
4. Hwang, K. (1993). Advanced computer architecture:
Parallelism, scalability, programmability. McGraw-Hill.
5. Baer, J.-L. (2010). Microprocessor architecture: From
simple pipelines to chip multiprocessors. Cambridge
University Press.
6. Dumas, J. D. (2005). Computer architecture:
Fundamentals and principles of computer design. CRC
Press.
7. Clements, A. (2006). Principles of computer hardware
(4th ed.). Oxford University Press.

58

También podría gustarte