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

Risc Cisc

Embed Size (px)

Citation preview

Page 1: Risc   Cisc

20-11-2014

CISC -RISC Historia y Futuro

Antonio Castillo Mengíbar UNIVERSIDAD DE CÁDIZ

Page 2: Risc   Cisc

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 4ºGeneración Intel i-7

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

CISC (ligada a la historia de Intel):

Pasado

Cronología

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

Nos centraremos en la evolución de x86…(Intel)

Definición: x86 es un conjunto de instrucciones utilizada en micro arquitectura de CPU. Técnicamente, 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 compañía en lograr la integración de suficientes transistores como para vender un microprocesador (en un simple chip) programable completo con un conjunto de instrucciones de 4 bits, que se volvería muy común 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 línea de procesadores de 16 bits de Intel, que a su

vez también eran compatibles con una familia de

procesadores de 8 bits.

Curiosidad: Existen viejos sistemas de control de semáforos en uso construidos

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

Page 3: Risc   Cisc

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

==================================== (8 bits y Corría 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] dirección 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 diseño 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 corazón de computadoras de propósito múltiple. Pero fue IBM quien lanzó la línea más exitosa de la historia: el IBM PC (1981) con un procesador 8088 desbancando del sector a muchos computadores personales.

[Zócalo: 40 pines, bus de datos interno de 16 bits, bus externo de 8 bits para la memoria y los periféricos, 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) numérico de la arquitectura x86, inicio de la serie x87.

