CISC
Keywords: CISC, Arquitectura Harvard, Arquitectura von Neumann, Conjunto de instrucciones, Intel, Memoria de ordenador, Microcontrolador, Microprocesador, Motorola 68000
Del inglés Complex Instruction Set Computer. Conjunto de microprocesadores cuyo conjunto de instrucciones se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.
Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, 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.
Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoria de ordenadores personales del planeta.
Hay que hacer notar, sin embargo que 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.
Todos los CPUs x86 compatibles con la PC son procesadores CISC (Computadora de Conjunto de Instrucciones Complejas), pero en las Mac nuevas o en alguna que se hagan dibujos de ingeniería complejos, probablemente tengan un CPU RISC (Computadora de Conjunto de Instrucciones Reducido). La diferencia práctica entre CISC y RISC es que los procesadores CISCx86 corren a DOS, Windows 3.1 y Windows 95 en el modo nativo; es decir, sin la traducción de software que disminuya el desempeño. Pero CISC y RISC también reflejan dos filosofías de computación rivales. El procesamiento de RISC requiere breves instrucciones de software de la misma longitud que son fáciles de procesar rápidamente y en tándem por un CPU.
En contraste, un procesador de CISC tiene que procesar instrucciones más largas y desiguales. Es más difícil procesar múltiples instrucciones de CISC a la vez. Los que proponen RISC mantienen que su método de procesamiento es más eficiente y más escalable, por lo que los arquitectos pueden añadir unidades de ejecución más fácilmente a un diseño existente y aumentar el rendimiento (las unidades de ejecución son los circuitos dentro del chip que hacen gran parte del trabajo). Similarmente, RISC facilita el multiprocesamiento verdadero, donde varios CPUs trabajan simétricamente mientras dividen, ejecutan y ensamblan una cadena de instrucción; los chips CISC pueden hacer lo mismo, pero no son tan efectivos. La simplicidad de las instrucciones de RISC también significa que requieren menos lógica para ejecutar, reduciendo el costo del chip. Pocos en el campo del CISC discuten estos hechos, prefiriendo apuntar a la realidad <<la gran mayoría del software para la PC está escrito para procesadores CISC>>.
Todo el debate de CISC/RISC puede ser irrelevante pronto debido a que nuevas técnicas están convergiendo. El Pentium Pro, el Nx586 y el K5 son básicamente procesadores RISC en su núcleo. Toman las instrucciones de CISC y las traducen a instrucciones estilo RISC. Para la generación que sigue al Pentium Pro, Intel y Hewlett-Packard están colaborando en un CPU híbrido que pueda aceptar instrucciones RISC y CISC. Si ese chip crea un estándar, puede acelerar el cambio hacia el software optimizado para RISC. Un mundo de RISC significaría CPUs más poderosos y más baratos. Cuando quiera mejorar, simplemente puede añadir otro CPU en lugar de desprenderse de su viejo CPU.
Procesadores: CISC y RISC
Los procesadores se agrupan hoy en dos familias, la más antigua y común de las cuales es la "CISC" o "Complex Instruction-Set Computer": computador de set complejo de instrucciones. Esto corresponde a procesadores que son capaces de ejecutar un gran número de instrucciones pre-definidas en lenguaje de máquina (del orden del centenar).
Desde hace unos años se fabrican y utilizan en algunas máquinas procesadores "RISC" o "Reduced Instruction-Set Computer", es decir con un número reducido de instrucciones. Esto permite una ejecución más rápida de las instrucciones pero requiere compiladores (o sea traductores automáticos de programas) más complejos ya que las instrucciones que un "CISC" podría admitir pero no un "RISC", deben ser escritas como combinaciones de varias instruciones admisibles del "RISC". Se obtiene una ganancia en velocidad por el hecho que el RISC domina instrucciones muy frecuentes mientras son operaciones menos frecuentes las que deben descomponerse. Dentro de muy poco los usuarios dejaran de hacerse la pregunta ¿RISC o CISC?, puesto que la tendencia nos lleva a pensar que hacia el futuro ya no existirán los CISC puros.
Hace ya tiempo que se ha empezado a investigar sobre microprocesadores "hibridos", es decir, han llevado a cabo el que las nuevas CPU's no sean en su cien por cien CISC, sino por el contrario, que estas ya contengan algunos aspectos de tecnologia RISC. Este propósito se ha realizado con el fin de obtener ventajas procedentes de ambas tecnologías (mantener la compatibilidad x86 de los CISC y a la vez aumentar las prestaciones hasta aproximarse a un RISC), sin embargo, este objetivo todavia no se ha conseguido, de momento se han introducido algunos puntos del RISC, lo cual no significa que hayan alcanzado un nivel óptimo.
Realmente, las diferencias son cada vez mas borrosas entre las arquitecturas CISC y RISC. Las CPU's combinan elementos de ambas y no son fáciles de encasillar. Por ejemplo, el Pentium Pro traduce las largas instrucciones CISC de la arquitectura x86 a microoperaciones sencillas de longitud fija que se ejecutan en un nucleo de estilo RISC. El UltraSparc-II de Sun, acelera la decodificacion MPEG con unas instrucciones especiales para gráficos; estas instrucciones obtienen unos resultados que en otros procesadores requeririan 48 instrucciones. Por lo tanto a corto plazo, en el mercado coexistiran las CPU's RISC y los microprocesadores hibridos RISC - CISC, pero cada vez con diferencias mas difusas entre ambas tecnologías. De hecho, los futuros procesadores lucharán en cuatro frentes :
- Ejecutar mas instrucciones por ciclo.
- Ejecutar las instrucciones en orden distinto del original para que las interdependencias entre operaciones sucesivas no afecten al rendimiento del procesador.
- Renombrar los registros para paliar la escasez de los mismos.
- Contribuir a acelerar el rendimiento global del sistema, además de la velocidad de la CPU.
