risc cisc

19
CISC - RISC Antonio Castillo Mengíbar

Upload: antonio-castillo

Post on 16-Aug-2015

71 views

Category:

Devices & Hardware


2 download

TRANSCRIPT

CISC - RISCAntonio Castillo Mengíbar

INDICE

Historia CISC

Historia RISC

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

Composición interna e Implementación de instrucciones

Casos reales

Ejemplos

Presente

Seguridad en CISC-RISC

INDICE

Comienzo de CISC

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

Historia CISC

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.

Encapsulado: 16 pines, Reloj: 740 kHz

Direcciones de 8 bits Memoria:4 KB

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

Cronología Intel

Evolución 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 dirección 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 producción de procesadores.

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

Producido hasta 2007 para sistemas embebidos (empotrado)

y tecnología aeroespacial .Es la tercera generación 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 década del 2000 empezaron a aumentar núcleos….

……y en 2003 AMD introdujo x64.

Comienzo de RISCHistoria RISC

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

Se pensaba que se estaba alcanzando los límites teóricos, y las mejoras vendrían

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

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.

Comienzo de RISC

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.

Historia RISC

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.

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.

John Cocke encabezo este proyecto en IBM

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

CISC RISCMemoria - Memoria Registro - Registro

Muchas instrucciones Pocas instrucciones

Instrucciones largas,

Código con menos líneas

(bueno para el programador)

Instrucciones cortas,

Código con más líneas

(malo para el programador)

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

Instrucciones complejas toman múltiples

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

Composición interna e Implementación de instrucciones

Estructura

Composición interna

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.

Composición

ImplementaciónImplementación

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

Enunciado:

Enfoque CISC:Implementación

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.

MUL 1: 3, 4: 2

Después de ejecutar 'MUL' el procesador borraautomáticamente 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 "instrucción compleja",ya que opera directamente en los bancos de memoria de lacomputadora y no requiere del programador para llamarexplícitamente a las funciones de carga o almacenamientoporque ya están implementadas en la misma instrucción.

Enfoque RISC:Implementación

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

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

Implementación

CISC:Ejemplos

RISC:

Motorola 68000, Zilog Z80 y toda la familia Intel

x86, AMD x86-64 usada en la mayoría 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 energético de cara a aumentar la duración de la batería.

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

Presente

Artículo sobre seguridad

Artículo : 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

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.

Bibliografíahttp://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 (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)

Ver documento completo : Anexos y Bibliografía.