Sie sind auf Seite 1von 55

Arquitectura de computadoras

Cervantes Contreras Logan y Lpez Arcos Miguel ngel

ndice
Unidad 1
1.1

Arquitecturas de cmputo.....................................................................................3

Modelos de arquitecturas de cmputo........................................................................3

1.1.1 Arquitecturas clsicas..........................................................................................4


1.1.2 Arquitecturas Segmentadas..................................................................................4
1.1.3 Arquitecturas de multiprocesamiento...................................................................5
1.2

Anlisis de los componentes.......................................................................................6

Tarjeta madre (Motherboard)............................................................................................6


Fuente de alimentacin PSU (Power Supply Unit)............................................................7
Gabinete...........................................................................................................................7
1.2.1 CPU........................................................................................................................8
1.2.1.1 Arquitectura.....................................................................................................8
1.2.1.2 Tipos................................................................................................................9
1.2.1.3 Caractersticas...............................................................................................11
1.2.1.4 Funcionamiento.............................................................................................13
1.2.2 Memoria..............................................................................................................14
1.2.2.1 Conceptos bsicos del manejo de la memoria..............................................14
1.2.2.2 Memoria principal semiconductora................................................................14
1.2.2.3 Memoria cach..............................................................................................15
1.2.3 Manejo de la entrada y salida.............................................................................16
1.2.3.1 Mdulos de entrada y salida..........................................................................17
1.2.3.2 Entrada/Salida programada...........................................................................18
1.2.3.3 Entrada/Salida mediante interrupciones.......................................................18
1.2.3.4 Acceso directo a memoria (DMA)..................................................................20
1.2.3.5 Canales y procesadores de entrada y salida.................................................20
1.2.4 Buses...................................................................................................................21
1.2.4.1 Tipos de buses...............................................................................................22
1.2.4.2 Estructura de los buses.................................................................................22
1.2.4.3 Jerarquas de los buses..................................................................................23
1.2.5 Interrupciones.....................................................................................................23
Unidad 2

Estructura y funcionamiento del CPU..................................................................24

2.1

Organizacin del procesador.....................................................................................24

2.2

Estructura de registros..............................................................................................25
1

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
2.2.1 Registros visibles por el usuario..........................................................................25
2.2.2 Registros de control y de estados.......................................................................25
2.2.3 Ejemplos de organizacin de registros de CPU reales.........................................26
2.3

El ciclo de instruccin................................................................................................27

2.3.1 Ciclo Fetch-Decode-Execute................................................................................28


2.3.2 Segmentacin de instrucciones...........................................................................28
2.3.3 Conjunto de instrucciones: Caractersticas y funciones......................................29
2.3.4 Modos de direccionamiento y formatos...............................................................29
2.4

Casos de estudio de CPU reales................................................................................30

Unidad 3

Seleccin de componentes para el ensamblaje de equipos de cmputo............32

3.1

Chipset......................................................................................................................33

3.2

Aplicaciones..............................................................................................................34

3.3

Ambientes de servicio...............................................................................................35

Unidad 4

Procesamiento paralelo.......................................................................................35

4.1

Aspectos bsicos de la computacin paralela...........................................................35

4.2

Tipos de computacin paralela.................................................................................36

4.2.1 Taxonoma de arquitecturas paralelas.................................................................36


4.2.2 Arquitecturas de los computadores secuenciales...............................................37
4.2.2.1 Taxonoma de Flynn.......................................................................................38
4.2.2.2 Organizacin del espacio de direcciones de memoria...................................39
4.3

Sistemas de memoria compartida: multiprocesadores.............................................40

4.3.1 Redes de interconexin dinmicas o indirectas...................................................40


4.3.1.1 Redes de medio compartido..........................................................................41
4.3.1.2 Redes conmutadas........................................................................................41
4.3.2 Coherencia de cach...........................................................................................42
4.4

Sistemas de memoria distribuida. Multicomputadores Clsteres..............................42

4.4.1 Redes de interconexin esttica.........................................................................43


4.4.2 Clster.................................................................................................................44
4.4.3 Programacin de clsteres..................................................................................45
4.4.4 Consideraciones sobre el rendimiento de los clsteres.......................................45
4.5

Casos de estudio.......................................................................................................46

Bibliografa............................................................................................................................46

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

Unidad 1 Arquitecturas de
cmputo.
Antes de definir que es una arquitectura de cmputo habra que definir estos dos
conceptos:

Arquitectura: Arte y tcnica de disear, proyectar y construir cualquier estructura,


como lo son edificios, monumentos, parques y cualquier tipo de espacio.
Computadora: Mquina que es capaz de efectuar una secuencia de operaciones
lgicas y aritmticas mediante un programa, de tal manera, que se realice un
procesamiento sobre un conjunto de datos de entrada, obtenindose otro conjunto de
datos de salida. [1]

Si mezclamos estos dos conceptos podramos decir que una arquitectura de cmputo es el
anlisis de los componentes que cada computadora posee y si se conoce bien la
arquitectura de una computadora es posible determinar sus posibilidades de
procesamiento, as como tambin se pueden saber los lmites que tiene para realizar
ciertos procesos.
Adems un buen conocimiento de arquitectura de computadoras nos ayuda a disear y
construir mejores maquinas, con capacidades de procesamiento cada vez ms superiores
que nos pueden ayudar a resolver problemas complejos que el ser humano jams podra
resolver debido a la gran cantidad de operaciones que se requieren para encontrar la
solucin, muchos de estos problemas son complejos algoritmos iterativos que entre ms
iteraciones se hagan ms exacto es el resultado, y debido a que una computadora es capaz
de realizar millones de instrucciones por segundo son muy tiles para encontrar el
resultado exacto o el ms aproximado.

1.1

Modelos de arquitecturas de cmputo.

La arquitectura de computadoras es el diseo del hardware de las computadoras y abarca


todas las especificaciones del mismo, desde cuantas instrucciones puede ejecutar por
segundo, en cuantos operandos lo puede hacer, el manejo de memoria del sistema, as
como el direccionamiento de la misma. Tambin suele definirse como la forma de
seleccionar e interconectar componentes de hardware para crear computadoras segn los
requerimientos de funcionalidad, rendimiento y costo.
La arquitectura de una computadora explica la situacin de sus componentes y permite
determinar las posibilidades que tiene un sistema informtico con una determinada
configuracin para realizar las operaciones para las que se va a utilizar. La arquitectura
bsica de cualquier ordenador completo est formado por solo 5 componentes bsicos:
4
Ilustracin 1-1: Diagrama a bloques
de una computadora

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
Procesador (CPU), memoria RAM, disco duro (HDD),
dispositivos de entrada/salida y software. [2]
En la Ilustracin 1-1 se puede observar un diagrama
bsico de lo que es una computadora con los conceptos
anteriormente mencionados.

1.1.1 Arquitecturas

clsicas.

Este tipo de arquitecturas se desarrollaron en las


primeras computadoras electromecnicas que
funcionaban mediante tubos de vaco (Dispositivos
utilizados para amplificar, conmutar o modificar una seal
elctrica en un espacio vaco a muy baja presin).
Este tipo de arquitecturas an son usadas en
procesadores empotrados de gama baja y son la base de
la mayora de las arquitecturas modernas.
Entre las principales arquitecturas clsicas se encuentran:

Arquitectura Mauchly-Eckert (Von Neumann).


Arquitectura Harvard.

La primera computadora que existi se llam ENIAC por sus siglas en ingls Electronic
Numerical Integrator And Computer que significan computador e integrador numrico
electrnico, esta mquina utilizaba la arquitectura de Von Neumann, desde que se
desarroll esta computadora ya contaba con todos los elementos de una computadora
moderna, como son CPU, memoria RAM dispositivos E/S y un software, aunque en
cantidades mucho ms reducidas que las computadoras actuales. [3]

1.1.2

Arquitecturas Segmentadas.

Las arquitecturas segmentadas o con segmentacin del cauce (limite terico de una
instruccin por ciclo de reloj) buscan mejorar el desempeo realizando paralelamente
varias etapas del ciclo de instruccin al mismo tiempo. El procesador se divide en varias
unidades funcionales independientes y se dividen entre ellas el procesamiento de las
instrucciones.
Para poder aplicar la segmentacin es necesario cumplir con una serie de caractersticas:

Se debe poder descomponer en etapas.


Es necesario que las entradas de una etapa estn determinadas nicamente por las
salidas de la anterior.
5

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

Cada etapa debe poder ser realizada por un circuito especfico de forma ms rpida que
el conjunto del proceso.
Los tiempos de ejecucin de cada etapa deben ser
parecidos. [4]
En un procesador con segmentacin del cauce, cada una
de estas etapas se asigna a una unidad funcional
diferente y especfica para cada caso, las cuales
trabajaran de forma paralela en instrucciones diferentes.
Estas unidades se comunican por medio de una cola de
instrucciones en la que la unidad de bsqueda coloca los
cdigos de instruccin que ley para que la unidad de
ejecucin los tome de la cola y los ejecute. A este proceso
se le llama Pipelining (entubamiento) por su nombre en
Ilustracin 1-2: Proceso de pipeline.
ingls.
En la Ilustracin 1-2 se puede ver cmo funciona el proceso de pipeline que es una de las
caractersticas ms importantes de las arquitecturas segmentadas.

1.1.3

Arquitecturas de multiprocesamiento.

Cuando se desea incrementar el desempeo ms all de lo que permite la tcnica de


segmentacin del cauce (limite terico de una instruccin por ciclo de reloj), se requiere
utilizar ms de un procesador para la ejecucin del programa de aplicacin.
Las CPU de multiprocesamiento se clasifican de la siguiente manera:
SISO (Single Instruction, Single Operand) Computadoras independientes que pueden
procesar una sola instruccin con un solo operando.
SIMO (Single Instruction, Multiple Operand) Procesadores vectoriales que son capaces de
operar una sola instruccin pero con mltiples operandos (Esto es muy til si a todos los
operandos se les desea aplicar la misma operacin, por ejemplo para calcular el IVA de
los productos, en una sola instruccin se calcula el IVA de todos los productos porque
todos necesitan que se les aplique la misma operacin).
MISO (Multiple Instruction, Single Operand) No implementado debido a que se le
considera ineficiente y difcil de programar, es capaz de ejecutar muchas instrucciones
con un solo operando.
MIMO (Multiple Instruction, Multiple Operand) sistemas SMP, clsteres, estos son los
sistemas ms eficientes y complejos que son capaces de ejecutar mltiples
instrucciones con mltiples operandos.
Procesadores vectoriales.
Son computadoras pensadas para aplicar un mismo algoritmo numrico a una serie de
datos matriciales, en especial en la simulacin de sistemas fsicos complejos, tales como
simuladores para predecir el clima, explosiones atmicas, reacciones qumicas complejas,
6

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
etc., donde los datos son representados como grandes nmeros de datos en forma
matricial sobre los que se deben de aplicar el mismo algoritmo numrico.
En los sistemas SMP (Symmetric Multiprocessors), varios procesadores comparten la misma
memoria principal y perifricos de E/S, Normalmente conectados por un bus comn. Se
conocen como simtricos, ya que ningn procesador toma el papel de maestro y los dems
de esclavos, sino que todos tienen derechos similares en cuanto al acceso a la memoria y
perifricos y ambos son administrados por el sistema operativo.
Los clsteres son conjuntos de computadoras independientes conectadas en una red de
rea local o por un bis de interconexin y que trabajan cooperativamente para resolver un
problema. Es clave en su funcionamiento contar con un sistema operativo y programas de
aplicacin capaces de distribuir el trabajo entre las computadoras de la red.
En la Ilustracin 1-3 se puede observar el funcionamiento de un sistema de
multiprocesamiento bsico.

Ilustracin 1-3: Sistema de multiprocesamiento bsico.

Un sistema de multiprocesadores debe tener capacidad para gestionar la reparticin de


memoria entre varios procesadores, pero tambin debe distribuir la carga de trabajo.

1.2

Anlisis de los componentes.

El anlisis de componentes refiere a revisar todos los componentes de hardware con los
que cuenta una computadora para ver que tareas ser capaz de realizar esta mquina con
la configuracin de componentes que tiene, dentro de los componentes nos encontramos
con los siguientes que son considerados los ms importantes dentro de la arquitectura de
una computadora:

Tarjeta madre (Motherboard).


Es el componente clave de la computadora. Contiene un microprocesador, la memoria y
otros circuitos que son crticos para obtener una buena operacin de la PC. En otros tipos
de computadoras, la tarjeta madre o motherboard contiene toda o la mayora de los
circuitos que conecta la computadora con el mundo exterior.
Existen dos estndares o tipos de tarjetas madre: AT y ATX. [5].
Tarjeta madre AT (Advanced Technology).
Este formato est basado en el original del IBM PC-AT, pero de dimensiones ms
reducidas gracias a la mayor integracin en los componentes.
Hoy en da ya no es utilizada porque su contrincante ATX es mejor y ms popular.
7

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
Tarjeta madre ATX (Advanced Technology Extended).
El estndar ATX es el ms moderno y el que mayores ventajas ofrece. Permite que la
colocacin del CPU no moleste a las tarjetas de expansin, por largas que sean. Se
encuentra un solo conector de alimentacin, que adems no se puede montar al
revs. Integra en la placa base dispositivos como la tarjeta de video o la tarjeta de
sonido, pero sacando los conectores directamente de la placa, para que proporcione
un diseo ms compacto, y sin necesidad de perder ranuras de expansin. As
podemos tener integrados los conectores para teclado y ratn tipo PS/2, serie,
paralelo o USB que son habituales en estas placas, pero tambin para VGA,
altavoces, micrfono, etc.
En la Ilustracin 1-4 se observar una tarjeta madre ATX.
Los componentes bsicos de una tarjeta madre son
los siguientes:

BIOS (Basic Input / Output System).


Zcalos de conexin para la memoria RAM.
Zcalo de conexin para el procesador.
Ranuras de expansin o slots.
Chipset.
Puertos I/O (Puertos de entrada y salida).

Ilustracin 1-4: Tarjeta madre ATX GAF2A88XM-HD3

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

Fuente de alimentacin PSU (Power Supply Unit).


Se encarga de alimentar o suministrar energa a toda la PC,
tiene dos conectores que se insertan directamente a la
tarjeta principal, estos conectores son conocidos como P8 y
P9, los conectores que alimentan a los dispositivos se
conocen como conectores comunes.
En la Ilustracin 1-5 se puede ver los conectores comunes
que tiene una fuente de alimentacin.
En pocas palabras la fuente de alimentacin es la que le da
la energa a la computadora para funcionar correctamente,
Ilustracin 1-5: Conectores comunes.
dependiendo de las caractersticas de la computadora, la
fuente ser diferente. Es importante destacar que algunas computadoras demandan ms
energa que otras, es por esto que se debe elegir correctamente la fuente de alimentacin
ya que hay ciertas fuentes que no son capaces de alimentar una computadora muy
potente o tambin puede ser que se tenga una gran fuente de poder para una
computadora que no demanda muchos recursos y eso es algo completamente innecesario.
[5]

