RISC: significado, funcionamiento, aplicaciones, etc.

 

  • SIGNIFICADO DE RISC

En arquitectura computacional, RISC (del inglés Reduced Instruction Set Computer, en español Computador con Conjunto de Instrucciones Reducidas) es un tipo de diseño de CPU generalmente utilizado en microprocesadores o microcontroladores con las siguientes características fundamentales:

  1. Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
  2. Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

Además estos procesadores suelen disponer de muchos registros de propósito general.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM,SPARC son ejemplos de algunos de ellos.

RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución.

 

  • FUNCIONES

Funciona de modo muy diferente a la CISC, su objetivo no es ahorrar esfuerzos externos por parte del software con sus accesos a la RAM, sino facilitar que las instrucciones sean ejecutadas lo más rápidamente posible. La forma de conseguirlo es simplificando el tipo de instrucciones que ejecuta el procesador. Así, las instrucciones más breves y sencillas de un procesador RISC son capaces de ejecutarse mucho más aprisa que las instrucciones más largas y complejas de un chip CISC. Sin embargo, este diseño requiere de mucha más RAM y de una tecnología de compilador más avanzada.

La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseño más cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicación de las más recientes tecnologías 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 generación en generación son mucho mayores que en los CISC.

Los comandos que incorpora el chip RISC en su ROM constan de varias instrucciones pequeñas que realizan una sola tarea. Las aplicaciones son aquí las encargadas de indicar al procesador qué combinación de estas instrucciones debe ejecutar para completar una operación mayor.

Los comandos de RISC son todos del mismo tamaño y se cargan y almacenan del mismo modo. Al ser estas instrucciones pequeñas y sencillas, no necesitan ser descodificadas en instrucciones menores como en el caso de los chips CISC, pues ya constituyen en sí unidades descodificadas. Es por ello, que el procesador RISC no gasta tiempo verificando el tamaño del comando, en descodificarlo ni en averiguar cómo cargarlo y guardarlo.

El procesador RISC puede además ejecutar hasta 10 comandos a la vez pues el compilador del software es el que determina qué comandos son independientes y por ello es posible ejecutar varios a la vez.

Al ser los comandos del RISC más sencillos, la circuitería por la que pasan también es más sencilla. Estos comandos pasan por menos transistores, de forma que se ejecutan con más rapidez. Para ejecutar una sola instrucción normalmente les basta con un ciclo de reloj.

 

 

  •    APLICACIONES

Hoy en día, los programas cada vez más grandes y complejos demandan mayor velocidad en el procesamiento de información, lo que implica la búsqueda de microprocesadores más rápidos y eficientes.

Las arquitecturas CISC utilizadas desde hace 15 años han permitido desarrollar un gran número de productos de software. Ello representa una considerable inversión y asegura a estas familias de procesadores un mercado creciente. Sin embargo, simultáneamente aumentan las aplicaciones en las cuales la capacidad de procesamiento que se pueda obtener del sistema es más importante que la compatibilidad con el hardware y el software anteriores, lo cual no solo es válido 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 también 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 reproducción visual, que antes se encontraban solo en el campo técnico de la investigación y desarrollo.

En este tipo de equipos, el software de aplicación, se ejecuta bajo el sistema operativo UNIX, el cual es escrito en lenguaje C, por lo que las arquitecturas RISC actuales están adaptadas y optimizadas para este lenguaje de alto nivel.

