Está en la página 1de 10

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

Arquitectura de Computadores

La CPU - 1

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 exclusivamente a este concepto.

Arquitectura de Computadores

La CPU - 1

La Unidad Central de Proceso


Registros
Generales

A+B
A
B

Unidad
A

de
Control

ALU
A+B

a la memoria
y dispositivos de E/S
Arquitectura de Computadores

La CPU - 2

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 - 2

La CPU

Operacin Interna en la CPU

Ciclo de Instruccin

Alimenta instr. de memoria

Acceso a Memoria
Extrae
instruccin

CP Sig. instruccin
Decodifica la instruccin
Calcula direccin de operandos
de registros
internos

Extrae los operandos

de memoria
principal

Opera con los datos


Calcula dir. del destino
en registros
internos

Almacena resultado

Arquitectura de Computadores

en memoria
principal
La CPU - 3

Una CPU con arquitectura von Neumann ejecuta las instrucciones segn el ciclo alimentardecodificar-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 - 3

Interfaz Hardware

La CPU

Datos

Dir.

peticin
concesin

Procesador
Genrico

Interrup.

peticin
aceptacin

Arbitraje
de Bus
Coprocesador
Lec/Esc
Estado
Miscelneas

Reset

+5 V

- DATOS
- DIRECCIONES

Seales de - CONTROL
Arquitectura de Computadores

La CPU - 4

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 (tamao de
los registros generales de la CPU), aunque puede no ser as (en el Intel 8088, la palabra es de 16 bits y el
bus de datos de 8, lo cual 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 a la memoria principal del
procesador; as, un procesador con 32 pines puede direccionar 232 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 - 4

Motorola MC68000

La CPU

Vcc

dir.

GND

datos

CLK
FC0

Estado del
Procesador

FC1
FC2

AS*

MC
68000

R/W*
UDS*
LDS*

A1 - A23
D0 - D15
D15
D8 D7
D0
UDS (dir. par) LDS (dir. impar)

Control de
Bus Asncrono

DTACK*
E

Control de
Perifricos

Control del
Sistema

VMA*
VPA*

BR*
BG*
BGACK*

BERR*

IPL0*

RESET*

IPL1*

HALT*

IPL2*

Control de
Arbitraje del Bus
Control de
Interrupciones
(*) Lgica Negativa

Arquitectura de Computadores

La CPU - 5

D0-D15 (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).
A1-A23 (Address): aunque la CPU internamente utiliza las seales A0-A23, ya que el bus de datos puede transferir el
contenido de dos celdas simultneamente, a las celdas de memoria se accede realmente de dos en dos, es decir, por
pares de direcciones. As, lo que la CPU debe indicar con las seales de direcciones es el nmero de par al que quiere
acceder, no la direccin de la celda concreta. Como se explicar detalladamente en el captulo dedicado a la memoria
principal, el nmero del par correspondiente se consigue desechando el bit de menor peso de las direcciones (A0), por
lo que solamente se sacan al exterior los 23 hilos de mayor peso (A1-A23).
UDS (Upper Data Strobe) y LDS (Lower Data Strobe): Ya hemos visto que por el bus de datos pueden transferirse el
contenido de dos celdas de memoria, no obstante, para que la CPU pueda acceder a ellos de manera independiente,
se dispone de las seales UDS y LDS que indican si se est accediendo al byte que ocupa los bits de mayor peso del
bus de datos (UDS), al que ocupa los de menor peso (LDS) o a ambos, pudiendo seleccionar as los bytes concretos a
leer o escribir. Estas seales las activa la CPU segn su seal interna A0 del registro de direcciones (direccin par o
impar) y teniendo en cuenta el tipo de dato de la operacin (byte o word). Obsrvese que en el acceso a una palabra
completa de memoria, el contenido de la direccin ms baja (la par) viaja por los hilos D8-D15 del bus de datos, y se
selecciona con la seal UDS, mientras que el byte de direccin ms alta (la impar) va por los hilos D0-D7 , y se
selecciona con la seal LDS.
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 - 5

Motorola MC68000

La CPU

A0 UDS LDS
0

act.

R/W

Bus de datos (D0-D15)

Lectura de byte en D8-D15

act.

Lectura de byte en D0-D7

act.

act.

Lectura de word en D0-D15

act.

act.

Escribe word en D0-D15

act.

Escribe byte en D0-D7

Escribe byte en D8-D15

1
0

act.

Arquitectura de Computadores

La CPU - 6

Aqu se muestran algunos ejemplos de las operaciones que se realizan dependiendo de los valores
que toman las seales de control UDS, LDS y R/W.
Se recuerda que cuando el acceso es a un dato de tipo BYTE de direccin par, se activa
exclusivamente la seal UDS, y si es impar, se activa solamente LDS. Si el dato es de tipo WORD
(2 bytes consecutivos), se activan simultneamente ambas seales UDS y LDS.

Arquitectura de Computadores

La CPU - 6

Motorola MC68000

La CPU

Vcc

dir.

GND

datos

CLK

D0 - D15

AS*

FC0

Estado del
Procesador

A1 - A23

R/W*

MC
68000

FC1
FC2

Control de
Bus Asncrono

UDS*
LDS*
DTACK*

Control de
Perifricos

BG*

VPA*

Control del
Sistema
Registro
de Estado

BR*

VMA*

BGACK*

BERR*

IPL0*

RESET*

IPL1*

HALT*

IPL2*

15

Arquitectura de Computadores

I2 I1 I0

Control de
Arbitraje del Bus
Control de
Interrupciones
0

C
La CPU - 7

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 - 7

Proceso de Arranque

Motorola MC68000

HALT

RESET

$0 XXXXXXXX SP inicial (ROM)


$4 YY YY YY YY PC inicial (ROM)

1. Inicializacin de los
registros internos

$YYYYYY

2. Carga del Puntero de


Pila (SSP)
3. Carga del Contador de
Programa (PC)
4. Ejecucin del programa
de arranque (IPL)

$XXXXXX

IPL
...
...

PILA

(ROM)

(RAM)

$FFFFFF

Arquitectura de Computadores

La CPU - 8

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. 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 - 8

Ciclo de Reloj, Memoria e Instruccin

La CPU

Ensamblador 68000
MOVEQ.L #$14,D0
MOVE.W #1,(A5)

Cdigo Mquina
7014
3ABC 0001

ciclo reloj
ciclo memoria
(lectura)

ciclo memoria ciclo memoria


(lectura)
(lectura)

ciclo instruccin

ciclo de instruccin

(MOVEQ.L)

(MOVE.W)

Arquitectura de Computadores

ciclo memoria
(escritura)

La CPU - 9

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 - 9

Ciclo de Reloj, Memoria e Instruccin

La CPU

9 Todos los ciclos de reloj son iguales


9 Los ciclos de memoria son distintos (lecturas y escrituras)
- Todos los ciclos de lectura son iguales
- Todos los ciclos de escritura son iguales

En la misma
memoria

9 Los ciclos de instruccin son distintos


9 Las instrucciones ocupan ciclos completos
de memoria ms algn ciclo de reloj

Arquitectura de Computadores

La CPU - 10

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.

Arquitectura de Computadores

La CPU - 10

También podría gustarte