Gabinete.
Los gabinetes son cajones generalmente de metal y/o plstico
cuyo contenido no es visible pero que en su exterior se muestran
diferentes aditamentos que permiten acceder a las partes fsicas
que se encuentran dentro de ellos. [6].
Por su forma fsica, los gabinetes pueden ser horizontales
(conocidos como de escritorio o desktop) o verticales (conocidos
como torres, media torre y mini torres).
En la Ilustracin 1-6 se pueden apreciar los distintos tipos de
gabinetes verticales y el gabinete horizontal de las
computadoras.
El gabinete es un componente es necesario en todo
ordenador, es el que tiene incorporado dentro la mayora de
los componentes necesarios para el funcionamiento de este.

Ilustracin 1-6: Gabinetes


horizontales y verticales.

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
Cabe destacar que un buen gabinete es una excelente inversin, pues probablemente ser
el componente externo que ms durara en un ordenador, por eso no se debe escatimar
gastos a la hora de elegir un gabinete para la PC.
Es importante considerar que hay algunos gabinetes que cuentan con una fuente de poder
integrada y que la cantidad de dispositivos o ampliaciones que se pueden adicionar al
equipo depende de la misma. Un sntoma que presenta la computadora cuando la fuente
de poder no es adecuada para la cantidad de dispositivos instalados, es que se apaga sola
al estar trabajando, lo que significa que se est usando la capacidad mxima de la fuente
poder y se apaga por no poder suministrar energa a todos los dispositivos.

1.2.1

CPU.

El CPU o Unidad de Proceso Central (Central Process Unit) es una unidad que se encarga
del control del ordenador, procesando para ello instrucciones. Este est conformado por
tres subsistemas fundamentales: la ALU (Arithmetic Logic Unit), la CU (Control Unit) y el
Register Set o Register Bank. Para el cual existen distintas arquitecturas que se encargan
del posicionamiento de sus componentes y el cmo se comunican entre ellos.
El CPU es uno de los componentes ms importantes de una computadora, ya que se
encarga de hacer todas las instrucciones que se requieran y marca el gran parte el
rendimiento real de la computadora, cabe destacar que un CPU es de propsito general, ya
que se pueda usar para mltiples cosas pero no tiene una aplicacin en especfico.

1.2.1.1

Arquitectura.

Arquitectura Harvard hace referencia a una


organizacin de la computadora que utiliza
dispositivos de memorias fsicamente separadas
para las instrucciones y para los datos en la
Ilustracin 1-7 se puede apreciar cmo se divide el
uso de la memoria con su respectivo bus para que
se pueda acceder de forma independiente y
simultnea a los datos e instrucciones contenidos
Ilustracin 1-7: Organizacin de la
computadora digital segn la
en ella. Una de las ventajas de contar con buses
arquitectura Harvard
independientes es el que se puede tener distintos
contenidos en una misma direccin de memoria, sumando a esto que el ancho de
palabra de cada bus puede ser distinto.
Esta arquitectura suele utilizarse en microcontroladores y DSPs (procesadores
digitales de seales), usados en productos para procesamiento de audio y video as
como sistemas electrnicos de computo embebido. [7] Sin embargo, en el caso de
sistemas DSP se suele utilizar esta arquitectura localizando en memoria de programa
no slo instrucciones sino tambin datos. Esto permite acceder simultneamente a
10

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
los dos operandos necesarios en la operacin de multiplicacin. A esta variante se le
denomina arquitectura Harvard modificada. En la Ilustracin 1-8 se muestra su
estructura.

Ilustracin 1-8: Vista detallada de la arquitectura Harvard

Arquitectura Von Neumann es un modelo de organizacin en el que se utiliza el


mismo dispositivo de almacenamiento tanto para las instrucciones como para los
datos a diferencia de la arquitectura Harvard. En l se pueden identificar elementos
indispensables tales como la unidad aritmtico-lgica, la unidad de control, la
memoria, los dispositivos de entrada y salida as como el bus de datos.
El principal conflicto de este modelo es el tamao de la unidad de datos o
instrucciones el cual est fijado por el ancho de bus que comunica con el CPU, lo cual
har que el microprocesador sea ms lento en su respuesta, ya que no puede buscar
en memoria una nueva instruccin mientras no finalicen las transferencias de datos
de la instruccin anterior, en la Ilustracin 1-9 se puede observar un diagrama bsico
de la arquitectura Von Neumann.

Ilustracin 1-9: Vista detallada de la arquitectura Von Neumann

1.2.1.2

Tipos.

SoC (System on Chip): Cuando hablamos de mviles nos encontramos con una
larga lista de dispositivos como lo son consolas de videojuegos, telfonos, cmaras,
reproductores de msica, telfonos inteligentes, tabletas, prcticamente todo lo que
podamos llevar en nuestro bolsillo o en una pequea maleta. Todos estos dispositivos
requieren de una unidad lgica potente para llevar acabo su funcin de manera
rpida y eficiente, ah es donde entran los procesadores ARM.
En la Ilustracin 1-10 se puede observar un ejemplo de un SoC.
11

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
ARM es una empresa surgida de Acorn Computers Limited of Cambridge, England,
que dise el primer microcontrolador comercial de 32 bits de ancho de palabra
basado en arquitectura RISC, pero mejorndola con el tiempo en varios aspectos
como:
El tiempo de ejecucin Load-Store-mltiple que aumenta la densidad de cdigo,
ya que se usa en todas las funciones para meter y sacar registros de la pila,
adems hace que el tiempo de ejecucin dependa del nmero de registros
transferidos y si las direcciones son consecutivas.
El uso de un desplazador de bloques en una de las entradas de la ALU que
genera constantes de 32 bits a partir de un operando inmediato antes de entrar
a la ALU
Tiene dos modos de ejecucin como el Thumb que es un repertorio de
instrucciones de 16 bits que mejora la densidad de cdigo sobre un 30% y el
Jazelle que permite ejecutar bytecodes de Java directamente en el procesador
sin mquina virtual.
Adiciona instrucciones especficas para aplicaciones multimedia, DSP, FP,
seguridad, etc. Lo que mejora las prestaciones de ciertos algoritmos. [8]

Ilustracin 1-10: Microprocesador Nvidia Tegra con CPU ARM Cortex A9

Procesadores Mobile y Desktop: Los procesadores para porttiles estn


especialmente diseados para un menor consumo de energa y disipa una mayor
cantidad de energa por lo que no se calienta tanto. Aunque en esencia estos son en
algunos casos menos potentes que un procesador de computadora.
En la siguiente tabla se mostrara una comparacin entre dos procesadores de la
misma generacin y marca para ejemplificar de mejor manera sus diferencias.
Desktop
Intel Core i7-5960X Processor
Extreme Edition (20M Cach, up to
3.50 GHz)
Cach
20 MB

Mobile
Intel Core i7-5950HQ Processor
(6M Cach, up to 3.80 GHz)
Cach

6 MB
12

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
Conjunto de
Instrucciones

64 bit

Conjunto de
Instrucciones

64 bit

Cantidad de
ncleos

Cantidad de
ncleos

Cantidad de
subprocesos

16

Cantidad de
subprocesos

Frecuencia
bsica y mxima
del procesador

3 GHz 3.5 GHz

Frecuencia
bsica y mxima
del procesador

2.9 GHz 3.8 GHz

TDP (Potencia de
diseo trmico)

140 W

TDP (Potencia de
diseo trmico)

47 W

Tamao de
memoria mximo

64 GB

Tamao de
memoria mximo

32 GB

Tipo de memoria

DDR4
1333/1600/2133

Tipo de memoria

DDR3L 1600/1866
LPDDR3 1600/1866

Cantidad mxima
de canales de
memoria

Cantidad mxima
de canales de
memoria

Mximo de ancho 68 GB/s


de banda de
memoria

Mximo de ancho 25,6 GB/s


de banda de
memoria

[9]
Procesadores Server: Los procesadores para servidores estn diseados para un
ahorro mayor de energa dado que su importancia es mayor y su tiempo de trabajo
es continuo, ayudando as a alargar su tiempo de vida. Da un acceso rpido a los
archivos y programas para una recuperacin con uso intensivo de disco adems de
tener caractersticas nicas de seguridad para el tipo de trabajo para el que se
necesita.
A continuacin se muestra una tabla de caractersticas de un procesador para
servidores Intel de la familia Xeon Processor E3-1200 v3.
Servidor
Cach

Intel Xeon Processor E3-1286L v3 (8M Cach, 3.20 GHz)


8 MB
13

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
DMI2
Conjunto de instrucciones
Cantidad de ncleos
Cantidad de subprocesos
Frecuencia bsica del
procesador
Frecuencia turbo mxima
TDP (Potencia de diseo
trmico)
Tamao de memoria
mximo
Tipos de memoria
Cantidad mxima de
canales de memoria
Mximo de ancho de
banda de memoria

1.2.1.3

5 GT/s
64 bit
4
8
3.2 GHz
4 GHz
65 W
32 GB
DDR3 y DDR3L 1333/1600 a 1.5V
2
25,6 GB/s

Caractersticas.

Conjunto de instrucciones: Llamado tambin ISA por sus siglas en ingles Instruction
Set Architecture es una especificacin de un procesador que nos dice cules son las
instrucciones que puede entender y ejecutar, tales como instrucciones aritmticas,
lgicas, de transferencia de datos y bifurcacin as como los tipos de datos nativos,
registros e interrupciones que puede soportar este procesador. [10]
Existen 2 conjuntos de instrucciones fundamentales:
CISC (Complex Instruction Set Computer): Este soporta muchas instrucciones, una
gran cantidad de tipos de datos nativos, instrucciones ms complejas y mayor
compatibilidad, aunque sus compiladores en muchos casos no son muy eficientes
debido a la complejidad que representa para el programador entender todas las
instrucciones que soporta, es normalmente utilizada para computadoras personales.
[11]
RISC (Reduced Instruction Set Computer): Tiene un conjunto de instrucciones
reducido y simple, as como longitud de instruccin fija y muchos registros de
propsito general, por todo esto es una micro arquitectura ms simple y hay
compiladores ms simples y eficientes que los de CISC, este conjunto de
instrucciones se usa generalmente en servidores. [11]
Tamao de palabra: El tamao de palabra determina la longitud de los datos en bits
que puede manejar un procesador a la hora de hacer alguna instruccin (aritmtica,
lgica, de movimiento, etc.), por ejemplo si un CPU tiene un tamao de palabra de 32
bits significa que puede trabajar con datos de hasta 32 bits, el tamao de palabra de un
procesador viene determinado por el ancho de la Unidad lgica Aritmtica (ALU) del
CPU. [12]
Rendimiento: El rendimiento se refiere a la velocidad del procesador a la hora de
ejecutar cualquier tarea, siempre se busca que el tiempo que tarde sea menor, mientras
14

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

ms cortos sean los tiempos de espera se dice que tiene un mejor rendimiento, el
rendimiento de un CPU se mide a travs de Benchmarks (Pruebas de rendimiento) en los
que se mide la cantidad de instrucciones por segundo que es capaz de ejecutar un CPU.
Cabe destacar que el rendimiento de un CPU est determinado por varios factores tales
como su velocidad de reloj, numero de ncleos fiscos y reales, cantidad de cach de
nivel 1, 2 y 3, arquitectura, entre otras cosas.
Endianness: El endianness se refiere a la forma en la que el CPU guarda los datos que
ocupan ms un byte en memoria, existen 2 tipos fundamentales de endianness:
Little Endian: En este formato se leen primero los bits menos significativos y se
continua hacia los bits ms significativos.
Big Endian: En este formato se leen primero los bits ms significativos y se continua
hacia los bits menos significativos, esta forma de ordenar los bits es la ms natural
a la hora de querer leerlos.
Es importante conocer el endianness de un procesador para saber interpretar algn dato
que se maneje en el procesador, ya que no se leen igual los datos de un procesador big
endian que los de un procesador Little endian.
Numero de pines y forma de conectar a la tarjeta madre: El nmero de pines es
la cantidad de pines con los que cuenta un microprocesador y estos pines son los que
nos permiten conectarlo al zcalo de una tarjeta madre, ya que cada zcalo o socket es
diferente y tienen que coincidir el nmero de entradas en el zcalo con el nmero de
pines que tiene el microprocesador.
La cantidad de pines con los que cuenta un procesador es variable, depende del
fabricante y del tipo de procesador que se trate.
Existen varias maneras de acomodar los pines del CPU, las cuales son las siguientes:
PGA (Pin Grid Array): Es la forma ms antigua de conexin, consiste en que los
procesadores tienen unos pequeos pines que se conectan al socket.
LGA (Land Grid Array): En este tipo de conexin, los pines no estn en el
procesador, sino en el socket, y el procesador tiene las ranuras para conectarse con
los pines del socket.
BGA (Ball Grid Array): Este tipo de conexin consiste en que los pines del
procesador estn encapsuladas en pequeas bolitas de estao y los sockets solo
deben tener las ranuras para que entren estos encapsulados de pines. [13]
Disipacin trmica: Los procesadores se pueden clasificar de acuerdo a la cantidad
mxima de temperatura que pueden disipar, es decir, el peor escenario en el que se
puede encontrar trabajando el CPU, esto se le conoce como TDP (Thermal Design
Power).
Dependiendo del procesador la capacidad de disipacin trmica cambia, va
aproximadamente desde unos 40 Watts hasta unos 130 Watts.
Por ejemplo en un CPU de laptop, la capacidad de disipacin trmica no es mayor de 40
Watts, mientras que un CPU de escritorio puede tener una capacidad de disipacin de
unos 90 Watts y finalmente los procesadores de Servidores que pueden exceder los 130
Watts de disipacin trmica. [14]

15

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