Por ello, todos los productores de estaciones de trabajo de renombre, han pasado en pocos años, de los procesadores CISC a los RISC, lo cual se refleja en el fuerte incremento anual del número de procesadores RISC, (los procesadores RISC de 32 bits han visto crecer su mercado hasta en un 150% anual). En pocos años, 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 estándar CISC que se ha comercializado en todo el mundo.

 

  •     Características Generales
  • Las características comunes a todos los procesadores RISC, fuente de sus capacidades de altas prestaciones son:Modelo de conjunto de instrucciones Load/Store que significa: Cargar-Almacenar. Sólo las instrucciones Load/Store acceden a memoria; las demás operaciones en un RISC, tienen lugar en su gran conjunto de registros. Ello simplifica el direccionamiento y acorta los tiempos de los ciclos de la CPU, además facilita la gestión de los fallos de paginas page faults en entornos de memoria virtual, permite un elevado nivel de concurrencia a consecuencia de la independencia de las operaciones de Load/Store de la ejecución del resto de las instrucciones.
  • Arquitectura no destructiva de tres direcciones. Los procesadores CISC destruyen la información que existe en alguno de los registros, como consecuencia de la ejecución normal de instrucciones; esto es debido a su arquitectura de dos direcciones, por lo que el resultado de una operación sobrescribe uno de los registros que contenía a los operandos. Por contra, las instrucciones RISC, con tres direcciones, contienen los campos de los dos operandos y de su resultado. Por lo tanto, tanto los operandos origen como el destino, son mantenidos en los registros tras haber sido completada la operación. Esta arquitectura no destructiva permite a los compiladores organizar las instrucciones de modo que mantengan llenos los conductos (pipelines) del chip, y por tanto reutilizar los operandos optimizando la concurrencia.
  • Instrucciones simples, de formato fijo, con pocos modos de direccionamiento. Las instrucciones simples reducen de manera muy significativa el esfuerzo para su descodificación, y favorecen su ejecución en pipelines. Las instrucciones de longitud fija, con formatos fijos, implican que los campos de códigos de operación opcodes y de los operandos están siempre codificados en las mismas posiciones, permitiendo el acceso a los registros al mismo tiempo que se está descodificando el código de operación. Todas las instrucciones tienen una longitud equivalente a una palabra y están alineadas en la memoria en límites de palabra word boundaries, ya que no pueden ser repartidas en pedazos que puedan estar en diferentes páginas.

 

  • Ausencia de microcódigo. El microcódigo no se presta a la ejecución en ciclos únicos, ya que requiere que el hardware sea dedicado a su interpretación dinámica. La programación en microcódigo no hace que el software sea más rápido que el programado con un conjunto de instrucciones simples. Todas las funciones y el control, en los procesadores RISC, están cableados hardwired, para lograr una máxima velocidad y eficiencia.
  • Ejecución en conductos pipelined. Las instrucciones simples, de formato fijo y ciclo único permiten que las diferentes etapas de los ciclos de ejecución búsqueda o fetch, descodificación, ejecución, y escritura del resultado o result write-back para instrucciones múltiples, se puedan realizar simultáneamente, de un modo más simple y eficaz.
  • Ejecución en ciclos únicos single-cycle. El resultado directo de los conjuntos de instrucciones que ofrecen los procesadores RISC, es que cada instrucción puede ser ejecutada en un único ciclo de la CPU. Esto invalida la creencia de que las microinstrucciones en microcódigo, creadas para ser ejecutadas en un solo ciclo de procesador, son más rápidas que las instrucciones del lenguaje ensamblador. Ya que el caché esta construido partiendo de la misma tecnología que el almacenamiento de control del microprograma, una única instrucción puede ser ejecutada a la misma velocidad que una microinstrucción. La ejecución en ciclos únicos también simplifica la gestión de las interrupciones y los conductos pipelines.

 

 

TECNOLOGIA

Los inicios de la tecnología RISC surgen en el ambiente académico, en 1980, en la Universidad de Berkeley California, donde el Dr. David A. Pattersoninició un proyecto denominado RISC I, obteniendo resultados en tan solo 19 meses, seguido por RISC II, SOAR Smalltalk on a RISC y SPUR (Symbolic Processing on a RISC), pero simultáneamente, en la Universidad de Stanford, el Dr. John Hennesy inició también un proyecto de implementación RISC, denominado MIPS, seguido por el sistema MIPS-XMP, enfocados hacia el proceso simbólico, demostrando así las capacidades de velocidad de la arquitectura RISC.

Ambos profesores se vieron envueltos rápidamente, en proyectos de productos comerciales, y en concreto,el llamado Hennesy fué uno de los fundadores de MIPS Computer Systems, mientras Patterson actuaba de asesor durante el desarrollo del primer SPARC.

 

FAMILIA MIPS

Con el nombre de MIPS (siglas de Microprocessor without Interlocked Pipeline Stages) se conoce a toda una familia de microprocesadores de arquitectura RISC desarrollados por MIPS Technologies.

Los diseños del MIPS son utilizados en la línea de productos informáticos de SGI; en muchos sistemas embebidos; en dispositivos para Windows CE;routers Cisco; y videoconsolas como la Nintendo 64 o las Sony PlayStation, PlayStation 2 y PlayStation Portable.

Las primeras arquitecturas MIPS fueron implementadas en 32 bits (generalmente rutas de datos y registros de 32 bits de ancho), si bien versiones posteriores fueron implementadas en 64 bits. Existen cinco revisiones compatibles hacia atrás del conjunto de instrucciones del MIPS, llamadas MIPS I, MIPS II, MIPS III, MIPS IV y MIPS 32/64. En la última de ellas, la MIPS 32/64 Release 2, se define a mayores un conjunto de control de registros. Así mismo están disponibles varias "extensiones", tales como la MIPS-3D, consistente en un simple conjunto de instrucciones SIMD en coma flotante dedicadas a tareas 3D comunes, la MDMX(MaDMaX) compuesta por un conjunto más extenso de instrucciones SIMD enteras que utilizan los registros de coma flotante de 64 bits, la MIPS16 que añade compresión al flujo de instrucciones para hacer que los programas ocupen menos espacio (presuntamente como respuesta a la tecnología de compresión Thumb de la arquitectura ARM) o la reciente MIPS MT que añade funcionalidades multithreading similares a la tecnología HyperThreading de los procesadores Intel Pentium 4.

