Arquitectura RISC vs CISC José Ignacio Vega Luna Profesor Investigador de la UAM / Azcapotzalco DCBI / Departamento de Electrónica Roberto Sánchez González Profesor Investigador de la UAM / Azcapotzalco DCBI / Departamento de Electrónica Gerardo Salgado Guzmán Profesor Investigador de la UAM / Azcapotzalco DCBI / Departamento de Electrónica Luis Andrés Sánchez González Hewlett Packard de México
Hoy en día, los programas cada vez más grandes y complejos demandan mayor velocidad en el procesamiento de información, lo que implica la búsqueda de microprocesadores más rápidos y eficientes. Los avances y progresos en la tecnología de semiconductores, han reducido las diferencias en las velocidades de procesamiento de los microprocesadores con las velocidades de las memorias, lo que ha repercutido en nuevas tecnologías en el desarrollo de microprocesadores. Hay quienes consideran que en breve los microprocesadores RISC (reduced instruction set computer) sustituirán a los CISC (complex instruction set computer), pero existe el hecho que los microprocesadores CISC tienen un mercado de software muy difundido, aunque tampoco tendrán ya que establecer nuevas familias en comparación con el desarrollo de nuevos proyectos con tecnología RISC. La arquitectura RISC plantea en su filosofía de diseño una relación muy estrecha entre los compiladores y la misma arquitectura como se verá más adelante.
INTRODUCCION Veamos primero cual es el significado de los términos CISC y RISC:
CISC (complex instruction set computer) Computadoras con un conjunto de instrucciones complejo. RISC (reduced instruction set computer) Computadoras con un conjunto de instrucciones reducido.
Los atributos complejo y reducido describen las diferencias entre los dos modelos de arquitectura para microprocesadores solo de forma superficial. Se requiere de muchas otras características esenciales para definir los RISC y los CISC típicos. Aun más, existen diversos procesadores que no se pueden asignar con facilidad a ninguna categoría determinada.
Así, los términos complejo y reducido, expresan muy bien una importante característica definitiva, siempre que no se tomen solo como referencia las instrucciones, sino que se considere también la complejidad del hardware del procesador. Con tecnologías de semiconductores comparables e igual frecuencia de reloj, un procesador RISC típico tiene una capacidad de procesamiento de dos a cuatro veces mayor que la de un CISC, pero su estructura de hardware es tan simple, que se puede realizar en una fracción de la superficie ocupada por el circuito integrado de un procesador CISC. Esto hace suponer que RISC reemplazará al CISC, pero la respuesta a esta cuestión no es tan simple ya que:
Para aplicar una determinada arquitectura de microprocesador son decisivas las condiciones de realización técnica y sobre todo la rentabilidad, incluyendo los costos de software. Existían y existen razones de compatibilidad para desarrollar y utilizar procesadores de estructura compleja así como un extenso conjunto de instrucciones.
La meta principal es incrementar el rendimiento del procesador, ya sea optimizando alguno existente o se desee crear uno nuevo. Para esto se deben considerar tres áreas principales a cubrir en el diseño del procesador y estas son:
La arquitectura. La tecnología de proceso. El encapsulado.
La tecnología de proceso, se refiere a los materiales y técnicas utilizadas en la fabricación del circuito integrado, el encapsulado se refiere a cómo se integra un procesador con lo que lo rodea en un sistema funcional, que de alguna manera determina la velocidad total del sistema. Aunque la tecnología de proceso y de encapsulado son vitales en la elaboración de procesadores más rápidos, es la arquitectura del procesador lo que hace la diferencia entre el rendimiento de una CPU (Control Process Unit) y otra. Y es en la evaluación de las arquítecturas RISC y CISC donde centraremos nuestra atención. Dependiendo de cómo el procesador almacena los operandos de las instrucciones de la CPU, existen tres tipos de juegos de instrucciones: 1. Juego de instrucciones para arquitecturas basadas en pilas. 2. Juego de instrucciones para arquitecturas basadas en acumulador. 3. Juego de instrucciones para arquitecturas basadas en registros. Las arquítecturas RISC y CISC son ejemplos de CPU con un conjunto de instrucciones para arquítecturas basadas en registros.
ARQUITECTURAS CISC La microprogramación es una característica importante y esencial de casi todas las arquítecturas CISC. Como por ejemplo: Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840. 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).
ARQUITECTURAS RISC Buscando aumentar la velocidad del procesamiento se descubrió en base a experimentos que, con una determinada arquitectura de base, la ejecución de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser mas eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnología de encapsulado. Debido a que se tiene un conjunto de instrucciones simplificado, éstas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcódigo y la necesidad de decodificar instrucciones complejas. En investigaciones hechas a mediados de la década de los setentas, con respecto a la frecuencia de utilización de una instrucción en un CISC y al tiempo para su ejecución, se observó lo siguiente: - Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de ejecución de un programa. - Existen secuencias de instrucciones simples que obtienen el mismo resultado que secuencias complejas predeterminadas, pero requieren tiempos
de ejecución más cortos. Las características esenciales de una arquitectura RISC pueden resumirse como sigue:
Estos microprocesadores siguen tomando como base el esquema moderno de Von Neumann. Las instrucciones, aunque con otras características, siguen divididas en tres grupos: a) Transferencia. b) Operaciones. c) Control de flujo.
Reducción del conjunto de instrucciones a instrucciones básicas simples, con la que pueden implantarse todas las operaciones complejas. Arquitectura del tipo load-store (carga y almacena). Las únicas instrucciones que tienen acceso a la memoria son 'load' y 'store'; registro a registro, con un menor número de acceso a memoria. Casi todas las instrucciones pueden ejecutarse dentro de un ciclo de reloj. Con un control implantado por hardware (con un diseño del tipo load-store), casi todas las instrucciones se pueden ejecutar cada ciclo de reloj, base importante para la reorganización de la ejecución de instrucciones por medio de un compilador. Pipeline (ejecución simultánea de varias instrucciones). Posibilidad de reducir el número de ciclos de máquina necesarios para la ejecución de la instrucción, ya que esta técnica permite que una instrucción puede empezar a ejecutarse antes de que haya terminado la anterior.
El hecho de que la estructura simple de un procesador RISC conduzca a una notable reducción de la superficie del circuito integrado, se aprovecha con frecuencia para ubicar en el mismo, funciones adicionales:
Unidad para el procesamiento aritmético de punto flotante. Unidad de administración de memoria. Funciones de control de memoria cache. Implantación de un conjunto de registros múltiples.
La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseño más cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicación de las más recientes tecnologías de semiconductores. Por ello, los procesadores RISC no solo tienden a ofrecer una capacidad de procesamiento del sistema de 2 a 4 veces mayor, sino que los saltos de capacidad que se producen de generación en generación son mucho mayores que en los CISC. Por otra parte, es necesario considerar también que:
La disponibilidad de memorias grandes, baratas y con tiempos de acceso menores de 60 ns en tecnologías CMOS. Módulos SRAM (Memoria de acceso aleatorio estática) para memorias cache con tiempos de acceso menores a los 15 ns.
Tecnologías de encapsulado que permiten realizar más de 120 terminales.
Esto ha hecho cambiar, en la segunda mitad de la década de los ochentas, esencialmente las condiciones técnicas para arquítecturas RISC. La siguiente tabla esquematiza algunas de las principales características de las arquítecturas RISC Y CISC.
PRINCIPIOS DE DISEÑO DE LAS MAQUINAS RISC Resulta un tanto ingenuo querer abarcar completamente los principios de diseño de las máquinas RISC, sin embargo, se intentará presentar de una manera general la filosofía básica de diseño de estas maquinas, teniendo en cuenta que dicha filosofía puede presentar variantes. Es muy importante conocer estos principios básicos, pues de éstos se desprenden algunas características importantes de los sistemas basados en microprocesadores RISC. En el diseño de una máquina RISC se tienen cinco pasos: 1. Analizar las aplicaciones para encontrar las operaciones clave. 2. Diseñar un bus de datos que sea óptimo para las operaciones clave. 3. Diseñar instrucciones que realicen las operaciones clave u tilizando el bus de datos. 4. Agregar nuevas instrucciones sólo si no hacen más lenta a la máquina. 5. Repetir este proceso para otros recursos. El primer punto se refiere a que el diseñador deberá encontrar qué es lo que hacen en realidad los programas que se pretenden ejecutar. Ya sea que los programas a ejecutar sean del tipo algorítmicos tradicionales, o estén dirigidos a robótica o al diseño asistido por computadora. La parte medular de cualquier sistema es la que contiene los registros, el ALU y los 'buses' que los conectan. Se debe optimar este circuito para el lenguaje o aplicación en cuestión. El tiempo requerido, (denominado tiempo del ciclo del bus de datos) para extraer los operandos de sus registros, mover los datos a través del ALU y almacenar el resultado de nuevo en un registro, deberá hacerse en el tiempo mas corto posible. El siguiente punto a cubrir es diseñar instrucciones de máquina que hagan un buen uso del bus de datos. Por lo general se necesitan solo unas cuantas instrucciones y modos de direccionamiento; sólo se deben colocar instrucciones adicionales si serán usadas con frecuencia y no reducen el desempeño de las más importantes. Siempre que aparezca una nueva y atractiva característica, deberá analizarse y ver la forma en que se afecta al ciclo de bus. Si se incrementa el tiempo del
ciclo, probablemente no vale la pena tenerla. Por último, el proceso anterior debe repetirse para otros recursos dentro del sistema, tales como memoria cache, administración de memoria, coprocesadores de punto flotante, etcétera. Una vez planteadas las características principales de la arquitectura RISC así como la filosofía de su diseño, podríamos extender el análisis y estudio de cada una de las características importantes de las arquítecturas RISC y las implicaciones que estas tienen.
PAPEL DE LOS COMPILADORES EN UN SISTEMA RISC El compilador juega un papel clave para un sistema RISC equilibrado. Todas las operaciones complejas se trasladan al microprocesador por medio de conexiones fijas en el circuito integrado para agilizar las instrucciones básicas más importantes. De esta manera, el compilador asume la función de un mediador inteligente entre el programa de aplicación y el microprocesador. Es decir, se hace un gran esfuerzo para mantener al hardware tan simple como sea posible, aún a costa de hacer al compilador considerablemente más complicado. Esta estrategia se encuentra en clara contra posición con las máquinas CISC que tienen modos de direccionamiento muy complicados. En la práctica, la existencia en algunos modos de direccionamiento complicados en los microprocesadores CISC, hacen que tanto el compilador como el microprograma sean muy complicados. No obstante, las máquinas CISC no tienen características complicadas como carga, almacenamiento y salto que consumen mucho tiempo, las cuales en efecto aumentan la complejidad del compilador. Para suministrar datos al microprocesador de tal forma que siempre esté trabajando en forma eficiente, se aplican diferentes técnicas de optimización en distintos niveles jerárquicos del software. Los diseñadores de RISC en la empresa MIP y en Hewlett Packard trabajan según la regla siguiente:
Una instrucción ingresa en forma fija en el circuito integrado del procesador (es decir, se alambra físicamente en el procesador) si se ha demostrado que la capacidad total del sistema se incrementa en por lo menos un 1%. En cambio, los procesadores CISC, han sido desarrollados por equipos especializados de las empresas productoras de semiconductores y con frecuencia el desarrollo de compiladores se sigue por separado. Por consiguiente, los diseñadores de los compiladores se encuentran con una interfaz hacia el procesador ya definido y no pueden influir sobre la distribución óptima de las funciones entre el procesador y compilador. Las empresas de software que desarrollan compiladores y programas de
aplicación, tienden por razones de rentabilidad, a utilizar diferentes procesadores como usuarios de su software en lugar de realizar una optimización completa, y aprovechar así las respectivas características de cada uno. Lo cual también genera otros factores negativos de eficiencia. Esta limitación de las posibilidades de optimización del sistema, que viene dada a menudo por una obligada compatibilidad, se superó con los modernos desarrollos RISC.
CAPACIDAD DE PROCESAMIENTO DE LOS SISTEMAS DESDE EL PUNTO DE VISTA DEL USUARIO Aparte de la base conceptual para el desarrollo de un sistema de computación de alta calidad, se requieren técnicas especiales para optimizar cada uno de los factores que determinan la capacidad de procesamiento, la cual, solo puede definirse con el programa de aplicación. La información suministrada por un fabricante, sobre la velocidad en mips (millones de Instrucciones por segundo) que una arquitectura es capaz de realizar, carece de relevancia hasta que el usuario sepa cuantas instrucciones genera el respectivo compilador, al traducir su programa de aplicación y cuánto tiempo tarda la ejecución de estas instrucciones, y solo el análisis de diferentes pruebas y comparaciones de rendimiento ("benchmarks) da una idea aproximada, que el usuario puede aplicar para delimitar las arquítecturas adecuadas.
Dos diferentes puntos de vista acerca de capacidad de procesamiento del sistema.
Sistema reprogramable. Un usuario que necesite desarrollar un sistema reprogramable, no está interesado en obtener una alta capacidad de procesamiento. Sistema incluido o dedicado. En estos sistemas el principal objetivo es procesar en forma repetitiva una serie de aplicaciones o funciones determinadas, y es de suma importancia la mayor cantidad posible de pruebas y comparaciones de rendimiento ("benchmarks" ) diferentes.
Así, estas pruebas y comparaciones sirven para determinar la capacidad de procesamiento de los sistemas, pero solo el análisis de varios resultados de diferentes programas da una idea aproximada de la capacidad de procesamiento real.
APLICACIONES DE LOS PROCESADORES RISC Las arquitecturas CISC utilizadas desde hace 15 años han permitido desarrollar un gran número de productos de software. Ello representa una considerable inversión y asegura a estas familias de procesadores un mercado creciente. Sin embargo, simultáneamente aumentan las aplicaciones en las cuales la capacidad de procesamiento que se pueda obtener del
sistema es más importante que la compatibilidad con el hardware y el software anteriores, lo cual no solo es válido en los subsistemas de alta capacidad en el campo de los sistemas llamados "embedded", en los que siempre dominaron las soluciones especiales de alta capacidad de procesamiento sino también para las estaciones de trabajo ("workstations"). Esta clase de equipos se han introducido poco a poco en oficinas, en la medicina y en bancos, debido a los cada vez mas voluminosos y complejos paquetes de software que con sus crecientes requerimientos de reproducción visual, que antes se encontraban solo en el campo técnico de la investigación y desarrollo. En este tipo de equipos, el software de aplicación, se ejecuta bajo el sistema operativo UNIX, el cual es escrito en lenguaje C, por lo que las arquítecturas RISC actuales están adaptadas y optimizadas para este lenguaje de alto nivel. Por ello, todos los productores de estaciones de trabajo de renombre, han pasado en pocos años, de los procesadores CISC a los RISC, lo cual se refleja en el fuerte incremento anual del número de procesadores RISC, (los procesadores RISC de 32 bits han visto crecer su mercado hasta en un 150% anual). En pocos años, el RISC conquistará de 25 al 30% del mercado de los 32 bits, pese al aparentemente abrumador volumen de software basado en procesadores con el estándar CISC que se ha comercializado en todo el mundo. La arquitectura MIPS-RISC ha encontrado, en el sector de estaciones de trabajo, la mayor aceptación. Los procesadores MIPS son fabricados y comercializados por cinco empresas productoras de semiconductores, entre las que figuran NEC y Siemens. Los procesadores de los cinco proveedores son compatibles en cuanto a las terminales, las funciones y los bits.
CONCLUSIONES Cada usuario debe decidirse a favor o en contra de determinada arquitectura de procesador en función de la aplicación concreta que quiera realizar. Esto vale tanto para la decisión por una determinada arquitectura CISC o RISC, como para determinar si RISC puede emplearse en forma rentable para una aplicación concreta.
Nunca será decisiva únicamente la capacidad de procesamiento del microprocesador, y sí la capacidad real que puede alcanzar el sistema en su conjunto. Los costos, por su parte, también serán evaluados.
Supongamos por ejemplo, que el precio de un procesador sea de $500.00 USD, éste será secundario para un usuario que diseña una estación de trabajo para venderla después a un precio de $100 000.00 USD. Su decisión se orientará exclusivamente por la potencialidad de este procesador. 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 bién el campo de aplicaciones de las arquítecturas RISC de alta capacidad crece con fuerza, esto no equivale al fin de otras arquítecturas 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. Adoptando técnicas típicas de los procesadores RISC en las nuevas versiones de procesadores CISC, se intenta encontrar nuevas rutas para el incremento de la capacidad de las familias CISC ya establecidas. Entre tanto, los procesadores RISC han conquistado el sector de las estaciones de trabajo, dominado antes por los procesadores Motorola 68 000, y es muy probable que acosen la arquitectura Intel en el sector superior de las PC's. 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.
Características de la arq cisc
Arquitectura RISC y CISC A
que
nos
referimos
a
las
Arquitecturas RISC y CISC ...
Una de las primeras decisiones a la hora de diseñar un microprocesador es decidir cual será su juego de instrucciones. La decisión por 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. 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.
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.
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.
Caracteristicas:
En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por 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. 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 de plataformas y arquitecturas al éxito, algunas de las más grandes:
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 e n 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 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 corazon de muchos equipos electrónicos para el consumo.SuperH es la plataforma base de el 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.
Entre
las ventajas de RISC tenemos
las
siguientes:
La CPU trabaja mas 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
En 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.
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
de CISC destacan
las
siguientes:
de
microprocesadores
basados
en
la
tecnología CISC:
basados
en
la
tecnología CISC:
Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840. Ejemplo
ventajas
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
las
de
microprocesadores
MIPS, Millions Instruction Per Second. PA-RISC, Hewlett Packard. SPARC, Scalable Processor Architecture, Sun Microsystems. POWER PC, Apple, Motorola e IBM.
Conclusión: Hoy en día, los programas cada vez más grandes y complejos demandan mayor velocidad en el procesamiento de información, lo que implica la búsqueda de microprocesadores más
rápidos
y
eficientes.
Referencias:
http://www.azc.uam.mx/publicaciones/enlinea2/num1/1-2.htm http://es.wikipedia.org/wiki/RISC http://www.monografias.com/trabajos55/microprocesadores-cisc-risc/microprocesadores-ciscrisc.shtml
PROCESADORES CISC - RISC Los procesadores se agrupan hoy en dos familias, la más antigua y común de las cuales es la "CISC" o "Complex Instruction Set Computer": computador de set complejo de instrucciones. Esto corresponde a procesadores que son capaces de ejecutar un gran número de instrucciones pre-definidas en lenguaje de máquina (del orden del centenar). Desde hace unos años se fabrican y utilizan en algunas máquinas procesadores "RISC" o "Reduced Instruction Set Computer", es decir con un número reducido de instrucciones. Esto permite una ejecución más rápida de las instrucciones pero requiere compiladores (o sea traductores automáticos de programas) más complejos ya que las instrucciones que un "CISC" podría admitir pero no un "RISC", deben ser escritas como combinaciones de varias instruciones admisibles del "RISC". Se obtiene una ganancia en velocidad por el hecho que el RISC domina i nstrucciones muy frecuentes mientras son operaciones menos frecuentes las que deben d escomponerse. Procesadores CISC Las características principales de los procesadores CISC son:
CISC = Complex Instruction Set Computer o o o
Muchas instrucciones potentes Muchos modos de direccionamiento Varios formatos de instrucciones
Normalmente microprogramados (no microprogramables) La ejecución de las instrucciones lleva varios ciclos de máquina.
Aparece 60s ? Compiladores en su infancia o
CISC pretendía disminuir el salto entre los lenguajes de alto nivel (LAN) y el lenguaje máquina (LM)
60s...IBM 360; 70s...DEC VAX, Intel x86, Motorola 680x0
Módelo ejecución: reg/men-reg/mem o o
? tiempo acceso memoria más lento que ? clk Registros pocos y especializados
Instrucciones complejas ? ?CPI o
Repertorio completo VAX ?+400Kb de uCódigo 20% inst. ? 60% ?C y sólo 0.2% de utilización
Arquitectura de mucho éxito ? Intel x86 o
única CISC en expansión hasta hoy en día memoria segmentada ? ? trabajo a programadores bajo nivel y compiladores
Procesadores RISC
RISC = Reduced Instruction Set Computer o o
Pocas instrucciones y sencillas Pocos modos de direccionamiento
En los 80s los uP eran muy complejos o o
Las instrucciones complejas se utilizaban poco ... y hacían al uP más lento
Idea ? Optimizar el caso común o
o
... buscando las operaciones más utilizadas y diseñando la máquina entorno a ellas Añadir nuevas sólo si no ralentizan la máquina
? accesos a memoria ? Load/Store
o o
modelo de ejecución reg-reg ? registros general purpose (p.e. 32)
? instrucciones ? simples y regulares o o o
ejecución directa por el hardware (uCódigo=0) ? formatos instrucción ? decodif. más rápida objetivo de 1 instrucción/ciclo
? NI ? ? trabajo de los compiladores o o
? distancia entre LAN y LM 80s.. tecnología de compiladores madura
CISC vs. RISC Ejemplos CSIC RISC IBM370 VAX 11/780 8086 SPARC I MIPS I Año 1973 1978 1978 1981 1983 Instrucciones 208 303 100 39 55 Microcódigo 54Kb 400Kb 11Kb 0 0 Inst. (bytes) 2-6 2-57 1-17 4 4
Balance ? gana RISC
Aunque actualmente la división no está clara .... Pentium, Pentium II y IA -64 son CSIC, pero por debajo existe una máquina RISC. RISC por rendimiento, CISC por compatibilidad software ... últimos SPARC instrucción producto de matrices
Una computadora CISC gasta el 80% de su tiempo ejecutando 20% de suinstrucciones.
La ejecución en RISC es más rápida que en CISC.
Los programas en RISC ocupan menos espacio de memoria.
solamente el
Procesadores RISC, multiproceso y caché Introducción: A lo largo de la historia de la industria de los ordenadores, la tendencia mayormente adoptada para conseguir un aumento de prestaciones, ha sido el incremento de la complejidad de las instrucciones. Es lo que se ha denominado "computación con conjuntos de instrucciones complejas" o CISC (Complex Instruction Set Computing). Sin embargo, la tendencia actual, se esfuerza en conseguir procesadores con conjuntos de instrucciones de complejidad reducida o RISC (Reduced Instruction Set Computing). La idea es que un conjunto de instrucciones poco complejas son simples, y por tanto de más rápida ejecución, lo que permite crear un código más "aerodinámico". Tanto la tecnología CISC como la RISC son acreditadas a IBM, aunque sus antecesores bien pueden ser John vonNeumman (inventor del primer programa de ordenador almacenado, y que promovía la velocidad inherente a conjuntos de instrucciones reducidas), Maurice Wilkes (padre de la microprogramación y de muchos conceptos de los diseños RISC), y Seymour Cray (primeros supercomputadores, empleando principios RISC). En 1975, IBM inició el desarrollo de un controlador para un sistema de conmutación telefónica, que aunque fue abandonado, sirvió como punto de partida para el desarrollo de una CPU con tecnología ECL, corazón del sistema 801, precursor del IBM PC RT. Los inicios de la tecnología RISC también surgen en el ambiente académico, ya que en 1980, la Universidad de Berkeley (California), el Dr. David A. Patterson inició un proyecto denominado RISC I, que obtuvo resultados en tan solo 19 meses, seguido por RISC II, SOAR (Smalltalk on a RISC) y SPUR (Symbolic Processing on a RISC). El resultado directo, además de la educación en la ingeniería y los fundamentos del diseño de microprocesadores, fue la creación de una máquina que fuese capaz de mayores velocidades de ejecución a menores velocidades de reloj y que requiriese menores esfuerzos de diseño. Casi 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 las capacidades de velocidad de la arquitectura RISC. Ambos profesores se vieron envueltos rápidamente, en proyectos de productos comerciales, y en concreto, Hennesy fue uno de los fundadores de MIPS Computer Systems, mientras Patterson actuaba de asesor durante el desarrollo del primer SPARC.
Por otro lado, durante las pasadas décadas, el multiproceso, como medida de incrementar drásticamente las prestaciones de los sistemas a un coste razonable, se ha visto reducido al ámbito de los computadores de "alto ni vel", en parte debido a los bajos niveles de integración del silicio, y a la falta de software que facilitase la ejecución paralela de las aplicaciones. Las ventajas de los procesadores RISC, especialmente las ligadas a los sistemas abiertos (léase UNIX), los hacen plataformas ideales para expl orar los puntos fuertes de los sistemas multiprocesadores. Tecnología RISC: La comparación que antes hemos realizado entre CISC y RISC es algo simple, ya que no es sólo una cuestión de diferencias en el conjunto de instrucciones, puesto que es fundamental resaltar el mejor uso y aprovechamiento de los recursos del silicio, es decir, menor tiempo de diseño y empleo de menor número de transistores, lo que redunda en menor número de errores de diseño y menor tiempo de ejecución para instrucciones individuales. Las características comunes a todos los procesadores RISC, fuente de sus capacidades de altas prestaciones, son: 1.
Modelo de conjunto de instrucciones Load/Store (Cargar/Almacenar). Sólo las instrucciones Load/Store acceden a memoria; las demás operaciones en un RISC, tienen lugar en su gran conjunto de registros. Ello simplifica el direccionamiento y acorta los tiempos de los ciclos de la CPU, y además facilita la gestión de los fallos de paginas (page faults) en entornos de memoria virtual. Además, permite un elevado nivel de concurrencia a consecuencia de la independencia de las operaciones de Load/Store de la ejecución del resto de las instrucciones.
2.
Arquitectura no destructiva de tres direcciones. Los procesadores CISC destruyen la información que existe en alguno de los registros, como consecuencia de la ejecución normal de instrucciones; esto es debido a su arquitectura de dos direcciones, por la cual el resultado de una operación sobrescribe uno de los registros que contenía a los operandos. Por contra, las instrucciones RISC, con tres direcciones, contienen los campos de l os dos operandos y de su resultado. Por lo tanto, tanto los operandos origen como el destino, son mantenidos en los registros tras haber sido completada la operación. Esta arquitectura "no destructiva" permite a los compil adores organizar las instrucciones de modo que mantengan ll enos los conductos (pipelines) del chip, y por tanto reutilizar los operandos optimizando la concurrencia.
3.
Instrucciones simples, de formato fijo, con pocos modos de direccionamiento. Las instrucciones simples reducen de manera muy significativa el esfuerzo para su descodificación, y favorecen su ejecución en pipelines. Las instrucciones de longitud fija, con formatos fijos, implican que l os campos de códigos de operación (opcodes) y de los operandos están siempre codificados en las mismas posiciones, permitiendo el acceso a los registros al mismo tiempo que se está descodificando el código de operación. Todas l as instrucciones tienen una longitud equivalente a una palabra y están alineadas en la memoria en límites de palabra (word boundaries), ya que no pueden ser repartidas en pedazos que puedan estar en diferentes páginas.
4.
Ausencia de microcódigo. El microcódigo no se presta a la ejecución en ciclos únicos, ya que requiere que el hardware sea dedicado a su interpretación dinámica. La programación en microcódigo no hace que el software sea más rápido que el programado con un conjunto de instrucciones simples. Todas las funciones y el control, en los procesadores RISC, están "cableados" (hardwired), para lograr una máxima velocidad y eficiencia.
5.
Ejecución en conductos (pipelined). Las instrucciones simples, de formato fijo y ciclo único permiten que las diferentes etapas de los ciclos de ejecución (búsqueda o fetch, descodificación, ejecución, y escritura del resultado o result write-back) para instrucciones múltiples, se pu edan realizar simultáneamente, de un modo más simple y eficaz.
6.
Ejecución en ciclos únicos (single-cycle). El resultado directo de los conjuntos de instrucciones que ofrecen los procesadores RISC, es que cada instrucción puede ser ejecutada en un único ciclo de la CPU. Esto invalida la creencia de que las microinstrucciones en microcódigo, creadas para ser ejecutadas en un solo ciclo de procesador, son más rápidas que las instrucciones del lenguaje ensamblador. Ya que el caché esta construido partiendo de la misma tecnología que el almacenamiento de control del microprograma, una única instrucción puede ser ejecutada a la misma velocidad que una microinstrucción. La ejecución en ciclos únicos también simplifica la gestión de las interrupciones y los conductos (pipelines).
Conceptos de multiproceso: La industria informática, ha tenido siempre un objetivo primordial, repetido a l o largo de toda su cadena (fabricantes de semiconductores, fabricantes de sistemas y usuarios): la búsqueda de la velocidad. Para alcanzar este objetivo se han invertido ingentes cantidades de recursos, hasta alcanzar los límites físicos del silicio. Obviamente, la velocidad va ligada a las prestaciones, y por lo general, la primera ha sido la principal medida para decidirse por un sistema u otro. Si n embargo, por muy evidente que parezca, y dados los límites físicos de los semiconductores, las prestaciones pueden no estar forzosamente ligadas a la velocidad. Hoy es posible construir sistemas, que aún teniendo procesadores más "lentos" que otros, ofrezcan unas prestaciones significativamente superiores. Son los sistemas multiprocesador, que como su denominación indica, incorporan varios procesadores para llevar a cabo las mismas funciones. No es un concepto nuevo, ya que los "minicomputadores" construidos por compañías como NCR, Sequent y Stratus, ya empleaban varios nodos de proceso como alternativas económicas a otros productos de otras compañías. Sin embargo, aquellos sistemas aún duplicaban recursos caros del sistema, como memoria y dispositivos de entrada/salida, y por tanto, confinaban a los sistemas multiprocesador al mundo de los sistemas de alto nivel. Ahora, y en gran medida gracias a los procesadores de arquitectura RISC, el soporte multiprocesador es una solución integrada y fácilmente disponible en estaciones de trabajo de sobremesa, que resuelve, a través de hardware VLSI, los complejos problemas de compartición de recursos (memoria compartida) de aquellas primeras máquinas. Evidentemente, estas mejoras en el hardware, para ser funcionales, requieren importantes desarrollos en el software, y de hecho, muchos sistemas operativos admiten extensiones multiproceso (Match, SCO, Solaris, System V, etc.), que
proporcionan paralelismo "en bruto" (asignando múltiples tareas a múltiples procesadores) a nivel del sistema operativo. Las aplicaciones escritas para facilitar el paralelismo en su ejecución, incrementan significativamente las prestaciones globales del sistema; esto es lo que se denomina multi-enhebrado (multithreading), que implica dividir una sola aplicación entre varios procesadores. Sin embargo, los desarrolladores de software y programadores de aplicaciones sólo han comenzado a explorar las vastas posibili dades de incremento de prestaciones que ofrecen los sistemas con capacidades reales de proceso en paralelo. El multiproceso no es algo difícil de entender: más procesadores significa mas potencia computacional. Un conjunto de tareas puede ser completado más rápidamente si hay varias unidades de proceso ejecutándolas en paralelo. Esa es la teoría, pero otra historia es la práctica, como hacer funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto del hardware como del software. Es necesario conocer ampliamente como están interconectados dichos procesadores, y la forma en que el código que se ejecuta en los mismos ha sido escrito para escribir aplicaciones y software que aproveche al máximo sus prestaciones. Para lograrlo, es necesario modificar varias facetas del sistema operativo, la organización del código de las propias aplicaciones, así como los lenguajes de programación. Es difícil dar una definición exacta de un sistema multiprocesador, aunque podemos establecer una clasificación de los sistemas de procesadores en: SISD o secuencia única de instrucciones y datos (Single Instruction, Single Data): una sola secuencia de instrucciones opera sobre una sola secuencia de datos (caso típico de los ordenadores personales). SIMD o secuencia única de instrucciones y múltiple de datos (Single Instruction, Multiple Data): una sola secuencia de instrucciones opera, simultáneamente, sobre múltiples secuencias de datos (array processors). MISD o múltiples secuencias de instrucciones y única de datos (Multiple Instruction, Single Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre una sola secuencia de datos (sin implementaciones útiles actualmente). MIMD o múltiples secuencias de instrucciones y datos (Multiple Instruction, Multiple Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre múltiples secuencias de datos. Los sistemas multiprocesadores pueden ser clasificados con mayor propiedad como sistemas MIMD. Ello implica que son máquinas con múltiples y autónomos nodos de proceso, cada uno de los cuales opera sobre su propio conjunto de datos. Todos los nodos son idénticos en funciones, por lo que cada uno puede operar en cualquier tarea o porción de la misma. El sistema en que la memoria está conectada a los nodos de proceso establece el primer nivel de distinción entre diferentes sistemas multiprocesador: 1.
Multiprocesadores de memoria distribuida (distributed-memory multiprocessors), también denominados multiprocesadores vagamente acoplados (loosely coupled multiprocessors). Se caracterizan porque cada procesador sólo puede acceder a su propia memoria. Se requiere la comunicación entre los nodos de proceso para coordinar las operaciones y mover los datos. Los datos pueden ser intercambiados, pero no compartidos. Dado que los procesadores no comparten un espacio de direcciones común, no hay problemas asociados con tener múltiples copias de los datos, y por tanto
los procesadores no tienen que competir entre ellos para obtener sus datos. Ya que cada nodo es un sistema completo, por si mismo (incluso sus propios dispositivos de entrada/salida si son necesarios), el úni co límite práctico para incrementar las prestaciones añadiendo nuevos nodos, esta dictado por l a topología empleado para su interconexión. De hecho, el esquema de interconexión (anillos, matrices, cubos, ...), tiene un fuerte impacto en las prestaciones de estos sistemas. Además de la complejidad de las interconexiones, una de las principales desventajas de estos sistemas, como es evidente, es la duplicación de recursos caros como memoria, dispositivos de entrada/salida, que además están desocupados en gran parte del tiempo. 2.
Multiprocesadores de memoria compartida (shared-memory multiprocessors), también llamados multiprocesadores estrechamente acoplados (tightly coupled multiprocessors). Son sistemas con múltiples procesadores que comparten un único espacio de direcciones de memoria. Cualquier procesador puede acceder a los mismos datos, al igual que puede acceder a ellos cualquier dispositivo de entrada/salida. El sistema de interconexión más empleado para estos casos, es el de bus compartido (shared-bus). Tener muchos procesadores en un único bus tiene el inconveniente de limitar las prestaciones del sistema a medida que se añaden nuevos procesadores. La razón es la saturación del bus, es decir, su sobre utilización; en un sistema de bus compartido, se deriva por la contienda entre los diferentes dispositivos y procesadores para obtener el control del bus, para obtener su utilización.
Es evidente, que los sistemas actuales tienden al uso de arquitecturas de memoria compartida, fundamentalmente por razones de costes, a pesar del problema de la contienda por el bus. Los tres fuentes fundamentalmente responsables de dicha disputa son la memoria (cada CPU debe usar el bus para acceder a la memoria principal), la comunicación (el bus es usado por los "bus masters" para la comunicación y coordinación), y la latencia de la memoria (el subsistema de memoria mantiene al bus durante las transferencias de datos, y en función de la velocidad a l a que la memoria puede responder a las peticiones, puede llegar a ser un factor muy significativo). Los sistemas de memoria caché y el multiproceso: Los sistemas de memoria multinivel (caché) son un esfuerzo para evitar el número de peticiones realizadas por cada CPU al bus. Los caches son pequeñas y rápidas (y por tanto caras) memorias, que hacen de tampón (buffer) entre la CPU y la memoria externa, para mantener los datos y/o instrucciones. Se basan en el principio de la "localidad", lo que significa que, dada la fundamental naturaleza secuencial de los programas, los siguientes datos o instrucciones requeridas, estarán localizadas inmediatamente a continuación de las actuales. Los datos contenidos en la memoria caché se organizan en bloques denominados líneas. Las líneas son cargadas en el caché como copias exactas de los datos situados en la memoria externa. Para referenciar a los datos de la memoria caché, se emplean marcas (tags) que identifican a cada línea. Las marcas o tags emplean una porción de la dirección física de los datos, para compararla con la dirección física solicitada por la CPU. Cuando existe una coincidencia exacta de la dirección y de otros cualificadores (estado, privilegio, contexto, etc.), se dice que ha tenido l ugar un acierto (hit) de caché; en caso contrario, tiene lugar un fallo (miss) del caché, y en ese caso, los datos han de ser recuperados desde la memoria.
El empleo de memoria caché se ha popularizado, como medida para acelerar el tiempo de acceso a la memoria principal, incluso en los sistemas monoprocesador, evitando así, según se incrementa la velocidad de los propios procesadores, aumentar la velocidad de dicha memoria, y por tanto encarecer el sistema. La forma en que la memoria es actualizada por los caches locales puede tener un gran impacto en las prestaciones de un sistema multiprocesador. Básicamente hay dos métodos: 1.
Escritura continua (write-through). Requiere que todas las escrituras realizadas en el caché actualicen asimismo los datos de la memoria principal. De esta forma, la memoria principal siempre tiene la últi ma copia de los datos, y por tanto no hay nunca ninguna incoherencia con el caché. El inconveniente es que se producen frecuentes accesos a memoria, especialmente superfluos cuando el software está modificando las mismas secciones de datos repetidamente (por ejemplo ejecutando bucles).
2.
Copia posterior (copy-back). Es un sistema mucho más eficiente, aunque también más complejo de implementar. En este caso, la CPU puede modificar la línea de caché sin necesidad de actualizar inmediatamente la memoria principal. Los datos sólo son copiados a la memoria principal cuando la línea de caché va a ser reemplazada con una nueva. Ello no solo minimiza el tráfico del bus, de vital importancia para el resto de los procesadores, sino que también libera al procesador de la tarea de escribir en la memoria principal. Sin embargo, este sistema, en una arquitectura de bus compartido, implica un nuevo nivel de dificultad, denominado coherencia o consistencia (coherency o consistency); dado que cada caché puede tener una copia de los datos existentes en l a memoria principal, el desafío es asegurar que los datos permanecen iguales entre todos los caches. Hay dos métodos para mantener cada línea de caché idéntica a las demás: a.
Escritura radiada (write-broadcast), que requiere que la CPU que modifica los datos compartidos actualice los otros caches, para lo cual escribe en el bus la dirección de los datos, y los datos mismos, de modo que todos los dispositivos interesados (otras CPU’s) l os capturen. Esto asegura que cada línea de caché en el sistema es una copia exacta de las demás.
b.
Escritura invalidada (write-invalidate), impide a una CPU modificar los datos compartidos en su caché hasta que otros caches han invalidado sus copias. En cuanto otros caches invalidan sus líneas, el caché modificado tiene la única copia; de este modo, se garantiza que un sólo caché escribe una línea compartida en un momento dado. Tiene la ventaja de conservar el ancho de banda del bus ya que los datos modificados no tienen que ser enviados a otros caches.
Ambos sistemas requieren que los caches sean capaces de identificar peticiones en el bus que afecten a sus datos, lo que se realiza con una técnica conocida como "sondeo del bus" (bus snooping). Cada caché compara las direcciones de las peticiones en el bus compartido con los datos en su propio cache, usando las marcas (tags).
Este sistema requiere un acceso concurrente a las marcas (tags) del caché por parte del bus del sistema y del bus del procesador. Sin dicho acceso concurrente, el procesador no podría acceder al caché durante las operaciones de sondeo del bus (que tienen que tener prioridad de acceso a las marcas, para poder mantener la coherencia del caché). El resultado son frecuentes atascos del procesador y consecuentemente, bajo rendimiento. A su vez, hay varios protocolos asociados con el sondeo del bus para el movimiento de los datos y los mensajes entre los caches: 1.
Intervención indirecta de los datos (indirect data intervention). Es el método más simple de intercambio de datos entre procesadores, aunque también el menos eficiente. La 1ª CPU hace una petición de datos, que es sondeada por la 2ª; tiene lugar un acierto de sondeo (snoop hit) si dichos datos están en el caché de la 2ª CPU, entonces esta obtiene el control del bus e indica a la 1ª que lo reintente más tarde. La 2ª CPU escribe los d atos de su caché a la memoria, y la 1ª CPU obtiene el control del bus de nuevo, reiniciando la petición. Los datos son ahora suministrados por la memoria.
2.
Intervención directa de los datos (direct data intervention). Los datos son suministrados directamente por la 2ª CPU a la 1ª. Este mecanismo es aplicable fundamentalmente a los sistemas con sistemas de cache d e copia posterior (copy-back). Aunque pueden evitar muchos ciclos comparados con la intervención indirecta, la memoria principal permanece inconsistente con el caché, y debe de ser actualizada cuando la línea de caché es vaciada.
3.
Reflexión a memoria (memory reflection) con intervención directa. La memoria captura los datos que han sido depositados en el bus, mientras son enviados a la CPU solicitante. Si la línea de caché no ha sido modificada antes de que tenga lugar la última transacción de intervención de datos, no es necesario escribir a la memoria, con lo que se conserva el ancho de banda. Esta actualización del cache solicitante y la memoria puede tener lugar en un mismo y único ciclo de reloj.
PRINCIPALES FABRICANTES Y SUS PROCESADORES
FABRICANTE SUN SILICON GRAPHICS MOTOROLA HEWLETT PACKARD DEC INTEL
PROCESADOR TENDENCIA SPARC
RISC
MIPS
RISC
POWER
RISC
PA
RISC
ALPHA
RISC
PENTIUM
CISC ~ RISC
RISC frente a CISC:
Existen varios mitos que contraponen las ventajas de la tecnología RISC frente a la CISC, que es importante descalificar:
a. Los procesadores RISC ofrecen peor soporte para los lenguajes de alto nivel o
b.
c.
HLL (High Level Language) que lo CISC. Esta creencia se argumenta en que un conjunto de instrucciones de "alto nivel" (CISC) es mejor soporte para lenguajes de alto nivel. Sin embargo, la característica fundamental de los lenguajes de alto nivel, implica que el programador sólo interacciona con el ordenador a través del propio lenguaje de alto nivel (programación, depuración, mensajes del sistema, etc.), por lo que todos los problemas a "bajo nivel", deben de ser transparentes y desconocidos para el. Por ello, son de nulas consecuencias para el programador y los lenguajes de alto nivel, como se implementan las funciones, en función del tipo de CPU. Es más complicado escribir compiladores RISC que CISC. Dado que los procesadores CISC tienen un mayor número de instrucciones y modos de direccionamiento, existen por tanto más formas de hacer la misma tarea, lo que puede confundir tanto al compilador como al que lo escribe. Por ello, subjetivamente es posible escoger una forma de hacerlo poco adecuada, por el tipo de instrucciones o por el tiempo de ejecución que requieren. En cambio, en un procesador RISC, hay menos opciones, por lo que el compilador es más simple, aunque se genere, habitualmente, un 20-30% más código; a cambio, se consigue un incremento de la velocidad de hasta un 500%. Un programa es más rápido cuanto más pequeño. La velocidad a la que un programa puede ser ejecutado no depende en absoluto de su tamaño, sino del tiempo de ejecución de cada una de sus instrucciones. Dado que las instrucciones RISC son más rápidas, y admiten mejor los pipelines, puede haber mayor paralelismo y simultaneidad en la ejecución de pequeñas secciones de código. Dichas secciones de código pueden ser ejecutadas en una fracción del tiempo que requiere una sola instrucción CISC.
Resumiendo: No es un hecho meramente académico, sino puramente comercial y económico. La "era RISC" ha alcanzado a todos los fabricantes de semiconductores: AMD, Intel, MIPS, Motorola, ROSS, ...; y todos ellos son productos usados por fabricantes de ordenadores y estaciones de trabajo: Apple, DEC, HP, IBM, SUN, etc. y sus correspondientes clónicos. El tiempo de diseño de estos productos se reduce sensiblemente, lo que disminuye su coste final, y por tanto, se incrementan sus expectativas, al poder ll egar al mercado en un tiempo más adecuado, y con menos posibilidades de errores. Además, son globalmente más eficaces, de menores dimensiones y más bajo consumo, ofreciendo siempre claras ventajas técnicas frente a los más avanzados CISC.
Actualmente, las estaciones de trabajo RISC multiprocesadoras de mayor éxito, se basan en diferentes versiones de la tecnología SPARC: superSPARC e HyperSPARC. Esta claro que el futuro pertenece a los RISC y a los sistemas multiprocesador, a no ser que la física y la electrónica logren superar las barreras tecnológicas para incrementar muy por encima de las cotas actuales, las velocidades y prestaciones de una única CPU. También cabe esperar, y por que no, la pronta aparición de otras tecnologías que compitan con CISC y RISC.
http://www.angelfire.com/ca6/germancho/cisc_rics.htm
http://books.google.co.ve/books?id=2wWZyKu60cAC&pg=PA301&lpg=PA301&dq=caracte r%C3%ADsticas+de+la+arquitectura+cisc&source=bl&ots=DQMMlZ6nvw&sig=8_y9yeEE_ e3YtglCAPBuBw3knc&hl=es&sa=X&ei=MT1RU6GFG8bz0gGf2IAQ&ved=0CEwQ6AEwBQ#v=onepage&q= caracter%C3%ADsticas%20de%20la%20arquitectura%20cisc&f=false
revisar esta pag y trasncirbir la infoooo
llamar a carla y que haga la otra arquitectura ç
-