Upload
jonathan-ruiz-de-garibay
View
1.962
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
Sistemas Basados en
Microprocesadores
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.
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
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
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?
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
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
http://paginaspersonales.deusto.es/jonathan.garibay/
ALU: Unidad Aritmético-Lógica (continuación…)
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
...
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
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
…