martes, 27 de septiembre de 2016

ARQUITECURA RISC


RISC es el acrónimo de Reduced Instruction Set Computer lo que en castellano viene a ser conjunto reducido de instrucciones de computadora. Se entiende por procesador RISC aquel que tiene un conjunto de instrucciones con unas características determinadas.
Una instrucción no es más que una indicación de lo que debe de hacer el micro con los datos. Gracias a las instrucciones se crean los programas. Existen muchos tipos entre ellas aunque destacan las aritméticas, las lógicas y las de control de flujo.
El término "reducido" puede llevar a engaño cuando nos referimos a RISC. No se trata de que sean pocas instrucciones, ya que ningún procesador actual tiene pocas, si no de que estas sean sencillas. Se acepta que un procesador sea RISC cuando la misma instrucción que carga datos de memoria no realiza operaciones sobre ellos. Es necesario esperar a que otra realice el tratamiento de esos datos.
Las instrucciones por tanto son más sencillas de implementar en la propia CPU, ocupan menos espacio los bloques lógicos que las tienen que traducir haciendo que el sistema pueda tener frecuencias de funcionamiento mayores.
Gracias a esto la unidad de control, que es la encargada de gestionar que los bloques funcionales como la unidad aritmética lógica o la de punto flotante realicen su función, puede ser más sencilla que con otras arquitecturas. Esto permite obtener más espacio dentro del propio chip para otros elementos. Se suelen añadir así una mayor cantidad de registros que permiten tener más datos de forma interna en la CPU lo cual lleva a trabajar en ciertas ocasiones de forma más eficiente.

CARACTERÍSTICAS
En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por ejemplo:

ü  Incrementar el tamaño del conjunto de registros.
ü  Mayor velocidad en la ejecución de instrucciones.
ü  Implementar medidas para aumentar el paralelismo interno.
ü  Añadir cachés enormes.
ü  Añadir otras funcionalidades, como E/S y relojes para minicontroladores.
ü  Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables.
ü  No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.
Las características que generalmente son encontradas en los diseños RISC son:

Codificación uniforme de instrucciones (ejemplo: el código de operación se encuentra siempre en la misma posición en cada instrucción, la cual es siempre una palabra), lo que permite una decodificación más rápida.
Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y así simplificar el diseño del compilador (aunque existen muchas formas de separar los ficheros de registro de entero y coma flotante).
Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de instrucciones aritméticas simples.
Los tipos de datos soportados en el hardware (por ejemplo, algunas máquinas CISC tiene instrucciones para tratar con tipos byte, cadena) no se encuentran en una máquina RISC.
Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos están conceptualmente separados; esto significa que el modificar las direcciones donde el código se encuentra pudiera no tener efecto alguno en las instrucciones ejecutadas por el procesador (porque la CPU tiene separada la instrucción y el caché de datos, al menos mientras una instrucción especial de sincronización es utilizada). Por otra parte, esto permite que ambos cachés sean accedidos separadamente, lo que puede en algunas ocasiones mejorar el rendimiento.

Muchos de esos diseños RISC anteriores también compartían una característica no muy amable, el slot de salto retardado (Delay Slot). Un slot de salto retardado es un espacio de instrucción siguiendo inmediatamente un salto. La instrucción en este espacio es ejecutada independientemente de si el salto se produce o no (en otras palabra el salto es retardado). Esta instrucción 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 código sea coherente para ejecutar con esta característica. En nuestros días el slot de salto retardado se considera un desafortunado efecto colateral de la estrategia particular por implementar algunos diseños RISC. Es por esto que los diseños modernos de RISC, tales como ARM, PowerPC, y versiones más recientes de SPARC y de MIPS, generalmente eliminan esta característica.