Frecuencia de reloj: Es una magnitud medida en Hertz (normalmente giga Hertz o


mega Hertz) que indica la cantidad de ciclos por segundo que es capaz de realizar el
procesador, en cada ciclo de reloj se llevan a cabo ciertas operaciones. [15]
La frecuencia de reloj determina en parte la velocidad de un procesador, aunque
tambin se deben considerar el nmero de ncleos, cach y conjunto de instrucciones el
mismo para poder determinar el rendimiento real de un CPU.
Litografa: La litografa de un procesador se refiere al tamao de los transistores con
los que cuenta, mientras ms pequeos son estos transistores mayor es la velocidad del
procesador y se genera menos calor. Hoy en da la litografa ms comn para
procesadores comerciales es de 22nm.
Cach: Es una memoria con una capacidad muy baja pero con una gran velocidad que
tienen los procesadores en donde se alojan instrucciones de un programa para que este
se ejecute ms rpidamente, cuando un CPU lee una palabra en memoria cach lo hace
de una forma mucho ms rpida que si la hubiera ledo en memoria principal.
Se utilizan principalmente 3 niveles de cach actualmente.
Cach nivel 1 (L1): Este cach se ubica dentro del mismo CPU y tiene una velocidad
de acceso demasiado alta, aunque es el ms limitado en cuanto a capacidad, la
mayora de CPUs actuales tienen solo 32KB-256KB de cach de nivel 1.
Cach nivel 2 (L2): Este cach se ubica en un mdulo externo, tiene una velocidad
inferior a la del cach de nivel 1 pero una mayor capacidad (1MB-4MB
aproximadamente).
Cach nivel 3 (L3): Este tambin se ubica en un mdulo externo, es ms lento que el
de nivel 2 pero tiene una mayor capacidad, por ejemplo el Intel Core i7 5960x tiene
20MB de cach de nivel 3, este es uno de los mejores procesadores para uso
personal que existen actualmente en el mercado. [16]

1.2.1.4

Funcionamiento.

Para el correcto funcionamiento de un CPU entran en juego los siguientes componentes.


ALU (Unidad lgico aritmtica): Es un circuito digital que calcula las operaciones
aritmticas que realiza el procesador (Suma, resta, multiplicacin, divisin), as como
tambin las operaciones lgicas (AND, OR, NOT), en pocas palabras se encarga de los
clculos matemticos que debe realizar el CPU. [17]
Unidad de control: Es una parte fundamental del CPU ya que en esta unidad se
controlan y gobiernan todas y cada una de las operaciones que debe realizar el
procesador, prcticamente lo que hace es recopilar las instrucciones que llegan al CPU,
interpretarlas e identificar de qu tipo de instruccin se trata y controlar su ejecucin
de forma ordenada. [18]
Decodificador: Se encarga de extraer y traducir del registro de instrucciones del CPU el
cdigo que se est ejecutando actualmente para que el CPU lo entienda y pueda realizar
las instrucciones que pide ese cdigo de forma correcta, se puede decir que es un
traductor de un lenguaje de programacin a un lenguaje mquina. [18]
16

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

Registros de propsito general: Son registros que pueden servir para guardar datos
y direcciones de memoria, es por esto que son de propsito general, no tienen un uso
especfico, el nmero de este tipo de registros vara de acuerdo al procesador
Registros de propsito especfico: Son registros que almacenan informacin
especfica del sistema en un momento determinado, cada uno de estos registros
desempea una nica funcin en el CPU, como ejemplo de registros de propsito
especfico tenemos los siguientes:
PC (Program Counter): Este registro almacena el contador de programa para
controlar el flujo de las instrucciones que se ejecutan.
SP (Stack Pointer): Este registro llamado puntero de pila se encarga de mantener
la posicin actual de la pila de datos o llamadas que se requieren realizar en el
programa.

1.2.2

Memoria.

Cuando hablamos de la memoria nos referimos a todos los componentes de la


computadora capaces de almacenar una cantidad limitada de datos para posteriormente
utilizarlos o eliminarlos segn el usuario lo estipule. Existes diversos tipos de memoria y
sus objetivos varan una de otras pero estos se pueden clasificar en externos e internos.
Como ejemplo de memoria externa se encuentran las memorias flash, micro SD, CDs, DVD,
Blu-Ray, discos duros externos entre otros menos utilizados y como memoria interna
encontramos al CPU la memoria principal de la computadora a la que secundan la memoria
RAM, ROM y Cach. [19]

1.2.2.1

Conceptos bsicos del manejo de la memoria.

Para el manejo de la memoria es indispensable contar con un medio en el que se guardara


la informacin en sus diferentes estados almacenndola de forma indefinida o por un
periodo de tiempo establecido para su lectura y escritura.
No todos los datos o informacin ingresada en el ordenador cumplen las mismas funciones
por lo que se direccionan a distintos tipos de memoria como son:

Memoria del procesador: Una memoria veloz que se utiliza de forma temporal (CPU).
Memoria interna: Memoria principal (RAM, ROM).
Memoria externa: Memoria secundaria (Dispositivos externo).

La capacidad de estos circuitos se mide segn su ancho de palabra y su velocidad de


transferencia, lectura y escritura vara segn los ciclos de reloj a los que este trabaje y el
tamao de los buses. [20]
En la Ilustracin 1-11 se presenta el diagrama de conexin de la memoria con el CPU.

17

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel

Ilustracin 1-11: Diagrama de la conexin de buses del CPU a otros dispositivos de memoria.

1.2.2.2

Memoria principal semiconductora.

Es un dispositivo que por medio de circuitos almacena bits en forma de matrices asignando
a cada espacio un identificador por el cual el CPU podr acceder a l para su lectura.
La memoria principal se encuentra debajo de la memoria cach y tiene una mayor
capacidad que est pero su velocidad es inferior.
Se compone de:
Memoria de acceso aleatorio (RAM). Es una memoria de lectura y escritura voltil, lo que
significa que debe estar conectada siempre a la alimentacin por lo que los datos en ella
son temporales.
Memoria de solo lectura (ROM). Es una memoria de solo lectura en la que los datos
almacenados son permanentes o semipermanentes en esta se almacena el setup, BIOS
y el firmware.
En la Ilustracin 1-12 se da una vista ms detallada de las variaciones dentro de los tipos
de memoria.

Ilustracin 1-12: Tipos de memoria.

Este tipo de memoria almacena bits en forma


matricial por lo que dispone de una celda de
memoria a la que se transfieren los datos y
estos pasan por una serie de transductores
dentro de la celda que se encargan de
suministrar la energa suficiente para grabar o
leer la informacin en la matriz organizndola
de forma que cada fila se puede traducir como
una palabra.

18

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
En la Ilustracin 1-13 se muestra la estructura de la celda de memoria a la que llegan
instrucciones desde el CPU a su unidad de control que define si se efectuar una lectura o
escritura. En caso de ser una lectura mandar la direccin de memoria asignada al
Ilustracin 1-13: Estructura de la celda de
elemento a leer que ser decodificada y
memoria.
enseguida se leer cada celda respectiva a la fila
de dicha direccin retornndola a travs de los transductores. De ser una escritura se
manda la instruccin desde control al transductor para que los siguientes datos que entren
sean asignados a una direccin y sean llenadas las celdas correspondientes. [21].

1.2.2.3

Memoria cach.

La memoria cach es una memoria pequea pero muy


til dentro de la arquitectura de una computadora.
Ubicada entre el CPU y la memoria RAM como muestra
la Ilustracin 1-14 esta se encarga de agilizar la
transaccin de datos o instrucciones para una mejor
respuesta en el tiempo de la ejecucin gracias a su
diseo. La memoria cach contiene una memoria muy
pequea en comparacin de una memoria RAM pero se
encuentra por arriba de esta en velocidad de trabajo a
Ilustracin 1-14: Jerarqua de memoria.
diferencia del CPU que su memoria es mucho ms
pequea pero su velocidad es mayor. Por lo que la cach se llena de datos o instrucciones
enviados desde la memoria RAM para que el CPU pueda acceder a ellos al buscar dentro de
la cach, conservndolos temporalmente dado que son instrucciones o datos especficos
que es posible que vuelvan a ser ejecutados, como bucles.
La memoria cach se encuentra dividida en lneas de palabras que contienen las
direcciones especficas de una parte de los bloques principales y continuos de la memoria
RAM, si los datos o instrucciones pedidos por el CPU no se encuentran en cach, este
asigna un espacio y accede a la memoria RAM para encontrar dicha informacin y
guardarla para su consulta, una vez hecho esto es guardada para su posible re ejecucin.
[22]

Ilustracin 1-15: Ejemplo de la representacin de bloques palabras de la M.P. en la M. Cach

19

Arquitectura de computadoras
Cervantes Contreras Logan y Lpez Arcos Miguel ngel
En la Ilustracin 1-15 se observa un ejemplo simple de cmo la memoria cach hace
referencia en lneas de palabras a bloques en la memoria principal asignando a su etiqueta
el tamao en bytes del bloque, lo que segn la cantidad de espacio sern la cantidad de
bloques que este pueda contener, enseguida se encuentran los datos de cada una de las
lneas de palabra de la memoria principal agrupados en una sola, as el CPU podr
identificar rpidamente el dato requerido y con la etiqueta acceder al bloque en el que se
encuentra.

1.2.3

Manejo de la entrada y salida.

El manejo de entradas y salidas (E/S) o en ingls Input/output (I/O) es bsicamente lo que


permite a una computadora comunicarse con sus usuarios ya que esta no puede estar
formada solo por su CPU y memoria, as no tendra ninguna utilidad, por eso se invent el
sistema de entradas y salidas, para poder entender mejor esto hay que definir estos 2
conceptos.
Entrada: Una entrada es la obtencin de datos del exterior a travs de un dispositivo
de entrada de datos para almacenarlos en memoria y posteriormente llevar a cabo
ciertas operaciones dentro del programa.
Salida: Una salida es una serie de datos que han sido procesados por algn programa
que posteriormente se pueden leer a travs de algn dispositivo de salida de datos. [23]
En la Ilustracin 1-16 se puede observar el funcionamiento bsico del sistema de entradas
y salidas.

Ilustracin 1-16: Funcionamiento del sistema de entradas y salidas.

Entre los principales dispositivos de entrada y salida que existen nos encontramos con los
siguientes:
Dispositivos de entrada.
Dispositivos de salida.
Ratn.
Pantalla o monitor.
Teclado.
Altavoces.
Escner.
Auriculares.
Micrfono.
Impresora 3D.
Cmara.
Impresora.
Lpiz ptico.
20

1.2.3.1

Mdulos de entrada y salida.

Un mdulo de entrada y salida permite al procesador gestionar un dispositivo mediante


operaciones de lectura/escritura ocultando al usuario los detalles ms especficos del
dispositivo conectado como la temperatura, forma de acceder a los datos entre otros.
Entre las funciones bsicas de los mdulos de entrada y salida estn:

Conectarse con el procesador y la memoria va bus del sistema.


Conectar con los perifricos mediante conexiones de datos particularizadas.

Para lograr estas funciones se requiere que un mdulo E/S sea capaz de hacer las
siguientes tareas:

Comunicarse con el CPU: Esto es para que el modulo E/S pueda obtener datos desde
el procesador o memoria.
Comunicarse con los perifricos: Esto es indispensable para poder controlar los
perifricos y as poder lograr las tareas deseadas con ellos.
Control y temporizacin: Permite a los mdulos E/S acceder a recursos internos
compartidos del sistema para as poder controlar al sistema en algunos casos
especficos.
Buffer de datos: El buffer de datos es lo que permite a un mdulo E/S transferir los
datos desde el CPU a un perifrico, la velocidad de transferencia entre el perifrico y el
modulo E/S es mucho menor que la velocidad de transferencia desde el CPU al mdulo
E/S.
Deteccin de errores: Esto permite al mdulo E/S saber si hay algn fallo al momento
de hacer una transferencia de datos desde el CPU al perifrico, por ejemplo si una
impresora no tiene hojas se detectara ese error y el CPU no har la orden de impresin
hasta que se detecten las hojas. [24]

En la Ilustracin 1-17 se puede observar la estructura bsica de un mdulo E/S.

Ilustracin 1-17: Diagrama de un mdulo E/S.

Cuando el mdulo asume funciones de alto nivel, se denomina canal E/S o procesador E/S.
Los mdulos de bajo nivel, que requieren control detallado, se denominan controladores E/S
o controlador de perifricos.

1.2.3.2

Entrada/Salida programada.

En este tipo de manejo de entradas y salidas el CPU tiene el control absoluto de las
operaciones de comprobacin de estado, inicio y envi de instrucciones as como la
transferencia de datos, esto trae como ventaja una simplificacin de hardware para la
comunicacin del sistema con el perifrico pero malgasta tiempo de proceso al estar
constantemente preguntando si contiene datos disponibles u operaciones, ya que la
mayora de las veces se encontrara con respuestas negativas, a este problema se le llama
espera activa. A esto se le suma la posible lentitud de respuesta del programa ante la
llamada de un perifrico ya que este tendr que esperar hasta que se ejecute la instruccin
para acceder a l y puede que se pierda informacin.
A continuacin se muestra un ejemplo en pseudocdigo:

[25] [26]

1.2.3.3

Entrada/Salida mediante interrupciones.

El manejo de entradas y salidas mediante


interrupciones pretende eliminar la espera
activa del dispositivo, haciendo que se
interrumpa la tarea que este siendo
efectuada por el CPU en el momento en el
que este se encuentre preparado para el
intercambio, iniciando dicho intercambio y
volviendo a la tarea interrumpida una vez
haya sido concretado.
Tal como la E/S programada, la
interrupcin es dada por una instruccin
especial en el bus de control llamada
lnea de peticin de interrupcin
activada al momento en el que el
dispositivo indique que est preparado,
acto siguiente el CPU reconoce la
interrupcin utilizando su lnea de
Ilustracin 1-18: Esquema de funcionamiento E/S por
reconocimiento de interrupcin dando
acceso al dispositivo e iniciando la transaccin.
En la Ilustracin 1-18 se muestra un esquema de funcionamiento de la E/S por
interrupciones.

Deteccin de peticiones por mltiples lneas:


Debido a que varios controladores pueden activar la peticin de interrupcin
simultneamente el CPU podra tener problemas para identificar el orden en que estas
fueron mandadas por lo que una de las soluciones a esto se encuentra en colocar mltiples
lneas de peticin en el bus, creando una cola de peticiones ordenada dada la prioridad que
el CPU de a cada una. (Ilustracin 1-19)

Ilustracin 1-19: Diagrama de peticiones por mltiples lneas

Deteccin de peticiones por software:


Otra solucin consiste en la identificacin por software donde todos los controladores
comparte unas sola lnea de peticin de interrupciones por lo que el CPU al detectar una
peticin enva una rutina de servicio general de interrupciones a cada uno de los
controladores para identificar el que mando la peticin primero y as ejecutar el software
especfico para esa interrupcin. Esto consume mucho tiempo y la prioridad est dada por
el orden en que se llev a cabo la rutina. (Ilustracin 1-20)

Ilustracin 1-20: Diagrama de peticiones por software

Deteccin de peticiones por hardware:


Tambin conocido interrupciones encadenadas o conexin en cadena. Todos los mdulos se
conectan por una sola lnea de reconocimiento de interrupciones la cual se activa al recibir
una seal y un vector (en el que se encuentra la direccin del controlador) mandados por el
CPU al detectar una peticin, la seal se propaga por toda la lnea pasando por cada
mdulo hasta llegar al mdulo que mando la peticin. Esto evita el tener una rutina general
de servicio y la prioridad la da el orden en que se encuentran conectados los mdulos.
(Ilustracin 1-21)

