1 Introducción a los microprocesadores

Anuncio
4. – INTRODUCCIÓN A LOS 4. –
MICROPROCESADORES
Introducción a los microprocesadores
Arquitectura de un sistema microprocesador q
p
Diagrama de bloques
Lenguaje de programación
Funcionamiento de un microprocesador
Introducción a los microprocesadores
Comparación de números
Sistemas basados en microprocesadores
Hardware fijo + Software
Hardware fijo + Software
ASIC SC
Hardware fijo
Microprocesadores
(Propósito general)
( p
g
)
Microcontroladores
DSPs (Procesado di
digital de señal)
i ld
ñ l)
PLDs / FPGAs
/ G
Hardware flexible
Introducción a los microprocesadores
Elementos constituyentes de un sistema microprocesador Comparación de números
• Tres partes claramente diferenciadas:
Hardware
Software
Conjunto de instrucciones que ejecuta el sistema.
Circuitos físicos que implementan
el sistema: CPU, Memoria,
Periféricos, Buses.
• Programas
• Estructura Von Neumann
• Estructura Harvard
Firmware
Es un software grabado en la
estructura electrónica del sistema
microprogramable.
• BIOS
(B i
(Basic
System) en los PCs
I
Input/Output
t/O t t
Introducción a los microprocesadores
Campos de aplicación
Comparación de números
• Control y supervisión de procesos industriales
C t l
i ió d
i d ti l




Control de maquinaria
Control
de maquinaria
Robótica
Automatización de procesos
Comunicaciones industriales
• Tratamiento de información
 Procesado de imagen y de audio
Procesado de imagen y de audio
 Televisión y radio digital
 Telefonía móvil
Introducción a los microprocesadores
Campos de aplicación
Comparación de números
• Electrónica de consumo
• Electrónica del automóvil
• Instrumentación
Arquitectura de un sistema microprocesador
Diagrama de bloques
Comparación de números
CPU (Central Procesing Unit): Es el
núcleo del sistema y controla el resto
de componentes.
Memoria: Almacena las instrucciones
y los datos necesarios para la CPU.
Puertos de entrada/salida: Permiten
la comunicación del sistema con el
exterior.
Buses del sistema (Bus de control, Bus de direcciones y Bus de datos): Permiten la
conexión
ió de
d la
l CPU con ell resto
t de
d componentes
t
Arquitectura de un sistema microprocesador
CPU
Comparación de números
ALU (Aritmetic Logic Unit): Esta
formada por un circuito combinacional
complejo que se encarga de realizar
las operaciones aritméticas (suma,
resta,…),
)
ló i
lógicas
(AND
(AND,
OR )
OR,…),
desplazamientos, etc.
PROCESADOR
UNIDAD DE CONTROL
Máquina de estados Finitos
(FSM)
DATAPATH
ALU
Operandos
DI (Decodificador de instrucciones)
CLK
Resultado
Registros
A0
A1
PC
IR
A2
A3
Registros de propósito general: Son
pequeñas memorias interna, donde se
almacenan
temporalmente
los
resultados
intermedios
de
las
operaciones.
CU (Control Unit): Se encarga de gobernar el funcionamiento global del sistema. Esta formada por un
circuito secuencial complejo que se encarga de generar todas las señales de control necesarias, el
contador de programa (PC) que indica en que posición de la memoria se encuentra la próxima
instrucción a ejecutar, el registro de instrucciones (IR) que almacena la instrucción a ejecutar y el
decodificador de instrucciones (DI),
(DI) dispositivo que traduce las instrucciones del programa a
microordenes para saber los pasos que se deben realizar para la ejecución de la instrucción.
Arquitectura de un sistema microprocesador
Memoria
Comparación de números
Circuito
Ci
it integrado
i t
d que almacena
l
i f
información
ió organizada
i d en forma
f
d
de
arrays de bits.
D7..D0
110
Bus de datos
Bus de direcciones
Bus de control
Bus de direcciones:
Bus
de direcciones: Selecciona el acceso a una determinada posición de memoria. Selecciona el acceso a una determinada posición de memoria
2n posiciones
Bus de datos: Dato a leer o a escribir. Tamaño de la palabra: m bits
Bus de control: Habilitación del integrado, selección de operación
Bus de control:
Habilitación del integrado, selección de operación
Capacidad de la memoria: 23 x 8 bits = 64 bits=8 Bytes (2n x m bits)
Arquitectura de un sistema microprocesador
Clasificación de las memorias en función de la volatilidad de los datos:
Comparación de números
RAM (Random Access Memory):Volatiles
Bits almacenados en un semiconductor latch o flip‐flop
SRAM
(Static RAM)
RAM
bits de datos almacenados en un condensador.
DRAM
(Dynamic RAM)
Memorias RAM estáticas (SRAM ): No pierden información mientras están alimentadas.
Memorias de datos en sistemas pequeños.
pequeños
Memorias RAM dinámicas (DRAM): Necesidad de refresco para mantener
la
información. Mayor capacidad que SRAM y mayor tiempo de acceso que SRAM.
Memorias de datos en sistemas grandes (PC’s)
Arquitectura de un sistema microprocesador
Clasificación de las memorias en función de la volatilidad de los datos:
Comparación de números
ROM (Read Only Memory): No volatiles
ROM (Read
Memory): No volatiles
ROM
Mask
ROM
PROM
(Programable ROM)
UV EPROM
UV
EPROM
(Ultraviolet
EPROM)
EEPROM
(Electrically
Erasable PROM)
FLASH
(Electrically
Erasable PROM)
Memorias ROM
Los datos son permanentemente almacenados en la memoria durante el proceso de fabricación
fabricación.
Memorias PROM (Programmable ROM )
Usuario define contenido mediante un programador “Funde”
Usuario define contenido mediante un programador. Funde fusibles
fusibles
Solamente se pueden programar una vez (OTP )
Arquitectura de un sistema microprocesador
Clasificación de las memorias en función de la volatilidad de los datos:
Comparación de números
ROM (Read Only Memory): No volatiles
ROM (Read
Memory): No volatiles
Memorias UV EPROM (Ultraviolet Erasable Programmable ROM )
Programación igual que PROM
Programación igual que PROM
Posibilidad de restaurar la información. Borrado mediante luz Ultravioleta.
Memorias EEPROM (Electrically Erasable and Programable
EEPROM (Electrically Erasable and Programable ROM )
ROM )
Se programan y se borran de forma eléctrica.
Se pueden programar y borrar desde la aplicación final.
Útiles para guardar parámetros de configuración
Útiles para guardar parámetros de configuración.
Tiempo de lectura rápido. Como memoria RAM.
Tiempo de escritura lento. Orden milisegundos.
Memorias FLASH
Similares a las memorias EEPROM
Ti
d
it
h
EEPROM
Tiempo de escritura mucho menor que EEPROM
Mayor capacidad de almacenamiento que EEPROM
Arquitectura de un sistema microprocesador
Acceso a la memoria
Comparación de números
Además del bus de direcciones y el bus de datos, para leer o escribir en las
memorias , también son necesarias ciertas señales de control. Dependiendo
del tipo de memoria, las señales pueden ser :