Debido a que los diseñadores crearon un conjunto de instrucciones tan claro, los cursos sobre arquitectura de computadores en universidades y escuelas técnicas a menudo se basan en la arquitectura MIPS. El diseño de la familia de CPU's MIPS influiría de manera importante en otras arquitecturas RISC posteriores como los DEC Alpha.

 

FAMILIA SPARC

Es una arquitectura RISC originalmente diseñada por Sun Microsystems en 1985. SPARC es una marca registrada de SPARC International, Inc., organización establecida en 1989 para promover la arquitectura SPARC.

SPARC International abrió completamente la arquitectura SPARC, la cual ha sido licenciada por múltiples fabricantes como Texas Instruments, Cypress Semiconductor y Fujitsu.

Las implementaciones de la arquitectura SPARC fueron inicialmente diseñadas y usadas para las estaciones de trabajo Sun-4 y servidores  de Sun Microsystems, reemplazando los sistemas de Sun-3 basados en la familia de procesadores Motorola 68000.

Luego, la aquitectura SPARC fue incluida en los procesadores usados en servidores SMP desarrollados por Sun, Solbourne y Fujitsu, entre otros. Por lo general, las computadoras SPARC utilizan sistemas operativos como SunOS o Solaris, pero también se utiliza en otros como NEXTSTEP, RTEMS, FreeBSD, OpenBSD, NetBSD y Linux.

La arquitectura SPARC fue fuertemente influenciada por diseños más antiguos como RISC I y II de la Universidad de California.

A lo largo del tiempo, la arquitectura SPARC ha pasado por pocas revisiones. Las más destacadas son la versión 8, donde obtuvo funcionalidades de división y multiplicación de hardware, y la versión 9, donde se actualizó a 64 bits.

Algunos ejemplos de microprocesadores basados en SPARC: microSPARC I (Tsunami), SuperSPARC II (Voyager), UltraSPARC I (Hornet), UltraSPARC IIi (IIe+), UltraSPARC IV+ (Panther), UltraSPARC T1 (Niagara), UltraSPARC T2 (Niagara II), UltraSPARC RK (Rock), etc.

 

FAMILIA POWERCP

Los procesadores de esta familia fueron producidos por IBM y Freescale Semiconductor (que era la división de semiconductores y microprocesadores de Motorola), siendo utilizados principalmente en ordenadores o computadores Macintosh de Apple Computer hasta el año 2006 y en varios modelos IBM

PowerPC (usualmente abreviada PPC) es el nombre original de la arquitectura de computadoras de tipo RISC, que fue desarrollada por IBM, Motorola, y Apple.

La filosofía RISC fue introducida por el científico informático John Cocke en la década de los años 70s. En 1980, IBM comienza el proyecto IBM 801 donde se derivaría el primer procesador RISC, el proyecto estuvo a cargo del mismo John Cocke. Este procesador RISC ofreció un rendimiento bastante malo, a veces se lo denominaba "chagar" debido al gran consumo de recursos de sus aplicaciones, lo cual obligó a IBM a emprender el Proyecto América, con el cual lograr crear el primer procesador de la arquitectura Power (bajo consumo de energía pero potente procesador).

En 1991, IBM se dio cuenta del potencial de su diseño Power y buscó una alianza con Apple y Motorola para impulsar su creación; entonces surgió la alianza AIM (Apple, IBM y Motorola, actualmente Freescale) cuyo objetivo fue desbancar el dominio Microsoft e Intel que ofrecía sistemas basados en 80386 y 80486.

 

FAMILIA  ALPHA

Microprocesador Compaq Alpha 21264C. La familia de procesadores de 64 bits Alpha fue introducida por DEC(Digital Equipment Corporation). La primera implementación de la arquitectura Alpha, el 21064, es un chip de 200 MHz con 1.7 millones de transistores que disipa 30 W. Puede emitirse hasta dos instrucciones por ciclo. Se utilizan 4 unidades de procesamiento independientes: unidad de enteros, coma flotante, de salto, y una de carga/almacenamiento.

 Una nueva generación de procesadores Alpha anunció Compaq Computer Corporation. Esta familia es representada con el procesador Alpha EV6, el más rápido del mercado, con 102,000 transacciones por minuto bajo la prueba TPC-C. Este nuevo procesador cuenta con una arquitectura Risc avanzada que permite velocidades de 600MHz. Esta es la quinta generación del procesador que desde 1991 maneja 64 bits y sistemas operativos MS-NT, Unix y OpenVMS y más de 65.000 aplicaciones de negocios. Otros procesadores Risc comenzaron la migración a 64 bits en 1998. Intel planea la migración para el año 2000. La ventaja principal de las arquitecturas de 64 bits es su gran capacidad de direccionamiento de memoria. Hoy el procesador Alpha direcciona hasta 28Gb de memoria RAM, considerablemente más que otros procesadores.