Ilustracin 1-21: Diagrama de peticiones por hardware

Deteccin de peticiones por arbitraje de bus:


Se utiliza un controlador de interrupciones PIC (Programmable Interrupt Controller) lo que
aumenta las lneas de interrupcin disponibles y se encarga de gestionar el sistema de
peticiones. El controlador PIC establece prioridades especficas para cada controlador e/s
disponible y al momento de recibir una peticin e identificarla selecciona dicha prioridad
con su codificador de prioridad, activando o desactivando las peticiones que recibe

garantizando as el que solo un mdulo e/s ejecute la peticin en un determinado instante.


(Ilustracin 1-22) [26]

Ilustracin 1-22: Diagrama de peticiones por arbitraje de bus

1.2.3.4

Acceso directo a memoria (DMA).

La transferencia por acceso directo a memoria del ingls Direct Memory Access es una
forma muy eficiente de transferir datos desde un controlador o dispositivo a la memoria
principal, ya que esos datos no necesitan pasar antes por el procesador para que este los
transfiera a la memoria sino que el mismo controlador puede hacer operaciones de
lectura/escritura en la memoria.
Lo nico que se necesita para llevar a cabo las transferencias por acceso directo a memoria
es que tanto el procesador como el controlador estn en sincrona para que una vez que el
controlador haya terminado con una transferencia se le notifique al procesador, esta
sincronizacin se puede realizar por medio de interrupciones.
Para lograr que el controlador pueda tener acceso directo a memoria y realizar
transferencias, este necesita conocer la direccin de memoria involucrada en la
transferencia y sobre esta direccin de memoria hacer las operaciones de lectura/escritura
solicitadas, para hacer esto es necesario que el controlador tenga un registro de
direcciones (RADR).
Las transferencias por acceso directo a memoria se usan sobre todo cuando se quiere
transferir una gran cantidad de datos, para datos simples como la entrada por teclado no
tiene mucho sentido, y las ventajas que presenta este tipo de transferencia sobre la
transferencia por programa son las siguientes:

La transferencia es mucho ms rpida porque no se pierden ciclos para ejecutar


instrucciones que transfieren datos.

El procesador puede hacer otras operaciones mientras que el controlador est


transfiriendo los datos, esto conlleva a una mayor velocidad a la hora de usar la
computadora. [27]

1.2.3.5

Canales y procesadores de entrada y salida.

Los canales de entrada y salida son unos pequeos procesadores que estn especializados
en hacer nicamente operaciones de entradas y salidas (E/S) si a este se le agrega una
memoria propia se convierte en un procesador de entradas y salidas.
Para hacer una operacin E/S mediante los canales o procesadores de entrada y salida se
tienen que llevar a cabo los
siguientes pasos:

Indicar que canal de E/S ejecuta


un determinado programa.

El procesador debe definir un


rea de almacenamiento

temporal, una prioridad y establecer acciones en caso de algn error a la hora de hacer
las operaciones E/S.

Una vez finalizada la operacin


Ilustracin 1-23: Funcionamiento del canal de E/S
E/S el canal E/S deja los resultados en un rea de memoria, hace una interrupcin para
indicar que ha acabado y luego el procesador accede a esa rea de memoria donde
quedo el resultado almacenado. [28]
En la Ilustracin 1-23 se puede observar el funcionamiento bsico de un canal E/S.
Es importante resaltar que la tecnologa de los canales y procesadores de E/S fue
implementada desde los aos 80s, pero hoy en da ya est entrando en desuso debido a
que hay mejores alternativas como el acceso directo a memoria, llamado DMA que permite
a los perifricos hacer operaciones de lectura/escritura directamente en la memoria sin
necesidad de estos canales E/S de una manera mucho ms eficiente.

1.2.4

Buses.

Un BUS es un camino por el cual los componentes de una computadora se comunican


entre s o se comunican con otras computadoras, permitiendo as pasar los datos de un
componente a otro para que vayan siendo procesados, los caminos de los Buses estn
formados por cables donde se manda la informacin y tambin los hay por medio de
circuitos impresos que hacen el mismo trabajo que los cables pero permiten ahorrar
espacio fsico.
Un BUS permite la conexin de los
componentes de la computadora por medio
de un conjunto de lneas que transmiten
seales, donde cada una de estas seales
tiene una funcin especfica. Los 3 tipos de
lneas que constituyen a un BUS son: Lneas
de direcciones (pueden ser de memoria o
direcciones de E/S), lneas de datos y lneas
de control. [29]
En la Ilustracin 1-24 se puede observar el
funcionamiento bsico de un bus.

Ilustracin 1-24: Funcionamiento de un Bus.

Un Bus est tiene las siguientes caractersticas:

Ancho del Bus: Es el nmero de lneas elctricas de datos con las que cuenta el Bus.
Ancho de banda del Bus: Es la velocidad del Bus, indica la cantidad de informacin
que se puede transmitir a travs del bus por unidad de tiempo, un ejemplo sera 1
byte/s.
Protocolo del Bus: Son las reglas o estndares que tienen que seguir cada uno de los
dispositivos conectados al Bus para lograr una correcta comunicacin con este.
Maestro y esclavo.
Dispositivos maestros (Master): Es aquel dispositivo que es dueo del bus (lo
controla) y por lo tanto es capaz de iniciar transferencias.
Dispositivos esclavos (Slave): Es simplemente un dispositivo que est quieto y
espera que un dispositivo maestro le mande peticiones para poder entrar en accin.
Por ejemplo el CPU es un dispositivo maestro que controla a la memoria y a los
dispositivos de entrada y salida como dispositivos esclavos. Cabe mencionar que un

mismo dispositivo puede asumir el rol de maestro en determinado tipo de


transferencia y luego asumir el rol de esclavo en otro tipo de transferencia.

Ciclo de Bus: Es el tiempo necesario para realizar una transferencia de datos entre 2
dispositivos conectados al Bus. [30]
Lneas elctricas: Son lneas que permiten la comunicacin entre dispositivos
enviando seales que toman ciertos valores e indican una accin.

1.2.4.1

Tipos de buses.

Existen muchos tipos de Buses, pero los que ms destacan son los siguientes:

Bus en serie: En este tipo de Bus los datos son enviados bit a bit.
Bus en paralelo: En este tipo de bus los datos son enviados en bloques de n bits.
Bus multiplexado: Este tipo de bus se caracteriza porque se pueden utilizar las
mismas lneas que posee para enviar ms de un tipo de seal, por ejemplo, una misma
lnea puede enviar datos o direcciones de memoria.
Bus no multiplexado: Este tipo de bus es el contario al bus multiplexado, y se
caracteriza porque cada una de las lneas que lo componen solo puede enviar un tipo de
seal especfica (direcciones, datos o control).
Bus sncrono: En este tipo de bus todas las transferencias de seales que se realizan
estn controladas por una seal de reloj dentro del mismo bus, y adems cada
transferencia requiere un nmero entero de ciclos de reloj para llevarse a cabo.
Bus asncrono: Es aquel bus en el cual no existe una seal de reloj que controle la
comunicacin, si no que esta se realiza entre los distintos dispositivos mediante otro
mecanismo que emite alertas cada que se completa una transferencia de seales y por
lo tanto las distintas seales no llegan al mismo momento como pasa en el bus sncrono.
[30]

1.2.4.2

Estructura de los buses.

En la Ilustracin 1-25 se puede


observar la estructura bsica de un
bus, las lneas son los caminos
mediante los cuales los
componentes se comunican entre s,
dichas lneas son elctricas y
pueden transferir 3 tipos de seales:
Lneas/bus de datos: Sirven para
enviar datos (nmeros, letras) entre
los dispositivos que estn asociados
al bus.
Lneas/bus de direcciones: Sirven
para enviar solo las direcciones de
memoria de los datos a los que se
desee acceder.
Lneas/bus de control: Estas
ltimas sirven para que los
Ilustracin 1-25: Estructura bsica de un Bus
dispositivos maestros del Bus
puedan controlar a los dispositivos esclavos e iniciar as una transferencia de datos.

En la Ilustracin 1-25 tambin se observa que el CPU a travs de las lneas de control
manipula tanto a la memoria como a los mdulos E/S, y cmo la memoria enva
direcciones al CPU a travs de las lneas de direcciones mientras que los mdulos E/S
envan datos al CPU a travs de lneas de datos. [31]

1.2.4.3

Jerarquas de los buses.

Antiguamente solo exista un bus principal que conectaba todo llamado bus de sistema o
back place. El solo tener un bus para enlazar todos los dispositivos conectados disminua
en gran manera su rendimiento ya que cada dispositivo que peda acceso creaba un
retardo al proceso actual por sus diferencias en velocidades.
Con el tiempo y la necesidad se adaptaron ms buses a las arquitecturas, como es el bus
local el cual asla la conexin entre la memoria cach y el procesador de los mdulos E/S
por lo que este es ms pequeo y de mayor velocidad, y los buses de expansin, un bus
exclusivo para las operaciones entre el procesador y cada uno los mdulos de E/S lo que
permite que el procesador pueda realizar transacciones entre ellos y al mismo tiempo
acceder a la cach. Cada uno de estos buses es independiente y contiene especificaciones
exactas para cada tipo de dispositivo. En la Ilustracin 1-26 se explica de manera detallada
el rol de cada bus dentro de la arquitectura. [32]

Ilustracin 1-26: Diagrama de Jerarqua de buses

1.2.5

Interrupciones.

Una peticin de interrupcin es una seal que genera un hardware o software hacia el
procesador para que este interrumpa el proceso actual y lo atienda de manera inmediata.
Cuando el procesador detecta una peticin manda un controlador de interrupcin que
ejecutara el programa o instruccin necesaria.
Estos programas o instrucciones guardan sus direcciones de inicio en una tabla de 1024
bytes llamada tabla de vectores de interrupcin y es alojada dentro de la memoria
principal al inicio del sistema, a estas rutinas se les llama Servicio del BIOS.
Las interrupciones pueden ser aceptadas o ignoradas por el procesador. Cuando se recibe
una seal de interrupcin y es aceptada, el procesador enva una seal para que el PIC
coloque en el bus de datos un byte con el nmero de interrupcin para as encontrar y
ejecutar el servicio para esa interrupcin. [33]

Estructura y
funcionamiento del CPU.
1.2.5.1

La Unidad de Procesamiento (CPU) controla el funcionamiento del computador y lleva a


cabo sus funciones de procesamiento de datos.
Un procesador, incluye tanto registros visibles por el usuario como registros de
control/estado. Los registros visibles por el usuario pueden ser de uso general o tener una
utilidad especial, mientras que los registros de control y estado se usan para controlar el
funcionamiento del procesador, un claro ejemplo es el contador de programa.
Lleva a cabo una gran variedad de: clculos, comparaciones numricas y transferencias de
datos como respuesta a las peticiones de los programas que estn siendo ejecutados en
memoria.
El CPU controla las operaciones bsicas del ordenador enviando y recibiendo seales de
control, direcciones de memoria y datos de un lugar a otro de la computadora a travs de
un grupo de canales llamados BUS.

1.3

Organizacin del procesador.

Los elementos del procesador se organizan de acuerdo a las funciones que desempean
pero todos se encuentran conectados entres si por un conjunto de lneas (Buses). Dentro de
la arquitectura se puede ver separado en dos partes esenciales, la ruta de datos que son
todos los elementos por los que los datos se mueven, como la ALU, los registros de
propsito general, los registros de memoria y los registros adicionales. Y la unidad de
control que es la que coordina y manda las instrucciones necesarias para el correcto
funcionamiento de los dems elementos.
La unidad de control contiene:

Registro contador de programa que almacena la direccin en memoria de las


instrucciones a ejecutar.

Registro de instruccin que almacena la instruccin a ejecutar.

Decodificador de instrucciones que genera el valor de las seales a enviar para la


ejecucin de cada instruccin.

Reloj que marca el ritmo en que se ejecutan las instrucciones.


En la siguiente Ilustracin 2-27 se muestra el recorrido de los datos por los diferentes
elementos del procesador. [34] [35]

Ilustracin 2-27: Organizacin del procesador

1.4

Estructura de registros.

El registro de una computadora est organizado en una estructura jerrquica compuesta


por rboles y subrboles que cuentan con sus respectivas claves, subclaves y entradas.
Los registros son extremadamente importantes ya que se utilizan para controlar las
instrucciones en ejecucin, manejar las direcciones de memoria e infinidad de cosas que
ayudan en el funcionamiento de la computadora, el tamao y contenido del registro
depende en gran parte del CPU aunque tambin influyen considerablemente los
dispositivos, programas, y servicios instalados en la computadora, es por esto que el
registro vara considerablemente de un equipo a otro.
En el registro cada clave puede contener muchas subclaves y estas a su vez contienen ms
subclaves en las que se almacenan las opciones de configuracin en forma de valores
numricos que son los que finalmente definen la configuracin del CPU.
Es muy importante destacar que la mayor parte de la informacin del registro se almacena
en la memoria fsica de la computadora y se considera permanente, es decir, no cambia
jams a menos que el usuario la modifique, sin embargo hay algunos datos del registro
almacenados en claves voltiles que se sobrescriben cada vez que se inicia el sistema
operativo. [36]

1.4.1

Registros visibles por el usuario.

Los registros visibles por el usuario son aquellos que pueden ser referenciados por el
lenguaje mquina, que adems estn disponibles para todas las aplicaciones y programas
almacenados en el sistema, estos registros se encuentran almacenados dentro del mismo
CPU.
Existen 2 tipos principales de registros visibles para el usuario:

Registros de datos: Son aquellos registros en los que se encuentra almacenada la


informacin que le interesa al usuario (Como nmeros, letras, palabras, etc.) y adems
son manipulables a bajo nivel.
Registros de direcciones: Son aquellos registros en los que estn almacenadas las
direcciones de memoria de los datos a los que se desea acceder. Dentro de los ms
importantes registros de direcciones destacan los siguientes 3:
ndice (Index): Funciona similar al ndice de un libro, para acceder a cada direccin
de memoria primero se organizan de tal forma que a un valor base se le va sumando

de uno en uno para obtener la siguiente direccin de memoria donde est el


siguiente dato que nos interesa.
Puntero de segmento (Segment Pointer): Este registro se emplea cuando la
memoria est dividida en segmentos, donde cada uno de estos se referencia por una
direccin de memoria y los punteros de segmento apuntan a cada direccin de
memoria de los segmentos.
Puntero a la pila (Stack Pointer): Este registr es un puntero que apunta a la
cima de la pila. [36] [37]

1.4.2

Registros de control y de estados.

Este tipo de registros no son visibles por el usuario (excepto cuando se obtienen por medio
de instrucciones mquina que ayudan a visualizarlos) y son muy importantes ya que son
los registros del procesador que se emplean para controlar su funcionamiento.
Dependiendo del CPU que se est tratando tendrn diferentes registros de control y
estados, pero cabe destacar que los registros ms importantes de este tipo que se utilizan
para la ejecucin de una instruccin son los siguientes:

