Sei sulla pagina 1di 21

1.

Introduccin
Un sistema de computadora es un dispositivo electrnico programable que puede
aceptar, almacenar y procesar datos. Ejecuta un conjunto de instrucciones llamados
programas. La ejecucin del programa da al usuario final el resultado deseado.
En esta Unidad, discutiremos la organizacin de un sistema de computadora, los
componentes de la Unidad Central de Procesamiento (Central Processing Unit CPU),
las variaciones presentes en su organizacin, y como los diferentes componentes de un
sistema de computadora estn interconectados.
2. Organizacin de un Sistema de Computadora
Un sistema de computadora puede ser definido como una coleccin o conjunto de
varias partes o componentes que trabajan juntas para lograr un objetivo.
Un sistema de computadora puede considerarse como un grupo de componentes
integrados, interactuando uno con otro para realizar un conjunto especfico de tareas.
De manera ms precisa, un sistema de computadora puede ser definido como una
coleccin de entidades tales como procesadores, memorias, dispositivos de entrada /
salida (E/S), y otros componentes especiales interconectados, que interactan con cada
otro en cierta manera para llevar a cabo un conjunto especfico de tareas.
2.1 Organizacin de la Mquina de Von Neumann
El diseo bsico de muchas computadoras digitales modernas puede hacerse
corresponder con una de las primeras computadoras digitales, la mquina de Von
Neumann. Fue nombrada as por el famoso matemtico, John Von Neumann, quien la
dise. La estructura bsica de la mquina de Von Neumann se muestra en la Figura
1.1.

Figura 1.1: Estructura Bsica de la Mquina de Von Neumann
La mquina de Von Neumann tiene los siguientes componentes principales:
Unidad Aritmtica Lgica (Arithmetic Logic Unit ALU)
Memoria
Unidad de Control
Dispositivo de Entrada
Dispositivo de Salida
La unidad de control controla todas las operaciones de la computadora. Todos los otros
dispositivos trabajan bajo su control.
El programa, o el conjunto de instrucciones, junto con los datos, es almacenados en la
memoria principal. La memoria principal consiste de 4096 palabras, cada una de 40 bits
de longitud. La instruccin por s misma es de 20 bits de largo. Usualmente, una
instruccin consiste de la operacin que tiene que ser realizada y una direccin en la
memoria, donde los datos pueden ser encontrados. La operacin esta codificada en 8
bits conocido como el cdigo de la operacin, o simplemente opcode. Los datos usados
en la operacin son llamados el operando de la instruccin, que es representada como
un nmero binario con signo de 39 bits. Note que en la mquina de Von Neumann, las
instrucciones y los datos estn presentes en las mismas 4096 palabras de memoria.
Como cada instruccin es de slo 20 bits de longitud, dos instrucciones pueden ser
usualmente empacadas en una palabra de 40 bits.
Cmo alimentan las instrucciones y los datos al computador? Esto es hecho por la
unidad de control, la cual dirige al ALU para obtener la entrada del dispositivo de
entrada. Los datos son almacenados en un acumulador, cuyo ancho es tambin de 40
bits y luego transferida a la memoria.
Una instruccin puede ser usada para aadir datos al acumulador, para cargar un valor
de la memoria en el acumulador, o para guardar un valor del acumulador a una
ubicacin particular en la memoria. .
El resultado obtenido del clculo o ejecucin del programa puede ser enviado al
dispositivo de salida desde el acumulador.
La mquina de Von Neumann era capaz de ejecutar slo unas cuantas instrucciones
primitivas. No tena las operaciones para tratar explcitamente con nmeros reales.
Para resumir, la mquina de Von Neumann trabaja con un programa almacenado. El
programa almacenado consiste de instrucciones y datos que son guardados en la
memoria. Las instrucciones son ejecutadas por el ALU bajo la direccin de la unidad de
control. El ALU puede realizar cierto nmero de operaciones primitivas en operandos en
la memoria y en el acumulador.
La organizacin de la mquina de Von Neumann es tan fundamental que muchas
computadoras digitales modernas an reflejan una estructura similar. El ALU en la
mquina de Von Neumann tiene un parecido cercano a la moderna Unidad Central de
Procesamiento (Central Processing Unit CPU), y la unidad de control es usualmente
una parte de la CPU. Pero los componentes y organizacin en las computadoras
modernas es un poco ms compleja. Ahora vamos a discutir la organizacin de una
computadora digital moderna en su forma ms simple.
2.2 Organizacin de una Computadora Elemental
La organizacin de una computadora digital moderna en su forma ms simple es
ilustrada en la Figura 1.2.










