Está en la página 1de 22

INTRODUCCIÓN

Una de las primeras decisiones a la hora de diseñar un microprocesador es


decidir cuál será su juego de instrucciones. La decisión es trascendente por dos
razones; primero, el juego de instrucciones decide el diseño físico del conjunto;
segundo, cualquier operación que deba ejecutarse en el microprocesador deberá
poder ser descrita en términos de un lenguaje de estas instrucciones. Frente a esta
cuestión caben dos filosofías de diseño; máquinas denominadas CISC y máquinas
denominadas RISC.

Cuando hablamos de microprocesadores CISC, computadoras con un


conjunto de instrucciones complejo, del inglés complex instruction set computer, y
procesadores RISC, computadoras con un conjunto de instrucciones reducido, del
inglés reduced instruction set computer, se piensa que los atributos complejo y
reducido describen las diferencias entre los dos modelos de arquitectura para
microprocesadores. Esto es cierto solo de forma superficial, pues se requiere de
muchas otras características esenciales para definir los RISC y los CISC. Aún más,
existen diversos procesadores que no se pueden asignar con facilidad a ninguna
categoría determinada.

Hasta hace solo algunos años, la división era tajante: RISC se utilizaba para
entornos de red, mientras que CISC se aplicaba en ordenadores domésticos. Pero
en la actualidad se alzan voces que afirman que CISC está agotando sus
posibilidades, mientras otras defienden fervientemente que CISC ya ha alcanzado
a RISC, adoptando algunas de sus principales características.
ARQUITECTURAS CISC Y RISC

Veamos primero cual es el significado de los términos CISC y RISC:

 CISC (complex instruction set computer) Computadoras con un conjunto de


instrucciones complejo.
 RISC (reduced instruction set computer) Computadoras con un conjunto de
instrucciones reducido.

Los atributos complejo y reducido describen las diferencias entre los dos
modelos de arquitectura para microprocesadores solo de forma superficial. Se
requiere de muchas otras características esenciales para definir los RISC y los CISC
típicos. Aún más, existen diversos procesadores que no se pueden asignar con
facilidad a ninguna categoría determinada.

Así, los términos complejo y reducido, expresan muy bien una importante
característica definitiva, siempre que no se tomen solo como referencia las
instrucciones, sino que se considere también la complejidad del hardware del
procesador.

Con tecnologías de semiconductores comparables e igual frecuencia de reloj, un


procesador RISC típico tiene una capacidad de procesamiento de dos a cuatro
veces mayor que la de un CISC, pero su estructura de hardware es tan simple, que
se puede realizar en una fracción de la superficie ocupada por el circuito integrado
de un procesador CISC.
Una computadora ejecuta una instrucción en cinco pasos.

 La unidad de control recupera la instrucción desde la memoria; por ejemplo, la


instrucción de sumar dos números.
 La unidad de control descodifica la instrucción y la convierte en señales
electrónicas que controlan la computadora.
 La unidad de control recupera los datos necesarios para ejecutar la instrucción
(en este caso, los dos números).
 La unidad aritmético-lógica ejecuta la operación (la adición de ambos números).
 La unidad de control almacena el resultado (en este caso, el número resultante
de la suma).

Las primeras computadoras sólo empleaban instrucciones sencillas, porque el


coste de los dispositivos electrónicos capaces de ejecutar instrucciones complejas
era muy elevado. A medida que este coste fue disminuyendo, a lo largo de la década
de 1960, fueron posibles instrucciones más complicadas. Las instrucciones
complejas (instrucciones únicas que especifican operaciones múltiples) pueden
ahorrar tiempo al evitar que la computadora tenga que recuperar instrucciones
adicionales. Por ejemplo, si se combinan siete operaciones en una instrucción, se
eliminan seis de los pasos de recuperación de instrucciones, y la computadora tarda
menos tiempo en procesar la operación correspondiente.

En los años 50, todos los computadores se diseñaban de forma


