Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROCESADOR
PROCESADOR
RECINTO UNIVERSITARIO SIMON BOLIVAR Facultad de Electrotecnia y Computacin Departamento de Arquitectura y Sistemas
INDICE DE CONTENIDO
ORGANIZACION DEL PROCESADOR EL PROCESADOR INSTRUCCIN Y CICLO DE INSTRUCCIN ELEMENTOS PARA ESTRUCTURAR EL PROCESADOR ESTRUCTURA BSICA DEL PROCESADOR ARQUITECTURAS DE ACUMULADOR, PILA Y REGISTROS. MQUINA DE ACUMULADOR MQUINA DE PILA MQUINA DE REGISTROS.
1 1 1 1 2 4 4 5 6
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 .
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). Llevar control de la secuencia de instrucciones: Se necesita un secuenciador de instrucciones, es decir, un mecanismo que vaya indicando una a una las instrucciones a cargar desde la memoria. Para ello, todas las instrucciones del programa a ejecutar deben estar almacenadas de forma secuencial en la memoria. El secuenciador se implementa empleando un registro que inicialmente se hace apuntar a la primera instruccin del programa y luego se incrementar para apuntala a la siguiente y as en lo sucesivo. Este registro de llama contador de programa o PC por sus siglas en ingls. Este enfoque es muy flexible pues el PC, puede incrementarse dentro del procesador una vez cargada la instruccin para que apunte a la siguiente. Otra ventaja, es en el caso de la implementacin de saltos o llamados a subrutinas, pues slo se pone en el PC la direccin destino del salto o la subrutina y as controlamos el flujo de instrucciones en el programa. 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
CU
MDR
Bus Interno del Procesador Data MEMORIA
IR
R0
Bus del sistema
PC
R1
. . .
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. El PC es incrementado por el esquema de secuenciamiento para apuntar a la siguiente direccin. 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
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 .
PC
MAR
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 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.
Acc
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
I I ,
C U R S O
2 0 0 7 .
Las pilas ms comunes son las de empuje hacia abajo, es decir, que inician en la direccin ms alta de memoria y crecen en el sentido de las direcciones de memoria ms bajas. La organizacin de la mquina de pila es mostrada en la figura 2.4 . El registro SP es el puntero a Pila, es un registro que siempre tiene la direccin de la ltima palabra insertada en la pila: Tope de pila o TOS (Top of Stack). En funcin de este registro, tambin se puede obtener el elemento inmediato bajo TOS: Prximo en pila o NOS (Next on Stack). En el evento de una operacin binaria, el primer operando ser removido de la pila y mantenido en el registro TEMP. El segundo operando ser directamente llevado de la pila a la entrada derecha de la ALU, que en nuestro ejemplo corresponde al puerto x o primer operando. El resultado de la operacin es almacenado en la cabeza o tope de la pila. Instrucciones tpicas para una mquina de pila son: Instruccin PUSH X PUSH (m) PUSH n POP Z POP (m) ADD SUB MUL DIV NOS: Next on the stack Operacin
PC
MAR
SP
ALU
TOS M(X) TOS M(m) TOS n M(Z) TOS M(m) TOS (TOS) = (NOS) + (TOS) = (NOS) (TOS) = (NOS) * (TOS) = (NOS) /
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 R2 IR 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 ADD Rd, Rf1, Rf2 SUB Rd, Rf1, Rf2 MUL Rd, Rf1, Rf2 DIV Rd, Rf1, Rf2 Operacin ; Rd ; Rd ; Rd ; Rd Rf1 + Rf2 Rf1 - Rf2 Rf1 * Rf2 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 ; Rd ; Rd ; M(m) ; Rd ; Rd ; Rd ; Rd Rf n | n es un nmero M(m) ; m es una direccin en memoria Rf ; m es una direccin en memoria Rf + Rd Rf - Rd Rf * 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