Un equipo de conjunto de instrucciones complejas (CISC) es un equipo en el que las instrucciones individuales pueden ejecutar varias operaciones de bajo
nivel (por ejemplo, una carga de memoria, una operacin aritmtica, y un almacn de la memoria) y / o son capaces de operaciones de varios pasos o direcciones modos dentro de las instrucciones individuales. El trmino fue acuado con carcter retroactivo, en contraste con los equipos de conjunto de instrucciones reducido (RISC). Los microprocesadores de PC desarrollados por primera vez fueron los chips CISC, ya que todas las instrucciones que el procesador podra ejecutar se construyeron en el chip. Las memorias eran costosas en un principio y los chips CISC guardaban la memoria debido a que su programacin puede ser alimentada directamente en el procesador. Los chips CISC se mejoraron principalmente por la adicin de ms instrucciones para el diseo del procesador. Esto tambin signific que la programacin ha cambi con los nuevos diseos CISC. Los diseos CISC crecieron un poco complejos y voluminosos. Debido a que el precio del hardware estaba disminuyendo y el precio del software era cada vez mayor, los investigadores decidieron quitarle peso al software y utilizar el hardware para hacer todo el trabajo sucio. La idea era hacer el trabajo ms fcil para el compilador teniendo ms instrucciones que eran como las declaraciones de lenguaje de alto nivel. Si esto se haca, sera ms fcil escribir compiladores, y el cdigo sera menor por lo que se ahorrara RAM. La tecnologa CISC (Complex Instruction Set Computer) naci de la mano de Intel, creador en 1971 del primer microchip que permitira el nacimiento de la informtica personal. Ms concretamente, sera en 1972 cuando aparecera el 8080, primer chip capaz de procesar 8 bits, suficiente para representar nmeros y letras. Con la posibilidad de colocar todos los circuitos en un solo chip y la capacidad de manejar nmero y letras nacera la cuarta generacin de ordenadores, la de los conocidos como PC u ordenadores personales. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que en la actualidad la mayora de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples, llamadas generalmente microinstrucciones.
La microprogramacin es una caracterstica importante y esencial de casi todas las arquitecturas CISC. La microprogramacin significa que cada instruccin de mquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj, al menos uno por microinstruccin. Es as entonces como los chips CISC utilizan comandos que incorporan una gran diversidad de pequeas instrucciones para realizar una nica operacin. Cuando el sistema operativo o una aplicacin requiere de una de estas acciones, enva al procesador el nombre del comando para realizarla junto con el resto de informacin complementaria que se necesite. Pero cada uno de estos comandos de la ROM del CISC varan de tamao y, por lo tanto, el chip debe en primer lugar verificar cuanto espacio requiere el comando para ejecutarse y poder as reservrselo en la memoria interna. Adems, el procesador debe determinar la forma correcta de cargar y almacenar el comando, procesos ambos que ralentizan el rendimiento del sistema. El procesador enva entonces el comando solicitado a una unidad que lo descodifica en instrucciones ms pequeas que podrn ser ejecutadas por un nanoprocesador, una especie de procesador dentro del procesador. Y al no ser las instrucciones independientes, pues son instrucciones menores procedentes de la descodificacin de una instruccin mayor, slo puede realizarse una instruccin cada vez. A travs de la compleja circuitera del chip, el nanoprocesador ejecuta cada una de las instrucciones del comando. El desplazamiento por esta circuitera tambin ralentiza el proceso. Para realizar una sola instruccin un chip CISC requiere de cuatro a diez ciclos de reloj. Entre las bondades de CISC destacan las siguientes:
Reduce la dificultad de crear compiladores. Permite reducir el costo total del sistema. Reduce los costos de creacin de software. Mejora la compactacin de cdigo. Facilita la depuracin de errores.
Ejemplo de microprocesadores basados en la tecnologa CISC:
Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840.
Reduced Instruction Set Computer (RISC) - Computadora con Conjunto de Instrucciones Reducido. Tipo de arquitecturas de computadoras que promueve conjuntos pequeos y simples de instrucciones que pueden tomar poco tiempo para ejecutarse. Los microprocesadores basados en esta arquitectura poseen instrucciones de tamaos fijos y presentadas en un nmero reducido de formatos y en donde slo las instrucciones de carga y almacenamiento acceden a la memoria por datos. Tambin suelen disponer de muchos registros de propsito general. En el diseo de una mquina RISC se tienen cinco pasos: 1. Analizar las aplicaciones para encontrar las operaciones clave. 2. Disear un bus de datos que sea ptimo para las operaciones clave. 3. Disear instrucciones que realicen las operaciones clave utilizando el bus de datos. 4. Agregar nuevas instrucciones slo si no hacen ms lenta a la mquina. 5. Repetir este proceso para otros recursos. El primer punto se refiere a que el diseador deber encontrar qu es lo que hacen en realidad los programas que se pretenden ejecutar. Ya sea que los programas a ejecutar sean del tipo algortmicos tradicionales, o estn dirigidos a robtica o al diseo asistido por computadora. La parte medular de cualquier sistema es la que contiene los registros, el ALU y los 'buses' que los conectan. Se debe optimar este circuito para el lenguaje o aplicacin en cuestin. El tiempo requerido, (denominado tiempo del ciclo del bus de datos) para extraer los operandos de sus registros, mover los datos a travs del ALU y almacenar el resultado de nuevo en un registro, deber hacerse en el tiempo mas corto posible. El siguiente punto a cubrir es disear instrucciones de mquina que hagan un buen uso del bus de datos. Por lo general se necesitan solo unas cuantas instrucciones y modos de direccionamiento; slo se deben colocar instrucciones adicionales si sern usadas con frecuencia y no reducen el desempeo de las ms importantes. Siempre que aparezca una nueva y atractiva caracterstica, deber analizarse y ver la forma en que se afecta al ciclo de bus. Si se incrementa el tiempo del ciclo, probablemente no vale la pena tenerla. Por ltimo, el proceso anterior debe repetirse para otros recursos dentro del sistema, tales como memoria cache, administracin de memoria, coprocesadores de punto flotante, etctera.
CARACTERSTICAS Para cualquier nivel de desempeo dado, un chip RISC tpicamente tendr menos transistores dedicados a la lgica principal. Esto permite a los diseadores una flexibilidad considerable; as pueden, por ejemplo:
Incrementar el tamao del conjunto de registros. Mayor velocidad en la ejecucin de instrucciones. Implementar medidas para aumentar el paralelismo interno. Aadir cachs enormes. Aadir otras funcionalidades, como E/S y relojes para minicontroladores. Construir los chips en lneas de produccin antiguas que de otra manera no seran utilizables. No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energa o de tamao limitado.
Las caractersticas que generalmente son encontradas en los diseos RISC son:
Codificacin uniforme de instrucciones (ejemplo: el cdigo de operacin se encuentra siempre en la misma posicin en cada instruccin, la cual es siempre una palabra), lo que permite una decodificacin ms rpida. Un conjunto de registros homogneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y as simplificar el diseo del compilador (aunque existen muchas formas de separar los ficheros de registro de entero y coma flotante). Modos de direccionamiento simple con modos ms complejos reemplazados por secuencias de instrucciones aritmticas simples. Los tipos de datos soportados en el hardware (por ejemplo, algunas mquinas CISC tiene instrucciones para tratar con tipos byte, cadena) no se encuentran en una mquina RISC.
Los diseos RISC tambin prefieren utilizar como caracterstica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos estn conceptualmente separados; esto significa que el modificar las direcciones donde el cdigo se encuentra pudiera no tener efecto alguno en las instrucciones ejecutadas por el procesador (porque la CPU tiene separada la instruccin y el cach de datos, al menos mientras una instruccin especial de sincronizacin es utilizada). Por otra parte, esto permite que ambos cachs sean accedidos separadamente, lo que puede en algunas ocasiones mejorar el rendimiento. Muchos de esos diseos RISC anteriores tambin compartan una caracterstica no muy amable, el slot de salto retardado (Delay Slot). Un slot de salto retardado es un espacio de instruccin siguiendo inmediatamente un salto. La instruccin en este espacio
es ejecutada independientemente de si el salto se produce o no (en otras palabra el salto es retardado). Esta instruccin mantiene la ALU de la CPU ocupada por el tiempo extra normalmente necesario para ejecutar una brecha. Para utilizarlo, recae en el compilador la responsabilidad de reordenar las instrucciones de manera que el cdigo sea coherente para ejecutar con esta caracterstica. En nuestros das el slot de salto retardado se considera un desafortunado efecto colateral de la estrategia particular por implementar algunos diseos RISC.
Ejemplo de microprocesadores basados en la tecnologa RISC:
MIPS, Millions Instruction Per Second. PA-RISC, Hewlett Packard. SPARC, Scalable Processor Architecture, Sun Microsystems. POWER PC, Apple, Motorola e IBM.
MULTITAREA Debido a lo redundante de las microinstrucciones, los sistemas operativos diseados para estos microprocesadores, contemplaban la capacidad de subdividir un microprocesador en varios, reduciendo el nmero de instrucciones redundantes por cada instancia del mismo. Con una arquitectura del software optimizada, los entornos visuales desarrollados para estas plataformas, contemplaban la posibilidad de ejecutar varias tareas en un mismo ciclo de reloj. As mismo, la paginacin de la memoria RAM era dinmica y se asignaba una cantidad suficiente a cada instancia, existiendo una especie de 'simbiosis' entre la potencia del microprocesador y la RAM dedicada a cada instancia del mismo. La multitarea dentro de la arquitectura CISC nunca ha sido real, tal como en los RISC s lo es. En CISC, el microprocesador en todo su conjunto est diseado en tantas instrucciones complejas y diferentes, que la subdivisin no es posible, al menos a nivel lgico. Por lo tanto, la multitarea es aparente y por ordenes de prioridad. Cada ciclo de reloj trata de atender a una tarea instanciada en la RAM y pendiente de ser atendida. Con una cola de atencin por tarea FIFO para los datos generados por el procesador, y LIFO para las interrupciones de usuario, trataban de dar prioridad a las tareas que el usuario desencadenara en el sistema. La apariencia de multitarea en un CISC tradicional, viene de la mano de los modelos escalares de datos, convirtiendo el flujo en un vector con distintas etapas y creando la tecnologa pipeline.
Los microprocesadores actuales, al ser hibridos, permiten cierta parte de multitarea real. La capa final al usuario es como un CISC tradicional, mientras que las tareas que el usuario deja pendientes, dependiendo del tiempo de inactividad, el sistema traducir las instrucciones (el software ha de ser compatible con esto) CISC a RISC, pasando la ejecucin de la tarea a bajo nivel, en donde los recursos se procesan con la filosofa RISC. Dado que el usuario solo atiende una tarea por su capacidad de atencin, el resto de tareas que deja pendientes y que no son compatibles con el modelo de traduccin CISC/RISC, pasan a ser atendidas por el tradicional pipeline, o si son tareas de bajo nivel, tal como desfragmentaciones de disco, chequeo de la integridad de la informacin, formateos, tareas grficas o tareas de clculo matemtico intenso. En vez de tratar de subdividir a un solo microprocesador, se incorpor un segundo microprocesador gemelo, idntico al primero. El inconveniente es que la RAM deba de ser tratada a nivel hardware y los mdulos diseados para plataformas monoprocesador no eran compatibles o con la misma eficiencia, que para las plataformas multiprocesador. Otro inconveniente, era la fragmentacin del BYTE de palabra. En un RISC tradicional, se ocupan los BYTES de la siguiente forma: Si la palabra es de 32 BITS (4 BYTES de palabra de 8 BITS cada una, o dos de 16 o una de 32), dependiendo de la profundidad del dato portado, dentro del mismo BYTE, se incluan partes de otras instrucciones y datos. Ahora, al ser dos microprocesadores distintos, ambos usaban registros independientes, con accesos a la memoria propios (en estas plataformas, la relacin de RAM por procesador es de 1/1). Modos de direccionamiento Registro. El contenido del registro es el operando. add R1, R2, R3 Saltos, relativos al PC. Shift antes de sumar. beq R1, R2, loop Registro indirecto. Retorno de sub-rutina y case jal proc Desplazamiento. En instrucciones de carga y almacenamiento. La direccin del operando es la suma de una constante con el contenido de un registro. lw R1, 30(R2) Casos especiales: Constante=0 --> registro indirecto si se usa R0 --> absoluto (limitado) Formatos de instruccin Tamao de instruccin de 32 bits. Cdigo de operacin en 6 bits.
Especificacin de registro en 5 bits. Constante en 5, 11, 16 24 bits. Formatos : Registro-Registro Registro-inmediato Branch Jump/call CISC vs RISC CISC toma su nombre del nmero muy grande de instrucciones (por lo general cientos) y modos de direccionamiento. Para dar cabida a esta variedad de complejidades de instrucciones, las instrucciones CISC son de longitudes variables (a menudo que van desde 8 hasta 120 bits), esto es a diferencia de RISC que tiene un conjunto de instrucciones fijas. La longitud variable se utiliza para reducir el desperdicio de espacio, pero hay una desventaja que sigue. Las instrucciones de longitud variable son ms difciles de procesar, por lo que los chips CISC requieren muchos ms transistores que diseos RISC comparables. Este aumento en la cantidad de transistores tiene implicaciones obvias para el tema de la disipacin de la energa, que es fundamental para la informtica mvil. El aumento de nmero de transistores tambin hace que sea ms costoso producir chips CISC. Y los chips CISC son relativamente lentos (en comparacin con los chips RISC) por instruccin, pero en cambio utiliza poco (menos de RISC) las instrucciones. Debido al incremento en nmero de transistores y la cuestin obvia de disipacin de energa Mobile Pentium III introdujo una instalacin de gestin de energa nueva. Esto se llama SpeedStep. Que detecta la fuente de alimentacin (toma de corriente o la batera) y ajusta la velocidad de reloj del procesador y el voltaje en consecuencia. La mayora de las PC usan CPU basado en la arquitectura CISC. Por ejemplo, Intel y AMD, la CPU se basan en arquitecturas CISC. Muchos afirman que RICS es la arquitectura del futuro. Pero a pesar de que RISC ha estado en el mercado desde 1980, no ha conseguido sacar a CISC fuera del panorama, algunos argumentan que si es realmente la arquitectura del futuro ya debera haber sido capaz de hacer esto. Normalmente los chips CISC tienen una gran cantidad de instrucciones diferentes y complejas. La filosofa detrs de esto es que el hardware es siempre ms rpido que el software, por lo tanto hay que hacer un conjunto de instrucciones de gran alcance, que proporciona a los programadores con instrucciones de montaje para hacer mucho mas con programas ms cortos.
Por otro lado, haciendo ms simple el hardware, RISC pone una carga mayor en el software. El software necesita para convertirse, ms complicado, y los desarrolladores de software tienen que escribir ms lneas de cdigo para realizar tareas similares. Pero al hacer esto la arquitectura RISC quita la carga del de hardware resultando en un aumento en el rendimiento (sobre todo la velocidad). Todava hay controversia entre los expertos acerca de que la arquitectura es mejor. Algunos dicen que el RISC es ms barato y ms rpido y por consiguiente la arquitectura del futuro. Pero debido a que la carga pesa sobre el software algunos argumentan que RISC no es la arquitectura del futuro. Y los chips CISC convencionales estn siendo cada vez ms rpidos y ms baratos, hecho que no ayuda a la supremaca proclamada por RISC. La respuesta no es tan simple. Las arquitecturas RISC y CISC son cada vez ms y ms distintas. Muchos de los actuales chips RISC soportan tantas instrucciones como los chips CISC del pasado. El PowerPC 601, por ejemplo, soporta ms las instrucciones que el procesador Pentium. Sin embargo, los 601 se consideran un chip RISC, mientras que el Pentium es definitivamente CISC. Y los chips CISC de hoy utilizar muchas tcnicas anteriormente asociados con chips RISC. As que, como conclusin es imprescindible destacar que RISC y CISC estn creciendo uno al otro. Preguntas 1.- Habiendo establecido que la primera arquitectura diseada fue la CISC qu cree usted que motiv a los desarrolladores a seguir trabajando para llegar a la arquitectura RISC? Buscando aumentar la velocidad del procesamiento se descubri en base a experimentos que, con una determinada arquitectura de base, la ejecucin de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser mas eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnologa de encapsulado. Debido a que se tiene un conjunto de instrucciones simplificado, stas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcdigo y la necesidad de decodificar instrucciones complejas. Al aparecer los microprocesadores y microcontroladores, la tendencia inicial fue proveerlos de un repertorio de instrucciones lo mas potente posible, de modo que el modelo predominante fue el CISC. La complejidad de las instrucciones fue en aumento, en un mismo repertorio haba instrucciones que hacan operaciones muy simples junto a toras que efectuaban operaciones complejas. Las instrucciones tenan diferente longitud y los modos de direccionamiento se hicieron cada vez ms elaborados. Este aumento en la complejidad de las instrucciones se reflejo por supuesto en la complejidad del hardware
del CPU, en el que se haca necesario dedicar un gran espacio del circuito integrado a la descodificacin y ejecucin de instrucciones. En la arquitectura RISC la CPU dispone de un repertorio corto de instrucciones sencillas. Cada instruccin puede realizar una operacin muy simple pero a alta velocidad y se puede lograr que todas las instrucciones tengan la misma longitud. 2.- Habiendo establecido que las dos arquitecturas son usadas en la actualidad por cree usted que una no ha logrado eliminar a la otra? Para aplicar una determinada arquitectura de microprocesador son decisivas las condiciones de realizacin tcnica y sobre todo la rentabilidad, incluyendo los costos de software. Existan y existen razones de compatibilidad para desarrollar y utilizar procesadores de estructura compleja as como un extenso conjunto de instrucciones. Es aqu donde tambin juegan un papel importante las empresas desarrolladoras de software y hardware que siempre estn compitiendo y ya tienen una manera de ver la arquitectura computacional y como desean manejarla.