Program Counter (Contador de programa) o PC: Este registro solo contiene la


direccin de memoria de la instruccin que se est ejecutando.
Instruction Register (Registro de instruccin) o IR: Este registro contiene la
direccin de la instruccin captada ms recientemente.
Memory Address Register (Registro de direccin de memoria) o MAR: Este
registro simplemente contiene la direccin de una de las posiciones que contiene la
memoria.
Memory Buffer Register (Registro intermedio de memoria) o MBR: Este registro
puede contener 2 cosas, La palabra de datos leda ms recientemente o la palabra de
datos que se debe escribir en memoria.

Es muy importante mencionar que no todos los procesadores tienen los registros MAR y
MBR que son necesarios para la entrada y salida de datos a travs del bus, en caso de que
el procesador no contenga estos registros es necesario algn mecanismo que permita el
almacenamiento intermedio para la entrada y salida de datos a travs del bus.
Cada que se lleva a cabo una instruccin el procesador actualiza el registro PC (Contador
de programa) de modo que este registro siempre apunta a la siguiente instruccin a
ejecutar. Otra forma de alterar el contenido del registro PC es por medio de una bifurcacin
o salto que har que PC apunte a la instruccin donde lo lleve el salto. Todas las
instrucciones que se captan se cargan en el IR (Registro de instruccin) donde se analizan
tanto el cdigo de operacin como los campos de operando.
Gracias a los registros MAR (Registro de direccin de memoria) y MBR (Registro intermedio
de memoria) se intercambian datos con la memoria, por medio de la conexin directa del
registro MAR al bus de direcciones y el registro MBR al bus de datos.
Todos los registros mencionados anteriormente se utilizan para la transferencia de datos
entre el procesador y la memoria principal, pero esos datos tienen que ser procesados, ya
que por s solos no dicen nada, aqu entra en juego la unidad lgico aritmtica (ALU) que es
la parte del procesador que se encarga de trabajar con los datos que se obtienen de los
registros.
La unidad lgico aritmtica tiene acceso directo al registro MBR y a los registros visibles por
el usuario para poder realizar todas las operaciones de manera ms rpida y sin esperar
tanto tiempo a que se le enven los datos que debe procesar. [36]

1.4.3

Ejemplos de organizacin de registros de


CPU reales.

Para ejemplificar la evolucin de la organizacin de los registros en las arquitecturas de los


CPU se toman en comparacin dos microprocesadores contemporneos. La forma en que
definieron el manejo de sus registros en sus inicios y su evolucin. (Motorola MC68000,
Intel 8086, Intel Pentium 2 80386 que se observan en la Ilustracin 2-28) [38] [39]

Ilustracin 2-28: Comparacin entre Motorola MC68000 e Intel 8086

Motorola MC6800:
Sus registros estaban divididos en 8 de datos y 9 de direccin, con un tamao de 32
bits.
Permita operacin de 8,16 y 32 bits.
A7 y A7 son punteros de pila para el sistema operativo y el usuario.
Contaba con un contador de 32 bits y un registro d estado de 16 bits.
Sin registros de uso especial.
Intel 8086:

Registros de uso especial y general.


4 registros de datos de 16 bits, direccionables.
Los registros de segmentos son punteros para segmentos de datos, cdigo y pila.
Registros de ndice son desplazamiento dentro de cada segmento.

Intel Pentium II 80386:


Aumenta los datos a 32 bits, direccionables.

1.5

El ciclo de instruccin.

Son las acciones que realiza la unidad de control del CPU para la ejecucin de una
instruccin para un programa almacenado en memoria y consta de varias unidades ms
pequeas:

Ciclo de fetch.
Ciclo indirecto.

Ciclo de ejecucin.
Ciclo de interrupcin

Un ciclo de instruccin tambin puede explicarse en tres sub-ciclos:


Captacin: llevar la siguiente instruccin de la memoria al procesador.
Ejecucin: interpretar el cdigo de operacin y llevar a cabo la operacin
indicada.
Interrupcin: si las interrupciones estn habilitadas y ha ocurrido una
interrupcin, guardar el estado del proceso actual y atender la interrupcin.
En la Ilustracin 2-29 se muestra un ciclo de instruccin en el que al ser captado se analiza
para conocer si contiene un direccionamiento indirecto, de ser as los operandos necesarios
para su ejecucin son captados y se dispone a ejecutar, mandando al finalizar una
interrupcin para captar la siguiente instruccin. [40]

Ilustracin 2-29: Ciclo de instruccin

1.5.1

Ciclo Fetch-Decode-Execute.

La unidad de control maneja una serie de seales de


control interno (en el CPU) y externo (en los mdulos de
e/s), que habilitan los operandos de cada uno de los
pasos del ciclo de instruccin para que lleven a cabo sus
funciones. Tomando como principales pero no esenciales
los siguientes pasos:
Fetch: En Este paso se lee la instruccin inmediata
en memoria para su ejecucin.
Decode: Aqu, la instruccin leda en fetch es
convertida a binario para determinar los operandos
necesarios para la ejecucin de la instruccin as
como las operaciones y la direccin donde se
guardaran los resultados.
Read: Accede a memoria para extraer los
operandos seleccionados en el paso de decode.
Execute: La ALU ejecuta la instruccin sobre los
Ilustracin 2-30: Operando en
operandos.
memoria del ciclo de instruccin
Write: Si la instruccin contiene un espacio de
memoria indicado para el guardado de sus resultados este paso los escribe dentro de
este.
En la Ilustracin 2-30 se puede apreciar la operacin en memoria del ciclo de instruccin.
[41] [42]

1.5.2

Segmentacin de instrucciones.

La segmentacin de las instrucciones consiste en dividir a cada una de estas para que su
ejecucin sea ms eficiente y se vea reducido el tiempo que tardan en ejecutarse, adems
permite que se ejecuten instrucciones en paralelo, es decir, sin que se acabe de ejecutar
una instruccin puede iniciar a ejecutarse la siguiente instruccin.
Para segmentar las instrucciones se lleva a cabo el siguiente proceso:

Bsqueda: Aqu se accede a la memoria para obtener la instruccin y se incrementa el


Contador de programa (PC).
Decodificacin y bsqueda de operandos: En esta etapa de decodifica la instruccin
y se accede a los registros para obtener los operandos de la instruccin y finalmente se
calcula el valor de cada uno de estos operandos con el signo extendido.
Ejecucin: En esta etapa se define qu es lo que se va a hacer con la instruccin, si es
una instruccin de proceso, se ejecuta en la ALU, si es un acceso a memoria se calcula
la direccin buscada y se accede a ella y si es un salto se calcula el destino y se
almacena el nuevo contador de programa al que lleva el salto.

Las ventajas de segmentar las instrucciones son las siguientes:

Mejora el rendimiento.
El modelo de programacin no cambia.

Se hace a nivel de hardware, esto es mejor que hacerlo a nivel de software.

Las desventajas de la segmentacin de instrucciones son las siguientes:

Afecta al compilador ya que al hacer esto a veces no reacciona bien.

El control se vuelve ms complejo. [43]

1.5.3

Conjunto de instrucciones: Caractersticas y


funciones.

Los conjuntos de instrucciones (Instruction Set) son todas las operaciones que puede
realizar una maquina por defecto, los ms utilizados son RISC (Reduced Instruction Set
Computing) y CISC (Complex Instruction Set Computing) el primero se caracteriza porque
solo es capaz de realizar muy pocas instrucciones en comparacin con el segundo que es
capaz de realizar muchas ms instrucciones. Entre las instrucciones ms importantes que
definen el funcionamiento de toda mquina estn:

Instrucciones aritmticas: Son operaciones matemticas tales como sumas, restas o


multiplicaciones.
Instrucciones lgicas: Son operadores lgicos como (OR, AND, NOT)
Instrucciones de entrada y salida: Estas sirven para obtener datos de entrada o
para mandar datos de salida.
Instrucciones de transferencia de datos: Sirven para transferir datos de la memoria
a los registros o viceversa, as como tambin transferir datos a otros perifricos.
Instrucciones para el control de flujo del programa: Sirven para poder utilizar
ciclos en el programa, procedimientos o saltos que ayudan con el control de flujo del
programa.

Caractersticas del conjunto de instrucciones.


El conjunto de instrucciones de toda mquina debe ser completo, es decir, con las
instrucciones que tiene se puede construir cualquier programa y se gasta una cantidad de
memoria razonable para lograrlo y se emplea un tiempo moderado, mientras menos
instrucciones se requieran es mejor, por eso debe estar completo el conjunto de
instrucciones.
Otra caracterstica que tienen los conjuntos de instrucciones es que deben ser eficientes
para que las funciones ms imprescindibles se puedan realizar utilizando muy pocas
instrucciones.
Adems el conjunto de instrucciones debe ser regular o simtrico, en pocas palabras esto
quiere decir que cada instruccin tiene su instruccin contraria que revierte los cambios
que se hagan con la primera, por ejemplo si hay una instruccin de corrimiento a la
izquierda hay otra instruccin que hace corrimientos a la derecha.
Otra caracterstica muy importante es que se le debe exigir a una maquina nueva que su
conjunto de instrucciones sea compatible con modelos anteriores. [44]

1.5.4

Modos de direccionamiento y formatos.

Los modos de direccionamiento de un procesador son las distintas formas en las que se
puede acceder a la informacin contenida en un operando, gracias a los modos de
direccionamiento se puede localizar la informacin del operando en la memoria sin
necesidad de tener que usar como tal al mismo operado.

Los modos de direccionamiento son extremadamente importantes ya que determinan en


gran parte la potencia de una maquina debido a que con el uso de estos se puede reducir
en gran parte la carga de trabajo que requiere cada instruccin.
Los modos de direccionamiento se utilizan para lo siguiente:

Reducir el nmero de bits del campo del operando: Esto quiere decir que con solo
la direccin del operando se puede acceder a l, reduciendo el nmero de bits que
ocupa el operando en la instruccin.
Dar versatilidad: Gracias a los modos de direccionamiento se proporcionan facilidades
para manejar estructuras de datos complejas como vectores, matrices, listas, etc.
utilizando ndices o direcciones indirectas.

Dentro de los modos de direccionamiento ms comunes, tenemos los siguientes:

Direccionamiento implcito o inherente: Aqu el operando se especfica en la misma


definicin de la instruccin, los tipos de operandos para este modo de direccionamiento
pueden ser registros u operandos en la pila.
Direccionamiento inmediato o literal: En este modo es el mismo operando el que
est presente en la instruccin y no su direccin, y es til para inicializar registros o
palabras de memoria que tendrn valor constante en todo el programa.
Direccionamiento directo por registro: En este modo el operando est contenido en
un registro, por lo que se accede a la direccin del registro para encontrar el operando,
como el acceso a registros es muy rpido, esto mejora la velocidad de ejecucin, este
tipo de direccionamiento se deber usar para valores que cambian constantemente
como los ndices de un arreglo.
Direccionamiento directo: En este modo de direccionamiento el campo del operando
es su direccin de memoria efectiva o identidad donde estn contenidos los datos del
operando.
Direccionamiento indirecto: En este modo de direccionamiento indica la localizacin
de la direccin de memoria efectiva del operando, se utiliza normalmente cuando se
trabaja con apuntadores.
Direccionamiento relativo: En este modo de direccionamiento se concentran las
direcciones de memoria en una parte de la memoria de modo que para acceder a una
direccin de memoria de esa parte no es necesario utilizar toda la direccin de memoria,
basta con indicar la ltima parte de la direccin de memoria que contiene.
Direccionamiento por base y desplazamiento: Es un modo de direccionamiento
relativo en el que para acceder a la direccin efectiva del operando, primero se calculara
la misma sumando el contenido del registro base con el campo de operando.
Direccionamiento indexado: En este modo de direccionamiento la direccin del
operando se calcula sumando un registro del CPU al campo de operando, siendo este
registro uno muy especfico que se llama registro ndice.
Direccionamiento autoincremental o postincremental: En este modo de
direccionamiento la direccin del operando se encuentra en un registro y este es
incrementado despus de acceder al mismo. Este modo es muy til para trabajar con
matrices ya que las direcciones de los datos que forman las matrices, solo necesitan
incrementarse para acceder a datos posteriores.
Direccionamiento autodecremental o predecremental: En este modo de
direccionamiento la direccin del operando se encuentra en un registro y este es
decrementado despus de acceder al mismo. Este modo es muy til para trabajar con
matrices ya que las direcciones de los datos que forman las matrices, solo necesitan
decrementarse para acceder a datos anteriores de la matriz. [45]

1.6

Casos de estudio de CPU reales.

En los casos de estudios de CPU reales se muestra una comparacin entre el MSP430g2553
y el Tiva TM4C123G ambos de la compaa Texas Instruments.
MSP430.

Opera con voltajes entre 1.8V a 3.6V con velocidades desde 0Hz a 25MHz.
Su memoria de programa oscila entre 512 Bytes y 256 Kbyte.
Est diseado entorno a un CPU de 16 bits con arquitectura Von Newman por lo que la
RAM y la ROM se encuentran en el mismo lugar.
No cuenta con buses externos por lo que no hay operaciones en modo
microcomputadora, solo de micro controlador.
Es del tipo Procesador de seales mezcladas.
Su tipo de memoria es flash de valor lineal de 16Kb.
Su velocidad mxima es de 16MHz.
Memoria SRAM de 512B.
Contiene conjunto de instrucciones RISC ortogonal.
27 instrucciones implementadas en hardware y 27 emuladas usando CG1 y CG2 con 7
modos de direccionamiento
Arquitectura ortogonal: todas las instrucciones se ejecutan en todos los modos de
direccionamiento.
Acceso total a los registros, incluyendo al Program Counter, Status Register, y Stack
Pointer Operaciones entre registros de un ciclo.
Registros de 16 bits, que reducen accesos a memoria, Bus de direccin de 16 bits, con
acceso y salto a todo el rango de memoria.
Generador de constantes que provee 6 de las constantes ms usadas.
Transferencia directa entre memoria sin registros de respaldo intermedios Formatos de
instruccin de Byte y Word. [45]

Ilustracin 31 Conjunto de instrucciones del MSP430g2553

Tiva TM4C123G.

CPU ARM Cortex M4 de 32 bit.


Instrucciones de 16 y 32 bit.
Frecuencia de reloj de 80MHz.
Memoria flash de 256 Kbyte con ciclo simple de 40MHz.
SRAM de 32Kbyte de ciclo simple.
EEPROM de 2Kbyte de 32 bloques de 16 palabras.
32 canales DMA con tamao de datos de 8, 16 y 32 bits. [45]

Seleccin de
componentes para el
ensamblaje de equipos de
cmputo.
1.6.1.1