[Zócalo: 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 aparición de los verdaderos sistemas multitarea. Producido hasta 1993. Por diseño,

una vez que el procesador entraba en el modo protegido, no podía 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, Zócalo: 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 producción de

procesadores. Es común referirse como i386 a toda la línea de procesadores que le siguieron. Nace el primer procesador de Intel de 32 bits, utilizarlo para aplicaciones de multitarea sería ya mucho más fácil –buenas noticias para los programadores-de lo que lo fue con su predecesor el

80286.Producido hasta 2007 para sistemas embebidos (empotrado) y tecnología aeroespacial .Es la tercera generación x86

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

Curiosidad: Más 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 más

rápido. Par terminales (exhibición 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 política de

compatibilidad hacia atrás. Por eso, hoy en día se puede

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

Curiosidad: implementó el modo protegido de ejecución, sentando las

bases para la aparición de los verdaderos sistemas multitarea. S.O como

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

multitarea real.

Page 4: Risc   Cisc

En 1989 lo sucedió el 80486 (aparece caché L1)

Hasta su aparición, todas las computadoras PC tenían la opción de instalar en un zócalo de la placa base

un -bastante caro- coprocesador numérico - 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 tenían desactivado).

A partir del 80486, el coprocesador numérico, así como la memoria caché L1 o de nivel 1 fueron

integrados dentro del chip de la CPU.

[Reloj: 16 MHz a 120 MHz, Zócalo:196-pin,32 bits, 16KB de caché L1]

En 1993-1999 apareció la gama Pentium(5ºGeneración 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 aparición de este procesador se llevó a cabo con un movimiento económico impresionante,

acabando con la competencia, que hasta entonces producía procesadores equivalentes.

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

pipeline de datos de 32 bits cada uno. Además, poseía un bus de datos de 64 bits, permitiendo un

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

las operaciones internas y los registros también 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(6ºGeneración 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. Incluía la caché de segundo nivel en el mismo encapsulado que el procesador. Su elevado precio supuso un freno a su expansión.

[Reloj: 150MHz – 200MHz, un núcleo,

posibilidad de overclocking]

El Pentium Pro en aquel entonces

usaba un algoritmo de predicción de saltos más sofisticado que el Pentium. Introducía una instrucción de movimiento condicional (llamado cmov) que en alguno de los

casos también podía ser usada para evitar la necesidad de una instrucción de salto.

El Pentium Pro al principio tenía una caché desde 256 KiB hasta 512 KiB en el encapsulado, hasta la versión de 1 MiB introducida posteriormente. Todas las versiones eran

caras, particularmente aquellas que tenían más de 256 KiB de caché.

El rendimiento del código de 32 bits era excelente, pero el Pentium Pro a menudo iba más despacio que un Pentium cuando ejecutaba código 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 número porque ante el fallo de que un número 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 integración de más componentes, la adición de instrucciones

específicas 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 energía y generación de calor producida por

los microprocesadores a altas frecuencias de reloj, que en los últimos Pentium 4 superó fácilmente los 100 W.

Page 5: Risc   Cisc

Presentado como un chip de servidores de alta gama y de estaciones de trabajo que corrían 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 diseño del Pentium clásico

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

Celerón.

RISC:

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

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

Década de los ochenta: Mejorar los procesos

Se pensaba que se estaba alcanzando los límites teóricos, y las mejoras vendrían de procesos mejorados (pequeñas características en el chip).Un tamaño más pequeño podría resultar en un mejor rendimiento al operar a más altas velocidades de reloj.

Se centraron en el diseño de chips para computación paralela. Esto requería 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 –Segmentación en serie.

Idea: utilizar varios elementos de procesamiento dentro del procesador y ejecutarlos en paralelo, es decir, trabajar simultáneamente varias instrucciones a la vez (Dependiendo del números de chips).Difícil de llevar a cabo porque algunas instrucciones dependían del resultado de otras instrucciones. La clave: Paralelismo.

Siendo el espacio en el chip una cantidad finita y cuanto más pequeño mayor velocidad de ciclo de reloj. Para poder incluir todas esas características algo más tendría que ser eliminado para hacer hueco.

Idea: menos transistores dedicados a la lógica principal. Ofrecían una mejora de rendimiento muy pequeña, pero añadieron nuevas características --RISC La clave: CPU más simple que la de otros diseños (entre ellos CISC)

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.

A finales de los 80 ya habían dejado atrás a CISC en mejora de proceso y CISC con el tiempo añade esta tecnología en sus diseños. Todo esto pudo ser añadido a los diseños CISC y aun así caber en un solo chip, pero esto tomó prácticamente una década entre finales de los ochenta y principios de los noventa.

Curiosidad: Parece ser que el motivo principal de dicha diversificación, aparte de aumentar a un costo mínimo 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 contención" que justifique los

diferentes niveles de precios, poniendo un precio más alto a los procesadores más potentes.

Curiosidad: la utilización del término CISC comenzó tras la

aparición de los procesadores RISC como nomenclatura

despectiva por parte de los defensores/creadores de éstos

últimos.

Page 6: Risc   Cisc

x86-64

La especificación 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 publicación, AMD lo llamó "AMD64".3 Intel inicialmente usó los nombres IA-32e y EM64T antes de utilizar "Intel 64" para su

implementación. 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 diseñada por otra

compañía 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 también utilizaban instrucciones diferentes de 8, de 16 bits de largo etc. el procesador de Intel 80386 conocido como i386

vino para ser un estándar, 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 terminación 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 terminación y A partir del microprocesador i486, se utilizaron

nombres no numéricos, 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 instrucción de 64 bits como extensión del conjunto de instrucciones de 32 bits, no viene de un procesador como en el caso de x86”. El

nombre para la extensión de 64 Bits para el conjunto de x86 se conoce como: x86-64.

Más tarde fue nombrado AMD64 (debido a que fue el primero en integrar en sus instrucciones la extensión x64 originalmente) Intel licencia la instrucción con el nombre de

EM64T. Ambas instrucciones y los procesadores que las ocupan son todavía considerados x86.

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

Page 7: Risc   Cisc

¿Cuáles son las Ventajas-Desventajas CISC / RISC?

CISC Gran cantidad de instrucciones

Ventajas Desventajas ISA(arquitectura del conjunto de instrucciones)

amplio y versátil

Gran cantidad de modos de direccionamiento

Soporta gran cantidad de tipos de datos

Implementación de instrucciones de alto nivel lo

más directamente posible

Reducción del tiempo de ejecución de

instrucciones complejas por medio de

implementación 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 más compleja

Instrucciones de longitud variable1

Instrucciones complejas

Poco uso de las instrucciones y

direccionamientos complejos

Poco aprovechamiento de parte de los

compiladores: no es fácil encontrar la mejor

instrucción para ejecutar una tarea

Baja densidad de código

Accesos a memoria disminuyen velocidad de

ejecución

RISC Implementar rapidez: segmentación - paralelismo - reducir los accesos a memoria.

Ventajas Desventajas Micro arquitectura más simple

Instrucciones más cortas, menos tiempo de

acceso a memoria

Compiladores más sencillos y eficientes

Hardware más optimo

Mayor número de líneas de código para una

función

Compatibilidad con arquitecturas antiguas es

más difícil de mantener

Permite operaciones sencillas entre operandos

situados únicamente en

los registros internos(cara al programador)

Registro - Registro

Page 8: Risc   Cisc

¿Cuáles son las Diferencias en características?

CISC RISC Énfasis en Hardware Énfasis en software

Memoria - Memoria Registro - Registro

Muchas instrucciones Pocas instrucciones

Instrucciones complejas toman múltiples 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 propósito general(guardan datos y

direcciones

Muchos registros de propósito general

Formato de instrucciones variable. Formato de instrucciones fija

Instrucciones largas,

Código con menos líneas

Instrucciones cortas,

Código con más líneas

Se enfatiza la versatilidad del repertorio de

instrucciones

Se añaden instrucciones nuevas sólo si son de uso

frecuente y no reducen el rendimiento de las más

importantes

¿Cuáles son las Diferencias en Hardware?

CISC:

Un chip RISC tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden:

Incrementar el tamaño del conjunto de registros.

Implementar medidas para aumentar el paralelismo interno.

Añadir cachés enormes.

No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.

….

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

RISC:

Un chip CISC tendrá más transistores para lógica principal, ya que implementa instrucciones para bastantes funcionalidades .Así que en el chip pueden implementar menos cosas:

Registros.

Cache.

….

Page 9: Risc   Cisc

Composición interna e Implementación de instrucciones

Composición interna actual

o La máquina CISC implementa a nivel de hardware un unidad de control micro programada que hace de intermediario antes de que la unidad lógica ejecute la instrucción. Esta unidad microprograma “divide” la instrucción CISC en micro – instrucciones más sencillas para que finalmente la unidad lógica RISC ejecute las micro – instrucciones.

o La máquina RISC ejecuta instrucciones más rápido porque no tiene que pasar por una capa de conversión de micro código. El compilador RISC genera más instrucciones que el compilador CISC para el mismo proceso.

Unidad de Control Micro programada

Implementación

Supongamos que la memoria principal se divide en:

Desde fila 1 hasta 5 y columna 1 hasta 4. La unidad de ejecución es responsable de llevar a cabo todos los cálculos. Sin embargo, la unidad de ejecución sólo 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 números - uno almacenado en la posición 1: 3 y otro almacenado en la posición 4: 2 y almacenar de nuevo el

resultado en 1: 3.

Enfoque CISC:

En el diseño CISC se trataría de terminar la tarea en las mínimas instrucciones posibles mediante la implementación de hardware que podría entender y ejecutar la serie de operaciones. Por lo tanto el procesador vendría con una instrucción específica 'MUL' en su conjunto de instrucciones:

1. 'MUL' cargaría los dos valores de la memoria en registros separados, multiplica los operandos en la unidad de ejecución 2. Almacena el producto en la ubicación adecuada.

Por lo tanto, toda la tarea de multiplicar dos números puede completarse con una instrucción:

MUL 1: 3, 4: 2

Después de ejecutar 'MUL' el procesador borra automáticamente 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 "instrucción compleja", ya que opera directamente

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

están implementadas en la misma instrucción.

Page 10: Risc   Cisc

Enfoque RISC:

En el diseño RISC se utilizan instrucciones sencillas que pueden ser ejecutadas dentro de un ciclo de reloj. Por lo tanto, la instrucción '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 necesitaría cuatro o más líneas 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 número de índice del componente es A2. El contenido de A3 se incrementa automáticamente 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 <- Mem[0+$s3] $t1 <- Mem[100+$s2] $t2 <- $t0 + $t1 Mem[0+$s3] <- $t2 $s3<- [$s3]+1

Page 11: Risc   Cisc

EJEMPLOS:

Ejemplos CISC:

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

Ejemplos RISC:

Apple A4 (iPad) : Procesador creado por P.A Semi (originalmente "Palo Alto Semiconductor") tras su adquisición 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 energético de cara a aumentar la duración de la batería. Además, el A4 incluye en el mismo micro un procesador de gráficos integrado que permite reproducir con soltura vídeos 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 vídeos disponibles en la web está realmente bien. Memoria principal: Posee una memoria flash de tipo NAND que varía entre 16, 32 y 64 GB.

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

Los diseños del MIPS son utilizados en la línea de productos informáticos 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 máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. Ver Ejemplos.

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 por lo que las arquitecturas convergen.

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

Futuro

Procesadores cuánticos a nivel de átomos---- Charla de Rafa Leyva ----

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

Page 12: Risc   Cisc

Seguridad en CISC - RISC

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

* Hoy en día, la razón 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 artículo analiza las diferencias entre las arquitecturas de microprocesadores x86 y PowerPC, y su

influencia en los problemas de seguridad.

En efecto, la mayoría de las vulnerabilidades explotan no sólo 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 instrucción de retorno desde el proceso que ha fallado

no contiene el código original, sino el código introducido.

Dicho de otra forma: para explotar, por ejemplo, una vulnerabilidad presente en Linux x86, hace falta un determinado código que la produzca, y además inyecte el código

problemático en la pila; explotar esa misma vulnerabilidad en Linux PowerPC causaría el cierre de la aplicación, pero es prácticamente imposible inyectar código que

permita realizar otras funciones, por la forma en que el procesador gestiona la pila. Esto es algo común a la mayoría de procesadores RISC. Y, desde luego, hace imposible

utilizar una simple traducción instrucción por instrucción del código que provocaba el fallo en Linux x86.

No quiero terminar sin citar uno de los párrafos finales:

Aunque los productos de Apple son generalmente un poco más rápidos y con mayores capacidades multimedia que sus contrapartidas PC, las diferencias más importantes

no están en cosas como la memoria o la velocidad del procesador, sino en el diseño, el software, y el coste de licencia.

Un punto más sobre la seguridad: Kelly Martin, en este artículo en The Register, se pregunta si no es posible que la falta de virus en Mac OS X se deba, más allá de la

dificultad mayor o menor en crear un virus, o un troyano —esto último no sería nada difícil, aunque existan más 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 simpática, aunque en inglés.

Page 13: Risc   Cisc

Anexo

Computación paralela

La computación Paralela, es muy importante actualmente, al permitir mejorar la velocidad en la solución de grandes problemas, de modo que se mejora el

rendimiento de computo.

La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. El paralelismo se ha empleado durante muchos años, sobre todo en la computación de altas prestaciones, pero el interés en ella ha crecido últimamente debido a las limitaciones físicas que impiden el aumento de la frecuencia. Como el consumo de energía —y por consiguiente la generación de calor— de las computadoras constituye una preocupación en los últimos años, la computación en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multinúcleo.

Las computadoras paralelas pueden clasificarse según el nivel de paralelismo que admite su hardware: equipos con procesadores multinúcleo y multi-procesador que tienen múltiples elementos de procesamiento dentro de una sola máquina y los clústeres, MPPS y grids que utilizan varios equipos para trabajar en la misma tarea.

Segmentación de cauce-Pipeline

La segmentación de cauce, también denominada pipeline, es una técnica empleada en el diseño de procesadores, basada en la división de la ejecución de las instrucciones en etapas, consiguiendo así que una instrucción empiece a ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya varias instrucciones procesándose simultáneamente.

Cada una de las etapas debe completar sus acciones en un ciclo de reloj, pasando sus resultados a la etapa siguiente y recibiéndolos 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 través de esos registros intermedios hasta que ya no sea necesario.

Para conseguir la segmentación es necesario que una instrucción utilice solamente una etapa en cada ciclo de ejecución.

Ya que todas las etapas deben de tardar lo mismo en su ejecución, el tiempo de ciclo será el de la etapa más lenta, más el del retardo provocado por la

utilización de los registros intermedios. Comparando este esquema con el multiciclo, el tiempo de ciclo será más lento, pero el CPI (Ciclos Por Instrucción) 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),

tendríamos que en cada ciclo de reloj, termina de ejecutarse una instrucción (CPI=1).

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

Segmentación (electrónica)

La segmentación (en inglés pipelining, literalmente tubería o cañería) es un método por el cual se consigue aumentar el rendimiento de algunos sistemas electrónicos digitales. Es aplicado, sobre todo, en microprocesadores.

los cálculos deben ser registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crítica (tramo con más carga o retardo computacional entre dos registros de reloj) se reduzca.

La ruta crítica es en realidad la frecuencia máxima de trabajo alcanzada por el conjunto. A mayor ruta crítica (tiempo o retraso entre registros) menor es la frecuencia máxima de trabajo y a menor ruta crítica mayor frecuencia de trabajo. La una es la inversa de la otra. Repartir o segmentar equitativamente el cálculo hace que esa frecuencia sea la óptima a costa de más á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 número 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, después de una latencia de cuatro en la imagen, los resultados de cada comando vienen uno tras otro cada flanco de reloj.

IF (Instruction Fetch): búsqueda

ID (Instruction Decode): decodificación

EX (Execution): ejecución de unidad aritmética lógica

MEM (Memory): memoria

WB (Writeback): escritura

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

Page 14: Risc   Cisc

Microarquitectura La microarquitectura (a veces abreviada como µarch o uarch), también llamada como organización 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 diseño dado o debido a los cambios en la tecnología. La arquitectura de computadora es la combinación del diseño 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 aritmética en coma flotante, procesamiento gráfico,procesamiento de señales, procesado de texto o Criptografía, etc. Y su función es evitar que el procesador principal tenga que realizar estas tareas de cómputo 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 están diseñado más eficientemente. Además estos coprocesadores permiten a los compradores de ordenadores personalizar su equipamiento ya que sólo tendrán que pagar ese hardware específico quienes deseen o necesiten tener el rendimiento extra ofrecido por estos dispositivos.

Page 15: Risc   Cisc

Bibliografía.

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 (inglés)

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 (inglés)

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

Diferencia Registro – Caché –Respuesta:Rápidez

¿Cómo se carga de la cache a registros?

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

en ejecución y la CPU necesita leer datos o instrucciones de la memoria regular, verifica primero si los datos están en la caché. Si los datos que necesita no están ahí,

continúa y lee los datos de la memoria regular y los lleva a sus registros, pero también 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. Podríamos pensar que las

probabilidades de que la CPU encuentre los datos que necesita en la caché son pequeñas, pero de hecho encuentra ahí los datos que necesita tan frecuentemente que

mejora perceptiblemente el desempeño 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 operación repetidamente hasta que se cumpla alguna condición. En el lenguaje de cómputo, este

procedimiento repetitivo es llamado ciclo iterativo (Loop).