completamente aislada unos de otros. Esto hacía que sus instrucciones fuesen
independientes, haciendo que un programa escrito para un cierto ordenador no se
pudiese ejecutar en otro. A finales de la década, IBM reunió a un grupo de sus
investigadores para estudiar la forma con la que un programa pudiese trabajar en
múltiples computadores sin importantes cambios, ampliando la compatibilidad del
software en diferentes máquinas. El resultado fue el enfoque CISC, Complex
Instruction Set Computing, introducido por primera vez en los IBM System/360 el 7
abril de 1964. Tras el lanzamiento de CISC, los científicos de IBM empezaron a
comprobar que los diseñadores de software creaban sus propias instrucciones más
simples y precisas. Entonces, ya en la década de los 70, empezaron a diseñar una
alternativa que posteriormente se introdujo en el mercado bajo el acrónimo RISC,
Reduced Instruction Set Computing. El IBM 801 que empezó a crearse en 1975, fue
diseñado por John Cocke y es considerado el primer procesador RISC de la historia.

El primer prototipo de computadora en utilizar una arquitectura RISC. Fue diseñado por el
investigador de IBM John Cocke y su equipo a fines de los años setenta.

CISC ofrece un conjunto de instrucciones bastante completas y lentas de


ejecutar, pero que agrupaban varias operaciones de bajo nivel en la misma
instrucción. Esto da lugar a programas pequeños y sencillos de desarrollar que
además realizaban pocos accesos a memoria: esto que ahora podría parecer
insignificante era vital en aquella época, cuando los ordenadores trabajaban con
muchos menos recursos que los equipos actuales.
En la actualidad CISC tiene a x86 como su mayor exponente, con AMD y
sobre todo Intel a la cabeza de su desarrollo. Hay muchos ejemplos históricos como
los PDP, Motorola 68000, Intel 4004 o Intel 8086, quizá los más representativos.
Prácticamente cualquier ordenador de sobremesa o portátil desde los años 80 ha
utilizado un procesador x86.

Sin embargo, la mayoría de los programas no utilizan instrucciones


complejas, sino que constan esencialmente de instrucciones simples. Cuando estas
instrucciones simples se ejecutan en una arquitectura CISC, el proceso es más
lento, porque en un diseño CISC todas las instrucciones, simples o complejas

CISC: Conjunto de instrucciones complejas de computación (Complex


Instruction Set Computing)

El objetivo principal de la arquitectura CISC es completar una tarea en el


menor número de líneas de código ensamblador posibles. Este objetivo es
conseguido mediante la construcción de un microprocesador capaz de comprender
y ejecutar una serie de operaciones complejas.

Características CISC

 Computador con repertorio de instrucciones complejo.


 Gran número de instrucciones complejas.
 Gran variedad de tipos de datos y de modos de direccionamiento.
 Permite implementar instrucciones de alto nivel directamente o con un
número pequeño de instrucciones ensamblador.
 Además se pueden añadir nuevas instrucciones al repertorio manteniendo
las antiguas.
RISC: Computadora con Conjunto de Instrucciones
Reducidas (Reduced Instruction Set Computer).

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. 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
cómputo, está basado en CISC en lugar de RISC, aunque las versiones más nuevas
traducen instrucciones basadas en CISC a instrucciones más simples basadas en
RISC para uso interno antes de su ejecución.

El diseño RISC está basado en la premisa de que la mayoría de las


instrucciones que una computadora decodifica y ejecuta son simples. Como
resultado de este concepto, la arquitectura RISC limita el número de instrucciones
incorporadas en el microprocesador, pero optimiza cada una de ellas de forma que
se ejecuten muy rápidamente (generalmente en un solo ciclo de reloj). Por lo tanto,
los chips RISC ejecutan las instrucciones simples más rápidamente que los
microprocesadores que cuentan con un conjunto más amplio de instrucciones.

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 ejecución.
Características RISC

 Computador con repertorio de instrucciones reducido.


 Pocas instrucciones y muy básicas.
 Repertorio simple y ortogonal.
 Formatos de instrucción uniformes.
 Pocos tipos de datos y de modos de direccionamiento, siempre los más
sencillos.

TAXONOMÍA DE FLYNN