El ensamblar una computadora nos da la facilidad de satisfacer necesidades segn


nuestras posibilidades econmicas, dado que individualmente el costo de estos es ms
reducido y puede variar segn la compaa o vendedor, pero no basta solo con encontrar el
componente ms barato sino que adems es necesario adentrarse en las especificaciones
del mismo, como trabaja, su frecuencia, sus necesidades energticas y de conexin, entre
otras, para as poder encontrar otros componentes que sean compatibles entre s y que
incluso puedan explotar ms sus capacidades.
Ensamblar un equipo de cmputo desde cero es todo un arte ya que la seleccin de los
componentes es una parte crucial puesto que de esto depender el rendimiento de la
computadora que vamos a armar, tambin se debe tener siempre presente para que se va
a usar la computadora (Puede ser para jugar, para disear, para procesar grandes
volmenes de datos), para as poder seleccionar los componentes que estn ms
adecuados a las necesidades que se tienen.
Normalmente el ensamblaje no es algo muy complejo puesto que todas las piezas tienen
un manual de instrucciones de cmo se deben conectar y a que, lo verdaderamente
complejo es la seleccin de los componentes, ya que se debe checar las especificaciones
de cada pieza para ver si son compatibles entre s y adems se debe tener un presupuesto
para poder armar el mejor equipo posible con ese presupuesto que sea capaz de satisfacer
las necesidades para las cuales ser armado.

1.7

Chipset.

El chipset se puede definir como el cerebro de la placa madre ya que esta est diseada en
torno a un chipset especfico y este a su vez est diseado con una arquitectura similar a la
del procesador con el que trabajara. El chipset es un conjunto de circuitos integrados que
trabajan en conjunto vinculando y manejando la mayora de los buses presentes en la
tarjeta madre, conectando as distintos componentes como los puertos SATA, PCI, Ethernet,
USB y BIOS principalmente. Tambin es destacable el hecho de que el chipset es uno de los
pocos componentes que se conectan directamente con el procesador, hacindolo de vital
importancia para el desempeo de estos.
Maneja la cantidad de componentes/puertos que pueden estar presentes en la tarjeta
madre como se puede ver en la Ilustracin 3-32.

Ilustracin 3-32: Diagrama de bloques del Chipset Intel H87

Como se muestra en la ilustracin anterior es un chipset diseado para trabajar con


procesadores Intel Core de 4ta generacin y puede manejar puertos PCI Express 2.0 con
una transferencia de datos de 5Gb/s, puertos USB 3.0 y 2.0 a ms de 5 Gb/s, puerto
integrado de Ethernet, Audio, SATA, entre otros adicionales y opcionales de la marca Intel.
Este chipset puede estar presente en la arquitectura de las siguientes placas madre de
Intel: DH87MC, DH87RL, DQ87PG y DZ87KLT-75K [47] [48]
El PCH es la evolucin de anteriores generaciones donde existan menos elementos
integrados dentro del procesador. En estos te encontrabas con dos bloques de chips el
Southbridge que se encargaba de los puertos USB, el PCI y los dispositivos exteriores, y el
Northbridge que se encarga de la RAM y la conexin con la tarjeta grfica.
El Platform Controller Hub, es parte de los chipsets de las placas base de Intel, y es el
encargado de:

USB. Es el encargado tanto de definir el nmero de dispositivos USB que puedes


conectar como el tipo.
Controladora de disco duro. El nmero de y tipo de lneas SATA se implementa en este
chip. Si existe soporte para configuracin con varios discos duros como las RAID tambin
se incluye aqu.
Controladora de lneas PCI Express. Cualquier PC moderno tiene dos tipos de lneas PCI
Express, las que conectas a las tarjetas normales y aquella donde se inserta la tarjeta
grfica.
Tarjetas integradas. La tarjeta de red y la de sonido se incluyen en este elemento.

1.8

Aplicaciones.

Como en el ejemplo anterior el chipset adems de ayudar a la placa base a convertirse en


el eje central del flujo de informacin con los componentes que este maneja, puede
adems, agregar diversos componentes y funcionalidades extra con ellos como son:
Caractersticas
Beneficios
Ventaja Intel para pequeas empresas Ofrece a las pequeas empresas
(Intel SBA)
caractersticas incorporadas que mejoran
la seguridad y la productividad de sus
empresas con monitoreo de software,
copia y restauracin de datos, bloqueo de
puertos USB, centro de mantenimiento y
pantalla inalmbrica.
Tecnologa Intel de recuperacin
La tecnologa ms reciente de Intel para la
rpida (Intel RRT)
proteccin de datos ofrece un medio de
recuperacin que puede utilizarse para
recuperar con rapidez un sistema en caso
de que se produzca una falla del disco duro
o una corrupcin generalizada de los
datos. Tambin puede instalarse el clon
como un volumen de slo lectura para que
el usuario pueda recuperar cada uno de los

archivos.
Tecnologa Intel contra robo (Intel
AT)

Disfrute de la tranquilidad de saber que si


pierde su laptop, podr desactivarla a
distancia para que dejarla inoperable y
bloquear su disco duro para proteger los
datos, con un servicio habilitado por Intel
AT.

Tecnologa Intel de proteccin de


identidad

Proteja sus credenciales de contrasea por


nica vez (OTP) agregue un nivel de
segundo factor de autenticacin cifrado
para las transacciones en lnea.

Tecnologa Intel de almacenamiento


rpido (Intel RST)5

Si se agregan unidades de disco duro


adicionales, ofrece un acceso ms rpido a
los archivos de fotografas digitales, video
y datos con RAID 0, 5 y 10, as como una
mayor proteccin de los datos contra fallas
de la unidad de disco duro con RAID 1, 5 y
10.

1.9

Ambientes de servicio.

El chipset es el eje central de placa base, sin l, el procesador no puede llevar acabo
muchas de las funciones necesarias para el funcionamiento del computador. Estas
funciones de las que se encarga el chipset son divididas en sus componentes. Como el
puente norte que es el puente de enlace entre el procesador y la memoria. Controla la
comunicacin entre la RAM y el procesador, el puerto grafico AGP y las comunicaciones con
el puente sur. El puente sur controla los dispositivos de entrada como son los puertos USB,
SATA, las ranuras PCI, puerto de Ethernet, PCI-Express, etc. Por lo que al momento de crear
un nuevo perifrico, ste gira en torno al chipset dado que este ser quien mantenga la
comunicacin.

1.9.1.1

Procesamiento paralelo.

El procesamiento paralelo es un trmino que se usa para denotar un grupo de tcnicas


significativas que se usan para proporcionar tareas simultneas de procesamiento de datos
con el fin de aumentar la velocidad computacional de un sistema de computadoras. En
lugar de procesar cada instruccin en forma secuencial como es una computadora
convencional, un sistema de procesamiento paralelo puede ejecutar procesamiento
concurrente de datos para conseguir un menor tiempo de ejecucin. Por ejemplo, cuando
se ejecuta una instruccin en la ALU, puede leerse la siguiente instruccin de la memoria.
Puede obtenerse procesamientos paralelos a un nivel ms alto de complejidad al tener
mltiples unidades funcionales que ejecuten operaciones idnticas o diferentes, de manera
simultnea. El procesamiento paralelo se establece al distribuir los datos entre las unidades
funcionales mltiples. Por ejemplo, las operaciones aritmticas, lgicas y de corrimiento

pueden separarse en tres unidades y dividirse los operandos a cada una, bajo la
supervisin de una unidad de control.

1.10

Aspectos bsicos de la
computacin paralela.

El procesamiento en paralelo surge de la necesidad de una mayor potencia de clculo,


tanto en trminos de rendimiento del hardware como en tiempos de respuesta, lo que ha
llevado a la tecnologa a buscar formas para satisfacer estas necesidades; no haciendo un
procesador con una alta potencia sino explotando la ya presente desde otro ngulo. La
respuesta a esto es el procesamiento paralelo para que un problema sea dividido en
partes que sern ejecutadas al mismo tiempo en diferentes procesadores.
La computacin paralela es un conjunto de
instrucciones que se ejecutan simultneamente para
resolver problemas que ocupan un alto nivel de
procesamiento. Estos problemas pueden ser manejados
de distintas maneras por el paralelismo, aunque es ms
comn el manejarlo descomponindolo en problemas
ms pequeos y especficos para re direccionarlo a
procesos independientes.
El nivel de paralelismo presente en las computadoras
est dado por su hardware lo que hace que algunas
tengan un nivel ms alto o bajo como el paralelismo a
nivel de instrucciones.
Una de las caractersticas de esta forma de computacin es que no exceden demasiado en
su relacin costo/rendimiento, ya que su arquitectura
Ilustracin 4-33: Las 4 etapas del
logra conectar muchos elementos de bajo poder de
diseo de algoritmos paralelos
clculo para la realizacin de clculos mayores
utilizando el paralelismo.
En la Ilustracin 4-33 se muestra un ejemplo de las etapas que abarca el paralelismo, como
son:

La particin: El cmputo y los datos se descomponen en tareas.


Comunicacin: Se definen estructuras y algoritmos de comunicacin entre las
tareas existentes.
Agrupacin: De ser necesario se agrupan tareas pequeas a tareas ms grandes
segn la eficiencia y costos de procesamiento. [49] [50]

1.11

Tipos de computacin paralela.

Existen diferentes tipos de computacin paralela como lo es el ejecutar procesos


independientes simultneamente, multiprogramacin y multiprocesamiento. Otro tipo seria
el descomponer los datos y el cmputo en tareas para ser manejado por procesos
independientes, y el ltimo tipo se basa en tcnicas de encauzamiento para introducir
paralelismo a nivel de instrucciones.
Entre los principales tipos de computacin paralela estn los siguientes:

Multiprocesadores: Son sistemas de cmputo en los cuales se tienen ms de un CPU


para realizar las tareas simultneamente utilizando varios hilos que pertenecen al
mismo proceso o tambin pueden pertenecer a procesos diferentes.
Multicomputadores: Son sistemas comnmente llamados clsteres en los que se tiene
un conjunto de muchas computadoras que trabajan entre s de forma armnica para la
realizacin de tareas complejas que utilizando una simple computadora no sera posible
realizarlas.

En el subtema 4.2.1 Taxonoma de arquitecturas paralelas. se describen ms a fondo


los tipos de computacin paralela, y se analizaran cules son las ventajas, desventajas e
inconvenientes que presenta cada uno de estos tipos.

1.11.1

Taxonoma de arquitecturas paralelas.

Las arquitecturas paralelas de procesamiento son aquellas que estn enfocadas a poder
ejecutar muchas instrucciones al mismo tiempo, la segmentacin de instrucciones descrita
anteriormente en el subtema 1.5.2 fue uno de los primeros mecanismos por los cuales se
empez con el paralelismo.
Las arquitecturas multiprocesador pueden clasificarse segn la estrategia de distribucin
de la memoria compartida, siempre con un nico mapa de memoria en los siguientes 3
tipos:
1) UMA (Uniform Memory Access): En esta
clasificacin la memoria fsica de la que
dispone la maquina esta uniformemente
compartida por todos los procesadores,
gracias a esto cada procesador tiene el
mismo tiempo de acceso a todos los datos
de la memoria, adems cada procesador
puede tener su cach privada y se
comparten tambin los perifricos.

Ilustracin 4-34 Modelo UMA de


multiprocesador

En la Ilustracin 4-34 se puede observar el funcionamiento del modelo UMA de los


multiprocesadores.
2) NUMA (Non Uniform Memory
Access): En este modelo el tiempo de
acceso a la memoria vara segn el lugar
donde se encuentre localizado el acceso.
Su caracterstica principal es que cada
procesador es dueo de una parte de la
memoria y por lo tanto puede acceder
ms rpido a dicha seccin, debido a
esta caracterstica se le conoce como
Acceso No Uniforme A Memoria.
Ilustracin 4-35: Modelo NUMA de multiprocesador.

En la Ilustracin 4-35 se puede observar el


funcionamiento de un sistema de memoria NUMA.

3) COMA (Cache Only Memory


Access): Son multiprocesadores
que solo usan cach como
memoria, adems como en el
modelo NUMA cada procesador
tiene una parte de esta memoria
cach asignada, por lo que en
realidad este modelo no es ms
que un caso especial del modelo
NUMA. El espacio de memoria
Ilustracin 4-36: Modelo COMA de multiprocesador
completo con el que cuenta la
mquina es la suma de los cachs.
En la Ilustracin 4-36 se puede observar el funcionamiento de un sistema de
memoria COMA. [51]

1.11.2

Arquitecturas de los computadores


secuenciales.

El modelo de computacin secuencial fue introducido por


primera vez por John Von Neumann en la dcada de 1940,
todos los computadores secuenciales tradicionales se
basan en este modelo que consiste en tener en una misma
mquina los siguientes componentes:

Un CPU o unidad de procesamiento central (Central


Processing Unit).
Una memoria principal para almacenar la informacin.
Un camino o bus por el cual fluyen los datos de un
componente de la maquina a otro, por ejemplo, mandar
datos del CPU a memoria o viceversa.
Un mecanismo que permite la sincronizacin (clock).

Ilustracin 4-37: Estructura


bsica de una maquina Von
Neumann

En la Ilustracin 4-37 se puede ver un diagrama de una maquina Von Neumann.


El funcionamiento de una mquina Von Neumann consiste en un procesador que es capaz
de realizar instrucciones aritmticas y lgicas secuencialmente que es controlado por un
programa que se encuentra almacenado en la memoria de la mquina. Las mquinas Von
Neumann estn basadas en el intercambio de datos entre memoria y registros del
procesador y la realizacin de operaciones aritmticas y lgicas entre ellas.
Un ejemplo perfecto en la actualidad de mquinas Von Neumann son los
microcontroladores ya que dentro de ellos hay una memoria, un procesador, un bus de
datos y un reloj, y con esto se permite la ejecucin de programas en ellos (Estos programas
deben estar previamente almacenados en la memoria del microcontrolador). [52] [53].

1.11.2.1 Taxonoma de Flynn.


La taxonoma de Flynn fue desarrollada en 1966 por Michael J. Flynn y es la forma ms
habitual de clasificar a las computadoras que ejecutan instrucciones paralelamente. Esta

taxonoma clasifica a los sistemas dependiendo del flujo de datos y el flujo de instrucciones
que tienen. El flujo de instrucciones es la secuencia con la cual cada procesador ejecuta las
instrucciones, es decir, el orden en que se ejecutan las instrucciones y el flujo de datos es
la secuencia de datos de entrada necesarios para la ejecucin de las instrucciones que
posteriormente nos arrojaran los resultados parciales y totales.
Dentro de la clasificacin de sistemas de Flynn hay 4 categoras, a continuacin se
describen y se presentan diagramas de cada categora, para poder entender estos
diagramas hay que tener en cuenta que UC=Unidad de Control, UP=Unidad de
Procesamiento, UM=Unidad de Memoria, EP=Elemento de Proceso, ML=Memoria Local,
FI=Flujo de Instrucciones, FD=Flujo de datos.