Figura 1.2: Organizacin de un Sistema de Computadora
De la Figura 1.2, podemos ver que la organizacin de un sistema de computadora
moderno es ms compleja que la organizacin de la mquina de Von Neumann. Un
sistema de computadora moderno comprende los siguientes componentes principales:
CPU
Bus Principal de Sistema
Memoria Primaria
Dispositivos de Entrada
Dispositivos de Salida
Dispositivos de Almacenamiento Secundario
Discutiremos brevemente cada uno de estos componentes principales.
2.3 CPU
Las funciones de la CPU son:
Dirigir la operacin del sistema de computadora.
Coordinar las actividades de las unidades individuales.
Establecer la secuencia de instrucciones que van a ser ejecutadas.
Llevar a cabo las funciones que desee el usuario.
En las computadoras modernas, la CPU es un microprocesador incluido en un chip de
silicio. La CPU en s misma contiene los siguientes componentes principales:
Unidad de Control
ALU
Memoria Cache
Registros de propsito especial
Registros de propsito general
Bus Interno
La unidad de control coordina las actividades de los otros componentes de la CPU.
Adems controla algunos de los componentes del sistema de computadora como los
dispositivos E/S y la memoria a travs de seales de control.
La unidad de control tambin es responsable de establecer la secuencia y coordinar la
ejecucin de instrucciones.
El ALU es el siguiente componente importante de la CPU. Es llamado ALU porque
puede llevar a cabo operaciones aritmticas y lgicas. Un ALU tpico puede realizar
diferentes formas de operaciones aritmticas como adicin, sustraccin, multiplicacin,
y divisin en enteros.
Los ALUs de algunas de las primeras CPUs no eran capaces de realizar operaciones
aritmticas en nmeros reales, tambin llamados nmeros de punto flotante. De hecho,
el antiguo microprocesador Intel 80386 no tena un ALU capaz de realizar operaciones
aritmticas en nmeros reales. Los sistemas de computadora basados en la CPU Intel
80386 tenan la opcin de instalar un 'coprocesador matemtico' o 'coprocesador de
punto flotante, el Intel 80387. El Intel 80387 es bastante similar a un CPU normal,
excepto que tiene la funcionalidad limitada de proporcionar una variedad de
instrucciones en nmeros de punto flotante. Es llamado coprocesador debido que
trabaja bajo el control de la CPU principal, el Intel 80386.
La unidad lgica del ALU es capaz de realizar operaciones tales como comparar
operandos y tomar decisiones basadas en condiciones.
Los ALUs de diferentes sistemas de computadora varan considerablemente en cmo la
CPU principal est organizada, y la clase de instrucciones que ellos pueden ejecutar.
Las instrucciones que son ejecutadas por la CPU trabajan sobre los datos (operandos)
que son guardados en la memoria principal. Cada vez que una instruccin va a ser
ejecutada, los operandos requeridos deben estar disponibles en la CPU para el ALU.
Existen algunos lugares especiales de almacenamiento en la CPU para guardar los
operandos, y entonces ser usados por el ALU.
Algunos programas tienen instrucciones que trabajan frecuentemente sobre algunos
conjuntos de datos. Si estos conjuntos de datos tuvieran que ser trados de la memoria
principal a las ubicaciones de almacenamiento interno para el ALU cada vez, el proceso
completo se hara lento.
Para solucionar este problema, las CPUs tienen un conjunto limitado de ubicaciones de
almacenamiento de alta velocidad en el chip llamado la memoria cache. Los datos
frecuentemente requeridos son almacenados en la memoria cache. Esto reduce el
tiempo consumido en traer los datos de la memoria principal e incrementa la velocidad
de la operacin. A pesar que el tener ms memoria cache en el chip es deseable, sta
hace que la CPU sea muy costosa.
La CPU adems tiene unas pocas ubicaciones de almacenamiento de alta velocidad
para propsitos especiales. Estas son llamadas registros de propsito especial. Los
siguientes son algunos de los registros de propsito especial que se encuentran en las
CPUs tpicas:
Contador de Programa (Program Counter PC)
Registro de Instruccin (Instruction Register IR)
Registro de Direccin de Memoria (Memory Address Register MAR)
Registro de Buffer de Memoria (Memory Buffer Register MBR)
El PC guarda la direccin de la posicin en la memoria principal que contiene el
siguiente conjunto de instrucciones a ser ejecutado en un programa. El IR contiene la
instruccin que ha sido trada de la memoria principal y que tiene que ser ejecutada por
la CPU.
Considere el caso cuando queremos traer un operando de la memoria principal. Vamos
a asumir que el dato esta en la direccin de memoria 1025. Colocamos esta direccin
de memoria en el MAR. Luego la memoria principal es sealizada para lectura. El
contenido de la ubicacin de memoria 1025 es ledo y colocado en el MBR.
En adicin a los registros de propsito especial, la CPU tambin dispone de unos
registros de propsito general. Estos son similares a los registros de propsito especial.
Mientras que los registros de propsito especial no pueden ser accedidos directamente
por los programadores, los registros de propsito general pueden ser accedidos y
usados en forma directa por los programadores. Los programas que hacen uso en
forma ptima de los registros de propsito general son ms eficientes. Las CPUs
difieren en la manera en la cul se organizan los registros de propsito general y la
cantidad que est disponible de estos. Por ejemplo, algunas CPUs pueden ofrecer slo
un conjunto de registros de propsito general, y el usuario puede usarlos
apropiadamente. Otras CPUs ofrecen un conjunto de registros de propsito general slo
para almacenar datos (llamados registros de data) y otro conjunto de registros de
propsito general slo para almacenar direcciones de memoria (llamados registros de
direcciones).
Es obvio por ahora que los datos tiene que moverse de un componente a otro dentro de
la CPU. Los datos adems tienen que moverse entre los otros componentes del
sistema. Por ejemplo, un dato puede tener que moverse de la memoria cache a una
ubicacin de almacenamiento interno usada por el ALU, o de los registros de propsito
general a los registros de propsito especial o viceversa. Aun la instruccin en el IR
puede tener que moverse a la unidad de control. Cmo es que se realiza este
movimiento de dato?
Para el movimiento de dato dentro de la CPU existe una ruta interna llamada el bus
interno. Las estructuras de CPU varan basndose en el tamao del bus interno, en
trminos del nmero de bits que puede transportar. El bus en s mismo puede ser visto
como un conjunto de cables paralelos que pueden llevar un dgito binario. Es llamado
el bus interno. El bus principal de sistema por otro lado es responsable del movimiento
de los datos a travs de otros componentes del sistema, por ejemplo, de la CPU a la
memoria principal (y viceversa) o de la CPU a un dispositivo de E/S (o viceversa).
Ahora discutiremos acerca del bus principal de sistema y sus caractersticas.
2.4 Bus Principal de Sistema
El bus principal de sistema constituye la principal va a travs de la cual los datos se
mueven entre diferentes componentes del sistema de computadora. Puede ser
visualizado como un conjunto de cables paralelos a travs de los cuales fluyen los datos
en binario de una parte de la computadora a otra. Aparte de los datos, las direcciones
de memoria y seales de control tambin se mueven a travs del bus.
En efecto, existen tres tipos de buses.
Bus de Datos
Bus de Direccin
Bus de Control
2.4.1 Bus de Datos
Los datos y las instrucciones, las cuales son informacin digital en forma de bits, se
mueven a travs del bus de datos. El tamao del bus de datos tiene un impacto directo
en el rendimiento del sistema de computadora. Vamos a asumir que el tamao del bus
de datos es de 8 bits y existe el requerimiento de transferir una data de 32 bits de la
CPU a la memoria principal. La data tendra que ser dividida en cuatro pedazos de 8
bits. Esto naturalmente disminuira el rendimiento del sistema. Si el tamao del bus de
datos es 32 bits, la transferencia se completara mucho ms rpido.
La informacin que fluye dentro y fuera del bus de datos debe seguir un conjunto de
reglas. stas son conocidas como protocolos.
Diferentes tipos de buses de datos estn disponibles, variando no slo en tamao sino
tambin en los protocolos que usan. Algunos de los principales buses de datos
estndares de la industria usados son:
Bus ISA (Industry Standard Architecture)
Bus PCI (Peripheral Component Interconnect)
Bus EISA (Extended Industry Standard Architecture)

