Sie sind auf Seite 1von 10

Arquitectura de Computadores La CPU - 1

Arquitectura de Computadores La CPU - 1


Arquitectura
de Computadores
2. La CPU
1. Estructura de la CPU
2. Ciclo de instruccin
3. Interfaz hardware de una CPU
4. Ciclo de reloj, memoria e instruccin
Vamos a comenzar la descripcin de la estructura e interfaz de los componentes bsicos de un
sistema de computacin, esto es, la CPU, la memoria y los dispositivos de entrada/salida.
En este captulo vamos a dedicarnos expresamente a la estructura e interfaz hardware de la CPU y
en el siguiente captulo veremos su interfaz software, es decir, el lenguaje mquina.
Comenzaremos recordando la estructura bsica de una CPU y el ciclo de ejecucin de las
instrucciones. A continuacin veremos la descripcin de las patillas que suelen ofrecer los
microprocesadores, haciendo especial hincapi en el MC68000.
Ms adelante presentaremos los procesadores segmentados (o en pipeline) los cuales incorporan
una tcnica para acelerar el rendimiento de ejecucin de instrucciones, pero esto ser en otro
captulo dedicado a las Mejoras del Rendimiento.
Arquitectura de Computadores La CPU - 2
Arquitectura de Computadores La CPU - 2
La Unidad Central de Proceso
a la memoria
y dispositivos de E/S
ALU
A
B
A + B
A B
A + B
Unidad
de
Control
R
e
g
i
s
t
r
o
s

G
e
n
e
r
a
l
e
s
La Unidad Central de Proceso (CPU) contiene una serie de registros de memoria que contienen los
operandos y el resultado de las operaciones.
Los datos de los registros generales que contienen los operandos se llevan a los registros de
entrada de la Unidad Aritmtico-Lgica (ALU), la cual realiza la operacin sobre los datos de
entrada.
El resultado de la operacin realizada se obtiene en el registro de salida de la ALU, que
posteriormente se almacena en otro de los registros de memoria.
Todo esto se realiza bajo la coordinacin de la Unidad de Control.
Tambin hay conexiones entre la CPU y la memoria principal (y los dispositivos de E/S) pues de
ella se extraen las instrucciones y los operandos, y a ella suelen ir a parar los resultados de las
operaciones.
Arquitectura de Computadores La CPU - 3
Arquitectura de Computadores La CPU - 3
La CPU Ciclo de Instruccin
Alimenta instr. de memoria
Decodifica la instruccin
Calcula direccin de operandos
Opera con los datos
Calcula dir. del destino
de memoria
principal
de registros
internos
Extrae los operandos
en registros
internos
en memoria
principal
Almacena resultado
Extrae
instruccin
CP Sig. instruccin
Acceso a Memoria Operacin Interna en la CPU
Una CPU con arquitectura von Neumann ejecuta las instrucciones segn el ciclo alimentar-
decodificar-ejecutar.
En el grafo de arriba se puede ver la descripcin detallada de este ciclo, que se explica por s solo.
Se comienza por extraer una instruccin de la direccin de memoria indicada por el Contador de
Programa (CP) para cargarla en el registro de instruccin de la CPU. Acto seguido se incrementa
dicho CP con la longitud de la instruccin alimentada.
A continuacin se decodifica la instruccin, es decir se averigua cul es la operacin a realizar.
Seguidamente se debe calcular la direccin de los operandos, tarea cuya dificultad vara en
funcin de los modos de direccionamiento utilizados. Una vez obtenida la direccin de los
operandos, se extraen o bien de la propia instruccin, o bien de los registros generales o de la
memoria principal.
Por ltimo, los operandos se hacen pasar por la ALU y el resultado se almacena en alguno de los
registros generales o en alguna direccin de memoria principal.
Volviendo al comienzo del ciclo, se alimenta la siguiente instruccin.
Arquitectura de Computadores La CPU - 4
Arquitectura de Computadores La CPU - 4
La CPU Interfaz Hardware
Procesador
Genrico
Coprocesador

