TEMA 2 TEMA 2 DISEÑO DE UN SISTEMA BASADO EN MICROPROCESADOR

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

0 downloads 99 Views 2MB Size

Recommend Stories


Tema 2 EL SISTEMA PETROLERO
Tema 2 EL SISTEMA PETROLERO La Máquina del petróleo Calor HC’S Presión HC’S HC’S El SISTEMA PETROLERO "MAQUINA NATURAL DE HACER PETROLEO" El

TEMA 2.- APARATO LOCOMOTOR: EL SISTEMA ARTICULAR
TEMA 2.- APARATO LOCOMOTOR: EL SISTEMA ARTICULAR . Todos los movimientos que podemos realizar son posibles porque nuestro esqueleto es articulado, es

TEMA 2: EL SISTEMA MUSCULAR HUMANO
Ciencias Naturales 6º de Primaria Tema 2: El Sistema Muscular Humano TEMA 2: EL SISTEMA MUSCULAR HUMANO 1. EL SISTEMA MUSCULAR El cuerpo humano tien

Tema 2: Desarrollo del sistema nervioso
Miriam Turiel Miranda 2º Medicina Tema 2: Desarrollo del sistema nervioso 1. Fases de desarrollo del sistema nervioso  Neurulación: formación del t

Procedimiento para el diseño de un mapa de memoria de un sistema basado en microprocesador:
Diseño de mapas de memoria DISEÑO DE BLOQUES DE MEMORIA La ampliación de componentes es una característica del diseño y en el caso de las memorias ti

Tema 2. Tema 3. Teorema de Stokes
Tema 2 Teorema de Stokes Establece que una función V armónica en el exterior de una superficie S queda determinada de forma única por sus valores sobr

Story Transcript

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.





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.





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.



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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.