2.4.2 Bus de Direccin
El bus de direccin conecta la CPU y la memoria principal. Cuando la CPU necesita un
conjunto de datos de la memoria, coloca la direccin de la posicin del dato en el bus de
direccin. Luego, enva una seal de control a la memoria. La memoria obtiene la
direccin del bus de direccin, recupera el dato, y coloca el dato en el bus de datos para
ser transportada a la CPU.
En forma similar, si la CPU quiere escribir un dato en una posicin particular en la
memoria, coloca el dato en el bus de datos y la direccin de la posicin de memoria
donde se tiene que escribir en el bus de direccin. Luego enva una seal de control
para tener el dato escrito en la memoria.
El tamao del bus de direccin determina la extensin de la memoria principal que
puede ser direccionada y accedida. (Por ejemplo, la computadora personal contiene un
bus de direcciones de 36 bits, lo que implica que tericamente es capaz de direccionar
64 gigabytes de memoria principal.) Sin embargo, el tamao del bus de direcciones, a
diferencia del bus de datos, no afecta el rendimiento del sistema de computadora.
2.4.3 Bus de Control
Las seales de control se mueven de un componente a otro a travs del bus de control.
Existen varias seales de control. Una de las seales de control es usada para indicar si
la CPU esta leyendo o escribiendo en la memoria principal. Otras seales de control son
usadas para acceder y controlar dispositivos de E/S. Ahora, discutiremos la
organizacin de la memoria principal.
2.5 Memoria Primaria
La memoria primaria es el principal dispositivo de almacenamiento en donde se guardan
las instrucciones que constituyen un programa y los datos requeridos. La memoria
primaria de las computadoras modernas son chips semiconductores montados en una
tarjeta de circuitos. En las computadoras personales, los chips de memoria primaria
estn ordenados en una parte de la tarjeta madre (la principal placa de circuito
integrado que contiene a la CPU) o en placas de circuito adicionales que estn
montadas en ranuras ubicadas en la tarjeta madre. En cualquier caso, lgicamente, la
memoria primaria constituye el conjunto de ubicaciones de almacenamiento donde un
bit puede ser guardado.
Somos conscientes que un bit, por s mismo tiene un uso y significado limitados. Por lo
tanto, una coleccin de bits tiene ms sentido cuando la vemos como un grupo. A los
grupos de bits se les da mltiples nombres dependiendo del nmero de bits que
contienen. Un grupo de 8 bits es llamado un byte. El termino palabra tambin se refiere
a una coleccin de bits. Desafortunadamente, no existe uniformidad en el uso de este
trmino dado que no indica un cierto nmero de bits en forma universal. Mientras que
en algunos sistemas de computadoras, el tamao de la palabra puede ser 16 bits, en
otros puede ser 32 bits, y an en otros puede ser 64 bits. Para evitar cualquier
confusin potencial, podemos usar el trmino genrico de celda para referirnos a un
grupo de bits.
Cuntos bits puede tener una celda? Para responder esto, debemos entender el
significado de una 'direccin' de una posicin de memoria. Hemos visto que la unidad
ms pequea en la memoria es un bit. Si tuviramos la capacidad para localizar un bit
particular en la memoria, entonces deberamos tener una direccin asociada con cada
bit. Asumiendo que tenemos 64 KB de memoria. Entonces en la memoria, existen
65,536 bytes o 524,288 bits. Por lo tanto necesitaramos tener direcciones desde el 0
hasta el 524,287 para direccionar cada bit. El mnimo nmero de bits requeridos para
representar una direccin tal como 524,287 es 20 bits. Para ser capaces de guardar
estas direcciones y usarlas, necesitaramos tener un bus de direcciones de 20 bits. Sin
embargo, 64 KB para memoria principal es bastante pequeo, considerando que las
computadoras modernas tpicamente tienen 128 MB de memoria principal. Si
tuviramos que direccionar cada bit, entonces deberamos tener un bus de direccin
mucho ms grande.
La utilidad de ser capaz de direccionar cada bit en la memoria es bastante baja. En vez
de hacer direccionable cada bit, podemos hacer direccionable cada byte, lo cual es ms
efectivo en costos. En la ms modernas computadoras, slo pueden direccionarse los
bytes.
Sin embargo, existen computadoras, que tienen cierto nmero de bits como tamao
direccionable. La celda es el conjunto ms pequeo de bits en la memoria que es
direccionable. La Figura 1.3 muestra la organizacin de la memoria desde este punto de
vista.