La taxonomía de Flynn se caracteriza por ser una de las clasificaciones más


extendida de arquitecturas de computadores, en el año 1972 un profesor de la
Universidad de Stanford Michael J. Flynn propuso esta clasificación; esta se basa
en el número de instrucciones de control y en el flujo de los datos disponibles.

A continuación se detalla la categorización de Flynn:

• SISD: Simple flujo de instrucciones, simple flujo de datos.

• MISD: Múltiple flujo de instrucciones, simple flujo de datos.

• SIMD: Simple flujo de instrucciones, múltiple flujo de datos.

• MIMD: Múltiple flujo de instrucciones, múltiple flujo de datos.


Flujo de Datos

Simple Multiple

Simple SISD SIMD

Flujo de
Múltiple MISC MIMD
Instrucciones

Categorías de Flynn

 S=SINGLE
 M=MULTI
 I=INSTRUCCIÓN
 D=DATOS

ARQUITECTURA SISD (SINGLE INSTRUCTION SINGLE DATA-SIMPLE)


FLUJO DE INSTRUCCIÓN SIMPLE FLUJO DE DATOS

El Modelo SISD se caracteriza por tener un procesador capaz de realizar


operaciones aritméticas-lógicas de forma secuencial, se especifica por tener un
único flujo de instrucciones sobre un único flujo de datos, cada instrucción se ejecuta
después de terminar la anterior.

En esta arquitectura entra el modelo convencional de las Maquinas de Von


Neumann.

Ejemplo: PC’s.
En esta categoría se haya la mayoría de las computadoras existentes. Son
equipos con un solo procesador que trabaja sobre un solo dato a la vez. A estos
equipos se les llama también computadoras secuenciales.

En la actualidad ya no se fabrican computadores puramente SISD, debido a


que la mayoría de los procesadores de hoy incorporan paralelismo como la
segmentación de instrucciones.

MARCAS Y MODELOS APLICADOS CON ARQUITECTURA SISD

IBM
7094

VAX-11/780

CRAY-1
ARQUITECTURA SIMD (SINGLE INSTRUCTION MULTI DATA-SIMPLE)
FLUJO DE INSTRUCCIÓN MÚLTIPLE FLUJO DE DATOS

“Los elementos de procesamiento tienen capacidad de cómputo limitada (1


bit a 8 bits), por lo que se pueden colocar una gran cantidad por chip. Fueron los
primeros multiprocesadores difundidos comercialmente (en la década de 1980)”.

“Las computadoras SIMD tienen una sola unidad de control y múltiples


unidades funcionales. La unidad de control se encarga de enviar la misma
instrucción a todas las unidades funcionales. Cada unidad funcional trabaja sobre
datos diferentes”.

MARCAS Y MODELOS APLICADOS CON ARQUITECTURA SIMD

ILLIAC IV

CM-2
ARQUITECTURA MISD (MULTI INSTRUCTION SINGLE DATA-
MÚLTIPLE)
FLUJO DE INSTRUCCIONES SIMPLE FLUJO DE DATOS

Varias unidades funcionales ejecutan diferentes operaciones sobre el mismo


conjunto de datos, también pertenecen al modelo MISD los computadores
tolerantes a fallos que utilizan ejecución redundante para detectar y enmascarar
errores. (Sergio Nesmachnow, 2010)

MARCAS Y MODELOS APLICADOS


CON ARQUITECTURA MISD
Pipeline Machine

Array sistólicos

FPGA celulares

Según (JOHN WILEY & SONS, 2004) dice: “Debido a su carácter abstracto
puro, ninguna máquina prácticamente viable ha ejemplificado el modelo MISD
introducido por la clasificación (al menos hasta ahora), se ha considerado máquinas
pipeline (y quizás computadoras sistólica -Array) como ejemplos para MISD”.

ARQUITECTURA MIMD (MULTI INSTRUCTION MULTI DATA-


MÚLTIPLE)

FLUJO DE INSTRUCCIÓN MÚLTIPLE FLUJO DE DATOS

“Pueden trabajar asincrónicamente, los procesadores tienen la capacidad de