Read Enable (RE) y Write Enable (WE): las señales se envían desde la
CPU a la memoria para controlar la transferencia de datos hacia o
desde la memoria.

Chip Select (CS) o Chip Enable (CE): se utilizan como parte de la
decodificación de las direcciones. Todos las otras señales de entrada
son ignoradas si la señal CS no está activada.

Output Enable (OE): está activa durante una operación de lectura,
permite conectar la memoria al bus de datos.
Arquitectura de un sistema microprocesador
Líneas de control de memorias
Comparación de números
Líneas de control de una memoria RAM
/CS
H
L
L
RD/WE
X
H
L
E/S de datos
Tri-estado
Salida dato
Entrada dato
Modo
Inhabilitada
Lectura
Escritura
Líneas de control de una memoria RAM con las entradas
de lectura y escritura separadas
/CE
H
L
L
L
L
/OE
X
L
H
L
H
/WE
X
H
L
L
H
E/S de datos
Tri-estado
Salida dato
Entrada dato
Entrada dato
Tri-estado
Modo
Bajo consumo
Lectura
Escritura
Escritura
Inhabilitada
Líneas de control de una memoria EPROM
/OE
L
H
X
/CE
L
L
H
Salidas
Dato
Tri-estado
Tri-estado
Modo
Lectura
Salidas inhibidas
Bajo consumo
Arquitectura de un sistema microprocesador
Ampliación de la memoria
Comparación de números
Para ampliar la capacidad de la memoria, es necesario agregar una línea de dirección Para
ampliar la capacidad de la memoria es necesario agregar una línea de dirección
como se muestra en este ejemplo
RAM 2M  8
Address
bus
21 bits
RAM 1
1M  8
EN
20 bits
8 bits
Control
bus
8 bits
20 bits
Data
bus
RAM 2
1M  8
EN
8 bits
Sólo uno de los circuitos integrados estará activado en función de la línea de Sól
d l
i i i
d
á i d
f ió d l lí
d
agregada al bus de direcciones.
Arquitectura de un sistema microprocesador
Puertos de entrada/salida
Comparación de números
• Permiten la comunicación del sistema con el exterior.
• Los microcontroladores llevan incorporados periféricos sencillos.
• Periféricos de carácter digital y de carácter analógico.
fé
d
á
d
l d
á
ló
•
Ej
Ejemplos de periféricos: l d
ifé i
– Pulsadores,, Finales de carrera,, Teclados,, Puertos p
para comunicaciones ((RS‐232,,
CAN, ETHERNET,...), Indicadores luminosos (Diodos Led), Display Numéricos,
Visualizadores alfanuméricos, Temporizadores, Convertidores A/D y D/A, ....
Arquitectura de un sistema microprocesador
Puertos de entrada/salida
Comparación de números
Comunicación con un periférico
Controlador de periférico
Controlador
CPU
Interfaz
con CPU
Interfaz
con Periférico
PERIFÉRICO
• Periféricos de muy diversa naturaleza
– Necesidad de homogeneizar la comunicación con los diversos
periféricos.
periféricos
• Controlador de periférico
– Interfaz con periférico: Circuitos de activación y control.
– Interfaz con CPU: Registros para comunicación con periférico.
Arquitectura de un sistema microprocesador
Buses
Comparación de números
– Bus de direcciones
• Selecciona la dirección de memoria o I/O con la que se /
q
intercambia la información.
– Bus de datos
• Líneas por las que se intercambia la información.
íneas por las que se intercambia la información.
– Bus de Control
Bus de Control
• Señales auxiliares de gobierno y sincronización
Arquitectura de un sistema microprocesador
Clasificación
Comparación de números
Según
ú su funcionalidad:
f
ld d
CISC (Complex Instruction Set Computer): Poseen un juego complejo de más
de 80 instrucciones, algunas de las cuales requieren muchos ciclos de reloj del
sistema
it
para ejecutarse).
j t
)
 RISC (Reduced Instruction Set Computer): Con un juego reducido de