SISD (Single Instruction stream, Single Data


stream): Presenta un flujo nico de instrucciones y
datos, este es el modelo clsico de Von Neumann, se
caracteriza porque solo se ejecuta una instruccin o
un flujo de datos cada ciclo de reloj, el control del
programa se lleva mediante un registro especial
llamado contador de programa que se va
actualizando cada que se ejecuta una instruccin. Hoy Ilustracin 4-38: Diagrama de un sistema
SISD
en da este modelo ya no se usa en ningn
procesador porque todos tienen algn grado de paralizacin, los nicos sistemas que
utilizan este modelo son algunos microcontroladores.
En la Ilustracin 4-38 se observa el funcionamiento de un sistema SISD.

Ilustracin 4-39: Diagrama de un


sistema MISD

MISD (Multiple Instruction stream, Single


Data stream): Este tipo de sistemas presentan un
nico flujo de datos y un flujo mltiple de
instrucciones, esto quiere decir que cada ciclo de
reloj varias instrucciones pueden estar actuando
sobre un mismo dato. Este modelo ha sido
considerado por muchos expertos como imprctico
e ineficiente, por lo cual no existen procesadores
que tengan funcionen bajo este sistema hoy en da.
En la Ilustracin 4-39 se observa el funcionamiento
de un sistema MISD.

SIMD (Single Instruction stream, Multiple Data stream): Estos sistemas se


caracterizan porque tiene un flujo de datos mltiple y un flujo de instrucciones nico,
esto significa que una sola instrucciones puede afectar a varios datos al mismo tiempo,
los procesadores que funcionan bajo este sistema se les llama procesadores vectoriales,
un ejemplo de su uso seria si se tiene que calcular un porcentaje a muchos datos
diferentes, con la misma instruccin se calculara en paralelo para todos los datos.
En la Ilustracin 4-40 se observa el funcionamiento de un sistema SIMD.

Ilustracin 4-41: Diagrama de un sistema


MIMD

Ilustracin 4-40: Diagrama de un sistema


MIMD
SIMD
(Multiple
Instruction stream, Multiple Data stream):
Estos sistemas se caracterizan porque tienen un
flujo mltiple de instrucciones y de datos, esto
quiere decir que en estas mquinas se pueden
realizar mltiples instrucciones sobre datos
diferentes de forma simultnea, dada la
complejidad de este tipo de sistemas se vuelven
muy difciles de entender y programar pero ofrecen
un rendimiento muy superior a cualquiera de los 3
anteriores ya que presentan el mximo grado de
paralelismo en el flujo de instrucciones y de datos.

[51]
En la Ilustracin 4-41 se observa el funcionamiento de un sistema MIMD.

1.11.2.2 Organizacin del espacio de direcciones de


memoria.
En los sistemas de procesamiento paralelo la memoria principal se compone de un gran
nmero de celdas que estn organizadas de alguna forma especfica (Puede ser por
palabras o por bits) y en estas celdas es donde se guarda la informacin, cada una de las
celdas soporta un bit de informacin y se agrupan en pequeas unidades direccionables
llamadas palabras, una palabra oscila entre 1 byte y 8 bytes, es decir de 8 a 64 bits se
pueden direccionar directamente.
Cada celda de la memoria es un dispositivo fsico sobre el cual se puede escribir algn
valor (proceso de escritura) o se puede determinar el valor
que posee la celda (proceso de lectura).
Existen 2 formas de organizar las direcciones de memoria,
dichas formas son las siguientes:
Organizacin por palabras: Llamada tambin organizacin
2D, es la organizacin ms sencilla que hay, en la Ilustracin
4-42 se puede observar que las celdas forman una matriz de
2n filas y m columnas, siendo 2n el nmero de palabras
del chip y m el nmero de bits de cada palabra.
Este tipo de organizacin es ineficiente puesto que cuando la
memoria es muy grande el tamao de la matriz crece
Ilustracin 4-42 Organizacin 2D
exponencialmente y hacer operaciones sobre matrices de ese
de la memoria
tamao ocupa una gran cantidad de recursos y tiempo, solo
puede ser til si la cantidad de memoria con la que dispone un sistema es muy baja.

Organizacin por bits: Llamada tambin organizacin 3D,


en este tipo de organizacin en lugar de un nico
decodificador de 2n salidas se utilizan 2 decodificadores de
n
salidas que estn operando al mismo tiempo y las
22
lneas de direccin se reparte entre los 2 decodificadores. En
este tipo de organizacin usando un nico bit de la matriz
donde est la palabra se puede obtener toda la informacin
contenida en la palabra, por esto se le llama organizacin por
bits. Cabe destacar que se necesitan varias matrices de
Ilustracin 4-43 Organizacin 3D
celdas bsicas, tantas como bits deba tener la palabra de
de la memoria
memoria, actuando sobre ellas en paralelo los circuitos de
decodificacin, como se puede observar en la Ilustracin 4-43. [54]

1.12

Sistemas de memoria compartida:


multiprocesadores.

En este tipo de sistemas la memoria se organiza en uno o varios mdulos, todos los
mdulos de la memoria se comparten entre los procesadores de la maquina a travs de
distintos tipos de interconexin y tienen la caracterstica que el tiempo que tarda cada
procesador en acceder a la memoria y obtener alguna direccin siempre es el mismo y
adems cada mdulo de la memoria solo puede atender una peticin en un instante de
tiempo.
En los sistemas de memoria compartida los procesadores se comparten entre si los
perifricos y cada uno de ellos puede tener su propia cach privada, adems este tipo de
sistemas tienen la ventaja de que son ms sencillos de programar que los sistemas de
memoria distribuida.
A estos sistemas se les conoce tambin como sistemas UMA (Uniform Memory Access), que
fueron descritos en la seccin 1.11.1 Taxonoma de arquitecturas paralelas., porque
todos los procesadores tienen un acceso uniforme a la memoria principal de la mquina.
[55]

1.12.1

Redes de interconexin dinmicas o


indirectas.

Antes de hablar de redes de interconexin dinmicas hay que definir el concepto de red de
interconexin, en pocas palabras una red de interconexin es un elemento de hardware
que permite la comunicacin entre los nodos de un multiprocesador esto con los objetivos
de minimizar la latencia de comunicacin, minimizar el coste de trabajo para los
procesadores, conseguir muchas conexin simultaneas a la vez y generar una mayor
escalabilidad que es la capacidad que tiene el sistema para adaptarse a los cambios que se
presenten en la red de interconexin.
Ahora bien una red de interconexin dinmica o indirecta es aquella que es fcil de
reconfigurar por su alto grado de escalabilidad y son muy convenientes en caso de que se
desee una red de propsito general, es decir, una red por donde tenga que pasar distintos
tipos de informacin.

Las redes de interconexin dinmicas necesitan de un switch o conmutador para funcionar,


la principal funcin de este conmutador es la de conectar un conjunto de canales de
informacin de entrada a otro conjunto de canales de informacin de salida.
Entre las principales redes de interconexin dinmica se encuentran las siguientes:

Buses: Son los conjuntos de lneas por los cuales los componentes de una computadora
se comunican entre s o se comunican con otras computadoras, permitiendo as pasar
los datos de un componente a otro para que vayan siendo procesados
Redes de lneas cruz o matriz de conmutacin (crossbar): En este tipo de redes
cada nodo est conectado con los dems a travs de un conmutador de lneas cruzadas
(crossbar switch) que se encarga de conectar los nodos en funcin de las necesidades
de cada momento, es decir, se manda una peticin de conexin y el conmutador de
lneas cruzadas permite el intercambio de informacin entre los nodos seleccionados
para la comunicacin, este fue el modelo original de las redes telefnicas.
Redes multietapa o MIN (Multistage Interconnection Network): Esta red es
parecida a la anterior pero tiene la diferencia de que posee una serie de mdulos
conmutadores a diferencia de la otra que solo tena un conmutador y cada uno de los
conmutadores que posee puede cambiar dinmicamente de posicin para establecer la
conexin deseada en cada momento, esto genera una mayor eficiencia que el modelo
pasado porque cuenta con ms nodos. [56]

1.12.1.1 Redes de medio compartido.


Este tipo de redes se presentan principalmente cuando se requiere de un punto de acceso
inalmbrico, donde el medio para transmitir la informacin es el aire y todos los usuarios
conectados a la red inalmbrica reciben la informacin usando ese medio.
Pero hay que mencionar algo muy importante y es que no pueden usar todos los
dispositivos conectados a la red el mismo medio de transmisin al mismo tiempo por lo que
se toman turnos para que cada dispositivo acceda a la informacin.
Un buen ejemplo de una red de medio compartido tambin pueden ser los buses ya que
recordando la arquitectura de Von Neumann, el CPU puede requerir ciertos datos de la
memoria en un determinado momento, para ello necesita acceder a ella por medio de un
bus, pero mientras espera la respuesta del mismo no lo puede usar para acceder al mdulo
de Entrada/Salida. Entonces todas las comunicaciones tienen el mismo medio y toman
turnos para comunicarse, es por esto que un bus puede caer en un cuello de botella en un
momento dado como suceda con los procesadores que adoptaban la arquitectura Von
Neumann.

1.12.1.2 Redes conmutadas.


Las redes conmutadas o indirectas proporcionan una conexin directa entre nodos. Los
nodos se encuentran conectados a un switch con un conjunto de puertos que,
individualmente constan de un enlace de entrada y otro de salida. Los puertos de cada
switch pueden estar conectados con puertos de otro switch o vacos, esta interconexin de
switch o conmutadores define la topologa de la red.
En la Ilustracin 4-44 se puede ver un ejemplo de red conmutada.

Ilustracin 4-44: Ejemplo de red conmutada con topologa irregular

Dentro de las topologas existentes en este tipo de red, estn las irregulares las cuales no
siguen ninguna arquitectura de interconexin predefinida y las irregulares las cuales siguen
patrones especficos para aumentar su eficiencia, ya que el nmero de conmutadores por
los que un mensaje tiene que atravesar para llegar a ser ledo puede ocasionar prdidas o
errores. [56]

1.12.2

Coherencia de cach.

La memoria cach proporciona las direcciones de escritura para que al acceder a esa
direccin se muestre el ultimo valor escrito. Hablando de multiprocesadores, cada
procesador contiene su propia memoria cach que accede a la memoria compartida a
travs de la misma jerarqua de cach. El problema con el manejo de informacin de la
memoria cach en multiprocesadores data en que puede haber incoherencia al definir los
datos que son devueltos, por lo que se puede definir un sistema de memoria coherente de
la siguiente manera:
1) Una lectura por un procesador P de una posicin X, que sigue una escritura de P a X,
sin que ningn otro procesador haya escrito nada en X entre la escritura y la lectura
de P, siempre devuelve el valor escrito por P.
2) Una lectura por un procesador de la posicin X, que sigue a una escritura por otro
procesador a X, devuelve el valor escrito si la lectura y escritura estn
suficientemente separados y no hay otras escrituras sobre X entre los dos accesos.
3) Las escrituras a la misma posicin estn serializadas, es decir, dos escrituras a la
misma posicin por cualquiera de dos procesadores se ven en el mismo orden por
todos los procesadores. [57]

1.13

Sistemas de memoria distribuida.


Multicomputadores Clsteres.

Un multicomputador es un sistema formado a partir de un conjunto de computadoras que


se comunican entre s para poder realizar los procesos que se deseen de una forma ms
rpida y eficiente, cada una de las computadoras que conforman a un sistema
multicomputador se le conoce como nodo y es muy habitual que todos los nodos tengan las
mismas caractersticas y capacidades.

La arquitectura de los multicomputadores tambin es conocida como arquitectura basada


en el paso de mensajes y su principal caracterstica es que un multicomputador tiene la
memoria distribuida, esto quiere decir que decir que las computadoras que conforman a un
multicomputador deben comunicarse con las otras a travs de una red de interconexin
para poder compartir los datos a procesar, esto hace que un multicomputador solo este
limitado por el ancho de banda de la red de interconexin y no por el ancho de banda de la
memoria.
En un multicomputador cada nodo puede tener un simple procesador o ser un sistema
multiprocesador, adems cada uno de los nodos cuentan con una memoria propia. [58]
En la Ilustracin 4-45 se puede observar un esquema de un multicomputador.

Ilustracin 4-45: Esquema de un multicomputador en el que cada nodo es un multiprocesador

1.13.1

Redes de interconexin esttica.

Una red de interconexin esttica es aquellas que une a los nodos mediante enlaces fijos
directos, esto quiere decir que las redes de interconexin estticas no presentan mucha
escalabilidad a diferencia de las dinmicas que si tienen un alto grado de escalabilidad.
Las redes de interconexin estticas suelen utilizarse en multicomputadores debido a que
se sabe que la conexin entre los nodos no vara y se puede predecir el trfico de
comunicaciones entre los nodos.
Para un multicomputador es ms eficiente el uso de redes de interconexin estticas que el
uso de redes de interconexin dinmicas debido a que su estructura queda definida desde
el momento en que es diseado el sistema multicomputador.
Entre las principales clases de redes de interconexin esttica que existen estn las
siguientes:

Formacin lineal: En esta red cada uno de los N nodos se conecta con el siguiente
mediante N-1 enlaces, formando una lnea recta entre los nodos.
Anillo: Esta clase de red es muy similar a la de lnea, su nica diferencia es que los
nodos extremos de la conexin lineal tambin estn conectados entre si formando
una especie de anillo.
Mallas: Una red de malla es aquella en la que los nodos forman una especie de
malla, los nodos externos tienen k conexiones y los nodos internos tienen 2k
conexiones, las mallas de n dimensiones tienen m n nodos donde m es el nmero de
nodos por lado.
Toro: Las redes toro son un tipo de mallas en el que sus filas y columnas tienen
interconexin en anillo, esto contribuye a disminuir su dimetro y convierte a las
mallas en estructuras simtricas y tambin reduce su dimetro a la mitad.
Hipercubo: Un hipercubo es un tipo de malla n-dimensional en la que se suprimen
los nodos interiores, por esto, cuando la dimensin aumenta en 1 se duplica el
nmero de nodos, as que un cubo de n dimensiones tendr 2n nodos. [56]
En la Ilustracin 4-46 se pueden observar los diagramas de las distintas redes de
interconexin estticas anteriormente mencionadas.

Ilustracin 4-46: Tipos de redes de interconexin estticas

1.13.2

Clster.

Un clster es un sistema multicomputador que consiste en cientos o miles de PC o