funcionamiento semi-autónomo”.

Cada procesador corre casi independientemente de los otros, pueden ser


utilizadas en aplicaciones con información en paralelo o con tareas en paralelo.
En la categoría están los equipos con varios procesadores completos. Cada
procesador tiene su propia unidad de control y su propia unidad funcional. Esta
categoría incluye varios subgrupos: Equipos de memoria compartida, equipos de
memoria distribuida y redes de computadores. Los equipos MIMD son de propósito
general.

MARCAS Y MODELOS APLICADOS CON ARQUITECTURA MIMD

CRAY X-MP

IBM 370
LEY DE AMDAHL

La Ley de Amdahl es llamada así por el arquitecto de ordenadores Gene


Amdahl, se usa para averiguar la mejora máxima de un sistema cuando solo una
parte de éste es mejorado. Establece que: La mejora obtenida en el rendimiento de
un sistema debido a la alteración de uno de sus componentes está limitada por la
fracción de tiempo que se utiliza dicho componente. El incremento de velocidad de
un programa utilizando múltiples procesadores en computación distribuida está
limitada por la fracción secuencial del programa.

Concepto:

La Ley de Amdahl nos da una


visión pesimista de las ventajas de la
paralelizacion ya que nos dice que
tenemos limitada la escalabilidad, y
que este límite depende de la
fracción de código no paralelizable.

La fórmula original de la ley de Amdahl es la siguiente:

𝑭𝒎
𝑻𝒎 = 𝑻𝒂 ∙ ((𝟏 − 𝑭𝒎 ) + )
𝑨𝒎

Siendo:

 Fm = fracción de tiempo que el sistema utiliza el subsistema mejorado


 Am = factor de mejora que se ha introducido en el subsistema mejorado.
 Ta = tiempo de ejecución antiguo.
 Tm = tiempo de ejecución mejorado.
Esta fórmula se puede reescribir usando la definición del incremento de la
velocidad que viene dado por 𝐴 = 𝑇𝑎 /𝑇𝑚 por lo que la fórmula anterior se puede
reescribir como:

𝟏
𝑨=
𝑭𝒎
(𝟏 − 𝑭𝒎 ) +
𝑨𝒎

Siendo:

 A, es la aceleración o ganancia en velocidad conseguida en el sistema

completo debido a la mejora de uno de sus subsistemas.

 Am, es el factor de mejora que se ha introducido en el subsistema mejorado.


 Fm, es la fracción de tiempo que el sistema utiliza el subsistema mejorado.

Todo programa consta de:

 Una o más porciones que no se pueden paralelizar


 Una o más porciones paralelizables

El aumento de rendimiento que puede obtenerse al mejorar alguna parte de


una computadora puede calcularse utilizando la Ley de Amdahl.

La Ley de Amdahl establece que la mejora obtenida en el rendimiento al


utilizar algún modo de ejecución más rápido está limitada por la fracción de tiempo
que se pueda utilizar ese modo más rápido.
La Ley de Amdahl define la ganancia de rendimiento o aceleración (speedup)
que puede lograrse al utilizar una característica particular.

Alternativamente

La aceleración nos indica la rapidez con que se realizará una tarea utilizando
una máquina con la mejora con respecto a la máquina original. La Ley de Amdahl
nos da una forma rápida de calcular la aceleración, que depende de dos factores:

1. La fracción del tiempo de cálculo de la máquina original que pueda


utilizarse para aprovechar la mejora. Por el ejemplo, si 20 segundos del
tiempo de ejecución puede utilizar la mejora de un programa que toma 60
segundos en total, la fracción es 20 /60. Este valor, que se llama Fracción
mejorada, es siempre menor o igual que 1.

2. La optimización lograda por el modo de ejecución mejorado; es decir,


cuánto más rápido con la que se ejecutaría la tarea si solamente se
utilizase el modo mejorado. Este valor es el tiempo del modo original con
respecto al tiempo del modo mejorado. Si el modo mejorado toma 2
segundos para alguna porción de programa que puede usar el modo
completamente mientras que el modo original tomaba 5 segundos para la
misma porción de programa, la mejora es 5/2. Este valor es siempre mayor
que 1 y se llama Aceleración mejorada.
Ejemplo

