risc -cisc

19
CISC - RISC Antonio Castillo Mengíbar

Upload: antonio-manuel-castillo

Post on 14-Sep-2015

101 views

Category:

Documents


6 download

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?

TRANSCRIPT

  • CISC - RISCAntonio Castillo Mengbar

  • INDICE

    Historia CISC

    Historia RISC

    Cules son las diferencias en caractersticas?

    Composicin interna e Implementacin de instrucciones

    Casos reales

    Ejemplos

    Presente

    Seguridad en CISC-RISC

    INDICE

  • Comienzo de CISC

    Los CISC pertenecen a la 1 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).

    Historia CISC

    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.

    Encapsulado: 16 pines, Reloj: 740 kHz

    Direcciones de 8 bits Memoria:4 KB

    Bus: 4 bits datos/direcciones Registros: 16 de 4 bits

  • Cronologa Intel

    Evolucin x86

    Historia CISC

  • Intel 8008 Intel 8080

    Encapsulado: 18 pines, Reloj: 0.8 MHz

    Direcciones de 8 bits Memoria:16 KB

    Bus: 8 bits datos/direcciones, Registros: 8 de 8 bits

    Puertos de entrada: 8 Puertos de Salida:24

    Encapsulado: 40 pines Reloj: 2 MHz

    Direcciones de 16 bits Memoria:64KB

    Bus direccin de 16 bits Registros: 7 de 8 bits

    Bus de datos de 8 bits Puertos de entrada/salida: 256

    Historia CISC

  • Intel 80386

    Historia CISC

    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.

    Nace el 1 procesador 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.

    Producido hasta 2007 para sistemas embebidos (empotrado)

    y tecnologa aeroespacial .Es la tercera generacin x86Encapsulado: 68 pines

    Reloj:16 a 40 MHz

    Bus de direcc.: 24 bits A partir de este momento ,en 1989 aparece cach L1 en Intel 80486 y en la dcada del 2000 empezaron a aumentar ncleos.y en 2003 AMD introdujo x64.

  • Comienzo de RISCHistoria RISCPrimer objetivo: Incrementar el rendimiento de la CPU.--->Velocidad de respuesta

    Se pensaba que se estaba alcanzando los lmites tericos, y las mejoras vendran

    de 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.

    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.

  • Comienzo de RISC

    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.

    Historia RISC

    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.

    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.

    John Cocke encabezo este proyecto en IBM

  • Cules son las Diferencias en caractersticas?Diferencias

    CISC RISCMemoria - Memoria Registro - Registro

    Muchas instrucciones Pocas instrucciones

    Instrucciones largas,

    Cdigo con menos lneas

    (bueno para el programador)

    Instrucciones cortas,

    Cdigo con ms lneas

    (malo para el programador)

    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

    Instrucciones complejas toman mltiples

    ciclos

    Instrucciones Simples toman un solo ciclo

    Complejidad en el microprograma. Complejidad en el compilador

    Formato de instrucciones variable.* Formato de instrucciones fija*

    Instrucciones Interpretadas por un

    microprograma.

    Instrucciones interpretadas por el hardware

    No pipeline o poco pipeline real Alto pipeline

  • Composicin interna e Implementacin de instrucciones

    Estructura

  • Composicin interna

    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.

    Composicin

  • ImplementacinImplementacin

    Supongamos que la MP 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.

    Enunciado:

  • Enfoque CISC:Implementacin

    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.

    MUL 1: 3, 4: 2

    Despus de ejecutar 'MUL' el procesador borraautomticamente los registros. Si uno de los operandos tieneque ser utilizado para otro calculo, el procesador debesolicitarlo otra vez para su carga desde el banco de memoria aun registro. MUL se conoce como una "instruccin compleja",ya que opera directamente en los bancos de memoria de lacomputadora y no requiere del programador para llamarexplcitamente a las funciones de carga o almacenamientoporque ya estn implementadas en la misma instruccin.

  • Enfoque RISC:Implementacin

    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

    3. "STORE", que mueve los datos de un

    registro de los bancos de memoria.

    CARGA de registro A, 1: 3CARGA de registro B, 4: 2PROD A, BLOAD 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

  • CISC:Ejemplos

    RISC:

    Motorola 68000, Zilog Z80 y toda la familia Intel

    x86, AMD x86-64 usada en la mayora de las

    computadoras personales actuales.

    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.

  • PresenteLas 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 que a su vez son ejecutadas en ncleos RISC 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 PowerPCera utilizado por Apple

    Presente

  • Artculo sobre seguridad

    Artculo : 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

    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.

  • Bibliografahttp://es.wikipedia.org/wiki/Reduced_instruction_set_computing

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

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

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

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

    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)

    Ver documento completo : Anexos y Bibliografa.