Arquitectura CISC La arquitectura CISC (Complex Instruction Set Computer, Ordenador de Conjunto de Instrucciones Complejas) se refiere a la conexin permanente
del procesador con las instrucciones complejas, difciles de crear a partir de las instrucciones de base. La arquitectura CISC es especialmente popular en procesadores de tipo 80x86. Este tipo de arquitectura tiene un costo elevado a causa de las funciones avanzadas impresas en la silicona. Las instrucciones son de longitud diversa, y a veces requieren ms de un ciclo de reloj. Dado que los procesadores basados en la arquitectura CISC slo pueden procesar una instruccin a la vez, el tiempo de procesamiento es una funcin del tamao de la instruccin. Arquitectura RISC Los procesadores con tecnologa RISC (Reduced Instruction Set Computer, Ordenador de Conjunto de Instrucciones Reducidas) no poseen funciones avanzadas conectadas en forma permanente. Es por eso que los programas deben traducirse en instrucciones sencillas, lo cual complica el desarrollo o hace necesaria la utilizacin de un procesador ms potente. Este tipo de arquitectura tiene un costo de produccin reducido si se lo compara con los procesadores CISC. Adems, las instrucciones de naturaleza sencilla se ejecutan en un slo ciclo de reloj, lo cual acelera la ejecucin del programa si se lo compara con los procesadores CISC. Para terminar, dichos procesadores pueden manejar mltiples instrucciones en forma simultnea, procesndolas en paralelo. ARQUITECTURAS 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. En investigaciones hechas a mediados de la dcada de los setentas, con respecto a la frecuencia de utilizacin de una instruccin en un CISC y al tiempo para su ejecucin, se observ lo siguiente: - Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de ejecucin de un programa. - Existen secuencias de instrucciones simples que obtienen el mismo resultado que secuencias complejas predeterminadas, pero requieren tiempos de ejecucin ms cortos. Las caractersticas esenciales de una arquitectura RISC pueden resumirse como sigue: Estos microprocesadores siguen tomando como base el esquema moderno de Von Neumann. Las instrucciones, aunque con otras caractersticas, siguen divididas en tres grupos: a) Transferencia. b) Operaciones. c) Control de flujo. Reduccin del conjunto de instrucciones a instrucciones bsicas simples, con la que pueden implantarse todas las operaciones complejas. Arquitectura del tipo load-store (carga y almacena). Las nicas instrucciones que tienen acceso a la memoria son 'load' y 'store'; registro a registro, con un menor nmero de acceso a memoria. Casi todas las instrucciones pueden ejecutarse dentro de un ciclo de reloj. Con un control implantado por hardware (con un diseo del tipo load-store), casi todas las instrucciones se pueden ejecutar cada ciclo de reloj, base importante para la reorganizacin de la ejecucin de instrucciones por medio de un compilador. Pipeline (ejecucin simultnea de varias instrucciones). Posibilidad de reducir el nmero de ciclos de mquina necesarios para la ejecucin de la instruccin, ya que esta tcnica permite que una instruccin puede empezar a ejecutarse antes de que haya terminado la anterior. El hecho de que la estructura simple de un procesador RISC conduzca a una notable reduccin de la superficie del circuito
integrado, se aprovecha con frecuencia para ubicar en el mismo, funciones adicionales: Unidad para el procesamiento aritmtico de punto flotante. Unidad de administracin de memoria. Funciones de control de memoria cache. Implantacin de un conjunto de registros mltiples. 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. Por otra parte, es necesario considerar tambin que: La disponibilidad de memorias grandes, baratas y con tiempos de acceso menores de 60 ns en tecnologas CMOS. Mdulos SRAM (Memoria de acceso aleatorio esttica) para memorias cache con tiempos de acceso menores a los 15 ns. Tecnologas de encapsulado que permiten realizar ms de 120 terminales. Esto ha hecho cambiar, en la segunda mitad de la dcada de los ochentas, esencialmente las condiciones tcnicas para arqutecturas RISC. La siguiente tabla esquematiza algunas de las principales caractersticas de las arqutecturas RISC Y CISC.
PRINCIPIOS DE DISEO DE LAS MAQUINAS RISC Resulta un tanto ingenuo querer abarcar completamente los principios de diseo de las mquinas RISC, sin embargo, se intentar presentar de una manera general la filosofa bsica de diseo de estas maquinas, teniendo en cuenta que dicha filosofa puede presentar variantes. Es muy importante conocer estos principios bsicos, pues de stos se desprenden algunas caractersticas importantes de los sistemas basados en microprocesadores RISC. En el diseo de una mquina RISC se tienen cinco pasos: Analizar las aplicaciones para encontrar las operaciones clave.
Disear un bus de datos que sea ptimo para las operaciones clave. Disear instrucciones que realicen las operaciones clave utilizando el bus de datos. Agregar nuevas instrucciones slo si no hacen ms lenta a la mquina. 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. Una vez planteadas las caractersticas principales de la arquitectura RISC as como la filosofa de su diseo, podramos extender el anlisis y estudio de cada una de las caractersticas importantes de las arqutecturas RISC y las implicaciones que estas tienen. PAPEL DE LOS COMPILADORES EN UN SISTEMA RISC El compilador juega un papel clave para un sistema RISC equilibrado. Todas las operaciones complejas se trasladan al microprocesador por medio de conexiones fijas en el circuito integrado para agilizar las instrucciones bsicas ms importantes. De esta manera, el
compilador asume la funcin de un mediador inteligente entre el programa de aplicacin y el microprocesador. Es decir, se hace un gran esfuerzo para mantener al hardware tan simple como sea posible, an a costa de hacer al compilador considerablemente ms complicado. Esta estrategia se encuentra en clara contra posicin con las mquinas CISC que tienen modos de direccionamiento muy complicados. En la prctica, la existencia en algunos modos de direccionamiento complicados en los microprocesadores CISC, hacen que tanto el compilador como el microprograma sean muy complicados. No obstante, las mquinas CISC no tienen caractersticas complicadas como carga, almacenamiento y salto que consumen mucho tiempo, las cuales en efecto aumentan la complejidad del compilador. Para suministrar datos al microprocesador de tal forma que siempre est trabajando en forma eficiente, se aplican diferentes tcnicas de optimizacin en distintos niveles jerrquicos del software. Los diseadores de RISC en la empresa MIP y en Hewlett Packard trabajan segn la regla siguiente: Una instruccin ingresa en forma fija en el circuito integrado del procesador (es decir, se alambra fsicamente en el procesador) si se ha demostrado que la capacidad total del sistema se incrementa en por lo menos un 1%. En cambio, los procesadores CISC, han sido desarrollados por equipos especializados de las empresas productoras de semiconductores y con frecuencia el desarrollo de compiladores se sigue por separado. Por consiguiente, los diseadores de los compiladores se encuentran con una interfaz hacia el procesador ya definido y no pueden influir sobre la distribucin ptima de las funciones entre el procesador y compilador. Las empresas de software que desarrollan compiladores y programas de aplicacin, tienden por razones de rentabilidad, a utilizar diferentes procesadores como usuarios de su software en lugar de realizar una optimizacin completa, y aprovechar as las respectivas caractersticas de cada uno. Lo cual tambin genera otros factores negativos de eficiencia. Esta limitacin de las posibilidades de optimizacin del sistema, que viene dada a menudo por una obligada compatibilidad, se super con los modernos desarrollos RISC.
APLICACIONES DE LOS PROCESADORES RISC Las arquitecturas CISC utilizadas desde hace 15 aos han permitido desarrollar un gran nmero de productos de software. Ello representa una considerable inversin y asegura a estas familias de procesadores un mercado creciente. Sin embargo, simultneamente aumentan las aplicaciones en las cuales la capacidad de procesamiento que se pueda obtener del sistema es ms importante que la compatibilidad con el hardware y el software anteriores, lo cual no solo es vlido en los subsistemas de alta capacidad en el campo de los sistemas llamados "embedded", en los que siempre dominaron las soluciones especiales de alta capacidad de procesamiento sino tambin para las estaciones de trabajo ("workstations"). Esta clase de equipos se han introducido poco a poco en oficinas, en la medicina y en bancos, debido a los cada vez mas voluminosos y complejos paquetes de software que con sus crecientes requerimientos de reproduccin visual, que antes se encontraban solo en el campo tcnico de la investigacin y desarrollo. En este tipo de equipos, el software de aplicacin, se ejecuta bajo el sistema operativo UNIX, el cual es escrito en lenguaje C, por lo que las arqutecturas RISC actuales estn adaptadas y optimizadas para este lenguaje de alto nivel. Por ello, todos los productores de estaciones de trabajo de renombre, han pasado en pocos aos, de los procesadores CISC a los RISC, lo cual se refleja en el fuerte incremento anual del nmero de procesadores RISC, (los procesadores RISC de 32 bits han visto crecer su mercado hasta en un 150% anual). En pocos aos, el RISC conquistar de 25 al 30% del mercado de los 32 bits, pese al aparentemente abrumador volumen de software basado en procesadores con el estndar CISC que se ha comercializado en todo el mundo. La arquitectura MIPS-RISC ha encontrado, en el sector de estaciones de trabajo, la mayor aceptacin. Los procesadores MIPS son fabricados y comercializados por cinco empresas productoras de semiconductores, entre las que figuran NEC y Siemens. Los procesadores de los cinco proveedores son compatibles en cuanto a las terminales, las funciones y los bits.