Figura 1.3: Organizacin Bsica de la Memoria Primaria
Hemos aprendido que en la memoria principal, son almacenadas los datos e
instrucciones del programa usuario. Adicionalmente, tambin son guardados los
resultados intermedios, los resultados finales a ser mostrados y los programas del
sistema operativo. La estructura que dicta la organizacin de la memoria principal desde
este punto de vista depende del sistema operativo usado. Una organizacin general de
la memoria principal se muestra en la Figura 1.4, indicando los diferentes elementos
para los cuales se asigna espacio en la memoria principal.

Figure 1.4: Diferentes elementos Guardados en la Memoria Principal
Luego estudiaremos en esta Unidad como la memoria primaria es organizada cuando
tratemos con la administracin de memoria en el sistema operativo.
Los siguientes son los dos tipos de memoria primaria.
Memoria de Slo Lectura (Read Only Memory ROM): La ROM es una
memoria semiconductora usada para guardar conjuntos de instrucciones
especiales y dato, que la computadora necesitar siempre cuando se inicie.
La ROM retiene su contenido an despus que se ha apagado.
Memoria de Acceso Aleatorio (Random Access Memory RAM): La
RAM guarda los programas / datos cuando la computadora esta encendida.
Cuando la CPU ejecuta un programa, las instrucciones son extradas de la
RAM y ejecutadas. La RAM es una memoria voltil y por ello la informacin
desaparece cuando la computadora es apagada.
Ahora procederemos a discutir los dispositivos de entrada.
2.6 Dispositivos de Entrada
Un dispositivo de entrada es el medio de comunicacin entre el usuario y la
computadora. Permite al usuario ingresar datos y comandos en la computadora.
En otras palabras, ayuda al usuario a colocar datos e instrucciones en la
memoria de la computadora.
Diferentes clases de dispositivos de entrada estn disponibles. Algunos de los
dispositivos de entrada comnmente usados son:
Teclado
Ratn
Ratn estacionario
Pantalla sensible al tacto
Digitalizador de Imgenes
Entrada de Voz a travs de micrfono
Joystick
Lectora de Reconocimiento de Caracteres con Tinta Magntica (MICR)
Lectoras de cdigo de barras.
Los dispositivos de entrada pueden categorizarse en dos tipos:
Dispositivos de entrada directa como teclado, joystick, o dispositivos de
puntero como ratn, lpiz ptico, pantalla sensible al tacto, y micrfono. Con
la ayuda de estos dispositivos, el usuario final puede ingresar directamente
datos en la computadora. Estos dispositivos por lo tanto permiten la
comunicacin directa humana-a-mquina.
Los otros tipos de dispositivos de entrada comprenden los discos flexibles,
cintas magnticas y discos compactos, los cuales graban / ingresan datos en
un medio (tal como un material magnetizado) que puede ser introducido en la
computadora.
2.7 Dispositivos de Salida
Un dispositivo de salida ayuda a mostrar la salida del programa ejecutado por el
usuario. Los dispositivos de salida trabajan en la misma forma que los dispositivos de
entrada, la nica diferencia que ellos convierten la salida de cdigo-mquina producida
por la computadora en una forma que el usuario final puede entender. En otras
palabras, son unidades de hardware que ayudan a la computadora a pasar informacin
al usuario.
As, los dispositivos de salida son tambin un medio de comunicacin entre la
computadora y el usuario. Pueden tomar data de la computadora y armar la informacin
en un formato amigable al usuario.
Los diferentes dispositivos de salida disponibles para su uso en un sistema de
computadora se listan a continuacin.
Unidad de Presentacin Visual (Visual Display Unit VDU)
Impresoras
Plotters
Dispositivos de Sonido
Dispositivos de Salida de Voz
Ahora vamos a discutir brevemente los dispositivos de almacenamiento secundario.
2.8 Dispositivos de Almacenamiento Secundario
Hemos aprendido que la memoria primaria en la forma de RAM es voltil. La ROM
guarda los contenidos an despus que se apaga, pero no es adecuada cuando se
generan resultados extensos en un programa que necesitan ser retenidos por un largo
tiempo. Por lo tanto, necesitamos otra clase de memoria para guardar los datos e
instrucciones en una forma ms permanente. Tales dispositivos son llamados
dispositivos de almacenamiento secundario que son tambin dispositivos de
almacenamiento auxiliar.
Los dispositivos de almacenamiento secundario se clasifican en dos tipos:
Dispositivos de Almacenamiento Magntico
Disco Duro
Cinta
Disco Flexible
Dispositivos de Almacenamiento ptico
CD-ROM (Compact Disk Read Only Memory)
DVD (Digital Video Disk)
A pesar de que existen muchas otras clases de dispositivos de almacenamiento
secundario disponibles en el mercado, stos son slo ligeramente diferentes de los
mencionados arriba.
Hemos discutido la organizacin de un sistema de computadora y los diferentes
componentes que constituyen el sistema. Ahora vamos a discutir como la CPU ejecuta
las instrucciones.
3. Ejecucin de Instrucciones por la CPU
Las instrucciones y la data a ser ejecutadas por la CPU son guardadas en la memoria
primaria. La CPU tiene que obtener estas instrucciones y ejecutarlas. Los diferentes
pasos involucrados en el proceso de ejecucin de una instruccin por la CPU son
ilustrados en la Figura 1.5.