+5 V
Estado
Miscelneas
Arbitraje
de Bus
peticin
concesin
Lec/Esc
Dir.
n
Datos
m
Reset
peticin
aceptacin
Interrup.
- DATOS
- DIRECCIONES
- CONTROL
Seales de
Las patillas de un microprocesador se pueden organizar en tres grupos: direcciones, datos y control.
Las seales de datos indican el nmero de bits que se pueden transmitir en paralelo entre la CPU y la memoria o
dispositivos perifricos. Generalmente se corresponde con el tamao de la palabra, aunque puede no ser as. (En el
Intel 8088, la palabra es de 16 bits y el bus de datos de 8. Esto obliga a que el acceso a una palabra se realice con dos
ciclos de acceso a memoria). Los buses de datos suelen contar con 8, 16, 32 y, actualmente, como es el caso de
Pentium y PowerPC, con 64 hilos.
Las seales de direcciones determinan el espacio de direccionamiento real del procesador; as, un procesador con 32
pines puede direccionar 2
32
bytes. Un nmero tpico de hilos de direcciones es 16, 20, 24 y 32, con los que se consigue
un espacio de direccionamiento de hasta 4 Gbytes.
Adems de estas seales de datos y direcciones, tambin cuentan con algunas seales de control. Entre stas se
encuentran la seal que indica si el acceso a memoria es de lectura o escritura, la tensin de alimentacin (alrededor
de 5 V.), toma de tierra y reloj. Las seales restantes tienen unas aplicaciones que se pueden agrupar en las siguientes
categoras:
Arbitraje del bus. Controlan y evitan que dos o ms dispositivos intenten utilizar los buses de direcciones y
datos simultneamente. (La CPU es un dispositivo ms).
Interrupciones. Las interrupciones son seales de entrada que provienen de los dispositivos de entrada/salida.
Se utilizan para comunicarle al procesador que una operacin encargada previamente ya se ha realizado, que
ha habido algn error o simplemente que hay informacin disponible para la CPU, por ejemplo porque se ha
recibido algn carcter por una lnea de comunicaciones. Una interrupcin muy especial es la de RESET, que
rearranca el procesador.
Comunicacin con el coprocesador. Aunque cada vez es ms comn incluirlos en el propio procesador
principal, cuando los procesadores especializados de operaciones numricas o grficas estn separados de la
CPU, se cuenta con unas lneas de comunicacin directa con ellos para sincronizar las operaciones.
Estado. Estas seales dan informacin del estado o tipo de proceso que se est realizando: alimentando una
instruccin, leyendo datos, escribiendo datos, tratando una interrupcin, etc.
Arquitectura de Computadores La CPU - 5
Arquitectura de Computadores La CPU - 5
La CPU Motorola MC68000
MC
68000
datos
dir.
A
1
- A
23
D
0
- D
15
Control de
Bus Asncrono
AS*
R/W*
DTACK*
UDS*
LDS*
CLK
Vcc
GND
Estado del
Procesador
FC2
FC0
FC1
Control de
Perifricos
VPA*
E
VMA*
Control del
Sistema
HALT*
RESET*
BERR*
Control de
Interrupciones
IPL2*
IPL0*
IPL1*
Control de
Arbitraje del Bus
BGACK*
BR*
BG*
(*) Lgica Negativa
D
15
D
8
D
7
D
0
UDS (dir. par) LDS (dir. impar)
D
0
-D
15
(Data): Corresponden a los 16 hilos del bus de datos. Estas seales bidireccionales permiten la lectura o
escritura de datos de 16 bits entre la CPU y la memoria o dispositivos de E/S. Con ayuda de las seales UDS y LDS se
permite seleccionar el byte de mayor peso (UDS), el de menor peso (LDS) o la palabra completa (ambas seales
activadas).
A
1
-A
23
(Address): aunque la CPU internamente utiliza las seales A
0
-A
23
, externamente solamente se dispone de las
23 lneas de mayor peso. A
0
no se utiliza, pues la unidad de transferencia de memoria es la palabra de 16 bits, y todas
las palabras estn en direcciones pares (A
0
= 0). No obstante, para que la CPU pueda acceder a un nico byte de una
direccin impar, se dispone de las seales UDS y LDS que indican si se est accediendo al byte de mayor peso (UDS),
al de menor peso (LDS) o a ambos, pudiendo seleccionar as los bytes a leer o escribir.
UDS (Upper Data Strobe) y LDS (Lower Data Strobe): Los activa la CPU segn su seal A
0
del registro de
direcciones (direccin par o impar) y teniendo en cuenta el tipo de dato de la operacin (byte o word). En la pgina
siguiente podemos ver la tabla de verdad de estas seales y el efecto que producen con una lectura o una escritura.
Tngase en cuenta que en el acceso a una palabra completa de memoria, el byte contenido en D
0
-D
7
corresponde al
byte de direccin ms alta, la impar (LDS), mientras que el contenido en D
8
-D
15
corresponde al byte de la direccin
ms baja, la par (UDS).
AS (Address Strobe): Indica que la direccin presente en el bus de direcciones es vlida. Se utiliza durante las
transferencias de datos.
R/W (Read/Write): Cuando esta seal est activa (a 1) indica que la transferencia de datos es una lectura, mientras
que cuando est desactivada (a 0) es una escritura.
DTACK (Data Acknowledge): Esta seal la activan los dispositivos externos (memoria o perifricos) en las
operaciones de E/S. Durante una lectura, la memoria activa esta seal para indicar que el dato que se quiere leer ya
est en el bus de datos. En una escritura, indica que el dato que se quera escribir ya lo ha tomado el dispositivo o la
memoria. Si la CPU no recibe esta seal o la de Bus Error durante el ciclo de memoria, inserta ciclos de espera
adicionales hasta recibir alguna de las dos seales.
LGICA NEGADA: Es bastante comn que las seales de control de los chips (procesadores, memorias, etc) tengan lgica
negada, es decir, una seal se considera activa con un cero lgico 0, mientras que un uno 1 significa que est desactivada.
Cuando esto es as, el nombre de la seal se suele representar con un asterisco, como por ejemplo: AS*.
Arquitectura de Computadores La CPU - 6
Arquitectura de Computadores La CPU - 6
La CPU Motorola MC68000
A
0
UDS LDS R/W Bus de datos (D
0
-D
15
)
0 act. R Lectura de byte en D
8
-D
15
1 act. R Lectura de byte en D
0
-D
7
0 act. act. R Lectura de word en D
0
-D
15
0 act. act. W Escribe word en D
0
-D
15
1 act. W Escribe byte en D
0
-D
7
0 act. W Escribe byte en D
8
-D
15
Aqu se muestran algunos ejemplos de la operacin que se realiza dependiendo de los valores que
pueda tomar el bit A
0
del registro de direcciones, y las seales de control UDS, LDS y R/W.
Obsrvese que el registro de direcciones es de 24 bits (A
0
A
23
), el cual contiene la direccin
efectiva que le indica la instruccin en ejecucin. No obstante, al establecer las seales en el bus
de direcciones, el bit A
0
no sale al exterior.
Puesto que el 68000 siempre puede acceder al contenido de un par de direcciones en paralelo (por
tener un bus de datos de 16 bits), este par de direcciones siempre se corresponde con una
direccin par y con la inmediata superior (la impar inmediata superior). Para acceder al contenido
de un par de direcciones, este procesador siempre saca por el bus de datos la direccin ms baja
de las dos (la par). Ya que todos los nmeros binarios pares contienen un cero en el dgito de
menor peso, la pata A0 (si existiera) siempre estara a cero. Por esto es por lo que se obvia y se
elimina.
Arquitectura de Computadores La CPU - 7
Arquitectura de Computadores La CPU - 7
La CPU Motorola MC68000
MC
68000
datos
dir.
A
1
- A
23
D
0
- D
15
Control de
Bus Asncrono
AS*
R/W*
DTACK*
UDS*
LDS*
CLK
Vcc
GND
Estado del
Procesador
FC2
FC0
FC1
Control de
Perifricos
VPA*
E
VMA*
Control del
Sistema
HALT*
RESET*
BERR*
T - S - - I
2
I
1
I
0
- - - X N Z V C
15 8 7 0
Control de
Interrupciones
IPL2*
IPL0*
IPL1*
Control de
Arbitraje del Bus
BGACK*
BR*
BG*
Registro
de Estado
BR (Bus Request), BG (Bus Grant), BGACK (Bus Grant Acknowledge): Debido a que en un momento dado, adems de la propia CPU puede
haber algn dispositivo (tpicamente un controlador de DMA) que tambin quiera transmitir informacin por los buses, debe establecerse un
protocolo de acceso al bus. Cuando un dispositivo necesita el bus, activa la seal de peticin BR, y cuando la CPU se lo concede, activa la seal
de concesin BG. El dispositivo entonces responde activando la pata BGACK, que mantendr activa durante la transmisin de la informacin por el
bus.
IPL0, IPL1, IPL2 (Interrupt Priority Level): la combinacin de estas tres seales establece el nivel de prioridad de una interrupcin. El nivel 0
indica que no hay ninguna peticin de interrupcin; el nivel 7 indica una interrupcin no enmascarable, es decir, que no puede ser ignorada por la
CPU. Las interrupciones de nivel 1 a 6 se atienden solamente si su nivel es mayor que el nivel establecido por los bits de la mscara de
interrupcin del registro de estado SR.
FC0, FC1, FC2 (Function Code): La CPU tiene dos modos de funcionamiento, modo Usuario y modo Supervisor. En un momento dado, en cada
uno de estos modos puede estarse leyendo una instruccin o realizando la lectura/escritura de un dato. Tambin es posible que se est
atendiendo una interrupcin. Pues bien, estas seales de control indican el tipo de acceso a memoria que se est realizando en un momento dado.
FC2 FC1 FC0 TIPO DE ACCESO
0 0 1 Acceso a datos de usuario
0 1 0 Acceso a instrucciones de usuario
1 0 1 Acceso a datos de supervisor
1 1 0 Acceso a instrucciones de supervisor
1 1 1 Reconocimiento de interrupcin
BERR (Bus Error): Esta seal la generan los dispositivos perifricos o la memoria si la operacin de L/E o E/S ha tenido cualquier problema. Esta
seal genera automticamente la excepcin Error de Bus en la CPU.
RESET: Esta seal de control es bidireccional. Como salida, responde a la ejecucin de una instruccin RESET, utilizada para reinicializar los
dispositivos externos, y no afecta en absoluto al estado interno de la CPU. Como entrada, se utiliza en combinacin con la seal HALT para
provocar el proceso de reinicializacin de la propia CPU. En el siguiente apartado describiremos este proceso de reinicializacin o arranque del
MC68000.
HALT: Es otra seal bidireccional. Al activarla exteriormente se ponen inactivas todas las seales de control, pone el bus de datos y de direcciones
en alta impedancia y pone a la CPU en estado HALT (detenida). Se sale de este estado al desactivar la seal. Si se activa junto con la seal
RESET, se provoca el rearranque de la CPU. Como salida, la activa la CPU para indicar que se ha producido internamente un error de bus
mientras se estaba tratando otro error de bus anterior.
E (Enable), VMA (Valid Memory Address), VPA (Valid Peripheral Address): La funcin de estas seales es permitir la compatibilidad con los
perifricos diseados para el el procesador 6800, predecesor del 68000.
Vcc, GND, Clock: Estas patas corresponden a la tensin de alimentacin, toma de tierra y reloj respectivamente. La tensin de alimentacin
nominal es de 5 V con respecto a tierra (GND). La frecuencia del reloj depende de cada modelo concreto del procesador, pero est en el rango de
4 a 20 MHz.
Arquitectura de Computadores La CPU - 8
Arquitectura de Computadores La CPU - 8
Motorola MC68000 Proceso de Arranque
HALT RESET
1. Inicializacin de los
registros internos
$FFFFFF
$XXXXXX P I L A (RAM)
$0 XXXXXXXX SP inicial (ROM)
2. Carga del Puntero de
Pila (SSP)
4. Ejecucin del programa
de arranque (IPL)
$YYYYYY IPL (ROM)
. . .
. . .
3. Carga del Contador de
Programa (PC)
$4 YY YY YY YY PC inicial (ROM)
El MC68000 debe ejecutar el proceso de arranque (reset) en cualquiera de estas dos situaciones:
- Al encender el equipo
- Al pulsar el botn de RESET
Esto inicializa sus circuitos internos y los valores de sus registros. Para iniciar el proceso de arranque deben activarse
simultneamente las seales HALT y RESET durante un cierto tiempo (100 ms. en el arranque o 10 ciclos de reloj durante el
funcionamiento normal). Una vez que comienza el proceso de arranque las acciones que se suceden, desde el punto de vista del
programador, son las siguientes:
1. Inicializa sus registros internos. Se pone en modo Supervisor.
2. Lee un valor de 4 bytes de la direccin 0 de memoria y lo copia al registro de pila del supervisor (SSP).
3. Lee un valor de 4 bytes de la direccin 4 de memoria y lo copia al Contador de Programa (PC).
4. Salta a la instruccin apuntada por el PC. Comienza el IPL (Initial Program Loader).
Esto quiere decir que antes de arrancar el ordenador, el contenido de las palabras largas de las direcciones 0 y 4 debe estar
convenientemente inicializado, por lo que estas direcciones debern pertenecer a parte de la memoria ROM o PROM del sistema.
El programa IPL tambin debe residir en ROM, y la pila utilizada, obviamente, deber estar en una zona de memoria RAM. Este
programa se encarga de ejecutar los programas de prueba del hardware del sistema para comprobar su correcto funcionamiento, y
a continuacin procede a la carga del sistema operativo.
La carga del sistema operativo (proceso de boot), comienza por la lectura de la primera pista del disco duro, disquete o CD-ROM
que contiene el sistema operativo a cargar. Esta primera pista contiene el programa de carga del sistema operativo
correspondiente. As pues, lo ltimo que hace el programa IPL residente en ROM es leer la primera pista del disco, considerar lo
ledo como un programa, y cederle el control a este programa. Este programa contenido en la primera pista del disco se encarga de
cargar el sistema operativo de ese mismo disco, y cederle el control cuando acabe su carga e inicializacin.
El proceso de arranque del Pentium de Intel comienza por inicializar los registros internos y ponerse en modo real. El registro de
segmento de cdigo (CS) y el contador de programa (IP) los pone a FFFFH y a 0H respectivamente. Esto quiere decir que tras el
arranque, la primera instruccin que ejecuta es la ubicada en la direccin FFFF0H. El resto del proceso es similar al del MC68000.
Arquitectura de Computadores La CPU - 9
Arquitectura de Computadores La CPU - 9
La CPU Ciclo de Reloj, Memoria e Instruccin
Ensamblador 68000 Cdigo Mquina
MOVEQ.L #$14,D0 7014
MOVE.W #1,(A5) 3ABC 0001
ciclo instruccin ciclo de instruccin
(MOVEQ.L) (MOVE.W)
ciclo memoria
(lectura)
ciclo memoria ciclo memoria ciclo memoria
(lectura) (lectura) (escritura)
ciclo reloj
Un Ciclo de Memoria (tambin conocido como ciclo de bus) es el nombre genrico del ciclo de lectura o escritura en
memoria. Vamos a definir y relacionar los conceptos de Ciclo de Reloj, Ciclo de Memoria (o de bus) y Ciclo de
Instruccin.
Los Ciclos de Reloj estn generados por un oscilador de cuarzo, y constituyen la unidad de tiempo del sistema, de tal
manera que la duracin de cualquier operacin dentro del sistema se mide en ciclos de reloj. En un ordenador pueden
ser distintas las velocidades de la CPU y la del bus (que suele ser ms lenta), por eso nosotros vamos a referirnos
siempre a los tiempos desde el punto de vista del reloj de la CPU.
Supongamos que tenemos una CPU MC68000, que cuenta con un bus de datos de 16 bits, en la que se van a ejecutar
las dos instrucciones que se muestran arriba.
La primera instruccin ocupa 2 bytes, y simplemente escribe una constante en un registro de la CPU. As, para
extraerla de memoria necesita nicamente un ciclo de lectura. Para su ejecucin no requiere ningn ciclo de memoria
adicional, nicamente algn ciclo de reloj para decodificar y ejecutar la instruccin.
La segunda instruccin ocupa 32 bits, y escribe una constante en una direccin de memoria. Por esto, se requieren dos
ciclos de lectura solamente para extraer la instruccin. Su ejecucin requiere un tiempo para decodificar la instruccin y
extraer la constante de la segunda palabra de la instruccin ms un ciclo de escritura para escribir la constante en
memoria. Esto suma en total 3 ciclos de memoria, ms unos cuantos ms de reloj.
El conjunto de ciclos de reloj que requiere un procesador para extraer y ejecutar una instruccin se denomina Ciclo de
Instruccin.
Como hemos visto, un ciclo de instruccin ocupa uno o ms ciclos de memoria para extraer la instruccin, despus
consume algn ciclo ms de reloj para decodificacin y ejecucin de la instruccin. Esto puede incluir algn ciclo de
memoria adicional para leer operandos o escribir el resultado.
La extraccin y ejecucin de una instruccin requiere una serie de ciclos de reloj completos. El tiempo correspondiente
a estos ciclos de reloj puede estar ocupado por accesos a memoria (ciclos de memoria) o por ejecucin interna de la
CPU. Obviamente, los ciclos de memoria consumidos son ciclos completos, es decir, que no tiene sentido decir que
una instruccin requiere 3,5 ciclos de memoria.
Arquitectura de Computadores La CPU - 10
Arquitectura de Computadores La CPU - 10
La CPU Ciclo de Reloj, Memoria e Instruccin
Todos los ciclos de reloj son iguales
Los ciclos de memoria son distintos (lecturas y escrituras)
- Todos los ciclos de lectura son iguales
- Todos los ciclos de escritura son iguales
Los ciclos de instruccin son distintos
Las instrucciones ocupan ciclos completos
de memoria ms algn ciclo de reloj
En la misma
memoria
En un ordenador dado, todos los ciclos de reloj son iguales.
El tiempo que se tarda en leer o escribir en un determinado tipo de memoria, es siempre el mismo.
No obstante, el tiempo de las lecturas puede ser distinto del necesario para realizar las las
escrituras.
La duracin de las instrucciones vara, dependiendo de la complejidad de la instruccin (una
divisin requiere ms tiempo de clculo que una suma o una copia de datos) y de los accesos a
memoria que sean necesarios para su extraccin y acceso a operandos.