Un pipeline canónico de cinco etapas en una máquina
RISC (IF = Pedido de Instrucción, ID = Decodificación de instrucción, EX =
Ejecutar, MEM = Acceso a la memoria, WB = Escritura)
Un programa de ordenador es, en
esencia, una secuencia de instrucciones ejecutadas por un procesador. Estas
instrucciones pueden reordenarse y
combinarse en grupos que luego son ejecutadas en paralelo sin cambiar el
resultado del programa. Esto se conoce como paralelismo a nivel de instrucción.
Los avances en el paralelismo a nivel de instrucción dominaron la arquitectura
de computadores desde mediados de 1980 hasta mediados de la década de 1990.19
Los procesadores modernos
tienen ''pipeline'' de instrucciones de varias
etapas. Cada etapa en el pipeline corresponde a una acción
diferente que el procesador realiza en la instrucción correspondiente a la
etapa; un procesador con un pipeline de N etapas puede tener
hasta n instrucciones diferentes en diferentes etapas de finalización. El ejemplo
canónico de un procesador segmentado es un procesador RISC,
con cinco etapas: pedir instrucción, decodificar, ejecutar, acceso a la memoria
y escritura. El procesador Pentium 4 tenía un pipeline de
35 etapas.20
Un procesador superescalar con pipeline de cinco
etapas, capaz de ejecutar dos instrucciones por ciclo. Puede tener dos
instrucciones en cada etapa del pipeline, para un total de hasta 10
instrucciones (se muestra en verde) ejecutadas simultáneamente.
Además del paralelismo a nivel de
instrucción del pipelining, algunos procesadores pueden ejecutar
más de una instrucción a la vez. Estos son conocidos como procesadores superescalares. Las instrucciones pueden
agruparse juntas sólo si no hay dependencia de datos entre
ellas. El scoreboarding y
el algoritmo de Tomasulo —que
es similar a scoreboarding pero hace uso del renombre de registros—
son dos de las técnicas más comunes para implementar la ejecución fuera de
orden y la paralelización a nivel de instrucción.
El paralelismo de datos es el
paralelismo inherente en programas con ciclos,
que se centra en la distribución de los datos entre los diferentes nodos
computacionales que deben tratarse en paralelo. «La paralelización de ciclos
conduce a menudo a secuencias similares de operaciones —no necesariamente
idénticas— o funciones que se realizan en los elementos de una gran estructura
de datos».21 Muchas de las aplicaciones
científicas y de ingeniería muestran paralelismo de datos.
Una dependencia de terminación de
ciclo es la dependencia de una iteración de un ciclo en la salida de una o más
iteraciones anteriores. Las dependencias de terminación de ciclo evitan la
paralelización de ciclos. Por ejemplo, considere el siguiente pseudocódigo que calcula los primeros
números de Fibonacci:
1: PREV1 := 0
2: PREV2 := 1
3: do:
4: CUR := PREV1 + PREV2
5: PREV1 := PREV2
6: PREV2 := CUR
7: while (CUR < 10)
Este bucle no se puede paralelizar
porque CUR depende de sí mismo (PREV2) y de PREV1, que se calculan en cada
iteración del bucle. Dado que cada iteración depende del resultado de la
anterior, no se pueden realizar en paralelo. A medida que el tamaño de un
problema se hace más grande, la paralelización de datos disponible generalmente
también lo hace.22
El paralelismo de tareas es la
característica de un programa paralelo en la que «cálculos completamente
diferentes se pueden realizar en cualquier conjunto igual o diferente de
datos».21 Esto contrasta con el paralelismo de
datos, donde se realiza el mismo cálculo en distintos o mismos grupos de datos.
El paralelismo de tareas por lo general no escala con el tamaño de un problema.22
La memoria principal en un ordenador
en paralelo puede ser compartida —compartida
entre todos los elementos de procesamiento en un único espacio de
direcciones—, o distribuida —cada
elemento de procesamiento tiene su propio espacio local de direcciones—.23El término memoria distribuida se
refiere al hecho de que la memoria se distribuye lógicamente, pero a menudo
implica que también se distribuyen físicamente. La memoria
distribuida-compartida y la virtualización
de memoria combinan los dos enfoques, donde el procesador tiene
su propia memoria local y permite acceso a la memoria de los procesadores que
no son locales. Los accesos a la memoria local suelen ser más rápidos que los
accesos a memoria no local.
Una vista lógica de una arquitectura con acceso a memoria no uniforme
(NUMA). Los procesadores en un directorio pueden acceder a la memoria de su
directorio con una menor latencia de la que pueden acceder a la memoria del
directorio de otro.
Las arquitecturas de ordenador en las
que cada elemento de la memoria principal se puede acceder con igual latencia y ancho de banda son
conocidas como arquitecturas de acceso uniforme a
memoria (UMA). Típicamente, sólo se puede lograr con un sistema
de memoria compartida, donde la memoria no está distribuida físicamente. Un
sistema que no tiene esta propiedad se conoce como arquitectura de acceso
a memoria no uniforme (NUMA). Los sistemas de memoria
distribuidos tienen acceso no uniforme a la memoria.
Los sistemas informáticos suelen
hacer uso de cachés,
pequeños recuerdos rápidos ubicados cerca del procesador que almacenan las
copias temporales de los valores de la memoria —cercano, tanto en el sentido
físico y lógico—. Los sistemas computacionales paralelos tienen dificultades
con las cachés y la posibilidad de una ejecución incorrecta del programa debido
a que se puede almacenar el mismo valor en más de un lugar. Estos equipos
requieren coherencia en la caché del
sistema, generalmente realizan un seguimiento de los valores almacenados en
caché y estratégicamente los eliminan, garantizando la correcta ejecución del
programa. Bus
sniffing es uno de los métodos más comunes para hacer el
seguimiento de los valores a los que se está accediendo. El diseño de grandes
sistemas de coherencia caché y de alto rendimiento es un problema muy difícil
en arquitectura de computadores. Como resultado, las arquitecturas de memoria
compartida no son tan escalables como los sistemas de memoria distribuida.23
La comunicación procesador-procesador
y procesador-memoria se puede implementar en hardware de varias maneras: a
través de memoria compartida —ya sea multipuerto o multiplexado—, un conmutador de
barras cruzadas (crossbar switch), un bus compartido
o una red interconectada de una gran variedad de topologías como estrella, anillo, árbol, hipercubo, hipercubo grueso —un hipercubo con
más de un procesador en un nodo—, o de malla n-dimensional.
Las computadoras paralelas basadas en
redes interconectadas deben tener algún tipo de enrutamiento para permitir el paso de
mensajes entre nodos que no están conectados directamente. Es probable que el
medio utilizado para la comunicación entre los procesadores de grandes máquinas
multiprocesador sea jerárquico.
Las computadoras paralelas se pueden
clasificar de acuerdo con el nivel en el que el hardware soporta paralelismo.
Esta clasificación es análoga a la distancia entre los nodos básicos de cómputo.
Estos no son excluyentes entre sí, por ejemplo, los grupos de multiprocesadores
simétricos son relativamente comunes.
Un procesador multinúcleo es un
procesador que incluye múltiples unidades de ejecución (núcleos) en el
mismo chip. Los procesadores superescalares pueden ejecutar múltiples
instrucciones por ciclo de un flujo de instrucciones (hilo), a diferencia de
este, un procesador multinúcleo puede ejecutar múltiples instrucciones por
ciclo de secuencias de instrucciones múltiples. Cada núcleo en un procesador
multinúcleo potencialmente puede ser superescalar, es decir, en cada ciclo,
cada núcleo puede ejecutar múltiples instrucciones de un flujo de
instrucciones.
El ''Multithreading'' simultáneo —de la cual
Intel HyperThreading es
el más conocido— era una forma de pseudo-multinúcleo. Un procesador con
capacidad de multithreadingsimultáneo tiene una sola unidad de
ejecución (núcleo), pero cuando esa unidad de ejecución está desocupada —por
ejemplo, durante un error de caché—, se utiliza para procesar un segundo hilo.
El microprocesador Cell de IBM,
diseñado para su uso en la consola Sony PlayStation 3, es otro prominente procesador
multinúcleo.
Un multiprocesador
simétrico (SMP) es un sistema computacional con múltiples
procesadores idénticos que comparten memoria y se conectan a través de un bus.24 La contención del bus previene el
escalado de esta arquitectura. Como resultado, los SMPs generalmente no
comprenden más de 32 procesadores.25 «Debido al pequeño tamaño de los
procesadores y de la significativa reducción en los requisitos de ancho de
banda de bus, tales multiprocesadores simétricos son extremadamente rentables,
siempre que exista una cantidad suficiente de ancho de banda».24
Un clúster Beowulf.
Un clúster es un grupo de ordenadores
débilmente acoplados que trabajan en estrecha colaboración, de modo que en
algunos aspectos pueden considerarse como un solo equipo.26 Los clústeres se componen de varias
máquinas independientes conectadas por una red. Mientras que las máquinas de un
clúster tienen que ser simétricas, de no serlo, el balance de carga es más difícil de
lograr. El tipo más común de clúster es el cluster Beowulf, que es un clúster
implementado con múltiples ordenadores comerciales idénticos conectados a
una red de área local TCP/IPEthernet.27 La tecnología Beowulf fue
desarrollada originalmente por Thomas
Sterling y Donald Becker. La gran mayoría de los
superordenadores TOP500 son
clústeres.n. 428
Un procesador paralelo masivo (MPP)
es un solo equipo con varios procesadores conectados en red. Tienen muchas de
las características de los clúster, pero cuentan con redes especializadas de
interconexión —en tanto que las clústeres utilizan hardware estándar para la
creación de redes—. Los MPPs también tienden a ser más grandes que los
clústeres, con «mucho más» de 100 procesadores.29 En un MPP, «cada CPU tiene su propia
memoria y una copia del sistema operativo y la aplicación. Cada
subsistema se comunica con los demás a través de un interconexión de alta
velocidad».30
Procesadores para dispositivos de red
Por
-
23 junio, 2016
997
La compañía israelita IP Light ha anunciado la introducción
de una nueva familia de procesadorespara
dispositivos de red en formato de chips y denominadosApodis OTN (Optical
Transport Network).
Estos micros Apodis
proporcionan una capacidad verdadera de 40G y puertos cliente de gran
flexibilidad que van desde los 100 Mbps hasta los 11 Gbps. También ofrece
soporte para hasta ocho puertos serie de Clase 10G, con un bajo consumo energético junto a
una huella también reducida.
Los circuitos integrados Apodis
reducen significativamente los costes para los proveedores de sistemas ópticos que
diseñan dispositivos de última generación, fronthaul móvil,
y elementos de redes metropolitanas.
Estos procesadores para dispositivos
de red de IP Light abordan el incesante crecimiento de la demanda de redes
ópticas de alta capacidad, impulsado por los serviciosresidenciales
de banda ancha, la conectividad móvil, la IoT y los centros de datos.
La tecnología utilizada en los chips
Apodis también permite a los fabricantes acortar el tiempo de
lanzamiento al mercado de sus soluciones.
El paquete de software Apodis
Manager de la misma compañía fabricante de los chips permite la rápida
integración de estos procesadores en las aplicaciones objetivo, permitiendo
a los fabricantes disfrutar de la flexibilidad de los chips Apodis.
Diseños con los
procesadores para dispositivos de red
El Apodis EVB es un diseño de referencia para evaluación,
basado en los chips Apodis que
contribuye a minimizar el esfuerzo en el desarrollo de placas basadas en chips
Apodis.
La línea completa de procesadores para
dispositivos de red se compone de cinco ejemplares: el IPL4002M con 16
puertos cliente, 4 puertos de línea, y una capacidad de 40G; el IPL4102M de 16
puertos cliente y 2 puertos de línea con capacidad 20G; el mismo IPL4002M tiene
una variante con 8 puertos cliente y 4 o 1 puertos de línea (IPL4202M), y
capacidad 10G; el IPL4302F con 4 puertos de cada y capacidad 40G; y,
finalmente, el IPL4402F con 2 puertos de cada clase y capacidad 20G.
Aquellas empresas o
profesionales interesados en los microchips Apodis ya pueden encargar
muestras a IP Light.
dilluns, 20 de juny de 2005 14:58
|
There are no translations available.
La tarjeta de sonido es un dispositivo que se conecta a la placa base del ordenador, o que puede ir integrada en la misma.
¿QUE
ES LA TARJETA DE SONIDO?
La tarjeta de
sonido es un dispositivo que se conecta a la placa base del ordenador, o que
puede ir integrada en la misma. Reproduce música, voz o cualquier señal de
audio. A la tarjeta de sonido se pueden conectar altavoces, auriculares,
micrófonos, instrumentos, etc.
BREVE
HISTORIA
El pitido que
oímos cuando arrancamos el ordenador ha sido durante muchos años el único
sonido que ha emitido el PC, ya que en un principio no fue pensado para
manejar sonido, el altavoz interno servía únicamente para comunicar errores
al usuario.
Pero el gran
cambio surgió cuando empezó a aparecer el software que seguramente más ha
hecho evolucionar a los ordenadores desde su aparición: los videojuegos.
Además de esto, un poco más tarde en plena revolución de la música digital,
cuando empezaban a popularizarse los instrumentos musicales digitales,
apareció en el mercado de los PC compatibles una tarjeta que lo revolucionó,
la tarjeta de sonido SoundBlaster.
Por fin era
posible convertir sonido analógico a digital para guardarlo en nuestro PC, y
también convertir el sonido digital que hay en nuestro PC a analógico y poder
escucharlo por nuestros altavoces. Posteriormente aparecieron el resto de
tarjetas, todas más o menos compatibles con la exitosa SoundBlaster original,
que se convirtió en el estándar indiscutible.
TIPOS
DE TARJETAS
Podemos
clasificar las tarjetas de sonido según los canales que utilizan. Las
tarjetas más básicas utilizan un sistema 2.1 estéreo, con una salida de jack,
a la que podemos conectar dos altavoces.
Las tarjetas
cuadrafónicas permiten la reproducción de sonido envolvente 3D. Estas
tarjetas disponen de dos salidas analógicas, lo que permite conectar sistemas
de altavoces 4.1 o 5.1. También suelen incluir la interfaz S/PDIF, para el
sistema Dolby Digital.
Existen otras
tarjetas con conectores para otros dispositivos, que normalmente tienen un
uso profesional o semiprofesional, como los MIDI.
PUNTOS
A TENER EN CUENTA
Para saber lo que
debemos valorar al comprar una tarjeta de sonido, primero debemos entender
cómo funciona para así saber que características son las que necesitamos.
Básicamente, una tarjeta de sonido funciona con un convertidor de sonido que pasa de analógico a digital (DAC) y otro de digital a analógico (ADC). La mayoría de ellas cuenta con un procesador de señal (DSP), que trabaja con tablas de ondas, y permite añadir efectos al sonido.
El número de bits
refleja la calidad del sonido que es capaz de muestrear la tarjeta en
cuestión. Una tarjeta de 16 bits distingue 32 000 intervalos o matices
diferentes de sonido, lo suficiente para el oído humano.
El muestreo es el
proceso que se realiza para registrar sonido (convertir la información
analógica al lenguaje binario), y su frecuencia se mide en kHz. Una cifra de
44'1 Khz. nos da grabaciones digitales con la misma calidad que tienen los
CD’s de audio. Mayores frecuencias nos permitirán mantener la calidad si
vamos a editar o modificar el sonido posteriormente, ya que en este proceso
se podría perder algo de definición. Eligiendo una tarjeta de más de 44'1
Khz., nos aseguramos de que podremos conservar una calidad óptima.
Tanto los bits como los Khz., están limitados por la capacidad del oído humano, ya que aunque pudieran ampliarse, no seríamos capaces de apreciar ese aumento en la calidad del sonido.
El número de
voces es el número de sonidos, instrumentos o voces que una tarjeta de sonido
es capaz de reproducir al mismo tiempo, es como el número de instrumentos de
una orquesta, a mayor número, mejor es el sonido. De esta manera, una tarjeta
con un mayor número de voces nos va a proporcionar más definición que las
demás.
Las conexiones de
entrada y salida son un punto importante al que debemos prestar atención. Una
tarjeta de sonido puede tener las siguientes conexiones: una entrada de
línea, entrada para micrófono, salida de línea, salida amplificada, conector
MIDI y conector para Joystick.
Las entradas de línea, salida y micrófono suele ser un minijack, un estándar de conexión de sonido de calidad media, que es el comúnmente utilizado en los dispositivos portátiles, como los reproductores de CD.
Otro tipo de
conexión es el RCA. Mientras que en el minijack, los dos canales de estéreo
van juntos, en los RCA los canales van por separado, por lo que ofrecen mayor
calidad.
Las entradas y
salidas MIDI nos permiten conectar instrumentos digitales, de manera que son
imprescindibles si disponemos de uno de estos aparatos. La entrada nos
permite pasar el sonido al ordenador, y la salida permite que una melodía se
reproduzca en el instrumento, a partir de una partitura que tenemos en el
ordenador.
El conector para
Joystick no suele venir integrado en la placa, sino que viene implementado en
las tarjetas de sonido, aunque si nuestra tarjeta no lo trae incorporado no
debemos preocuparnos, ya que solo es importante si utilizamos juegos porque
proporcionan una mayor comodidad en el uso de este tipo de software.
Una de las
características importantes de una tarjeta de sonido es que disponga del
sistema full-duplex, que permite grabar y reproducir sonido al mismo tiempo.
Esto se hace imprescindible, por ejemplo, si utilizamos programas de
videoconferencia.
Las tarjetas
estéreo mandan el sonido por dos canales, uno para cada altavoz. Algunas de
ellas recrean el efecto de sonido 3D, en los que el sonido parece que nos
rodea, con lo que la sensación de realidad es mucho mayor, aunque este tipo
de emulaciones con sólo dos canales no suele ser de mucha calidad.
Las tarjetas
cuadrafónicas tienen 2 salidas estéreo, con dos canales cada una, con lo que
pueden dar señal a 4 altavoces. Estas tarjetas producen efectos de sonido 3D
como el Dolby Surround, THX, etc. Algunos equipos también contienen un
subwoofer, que contribuye a la recreación de realidad en el sonido. Este
quinto altavoz, suele ser más grande que los demás y reproduce los sonidos
más graves, aunque sólo tengamos 2 salidas desde la tarjeta de sonido.
El Dolby Digital
5.1 es un sistema más avanzado, y estándar que se utiliza en el DVD. Utiliza
6 canales, por lo que son necesarios 6 altavoces. Cinco de los canales son de
alta frecuencia, y un canal para los efectos de baja frecuencia.
También existen
tarjetas de 6.1 canales y algunas tienen hasta salida de 7.1 canales, con lo
que el efecto de sonido es de 360 grados, y la calidad es mucho mayor. Este
tipo de tarjetas son las mejores si queremos disfrutar del cine en casa, y
son el complemento perfecto para el DVD.
COMPLEMENTOS
Lo primero que
debemos elegir después de comprar la tarjeta de sonido son los altavoces.
Estos van a depender de la tarjeta que tengamos: si la tarjeta es
cuadrafónica, debemos comprar un equipo con 4 altavoces, y subwoofer
opcional. El sistema de altavoces debe ser compatible con los canales de
salida de la tarjeta, y tendremos que elegir entre diferentes modelos y
potencias.
El micrófono es
un complemento muy útil, y encontramos desde los más sencillos, que suelen
conectarse con el estándar minijack, hasta los de gama alta, de mayor calidad
y con conexión USB.
Unos auriculares
con micrófono incorporado son el complemento perfecto si realizamos llamadas
telefónicas o videoconferencias con frecuencia.
Si nos dedicamos
a la música, o somos aficionados a ella, podemos adquirir un teclado MIDI,
con el que podremos componer en formato digital.
|