Figura 1.5: Ciclo de Ejecucin de Instruccin de la CPU

Los pasos involucrados en la ejecucin de instrucciones por la CPU se explican en la
Figura 1.5. Una vez que se enciende, la CPU realiza el mismo conjunto de tareas de
manera cclica hasta que se apaga. Las tareas se muestran en la Figura 1.5 indicando
que los principales paso son 'obtener instruccin', 'decodificar instruccin' y 'ejecutar
instruccin'. Por lo tanto, este proceso tambin es llamado el ciclo obtener-decodificar-
ejecutar (fetch-decode-execute).
Note que hemos mostrado los pasos realizados por la CPU como un diagrama de flujo.
Sabemos que un diagrama de flujo es una representacin de un algoritmo. Por lo tanto,
lo que sea que la CPU haga para ejecutar instrucciones puede ser realizado tanto en el
hardware como en el software. Casi todas las CPUs tienen este ciclo construido en el
hardware. Sin embargo, cuando el software realiza tareas similares, es conocido como
un intrprete.
Hemos visto la organizacin de una CPU desde un punto de vista simplista donde
ejecuta un conjunto de instrucciones en forma secuencial, una a la vez. Un alto
rendimiento es posible en CPUs que son organizadas para proporcionar la ejecucin
paralela de instrucciones.
3.1 Ejecucin Paralela de Instrucciones
La ejecucin paralela de instrucciones implica que ms de una instruccin puede ser
ejecutada al mismo tiempo en el sistema de computadora. Las computadoras que son
capaces de ejecutar paralelamente instrucciones son llamadas procesadores paralelos.
Los procesadores paralelos se clasifican en tres categoras principales, como se
muestra en la Figura 1.6.

