02c.Unidad central de proceso

  • 1,571 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,571
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
53
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Sistemas Basados en Microprocesadores Unidad Central de Proceso
  • 2. 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/
  • 3. 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. Busca 1ª Ejecuta 1ª En las instrucciones de salto se inserta NOP Busca 2ª Ejecuta 2ª1 movlw 0x55 Busca 3ª Ejecuta 3ª2 movwf PORTB Busca 4ª NOP3 call subr Busca 1ª4 bsf PORTA,RA3 subr http://paginaspersonales.deusto.es/jonathan.garibay/
  • 4. 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/
  • 5. 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 Realiza la lectura de la siguiente instrucción a ejecutar  Q4  escribe el dato PC = PC + 2 ¿Y cuando se produce un reset? ¿Y cuando se produce un salto? http://paginaspersonales.deusto.es/jonathan.garibay/
  • 6. ALU: Unidad Aritmético-Lógica Realizatodas 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. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 7. ALU: Unidad Aritmético-Lógica (continuación…) Bus de datos Resultado del multiplicador Multiplicador de 8 bits Registro de trabajo Unidad Aritmético-Lógica http://paginaspersonales.deusto.es/jonathan.garibay/
  • 8. ALU: Unidad Aritmético-Lógica (continuación…) http://paginaspersonales.deusto.es/jonathan.garibay/
  • 9. 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/
  • 10. 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/
  • 11. 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 … http://paginaspersonales.deusto.es/jonathan.garibay/