instrucciones, disponiendo de pocas instrucciones que se ejecutan
normalmente en un ciclo de reloj y que permiten optimizar el hardware del
sistema).
SISC (Specific Instruction Set Computer): Con un juego específico de
instrucciones o CPU destinadas a aplicaciones muy concretas cuyo juego de
instrucciones,
instrucciones se adapta a la aplicación concreta a la que se destina el sistema).
Según su arquitectura interna:
Según su arquitectura interna:
 Von Neumann: Se acceden a los datos y a las instrucciones a través del
mismo bus de datos y direcciones.
direcciones
 Harvard: Este modelo, tiene la CPU conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.
Arquitectura de un sistema microprocesador
Estructura von Neumann
Comparación de números
BUSES
Datos Direcciones
Control
CPU
Memoria
Programa
(ROM)
Memoria Datos
(RAM)
I/O
Las instrucciones y los datos son almacenados en memorias a las que accede la CPU a través de un único bus de direcciones, de datos y de control.
t é d
ú i b d di
i
d d t
d
t l
Arquitectura de un sistema microprocesador
Estructura Harvard
Comparación de números
BUSES
Datos
Datos
Datos Direcciones
Control
CPU
BUSES
Memoria
Programa
(ROM)
Memoria Datos
(RAM)
I/O
Datos Direcciones
Control
Instrucciones
Diagrama de bloques
Ejemplos
Comparación de números
Diagrama de bloques de un PC
BUSES
Periféricos
Datos Modem
Direcciones
Control
Ratón
Impresora
Monitor
CPU
Memoria
I/O
Teclado
DVD
Diagrama de bloques
Ejemplos
Comparación de números
Diagrama de bloques de un teléfono móvil
Interfaz RF
TX
RX
LCD
Teclado
Audio Codec
SIM
Memory
card
Antena
Lenguajes de programación
Comparación de números
Lenguaje de
Lenguaje de alto nivel
Lenguaje ensamblador
Lenguaje máquina
La mayoría de la programación se hace en un
lenguaje de alto nivel,
nivel que se puede ejecutar
en diferentes máquinas. Es más fácil de escribir
y mantener programas de alto nivel
El lenguaje ensamblador fue desarrollado para
hacer una interfaz más sencilla entre la CPU y
el programador,
programador es una traducción directa del
lenguaje máquina mediante literales.. Un
programa en lenguaje ensamblador es más
eficiente aunque debe ser escrito para un
eficiente,
procesador específico y requiere más tiempo
para el desarrollo de programas.
El lenguaje máquina consiste en especificar las instrucciones a ejecutar mediante 0’s y 1’s,
es el lenguaje que entiende la CPU.
Lenguajes de programación
Comparación de números
Programa Compilador
Los lenguajes de alto nivel se pueden ejecutar en cualquier máquina, el código fuente se convierte en código de máquina mediante un compilador. PROGRAMA
FUENTE
LENGUAJE DE ALTO NIVEL
PRINT “HOLA”
PROGRAMA
TRADUCTOR
PROGRAMA
COMPILADOR
PROGRAMA
OBJETO
LENGUAJE MAQUINA
11101001 01100101...
Lenguajes de programación
Comparación de números
Programa Ensamblador
El lenguaje ensamblador debe ser escrito para un procesador específico, esto implica que el programador debe entender la estructura de registros del procesador. El programa ensamblador convierte el código fuente en código máquina
ensamblador convierte el código fuente en código máquina.
PROGRAMA
FUENTE
PROGRAMA
TRADUCTOR
LENGUAJE ENSAMBLADOR
PROGRAMA
PRINT “HOLA”
ENSAMBLADOR
PROGRAMA
OBJETO
LENGUAJE MAQUINA
11101001 01100101...
Lenguajes de programación
Comparación de números
Formato de una instrucción
INSTRUCCIÓN
CÓDIGO OPERACIÓN
Indica a la CPU que tipo de operación
debe realizarse (suma, resta, etc.)
OPERANDOS
Indica con que datos se deben realizar las
operaciones, o bien, las direcciones de
donde se deben obtener dichos datos.
datos
Clasificación de las instrucciones:
Instrucciones aritméticas/lógicas: Realizan las operaciones aritméticas o
lógicas entre dos operandos, tales como la suma, división, suma lógica, etc.
Instrucciones de transferencia de datos (entrada/ salida): Estas instrucciones
"ordenan" el paso de información entre distintos dispositivos del sistema.
Instrucciones de control: Controlan el flujo del programa. Este tipo de
i t
instrucciones
i
corresponde
d a los
l saltos
lt condicionales
di i
l o incodicionales
i di i
l .
Funcionamiento de un microprocesador
Fases de
d ejecución
ó de
d una instrucción:
ó
Comparación de números
PROCESADOR
UNIDAD DE CONTROL
CLK
DECODE
ALU
EXECUTE
MEMORIA
FETCH
Decodificación de la instrucción
FETCH
Lectura de la instrucción
DECODE
EXECUTE
Ejecución de la instrucción
Funcionamiento de un microprocesador
Comparación de números
PC
0
1
DI
Tipo de instrucción
IR
Instrución 1
Fases de una instrucción:
1‐FETCH
2‐DECODE
3 EXECUTE
3‐EXECUTE
Memory
0
1
2
3
Instrución 1
Instrución 2
Instrución 3
Instrución 4
Funcionamiento de un microprocesador
Comparación de números
Sincronización entre CPU y periféricos
• La transferencia entre la CPU y los periféricos no se puede realizar en cualquier momento.
• CPU y periféricos trabajan de forma independiente (no sincronizada).
sincronizada)
• No se pueden transmitir datos hasta que ambos están listos.
p
q
• Para sincronizarlos existen dos técnicas:
– Sincronización mediante encuesta “Polling”
– Sincronización mediante interrupción
Funcionamiento de un microprocesador
Comparación de números
Técnicas de sincronización • Sincronización por encuesta o polling.
– La
La CPU interroga al periférico para determinar si está listo para realizar CPU interroga al periférico para determinar si está listo para realizar
la transferencia.
– La CPU está a la espera de que el periférico esté listo.
• Sincronización por interrupción.
– La CPU ejecuta su programa. Cuando el periférico está listo se lo indica, Interrumpe a la CPU. Entonces la CPU abandona su tarea y atiende al periférico.
ti d l
ifé i
Funcionamiento de un microprocesador
Comparación de números
Sincronización por encuesta o polling
• La CPU interroga al periférico para determinar si está listo para
realizar la transferencia.
• La
L CPU estáá a la
l espera de
d que ell periférico
ifé i estéé listo.
li
Ventajas:
• El control de flujo de la transferencia es totalmente por
software (es
( mas sencillo programar el sistema).
)
• No es necesario Hardware adicional.
Inconvenientes:
i
• La CPU pierde mucho tiempo consultando a los periféricos (si
sobra tiempo
p de p
proceso no es p
problemático).
Funcionamiento de un microprocesador
Comparación de números
Sincronización por encuesta o polling
Algoritmo con un periférico
é
Lectura del estado
NO
Algoritmo con varios periféricos
é
Lectura estado 1
Listo?
Listo?
SI
Transferencia
NO
Lectura estado 2
SI
Transferencia
Listo?
SI
Transferencia
NO
Lectura estado 3
Listo?
.
.
.
NO
SI
Transferencia
Funcionamiento de un microprocesador
Comparación de números
Sincronización por interrupción
Prog. Prin:
RSI
RSI:
1
2
INT
1
INT
RETI
2
1
1.
La CPU ejecuta su programa.
programa Cuando el periférico está listo se lo indica,
indica
Interrumpe a la CPU. Entonces la CPU abandona su tarea y atiende al
periférico.
2.
La CPU pasa a ejecutar la rutina de Servicio de Interrupción (RSI).
3
3.
Una vez finalizada esta rutina retorna a la ejecución del programa principal
en el punto donde lo había dejado.
Funcionamiento de un microprocesador
Comparación de números
Sincronización por interrupción
•
Para conocer el punto donde debe regresar la CPU guarda automáticamente
esta dirección antes de ejecutar la RSI.
•
Las RSI finalizan siempre con la instrucción de retorno de interrupción (RETI).
V t j
Ventajas:
• La CPU puede realizar otras tareas mientras el periférico no está
listo.
Inconvenientes:
• La programación de la CPU es más compleja ya que no se conoce a
priori,
i i ell flujo
fl j de
d ejecución
j
ió de
d instrucciones.
i t
i
• Es necesario utilizar Hardware adicional.
Funcionamiento de un microprocesador
Comparación de números
DMA (DIRECT MEMORY ACCESS)
La transferencia de datos entre el módulo de E/S y la CPU se realiza a través de
la memória. Así que se realiza como consecuencia de la ejecución de
instrucciones.
Con ell objetivo
C
bj ti de
d liberar
lib
a la
l CPU de
d esta
t tarea
t
se utiliza
tili ell acceso
directo a memoria DMA.
• Permite transferencia directa de datos entre el módulo de E/S y la
memoria, liberando completamente a la CPU.
• Debe existir un módulo adicional que sea capaz de tomar el control
de los buses para acceder directamente a la memoria como si fuese
la CPU: controlador DMA.
Funcionamiento de un microprocesador
Controlador DMA
Comparación de números
Operación del controlador DMA:
• Solicita la correspondiente petición a la CPU.
• La CPU pone en estado de alta impedancia su conexión a los buses del sistema.
• Cuando finaliza la E/S, el DMA genera una interrupción y la CPU vuelve a tomar
control.
control
CPU
Descargar