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 SPARC: superSPARC 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
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