PRINCIPIOS
Los procesadores RISC sólo usan instrucciones sencillas que se puedan ejecutar rápidamente. Por este motivo suelen ser arquitecturas basadas en registros de propósito general que operan siempre sobre operandos que se encuentran almacenados en el procesador, cerca de la unidad de ejcución.
De esta forma, el comando MULT podría ser dividido en tres comandos por separado: LOAD, que mueve datos del banco de memoria a un registro; PROD, que halla el producto de dos operandos situados en los registros; y STORE, que mueve datos de un registro al banco de memoria.
Para realizar la serie de pasos descritos en la filosofía CISC, un programador debería codificar la instrucción en 4 líneas de código ensamblador:
LOAD A, (2:3)
LOAD B, (5:2)
PROD A, B
STORE (2:3), A
El tiempo de diseño de estos productos se reduce sensiblemente, lo que disminuye su costo final, y por tanto, se incrementan sus expectativas, al poder llegar al mercado en un tiempo más adecuado, y con menos posibilidades de errores, son más eficaces, de menores dimensiones y más bajo consumo, las estaciones de trabajo RISC multiprocesadoras de mayor éxito, se basan en diferentes versiones de la tecnología SPARCsuperSPARC e HyperSPARC.

MULTIPROCESO-MEMORIA CACHE
La industria informática, ha tenido siempre un objetivo primordial, repetido a lo largo de toda su cadena (fabricantes de semiconductores, fabricantes de sistemas y usuarios): la búsqueda de la velocidad. Para alcanzar este objetivo se han invertido ingentes cantidades de recursos, hasta alcanzar los límites físicos del silicio.

Obviamente, la velocidad va ligada a las prestaciones, y por lo general, la primera ha sido la principal medida para decidirse por un sistema u otro. Sin embargo, por muy evidente que parezca, y dados los límites físicos de los semiconductores, las prestaciones pueden no estar forzosamente ligadas a la velocidad. Hoy es posible construir sistemas, que aún teniendo procesadores más "lentos" que otros, ofrezcan unas prestaciones significativamente superiores. Son los sistemas multiprocesador, que como su denominación indica, incorporan varios procesadores para llevar a cabo las mismas funciones.

No es un concepto nuevo, ya que los "minicomputadores" construidos por compañías como NCR, Sequent y Stratus, ya empleaban varios nodos de proceso como alternativas económicas a otros productos de otras compañías. Sin embargo, aquellos sistemas aún duplicaban recursos caros del sistema, como memoria y dispositivos de entrada/salida, y por tanto, confinaban a los sistemas multiprocesador al mundo de los sistemas de alto nivel.

Ahora, y en gran medida gracias a los procesadores de arquitectura RISC, el soporte multiprocesador es una solución integrada y fácilmente disponible en estaciones de trabajo de sobremesa, que resuelve, a través de hardware VLSI, los complejos problemas de compartición de recursos (memoria compartida) de aquellas primeras máquinas.

Evidentemente, estas mejoras en el hardware, para ser funcionales, requieren importantes desarrollos en el software, y de hecho, muchos sistemas operativos admiten extensiones multiproceso (Match, SCO, Solaris, System V, etc.), que proporcionan paralelismo "en bruto" (asignando múltiples tareas a múltiples procesadores) a nivel del sistema operativo.

Las aplicaciones escritas para facilitar el paralelismo en su ejecución, incrementan significativamente las prestaciones globales del sistema; esto es lo que se denomina multi-enhebrado (multithreading), que implica dividir una sola aplicación entre varios procesadores. Sin embargo, los desarrolladores de software y programadores de aplicaciones sólo han comenzado a explorar las vastas posibilidades de incremento de prestaciones que ofrecen los sistemas con capacidades reales de proceso en paralelo.

El multiproceso no es algo difícil de entender: más procesadores significa mas potencia computacional. Un conjunto de tareas puede ser completado más rápidamente si hay varias unidades de proceso ejecutándolas en paralelo. Esa es la teoría, pero otra historia es la práctica, como hacer funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto del hardware como del software. Es necesario conocer ampliamente como están interconectados dichos procesadores, y la forma en que el código que se ejecuta en los mismos ha sido escrito para escribir aplicaciones y software que aproveche al máximo sus prestaciones.

