Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procesador
Procesador
Folleto de
Arquitectura de Mquinas Computadoras II
UNIDAD III
Curso 2007
2007
Preparado por:
Harriete Martnez Cano
INDICE DE CONTENIDO
2.1
EL PROCESADOR
2.2
2.3
2.4
2.5
2.5.1
MQUINA DE ACUMULADOR
2.5.2
MQUINA DE PILA
2.5.3
MQUINA DE REGISTROS.
A R Q U I T E C T U R A
D E
M Q U I N A S
C O M P U T A D O R A S
I I ,
C U R S O
2 0 0 7 .
FASE FETCH
FASE EXECUTE
Poder acceder a memoria para leer las instrucciones y los operandos as como escribir los resultados. Se
necesita acceder a la direccin de memoria que apunta el PC para leer la prxima instruccin. De acuerdo a la
instruccin, puede requerirse leer de memoria los operandos y/o escribir a memoria, los resultados de la operacin.
Pgina 1
A R Q U I T E C T U R A
D E
M Q U I N A S
C O M P U T A D O R A S
I I ,
C U R S O
2 0 0 7 .
Para esto, el CPU debe tener un registro conectado al bus de direcciones donde poner la direccin a acceder. A este
registro lo llamaremos registro de direccin de memoria o MAR por sus siglas en ingls. Tambin requerimos otro
conectado al bus de datos donde poner el valor a escribir o tomar el valor ledo desde la memoria. Este lo
llamaremos registro de datos de memoria o MDR por sus siglas en ingls. Por supuesto, se necesita una forma de
indicarle a la memoria que realice la operacin de lectura o escritura y adems poder saber cuando la memoria
termin la operacin, sobre todo la de lectura. Hasta entonces el procesador puede asumir que en el MDR hay datos
vlidos. Estas seales se implementan en la unidad de control: READ, WRITE, (que puede ser una sola lnea del
Procesador R/W, 0 =R; 1 =W, adems de alguna lnea de habilitacin de Memoria.) y MFC (Que en nuestro caso
ser parte de la lgica de control de Memoria y que indicar al CPU que la funcin de memoria se ha completado).
Guardar la instruccin en un lugar donde la unidad de control la pueda interpretar. Para que durante la ejecucin
de la instruccin, se pueda acceder a su contenido en cualquier momento, es necesario otro registro para almacenar la
instruccin durante la fase de ejecucin. Este registro se le denomina registro de instrucciones o IR por sus siglas en
ingls. El IR est conectado directamente a los circuitos de la unidad de control.
Poder realizar clculos aritmticos y lgicos. Para esto el CPU requiere de una unidad de clculos aritmticos y
lgicos a la que llamaremos ALU por sus siglas en ingls. Realiza todas las operaciones aritmticas, como la suma y la
resta. Y lgicas como AND, OR, XOR, NOT, etc. Tambin realiza otras operaciones como comparaciones y
operaciones a nivel de Bits.
Obtener los operandos para realizar las operaciones. Estos pueden estar en memoria, ser definidos directamente
en la instruccin o residir en un almacenamiento interno del CPU. Es ventajoso mantener los operandos dentro del
CPU. Para esto se pueden disponer de registros de propsito general con los cuales pueda la ALU realizar las
operaciones.
Mantener el estado de la mquina. Para esto se requieren tener banderas y cdigos de condicin. Por ejemplo,
para comparar dos nmeros se puede restar el primero del segundo y si el resultado fue cero, podemos asegurar que
son iguales. Si el resultado de diferente de cero y positivo, el primero es mayor pero si es negativo, el segundo es
mayor. Para llegar a estas conclusiones necesitamos almacenar las condiciones de resultados como cero (Z), Signo
(S), etc. Estas banderas y cdigos se almacenan en un registro llamado F o Flags.
Interpretar la instruccin y luego controlar la ejecucin de todos los pasos para ejecutarla. Para esto se
requiere de una unidad de control o CU que tenga un decodificador capaz de interpretar los diferentes campos
lgicos del formato de instrucciones. Adems esta unidad debe poder generar las seales necesarias para que se
realicen todos los pasos del ciclo de instruccin adecuadamente.
Pgina 2
A R Q U I T E C T U R A
D E
M Q U I N A S
C O M P U T A D O R A S
I I ,
C U R S O
2 0 0 7 .
Uso de conexin directa: Consiste en realizar la conexin cableada directamente de la salida de un elemento a
la entrada del otro. En caso de requerirse lgica de enrutamiento, se emplean los elementos digitales adecuados
como multiplexores.
Uso de Buses: Consiste en definir un conjunto de lneas para interconectar mltiples elementos entre s. Debe,
sin embargo, implementarse la lgica de control que garantice el enrutamiento del dispositivo fuente al destino.
Cabe mencionar que debe evitarse que dos dispositivos sean fuente en el bus de forma simultnea pues esto
provocara cortocircuitos en las lneas cuando esta est sometida a dos valores lgicos diferentes.
La figura a continuacin muestra un ejemplo de estructura de CPU con una posible interconexin de los elementos
mediante buses.
MAR
Address
MDR
Data
IR
PC
CU
MEMORIA
R0
R1
.
.
.
Rn
ALU
SP
Flags
TMP
Pgina 3
A R Q U I T E C T U R A
D E
M Q U I N A S
C O M P U T A D O R A S
I I ,
C U R S O
2 0 0 7 .
Ejecucin de la instruccin:
Habiendo definido una estructura organizativa para nuestro procesador, estudiemos de forma general, los pasos para traer y
ejecutar una instruccin basndonos en stos elementos constructivos:
El PC tiene siempre la direccin de la prxima instruccin (Cuando la mquina se enciende, ste se inicializa por
hardware para apuntar la primera instruccin del programa de arranque). Primero el contenido del PC es transferido al
MAR y la unidad de control enva una seal de lectura a la memoria.
Despus de un cierto tiempo correspondiente al tiempo de acceso de memoria, la palabra direccionada (la instruccin del
programa) es leda de la memoria y cargada en el MDR.
El contenido del MDR es transferido al IR Ahora la instruccin esta lista para ser decodificada y ejecutada.
Si dicha instruccin involucra una operacin que requiere operandos y estos residen en la memoria (ya que podran estar
en los registros generales del procesador) tienen que ser trados enviando su direccin al MAR e iniciando un ciclo de
lectura.
Cuando el operando ha sido ledo y trasladado de la memoria al MDR, entonces ser transferido del MDR a la ALU o a
algn registro de trabajo auxiliar para almacenarlo temporalmente mientras se traen otros operandos. La operacin se
repite para traer todos los operandos, normalmente dos.
Se ejecuta la operacin, mediante la ALU y el resultado es enviado al MDR si debe ser almacenado en memoria o al
registro destino en el CPU. Si los operandos o el resultado requiere acceso al subsistema de E/S, se procese de igual
forma que si se accede a Memoria, excepto que la UC se encarga de habilitar el dispositivo especfico en lugar de la
Memoria.
Pgina 4
A R Q U I T E C T U R A
D E
PC
M Q U I N A S
MAR
C O M P U T A D O R A S
I I ,
C U R S O
2 0 0 7 .
MDR
Memoria e
Interface de
E/S
IR
Acc
Unidad
de
Control
ALU
En este tipo de procesador tenemos dos instrucciones de acceso a memoria: la que carga un dato al acumulador y la
almacena el acumulador en memoria. Las instrucciones binarias se realizan con el acumulador como primer operando y un
operando en memoria o definido directamente como nmero. Por ejemplo:
INSTRUCCION
LOAD X
LOAD (m)
LOAD n
STORE X
STORE (m)
ADD X
ADD (m)
ADD n
OPERACIN
Acc M(X) ; X es una variable de memoria
Acc M(m) ; m es una direccin de memoria
Acc n
; n es un nmero entero.
M(X) Acc ; X es una variable de memoria
M(m) Acc ; m es una direccin de memoria
Acc (Acc) + M(X) ; X es una variable de memoria
Acc (Acc) + M(m) ; m es una direccin de memoria
Acc (Acc) + n
; n es un nmero entero.
Ejemplos de procesadores basados en acumulador son el IAS de Von Neumann, el M6502 y el 6809 de Motorola. Este
ltimo cuenta con dos acumuladores A y B.
Pgina 5
A R Q U I T E C T U R A
D E
M Q U I N A S
C O M P U T A D O R A S
PC
I I ,
MAR
C U R S O
SP
2 0 0 7 .
Area de la
memoria para
pila
Resto de la
memoria
IR
Unidad
de
Control
temp
ALU
Operacin
PUSH X
PUSH (m)
PUSH n
POP Z
POP (m)
ADD
SUB
MUL
DIV
TOS M(X)
TOS M(m)
TOS n
M(Z) TOS
M(m) TOS
(TOS) = (NOS) +
(TOS) = (NOS) (TOS) = (NOS) *
(TOS) = (NOS) /
(TOS)
(TOS)
(TOS)
(TOS)
En la actualidad no existen ejemplos de esta organizacin en forma pura, sin embargo existieron mquinas que se
construyeron con esta arquitectura como las grandes computadoras Burroughs B5500, B6500 y B6700 y la minicomputadora
HP3000. Una de las ventajas de esta arquitectura es que el compilador slo necesita convertir a postfija las expresiones
algebraicas y luego hacer una traduccin directa a ensamblador, empleando PUSH por cada aparicin de variable y la
operacin correspondiente con cada operando. El pop es un caso especial; que corresponde a la asignacin y se evala al final
y adems arrastra consigo al miembro izquierdo de la expresin.
A R Q U I T E C T U R A
D E
M Q U I N A S
C O M P U T A D O R A S
I I ,
C U R S O
2 0 0 7 .
programa. Algunos procesadores tienen algn destino especfico para algunos de ellos; el registro F (Flag) o PSW (Processor
status Word) es un registro de banderas y/o cdigos de condicin que mantiene informacin importante del estado del
procesador o del desarrollo del programa. Por ejemplo, cuando el resultado de una operacin fue cero (bandera Z = 1) o
cuando ocurri un acarreo (bandera C = 1).
PC
MAR
MDR
Memoria e
Interface de
E/S
R0
R1
IR
R2
Unidad
de
Control
Rm-1
ALU
Con procesadores de registros generales podemos tener instrucciones de dos y tres operandos. En mquinas 2
operandos, el destino o resultado de la operacin est implcito en uno de los dos operandos. Este fenmeno se denomina
lectura destructiva de operandos, pues el valor del registro que es a la vez operando y destino se pierde por sobre escritura del
resultado.
Instrucciones de 3 operandos
Instruccin
Operacin
; Rd Rf1 + Rf2
; Rd Rf1 - Rf2
; Rd Rf1 * Rf2
; Rd Rf1 / Rf2
Instrucciones de 2 operandos
MOV Rd, Rf
MOV Rd, n
MOV Rd, [m]
MOV [m], Rf
ADD Rf, Rd
SUB Rf, Rd
MUL Rf, Rd
DIV Rf, Rd
; Rd Rf
; Rd n | n es un nmero
; Rd M(m) ; m es una direccin en memoria
; M(m) Rf ; m es una direccin en memoria
; Rd Rf + Rd
; Rd Rf - Rd
; Rd Rf * Rd
; Rd Rf / Rd
Procesadores del tipo de registros de propsito general son la mayora de las mquinas grandes modernas y los procesadores
RISC por excelencia. Ejemplos: IBM 370, VAX-11 de DEC, MC 68000 de Motorota, MIPS en todos sus modelos, SPARC,
PowerPC, ARM.
Pgina 7
A R Q U I T E C T U R A
D E
M Q U I N A S
C O M P U T A D O R A S
I I ,
C U R S O
2 0 0 7 .
Los diseadores modernos de computadoras, valorando las virtudes de cada estructura han adoptado maneras de
implementar mquinas con todas las ventajas de cada una, eliminando las limitaciones que tenan cada una por separado. Por
ejemplo, la familia 80x86 de INTEL, son mquinas orientadas a acumulador con una cantidad no muy abundante de registros
de propsitos generales con una pila integrada adems.
Para entender mejor cmo varan las instrucciones respecto a cada estilo de CPU, se presenta a continuacin un
ejemplo que permite hacer comparaciones entre los diferentes tipos. Se tiene la siguiente sentencia en pascal: D := A + B * C,
Escriba la secuencia de instrucciones en lenguaje de mquina con tres, dos, una y una y cero direcciones.
Tres operandos: (Suponer A est en R1, B en R2 y C en R3, R4 es D)
MUL R4, R2, R3
; D = (B) * (C)
ADD R4, R1, R4
; D = (A) + (B * C)
Dos operandos: (Suponer A est en R1, B en R2 y C en R3, R4 es D)
MOV R4, R3
;D = ( C)
MUL R2, R4
;D = (B)*(C)
ADD R1, R4
;D = (A) + (D)
Un operando (Acumulador) :
LOAD B
MULT C
ADD A
STORE D
;Acc= (B)
;Acc= (A)*(C)
;Acc= (Acc) + (A)
;D = (Acc)
Mquina de Pila:
PUSH A
PUSH B
PUSH C
MUL
ADD
POP D
Pgina 8
; calcula B*C
; suma A a B*C
; salva resultado