Académique Documents
Professionnel Documents
Culture Documents
Organizacin de la CPU
A pesar de la gran diversidad de formas de las computadoras, todas ellas tienen en comn
que sirven para procesar datos y devolver informacin. Para entender cmo se procesan los
datos y cmo se devuelve la informacin, es til considerar la organizacin de la
computadora.
Las computadoras personales actuales, tienen en comn (al menos hasta hace poco tiempo),
un procesador, memoria, una interfaz y dispositivos de entrada y salida (figura 16). Sin
embargo, las computadoras multiprocesadores se estn volviendo ms comunes cada vez.
Aunque su organizacin es una generalizacin de la organizacin de las computadoras
monoprocesador.
La unidad central de proceso (conocida como el procesador), la memoria y la interfaz de
entrada y salida, componen la unidad computacional.
Pgina 1
Aunque las tecnologas empleadas en las computadoras digitales han cambiado mucho desde que
aparecieron los primeros modelos en los aos 40, la mayora todava utiliza la Arquitectura de Von
Neumann, publicada a principios de los aos 1940 por John Von Neumann, que otros autores
atribuyen a John Presper Eckert y John William Mauchly.
La arquitectura de Von Neumann describe una computadora con 4 secciones principales:
1.- la unidad aritmtico lgica (ALU por sus siglas del ingls: Arithmetic Logic Unit)
2.- la unidad de control
3.- la memoria central
4.- el rea de registros
5.- los dispositivos de entrada y salida (E/S).
Estas partes estn interconectadas por canales de conductores internos denominados buses.
La memoria es una secuencia de celdas de almacenamiento numeradas, donde cada una es
un bit o unidad de informacin. La instruccin es la informacin necesaria para realizar lo
que se desea con el computador. Las celdas contienen datos que se necesitan para llevar a
cabo las instrucciones, con el computador. El nmero de celdas varan mucho de
computador a computador, y las tecnologas empleadas para la memoria han cambiado
bastante; van desde los rels electromecnicos, tubos llenos de mercurio en los que se
formaban los pulsos acsticos, matrices de imanes permanentes, transistores individuales a
circuitos integrados con millones de celdas en un solo chip.
Pgina 2
En general, la memoria puede ser reescrita varios millones de veces (memoria RAM); se
parece ms a una pizarra que a una lpida (memoria ROM) que slo puede ser escrita una
vez.
El procesador (tambin llamado Unidad central de procesamiento o CPU) consta de
manera bsica de los siguientes elementos:
Pgina 3
1.2
LENGUAJES
Un Lenguaje de Programacin, es una herramienta utilizada para escribir programas de una
computadora que puedan ser entendidos por ellas. Los Lenguajes de Programacin se
Clasifican en: 1. Lenguaje Maquina. 2. Lenguaje de Bajo Nivel. 3. Lenguaje de Alto Nivel.
*Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por
las computadoras y no necesitan traduccin posterior para que la mquina pueda
comprender y ejecutar el programa. Las instrucciones del Lenguaje Maquina se expresan en
la unidad ms pequea: El Bit. Un ejemplo de una serie de instrucciones en Lenguaje
Maquina seria: 0000 0100 1100 0101
*Lenguaje de Bajo Nivel: La programacin en lenguaje maquina es difcil, por ello, se
necesitan lenguajes que permitan simplificar el proceso. Los lenguajes de Bajo Nivel han
sido diseados con este fin. Estos lenguajes son generalmente dependientes de la
computadora, es decir, dependen de un conjunto de instrucciones especficas de una
computadora. Un lenguaje tpico de Bajo Nivel es el Ensamblador. En este lenguaje las
instrucciones se escriben en cdigos alfabticos conocidos como nemotcnicos
(Abreviaturas del Ingles al Espaol).
Algunas instrucciones Nemotcnicas:
Ejemplos de instrucciones
*Lenguaje de Alto Nivel: Estos lenguajes son aquellos en los que las instrucciones o
sentencias son escritas con palabras similares a los lenguajes humanos, lo que facilita su
escritura y la fcil comprensin por el programador. Algunos lenguajes de Alto Nivel son:
Cobol, Turbo Pascal, Basic, etc.
Estructura de una instruccin.
Un programa en lenguaje ensamblador est compuesto por enunciados. Hay dos tipos de
enunciados:
1.
2.
*;comentarios
Estn separados por lo menos con un espacio en blanco o una tabulacin. Mximo 132
caracteres en una lnea, aunque la mayora de los programadores prefiere 80 que son los
que se ven en la pantalla.
Pgina 4
Ejemplos:
Identificador operacin
Directiva
COUNT
Instruccin
MOV
operando
DB 1
AX, 0
comentario
; nombre, operacin, operando.
(Define un byte)
; operacin, dos operandos.
Operando
CX
AX, 12
Comentario
; Regresa
; Incrementa el registro CX
; Suma 12 al registro AX
Operando
Ninguno
Uno
Dos
Pgina 5
MOV AX, BX
2. TIPOS DE OPERANDO
INC SI
a) EXPLICITA
a.1 DATO
a.2 DIRECCION
a.3 REGISTRO
b) IMPLICITA
3. MODOS DE DIRECCIONAMIENTO
1.3
a)
b)
c)
d)
e)
f)
g)
h)
Inmediato
Directo
Indirecto
Indexado
Implcito
Relativo
Por Registro
Bit a Bit
EJECUCIN DE INSTRUCCIONES
Pgina 6
FASE 2
DECODIFICACION
FASE 3
EJECUCION
1.4
CISC: Complex Instruction Set for Computer. Conjunto de instrucciones complejas para
computadora. Maneja entre 50 y 100 instrucciones, tarda varios ciclos de reloj para ejecutar
una instruccin.
RISC: Reduced Instruction Set of Computer. Conjunto de instrucciones reducidas para
computadora. Apareci a mediados de los 70s en IBM, la idea original consisti en
desarrollar una arquitectura que pudiera ejecutar todas sus instrucciones en un solo ciclo de
reloj, lo cual lo hara ms rpida.
Ing. Roberto Patio Ruiz
Pgina 7
*NOTA:
a) Los puntos (1-3) indican la complejidad de la decodificacin de instrucciones.
b) Los puntos (4-8) indican la facilidad o dificultad de la segmentacin de cauce: una
manera de introducir el paralelismo en proceso secuencial de ejecucin de instrucciones
maquina de un programa (memoria virtual).
c) Los puntos (9-10) se relacionan con la habilidad de obtener un mejor rendimiento de los
compiladores.
Pgina 8
1.5
Desde los albores de la computacin, los diseadores han tratado de hacer mquinas ms
rpidas. Hasta cierto punto, esto se poda lograr haciendo ms veloz el hardware; sin
embargo, las leyes de la fsica sealan que nada puede viajar ms rpido que la velocidad
de la luz (20 cms./nseg) a travs de un alambre de cobre.
Esto significa que para construir una computadora con un tiempo de instruccin de 1
nseg. , la distancia total que las seales elctricas tuvieran que viajar entre la
Memoria, el CPU y de regreso, no debe exceder de 20 cms.
POR ESTA RAZON LAS COMPUTADORAS RAPIDAS SON MUY PEQUEAS.
Pgina 9
A estas mquinas con procesadores paralelos se les conoce con el nombre de Mquinas
Paralelas, estas se dividen en tres categoras segn el nmero de instrucciones y datos:
Categoras en que se dividen las Maquinas Paralelas. -------FLYNN
(Clasificacin basada en el nmero de instrucciones y datos que pueden procesar)
1.- SISD: Corriente de instrucciones sencilla. Corriente de datos sencilla
2.- SIMD:
Corriente de instrucciones sencilla. Corriente de datos mltiple
3.- MIMD: Corriente de instrucciones mltiple. Corriente de datos mltiple
Mquinas SISD
La mquina tradicional de Von Neumann corresponde al tipo SISD. Constan de un
programa y un conjunto de datos. Se extrae una instruccin y se ejecuta, se extrae otra y as.
El paralelismo se logra extrayendo e iniciando la siguiente instruccin antes de terminar la
que est en curso. Existen 2 modelos posibles:
Varias unidades funcionales.
La Unidad de Control extrae una instruccin y la manda a una unidad funcional para su
ejecucin, extrae la siguiente y la manda a otra unidad funcional, as hasta que no se pueda
avanzar. No se podr avanzar en los dos casos siguientes: si todas las unidades funcionales
estn ocupadas o si hace falta un operando que se est calculando en otra instruccin.
Se supone que el tiempo en ejecutar una instruccin es mayor que el de extraerla. Si no
fuera as, slo se usara una unidad funcional de forma simultnea.
Procesamiento en lnea.
Consiste en separar la ejecucin de cada instruccin en partes. Cada parte la ejecuta una
unidad de procesamiento de la CPU. Por ejemplo:
Unidad de ejecucin de instrucciones
Unidad de extraccin de datos
Unidad de clculo de direcciones
Unidad de extraccin de instrucciones
Analizador de instrucciones
En este ejemplo la CPU tiene cinco unidades de procesamiento. Cada instruccin debe
pasar por todas ellas. A la organizacin de esta figura se le llama procesamiento entubado o
procesamiento en lnea (pipeline). Si cada paso (intervalo de tiempo) dura n nanosegundos,
se requiere de 5n nanosegundos para ejecutar una instruccin. Sin embargo, cada n
nanosegundo P5 termina de ejecutar una instruccin, lo que incrementa la velocidad en un
factor de cinco.
Ing. Roberto Patio Ruiz
Pgina 10
UP1
1
UP2
UP3
UP4
UP5
Tiempo 1
2
1
3
2
1
4
3
2
1
5
4
3
2
1
5
6
5
4
3
2
6
7
6
5
4
3
7
8
7
6
5
4
8
9
8
7
6
5
9
En este diseo la Unidad de Control extrae una instruccin y la dirige a una de las unidades
funcionales para su ejecucin; mientras tanto, la unidad de control extrae la siguiente
instruccin y la enva a otra unidad funcional. Este proceso contina hasta que no se puede
avanzar ms, ya sea porque todas las unidades del tipo requerido estn ocupadas, o bien
porque se necesita un operando que todava se est procesando.
Ing. Roberto Patio Ruiz
Pgina 11
Analizador de
instrucciones
P1
P1
P2
P3
P4
P5
P2
I1
I2
I1
I3
I2
I1
I4
I3
I2
I1
Unidad de
clculo de
direcciones
Unidad de
extraccin de
datos
Unidad de
ejecucin de
instrucciones
P3
P4
P5
I5
I4
I3
I2
I1
I6
I5
I4
I3
I2
I7
I6
I5
I4
I3
I8
I7
I6
I5
I4
I9
I8
I7
I6
I5
5 nseg/instruccin
5 instrucciones/nseg
NOTA: En cada caso (A y B) el procesamiento es del tipo SISD, ya que slo hay un
programa y un conjunto de datos.
MAQUINAS SIMD
A) Maquina Vectorial
Estas maquinas operan en paralelo con mltiples conjuntos de datos. Estos datos al ser
procesados siguen una trayectoria similar a la expuesta en el modelo Von Neumann, con la
excepcin de que en esta mquina se maneja un vector con n-datos.
La ALU es en s una Unidad Vectorial capaz de realizar operaciones como la suma de
vectores a partir de dos vectores de entrada y obteniendo como resultado un vector de
salida.
Para cada entrada de la ALU se tiene un vector con n entradas en lugar de una sola
variable. O sea, la ALU es una unidad vectorial capaz de realizar operaciones con vectores.
Como la suma de vectores, a partir de dos vectores de entrada obtener un vector de salida.
Esquemticamente:
Pgina 12
UNIDAD DE
CONTROL
Con esta estructura se pueden hacer operaciones con matrices. Simplemente con dar una
instruccin, cada procesador realizara dicha operacin con el elemento de la matriz
correspondiente.
MAQUINAS MIMD
En esta categora diferentes CPU manejan distintos programas compartiendo a veces, una
Memoria comn para establecer mltiples flujos de instrucciones y datos. Todas las CPUs
acceden a la memoria compartida a travs del bus, por lo que pueden surgir dificultades si
un gran nmero de procesadores quieren acezar a la memoria al mismo tiempo.
CPU1
CPU2
CPU3
CPU4
MEMORIA
BUS
(compartida)
Pgina 13
MEM
MEM
MEM
MEM
LOCAL
LOCAL
LOCAL
LOCAL
CPU1
CPU2
CPU3
CPU4
MEMORIA
BUS
(compartida)
Pgina 14