11
Sistemas Basados en Microprocesadores Unidad Central de Proceso

02c.Unidad central de proceso

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 02c.Unidad central de proceso

Sistemas Basados en

Microprocesadores

Unidad Central de Proceso

Page 2: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

CPU: Unidad Central de Proceso

Es la responsable de la interpretación y ejecución de

las instrucciones guardadas en la memoria de

programa.

Muchas de las instrucciones operan sobre la memoria de

datos, para lo que se usa además la ALU (Unidad

Aritmético-Lógica)

La CPU controla el bus de direcciones de la

memoria de programa, el bus de direcciones de la

memoria de datos y el acceso a la pila.

Para la sincronización del funcionamiento de la CPU

(y con ello de todo el µcontrolador) se utiliza un

circuito oscilador.

Page 3: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

CPU: Unidad Central de Proceso (continuación…)

Ejecución segmentada de instrucciones:

En la mayoría de los procesadores, las instrucciones se buscan en la memoria y ejecutan de forma secuencial.

En la ejecución Pipe-Line ambas fases se solapan de forma que, una instrucción se ejecuta al tiempo que se busca la siguiente, en un mismo ciclo.

Cualquier instrucción de salto emplea dos ciclos para su búsqueda y ejecución.

Se inserta una instrucción NOP automáticamente.

1 movlw 0x55

2 movwf PORTB

3 call subr

4 bsf PORTA,RA3

Ejecuta 1ªBusca 1ª

Ejecuta 2ªBusca 2ª

Ejecuta 3ªBusca 3ª

Busca 4ª NOP

Busca 1ª

subr

En las instrucciones de

salto se inserta NOP

Page 4: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

CPU: Unidad Central de Proceso (continuación…)

La entrada de reloj está “dividida” internamente

entre cuatro (Q1, Q2, Q3 y Q4), creando relojes

internos utilizados para la decodificación de las

instrucciones

El contador de programa se incrementa a cada pulso del

primero (Q1) de los cuatro relojes internos.

La ejecución de una instrucción y la lectura de la

siguiente se realiza en paralelo y se finalizan en el pulso

del cuarto reloj (Q4).FOSC = 4MHz TOSC = 250nS TINST = 1µS 1MIPS

FOSC = 20MHz TOSC = 50nS TINST = 200nS 5MIPS

MIPS = Millones de instrucciones por segundo

Page 5: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

CPU: Unidad Central de Proceso (continuación…)

Cada ciclo Q provee la sincronización para los siguientes

eventos:

Q1 decodificación de la instrucción.

Q2 lectura del dato (si lo hay)

Q3 procesa el dato

Q4 escribe el dato

PC = PC + 2

Realiza la lectura de la

siguiente instrucción a ejecutar

¿Y cuando se produce un reset?

¿Y cuando se produce un salto?

Page 6: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

Realiza todas las operaciones aritméticas y lógicas

indicadas en las instrucciones.

Instrucciones con un solo operando

Se trabaja siempre con un registro de la memoria de datos

Instrucciones con dos operandos

El registro de trabajo W es siempre uno de los operandos

El otro operando puede ser un literal o un registro de la

memoria de datos

La ALU genera una serie de señales o códigos de

condición para indicar casos como acarreo saliente,

overflow, resultado cero, etc.

ALU: Unidad Aritmético-Lógica

Page 7: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

ALU: Unidad Aritmético-Lógica (continuación…)

Bus de datos

Multiplicador de 8 bits

Unidad Aritmético-Lógica

Registro de trabajo

Resultado del

multiplicador

Page 8: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

ALU: Unidad Aritmético-Lógica (continuación…)

Page 9: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

ALU: Unidad Aritmético-Lógica (continuación…)

Instrucciones de operación orientada a un registro addwf f,d,a: suma “f” y WREG

addwfc f,d,a: suma “f”, WREG y el bit carry

andwf f,d,a: operación AND entre “f” y WREG

decf f,d,a: decremento de “f”

clrf f,a: registro “f” igual a cero

movwf f,d,a: mueve “f” a WREG

mulwf f,d,a: multiplica “f” con WREG

rlcf f,d,a: rota “f” a la izquierda pasando por carry

rlncf f,d,a: rota “f” a la izquierda sin pasar por carry

Instrucciones de operación orientada a un registro con salto decfsz f,d,a: decrementa “f”, salta si “f” es igual a cero

dcfsnz f,d,a: decrementa “f”, salta si “f” no es igual a cero

...

Page 10: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

ALU: Unidad Aritmético-Lógica (continuación…)

Instrucciones de operación orientada a un bit

bcf f,b,a: bit “b” del registro “f” igual a cero

bsf f,b,a: bit “b” del registro “f” igual a uno

btg f,b,a: cambia el estado del bit “b” del registro “f”

Instrucciones de operación orientada a un bit con

salto

btfsc f,b,a: verifica el bit “b” del resguitro “f”, salta si es

cero

btfss f,b,a: verifica el bit “b” del resguitro “f”, salta si es

uno

Page 11: 02c.Unidad central de proceso

http://paginaspersonales.deusto.es/jonathan.garibay/

ALU: Unidad Aritmético-Lógica (continuación…)

Instrucciones de operación orientada a un literal

addlw k: suma “k” y WREG

andlw k: operación AND entre “k” y WREG

movlw k: mueve “k” a WREG

mullw k: multiplica “k” con WREG

Instrucciones de control con bits de estado

bc n: ve a la dirección “n” si hay carry

bn n: ve a la dirección “n” si hay negative

bnc n: ve a la dirección “n” si no hay carry