Figura 1.6: Clasificacin de Computadoras con Capacidad de Ejecucin Paralela de
Instrucciones
Los sistemas de computadora con la capacidad de ejecutar en paralelo instrucciones se
dividen en tres categoras principales:
Instruccin nica Dato nica (Single Instruction Single Data SISD)
La organizacin de Von Neumann
CPU con mltiples unidades funcionales
CPU con organizacin canalizada
Instruccin nica Dato Mltiple (Single Instruction Multiple Data SIMD)
Procesador Vectorial
Procesador Arreglo
Mltiples Instrucciones Datos Mltiples (Multiple Instruction Multiple Data
MIMD)
Sistemas multiprocesador con una sola memoria compartida
Sistemas multiprocesador, cada uno con su propia memoria local y
adems con una sola memoria compartida
Discutiremos brevemente cada una de estas organizaciones. Dado que ya hemos
discutido la arquitectura Von Neumann, empezaremos con las CPUs con mltiples
unidades funcionales.
3.2 CPU con Mltiples Unidades Funcionales
Esta organizacin es slo una pequea extensin de la mquina de Von Neumann,
como se muestra en la Figura 1.7.
Figura 1.7: Una CPU con Mltiples Unidades Funcionales
En vez de una sola unidad como en la mquina de Von Neumann, ALUs compuestos
llevan a cabo todas las operaciones aritmticas en esta organizacin. Podemos
organizar la CPU para tener mltiples unidades funcionales distintas, tales como
unidades SUMA, SUSTRACCIN, MULTIPLICACIN y DIVISIN. La Figura 1.7
muestra tres unidades SUMA, una unidad SUSTRACCIN, dos unidades
MULTIPLICACIN y una unidad DIVISIN. El nmero de unidades puede variar en los
diferentes sistemas de computadoras. Los sistemas de computadoras pueden tener
tambin unidades funcionales adicionales, como una unidad que calcula el SENO de
una cantidad.
Ahora vamos a entender como esta organizacin proporciona la ejecucin paralela de
instrucciones. La CPU obtiene una instruccin, la decodifica, encuentra que es una
instruccin SUMA, y la pasa a una de las unidades SUMA. Mientras sta est siendo
ejecutada la unidad de control puede obtener la siguiente instruccin, decodificarla, y
obtener los operandos. Si tambin es una instruccin SUMA, es pasada a la segunda
unidad SUMA para su ejecucin. Si slo hubiera una unidad SUMA, la segunda
instruccin tendra que esperar a que la primera instruccin sea completada. Cuando
hay mltiples unidades funcionales como en este caso, podemos tener al menos tres
instrucciones SUMA ejecutndose en paralelo.
En un caso ideal, podemos tener hasta siete instrucciones ejecutndose en paralelo
como se muestra en la Figura 1.7. Note que esta es slo una organizacin SISD y por
ello el grado de paralelismo que puede alcanzarse con esta organizacin es limitado.
Sin embargo, esta organizacin tiene mejor rendimiento que la organizacin de Von
Neumann.
3.3 CPU con Organizacin Canalizada (Pipelined Organization)
Esta organizacin emplea un enfoque completamente diferente. Considera la
instruccin en s misma como el punto de atencin y divide la instruccin en sus partes
constituyentes. La organizacin de la CPU tiene entonces una unidad especfica
realizando cada una de las tareas constituyentes como se muestra en la Figura 1.8.