estaciones de trabajo interconectadas entre s por medio de una red comercial de alta
velocidad.
En los clsteres se permite a todos los usuarios y administradores tener acceso a los nodos
y configurarlos como un nico sistema en lugar de como si fuera una configuracin de
equipos independientes.
Los clsteres tienen grandes ventajas como por ejemplo las siguientes: son muy
escalables, se pueden ampliar gradualmente y adems son muy rentables, pero tambin
algunas desventajas como las siguientes: software limitado, la red puede hacer perder la
fiabilidad y problemas de seguridad.
Se pueden distinguir entre 2 tipos de clsteres:

Clster centralizado: En este tipo de clster


todas las computadoras o nodos que lo conforman
estn montados en un armario compacto en el
que se acomodan con el fin de disminuir el
volumen del clster, tienen la caracterstica de
que todos los nodos son del mismo tipo y los
nicos perifricos que tienen por cuestiones de
espacio son tarjetas de red y posiblemente disco
duro.
En la Ilustracin 4-47 se puede observar un clster
centralizado.

Ilustracin 4-47 Clster centralizado

Ilustracin 4-48 Clster no


centralizado

1.13.3

Clster no centralizado: Este tipo de clsteres


son aquellos sistemas en los que sus nodos se
encuentran repartidos en todo un espacio, como
un edificio o un salo, es decir, no interesa mucho el
espacio que ocupan y por lo tanto se admite el uso
de ms perifricos que en los clsteres
centralizados.

En la Ilustracin 4-48 se puede observar la distribucin


de un clster no centralizado. [58] [59]

Programacin de clsteres.

Los clsteres estn diseados para correr


programas en paralelo por lo que estos deben
estar hechos especficamente para funcionar de
esta manera. Dentro de los entornos de
programacin para clsteres podemos encontrar
los siguientes:

Basados en memoria compartida.


OpenMP: Es un entorno de programacin
para memoria compartida que dada su
simpleza y flexibilidad es considerado un
estndar para el desarrollo de aplicaciones
paralelas.
Basados en paso de mensajes.
MPI: Conformada por libreras de funciones y
macros de C, C++ y Fortran. Un programa Ilustracin 4-49 Diagrama de componentes de
un clster
MPI lanza varios procesos una sola vez
evitando la creacin de ms durante su ejecucin y colaboran entre si
sincronizndose e intercambiando datos.

Con estos entornos de programacin se pueden creas y gestionar los procesos que se
ejecutaran, implementar topologas de comunicacin y sincronizacin. [60]
En la Ilustracin 4-49 se pueden observar los componentes bsicos de un clster.

1.13.4

Consideraciones sobre el rendimiento de los


clsteres.

Para mantener un rendimiento alto es necesario tener en cuenta el nmero de


conexiones simultneas por nodo as como la carga en el CPU que no debe exceder ms
all del 40%, de caso contrario pueden ocurrir que el nico nodo del clster activo no
pueda poner en conexin al segundo. El rendimiento se refiere a la velocidad del
procesador a la hora de ejecutar cualquier tarea, siempre se busca que el tiempo que
tarde sea menor, mientras ms cortos sean los tiempos de espera se dice que tiene un

mejor rendimiento. Cabe destacar que el rendimiento de un CPU est determinado por
varios factores tales como su velocidad de reloj, numero de ncleos fiscos y reales,
cantidad de cach de nivel 1, 2 y 3, arquitectura, entre otras cosas.

1.14

Casos de
estudio.

En el ao 2000, el clster de Google


funcionaba ante una peticin seleccionando
el servidor que atendera la peticin con un
balanceo de carga basado en DNS entre
varios clsteres, sus bsquedas eran
Ilustracin 4-50: Clster de Google
manejadas por dos servidores, uno de
ndices que mediante comparacin entre listas de identificadores de documentos y el ndice
en cuestin calculan el valor de relevancia para cada documento y los servidores de
documentos extraen la informacin bsica de los documentos a partir de los identificadores
ya ordenados por relevancia.
En la Ilustracin 4-50 se puede observar un diagrama del funcionamiento del clster de
Google.
l diseo implementado por Google era de alta fiabilidad de hardware lo que haca que
existiese poca redundancia a diferentes niveles. Su alta disponibilidad de servicio mediante
la replicacin masiva de los servicios crticos y si alto rendimiento con mltiples servidores
de bajo coste configurados en clster.
Dentro de los datos relevantes del estudio se encuentran el trfico, alrededor de 1000
consultas por segundo con un ndice de bsqueda de menos de 0.5 segundos. El clster
utiliza ms de 6000 procesadores y 12.000 discos, disponiendo de tres sites redundantes:
dos en Silicn Valley y uno en Virginia.
Su conexin a internet es OC48 (2488Mbits/segundo) y otra de OC12 (622Mbits/segundo) y
tambin dispone de 40 racks cada uno con 80 computadoras con procesadores Pentium
Celeron a 533Mhz, dos discos duros de entre 40 y 80Gb. [61]

Bibliografa
[1 Universidad De Castilla-La Mancha. [Online].
] https://www.uclm.es/area/egi/OFITEC/Descarga/COMPUTADOR.PDF
[2 Juan Bernardo Vazquez Gomez. [Online].
] http://www.aliat.org.mx/BibliotecasDigitales/sistemas/Arquitectura_computadoras_I.pdf
[3 Miguelangel Fraga Aguilar. [Online]. http://fragaitm.webcindario.com/arqui/Apuntes
] %20unidad%201a.pdf
[4 Jos Antonio de Frutos Redondo and Ral Durn Daz. (2005) Aut. [Online].
] http://hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf
[5 Universidad de Cundinamarca. (2015, Sep.) [Online].
] https://informaticafloridablanca.files.wordpress.com/2011/03/hardware-interno.pdf
[6 Universidad Veracruzana. (2015, Sep.) [Online].
] http://www.uv.mx/iiesca/files/2013/01/computadoras2003-2.pdf
[7 Edgardo Adrin Franco Martnez. (2012, Octubre) Algoritmia y programacin

] estructurada. [Online]. http://eafranco.com/docencia/algoritmia/files/20/Clase_20.pdf


[8 ATC. Plataformas moviles de comunicacion y procesamiento.
]
[9 Intel. ark.intel.com. [Online]. http://ark.intel.com/products/87720/Intel-Core-i7-5950HQ] Processor-6M-Cache-up-to-3_80-GHz
[1 Instituto Tecnologico De Piedras Negras. [Online].
0] http://itpn.mx/recursosisc/7semestre/sistemasprogramables/Unidad%20IV.pdf
[1 Vega C. Paola. [Online]. http://www.ie.itcr.ac.cr/pvega/Project/Documents_SD/Handout
1] %20N3%20CISC%20y%20RISC.pdf
[1 Universidad Pontifica de Madrid. [Online].
2] http://www.dia.eui.upm.es/asignatu/arq_com/Paco/4-Memoria.pdf
[1 Marcelo Arturo Baena Castro. [Online]. http://cursos2d.com/partesdesc/PROYECTO
3] %20ELEMENTOS%20DE%20HARDWARE.pdf
[1 Intel. [Online]. http://www.intel.com/content/dam/doc/white-paper/resources-xeon4] measuring-processor-power-paper.pdf
[1 Instituto Tecnologico de Piedras Negras. [Online].
5] http://itpn.mx/recursositics/5semestre/arquitecturadecomputadoras/Unidad%20II.pdf
[1 Universidad De La Republica De Uruguay. [Online].
6] http://www.fing.edu.uy/tecnoinf/mvd/cursos/arqcomp/material/teorico/arq-teorico11.pdf
[1 Norma Elba Chavez Rodriguez. [Online]. http://profesores.fi7] b.unam.mx/normaelva/ALU.pdf
[1 IES Rafael Puga Ramn. [Online]. http://www.iespugaramon.com/ies-puga8] ramon/resources/UNIDADES_20FUNCIONALES_20DEL1201659263028.pdf
[1 Universidad Politecnica De Madrid. [Online].
9] http://www.dia.eui.upm.es/asignatu/arq_com/Paco/4-Memoria.pdf
[2 Miguelangel Fraga Aguilar. [Online]. http://fragaitm.webcindario.com/arqui/unidad1b.pdf
0]
[2 Carlos Canto Q. [Online].
1] http://galia.fc.uaslp.mx/~cantocar/microprocesadores/EL_Z80_PDF_S/13_TIPOS_DE_MEM
ORIA.PDF
[2 Universidad Complutense Informatica. [Online].
2] http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC6.pdf
[2 Universidad Complutense Informatica. [Online].
3] http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC8.pdf
[2 Universidad De Valencia. [Online]. http://ocw.uv.es/ingenieria-y-arquitectura/sistemas4] electronicos-para-el-tratamiento-de-la-informacion/seti_materiales/seti2_ocw.pdf
[2 UPM. www.dia.eui.upm.es. [Online]. http://www.dia.eui.upm.es/asignatu/arq_com/Paco/55] SistemasES.pdf
[2 ATC. www.atc.us.es/. [Online]. http://www.atc.us.es/descargas/entrada-salida.pdf
6]
[2 Universidad Politecnica De Catalunya. (2015, Octubre) [Online].
7] http://epsc.upc.edu/projectes/usuaris/miguel.valero/materiales/docencia/EC1/material/d
ma.pdf
[2 Universidad De Sevilla. (2015, Octubre) [Online].
8] http://icaro.eii.us.es/descargas/Entrada-Salida(AC%2004-05).pdf
[2 Universidad Complutense Informtica. (2015, Octubre) [Online].
9] http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC10.pdf
[3 Universidad del Pas Vasco. (2015, Octubre) [Online].
0] http://cvb.ehu.es/open_course_ware/castellano/tecnicas/arquitectura_com/apuntes/buse

s.pdf
[3 Rafael Vzquez Prez. (2015, Octubre) [Online].
1] http://rvazquez.org/Misitio/Arquitectura_de_Computadoras_files/buses1.pdf
[3 Jos Manuel Mendas Curadros. www.fdi.ucm.es. [Online].
2] http://www.fdi.ucm.es/profesor/mendias/512/docs/tema7.pdf
[3 Adolfo J. Millan. (2002, Marzo) www.zator.com. [Online].
3] http://zator.com/Hardware/H2_4.htm
[3 Universidad de la Repblica. (2014) www.fing.edu.uy. [Online].
4] http://www.fing.edu.uy/tecnoinf/mvd/cursos/arqcomp/material/2014/teo/arq-teo07.pdf
[3 Cano Harriete Martinez. (2007, Agosto) docentes.uni.edu.ni. [Online].
5] http://docentes.uni.edu.ni/fec/Giovanni.Saenz/ArquitecturaMaquinasII/Unidad2.pdf
[3 Instituto Tecnologico De Piedras Negras. [Online].
6] http://itpn.mx/recursosisc/5semestre/arquitecturadecomputadoras/Unidad%20II.pdf
[3 Universidad de Malaga. [Online]. http://www.ac.uma.es/~sromero/so/Capitulo1.pdf
7]
[3 Dario Alejandro Alpern. (2009) www.alpertron.com.ar. [Online].
8] http://www.alpertron.com.ar/80386.HTM
[3 UNNE. exa.unne.edu.ar. [Online].
9] http://exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_CPU_est_funcion_part
e3.pdf
[4 Universidad de la Republica. (2010) www.fing.edu.uy. [Online].
0] https://www.fing.edu.uy/inco/cursos/arqsis2/teorico/clase03.pdf
[4 Facultad de Ingenieria Universidad de la Republica. (2010) www.fing.edu.uy. [Online].
1] https://www.fing.edu.uy/inco/cursos/arqsis2/teorico/clase02.pdf
[4 Universidad de la Republica. (2014) www.fing.edu.uy. [Online].
2] https://www.fing.edu.uy/tecnoinf/mvd/cursos/arqcomp/material/2014/teo/arq-teo07.pdf
[4 Universidad De Alcal. [Online]. http://atc2.aut.uah.es/~nacho/AII/tema3.v4.6.pdf
3]
[4 Universidad De Valladolid. [Online]. http://www.infor.uva.es/~bastida/OC/conjunto.pdf
4]
[4 Universidad De Valladolid. [Online]. http://www.infor.uva.es/~bastida/OC/modos.pdf
5]
[4 Pablo Espeso. (2013, septiembre) http://www.xataka.com. [Online].
6] http://www.xataka.com/analisis/intel-core-i7-4770k-y-amd-a10-6800k-analisis
[4 Intel. www.intel.la. [Online]. http://www.intel.la/content/www/xl/es/chipsets/performance7] chipsets/mobile-chipset-hm87.html
[4 Carlos A. Talay. http://carteleras.webcindario.com. [Online].
8] http://carteleras.webcindario.com/Arquitect.pdf
[4 ITPN. (2015) www.itpn.mx. [Online].
9] http://www.itpn.mx/recursosisc/5semestre/arquitecturadecomputadoras/Unidad
%20IV.pdf
[5 Jose Lisandro Aguilar Castro and Ernst Leiss , Introduccion a la computacion paralela.
0] Merida, Venezuela: Graficas Quinteto, 2004.
[5 Universidad De Valencia. [Online].
1] http://informatica.uv.es/iiguia/AAC/AA/apuntes/aic_intro.pdf
[5 Luis Miguel De La Cruz. (2009) [Online].
2] http://mmc2.geofisica.unam.mx/luiggi/CCP/02pres.pdf
[5 Sergio Nesmachnow and Gerardo Ares. (2010) [Online].
3] http://www.fing.edu.uy/inco/cursos/hpc/material/clases/Clase2-2010.pdf

[5 Universidad Complutense Informtica. [Online].


4] http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC5.pdf
[5 Universidad De Alcal. [Online]. http://hpc.aut.uah.es/~nacho/AII/tema5.2.pdf
5]
[5 Universidad De Valladolid. [Online]. http://www.infor.uva.es/~bastida/Arquitecturas
6] %20Avanzadas/Redes.pdf
[5 Fernando Pardo Carpio. (2002, Enero) informatica.uv.es. [Online].
7] http://informatica.uv.es/guia/asignatu/AAC/AA/apuntes/aa.pdf
[5 Daniel Jimnez Gonzalez. [Online].
8] https://www.exabyteinformatica.com/uoc/Informatica/Arquitecturas_de_computadores_a
vanzadas/Arquitecturas_de_computadores_avanzadas_(Modulo_2).pdf
[5 Antonio Antiolo Navas. [Online]. http://www.inf-cr.uclm.es/www/sbenito/AIC/Cursos
9] %20Anteriores/Curso%202004-2005/Transparencias/Clusters.pdf
[6 Boratto Murilo, Coelho Leandro, and Domingo Jimnez. (2009) dis.um.es. [Online].
0] http://dis.um.es/~domingo/09/ERBASE/minicursoespanol.pdf
[6 icaro.eii.us.es. (2000) icaro.eii.us.es. [Online]. http://icaro.eii.us.es/descargas/segunda
1] %20parte%20Sistemas%20Multiprocesadores%202006_2007.pdf

Das könnte Ihnen auch gefallen