tema 2 diseño de un sistema basado en microprocesador tema 2

Transcripción

tema 2 diseño de un sistema basado en microprocesador tema 2
TEMA 2
DISEÑO DE UN SISTEMA BASADO EN
MICROPROCESADOR
CURSO 2010/2011
TEMA 2
2.1 Arquitectura de un sistema basado en microprocesador: ciclos de bus
2.2 Elementos que componen el sistema: memorias y entrada/salida
2.3 Interrupciones: tipos de interrupciones
2.4 Concepto de instrucción: formatos y operaciones básicas
2.5 Niveles de Programación
2.6 Areas de aplicación de los microprocesadores
2.7 Procesadores existentes: evolución
2.8 Consideraciones tecnológicas
1
ARQUITECTURA
EXTERIOR
RELOJ
MEMORIA
ROM
(Programa)
CPU
RESET
MEMORIA
RAM
(Datos)
Entrada /
Salida
MAPA DE
MEMORIA
16 = 64K
20 = 1M
24 = 16M
32 = 4G
ALIMENTACIÓN
DIRECCIONES
DATOS
8
16
32
64
BUSES
CONTROL
CLK
Interrupciones
RESET
DMA
R/W
ARQUITECTURA
•Esta arquitectura representa el conjunto mínimo de elementos o bloques funcionales que permiten aprovechar las
posibilidades del microporcesador como componente del sistema.
•Esta formada por tres bloques básicos:
¾ CPU
¾ Memoria
¾ Unidad de Entrada/Salida
•La CPU es un sistema secuencial síncrono.
•Existe siempre un RELOJ (CLK). Normalmente la circuitería es interna y con un cuarzo externo se define la frecuencia
de funcionamiento.
•Todos los componentes deben estar alimentados.
•La CPU tiene las siguientes funciones:
¾Busca las instrucciones del programa que están en memoria
¾Las decodifica y ejecuta
¾Reconoce situaciones especiales (RESET, Interrupciones, etc …)
2
ARQUITECTURA
•La MEMORIA es uno de los bloques más importantes y se destina al almacenamiento de información. Físicamente
puede hacerse una distinción entre diferentes tipos de memoria, según que pueda usarse para leer y escribir
información o solo para leerla. Estos dos tipos básicos de memoria se denominan respectivamente RAM (memoria de
acceso aleatorio) y ROM (memoria de solo lectura). Funcionalmente las memorias pueden contener dos tipos de
información: datos y programas. Por ello se habla también de memoria de programa (ROM) y memoria de datos
(RAM).
•La UNIDAD DE E/S proporciona la interconexión con el mundo exterior: la actividad del microprocesador carecería de
sentido si no estuviese relacionada con el mundo exterior. Es necesario que la tarea que ejecuta el procesador esté
gobernada por los comandos y datos que le llegan desde fuera. Además los resultados de la misma, para tener alguna
utilidad, deben ser enviados al exterior. Se utiliza el término general de PERIFERICO para denominar a cualquier
dispositivo exterior al sistema. Ejemplos: Monitor, teclado, ratón, convertidores D/A y A/D, discos, impresoras.
•La forma de conexión de estos tres bloques puede obedecer a diferentes filosofias, pero es prácticamente aceptada la
solución denominada estructura de buses, que se caracteriza fundamentalmente por su flexibilidad, modularidad,
estandarización y facilidad de expansión.
•Los buses principales son tres:
¾ Bus de Datos: bidireccional
¾ Bus de Direcciones: unidireccional
¾ Bus de Control: gran diversidad de líneas de control
ARQUITECTURA
•Esta estructura de buses compartidos exige por parte del microprocesador un mayor control sobre todo el
sistema, puesto que en cada momento las informaciones contenidas en los buses se destinan a un sólo
elemento, debiendo impedirse la participación o interferencia de los restantes en el intercambio.
•La regulación de la participación de los diferentes elementos conectados al bus se hace mediante el empleo del
bus de direcciones. Los decodificadores de los diversos elementos reciben e interpretan si la dirección enviada
por el microprocesador, contenida en el bus de direcciones, les corresponde o no .
•La conexión en paralelo a los buses de todos los elementos de un sistema basado en microprocesador
presupone la desconexión total de los que no participan en el intercambio en un momento determinado. (Si las
líneas conectadas al bus de datos fuesen digitales de dos estados estables únicamente, se produciría un
cortocircuito permanente entre las líneas correspondientes a los diversos componentes. Para evitar estos
cortocircuitos todos los componentes deben disponer de unos elementos denominados BUFFER TRIESTADO).
3
ARQUITECTURA: BUS DE DATOS
•Es el encargado de transmitir y recibir datos e instrucciones desde y hacia la memoria y unidades de E/S.
•Es BIDIRECCIONAL
•Todos los bloques están conectados en paralelo y comparten todas las líneas del BUS
•Necesidad de Alta Impedancia (Tri-estado)
+Vcc
“Mientras el dispositivo 1
transmite el resto están en
alta impedancia”
Dispositivo 1
“Transmite un 1”
Línea de
Bus de
Datos
SOLUCIÓN
¡PROBLEMA!
+Vcc
+Vcc
ALTA IMPEDANCIA
Dispositivo 2
“Transmite un 0”
•El número de líneas define el tipo de µP:
8 lineas CPU de 8 bits, 16 líneas CPU de 16 bits, 32 líneas CPU de 32 bits, 64 líneas CPU de 64 bits
•De alguna forma el número de líneas determina el número de instrucciones del procesador y su potencia de cálculo.
•Es muy habitual la nomenclatura: D0, D1, D2,.. y representar los valores en hexadecimal:
0011 1100 = (3D)hexa = (58)decimal
•Son habituales las palabras:
NIBBLE = 4 bits
MSB = bit más significativo
BYTE = 8 bits
LSB = bit menos significativo (D0)
WORD = 16 bits
LONG WORD = 32 bits
ARQUITECTURA: BUS DE DIRECCIONES
•Selecciona el dispositivo desde donde vamos a leer o escribir (datos o instrucciones)
•Es UNIDIRECCIONAL
•El número de líneas define la capacidad máxima de direccionamiento
16 líneas = 64K
20 líneas = 1M
24 líneas = 16M
32 líneas = 4G
•Se conoce como MAPA DE MEMORIA y MAPA DE E/S a la distribución de esa capacidad de direccionamiento
•Se utiliza la nomenclatura A0, A1, A2, etc. Es habitual trabajar en hexadecimal
11 líneas = 2K
0000
07FF
ROM
0000 0000 0000 0000
0000 0111 1111 1111
LIBRE
TOTAL = 64K
(16 líneas)
11 líneas = 2K
F800
FFFF
HEXADECIMAL
RAM
1111 1000 0000 0000
1111 1111 1111 1111
BINARIO
MSB = A15
LSB = A0
4
ARQUITECTURA: BUS DE CONTROL
•Aquí es donde existe menos generalidad, cada CPU tiene sus líneas de control características.
•Algunas son bidireccionales y otras no.
•Una selección de líneas mas o menos generales podría ser:
•Líneas de Reloj (CLK)
•Líneas de control de la memoría y/o E/S (R/W, MEMRQ, IORQ)
•Líneas de interrupciones, enmascarables y no enmascarables (INT, NMI)
•Línea de inicialización (RESET)
•Líneas de alimentación (Vcc y GND)
•Líneas de acceso directo a memoria (DMA, MEMRQ, MEMACK)
•Líneas de parada (HLT)
•Algunas CPU´s con el fin de minimizar el número de patillas, multiplexan algunas líneas (p.e. parte de bus de batos y parte del
bus de direcciones). En este caso es necesaria una señal de control específica, que indica la información presente en la línea
en cada momento.
Ejemplo: 8085 de Intel que multiplexa las 8 líneas menos significativas del bus de direcciones con el bus de datos (AD0/AD7) y
dispone de una señal de salida (ALE) que se activa cuando los terminales multiplexados contienen la parte baja de la dirección.
•Recordar que las líneas que se llevan a muchos dispositivos deben respetar el FAN-OUT, siendo habitual la presencia de
DRIVER`s (o BUFFERS), que deberán se unidireccional o bidireccional según el caso.
ARQUITECTURA
•Si bien la funcionalidad de las líneas es genérica, no lo es la nomenclatura, la cual varía para cada CPU. (Cada fabricante
emplea una nomenclatura característica que le diferencia del resto de fabricantes).
Pinout de un microprocesador genérico
5
ARQUITECTURA
Algunas CPUs comerciales
ARQUITECTURA
6
CICLOS DE BUS
•CICLO DE INSTRUCCIÓN: es la secuencia total de pasos que hay que realizar para buscar y ejecutar una instrucción.
•CICLO DE BUS: también llamado ciclo máquina, es una secuencia de estados encaminados a la realización de una operación
básica de bus. Las operaciones básicas típicas en un bus son lecturas, escrituras y reconocimiento de interrupción.
Adicionalmente algunos microprocesadores poseen ciclos de bus especiales.
CICLOS DE BUS
Lectura de Memoria
•Se ejecuta para cualquier lectura en memoria. Pueden darse dos casos según el modo de operación del bus: bus síncrono
y bus semisíncrono.
•Bus Síncrono: la memoria tiene un tiempo de acceso que es compatible con la frecuencia de reloj de la CPU, es decir, la
lectura se producirá durante un periodo de reloj bien definido.
•Bus Semisíncrono: la memoria es más lenta que el tiempo de acceso del microprocesador y es necesario retrasar el
momento de captura de los datos. Para ello se emplea una señal de entrada al microprocesador (READY), generada
externamente, que indica cuando se dispone de datos estables en el bus de datos. Mientras los datos no están estables el
microprocesador inserta los denominados estados de espera, que son periodos de reloj durante los cuales no se producirán
cambios en las restantes señales implicadas.
•Secuencia temporal:
¾T1: se deposita la dirección en el bus de direcciones y tras un cierto tiempo se activa AS para validar la dirección.
¾T2: se activa DS para indicar a la memoria que la CPU está preparada para leer el dato.
¾T3: la memoria deposita el dato en el bus de datos. La CPU lee el dato en el flanco de subida de DS.
7
CICLOS DE BUS
Lectura de Memoria
Ciclo Máquina de Lectura de Memoria Síncrono
Ciclo Máquina de Lectura de Memoria con Estados de Espera
CICLOS DE BUS
Escritura en Memoria
•Se emplea para la escritura de datos en memoria. Su estructura es muy parecida a la del ciclo de lectura.
•Secuencia temporal:
¾T1: se deposita la dirección en el bus de
direcciones y se activa AS con un cierto retardo
para asegurar la estabilidad de la dirección.
¾T2: al principio de T2 se escriben los datos
sobre el bus de datos. Se espera a que sean
estables y se activa DS al final de T2 (Si el bus es
semisíncrono se muestrea READY en el flanco de
bajada de T2 y se introducen tantos estados de
espera como sean necesarios, hasta que se
detecte la desactivación de READY). Esto indica a
la memoria que el dato es válido y que lo puede
capturar antes del final de T3.
¾T3: se termina el ciclo desactivando las señales
involucradas.
Ciclo Máquina de Escritura en Memoria con Estados de Espera
8
CICLOS DE BUS
Reconocimiento de Interrupción
•Este ciclo máquina no forma parte de ninguna instrucción, sino que se origina como consecuencia de la aceptación de una
petición de interrupción. El objetivo de este ciclo es obtener la información necesaria para localizar la dirección de la subrutina de
atención a la interrupción.
•Secuencia temporal:
¾T1: se activa AS como en una lectura de
memoria.
¾T2: el dispositivo generador de la interrupción
pone en el bus de datos un valor que vectoriza la
rutina de atención a la interrupción, es decir,
especifica directa o indirectamente la dirección de
inicio de una rutina que realiza el tratamiento de la
interrupción.
¾T3: la CPU lee el dato (vector de interrupciones)
que permite identificar la dirección donde se sitúa
la rutina de interrupción.
Ciclo Máquina de Reconocimiento de Interrupción
CICLOS DE BUS
Cesión de Bus
•Este ciclo máquina es muy importante en sistemas con varios procesadores (sistemas multimáster). Puesto que no puede haber
más de una CPU que tenga el control de los buses en cada momento, ha de existir un mecanismo mediante el cual pueda
transferirse el control del bus de un procesador a otro. Este mecanismo se implementa en el ciclo de cesión del bus.
•Fases :
¾Detectar, por parte del procesador que controla
el bus actualmente, que hay una petición de cesión
de bus.
¾Ceder el bus de manera que el procesador que
tiene el control actualmente pasará a tener la
mayoría de sus líneas en alta impedancia.
¾Recuperar el control del bus cuando el
procesador solicitante acabe su ciclo de bus. (La
cesión de los buses del sistema no tiene porqué
bloquear al microprocesador, pues éste puede
continuar realizando operaciones internas que no
afecten al estado de los buses).
Ciclo Máquina de Cesión de Bus
9
ELEMENTOS DEL SISTEMA: MEMORIAS
•El sistema de memoria constituye uno de los bloques fundamentales de los sistemas basados en microprocesador o
microcontrolador, puesto que es el que contiene las instrucciones y datos con los que operará el sistema.
ELEMENTOS DEL SISTEMA: MEMORIAS
•En sentido general, memoria se refiere a cualquier dispositivo capaz de almacenar información para ser usada
posteriormente. En este apartado nos centraremos en la memoria conocida como memoria principal, que es a la que
accede el procesador y que está constituida, desde el punto de vista tecnológico, por circuitos integrados, razón por la
cual se denomina frecuentemente memoria basada en semiconductor.
Tipos de Memorias
10
ELEMENTOS DEL SISTEMA: MEMORIAS
Memorias de acceso serie:
Dependiendo de la posición a la que vamos a acceder, tendremos un tiempo de acceso diferente.
Se basan en registros de desplazamiento.
Las hay de dos tipos:
Memorias de acceso serie al bit
Memorias de acceso serie posición a posición
Dentro de este grupo tenemos las memorias LIFO y FIFO.
Memorias de acceso aleatorio:
El tiempo de acceso a cualquier posición de memoria es el mismo. Para acceder proporcionamos
un código (dirección) para que transcurrido un cierto tiempo aparezca a la salida el dato
proporcionado. Se basan en decodificadores.
Memoria de
acceso aleatorio
Dirección
Dato
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria de acceso serie
Bus de
entrada
Bus de
salida
(FIFO First In First Out)
CS
CS
D
Q
CLK
D
Q
D
Q
CLK
CLK
D
Q
CLK
CS
CS
D
Q
D
CLK
Q
D
Q
D
CLK
CLK
Q
CLK
CS
CS
D
Q
CLK
D
Q
CLK
D
Q
CLK
D
Q
CLK
Capacidad de almacenamiento (4 datos de 3 bits)
11
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria de acceso aleatorio
En función de cómo
hagamos la celda de
memoria tenemos varias
opciones.
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria ROM (read Only Memory)
Normalmente la conexión
no es directa al bus de
datos
CS
12
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria ROM (read Only Memory)
Desde A0 hasta A8
(9 líneas)
29 = 512 datos de 4 bits
(Desde D0 hasta D3)
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria PROM
13
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria EPROM (Erasable PROM) y EEPROM (Electrically Erasable PROM)
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria Flash EPROM (tipo especial de EEPROM)
14
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria Flash EPROM (tipo especial de EEPROM)
ELEMENTOS DEL SISTEMA: MEMORIAS
15
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria de acceso aleatorio (RAM)
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria de acceso aleatorio (RAM)
16
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria de acceso aleatorio (RAM)
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria de acceso aleatorio (DRAM)
17
ELEMENTOS DEL SISTEMA: MEMORIAS
Memoria de acceso aleatorio (DRAM)
ELEMENTOS DEL SISTEMA: MEMORIAS
18
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
•La actividad del microprocesador carecería de sentido si no estuviese relacionada con el mundo exterior. Es necesario
que la tarea que ejecuta el microprocesador esté gobernada por los comandos y datos que le llegan desde fuera.
Además los resultados de la misma, para tener alguna utilidad, deben ser enviados al exterior.
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
•Antes de entrar a la descripción de la entrada/salida
(abreviadamente E/S o I/O) de un sistema microprocesador, es
conveniente definir el término periférico, ampliamente utilizado
en el estudio de la E/S.
•Utilizaremos el término general de PERIFERICO para
denominar a cualquier dispositivo externo conectado a la CPU a
través del cual interaccionamos con el mundo físico. Este
concepto engloba un sinfín de dispositivos exteriores.
•En sistemas informáticos se utiliza el término periférico para
denominar a los dispositivos de comunicación hombre-máquina:
impresoras, terminales de pantalla, dispositivos de
almacenamiento masivo como cintas o discos magnéticos. Sin
embargo este término tiene un sentido más general que engloba
a todo tipo de dispositivos susceptibles de ser conectados a un
sistema procesador.
•En sistemas destinados al control de procesos, los periféricos
están destinados a interaccionar con los procesos que controlan:
relés, conmutadores automáticos, sensores o transductores,
conversores analógico/digital y digital/analógico.
19
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
•Las principales funciones en torno a una CPU son:
¾ Interfaces Generales: transferencia de datos.
¾ Interfaces Dedicadas: temporizadores, controlador disco duro,….
¾ Coprocesadores de E/S.
• Dentro de los interfaces generales podemos distinguir:
¾ Entrada/Salida Paralelo: una línea por bit del dato y todos simultáneos.
¾ Entrada/Salida Serie: todos los bits por la misma línea y multiplexados en el tiempo.
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
Concepto de Puerto de Entrada/Salida
•Dada la gran variedad de dispositivos periféricos que pueden ser conectados a un sistema digital y las características
especiales tanto eléctricas como funcionales de cada uno de ellos, la transferencia de información entre el microprocesador
y el periférico no se efectúa de manera directa sino a través de ciertos elementos externos, los cuales reciben la información
proveniente del microprocesador y la envían a los periféricos de salida o recopilan la información originada en los
dispositivos de entrada y la transmiten al microprocesador. A estos elementos se les da el nombre de PUERTOS DE E/S.
•Dicho de otra forma, un puerto es un elemento hardware (interface) que asegura la compatibilidad en el conexionado de los
periféricos a los buses del sistema microprocesador. LOS PUERTOS DE E/S SON BASICAMENTE REGISTROS
EXTERNOS.
•Más concretamente en un puerto de E/S existen dos partes diferenciadas. La primera de ellas resuelve la conexión eléctrica
entre la CPU y el dispositivo de entrada/salida. La segunda se ocupa de la conexión entre el dispositivo de entrada/salida y
el periférico. La primera de ellas es fácilmente sistematizable, mientras que la segunda depende mucho del periférico a
conectar (impresora, monitor, teclado, etc.) y es, por tanto, mucho más difícil de sistematizar.
20
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
Aspectos Hardware de la Entrada/Salida
•Los microprocesadores poseen distintas formas de
implementar la Entrad/Salida. Las dos alternativas
más
ampliamente
utilizadas
por
los
microprocesadores reales son:
¾ Entrada/Salida mapeada en memoria
¾ Entrada/Salida aislada
•La E/S mapeada consiste básicamente en no
diferenciar los registros de los puertos de E/S de
cualquier otra posición de memoria, es decir, dar el
mismo tratamiento a ambos.
Entrada/Salida Mapeada en Memoria
•La E/S aislada consiste en dar distinto tratamiento
a los registros de memoria y a los registros de los
puertos de E/S.
Entrada/Salida Aislada
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
Aspectos Software de la Entrada/Salida
•Se refiere a las distintas formas de controlar las transferencias de entrada/salida. Es frecuente distinguir tres tipos:
¾ Entrada/Salida controlada por programa: incondicional o condicional por muestreo
¾ Entrada/Salida por interrupciones
¾ Entrada/Salida por DMA (Acceso Directo a Memoria)
•De los tres métodos, el tercero es un procedimiento especial que requiere un hardware específico y que se utiliza en
aplicaciones que requieren gran velocidad de transferencia de datos. En consecuencia no puede ser considerado como
alternativa de los dos primeros.
•Considerando los dos primeros métodos, por programa y por interrupciones, el aspecto fundamental que los diferencia
es la toma de la iniciativa para realizar la transferencia: en el caso de la E/S controlada por programa, la iniciativa parte
del microprocesador, mientras que en el caso de la E/S controlada por interrupciones, la iniciativa parte del dispositivo
exterior o periférico.
•Las operaciones de E/S controladas por programa deben ser necesariamente SINCRONAS con la ejecución del
programa y sólo tendrán lugar en los momentos previstos por el programador. El tiempo que transcurre entre dos
lecturas/escrituras sucesivas depende del tiempo de ejecución del programa y puede variar de una iteración a otra.
21
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
•Por el contrario, las entradas/salidas por interrupciones pueden tener lugar en cualquier momento de la actividad del
microprocesador. Son iniciadas a petición del dispositivo exterior, a través de una línea hardware llamada petición de
interrupción. Esta petición de interrupción se puede producir en cualquier momento sin tener en cuenta la actividad del
procesador, se puede decir, por tanto, que las E/S por interrupción son ASINCRONAS con la ejecución del programa.
Entrada/Salida controlada por programa
•Este método se caracteriza porque es el programa que se está ejecutando el que toma la iniciativa para realizar una
transferencia de E/S. Dicho de otro modo, es el programador el que ha previsto en que momentos estas transferencias
pueden llevarse a cabo y ha dispuesto la secuencia de instrucciones necesaria para ello, es decir, las operaciones de
E/S tienen lugar de forma sincronizada con la ejecución del programa.
•Se dice que la E/S es incondicional cuando las transferencias se llevan a cabo sin tener en cuenta el estado del
periférico, es decir, si está preparado o no para depositar dato o recoger dato. Este método únicamente se utiliza con
periféricos muy sencillos que siempre están preparados para recibir dato o depositar dato.
•Para solucionar los problemas que plantea el método anterior sería necesario disponer de información acerca del estado
del periférico, es decir, que las operaciones de E/S únicamente tuvieran lugar en los instantes en los que el periférico
está preparado para depositar dato o para recibir dato.
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
•Dicho de otro modo, es necesaria una coordinación entre el
microprocesador y el periférico, de forma que las transferencias
de datos se realicen en los momentos adecuados.
•Para lograr esta coordinación, el microprocesador y el
periférico mantienen un diálogo previo, sujeto a unas normas
protocolarias que se deben cumplir estrictamente. Estas
normas son definidas por el diseñador. Para implementar este
diálogo es necesario ampliar el concepto de puerto a Puerto
Programable.
•Un Puerto Programable genérico permite la comunicación
bidireccional entre el microprocesador y un dispositivo
periférico. Además dispone de registros auxiliares para
establecer la coordinación entre ambos, de forma que las
transferencias de datos se realicen en los momentos
adecuados, intercambiando otros datos accesorios que
permitan que el microprocesador conozca el estado del
periférico y que éste a su vez, conozca algunos aspectos
relativos al estado del sistema microprocesador que puedan
afectar a la comunicación entre ambos.
Diagrama de bloques de un Puerto Programable
22
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
•Las E/S controladas por programa son fácilmente realizables, sin embargo presentan ciertos inconvenientes, por lo que
no siempre es el método adecuado. El primer inconveniente es la pérdida de tiempo que supone muestrear al periférico
para averiguar si está preparado para realizar la transferencia. Esta situación se agrava cuando son muchos los posibles
periféricos a consultar y la tarea que está realizando el microprocesador es compleja y debe ejecutarse en un tiempo
crítico. El segundo inconveniente es la lentitud en la atención al periférico. Es evidente que en este método las
transferencias de E/S sólo son posibles en los momentos previstos por el programador. Si un periférico requiere atención
urgente, deberá esperar a que el programa llegue a la secuencia de instrucciones prevista para atenderle, lo que puede
producirse demasiado tarde, sobre todo si el programa es largo.
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
Entrada/Salida controlada por interrupciones
•En este método existe una conexión directa entre el microprocesador y el periférico de forma que éste avise en el
momento en que requiere atención. El microprocesador no pierde tiempo muestreando periódicamente al periférico para
averiguar si necesita servicio, sino que únicamente acudirá, abandonando su tarea normal, cuando se solicite la
interrupción (esta interrupción provocará un salto a la subrutina de atención de la interrupción, la cual dará servicio al
periférico.
•Por tanto las E/S controladas por interrupciones pueden tener lugar en cualquier momento, son ASINCRONAS con la
ejecución del programa y además la iniciativa para realizar la transferencia parte del dispositivo exterior o periférico.
•Este método permite que la atención a los dispositivos periféricos se realice en tiempo real.
•La prioridad con que dicha interrupción será atendida depende del sistema de gestión de interrupciones del propio
microprocesador (normalmente depende de a qué entrada de petición de interrupción del microprocesador se haya
conectado).
•La forma de identificar qué periférico ha solicitado la interrupción y por tanto cuál es la dirección de la subrutina de
atención depende también del sistema de gestión de interrupciones del microprocesador (normalmente depende de si la
entrada de interrupción usada es vectorizada o no vectorizada).
23
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
Entrada/Salida por DMA (Acceso Directo a Memoria)
•El acceso directo a memoria es un método de E/S diferente de los anteriores tanto en su funcionamiento como en su
campo de aplicación. Su finalidad es la transferencia rápida de bloques de datos entre memoria y periféricos en ambos
sentidos.
•Si los datos que se van a transferir se van a almacenar o están almacenados en posiciones consecutivas, el control de
la transferencia puede ser llevado a cabo por un dispositivo diferente del microprocesador y sin necesidad de que cada
uno de estos datos tenga que pasar por él.
•Este método de control de la entrada/salida se utiliza en aquellas aplicaciones en las que es preciso alcanzar altas
velocidades de transferencia para transferir grandes cantidades de datos, es el caso típico de los convertidores A/D y
D/A de alta velocidad, lectura y grabación de discos magnéticos.
ELEMENTOS DEL SISTEMA: ENTRADA/SALIDA
Entrada/Salida por DMA (Acceso Directo a Memoria)
•Para implementar este método de control de la E/S es
necesario que el sistema disponga del hardware
apropiado: el controlador de DMA, este dispositivo será
ahora el encargado de direccionar la memoria y el puerto
implicados en la transferencia, para lo cual será necesario
que el microprocesador coloque sus buses de
direcciones, datos y control en estado de alta impedancia.
Para ello el controlador de DMA debe utilizar el bus sólo
cuando el procesador no lo necesita, o debe forzar al
procesador a que suspenda temporalmente su
funcionamiento. Esta técnica de acceso al bus es la más
frecuente y se denomina robo de ciclo.
•Una vez que el microprocesador se encuentra aislado, es
el controlador de DMA quien toma el control de los buses,
de forma que los datos fluirán directamente entre
memoria y periférico a un ritmo únicamente limitado por el
tiempo de acceso a la memoria y al periférico.
Diagrama de bloques de un Controlador de DMA
24
GESTION DE LAS INTERRUPCIONES
•Las interrupciones son señales externas al microprocesador que provocan saltos en el flujo secuencial del programa, o
lo que es lo mismo, que provocan llamadas a subrutinas.
•Las interrupciones son totalmente asíncronas.
•Fases en el procesamiento de una interrupción:
¾
Terminar la ejecución de la instrucción actual
¾
Guardar la dirección de retorno en la pila
¾
Obtener la dirección de la subrutina de atención
¾
Saltar a la subrutina de atención
¾
Ejecutar las instrucciones de la subrutina hasta encontrar la instrucción de retorno (la
dirección de
retorno se obtiene de la pila)
¾
Continuar la ejecución del programa principal en el punto donde fue interrumpido
•Las interrupciones son un mecanismo que permite el control de procesos asíncronos con el funcionamiento del sistema
y que requieren una atención inmediata, como por ejemplo el control de las transferencias de datos con los periféricos. El
microprocesador tiene una o más entradas de petición de interrupción generadas por los dispositivos de entrada/salida,
que provocan la ruptura de la secuencia normal de ejecución del programa y el salto a la subrutina de atención a la
interrupción, que controlará el proceso específico de comunicación entre la CPU y el periférico externo.
•Se dice que las interrupciones proporcionan al microprocesador la capacidad de respuesta en tiempo real.
GESTION DE LAS INTERRUPCIONES
•Básicamente existen dos tipos de interrupciones:
¾Interrupciones No Enmascarables: se atienden siempre, no se pueden inhabilitar.
¾Interrupciones Enmascarables: existen instrucciones dentro del juego de instrucciones que permiten
habilitar o inhabilitar las interrupciones (aunque se active una interrupción no se atiende).
•Una segunda clasificación de las interrupciones puede hacerse en base a cómo calcular la dirección de la subrutina de atención:
¾Interrupciones No Vectorizadas: se salta a una direción fija de memoria.
¾Interrupciones Vectorizadas: el dispositivo que interrumpe proporciona, durante el ciclo de reconocimiento
de la interrupción, un dato (vector de interrupción) que permite calcular la dirección inicial de la subrutina.
Pila o Stack
•Una pila es una estructura LIFO (Last – In, First – Out), es decir, último dato en entrar, primero en salir. Es una estructura que
acumula los datos en el orden en que se depositan, dato más antiguo en la parte inferior de la pila y dato más reciente en la parte
superior.
•La manipulación de la pila se realiza mediante dos instrucciones especiales: PUSH y POP.
•La pila es necesaria para estructurar niveles de interrupción y de subrutinas. Básicamente pueden implementarse por hardware o
por software. (La pila hardware se implementa mediante un conjunto de registros internos (2/16) directamente integrados en el chip
del microprocesador. La otra alternativa es una pila software o pila contenida en la memoria de lectura/escritura del sistema (RAM);
el programador ubica la pila asignándole una dirección base que se almacena como valor inicial del registro SP).
25
JUEGO DE INSTRUCCIONES
•Una instrucción puede definirse como un código binario que especifica la operación que debe llevar a cabo el
microprocesador y dónde se localizan los operandos con los cuales realizar la operación. Estos operandos pueden
situarse en registros internos de la CPU o en posiciones de memoria.
•El conjunto de códigos de operación diferentes de un microprocesador conforma el llamado juego de instrucciones. Las
instrucciones permiten escribir programas. Cada instrucción en binario tiene asociado un mnemónico (ADD, MOV, SUB)
para facilitar la tarea del programador. (Lenguaje máquina -> Lenguaje ensamblador).
Formatos de las Instrucciones
•Las instrucciones están codificadas por campos:
•La longitud de cada uno de los campos depende de la instrucción y del microprocesador:
¾Código de Operación: conjunto de bits que codifican el tipo de operación a realizar.
¾Operando: codifica dónde se localiza el operando o dirección con el que operará la instrucción. El
tipo y el número de operandos depende de la instrucción en concreto: dos operandos (ADD), un
operando (INC) o ningún operando (HALT).
JUEGO DE INSTRUCCIONES
Instrucciones Básicas
•
Las operaciones básicas que incluye el juego de instrucciones de cualquier microprocesador se clasifican en tres grandes
grupos:
1.
Transferencia de datos: permiten el movimiento de datos, pero no realizan operaciones con ellos (entre
registros, entre registros y memoria, entre dos posiciones de memoria). Muy frecuentes en todos los
programas.
2.
Manipulación de datos: son las instrucciones que procesan los datos, obteniendo un valor diferente como
resultado. Este grupo de instrucciones dependen del tipo de unidades de ejecución presentes en la unidad
de proceso. Se pueden clasificar en:
ƒ
Instrucciones aritméticas: son operaciones del tipo suma, resta, multiplicación, incremento.
La ejecución de estas instrucciones afecta y modifica a los bits del registro de estado (SR),
siendo los más habituales Carry, Zero, Signo Overflow.
ƒ
Instrucciones lógicas: realizan las operaciones booleanas AND, OR, NOT y XOR,
funcionando bit a bit sobre los operandos.
ƒ
Instrucciones de rotación/desplazamiento: permiten mover los bits del operando un
número de posiciones dentro del mismo, tanto hacia la izquierda como hacia la derecha. La
rotación no altera la secuencia de bits, solamente los coloca en un orden diferente. Por el
contrario, el desplazamiento pierde bits por el extremo hacia el cual se realiza el movimiento.
ƒ
Manipulación de bits: permiten poner a 1 (set), a 0 (clear) o comprobar el estado de un bit
(tst) determinado dentro de un operando.
26
JUEGO DE INSTRUCCIONES
3.
Transferencia del control: son las instrucciones que permiten alterar el flujo del programa o el estado
del microprocesador. Estas instrucciones pueden ser de dos tipos:
ƒ
Control del programa: son aquellas que cambian el contenido del Contador de Programa
(PC): saltos, llamadas y retornos de subrutinas. Cuando se salta a una subrutina el
microprocesador guarda en la pila el valor del PC (que contiene la dirección de la
instrucción siguiente a la de llamada a subrutina). Al volver de la subrutina mediante una
instrucción de retorno, ésta recupera de la pila la dirección de retorno y la carga de nuevo
en el PC, lo cual permite reanudar la ejecución en el punto donde se había dejado. Los
saltos pueden ser absolutos y relativos.
ƒ
Control del microprocesador: modifican el registro de estado y la máscara de
interrupciones (habilitar/inhabilitar) las interrupciones.
Modos de Direccionamiento
•
Se definen los modos de direccionamiento como los métodos mediante los cuales una instrucción accede a los
operandos con los que operará. Dicho de otro modo, son los diferentes mecanismos que se pueden usar para
especificar donde está localizado un operando.
•
Los modos de direccionamiento contribuyen en gran medida a la variedad y potencia del juego de instrucciones de un
microprocesador. El conocimiento de todos los modos de direccionamiento nos da una idea de las muchas formas en
que podemos referirnos a los datos y manipularlos, lo cual se traduce en el diseño de programas más eficientes.
JUEGO DE INSTRUCCIONES
•
Los modos de direccionamiento más habituales son:
ƒ
Implícito: la dirección del operando está codificada en el propio código de operación.
Ejemplo: instrucciones que hacen referencia al acumulador.
ƒ
Inmediato: el operando forma parte de la instrucción y el acceso es inmediato.
ƒ
Directo a registro: la instrucción nos indica el registro que contiene el operando.
ƒ
Indirecto a registro: la instrucción nos indica el registro que contiene la dirección de
memoria donde está el operando.
ƒ
Absoluto o directo: la instrucción contiene la dirección de memoria del operando.
ƒ
Indexado: la instrucción nos indica un registro índice que al sumarse con un
desplazamiento contenido en la propia instrucción nos da la dirección del operando. Se
usa para acceder a posiciones consecutivas de memoria (tablas de datos en memoria).
ƒ
Relativo al PC: la instrucción contiene un desplazamiento que sumado al valor del PC
determina la dirección del operando. El desplazamiento puede ser positivo o negativo y
normalmente está codificado en complemento @2. Este modo de direccionamiento se usa
para implementar los saltos relativos.
27
NIVELES DE PROGRAMACION
•
El único lenguaje que entienden los microporcesadores es el formado por los ceros y unos del sistema binario.
Cualquiera instrucción que deba ser ejecutada por el microprocesador debe estar expresada en binario. A este
lenguaje se le denomina lenguaje máquina por ser el que comprende el microprocesador.
•
El lenguaje ensamblador utiliza mnemónicos, que son grupos de caracteres alfanuméricos que simbolizan las
órdenes o tareas a realizar con cada instrucción. El programa escrito en lenguaje ensamblador recibe la denominación
de código fuente.
•
El programa ensamblador es un software que se encarga de traducir los mnemónicos y símbolos alfanuméricos del
programa escrito en ensamblador por el usuario, a código máquina, para que pueda ser interpretado y ejecutado por el
microprocesador.
•
Las ventajas de los lenguajes de alto nivel, principalmente el lenguaje C, frente al ensamblador es la rapidez en el
desarrollo de las aplicaciones y la comodidad.
•
Las ventajas del ensamblador sobre los lenguajes de alto nivel residen en la eficiencia y lo compacto que resulta el
código (entorno a un 80% menor en tamaño).
•
Además, cuando se utiliza la programación en ensamblador, se tiene un control total sobre el tiempo de
ejecución de las instrucciones, lo que puede resultar especialmente importante en ciertas aplicaciones en
tiempo real.
NIVELES DE PROGRAMACION
LENGUAJES DE ALTO NIVEL
PROGRAMA
COMPILADOR
LENGUAJE ENSAMBLADOR
PROGRAMA
ENSAMBLADOR
LENGUAJE MAQUINA
28
AREAS DE APLICACION
•
Las posibles aplicaciones de los sistemas basados en microprocesador son ilimitadas dependiendo de la propia
competencia del diseñador y de su imaginación.
•
No se puede dar una lista exhaustiva de aplicaciones, sin embargo si se pueden distinguir cuatro áreas de aplicación
principales:
ƒ
Sistemas Computador: el campo de los computadores fue la primera aplicación de los
microprocesadores: calculadoras, ordenadores personales, grandes computadores, procesadores
de texto, procesadores bancarios y también el uso de los microprocresadores como
controladores de dispositivos periféricos.
ƒ
Sistemas Industriales: las aplicaciones industriales de los microprocesadores han consistido
fundamentalmente en la sustitución de la lógica cableada por microprocesadores de bajo coste.
El impacto principal de los microprocesadores en el mundo industrial no ha sido la reducción en
el precio del hardware sino el aportar una serie de nuevas fuinciones que hacen más sencillo el
control del proceso y aumentan su “inteligencia” sin aumentar el coste: control de procesos de
fabricación, control de flujos, control de calefacción-refrigeración, sistemas de seguridad y
alarma.
ƒ
Aplicaciones de Consumo e Instrumentación: se caracterizan por los grandes volúmenes de
producción y por la necesidad de minimizar costes: electrodomésticos, televisión …
ƒ
Aplicaciones Especiales: se caracterizan por alguna especificación o requisito especialmente
severo, por ejemplo el tamaño o el volumen o el peso del sistema, consumo reducido:
aplicaciones médicas, militares, aeroespaciales….
EVOLUCION DE LOS MICROPROCESADORES
•
La aparición de los microprocesadores no se debió a ninguna maniobra planificada de antemano, ni a la “vista
comercial” o al diseño ingenioso de nadie, fue absolutamente accidental.
•
Debido a esta introducción desordenada e incontrolada de los microprocesadores en el mercado, sus errores iniciales
de diseño y sus inconvenientes se han propagado hasta nuestros días en nombre de la compatibilidad.
EVOLUCIÓN DE LOS µP INTEL
29
EVOLUCION DE LOS MICROPROCESADORES
PRIMER MICROPROCESADOR: 4004 INTEL AÑO 1971:
Diseñado para un fabricante japonés de calculadoras
•Lento (108 kHz)
•Juego de Instrucciones reducido
ANÉCDOTA INTEL AÑO 1972:
TRC = Controlador de tubo de rayos catódicos
•Contrato para el desarrollo de un TRC para DATAPOINT
•Se presentan INTEL y TEXAS
•Lo desarrolla INTEL
•Es algo lento para TRC (no funciona bien como TRC)
•Estalla guerra de precios de transistores (precio transistores baja)
•El TRC con transistores es muy barato
•DATAPOINT “pasa” de INTEL y saca al mercado su TRC con transistores
•Gran faena para INTEL: pérdida de dinero invertido, equipo despedido
•Pone en catálogo el producto desarrollado
•¡SORPRESA!: El producto se vende muy bien (INTEL 8008)
8008
4004
•¡Ha nacido el microprocesador!
•El año anterior (1971) habían desarrollado un producto de arquitectura similar (INTEL 4004) para un fabricante japones de
calculadoras.
•El equipo despedido crea la ZILOG (Z80)
•Otros fabricantes entran en el negocio (MOTOROLA)
EVOLUCION DE LOS MICROPROCESADORES
EVOLUCION DE LOS MICROPROCESADORES
Gener.
Año
Microprocesador
Características
1971
4004 (Intel)
Datos de 4 bits. Instrucciones de 8 bits.
1974
8080 (Intel)
Datos de 8 bits.
8085 (Intel)
Direcciones 16 bits.
1ª
2ª
Direcciones 12 bits. 46 instrucciones.
1974
6502 (Motorola)
1976
Z-80 (Zilog)
1976
6809 (Motorola
Datos 8/16 bits. Direcciones 16 bits.
1980
68000 (Motorola)
Datos 16/32 bits. Direcciones 24 bits.
80286 (Intel)
Modos Usuario/Supervisor.
3ª
4ª
Acumulador. Puntero de Pila.
Registro Indice.
1975
Datos 8 bits. Direcciones 16 bits.
1985
T-212 Transputer
Computación paralela.
1987
AMD 2901
Por rebanadas (bit-slice). 1,2,4, ó 8 bits.
1987
Sparc
RISC. 128 registros. Pipeline.
1988
TMS320C30
DSP. Buses 32 bits. Arquitectura Harvard.
1992
DEC Alpha
Datos de 64 bits. Reloj 200 MHz.
1993
Pentium
Microprograma.
5ª
Superescalar: dos unidades de coma fija en
paralelo.
30
EVOLUCION DE LOS MICROPROCESADORES
EVOLUCION DE LOS MICROPROCESADORES
Arquitectura Interna Z80 ZILOG
31
EVOLUCION DE LOS MICROPROCESADORES
INTEL 8085
EVOLUCION DE LOS MICROPROCESADORES
Arquitectura Interna 80386 INTEL
32
EVOLUCION DE LOS MICROPROCESADORES
EVOLUCION DE LOS MICROPROCESADORES
Arquitectura Interna PIC16F87x MICROCHIP
33
EVOLUCION DE LOS MICROPROCESADORES
Arquitectura Interna ADSP 2106x ANALOG
EVOLUCION DE LOS MICROPROCESADORES
Arquitectura Interna ADSP 21160 ANALOG
34
CONSIDERACIONES TECNOLOGICAS
•
Gordon Moore, uno de los fundadores de Intel, formuló en el año 1965 una ley que se ha venido conociendo como
la “Ley de Moore”: el número de transistores contenidos en un microporcesador se dobla más o menos cada 18
meses. (Esta ley en principio estaba destinada a los dispositivos de memoria, pero también los microprocesadores
la han cumplido).
•
Para el usuario esta ley significa que cada 18 meses, de forma continua, puede disfrutar de una tecnología mejor,
algo que se ha venido cumpliendo durante los últimos 30 años y que se espera siga vigente en los próximos 15 ó
20. Por esta razón los supercomputadores de hoy serán considerados equipos estándar de técnica avanzada
dentro de 10 0 20 años (esta afirmación se ha venido cumpliendo desde que aparecieron los primeros
microporcesadores y en la actualidad la sufrimos todos en nuestros ordenadores personales).
CONSIDERACIONES TECNOLOGICAS
•
La evolución de la tecnología microelectrónica ha llevado al diseño y construcción de microporcesadores cada vez
más pequeños, rápidos, potentes y de consumos progresivamente menores. Sin embargo, no toda la evolución se
ha basado en el aspecto tecnológico, a lo largo de los años, también la estructura de los microporcesadores ha ido
avanzando e incorporando técnicas para aumentar su rendimiento en general o en aplicaciones concretas.
ENIAC (1945)
PC con P4
35

Documentos relacionados