15
20-11-2014 CISC -RISC Historia y Futuro Antonio Castillo Mengíbar UNIVERSIDAD DE CÁDIZ

RISC - CISC

Embed Size (px)

DESCRIPTION

Trabajo que refleja desde un punto de vista Histórico las dos grandes arquitecturas de hoy en día:ARM-(RISC,MIPS...)X86 - (INTEL...)Al final hay una comparativa de dos programas en ambas arquitecturas,espero le sirva para comprender el débate ¿cuál es mejor?

Citation preview

  • 20-11-2014

    CISC -RISC Historia y Futuro

    Antonio Castillo Mengbar UNIVERSIDAD DE CDIZ

  • Reduced instruction set computing RISC vs Complex instruction set computing CISC

    [Historia] --------Enfocarse en un solo chip o en la complejidad de varios trabajando en un problema?

    PowerPC (IBM, Motorola, y Apple) x86-64 (Intel,AMD)

    IBM PowerPC 601 4Generacin Intel i-7

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    CISC (ligada a la historia de Intel):

    Pasado

    Cronologa

    Los CISC pertenecen a la primera corriente de construccin de procesadores, antes del desarrollo de los RISC.

    Nos centraremos en la evolucin de x86(Intel)

    Definicin: x86 es un conjunto de instrucciones utilizada en micro arquitectura de CPU. Tcnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits). Est basada en un modelo de arquitectura CISC.

    [Microprocesador: 4 bits, transistores: 2.300, encapsulado: 16 pines, reloj: 740 KHz, Bus: 4 bits multiplexado, 12 bits de direcciones, Instrucciones de 8 bits de ancho - datos de 4 bits de ancho, 46 instrucciones (41 son de 8 bits de ancho y 5 de 16 bits de ancho), 16 registros de 4 bits cada uno,Stack para subrutinas: 3 niveles de profundidad]

    En 1971 Intel fue la primera compaa en lograr la integracin de suficientes transistores como para vender un microprocesador (en un simple chip) programable completo con un conjunto de instrucciones de 4 bits, que se volvera muy comn en calculadoras de bolsillo: El Intel 4004.

    Curiosidad: Intel inici sus operaciones siendo un fabricante de

    memoria para computadoras.

    Curiosidad: La arquitectura x86 mantiene la compatibilidad

    con la lnea de procesadores de 16 bits de Intel, que a su

    vez tambin eran compatibles con una familia de

    procesadores de 8 bits.

    Curiosidad: Existen viejos sistemas de control de semforos en uso construidos

    con el i4004.El chip es artculo de coleccionista y en eBay alcanzo hasta US$400

  • En 1972 lo sucedieron el 8008 y en 1974 el 8080 , cada vez logrando mayor capacidad.

    ==================================== (8 bits y Corra a 2 MHz)

    [Direcciones de 8 bits, 16 KB de memoria,encapsulado:18 pines, bus 8 bits(compartido), [Encapsulado: 40 pines ,Microprocesador:8bits,reloj: 2 MHz , bus de reloj:0.8 MHz, 8 puertos de entrada y 24 de salida] direccin de 16 bits, bus de datos de 8 bits, memoria:64KB , registros: siete de 8 bits, puntero de pila en memoria de 16 bits, KB contador de programa de 16 bits, 256 puertos de entrada/salida]

    Ambos conjuntos de instrucciones x86 de i8008 hecho por (Datapoint) e i8080 est fuertemente basado en las especificaciones de diseo la empresa Computer Terminal Corporation

    En 1978 y 1979 lo sucedi el 8086-8088 (chip de 16 bits) de hasta 10 Mhz capaz de ser el corazn de computadoras de propsito mltiple. Pero fue IBM quien lanz la lnea ms exitosa de la historia: el IBM PC (1981) con un procesador 8088 desbancando del sector a muchos computadores personales.

    [Zcalo: 40 pines, bus de datos interno de 16 bits, bus externo de 8 bits para la memoria y los perifricos, acceder hasta1 megabyte de RAM, usaba MS-DOS como S.O., transistores: 29.000]

    En 1980 lo sucedi el 8087

    Primer coprocesador (suplemento de las funciones del procesador principal) numrico de la arquitectura x86, inicio de la serie x87.

    [Zcalo: 40 pines, no cache, Reloj: 4 MHz a 10 MHz, Transistores: 45.000]

    Aplicaciones multitarea

    En 1982 lo sucedi el 80286.Estamos ante un gran avance ya que sent las bases para la aparicin de los verdaderos sistemas multitarea. Producido hasta 1993. Por diseo,

    una vez que el procesador entraba en el modo protegido, no poda volver al modo real compatible con el procesador sin un reinicio provocado por hardware. Esto provoc

    muchos quebraderos de cabeza.

    [Microprocesador: 24/16 bits, reloj: 6 MHz - 25 MHz, transistores: 134.000 transistores, Zcalo: 68 pines, direccionar hasta 16 MiB de memoria RAM]

    En 1985 lo sucedi 80386 se produjo el boom de la multitarea, un avance tan fuerte que provoca un hito en la produccin de

    procesadores. Es comn referirse como i386 a toda la lnea de procesadores que le siguieron. Nace el primer procesador de Intel de 32 bits, utilizarlo para aplicaciones de multitarea sera ya mucho ms fcil buenas noticias para los programadores-de lo que lo fue con su predecesor el

    80286.Producido hasta 2007 para sistemas embebidos (empotrado) y tecnologa aeroespacial .Es la tercera generacin x86

    [Reloj: 16 a 40 MHz, Zcalo: 68 pines, Microprocesador: 32 bits, bus externo de 16 bits, bus de direcciones de 24 bits]

    Curiosidad: Ms lento que Intel 4004, en cuanto a la cantidad de millones de

    instrucciones por segundo, pero al procesar 8 bits de datos al tiempo y acceder a

    mayor cantidad de memoria hace que este chip sea unas tres o cuatro veces ms

    rpido. Par terminales (exhibicin y entrada de datos) no para PCs

    Curiosidad: a partir de ese momento por el xito obtenido,

    todos los CPUs de Intel mantuvieron una estricta poltica de

    compatibilidad hacia atrs. Por eso, hoy en da se puede

    ejecutar programas 32 bits y 64 bits en una misma PC.

    Curiosidad: implement el modo protegido de ejecucin, sentando las

    bases para la aparicin de los verdaderos sistemas multitarea. S.O como

    OS/2(IBM), o Xenix (Microsoft) aprovecharon su modo protegido para

    multitarea real.

  • En 1989 lo sucedi el 80486 (aparece cach L1)

    Hasta su aparicin, todas las computadoras PC tenan la opcin de instalar en un zcalo de la placa base

    un -bastante caro- coprocesador numrico - para las XT, el 8087. Para las AT, el 80287. Para las 386, el

    80387, es decir estos incluyen el conjunto de instrucciones x87(modelos DX, SX los tenan desactivado).

    A partir del 80486, el coprocesador numrico, as como la memoria cach L1 o de nivel 1 fueron

    integrados dentro del chip de la CPU.

    [Reloj: 16 MHz a 120 MHz, Zcalo:196-pin,32 bits, 16KB de cach L1]

    En 1993-1999 apareci la gama Pentium(5Generacin de x86)

    [Reloj: 60-300 MHz, Transistores; 3.100.000 transistores (primer

    Pentium), cache interno de 8 KiB para datos y 8 KiB para

    instrucciones]

    La aparicin de este procesador se llev a cabo con un movimiento econmico impresionante,

    acabando con la competencia, que hasta entonces produca procesadores equivalentes.

    Pentium posea una arquitectura capaz de ejecutar dos operaciones a la vez gracias a sus dos

    pipeline de datos de 32 bits cada uno. Adems, posea un bus de datos de 64 bits, permitiendo un

    acceso a memoria 64 bits (aunque el procesador segua manteniendo compatibilidad de 32 bits para

    las operaciones internas y los registros tambin eran de 32 bits).

    Procesadores Pentium:

    Intel Pentium Pro - 1995

    Intel Pentium MMX - 1997 (Conjunto de instrucciones SIMD) Charla Rafa ---------------------------

    Intel Pentium II 1997 |

    Intel Pentium II Xeon - 1998 (Servidores) |

    Intel Pentium III 1999 |

    Intel Pentium 4 - 2000 | Intel Pentium M - 2003 |

    Intel Pentium D 2005 |

    Intel Pentium Dual Core 2006 |

    En 1995-1998 apareci la gama Pentium(6Generacin de x86)

    La meta era remplazar al Intel Pentium en toda la gama de aplicaciones, pero luego se centr como chip en el mundo de los servidores y equipos de sobremesa de gama

    alta. Inclua la cach de segundo nivel en el mismo encapsulado que el procesador. Su elevado precio supuso un freno a su expansin.

    [Reloj: 150MHz 200MHz, un ncleo,

    posibilidad de overclocking]

    El Pentium Pro en aquel entonces

    usaba un algoritmo de prediccin de saltos ms sofisticado que el Pentium. Introduca una instruccin de movimiento condicional (llamado cmov) que en alguno de los

    casos tambin poda ser usada para evitar la necesidad de una instruccin de salto.

    El Pentium Pro al principio tena una cach desde 256 KiB hasta 512 KiB en el encapsulado, hasta la versin de 1 MiB introducida posteriormente. Todas las versiones eran

    caras, particularmente aquellas que tenan ms de 256 KiB de cach.

    El rendimiento del cdigo de 32 bits era excelente, pero el Pentium Pro a menudo iba ms despacio que un Pentium cuando ejecutaba cdigo o sistemas operativos de 16

    bits. Windows 95 result ser extensamente de 16 bits, y el Pentium Pro no estaba bien posicionado para competir en el mercados de los sobremesas.

    Curiosidad: Se llama Pentium y no un nmero porque ante el fallo de que un nmero no puede ser

    tomado como marca registrada, a partir de entonces los procesadores llevan un nombre propio.

    Curiosidad: AMD Tuvo que crear sus procesadores desde cero Este es el K5 y el K6 (A estos

    procesadores se los bautiz as debido a que "K" significa Kriptonita.

    Desde el Pentium II hasta el Pentium 4 ha sido la integracin de ms componentes, la adicin de instrucciones

    especficas de multimedia y a elevar la velocidad de reloj MHz- tanto como sea posible.

    La carrera de los MHz se vio frenada debido al creciente consumo de energa y generacin de calor producida por

    los microprocesadores a altas frecuencias de reloj, que en los ltimos Pentium 4 super fcilmente los 100 W.

  • Presentado como un chip de servidores de alta gama y de estaciones de trabajo que corran el Windows NT de 32 bits y sistemas tipo UNIX, no estaba destinado para

    permanecer dentro de ese mercado que volver al mercado de los ordenadores personales. Intel rellen el hueco con una mejora al diseo del Pentium clsico

    llamada Pentium MMX.- Charla de Rafa-

    En los Pentium II, Pentium III y Pentium 4

    aparecieron sus correspondientes versiones de bajo

    costo y prestaciones (por tener menos memoria

    cach de nivel 2) con el nombre comercial de

    Celern.

    RISC:

    Historia----------------------------------------------------------------------------------------------------------------------------------------------------------

    Primer objetivo: Incrementar el rendimiento de la CPU.--->Velocidad de respuesta

    Dcada de los ochenta: Mejorar los procesos

    Se pensaba que se estaba alcanzando los lmites tericos, y las mejoras vendran de procesos mejorados (pequeas caractersticas en el chip).Un tamao ms pequeo podra resultar en un mejor rendimiento al operar a ms altas velocidades de reloj.

    Se centraron en el diseo de chips para computacin paralela. Esto requera una gran cantidad de chips dividiendo el problema entre estos.

    Idea: Incluir en el chip un canal por el cual se pudiera dividir las instrucciones en etapas y en cada paso ir trabajando muchas instrucciones diferentes al mismo tiempo.

    La clave: Pipeline Segmentacin en serie.

    Idea: utilizar varios elementos de procesamiento dentro del procesador y ejecutarlos en paralelo, es decir, trabajar simultneamente varias instrucciones a la vez (Dependiendo del nmeros de chips).Difcil de llevar a cabo porque algunas instrucciones dependan del resultado de otras instrucciones. La clave: Paralelismo.

    Siendo el espacio en el chip una cantidad finita y cuanto ms pequeo mayor velocidad de ciclo de reloj. Para poder incluir todas esas caractersticas algo ms tendra que ser eliminado para hacer hueco.

    Idea: menos transistores dedicados a la lgica principal. Ofrecan una mejora de rendimiento muy pequea, pero aadieron nuevas caractersticas --RISC La clave: CPU ms simple que la de otros diseos (entre ellos CISC)

    La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseo ms cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicacin de las ms recientes tecnologas 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 generacin en generacin son mucho mayores que en los CISC.

    A finales de los 80 ya haban dejado atrs a CISC en mejora de proceso y CISC con el tiempo aade esta tecnologa en sus diseos. Todo esto pudo ser aadido a los diseos CISC y aun as caber en un solo chip, pero esto tom prcticamente una dcada entre finales de los ochenta y principios de los noventa.

    Curiosidad: Parece ser que el motivo principal de dicha diversificacin, aparte de aumentar a un costo mnimo el

    abanico de modelos, prestaciones y precios, es de marketing: debido a las constantes bajadas de precio que

    experimentan los procesadores y el hardware en general, crear una "barrera de contencin" que justifique los

    diferentes niveles de precios, poniendo un precio ms alto a los procesadores ms potentes.

    Curiosidad: la utilizacin del trmino CISC comenz tras la

    aparicin de los procesadores RISC como nomenclatura

    despectiva por parte de los defensores/creadores de stos

    ltimos.

  • x86-64

    La especificacin fue creada por AMD, y ha sido implementada por AMD, Intel, VIA y otros. Antes del lanzamiento, se usaron los nombres "x86-64" y "x86_64" para referirse

    al juego de instrucciones. Tras la publicacin, AMD lo llam "AMD64".3 Intel inicialmente us los nombres IA-32e y EM64T antes de utilizar "Intel 64" para su

    implementacin. Algunos, incluido Apple, usan "x86-64" y "x86_64", mientras que otros, notablemente Sun Microsystems (ahora Oracle Corporation) y Microsoft, usan

    "x64" mientras que la familia de sistemas operativos BSD y muchas distribuciones Linux usan "AMD64".

    El procesador AMD Opteron fue el primero en implementar esta arquitectura; fue el primero en realizar un agregado importante a la arquitectura x86 diseada por otra

    compaa como Intel. Intel se vio forzada a seguir su ejemplo.

    Curiosidad: Se conoce x86 como al conjunto de instrucciones que implementa un procesador que puede trabajar con instrucciones de 32 bits de largo, por eso nos

    podemos referir indistintamente a la familia de procesadores que implementan este conjunto de instrucciones o solo al conjunto de instrucciones (todo depende del

    contexto).

    Por qu nos podemos referir indistintamente al conjunto de instrucciones o a los procesadores de esta familia como x86?

    Como hemos visto antes, todos los procesadores antes del i386 eran distintos en todos los campos, desde la velocidad de reloj hasta los bits que utilizaban para el ancho

    del bus de direcciones y el de datos, por lo que tambin utilizaban instrucciones diferentes de 8, de 16 bits de largo etc. el procesador de Intel 80386 conocido como i386

    vino para ser un estndar, con instrucciones de 32 bits de largo. Fue tal el hito que marco en la historia que desde entonces se conocen a todos los procesadores

    posteriores con x86 (la terminacin 86 viene del procesador y x quiere decir que es una consecuencia de este procesador) para abreviar el nombre de las instrucciones en

    los procesadores. De hecho desde este procesador, Intel dio a conocer todos su procesadores con esta terminacin y A partir del microprocesador i486, se utilizaron

    nombres no numricos, haciendo referencia a la marca, logotipo o nombre clave con los que fueron lanzados al mercado, y se les comercializ a menudo seguido de su

    frecuencia, en megahercios.

    Entonces, Por qu conocemos al conjunto de instrucciones de 64 bits como x64?

    Pues obviamente viene del largo de la instruccin de 64 bits como extensin del conjunto de instrucciones de 32 bits, no viene de un procesador como en el caso de x86. El

    nombre para la extensin de 64 Bits para el conjunto de x86 se conoce como: x86-64.

    Ms tarde fue nombrado AMD64 (debido a que fue el primero en integrar en sus instrucciones la extensin x64 originalmente) Intel licencia la instruccin con el nombre de

    EM64T. Ambas instrucciones y los procesadores que las ocupan son todava considerados x86.

    Y es as que llamamos a los procesadores de 32bits como x86 y no x32.

  • Cules son las Ventajas-Desventajas CISC / RISC?

    CISC Gran cantidad de instrucciones

    Ventajas Desventajas ISA(arquitectura del conjunto de instrucciones)

    amplio y verstil

    Gran cantidad de modos de direccionamiento

    Soporta gran cantidad de tipos de datos

    Implementacin de instrucciones de alto nivel lo ms directamente posible

    Reduccin del tiempo de ejecucin de instrucciones complejas por medio de

    implementacin directa en hardware

    Compatibilidad con miembros anteriores de la familia(Historia Intel)1

    Permite operaciones complejas entre operandos situados en la memoria o en

    los registros internos(cara al programador)

    Memoria - Memoria

    Micro arquitectura ms compleja

    Instrucciones de longitud variable1

    Instrucciones complejas

    Poco uso de las instrucciones y direccionamientos complejos

    Poco aprovechamiento de parte de los compiladores: no es fcil encontrar la mejor

    instruccin para ejecutar una tarea

    Baja densidad de cdigo

    Accesos a memoria disminuyen velocidad de

    ejecucin

    RISC Implementar rapidez: segmentacin - paralelismo - reducir los accesos a memoria.

    Ventajas Desventajas Micro arquitectura ms simple

    Instrucciones ms cortas, menos tiempo de acceso a memoria

    Compiladores ms sencillos y eficientes

    Hardware ms optimo

    Mayor nmero de lneas de cdigo para una funcin

    Compatibilidad con arquitecturas antiguas es

    ms difcil de mantener

    Permite operaciones sencillas entre operandos situados nicamente en

    los registros internos(cara al programador)

    Registro - Registro

  • Cules son las Diferencias en caractersticas?

    CISC RISC nfasis en Hardware nfasis en software

    Memoria - Memoria Registro - Registro

    Muchas instrucciones Pocas instrucciones

    Instrucciones complejas toman mltiples ciclos Instrucciones Simples toman un solo ciclo Load/Store incorporadas en instrucciones. Solo Load/Store hace referencia a memoria.

    No pipeline o poco pipeline real Alto pipeline

    Instrucciones Interpretadas por un microprograma. Instrucciones interpretadas por el hardware

    Complejidad en el microprograma. Complejidad en el compilador

    Pocos registros de propsito general(guardan datos y

    direcciones

    Muchos registros de propsito general

    Formato de instrucciones variable. Formato de instrucciones fija

    Instrucciones largas,

    Cdigo con menos lneas

    Instrucciones cortas,

    Cdigo con ms lneas

    Se enfatiza la versatilidad del repertorio de

    instrucciones

    Se aaden instrucciones nuevas slo si son de uso

    frecuente y no reducen el rendimiento de las ms

    importantes

    Cules son las Diferencias en Hardware?

    CISC:

    Un chip RISC tendr menos transistores dedicados a la lgica principal. Esto permite a los diseadores una flexibilidad considerable; as pueden:

    Incrementar el tamao del conjunto de registros.

    Implementar medidas para aumentar el paralelismo interno.

    Aadir cachs enormes.

    No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energa o de tamao limitado.

    .

    Cabe mencionar que el tamao del chip repercute en el consumo de este. En este caso, al ser el tamao menor su consumo es menor.

    RISC:

    Un chip CISC tendr ms transistores para lgica principal, ya que implementa instrucciones para bastantes funcionalidades .As que en el chip pueden implementar menos cosas:

    Registros.

    Cache.

    .

  • Composicin interna e Implementacin de instrucciones

    Composicin interna actual

    o La mquina CISC implementa a nivel de hardware un unidad de control micro programada que hace de intermediario antes de que la unidad lgica ejecute la instruccin. Esta unidad microprograma divide la instruccin CISC en micro instrucciones ms sencillas para que finalmente la unidad lgica RISC ejecute las micro instrucciones.

    o La mquina RISC ejecuta instrucciones ms rpido porque no tiene que pasar por una capa de conversin de micro cdigo. El compilador RISC genera ms instrucciones que el compilador CISC para el mismo proceso.

    Unidad de Control Micro programada

    Implementacin

    Supongamos que la memoria principal se divide en:

    Desde fila 1 hasta 5 y columna 1 hasta 4. La unidad de ejecucin es responsable de llevar a cabo todos los clculos. Sin embargo, la unidad de ejecucin slo puede operar en los datos de que se ha cargado en uno de los cuatro registros (A, B, C, o D). Digamos que queremos encontrar el producto de dos nmeros - uno almacenado en la posicin 1: 3 y otro almacenado en la posicin 4: 2 y almacenar de nuevo el

    resultado en 1: 3.

    Enfoque CISC:

    En el diseo CISC se tratara de terminar la tarea en las mnimas instrucciones posibles mediante la implementacin de hardware que podra entender y ejecutar la serie de operaciones. Por lo tanto el procesador vendra con una instruccin especfica 'MUL' en su conjunto de instrucciones:

    1. 'MUL' cargara los dos valores de la memoria en registros separados, multiplica los operandos en la unidad de ejecucin 2. Almacena el producto en la ubicacin adecuada.

    Por lo tanto, toda la tarea de multiplicar dos nmeros puede completarse con una instruccin:

    MUL 1: 3, 4: 2

    Despus de ejecutar 'MUL' el procesador borra automticamente los registros. Si uno de los operandos tiene que ser utilizado para otro calculo, el procesador

    debe solicitarlo otra vez para su carga desde el banco de memoria a un registro. MUL se conoce como una "instruccin compleja", ya que opera directamente

    en los bancos de memoria de la computadora y no requiere del programador para llamar explcitamente a las funciones de carga o almacenamiento porque ya

    estn implementadas en la misma instruccin.

  • Enfoque RISC:

    En el diseo RISC se utilizan instrucciones sencillas que pueden ser ejecutadas dentro de un ciclo de reloj. Por lo tanto, la instruccin 'MUL' se dividir en tres instrucciones.

    1. "LOAD", que mueve los datos del banco de memoria a un registro,

    2. "PROD", que encuentra el producto de dos operandos situados dentro de los registros, y

    3. "STORE", que mueve los datos de un registro de los bancos de memoria.

    Con el fin de realizar la tarea, un programador para codificar necesitara cuatro o ms lneas de ensamblador:

    CARGA de registro A, 1: 3

    CARGA de registro B, 4: 2

    PROD A, B

    LOAD 1: 3, A

    En RISC, el operando se mantendr en el registro hasta que se cargue otro valor.

    Casos reales:

    Sume el contenido de la localidad de memoria apuntada por A3 al componente de un arreglo que inicia en la localidad de memoria 100.

    El nmero de ndice del componente es A2. El contenido de A3 se incrementa automticamente en uno

    CISC (M68000) RISC (MIPS)

    Add (A3)+, 100(A2)

    Lw $t0, 0($s3) Lw $t1, 100($s2) Add $t2, $t0, $t1 Sw $t2, 0($s3) Addi $s3, $s3,1 $t0

  • EJEMPLOS:

    Ejemplos CISC:

    Motorola 68000, Zilog Z80 y toda la familia Intel x86, AMD x86-64 usada en la mayora de las computadoras personales actuales.

    Ejemplos RISC:

    Apple A4 (iPad) : Procesador creado por P.A Semi (originalmente "Palo Alto Semiconductor") tras su adquisicin por parte de Apple. El Apple A4 es un procesador basado en la arquitectura ARM (Advanced RISC Machines) creado por PA Semi con un alto rendimiento y un bajo consumo energtico de cara a aumentar la duracin de la batera. Adems, el A4 incluye en el mismo micro un procesador de grficos integrado que permite reproducir con soltura vdeos en h.264 de hasta 720p y 30 fps; as como un gran rendimiento con los juegos y resto de aplicaciones actuales. Lo cual, a simple vista y tras ver los vdeos disponibles en la web est realmente bien. Memoria principal: Posee una memoria flash de tipo NAND que vara entre 16, 32 y 64 GB.

    ------------------------------

    Los diseos del MIPS son utilizados en la lnea de productos informticos de SGI(Silicon Graphics); en muchos sistemas embebidos; en dispositivos para Windows CE;

    routers Cisco; y videoconsolas como la Nintendo 64 o las Sony PlayStation, PlayStation 2 y PlayStation Portable.

    Presente

    Las mquinas RISC protagonizan la tendencia actual de construccin de microprocesadores. Ver Ejemplos.

    En la actualidad, la mayora 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 por lo que las arquitecturas convergen.

    RISC es ampliamente utilizado en Smartphones y tablets Mientras que CISC es utilizado en sobremesa y porttiles ,aunque hasta hace poco PowerPC era utilizado por Apple.

    Futuro

    Procesadores cunticos a nivel de tomos---- Charla de Rafa Leyva ----

    http://es.wikipedia.org/wiki/Computaci%C3%B3n_cu%C3%A1ntica

  • Seguridad en CISC - RISC

    Articulo : CIO Today Network Security Apple Mythology and Desktop Security by Paul Murphy -2005-

    * Hoy en da, la razn mayoritaria para abandonar Windows y utilizar Linux ya no es el coste, sino los fallos de seguridad y los virus que plagan Windows

    * Casi todo el mundo se plantea el problema de la seguridad desde el software sistema operativo y no desde el hardware

    Resultados obtenidos de una encuesta realizada por The Register, el artculo analiza las diferencias entre las arquitecturas de microprocesadores x86 y PowerPC, y su

    influencia en los problemas de seguridad.

    En efecto, la mayora de las vulnerabilidades explotan no slo un problema a la hora de gestionar un error en el sistema operativo, sino la forma en que un procesador

    determinado trata ese error. En el caso de los procesadores x86, la copia de un determinado conjunto de datos, mayor del espacio previsto, puede llegar a introducir datos

    en la pila un espacio diferente de memoria, previsto para gestionar la lista de tareas pendientes, de modo que la instruccin de retorno desde el proceso que ha fallado

    no contiene el cdigo original, sino el cdigo introducido.

    Dicho de otra forma: para explotar, por ejemplo, una vulnerabilidad presente en Linux x86, hace falta un determinado cdigo que la produzca, y adems inyecte el cdigo

    problemtico en la pila; explotar esa misma vulnerabilidad en Linux PowerPC causara el cierre de la aplicacin, pero es prcticamente imposible inyectar cdigo que

    permita realizar otras funciones, por la forma en que el procesador gestiona la pila. Esto es algo comn a la mayora de procesadores RISC. Y, desde luego, hace imposible

    utilizar una simple traduccin instruccin por instruccin del cdigo que provocaba el fallo en Linux x86.

    No quiero terminar sin citar uno de los prrafos finales:

    Aunque los productos de Apple son generalmente un poco ms rpidos y con mayores capacidades multimedia que sus contrapartidas PC, las diferencias ms importantes

    no estn en cosas como la memoria o la velocidad del procesador, sino en el diseo, el software, y el coste de licencia.

    Un punto ms sobre la seguridad: Kelly Martin, en este artculo en The Register, se pregunta si no es posible que la falta de virus en Mac OS X se deba, ms all de la

    dificultad mayor o menor en crear un virus, o un troyano esto ltimo no sera nada difcil, aunque existan ms alarmas en Mac OS X que en Windows o Linux, a que Mac

    OS X gusta lo suficiente como para que la gente no quiera romperlo. Lectura simptica, aunque en ingls.

  • Anexo

    Computacin paralela

    La computacin Paralela, es muy importante actualmente, al permitir mejorar la velocidad en la solucin de grandes problemas, de modo que se mejora el

    rendimiento de computo.

    La computacin paralela es una forma de cmputo en la que muchas instrucciones se ejecutan simultneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos ms pequeos, que luego son resueltos simultneamente (en paralelo). Hay varias formas diferentes de computacin paralela: paralelismo a nivel de bit, paralelismo a nivel de instruccin, paralelismo de datos y paralelismo de tareas. El paralelismo se ha empleado durante muchos aos, sobre todo en la computacin de altas prestaciones, pero el inters en ella ha crecido ltimamente debido a las limitaciones fsicas que impiden el aumento de la frecuencia. Como el consumo de energa y por consiguiente la generacin de calor de las computadoras constituye una preocupacin en los ltimos aos, la computacin en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multincleo.

    Las computadoras paralelas pueden clasificarse segn el nivel de paralelismo que admite su hardware: equipos con procesadores multincleo y multi-procesador que tienen mltiples elementos de procesamiento dentro de una sola mquina y los clsteres, MPPS y grids que utilizan varios equipos para trabajar en la misma tarea.

    Segmentacin de cauce-Pipeline

    La segmentacin de cauce, tambin denominada pipeline, es una tcnica empleada en el diseo de procesadores, basada en la divisin de la ejecucin de las instrucciones en etapas, consiguiendo as que una instruccin empiece a ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya varias instrucciones procesndose simultneamente.

    Cada una de las etapas debe completar sus acciones en un ciclo de reloj, pasando sus resultados a la etapa siguiente y recibindolos de la anterior. Para eso es necesario almacenar los datos en registros intermedios. Cualquier valor que pueda ser necesario en una etapa posterior debe irse propagando a travs de esos registros intermedios hasta que ya no sea necesario.

    Para conseguir la segmentacin es necesario que una instruccin utilice solamente una etapa en cada ciclo de ejecucin.

    Ya que todas las etapas deben de tardar lo mismo en su ejecucin, el tiempo de ciclo ser el de la etapa ms lenta, ms el del retardo provocado por la

    utilizacin de los registros intermedios. Comparando este esquema con el multiciclo, el tiempo de ciclo ser ms lento, pero el CPI (Ciclos Por Instruccin) ser

    menor, lo que provoca un aumento del rendimiento. Ya que si no tenemos en cuenta los riesgos estructurales (que pueden provocar paradas en el pipeline),

    tendramos que en cada ciclo de reloj, termina de ejecutarse una instruccin (CPI=1).

    http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_de_cauce

    Segmentacin (electrnica)

    La segmentacin (en ingls pipelining, literalmente tubera o caera) es un mtodo por el cual se consigue aumentar el rendimiento de algunos sistemas electrnicos digitales. Es aplicado, sobre todo, en microprocesadores.

    los clculos deben ser registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crtica (tramo con ms carga o retardo computacional entre dos registros de reloj) se reduzca.

    La ruta crtica es en realidad la frecuencia mxima de trabajo alcanzada por el conjunto. A mayor ruta crtica (tiempo o retraso entre registros) menor es la frecuencia mxima de trabajo y a menor ruta crtica mayor frecuencia de trabajo. La una es la inversa de la otra. Repartir o segmentar equitativamente el clculo hace que esa frecuencia sea la ptima a costa de ms rea para el almacenamiento o registro de los datos intervinientes y de un retraso o latencia (en ciclos de reloj/tiempo) en la salida del resultado equivalente al nmero de segmentaciones o registros realizados.

    La ventaja primordial de este sistema es que, tal y como se muestra en la imagen, una vez el pipe est lleno, es decir, despus de una latencia de cuatro en la imagen, los resultados de cada comando vienen uno tras otro cada flanco de reloj.

    IF (Instruction Fetch): bsqueda

    ID (Instruction Decode): decodificacin

    EX (Execution): ejecucin de unidad aritmtica lgica

    MEM (Memory): memoria

    WB (Writeback): escritura

    http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(electr%C3%B3nica)

  • Microarquitectura La microarquitectura (a veces abreviada como arch o uarch), tambin llamada como organizacin de la computadora, es la manera que una arquitectura del conjunto de instrucciones (ISA) es implementada por el procesador. Un ISA dado puede ser implementado con diferentes microarquitecturas. Las implementaciones pudieran variar debido a diferentes objetivos de un diseo dado o debido a los cambios en la tecnologa. La arquitectura de computadora es la combinacin del diseo determinado de la microarquitectura y del conjunto de instrucciones.

    http://es.wikipedia.org/wiki/Microarquitectura

    Coprocesador Ampliar: http://es.wikipedia.org/wiki/Coprocesador Un coprocesador es un microprocesador de un ordenador utilizado como suplemento de las funciones del procesador principal (la CPU). Las operaciones ejecutadas por uno de estos coprocesadores pueden ser operaciones de aritmtica en coma flotante, procesamiento grfico,procesamiento de seales, procesado de texto o Criptografa, etc. Y su funcin es evitar que el procesador principal tenga que realizar estas tareas de cmputo intensivo, estos coprocesadores pueden acelerar el rendimiento del sistema por el hecho de esta descarga de trabajo en el procesador principal y porque suelen ser procesadores especializados que realizan las tareas para las que estn diseado ms eficientemente. Adems estos coprocesadores permiten a los compradores de ordenadores personalizar su equipamiento ya que slo tendrn que pagar ese hardware especfico quienes deseen o necesiten tener el rendimiento extra ofrecido por estos dispositivos.

  • Bibliografa.

    http://es.wikipedia.org/wiki/Reduced_instruction_set_computing

    http://es.wikipedia.org/wiki/Complex_instruction_set_computing

    http://es.wikipedia.org/wiki/PowerPC

    http://es.wikipedia.org/wiki/X86

    http://es.wikipedia.org/wiki/Intel_4004

    http://es.wikipedia.org/wiki/Intel_8008

    http://www.classiccmp.org/8008/8008UM.pdf (Manual del i8008)

    http://es.wikipedia.org/wiki/Intel_8080

    http://es.wikipedia.org/wiki/Intel_8087

    http://es.wikipedia.org/wiki/X87

    http://es.wikipedia.org/wiki/Intel_8088

    http://es.wikipedia.org/wiki/Intel_80286

    http://es.wikipedia.org/wiki/Intel_80386

    http://es.wikipedia.org/wiki/Intel_Pentium

    http://es.wikipedia.org/wiki/Pentium_Pro

    http://www.pcmag.com/encyclopedia/term/50548/risc (ingls)

    http://www.engineersgarage.com/articles/risc-and-cisc-architecture?page=5

    http://www.ie.itcr.ac.cr/pvega/Project/Documents_SD/Handout%20N3%20CISC%20y%20RISC.pdf

    http://www.cio-today.com/story.xhtml?story_id=1110000275OO

    http://www.entremaqueros.com/bitacoras/memoria/2005/05/21/seguridad-windows-linux-macosx/

    http://www.winface.com/cio_today/ent_apple.html (ingls)

    http://ipadtecno.blogspot.mx/ (ipad)

    Diferencia Registro Cach Respuesta:Rpidez

    Cmo se carga de la cache a registros?

    Una memoria cach es similar a la RAM, excepto que es extremadamente rpida comparada con la memoria normal y se usa en forma diferente. Cuando un programa est

    en ejecucin y la CPU necesita leer datos o instrucciones de la memoria regular, verifica primero si los datos estn en la cach. Si los datos que necesita no estn ah,

    contina y lee los datos de la memoria regular y los lleva a sus registros, pero tambin carga los datos en la memoria cach al mismo tiempo. La siguiente vez que la CPU

    necesita cargar los mismos datos, los encuentra en la cach y ahorra el tiempo que se necesita para cargar los datos de la memoria regular. Podramos pensar que las

    probabilidades de que la CPU encuentre los datos que necesita en la cach son pequeas, pero de hecho encuentra ah los datos que necesita tan frecuentemente que

    mejora perceptiblemente el desempeo de una PC. Las instrucciones de programa son un buen ejemplo de los datos que la CPU encuentra a menudo en la cach. Con

    frecuencia, los programas hacen que las computadoras realicen la misma operacin repetidamente hasta que se cumpla alguna condicin. En el lenguaje de cmputo, este

    procedimiento repetitivo es llamado ciclo iterativo (Loop).