Figura 1.8: CPU con Organizacin Canalizada (Pipelined Organization)
La CPU tiene una unidad de control, un ALU, registros de propsito especial, registros
de propsito general, y memoria cache. El elemento distintivo aqu es la canalizacin de
la instruccin, la cual comprende lo siguiente:
Unidad de bsqueda de instruccin
Unidad decodificadora de instruccin
Unidad de clculo de direccin de operando
Unidad de bsqueda de operando
Unidad de ejecucin de instruccin
Cmo se hace posible aqu la ejecucin paralela de instrucciones? Note que cada una
de las unidades en la lnea de trabajo (canalizacin) hace un trabajo especfico y
enfocado. Por ejemplo, la de bsqueda de instruccin slo hace un trabajo buscar la
siguiente instruccin apuntada por el PC. Cuando obtiene la instruccin, simplemente la
pasa a la siguiente unidad en la lnea de trabajo. Esta es la decodificadora de
instruccin. Habiendo hecho este trabajo, la unidad de bsqueda de instruccin no
espera hasta que la instruccin es ejecutada finalmente. Procede a buscar la siguiente
instruccin y la pasa a la unidad decodificadora de instruccin. Es posible que la unidad
decodificadora de instruccin an no haya completado la decodificacin de la
instruccin anterior. En tal caso, la unidad de bsqueda de instruccin espera hasta que
la siguiente unidad en la lnea de trabajo este libre para aceptar lo que le vaya a pasar.
Cada unidad individual en la lnea de trabajo trabaja de la misma manera trabaja
sobre su entrada, realiza la tarea especfica y pasa el resultado a la siguiente unidad en
la lnea de trabajo. Esta claro que en una situacin ideal, hasta cinco instrucciones
pueden estar en diferentes etapas de ejecucin al mismo tiempo.
3.4 Procesador Vectorial
Un procesador vectorial es un tipo SIMD de una mquina, esto es, trabaja con una
nica instruccin, pero mltiples flujos de datos. Vamos a considerar un escenario
donde una sola instruccin SUMA tiene que ser ejecutada y la misma instruccin SUMA
tiene que ser aplicada a dos grandes grupos de datos. Los dos grandes grupos de datos
pueden ser vistos como dos vectores. La CPU esta tan organizada que es capaz de
llevar a cabo instrucciones nicas sobre vectores mejor que sobre conjuntos nicos de
operandos. Esto es ilustrado en la Figura 1.9.Figura 1.9: Organizacin de un
Procesador Vectorial
La Figura 1.9 muestra que el procesador vectorial tiene una unidad de control, registros
de propsito especial, registros de propsito general, y memoria cach como una CPU
normal. No hay razn para decir que no puede tener un ALU convencional que trabaje
sobre operandos escalares normales. Aparte de stos, la CPU est organizada tal que
existen operandos vectoriales, un ALU vectorial que puede trabajar sobre operandos
vectoriales (en vez de operandos escalares) para producir un resultado vectorial. Es
normal para estos vectores que estn limitados a un tamao particular. Cmo ocurre la
ejecucin paralela de instrucciones aqu? Ocurre a travs de la capacidad del ALU
vectorial para trabajar con vectores de una sola vez, ms que con operandos escalares.
Algunas supercomputadoras emplean la organizacin de procesador vectorial.
3.5 Procesador Matricial (Array Processor)
El procesador matricial es tambin un tipo SIMD de organizacin. ste tambin trabaja
con una sola instruccin, pero mltiples flujos de datos. Un excelente ejemplo de tal tipo
de organizacin es la del ILLIAC IV. En esta organizacin, consideramos un nmero de
elementos individuales de clculo, donde cada elemento consiste de una CPU con su
propia memoria local organizada en la forma de un arreglo, una matriz o una grilla
cuadrada. Considere el ejemplo de elementos de clculo ordenados como un arreglo 4
x 4, como se muestra en la Figura 1.10.
Figura 1.10: Organizacin del Procesador Matricial
Uno de los elementos de clculo puede ser designado como la CPU principal de control.
Una unidad de control controla el trabajo total y la coordinacin de todos los elementos
de clculo en el arreglo. Usando una unidad de difusin de instruccin, la unidad de
control puede distribuir instrucciones a todos los elementos de clculo. Cada uno de los
elementos de clculo puede trabajar paralelamente en sus clculos debido a que tiene
su propia memoria local. Sin embargo, no todos los clculos pueden hacerse en
paralelo sin ninguna limitacin. Debe haber alguna sincronizacin entre los conjuntos de
operaciones que estn llevndose a cabo en cada uno de los procesadores. El
elementos de clculo designado como el elemento principal de control se encarga de
estas actividades y las de mantenimiento.
En esta organizacin, la forma en la que la ejecucin paralela de instrucciones se lleva
a cabo es bastante directa. Los procesadores matriciales son computadoras SIMD muy
poderosas cuando trabajan con problemas que involucran manipulaciones de matrices.
3.6 Sistemas Multiprocesadores con una nica Memoria Compartida
Esta organizacin pertenece al tipo MIMD, existen mltiples instrucciones y mltiples
flujos de datos siendo manejados en paralelo. Esta organizacin es ilustrada en la
Figura 1.11.