Suponer que estamos considerando una mejora que corra diez veces más
rápida que la máquina original, pero sólo es utilizable el 40% del tiempo. ¿Cuál es
la aceleración global lograda al incorporar la mejora?

Respuesta
Fracción mejorada = 0.4
Aceleración mejorada = 10
Aceleración global = 1/( 0.6 + 0.4/10) = 1.5625

Speed-up

En arquitectura de computadoras, speed-up es un número que mide el


rendimiento relativo de dos sistemas que procesan el mismo problema. Más
técnicamente, es la mejora en la velocidad de ejecución de una tarea ejecutada en
dos arquitecturas similares con diferentes recursos. La noción de aceleración fue
establecida por la ley de Amdahl, que se centró particularmente en el procesamiento
paralelo. Sin embargo, la aceleración se puede utilizar de manera más general para
mostrar el efecto en el rendimiento después de cualquier mejora de recursos.

Cuadro que muestra las categorías básicas de aceleración


EJERCICIO #1

Se desea mejorar el rendimiento de un computador introduciendo un


coprocesador matemático que realice las operaciones en la mitad de tiempo.
Calcular la ganancia en velocidad del sistema para la ejecución de un programa si
el 60% del mismo se dedica a operaciones aritméticas. Si el programa tarda 12
segundos en ejecutarse sin la mejora, ¿cuánto tardará con la mejora?

Am = 2
Fm = 0,6

𝟏
𝑨= = 𝟏, 𝟒𝟐
𝟎, 𝟔
(𝟏 − 𝟎, 𝟔) +
𝟐

Con lo que el sistema es un 42% más rápido.

𝑻𝒊𝒆𝒎𝒑𝒐𝑬𝒋𝒆𝒄𝒖𝒄𝒊ó𝒏𝑺𝒊𝒏𝑴𝒆𝒋𝒐𝒓𝒂
𝑨= = 𝟏, 𝟒𝟐
𝑻𝒊𝒆𝒎𝒑𝒐𝑬𝒋𝒆𝒄𝒖𝒄𝒊ó𝒏𝑪𝒐𝒏𝑴𝒆𝒋𝒐𝒓𝒂

𝟏𝟐
= = 𝟖, 𝟒𝟓 𝒔𝒆𝒈𝒖𝒏𝒅𝒐𝒔
𝑻𝒊𝒆𝒎𝒑𝒐𝑬𝒋𝒆𝒄𝒖𝒄𝒊ó𝒏𝑪𝒐𝒏𝑴𝒆𝒋𝒐𝒓𝒂

Lo que hace que el programa tarde 8,45 segundos.


EJERCICIO #2

Un arquitecto de computadores se plantea aplicar una mejora en las operaciones


en coma flotante que hará que este tipo de instrucciones se realicen en un tiempo
de ejecución 10 veces menor.

Se estima que el 40% de las instrucciones operan con números reales.

¿Cuál es el Speed-up o aceleración del sistema al aplicar esta mejora?

Solución

Mejora X = 10
Frecuencia de uso F = 0,4

𝒙 𝟏𝟎
𝑺= =
𝑭 + 𝒙 ∙ (𝟏 − 𝑭) 𝟎, 𝟒 + 𝟏𝟎 ∙ (𝟏 − 𝟎, 𝟒)
= 𝟏, 𝟓𝟔 𝒗𝒆𝒄𝒆𝒔 𝒎𝒂𝒔 𝒓𝒂𝒑𝒊𝒅𝒐

S Es la aceleración o speed-up del sistema.


x Es la mejora parcial aplicada durante una fracción de tiempo F.
LEY DE GUSTAFSON

La Ley de Gustafson (también conocida como ley de Gustafson-Barsis) es


