Download Electrónica para Sistemas Industriales

Document related concepts
no text concepts found
Transcript
PAC- Performance-centered Adaptive Curriculum for Employment Needs
Programa ERASMUS: Acción Multilateral - 517742-LLP-1-2011-1-BG-ERASMUS-ECUE
MASTER DEGREE:
Industrial Systems Engineering
ASIGNATURA ISE3:
Electrónica para sistemas industriales
MÓDULO 4:
Circuitos básicos VLSI en las arquitecturas de computadoras
TAREA 4-2:
ARQUITECTURAS DE MICROPROCESADORES
Electrónica para Sistemas Industriales
Contenido
TAREA 4-2: ARQUITECTURAS DE MICROPROCESADORES ........................ 3
1. INTRODUCCIÓN Y OBJETIVOS ....................................................... 3
2. CONTENIDO ................................................................................ 3
2.1 Introducción general a las arquitecturas CISC y RISC ................... 3
2.2 El paralelismo en microprocesadores ......................................... 8
2.3 Arquitectura VLIW ................................................................. 12
2.4 Arquitectura EPIC .................................................................. 15
2.5 Microprocesadores DSP ........................................................... 17
2.6 Clasificación de computadores según su arquitectura. Taxonomía de
Flynn .......................................................................................... 20
3. CONCLUSIONES .......................................................................... 25
4. BIBLIOGRAFÍA Y/O REFERENCIAS ................................................. 26
5. ENLACES DE INTERÉS ................................................................. 26
Índice de figuras
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
1 RISC vs CIS .......................................................................... 4
2 Ejemplo de organización superescalar ..................................... 11
3 Diagrama Microprocesador superescalar y segmentado ............. 11
4 Situación en la velocidad del MP ............................................. 12
5 MP VLIW vs MP superescalares............................................... 13
6 CPU funcionando con VLIW .................................................... 14
7 Comparación entre VLIW y CPU superescalares ........................ 15
8 Filosofía del diseño EPIC ........................................................ 16
9 Sistema de adquisición basado en un DSP ............................... 17
10 Arquitectura de un DSP ....................................................... 19
11 Estructura básica de los ordenadores SISD ............................ 20
12 Arquitectura de los computadores MISD ................................ 21
13 Arquitectura de los computadores SIMD ................................ 23
14 Arquitectura de los computadores MIMD ................................ 24
ARQUITECTURAS DE MICROPROCESADORES
2
Electrónica para Sistemas Industriales
TAREA 4-2: ARQUITECTURAS DE
MICROPROCESADORES
1. INTRODUCCIÓN Y OBJETIVOS
La evolución en el campo de los microprocesadores es constante, su
arquitectura ha ido evolucionando para ser más rápidos y eficientes en las
tareas que realizan así como en su efectividad. Otro punto a tener en cuenta
es su coste dentro de la tarea que se desee realizar. Durante las siguientes
páginas se describen que arquitecturas que se pueden encontrar en el
mercado y cuáles son más ventajosas para la tarea que se quiera llevar a
cabo. También se analizan y comparan algunas de ellas y se describe
brevemente el funcionamiento interno de estos microprocesadores y que les
hacen ventajosos frente a otras opciones.
2. CONTENIDO
2.1 Introducción general a las arquitecturas CISC y RISC
Una de las primeras decisiones a la hora de diseñar un
microprocesador es decidir cuál será su juego de instrucciones.
La decisión tiene dos razones; primero, el juego de instrucciones decide el
diseño físico del conjunto; segundo, cualquier operación que deba ejecutarse
en el microprocesador deberá poder ser descrita en términos de un lenguaje
de estas instrucciones.
Frente a esta cuestión caben dos filosofías de diseño; máquinas
denominadas CISC y máquinas denominadas RISC.
Cuando hablamos de microprocesadores CISC, computadoras con un
conjunto de instrucciones complejo, (del inglés complex instruction set
computer), y procesadores RISC, computadoras con un conjunto de
instrucciones reducido, (del inglés reduced instruction set computer), se piensa
que los atributos complejo y reducido describen las diferencias entre los dos
modelos de arquitectura para microprocesadores. Esto es cierto solo de forma
superficial, pues se requiere de muchas otras características esenciales para
definir los RISC y los CISC.
ARQUITECTURAS DE MICROPROCESADORES
3
Electrónica para Sistemas Industriales
Hasta hace solo algunos años, la división era tajante: RISC se utilizaba
para entornos de red, mientras que CISC se aplicaba en ordenadores
domésticos. Pero en la actualidad se alzan voces que afirman que CISC está
agotando sus posibilidades, mientras otras defienden fervientemente que CISC
ya ha alcanzado a RISC, adoptando algunas de sus principales características.
Figura 1 RISC vs CIS
ARQUITECTURA RISC
En la arquitectura computacional, RISC (del inglés reduced instruction set computer)
es un tipo de microprocesador con las siguientes características fundamentales:
•
•
Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y
el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.
ARQUITECTURAS DE MICROPROCESADORES
4
Electrónica para Sistemas Industriales
Las máquinas RISC protagonizan la tendencia actual de construcción de
microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC... son ejemplos de
algunos de ellos.
RISC es una filosofía de diseño de CPU para computadora que está a
favor de conjuntos de instrucciones pequeñas y simples que toman menor
tiempo para ejecutarse.
El tipo de procesador más comúnmente utilizado en equipos de
escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones
más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más
simples basadas en RISC para uso interno antes de su ejecución.
La idea fue inspirada por el hecho de que muchas de las
características que eran incluidas en los diseños tradicionales de CPU para
aumentar la velocidad estaban siendo ignoradas por los programas que eran
ejecutados en ellas. Además, la velocidad del procesador en relación con la
memoria de la computadora que accedía era cada vez más alta. Esto con
llevó la aparición de numerosas técnicas para reducir el procesamiento dentro
del CPU, así como de reducir el número total de accesos a memoria.
CARACTERÍSTICAS RISC
En pocas
dado, un chip
lógica principal.
así pueden, por
•
•
•
•
•
•
palabras esto significa que para cualquier nivel de desempeño
RISC típicamente tendrá menos transistores dedicados a la
Esto permite a los diseñadores una flexibilidad considerable;
ejemplo:
Incrementar el tamaño del conjunto de registros.
Mayor velocidad en la ejecución de instrucciones.
Implementar medidas para aumentar el paralelismo interno.
Añadir cachés enormes.
Añadir otras funcionalidades, como E/S y relojes para minicontroladores.
Construir los chips en líneas de producción antiguas que de otra
manera no serían utilizables.
ARQUITECTURAS DE MICROPROCESADORES
5
Electrónica para Sistemas Industriales
•
No ampliar las funcionalidades, y por lo tanto ofrecer el chip para
aplicaciones de bajo consumo de energía o de tamaño limitado.
Las características que generalmente son encontradas en los diseños RISC son:
•
•
•
•
•
Codificación uniforme de instrucciones, lo que permite una de
codificación más rápida.
Un conjunto de registros homogéneo, permitiendo que cualquier registro
sea utilizado en cualquier contexto y así simplificar el diseño del
compilador.
Modos de direccionamiento simple con modos más complejos
reemplazados por secuencias de instrucciones aritméticas simples.
Los tipos de datos soportados en el hardware no se encuentran en una
máquina RISC.
Los diseños RISC también prefieren utilizar como característica un
modelo de memoria Harvard, donde los conjuntos de instrucciones y los
conjuntos de datos están conceptualmente separados.
RISC MODERNO
Los diseños RISC han llevado a un gran número
arquitecturas al éxito, algunas de las más grandes:
•
•
•
•
•
•
•
de
plataformas
y
La línea MIPS Technologies Inc., que se encontraba en la mayoría de
las computadoras de Silicon Graphics hasta 2006, y estuvo en las
consolas ya descatalogadas Nintendo 64, PlayStation y PlayStation 2.
Actualmente se utiliza en la PlayStation Portable y algunos routers.
La serie IBM POWER, utilizado principalmente por IBM en Servidores y
superordenadores.
La versión PowerPC de Motorola e IBM (una versión de la serie IBM
POWER) utilizada en los ordenadores AmigaOne, Apple Macintosh como
el iMac, eMac, Power Mac y posteriores (hasta 2006). Actualmente se
utiliza en muchos sistemas empotrados en automóviles, routers, etc, así
como en muchas consolas de videojuegos, como la Playstation 3, Xbox
360 y Wii.
El procesador SPARC y UltraSPARC de Sun Microsystems y Fujitsu, que
se encuentra en sus últimos modelos de servidores (y hasta 2008
también en estaciones de trabajo).
El PA-RISC y el HP/PA de Hewlett-Packard, ya descatalogados.
El DEC Alpha en servidores HP AlphaServer y estaciones de trabajo
AlphaStation, ya descatalogados.
El ARM – El paso de hardware de instrucciones x86 en operaciones RISC
llega a ser significativo en el área y la energía para dispositivos móviles
e integrados. Por lo tanto, los procesadores ARM dominan en PALM,
Nintendo DS, Game Boy Advance y en múltiples PDAs, Apple iPods,
Apple iPhone, iPod Touch (Samsung ARM1176JZF, ARM Cortex-A8, Apple
ARQUITECTURAS DE MICROPROCESADORES
6
Electrónica para Sistemas Industriales
•
•
•
A4), Apple iPad (Apple A4 ARM -based SoC), videoconsolas como
Nintendo DS (ARM7TDMI, ARM946E-S), Nintendo Game Boy Advance
(ARM7TDMI).
El Atmel AVR usado en gran variedad de productos, desde mandos de
la Xbox a los coches de la empresa BMW.
La plataforma SuperH de Hitachi, originalmente usada para las consolas
Sega Super 32X, Saturn y Dreamcast, ahora forman parte de el corazón
de muchos equipos electrónicos para el consumo. SuperH es la
plataforma base del grupo Mitsubishi - Hitachi. Estos dos grupos, unidos
en 2002, dejaron aparte la propia arquitectura RISC de Mitsubishi, el
M32R.
Los procesadores XAP usados en muchos chips wireless de poco
consumo (Bluetooth, wifi) de CSR.
VENTAJAS DE RISC
Entre las ventajas de RISC tenemos las siguientes:
•
•
•
La CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar
instrucciones.
Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a
diferencia de CISC, RISC conserva después de realizar sus operaciones en
memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas
operaciones.
Cada instrucción puede ser ejecutada en un solo ciclo del CPU
ARQUITECTURA CISC
La arquitectura computacional, CISC (complex instruction set computer)
es un modelo de arquitectura de computadora. 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.
ARQUITECTURAS DE MICROPROCESADORES
7
Electrónica para Sistemas Industriales
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.
Entre las ventajas de CISC destacan las siguientes:
•
•
•
•
•
Reduce la dificultad de crear compiladores.
Permite reducir el costo total del sistema.
Reduce los costos de creación de sftware.
Mejora la compactación de código.
Facilita la depuración de errores.
Ejemplo de microprocesadores basados en la tecnología CISC:
•
•
•
•
•
•
Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.
MIPS, Millions Instruction Per Second.
PA-RISC, Hewlett Packard.
SPARC, Scalable Processor Architecture, Sun Microsystems.
POWER PC, Apple, Motorola e IBM.
2.2 El paralelismo en microprocesadores
Una CPU definida como subescalar, opera y ejecuta una sola
instrucción con una o dos piezas de datos a la vez.
Este proceso da lugar a una ineficacia inherente en CPUs subescalares. Puesto
que solamente una instrucción es ejecutada a la vez, todo el CPU debe
esperar que esa instrucción se complete antes de proceder a la siguiente
instrucción. Como resultado, el CPU subescalar queda "paralizado" en
instrucciones que toman más de un ciclo de reloj para completar su ejecución.
Incluso la adición de una segunda unidad de ejecución (ver abajo) no mejora
mucho el desempeño. En lugar de un camino quedando congelado, ahora dos
caminos se paralizan y aumenta el número de transistores no usados. Este
diseño, en donde los recursos de ejecución del CPU pueden operar con
solamente una instrucción a la vez, solo puede, posiblemente, alcanzar el
ARQUITECTURAS DE MICROPROCESADORES
8
Electrónica para Sistemas Industriales
desempeño escalar (una instrucción por ciclo de reloj). Sin embargo, el
desempeño casi siempre es subescalar (menos de una instrucción por ciclo).
Las tentativas de alcanzar un desempeño escalar y mejor, han resultado en
una variedad de metodologías de diseño que hacen comportarse al CPU
menos linealmente y más en paralelo. Cuando se refiere al paralelismo en los
CPU, generalmente son usados dos términos para clasificar estas técnicas de
diseño.
El Paralelismo a nivel de instrucción, en inglés Instruction Level
Parallelism (ILP), busca aumentar la tasa en la cual las instrucciones son
ejecutadas dentro de un CPU, es decir, aumentar la utilización de los recursos
de ejecución en la pastilla
El Paralelismo a nivel de hilo de ejecución, en inglés thread level parallelism
(TLP), que se propone incrementar el número de hilos (efectivamente
programas individuales) que un CPU pueda ejecutar simultáneamente.
Cada metodología se diferencia tanto en las maneras en las que están
implementadas, como en la efectividad relativa que producen en el aumento
del desempeño de la CPU para una aplicación.
ARQUITECTURAS DE MICROPROCESADORES
9
Electrónica para Sistemas Industriales
A su vez el paralelismo de los computadores puede ser interno o explícito.
El paralelismo interno, que es el que nos va a ocupar, queda oculto a
la arquitectura del computador. Es un paralelismo al nivel de estructura o de
construcción del computador, que se utiliza para aumentar su velocidad, pero
sin modificar su funcionamiento básico. Aplicado a la arquitectura Von
Neumann, permite construir computadores más rápidos, pero que, al nivel de
ejecución de instrucciones de máquinas, esto es, al nivel de usuario, siguen
siendo serie. Las soluciones clásicas de este paralelismo son la segmentación
o pipeline y la división funcional. La ventaja fundamental de esta solución es
que no cambia el entorno de usuario, por lo que han sido profusamente
explotadas en los grandes monoprocesadores y más reciente en los
microprocesadores de la gama alta. Sus inconvenientes son la limitación en el
incremento de velocidad alcanzable, puesto que se limita al paralelismo de
grano fino que tienen los programas, y el elevado coste de ingeniería que
implica el desarrollo de un procesador que explote estas soluciones.
Podemos decir que los nuevos procesadores integrados, tanto RISC
como CIS, utilizan hasta su máximo grado las técnicas de paralelismo interno,
por lo que los espectaculares avances en las cifras de MIPS y MFLOPS de los
últimos años han de tener un inevitable punto de inflexión.
PROCESADORES SUPERESCALARES
Se denomina arquitectura superescalar a aquella implementación capaz
de ejecutar más de una instrucción por ciclo de reloj. Para ello se usan
múltiples cauces, con lo que varias instrucciones pueden iniciar su ejecución
de manera independiente. El término superescalar se emplea como
contraposición a la arquitectura escalar, que solo es capaz de ejecutar una
instrucción por ciclo de reloj. En la figura se representa un esquema de la
organización superescalar. Se tienen múltiples unidades funcionales que
admiten la ejecución en paralelo, y por separado, de varias instrucciones. Sin
embargo, nótese que, en general, cada unidad funcional no tiene por qué
admitir la ejecución de cualquier instrucción, hay dos unidades funcionales que
pueden ejecutar instrucciones de operaciones con enteros, dos de
instrucciones de operaciones con coma flotante, y una de instrucciones de
transferencia con memoria (operaciones de carga y almacenamiento). Así, en
este caso, pueden estar ejecutándose al mismo tiempo dos operaciones con
enteros, dos operaciones con coma flotante y una operación de transferencia
a memoria.
El diseño superescalar es compatible con la segmentación. Esto es,
como muestra la figura las unidades funcionales pueden realizarse como
cauces segmentados.
ARQUITECTURAS DE MICROPROCESADORES
10
Electrónica para Sistemas Industriales
Figura 2 Ejemplo de organización superescalar
El concepto de diseño superescalar apareció poco después que la
arquitectura RISC. Si bien se puede realizar una implementación superescalar
tanto de una arquitectura RISC como de una arquitectura CISC, la arquitectura
de conjunto reducido de instrucciones de una máquina RISC se presta mejor a
la utilización de técnicas superescalares. Lo esencial del diseño superescalar
es su habilidad para ejecutar instrucciones de manera independiente en
diferentes cauces. Un procesador superescalar es capaz de ejecutar más de
una instrucción, solo si estas no presentan algún tipo de dependencia, como
veremos más adelante. La inmensa mayoría de las CPUs desarrolladas desde
1998 son superescalares. En este tema se presenta una introducción al diseño
superescalar con paralelismo implícito, examinando los diferentes tipos de
dependencia de datos, políticas de emisión y otras cuestiones relacionadas
con el diseño de la implementación superescalar.
Figura 3 Diagrama Microprocesador superescalar y segmentado
ARQUITECTURAS DE MICROPROCESADORES
11
Electrónica para Sistemas Industriales
2.3 Arquitectura VLIW
La planificación de qué instrucciones van a ejecutarse en
paralelo
puede
hacerse
estática
o
dinámicamente
(la
hace
el
compilador o la hace el procesador). El modelo de planificación
estática que vamos a ver es el de los procesadores VLIW (Very Long
Instruction Word), y en la planificación dinámica vamos a abordar los
procesadores superescalares.
Figura 4 Situación en la velocidad del MP
Como hemos visto anteriormente, una de las formas de aumentar las
prestaciones de los procesadores segmentados consiste en utilizar varias
unidades funcionales que puedan trabajar simultáneamente con instrucciones
distintas. Esto, no obstante, no permite sobrepasar el límite máximo de una
instrucción terminada por cada ciclo, dado que la última etapa del cauce (WB)
solo puede procesar un instrucción por ciclo, como les ocurre a la etapas de
extracción, decodificación y acceso a memoria.
La idea que subyace en los procesadores superescalares y VLIW es la
de conseguir que puedan procesarse simultáneamente varias instrucciones en
todas las etapas, con lo que entonces sí podría superarse la tasa de una
instrucción terminada por ciclo.
ARQUITECTURAS DE MICROPROCESADORES
12
Electrónica para Sistemas Industriales
El mayor o menor grado de paralelismo a nivel de instrucción o ILP
(Instruction Level Paralelismo), es decir, la mayor o menor facilidad para
encontrar
en
un
programa
instrucciones
que
puedan
procesarse
simultáneamente, depende de la frecuencia con la que aparecen dependencias
de datos y de control.
Por ejemplo, en el fragmento de programa de la izquierda, no hay ninguna
dependencia de datos o de control entre ellas. Esto quiere decir que las tres
instrucciones podrían ejecutarse simultáneamente. En cambio, en el grupo de
instrucciones de la derecha hay dependencias de datos de tipo RAW, por lo
que deben procesarse secuencialmente, incluso con ciertos retardos en su
emisión, que
permitan tener los operandos necesarios solo cuando estén
disponibles. Así, podíamos afirmar que esta última secuencia de instrucciones
tiene un grado de paralelismo igual a 1, ya que solo se pueden ejecutar las
instrucciones de una en una, mientras que en la primera secuencia tiene un
grado de paralelismo igual a 3.
En cualquier caso, el aprovechamiento del grado de paralelismo que
posea una secuencia de instrucciones depende de los recursos que tenga el
procesador. A esta capacidad para procesar instrucciones en paralelo se le
denomina paralelismo del procesador o MLP (Machine Level Paralelismo). Este
paralelismo viene determinado por el número de instrucciones que pueden
procesarse al mismo tiempo en cada una de las etapas del procesador, es
decir, el número de instrucciones que pueden extraerse de memoria,
decodificarse, ejecutarse y escribir sus resultados al mismo tiempo.
Como vemos, el paralelismo a nivel de instrucción viene determinado por los
riesgos de datos y de control, mientras que el paralelismo a nivel de máquina
está limitado por los riesgos estructurales.
Figura 5 MP VLIW vs MP superescalares
ARQUITECTURAS DE MICROPROCESADORES
13
Electrónica para Sistemas Industriales
Ya que se desea emitir varias
instrucciones a ejecución de manera
simultánea, aprovechando el grado de
paralelismo de los programas, hay que ir
formando
paquetes
o
grupos
de
instrucciones que puedan ejecutarse de
manera paralela, de tal manera que se
vaya alimentando y emitiendo un paquete
tras otro, y las instrucciones de cada
paquete se envíen a la unidad funcional
correspondiente
que
ejecuta
cada
instrucción.
Finalizada
la
etapa
de
ejecución, habrá una etapa de escritura
para cada una de las instrucciones
ejecutadas. Hay dos vías principales para
implementar
estos
procesadores
de Figura 6 CPU funcionando con VLIW
emisión múltiple, atendiendo al modo o el
momento en que se realiza la elección de las instrucciones que conforman
cada grupo de procesamiento: estática o dinámicamente.
Estáticamente: La elección de los grupos de instrucciones se realiza de
manera estática, es decir, en tiempo de compilación. El compilador conoce el
programa y las características del procesador, así que agrupa instrucciones en
paquetes, ocupándose de evitar los riesgos de datos y de control, de tal
manera que cada paquete de instrucciones (paquete de emisión) está formado
por instrucciones independientes que pueden ejecutarse en paralelo sin ningún
tipo de riesgos. A este tipo de arquitecturas se las conoce como VLIW (Very
Long Instruction Word).
Dinámicamente: La elección de los grupos de instrucciones se realiza
dinámicamente, esto es, en tiempo de ejecución. Las instrucciones se
alimentan en orden y es el propio procesador el que se encarga de elegir el
conjunto de instrucciones (0, 1, 2,…) que pueden emitirse de manera paralela
en cada ciclo de reloj. Esta arquitectura es la que corresponde a los
procesadores superescalares. Debe mencionarse que la obtención de un buen
rendimiento en estos procesadores también requiere que el compilador
planifique y ordene las instrucciones tratando de minimizar las dependencias
de tal manera que la emisión pueda realizarse lo más rápidamente posible. No
obstante, el responsable de garantizar que las instrucciones emitidas pueden
ejecutarse en paralelo, es el procesador.
ARQUITECTURAS DE MICROPROCESADORES
14
Electrónica para Sistemas Industriales
Figura 7 Comparación entre VLIW y CPU superescalares
2.4 Arquitectura EPIC
Procesamiento de instrucciones explícitamente en paralelo (del inglés
EPIC: Explicitly Parallel Instruction Computing) es un paradigma de
programación que comenzó a investigarse a principios de los años 80. Este
paradigma también se conoce como arquitecturas de Independencia. Fue
utilizado por Intel y HP para el desarrollo de la arquitectura de Intel IA-64 y
se ha implementado en la línea de procesadores de servidor Intel Itanium e
Itanium 2. El objetivo de EPIC era aumentar la capacidad de los
microprocesadores para ejecutar instrucciones de software en paralelo
mediante el uso del compilador, en lugar de la compleja circuitería en cápsula,
para identificar y aprovechar las oportunidades para la ejecución en paralelo.
Esto permitiría escalar el rendimiento más rápidamente en los futuros diseños
de procesadores, sin tener que recurrir a frecuencias de reloj cada vez más
altas, las cuales se han convertido desde ese momento en una problemática
importante debido a problemas de alimentación y refrigeración.
Las arquitecturas EPIC añaden numerosas características para paliar las
deficiencias de VLIW:
• Cada grupo de instrucciones de software múltiples recibe el nombre de
paquete (bundle en inglés). Cada uno de los paquetes contiene
información que indica si algún paquete subsiguiente depende de este
conjunto de operaciones. Con esta habilidad, se pueden construir
implementaciones posteriores que envíen varios paquetes en paralelo. El
compilador se encarga de calcular la información de dependencia de
modo que libere al hardware de la tarea de ejecutar comprobaciones
sobre la dependencia de operandos.
• Se utiliza una instrucción de carga especulativa como un tipo de
búsqueda anticipada de datos. Esta búsqueda anticipada aumenta las
probabilidades de éxito de encontrar los datos requeridos en la caché
primaria para las cargas normales.
ARQUITECTURAS DE MICROPROCESADORES
15
Electrónica para Sistemas Industriales
•
Así mismo, una instrucción de carga de comprobación ayuda a las
cargas especulativas mediante la comprobación de que una carga no
depende de un almacenamiento anterior.
Figura 8 Filosofía del diseño EPIC
ARQUITECTURAS DE MICROPROCESADORES
16
Electrónica para Sistemas Industriales
2.5 Microprocesadores DSP
Un DSP (Digital Signal Processors, Procesador Digital de Señal) es un
procesador digital cuyo hardware y conjunto de instrucciones está optimizado
para la implementación eficiente de aplicaciones de procesamiento numérico
intensivo a alta velocidad. Este tipo de procesadores ejecutan, generalmente,
los algoritmos típicos de procesamiento digital de señal (Digital Signal
Processing) como el filtrado digital y el análisis espectral, entre otros. Este tipo
de algoritmos se requieren a menudo en sistemas que procesan señales
analógicas en tiempo real. Con tiempo real queremos indicar que el sistema
debe dar una respuesta en un tiempo establecido y predecible. Por ejemplo,
un escenario habitual es un sistema que adquiriera datos muestreando una
señal analógica para someterla a un determinado procesamiento, por ejemplo,
el filtrado. Esta aplicación exige que se realicen todos los cálculos antes de
que llegue la siguiente muestra. Si el procesamiento de cálculo es muy
complejo, deberán utilizarse procesadores especializados para esta tarea
porque, de otra forma, se perderían muestras.
Las aplicaciones de los DSP son muy variadas: procesamiento de
señales de audio (compresión de audio, filtrado, TV digital), procesado de
habla (reconocimiento de voz, compresión de voz, grabadores digitales de
habla), comunicaciones (teléfonos móviles, módems, fax, GPS), multimedia
(compresión de vídeo, audio, imagen digital), control industrial (cancelación de
ruido, control de motores, fuentes de alimentación) y un largo etcétera.
También tienen diversas aplicaciones en el campo de la instrumentación.
Las funciones básicas que se requieren de un DSP en este campo son: FFT
(transformada rápida de Fourier), filtrado, síntesis de ondas, filtros adaptativos,
cálculos numéricos a alta velocidad, etc. Las aplicaciones incluyen: equipos de
test y medida, análisis de vibraciones, tarjetas de E/S para PCs (tarjetas de
adquisición de datos), analizadores de señal, generadores de funciones, etc.
Para damos una idea del tipo de algoritmos y operaciones que se
realizan en un DSP vamos a considerar una aplicación muy frecuente como
es el filtrado digital. En la Figura 9 se muestra el diagrama bloques de un
sistema basado en un DSP.
Figura 9 Sistema de adquisición basado en un DSP
ARQUITECTURAS DE MICROPROCESADORES
17
Electrónica para Sistemas Industriales
La señal analógica de entrada es una señal cuadrada que deseamos
filtrar para obtener a la salida una señal senoidal como la mostrada en la
Figura 9. En general, existen dos métodos para adquirir datos: procesamiento
continuo o por muestras y el procesamiento por lotes (frames). En sistemas
basados en muestreo, como el propuesto, en cada pulso de reloj se obtiene
un dato, se procesa y se obtiene la salida correspondiente de forma continua.
En los sistemas basados en frames, como los analizadores de espectros, se
adquieren los datos por bloques enteros que después se procesan en conjunto
y se da la salida. En nuestro caso, las señales que provienen del convertidor
A/D llegan al DSP como un tren de muestras individuales a la frecuencia de
muestreo del convertidor A/D que es función del ancho de banda de la señal
de entrada. Para evitar el submuestreo se somete a la señal a un filtrado
previo analógico (filtro antialising). El DSP realiza el algoritmo de filtrado a
través de un proceso numérico y genera una salida que se envía hacia el
convertidor D/A para obtener una señal analógica que se reconstruye con la
ayuda de un filtro pasa-bajo. Opcionalmente, el DSP puede comunicarse con
otros equipos para enviar o recibir datos o información de control
provenientes de un computador.
Por regla general, para realizar el filtrado en tiempo real, el DSP debe
realizar todos
los cálculos y operaciones requeridas para procesar cada
muestra antes de que llegue la siguiente. El tiempo entre muestras es el que
dispone el DSP para realizar todos los cálculos.
A las capacidades de cálculo del DSP debe añadirse además su
capacidad para realizar transferencias eficientes de datos procedentes del
exterior, en general, disponiendo de puertos de alta velocidad y procesadores
especializados en transferencias de E/S de tipo DMA (Direct Memory Access).
Por ejemplo, en el algoritmo de filtrado no sólo debe de calcularse a gran
velocidad, sino que también deben de proporcionarse los datos a un ritmo
sostenido.
ARQUITECTURAS DE MICROPROCESADORES
18
Electrónica para Sistemas Industriales
CARACTERÍSTICAS DE LOS DSPs
Un DSP típico incluye en la misma pastilla de silicio la unidad central
de proceso, la memoria y, generalmente, un procesador especializado en
operaciones de E/S. La Figura 10 describe la arquitectura de un DSP genérico.
Figura 10 Arquitectura de un DSP
ARQUITECTURAS DE MICROPROCESADORES
19
Electrónica para Sistemas Industriales
2.6 Clasificación de computadores según su arquitectura.
Taxonomía de Flynn
Según las diferentes arquitecturas desarrolladas pueden clasificarse los
computadores desde distintos puntos de vista. Una de las clasificaciones más
extendida es la denominada taxonomía de Flynn (1966), que se detalla a
continuación.
Esta taxonomía se basa en el número de flujos de instrucciones y flujos
de datos que posee cada sistema computador.
El proceso computacional consiste en la ejecución de una secuencia de
instrucciones sobre un conjunto de datos. El flujo de instrucciones es la
secuencia sobre la que opera un procesador, y el flujo de datos comprende la
secuencia de datos de entrada y los resultados parciales y totales.
Las arquitecturas de computadores se caracterizan por el hardware que
destinan a atender a los flujos de instrucciones y datos. Flynn propuso 4
categorías:
• SISD: Simple flujo de instrucciones, simple flujo de datos.
• MISD: Múltiple flujo de instrucciones, simple flujo de datos.
• SIMD: Simple flujo de instrucciones, múltiple flujo de datos.
• MIMD: Múltiple flujo de instrucciones, múltiple flujo de datos.
Después se introdujo una quinta clasificación derivada de las cuatro anteriores:
• MTMD: Múltiples rareas, múltiple flujo de daros.
COMPUTADORES SISD
Responden a los monoprocesadores convencionales (tipo Von Neumann) que
más se usan. Un computador SISD consiste en una única Unidad de Proceso
(Camino de Datos) que, recibiendo una secuencia de instrucciones, opera
sobre una secuencia de datos. No presenta ningún tipo de paralelismo.
Figura 11 Estructura básica de los ordenadores SISD
ARQUITECTURAS DE MICROPROCESADORES
20
Electrónica para Sistemas Industriales
Si, por ejemplo, se desea realizar una suma de n elementos, el
procesador tendrá que acceder a memoria n veces consecutivas para coger
los datos. También se deberán hacer n-1 sumas en secuencia. Es decir, los
algoritmos para las computadoras SISD no contienen ningún paralelismo.
COMPUTADORES MISD
Existen n unidades de proceso, cada una con su propia unidad de
control y sus propias instrucciones, pero operando sobre el mismo flujo de
datos, de forma que la salida de un procesador pasa a ser la entrada
(operandos) del siguiente en el macrocauce de los datos. Se hacen diferentes
operaciones al mismo tiempo con los mismos datos.
Como se puede observar en la Figura, existen n procesadores, cada uno
de ellos con su propia unidad de control, pero compartiendo todos ellos una
memoria común.
Las máquinas MISD son útiles en cómputos donde una misma entrada
está sujeta a varias operaciones, pero los arquitectos de computadores han
menospreciado esta organización y, de hecho, no existe ninguna
materialización real de este tipo.
Figura 12 Arquitectura de los computadores MISD
ARQUITECTURAS DE MICROPROCESADORES
21
Electrónica para Sistemas Industriales
COMPUTADORES SIMD
Flujo único de instrucciones y flujo múltiple de datos. Sólo hay una
unidad de control que controla las diferentes unidades de proceso. Todas las
unidades de proceso reciben la misma instrucción, pero operan sobre los
diferentes datos procedentes de la memoria.
La misma instrucción la reciben todas las unidades de proceso, pero a
veces no todas la realizan porque la instrucción lleva codificada los
procesadores que intervienen y los que están inactivos.
Como hay una secuencias de datos, se pueden utilizar diferentes datos
en cada procesador. Estos procesadores operan sincronizadamente y hay un
reloj global que se encarga de asegurar esta operación.
Un ejemplo de la utilidad de este tipo de sistema es la realización de
operaciones con matrices. Si necesitamos sumar dos matrices A y B de orden
2 y contando con cuatro procesadores:
La misma instrucción es ejecutada a la vez en los cuatro procesadores.
La suma de las dos matrices se realiza en un ciclo, mientras que en los
sistemas secuenciales tardaría cuatro.
Los SIMD son mucho más útiles y comerciales que los MISD y también
más flexibles. Además, es más fácil confeccionar algoritmos para los SIMD que
para los MISD. El caso ideal de los SIMD es cuando un problema se puede
dividir en varios su problemas con las mismas instrucciones.
En la mayoría de las aplicaciones interesantes que se quieran resolver
con este tipo de computadores, es deseable que los procesadores puedan
comunicarse entre sí durante el cálcu1o a fin de intercambiar datos o
resultados intermedios. Esto se puede realizar de dos maneras diferentes, a
través de una memoria común (computadores SIMD con memoria compartida)
o a través de una red de interconexión (computadores SIMD con memoria
distribuida).
Algunos ejemplos de esta arquitectura fueron: Tinquen Machines CM-2,
Gaspar computes, Procesador MMX.
ARQUITECTURAS DE MICROPROCESADORES
22
Electrónica para Sistemas Industriales
Figura 13 Arquitectura de los computadores SIMD
COMPUTADORES MIMD
Este tipo de computadora se basa en el paralelismo al igual que la
SIMD. La diferencia radica en que la arquitectura MIMD es asíncrona, no tiene
un reloj central. Cada procesador en un sistema MIMD puede ejecutar su
propia secuencia de instrucciones y tener sus propios datos. Esta característica
es la más general y poderosa de esta clasificación.
Se trata de una agrupación de monoprocesadores convencionales, cada
uno con su Unidad de Control, su Unidad de Proceso y su memoria local.
Cada uno dispone de su propio flujo de instrucciones y de datos, trabajan en
paralelo y de forma asíncrona, y están comunicados entre ellos igual que los
SIMD.
Se supone que son los sistemas más perfectamente paralelos, ya que el
paralelismo es total, pero también son los más caros Figura.
ARQUITECTURAS DE MICROPROCESADORES
23
Electrónica para Sistemas Industriales
Figura 14 Arquitectura de los computadores MIMD
Los algoritmos para los MIMD deben poseer un claro componente de
paralelismo, aunque pueden ser totalmente asíncronos, y además precisan
intercomunicación. Normalmente comienzan cargando una tarea básica a uno
cualquiera de los procesadores, y éste va descomponiendo tareas y
lanzándolas a los demás, así como creando dos colas, una de proceso y otra
de procesadores. En la primera se van introduciendo los procesos pendientes
de ejecutar, y en la segunda se van metiendo los procesadores que van
quedando libres después de terminar su tarea.
Ejemplos de computadores con arquitectura MIMD son BURR D-85,
Camp, CRAY/2, CRAY-MP y IBM 370/168MP.
Los sistemas MIMD se clasifican en:
•
•
•
Sistemas de Memoria Compartida.
Sistemas de Memoria Distribuida.
Sistemas de Memoria Compartida Distribuida.
ARQUITECTURAS DE MICROPROCESADORES
24
Electrónica para Sistemas Industriales
COMPUTADORES MTMD
Estos computadores surgen como una extensión a la clasificación de
Flynn, algo restringida al contemplar la ejecución sólo a nivel de instrucciones.
Múltiples Tareas con Múltiples Flujos de Datos.
Son como los computadores MIMD, la única diferencia es la tarea que
se aplica a cada Unidad de Proceso. Estos computadores son capaces de
ejecutar concurrentemente un número determinado de tareas, cada una con su
propio conjunto de datos.
3. CONCLUSIONES
RISC ofrece soluciones atractivas donde se requiere una elevada
capacidad de procesamiento y se presente una orientación hacia los lenguajes
de alto nivel. En el campo industrial existe un gran número de aplicaciones
que ni siquiera agotan las posibilidades de los controladores CISC de 8 bits
actuales.
Si bien el campo de aplicaciones de las arquitecturas RISC de alta
capacidad crece con fuerza, esto no equivale al fin de otras arquitecturas de
procesadores y controladores acreditadas que también seguirán
perfeccionándose, lo que si resulta dudoso es la creación de familias CISC
completamente nuevas.
VLIW se ha descrito como un sucesor natural a RISC, porque mueve la
complejidad del hardware al compilador, permitiendo más simplicidad, y
procesadores más rápidos.
Por último se han estudiado los procesadores EPIC, estos pueden
ejecutar muchas instrucciones distintas a la vez dentro de un solo procesador,
utilizando software para ordenar las instrucciones y decidir cuáles son posibles
de ejecutar simultáneamente.
Las decisiones en el mercado las toman los usuarios, y aquí, el
software o la aplicación concreta juega un papel mucho más importante que
las diferencias entre las estructuras que son inapreciables para el usuario final.
ARQUITECTURAS DE MICROPROCESADORES
25
Electrónica para Sistemas Industriales
4. BIBLIOGRAFÍA Y/O REFERENCIAS
[1] José Mª Angulo. Arquitectura de Microprocesadores. Ed. Paraninfo 2003
[2] S. S. Jadhav. Advanced Computer Architecture and Computing. Ed. Technical
Publications Pune 2009
[3] Fernando E. Valdés. Microcontroladores. Fundamentos y Aplicaciones. Ed.
Marcombo 2007
[4] Computadores paralelos y evaluación de prestaciones. Ed. Servicio de
Publicaciones de la Universidad de Castilla La Mancha 1996
5. ENLACES DE INTERÉS
Presente y futuro de los microprocesadores Intel
http://www.eltiempo.com/archivo/documento/MAM-841487
Microprocesadores VLIW
http://electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_05-VLIW_A4x6.pdf
ARQUITECTURAS DE MICROPROCESADORES
26