Figura 1.11: Sistema Multiprocesador con nica Memoria Compartida
Este es uno de los tipos ms bsicos de sistemas multiprocesadores. Cada CPU no
tiene su propia memoria, pero todas las CPUs tiene acceso a una nica memoria
primaria compartida a travs de un solo bus. En la Figura 1.11, vemos cinco CPUs
compartiendo una sola memoria primaria a travs de un solo bus de sistema. El bus
puede ser usado por slo una entidad a la vez.
Qu ocurre si CPU
1
y CPU
2
intentan usar el bus al mismo tiempo? Esto puede llevar a
una situacin llamada contencin de bus. Esta contencin tiene que ser resuelta, pero el
mecanismo de resolucin no es tan simple como decir, CPU
1
debe ceder su acceso
para dejar que CPU
2
lo tenga. Existen muchos mecanismos complejos de resolucin,
pero una discusin de estos mecanismos est fuera del alcance de este curso.
Similarmente, CPU
1
puede estar trabajando sobre una parte de los datos que es
requerida por CPU
2
tambin. Tales tipos de contencin y el problema de sincronizacin
de operaciones sobre los datos compartida tambin deben ser manejados.
Cuando una CPU accede a la nica memoria compartida, tiene acceso exclusivo al
nico bus. Mientras una CPU est haciendo uso del bus, los otros CPUs no pueden
acceder a la memoria (o an cualquiera de los dispositivos conectados al sistema) y
tienen que permanecer ociosos. La comunicacin que usa un solo bus de sistema casi
siempre tiende a hacer que los sistemas multiprocesadores de esta clase trabajen por
debajo de su potencial.
3.7 Sistema Multiprocesador con Memoria Local y nica Memoria
Compartida
Esta es slo una variacin de la organizacin descrita en la Figura 1.11. En esta
organizacin, muchas CPUs tienen su propia memoria local, y adems acceden a la
memoria compartida a travs de un solo bus de sistema. Esto se muestra en la Figura
1.12.
Figura 1.12: Sistema Multiprocesador con Memoria Local y Memoria Compartida
Los problemas discutidos con los multiprocesadores en la seccin anterior tambin se
aplican aqu. Sin embargo, con la adicin de memoria local, los programas y los datos,
que no necesitan ser compartidos, pueden ser colocados en la respectiva memoria local
de la CPU. Esto reduce la necesidad de acceder frecuentemente al nico bus de
sistema y por lo tanto reduce la ocurrencia del problema de contencin.
En ciertos sistemas multiprocesador, teniendo simplemente memoria local puede que no
desplace la carga del bus principal de sistema. En tales casos, la organizacin debe
considerar usar buses mltiples. De hecho, en ciertos sistemas multiprocesador
disponibles en el mercado, se usan buses mltiples.

Potrebbero piacerti anche