Para lograrlo, es necesario modificar varias facetas del sistema operativo, la organización del código de las propias aplicaciones, así como los lenguajes de programación.

Es difícil dar una definición exacta de un sistema multiprocesador, aunque podemos establecer una clasificación de los sistemas de procesadores en:

            SISD o secuencia única de instrucciones y datos (Single Instruction, Single Data): una sola secuencia de instrucciones opera sobre una sola secuencia de datos (caso típico de los ordenadores personales).
            SIMD o secuencia única de instrucciones y múltiple de datos (Single Instruction, Multiple Data): una sola secuencia de instrucciones opera, simultáneamente, sobre múltiples secuencias de datos (array processors).
            MISD o múltiples secuencias de instrucciones y única de datos (Multiple Instruction, Single Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre una sola secuencia de datos (sin implementaciones útiles actualmente).
            MIMD o múltiples secuencias de instrucciones y datos (Multiple Instruction, Multiple Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre múltiples secuencias de datos.
Los sistemas multiprocesadores pueden ser clasificados con mayor propiedad como sistemas MIMD. Ello implica que son máquinas con múltiples y autónomos nodos de proceso, cada uno de los cuales opera sobre su propio conjunto de datos. Todos los nodos son idénticos en funciones, por lo que cada uno puede operar en cualquier tarea o porción de la misma.

El sistema en que la memoria está conectada a los nodos de proceso establece el primer nivel de distinción entre diferentes sistemas multiprocesador:

Multiprocesadores de memoria distribuida (distributed-memory multiprocessors), también denominados multiprocesadores vagamente acoplados (loosely coupled multiprocessors). Se caracterizan porque cada procesador sólo puede acceder a su propia memoria. Se requiere la comunicación entre los nodos de proceso para coordinar las operaciones y mover los datos. Los datos pueden ser intercambiados, pero no compartidos. Dado que los procesadores no comparten un espacio de direcciones común, no hay problemas asociados con tener múltiples copias de los datos, y por tanto los procesadores no tienen que competir entre ellos para obtener sus datos. Ya que cada nodo es un sistema completo, por si mismo (incluso sus propios dispositivos de entrada/salida si son necesarios), el único límite práctico para incrementar las prestaciones añadiendo nuevos nodos, esta dictado por la topología empleado para su interconexión. De hecho, el esquema de interconexión (anillos, matrices, cubos, ...), tiene un fuerte impacto en las prestaciones de estos sistemas. Además de la complejidad de las interconexiones, una de las principales desventajas de estos sistemas, como es evidente, es la duplicación de recursos caros como memoria, dispositivos de entrada/salida, que además están desocupados en gran parte del tiempo.
Multiprocesadores de memoria compartida (shared-memory multiprocessors), también llamados multiprocesadores estrechamente acoplados (tightly coupled multiprocessors). Son sistemas con múltiples procesadores que comparten un único espacio de direcciones de memoria. Cualquier procesador puede acceder a los mismos datos, al igual que puede acceder a ellos cualquier dispositivo de entrada/salida. El sistema de interconexión más empleado para estos casos, es el de bus compartido (shared-bus). Tener muchos procesadores en un único bus tiene el inconveniente de limitar las prestaciones del sistema a medida que se añaden nuevos procesadores. La razón es la saturación del bus, es decir, su sobre utilización; en un sistema de bus compartido, se deriva por la contienda entre los diferentes dispositivos y procesadores para obtener el control del bus, para obtener su utilización.
Arquitecturas de Multiproceso

Es evidente, que los sistemas actuales tienden al uso de arquitecturas de memoria compartida, fundamentalmente por razones de costes, a pesar del problema de la contienda por el bus. Los tres fuentes fundamentalmente responsables de dicha disputa son la memoria (cada CPU debe usar el bus para acceder a la memoria principal), la comunicación (el bus es usado por los "bus masters" para la comunicación y coordinación), y la latencia de la memoria (el subsistema de memoria mantiene al bus durante las transferencias de datos, y en función de la velocidad a la que la memoria puede responder a las peticiones, puede llegar a ser un factor muy significativo).

VENTAJAS
ü  La estrategia RISC también tiene grandes ventajas. Debido a que cada instrucción realiza una operación muy simple, el código se ejecutará en aproximadamente el mismo tiempo que el comando MULT de la arquitectura CISC. Estas instrucciones reducidas RISC requieren menos hardware y es más sencillo que las instrucciones complejas, dejando más espacio para registros de propósito general. Además, las optimizaciones sobre un hardware más sencillo son mucho más fáciles de realizar.
ü  RISC ha alcanzado a todos los fabricantes de semiconductores:AMD, Intel, MIPS, Motorota, ROSS, y todos ellos son productos usados por fabricantes de ordenadores y estaciones de trabajo: Apple, DEC, HP, IBM, SUN, entre otros y sus correspondientes clónicos.
ü  La CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar instrucciones.
ü  Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que, a diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones. Cada instrucción puede ser ejecutada en un solo ciclo del CPU.
La definición de RISC es el futuro de la computación. Dentro de los próximos cinco años, surgirá un Standard de computación completamente nuevo basado en las arquitecturas RISC. Los computadores RISC redefinirán completamente la curva de precio - rendimiento que actualmente existe en la industria de la computación basada en computadores CISC, y se volverá el Standard de la industria de la computación que nos llevará al siglo XIX.

RESUMEN
RISC es el acrónimo de Reduced Instruction Set Computer lo que en castellano viene a ser conjunto reducido de instrucciones de computadora. Se entiende por procesador RISC aquel que tiene un conjunto de instrucciones con unas características determinadas.
Una instrucción no es más que una indicación de lo que debe de hacer el micro con los datos. Gracias a las instrucciones se crean los programas. Existen muchos tipos entre ellas aunque destacan las aritméticas, las lógicas y las de control de flujo.
El término "reducido" puede llevar a engaño cuando nos referimos a RISC. No se trata de que sean pocas instrucciones, ya que ningún procesador actual tiene pocas, si no de que estas sean sencillas. Se acepta que un procesador sea RISC cuando la misma instrucción que carga datos de memoria no realiza operaciones sobre ellos. Es necesario esperar a que otra realice el tratamiento de esos datos.
Las instrucciones por tanto son más sencillas de implementar en la propia CPU, ocupan menos espacio los bloques lógicos que las tienen que traducir haciendo que el sistema pueda tener frecuencias de funcionamiento mayores.

SUMMARY
RISC stands for Reduced Instruction Set Computer which in Castilian becomes reduced instruction set computer. by that processor having a RISC instruction set with specific characteristics it is understood.
An instruction is no more than an indication of what to do with the micro data. Thanks to the program instructions are created. There are many types including even include arithmetic, logic and flow control.
The term "reduced" can be misleading when referring to RISC. It is not that they are few instructions, since no current processor has few, if not that these are simple. It is accepted that a processor RISC when the same instruction that loads data memory does not perform operations on them. It is necessary to wait for another perform the processing of such data.
The instructions are therefore easier to implement in the CPU itself, occupying the logic blocks that have to translate causing the system may have higher operating frequencies less space.

RECOMENDACIONES
El término "reducido" puede llevar a engaño cuando nos referimos a RISC. No se trata de que sean pocas instrucciones, ya que ningún procesador actual tiene pocas, y gracias a la tecnología de procesadores RISC, las instrucciones son más sencillas.
CONCLUSIONES

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.

BIBLIOGRAFÍA
http://www.consulintel.es/html/Tutoriales/Articulos/risc.html
https://www.ecured.cu/RISC

https://es.wikipedia.org/wiki/Reduced_instruction_set_computing





1 comentario:

  1. Bien elaborada la PRESENTACION. Defina claramente las CONCLUSIONES y RECOMENDACIONES. Detalle la APRECIACION con sus propias palabras. Trabajo bien desarrollado y explicado. Proponga un foro de discusión sobre el tema.Gracias por su investigación.Saludos

    ResponderEliminar