risc cisc

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

Post on 16-Aug-2015

33 views

Category:

Devices & Hardware

4 download

Embed Size (px)

TRANSCRIPT

  1. 1. 20-11-2014 CISC -RISC Historia y Futuro Antonio Castillo Mengbar UNIVERSIDAD DE CDIZ
  2. 2. 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
  3. 3. 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.
  4. 4. 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.
  5. 5. 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.
  6. 6. 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.
  7. 7. 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
  8. 8. 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. .
  9. 9. 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.
  10. 10. 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