una ley en Ingeniería informática que establece que cualquier problema
suficientemente grande puede ser eficientemente paralelizado. La ley de Gustafson
esta muy ligada a Ley de Amdahl, que pone límite a la mejora por Speed Up que
puede tener debida a la paralelización. Ofreciendo así una visión pesimista del
procesamiento paralelo. Por el contrario la ley de Gustafson ofrece un nuevo punto
de vista y así una visión positiva de las ventajas del procesamiento paralelo. John
L. Gustafson enunció por primera vez la ley que lleva su nombre en 1988.

𝑆(𝑃) = 𝑃 − 𝑎 ∙ (𝑃 − 1)

Donde P es el número de procesadores, S es el speedup, y 𝛼 la parte no

paralelizable del proceso.

Aceleración según la ley de Gustafson.


La ley de Gustafson aborda las limitaciones de la
Ley de Amdahl, la cual no escala la disponibilidad del
poder de cómputo a medida que el número de
máquinas aumenta. La ley de Gustafson propone que
los programadores establezcan el tamaño de los
problemas para utilizar el equipamiento disponible en
su solución en un tiempo práctico. Por consiguiente,
si existe equipamiento más rápido disponible,
mayores problemas se pondrán resolver en el mismo
tiempo.

John L. Gustafson

Derivación de la ley de Gustafson

El tiempo de ejecución de un programa en una computadora paralela es


descompuesto en:

(𝑎 + 𝑏)

Donde 𝛼 es el tiempo secuencial y 𝑏 es el tiempo paralelo, en cualquiera de los

P procesadores.

La suposición clave de Gustafson y Barisis es que la cantidad total de trabajo


a realizar en paralelo varía linealmente con el número de procesadores. La
implicación práctica es que un procesador capaz de procesar más de la carga de
procesamiento asignada a este, puede ejecutar en paralelo otras tareas
generalmente similares. Esto implica que b, el tiempo de procesamiento en paralelo
por proceso, debe ser fijo mientras P varía.
El tiempo correspondiente para el procesamiento secuencial es:

𝑎+𝑃∙𝑏
El speedup (aceleramiento) es, en concordancia:

(𝑎 + 𝑃 ∙ 𝑏)/(𝑎 + 𝑏)
Definiendo

𝑎 = 𝑎/(𝑎 + 𝑏)
Como la fracción secuencial del tiempo de ejecución en paralelo, obtenemos

𝑆(𝑃) = 𝑎 + 𝑃 ∙ (1 − 𝑎) = 𝑃 − 𝑎 ∙ (𝑃 − 1)

Por consiguiente, si 𝑎 es pequeño, el aceleramiento es aproximadamente P,

como es deseado. Incluso se puede dar el caso en que 𝑎 disminuya mientras P

junto con el tamaño del problema aumente; si esto se cumple, S se aproxima a P


monótonamente con el crecimiento de P.

De esta forma, la Ley de Gustafson aparenta rescatar el procesamiento en


paralelo de la Ley de Amdahl.

CONCLUSIONES

 Una parte importante de la arquitectura de computadores es la mejora de un


sistema hardware mediante la mejora de algunos componentes.
 El ingeniero de computadores cuenta con un presupuesto limitado y no podrá
mejorar todos los componentes. Para decidir qué parte mejorar, hay que
fijarse en aquellos componentes o tareas que se utilizan durante más tiempo.
 El ingeniero debe saber calcular la mejora global de un sistema cuando se
aplica una mejora (o varias) sobre un componente específico.
 Un error cometido frecuentemente por arquitectos de computadores es
pensar que al aplicarse una mejora en el rendimiento de un componente, el
sistema global mejorará en la misma proporción.
 La ley de Amdahl ayuda a representar matemáticamente todos estos
conceptos, permitiendo calcular la mejora global de un sistema basándose
en mejoras parciales.

BIBLIOGRAFÍA

https://www.ibm.com/ibm/history/ibm100/us/en/icons/risc/

https://allanlopezunah.wordpress.com/2016/06/04/arquitecturas-cisc-y-risc/

https://www.academia.edu/18404632/Taxonom%C3%ADas_de_Flynn

http://ppdberenice.blogspot.com/2015/08/ley-de-amdahl.html

https://esacademic.com/dic.nsf/eswiki/721348

También podría gustarte