Arquitectura Von Neumann Y Harvard.docx

  • Uploaded by: Ulivari Alexander Gomez
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Arquitectura Von Neumann Y Harvard.docx as PDF for free.

More details

  • Words: 6,648
  • Pages: 26
TECNOLOGICO NACIONAL DE MEXICO INSTITUTO TECNOLOGICO DE TUXTLA GUTIERREZ INGENIERIA ELECTRONICA ASIGNATURA MICROCONTROLADORES DOCENTE ING. HERNANDEZ SOL ALVARO TRABAJO ARQUITECTURA VON NEUMANN Y ARQUITECTURA HARVARD EQUIPO 4 ESTUDIANTES DOMINGUEZ REYES JOSE ANGEL GOMEZ GOMEZ ULIVARI ALEXANDER OCAÑA SANCHEZ RODRIGO ANDRES SANTIAGO SOLORZANO SERGIO ALEXANDER

TUXTLA GUTIERREZ, CHIAPAS A 18 DE MARZO DE 2019

Microprocesadores y microcontroladores Para comprender mejor la arquitectura de los microcontroladores empezaremos describiendo las diferencias entre un microcontrolador y un microprocesador. En la siguiente figura se muestra el esquema general básico de un microcomputador. Se compone de tres bloques fundamentales: la CPU, la memoria, y la entrada y salida. Los bloques se conectan entre sí mediante grupos de líneas eléctricas denominados buses. Los buses pueden ser de direcciones (si se transportan direcciones de memoria o de entrada y salida), de datos (si transportan datos o instrucciones) o de control (si transportan señales de control diversos).

La CPU es el cerebro del microcomputador y actúa bajo el control el programa almacenado en la memoria. La CPU se ocupa básicamente de traer las instrucciones del programa desde la memoria interpretarlas y hacer que se ejecuten. La CPU también incluye los circuitos para realizar operaciones aritméticas y lógicas elementales con los datos binarios, en la denominada Unidad Aritmética y Lógica (ALU). Es un microcomputador, la CPU no es otra cosa que el microprocesador, el circuito integrado capaz de realizar las funciones antes mencionadas. Un microcontrolador es un microcomputador realizado en un circuito integrado (chip). Las patitas de un microprocesador sacan al exterior las líneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los Módulos de E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto por que su configuración es variable de acuerdo con la aplicación a la que se destine. Un microprocesador es un sistema abierto con el que puede construirse un computador con las características que se desee, acoplándole los módulos necesarios. Un microcontrolador

es un sistema cerrado que contiene un computador completo y de prestaciones limitadas que no se pueden modificar.

Figura 1.2. Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicación.

Figura 1.3. El microcontrolador en un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. Componentes de un microcontrolador

Un microcontrolador combina los recursos fundamentales disponibles en un microcomputador, es decir, la unidad central de procesamiento (CPU), la memoria y los recursos de entrada y salida, en único circuito integrado.

Figura 1.4 Diagrama de bloques de un microcontrolador. Los microcontroladores disponen de un oscilador que genera los pulsos que sincronizan las operaciones internas. El oscilador puede ser del tipo RC, aunque generalmente se prefiere que esté controlado por un cristal de cuarzo (XTAL) debido a su gran estabilidad de frecuencia. La velocidad de ejecución de las instrucciones del programa está en relación directa con la frecuencia del oscilador del microcontrolador. La CPU es el “cerebro” del microcontrolador. Esta unidad trae las instrucciones del programa, una a una, desde la memoria donde están almacenadas, las interpreta(decodifica) y hace que se ejecuten. En la CPU se incluyen los circuitos de la ALU para realizar operaciones aritméticas y lógicas elementales con los datos binarios. La CPU de un microcontrolador dispone de diferentes registros, algunos de propósito general y otros para propósitos específicos. Entre estos últimos están el Registro de instrucción, el Acumulador, El Registro de Estado, el Contador de Programa, el Registro de Direcciones de Datos y el Puntero de la Pila. El Registro de Instrucción (RI) almacena la instrucción que está siendo ejecutada por la CPU. El RI es invisible para el programador. El Acumulador (ACC: Acumulador) es el registro asociado a las operaciones aritméticas y lógicas que se pueden realizar en la ALU. En cualquier operación, uno de los datos debe estar en el ACC y el resultado se obtiene en el ACC. El ACC no existe en los microcontroladores PIC, que tienen en cambio el registro W. El Registro de Estados (STATUS) agrupa los bits indicadores de las características del resultado de las operaciones aritméticas y lógicas realizadas en la ALU. Entre estos indicadores están el signo el resultado (si es positivo o negativo), si el resultado es cero, si hay acarreo o préstamo, el tipo de paridad (par o impar) del resultado.

El Contador de Programa (PC) es el registro de la CPU donde se almacenan direcciones de instrucciones. Cada vez que la CPU busca una instrucción en la memoria, el PC se incrementa, apuntando así a la siguiente instrucción. El registro de Direcciones de Datos (RDD) almacenas direcciones de datos situados en la memoria. Este registro es indispensable para e direccionamiento indirecto de datos en la memoria. El Puntero de la Pila (SP) es el registro que almacena direcciones de datos en la pila. La memoria del microcontrolador es el lugar donde son almacenadas las instrucciones del programa y los datos que manipula. En un microcontrolador encontraremos dos tipos de memoria: la memoria RAM y la memoria ROM. La memoria RAM es una memoria de lectura y escritura, que además es volátil, es decir pierde la información almacenada cuando falta energía que alimenta la memoria. La memoria ROM es una memoria de solo lectura y no volátil. Las diferentes tecnologías para realizar las memorias de solo lectura (ROM, EPROM, EEPROM, OTP, FLASH). Tanto la memoria RAM como la memoria ROM son de acceso aleatorio se refiere a que el tiempo necesario para localizar un dato no depende del lugar de la memoria donde esté almacenado. En las memorias de acceso secuencial, en cambio, cuando más alejado esté un dato de la posición a la que se ha accedido por última vez tarda para localizarlo. La entrada y salida es particularmente importante en los microcontroladores, pues a través de ella el microcontrolador interacciona con el exterior. Forman parte de la entrada y salida los puertos paralelo y serie, los temporizadores y la gestión de las interrupciones, puede incluir entradas salidas analógicas asociadas a convertidores A/D Y D/A. El perro guardián (WDT: Watchdog Timer) consta de un oscilador y un contador binario de N bits. El oscilador puede ser el oscilador principal del microcontrolador, aunque se prefiere un oscilador independiente. La salida de la última etapa va conectada al circuito de reset del microcontrolador

Figura 1.5 Esquema básico del perro guardián. El oscilador envía sus pulsos periódica y permanentemente a la entrada de reloj del contador. Si el contador llega a contar los N pulsos, se desborda, su salida se activa y produce el reset del microcontrolador.

El reset es una acción con la se inicia el trabajo de los microprocesadores y microcontroladores. Esta acción se ejcuta cuando se aplica una señal denominada de reset a una terminal, designado también como reset. El efecto práctico de la señal es poner el contador de programa (PC) en un valor predeterminado haciendo así que el microprocesador o microcontrolador comience a ejecutar las instrucciones que están a partir de esa posición de memoria apuntada por el PC. Arquitectura Von Neumann y Harvard En la memoria de un ordenador, un microcomputador o un microcontrolador, se almacenan instrucciones y datos, las instrucciones deben pasar secuencialmente a la CPU para su descodificación y ejecución, en tanto que algunos datos en memoria son leídos por la CPU y otros son escritos en la memoria desde la CPU. Puede intuirse que la organización de la memoria y su comunicación con la CPU son dos aspectos que influyen en el nivel de prestaciones del ordenador. Las arquitecturas von Neumann y Harvard son modelos generales del hardware de los ordenadores que representan dos soluciones diferentes al problema de la conexión de la CPU con la memoria y la organización de la memoria como almacén de instrucciones y datos. La arquitectura von Neumann utiliza una memoria única para instrucciones y datos. Esto significa que con un mismo bus de direcciones se localizan (direccionan) instrucciones y datos y que por único bus de datos transitan tanto instrucciones como datos. La misma señal del control que emite la CPU para leer un dato, sirve para leer una instrucción. No hay señales de control diferentes para datos e instrucciones. Debe quedar claro que, aunque se use memoria ROM para almacenar el programa y RAM para los datos, para la CPU no hay tal distinción, sino que ROM y RAM forman un conjunto único (una memoria de lectura y escritura) para la cual la CPU emite señales de control, de dirección y de datos. La arquitectura von Neumann Se caracteriza por que la CPU se conectaba a una memoria única, donde coexistían datos e instrucciones, a través de un sistema de buses.

Figura 1.6. En la arquitectura de Von Neumann la UCP se comunicaba a través de un sistema de buses con la Memoria, donde se guardaban las instrucciones y los datos.

Figura 1.7 La arquitectura von Neumann utiliza una memoria única que se conecta a la CPU mediante los buses de direcciones (BDIR), datos (BDAT) y control (BCON) Las computadoras con arquitectura Von Neumann se realizan a partir de tres conceptos claves, que son: 1.- Los datos y las instrucciones se almacenan en una sola memoria de lectura - escritura. 2.- Los contenidos de esta memoria se direccionan indicando su posición, sin considerar el tipo de dato contenido en la misma. 3.- La ejecución se produce siguiendo una secuencia de instrucción tras instrucción (a no ser que dicha instrucción se modifique explícitamente). 1.- LA UNIDAD ARITMÉTICO-LÓGICA O ALU Es el dispositivo digital encargado de efectuar las operaciones aritméticas y lógicas en los microprocesadores. 2.- LA UNIDAD DE CONTROL Es el dispositivo encargado de activar o desactivar los diversos componentes del microprocesador. 3.- LA MEMORIA Son circuitos integrados capaces de almacenar información digital, a los que tiene acceso el microprocesador del equipo de computación. Las memorias podemos dividirlas en: 4.- UN DISPOSITIVO DE ENTRADA/SALIDA Entrada: Son los que envían información a la unidad de procesamiento, en código binario. Ejemplos: Teclados, sensores Salida: Son los dispositivos que reciben información que es procesada por la CPU y la reproducen para que sea perceptible para la persona. Ejemplo: Monitores. Todo ellos unidos por Buses de datos proporciona un medio de transporte de los datos entre las distintas partes. Una computadora con arquitectura von Neumann realiza o emula los siguientes cuatros pasos generando ciclos:

PRIMERO. - Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción. SEGUNDO. - Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente. TERCERO. - Descodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada. CUARTO. - Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores La arquitectura Harvard utiliza memorias separadas para instrucciones y datos. En este caso la memoria de programa (que almacena instrucciones) tiene su bus de direcciones (de instrucciones), su propio bus de datos (más bien es un bus de instrucciones) y su bus de control. Por otra parte, la memoria de datos tiene sus propios buses de direcciones, datos y control, independientemente de los buses de la memoria de programa. La memoria de programa es sólo de lectura, mientras que en la de datos se pueden leer y escribir.

Figura 1.8 La arquitectura Harvard utiliza memorias separadas para instrucciones y datos, las cuales se conectan a la CPU mediante los buses de direcciones de instrucciones (BDIRI) y de direcciones de datos (BDIR-D) y los buses de instrucciones (BINST) y de datos (BDAT) y los buses de control de instrucciones (BCON-I) y de datos (BCON-D)

Figura 1.9. En la arquitectura Harvard la memoria de instrucciones y la de datos son independientes, lo que permite optimizar sus características y propiciar el paralelismo en esta figura, la memoria de instrucciones tiene 1 K de 14 bits cada una, mientras que la de datos sólo dispone de 512 posiciones de un byte. Podemos resumir que el proceso de ejecución de las arquitecturas es la siguiente: 1.- Búsqueda de instrucción: Lo tomo del PC y lo mando al bus de dirección, mando la señal al bus de control hasta que lo encuentra y lo coloca en el bus de datos y lo manda a IR e incremento a PC. 2.- Decodificación (Interpretar): Aquí l dice si lo guardo en registro o memoria, IR interpreta primero la instrucción, ósea que operación va hacer, quienes son los operandos que intervienen (a,b), (c o d), pueden ser datos que están almacenados en la memoria de datos y por ultimo a donde voy a mandar o guardar el resultado. 3.- Ejecución: ya se genera el código de control, que operación va a resultar de lo que le decimos a la ALU, si los operadores son registros la palabra es única, pero si uno es memoria, la unidad de control tienen que mandar a la dirección a encontrarlo después al bus de datos y mandarlo a la ALU. 4.- Almacenamiento: Puede ser en ellos registros o la memoria de datos, en uno de los registros de la salida de la ALU, pero si lo guardo en una memoria de la ALU lo manda a donde se vaya a guardar. cuando se guarda el resultado se empieza de nuevo el proceso. En el caso de la arquitectura Von Neumann la CPU puede estar bien leyendo una instrucción o leyendo/escribiendo datos desde/hacia la mamemoria pero ambos procesos no pueden ocurrir al mismo tiempo y en la arquitectura Harvard la CPU puede tanto leer una instrucción como realizar un acceso a la memoria de datos al mismo tiempo, incluso sin una memoria caché. La arquitectura Von Neumann requiere menos líneas que la Harvard para conectar la CPU con la memoria, lo cual significa una conexión más simple entre ambas. Pero con esta arquitectura es imposible manipular simultáneamente datos e instrucciones, debido a la estructura de buses únicos, algo que si posible en la arquitectura Harvard, que tiene buses separados. Esto confiere a la arquitectura Harvard la ventaja de una mayor velocidad de ejecución de los programas.

Arquitecturas

Ventajas

Desventajas

Permite el diseño de La longitud de las programas con código instrucciones está limitada automodificable Von Neumann

Es eficiente en la utilización La velocidad de operación de la memoria está limitada El tamaño de las Deben poseer instrucciones instrucciones está especiales relacionado con el de los datos

Harvard

El tiempo de acceso de las Disminuye el rendimiento instrucciones puede en caso de que las superponerse con el de los instrucciones no tengan el datos mismo espacio Comparaciones

Arquitectura

Von Neuman

Harvard

Velocidad

A pesar de ser la mas utilizada en nuestros días es más lenta que la arquitectura de Harvard, esto se debe a su flexibilidad para el uso de diferentes tipos de programas

E tener una memoria de programa y una memoria de datos la hace una arquitectura mucho más estable y con más velocidad, aunque no sea tan utilizada

Uso de la memoria

Las instrucciones y los datos se almacenan en cachés separadas para mejorar el rendimiento

Se utiliza una sola caché para datos e instrucciones (programas), lo cual merma el desempeño

Es utilizada en:

Es la variante adecuada Por excelencia se utiliza en para las PC. Ya que es lenta supercomputadoras, en los pero flexible, adaptable y microcontroladores. modificable en ciertos casos.

Costos

Es la variante adecuada en PC por que permite ahorrar una buena cantidad de líneas de E/S, que son bastantes costosas.

Consume muchas líneas de E/S del procesador, por lo que en sistemas donde el procesador está ubicado en su propio encapsulado, solo se utiliza en supercomputadoras.

Microprocesador Zilog Z80

Este microprocesador tiene una arquitectura von neumann ya que las señales se transmiten únicamente por medio de tres buses, el bus de direcciones, el bus de datos y el bus de control es por esto que la CPU puede estar leyendo una instrucción o escribiendo datos, pero no puede hacer ambos procesos a la vez ya que dicho bus esta ocupado haciendo un proceso y para realizar la siguiente instrucción este debe finalizar la anterior. A continuación, se explicará cada parte de este microprocesador el cual ha sido uno de los más talentosos, y muchos sistemas basados en microprocesadores están diseñados alrededor del Z80. El Zilog Z80 es un microprocesador de 8 bits con 16 lineas de dirección este microprocesador requiere únicamente una fuente de alimentación de 5V. Este modelo incluye un acumulador y un registro de bandera, matrices de registro de propósito general, registros como punteros de memoria y registros de propósito especial. En la siguiente figura se muestra el diagrama del Zilog Z80.

Registros de propósito general El microprocesador Z80 tiene seis registros de propósito general programables llamados B, C, D, E, H y L, como se muestra en la Figura. Estos son registros de 8 bits utilizados para almacenar datos durante la ejecución del programa. Se pueden combinar como pares de registros: BC, DE y HL, para realizar operaciones de 16 bits o mantener las direcciones de memoria. El programador puede usar estos registros para cargar o copiar datos.

Acumulador El acumulador es un registro de 8 bits que forma parte de la unidad lógica aritmética (ALU) y también se identifica como el registro A. Este registro se utiliza para almacenar datos de 8 bits y para realizar operaciones aritméticas y lógicas. El resultado de una operación realizada en la ALU se almacena en el acumulador.

Conjunto de registro alternativo el Z80 incluye un conjunto similar de registros alternativos designados como B ', C', D ', E', H ', L', el acumulador A', y el registro de bandera F'. Estos registros no están directamente

disponibles para el programador; sin embargo, las instrucciones de intercambio pueden intercambiar información de pares de registros con los respectivos pares de registros alternativos.

Registros de 16 bits como punteros de memoria El microprocesador Z80 incluye cuatro registros de 16 bits, y estos registros se utilizan para contener direcciones de memoria; Por lo tanto, aquí se clasifican como punteros de memoria. La función principal de la memoria es almacenar instrucciones y datos, y el microprocesador necesita acceder a los registros de la memoria para leer estas instrucciones y datos. Para acceder a un byte en una ubicación de memoria, el microprocesador identifica la ubicación de la memoria utilizando las direcciones en estos punteros de memoria. Registros de índice (IX e IY) El Z80 tiene dos registros de 16 bits llamados registros de índice que se utilizan para almacenar direcciones de 16 bits. Estos registros se utilizan para identificar ubicaciones para la transferencia de datos Apuntador de pila (SP) Este también es un registro de 16 bits que se usa para apuntar a la ubicación de la memoria llamada pila. La pila es un área definida de la ubicación de la memoria en la memoria de escritura o lectura, y el comienzo de la pila se define al cargar una dirección de 16 bits en el puntero de la pila. Program Counter (PC) Este registro funciona como un contador de 16 bits. El microprocesador utiliza este registro para secuenciar la ejecución de las instrucciones. La función del contador del programa es apuntar a la dirección de memoria desde la cual se recuperará el siguiente byte. Cuando el microprocesador coloca una dirección en el bus de direcciones para recuperar el byte de la memoria, incrementa el contador del programa en uno para apuntar a la siguiente ubicación de memoria. Registros de propósito especial: el microprocesador Z80 incluye dos registros de propósito especial que generalmente están ausentes en otros microprocesadores de 8 bits. Estos registros se muestran en la Figura 2 como el Registro de vectores de interrupción (I) y el Registro de memoria (R). Las funciones de estos registros se describirán más a delante.

ADSP-2100 DESCRIPCIÓN GENERAL Los procesadores de la familia ADSP-2100 son microcomputadoras de un solo chip optimizadas para el procesamiento de señales digitales (DSP) y otras aplicaciones de procesamiento numérico de alta velocidad. Los procesadores ADSP-21xx están todos construidos sobre un núcleo común. Cada procesador combina la arquitectura DSP central (unidades de cómputo, generadores de direcciones de datos y secuenciador de programas) con características diferenciadoras como el programa en chip y la memoria RAM de datos, un temporizador programable, uno o dos puertos serie y, en el ADSP-2111, un puerto de interfaz de host.

¿ES UN PROCESADOR CON ARQUITECTURA HARVARD? La memoria de programa tiene su propio bus de direcciones (instrucciones), bus de datos (más bien es un bus de direcciones) y bus de control. La memoria de datos tiene sus propios buses de direcciones, datos y control. Los 14 bits de direcciones son enviados a los buses de dirección de la memoria del programa, así como al bus de memoria de datos Los 24 bits de datos son enviados al bus de datos de la memoria del programa y al bus de datos memoria de datos, del cual el bus de datos de la memoria del programa manda la información a las unidades aritméticas, estás reciben los 24 bits, que contienen los 16 bits del dato y los 8 bits del código de operación, por lo que devuelven al bus de datos de la memoria de dados un dato de 16 bits. Mientras eso se ejecuta el secuenciador del programa y los DAGS se encargan de proporcionarle nuevas direcciones a los datos obtenidos, así como de proporcionar un orden de ejecución. Manipular datos e instrucciones al mismo tiempo Mayor velocidad de ejecución de los programas

ALU, MAC Y SHIFTER

ADSP-2111 Microprocesadores DSP de punto fijo de 16 bits con memoria en chip Arquitectura Harvard mejorada para rendimiento de tres buses: bus de instrucción y bus de datos dual Independent Computation Units: ALU, Multiplier/ Accumulator, and Shifter Ejecución de instrucciones de ciclo único e instrucciones multifuncionales Memoria de programa On-Chip RAM o ROM y memoria de datos RAM Periféricos de E / S integrados: puertos serie, temporizador, puerto de interfaz de host (solo ADSP-2111)

Características 25 MIPS, 40 ns Tasa de instrucción máxima Buses en chip separados para memoria de programa y datos La memoria del programa almacena instrucciones y datos (rendimiento de tres buses) Generadores de direcciones de datos duales con módulo y direccionamiento de bits inverso Secuenciación de programas eficiente con sobrecarga cero Bucle: configuración de ciclo de ciclo único Inicio automático de la memoria del programa en chip desde una memoria externa de bytes (por ejemplo, EPROM) Puertos serie de doble búfer con hardware de compresión, almacenamiento en búfer automático de datos y operación multicanal El puerto de interfaz de host ADSP-2111 proporciona una interfaz fácil para 68000, 80C51, ADSP-21xx, etc., arranque automático de la memoria del programa ADSP-2111 A través del puerto de interfaz del host Tres interrupciones sensibles al nivel o al filo Instrucción IDLE de baja potencia

Bus interno El bus de resultado interno (R) conecta directamente las unidades de cómputo para que la salida de cualquier unidad pueda usarse como la entrada de cualquier unidad en el siguiente ciclo.

Generador de dirección de datos (DAG) El mecanismo que genera direcciones de memoria temporales para los datos que se transfieren entre la memoria y los registros en un Procesador de Señal Digital. Ciertas arquitecturas de DSP incorporan más de un DAG para simplificar la programación necesaria para mover bloques de datos entre buffers. Por ejemplo, ciertos algoritmos de transformada rápida de Fourier que requieren inversión de bits pueden usar el DAG para ese propósito, o pueden usar dos DAGS, uno para datos de memoria de programa (PMD) y otro para datos de memoria de datos (DMD).

Programa de secuencia Un potente secuenciador de programas y dos generadores de direcciones de datos dedicados aseguran un uso eficiente de estas unidades computacionales. El secuenciador admite saltos condicionales, llamadas de subrutinas y retornos en un solo ciclo. Con los contadores de bucle internos y las pilas de bucles, el ADSP-21xx ejecuta un código de bucle con una sobrecarga de cero; no se requieren instrucciones explícitas de salto para mantener el bucle.

PATENT EP 0 042 082 A1 Un secuenciador de microprogramas para unidades de control microprogramadas desarrolla direcciones de microprogramas consecutivas, ramas a subrutinas con ahorro de direcciones y posible retorno a microprogramas, así como interrupciones de forzamientos de microprogramas con ahorro de direcciones de los microprogramas interrumpidos. Para permitir el doble guardado de las direcciones de microprogramas y subrutinas en caso de interrupciones y ramas concurrentes, el secuenciador cuenta con dos bucles de generación de direcciones, cada uno de los cuales incluye un registro. Los dos bucles tienen una porción común a la que acceden a través de un multiplexor (23). El primer bucle (23, 25, 22, 21, 30, 31) está además acoplado a una pila de registros de ahorro (20). Mientras que el primer bucle ejecuta el guardado de una dirección de microprograma y el bloqueo de una dirección de bifurcación recibida desde el segundo bucle, el segundo bucle (23, 25, 24, 39, 17, 18, 42, 19, 27, 29) ejecuta un Primera actualización y -, enclavamiento relacionado de la interrupción de la dirección del microprograma. Durante el siguiente ciclo, por orden de la primera microinstrucción de la microprograma de interrupción, el segundo bucle realiza una primera actualización y el latch relacionado de la dirección de microprograma de interrupción y el primer bucle guarda en la pila de registros (20) la dirección de bifurcación y realiza una segunda Actualización y enclavamiento relacionado de la dirección del microprograma de interrupción.

Registro de instrucción (IR) La parte de una unidad de control de la unidad central de procesamiento (CPU) que contiene la instrucción de la máquina que se está ejecutando actualmente. El ciclo de búsqueda y ejecución de la CPU carga las instrucciones de la memoria en el registro de

instrucciones. El IR, a su vez, controla la lógica de decodificación de instrucciones que determina qué operación debe realizar la CPU en qué datos. Los procesadores modernos tienen un canal de instrucciones para minimizar el tiempo que la unidad de control está esperando a que se obtengan las instrucciones y los datos de la memoria. Esto puede distribuir el trabajo del IR en varios registros en la tubería.

Memoria Memoria del programa: donde se almacena la aplicación. Algunos chips permiten que partes de la memoria del programa se modifiquen en bloques (segmentos), pero no puede almacenar variables en la memoria del programa. Normalmente es posible almacenar constantes, es decir, variables inicializadas que no se cambian, en la memoria del programa. Cuando MMAP = 0, la memoria RAM del programa en chip ocupa 2K palabras comenzando en la dirección 0x0000. La memoria de programa off-chip utiliza las 14K palabras restantes que comienzan en la dirección 0x0800. En esta configuración, cuando MMAP = 0, la secuencia de carga de inicio (que se describe a continuación en “Interfaz de memoria de inicio”) se inicia automáticamente cuando se libera RESET.

Cuando MMAP = 1, las palabras 14K de la memoria del programa off-chip comienzan en la dirección 0x0000 y la memoria RAM del programa en el chip se encuentra en las palabras 2K superiores, comenzando en la dirección 0x3800. En esta configuración, la memoria del programa no se inicia, aunque se puede escribir y leer bajo el control del programa.

El bus de direcciones de memoria de programa en chip (PMA) y el bus de datos de memoria de programa en chip (PMD) se multiplexan con los buses de memoria de datos de chip (DMA, DMD), creando un solo bus de datos externo y un solo bus de direcciones externo. El bus de datos externo es bidireccional y tiene 24 bits de ancho para permitir la obtención de instrucciones desde la memoria externa del programa. La memoria del programa puede contener código y datos. El bus de direcciones externo es de 14 bits de ancho. Para el ADSP-2101, ADSP-2103 y ADSP-2111, estas líneas pueden direccionar directamente hasta 16K palabras, de las cuales 2K están en el chip.

Memoria de datos: Donde colocas tus variables. Puedes leer y escribir valores. Mapa de memoria de datos ADSP-2101 / ADSP-2103 / ADSP-2111 Para el ADSP-2101, ADSP-2103 y ADSP-2111, la RAM de la memoria de datos en el chip reside en las palabras de 1 K que comienzan en la dirección 0x3800, como se muestra en la Figura 10 Las ubicaciones de la memoria de datos desde 0x3C00 hasta el final de la memoria de datos en 0x3FFF están reservadas. Los registros de control y estado del sistema, el temporizador, la configuración del estado de espera y las operaciones del puerto serie se encuentran en esta región de la memoria.

Microcontrolador COP8780 de la familia COPSTM (Estructura Harvard) ¿Qué tipo de arquitectura es? El diagrama de bloques de este microcontrolador nos deja distinguirlo como un microcontrolador de arquitectura Harvard modificada debido a que la memoria de instrucción y la de datos ocupan diferente espacio de direcciones, además la memoria RAM tanto como la EPROM tienen buses de direcciones separadas de la unidad central y pueden ser accedidas de diferente manera. En la arquitectura Harvard modificada se permite que los contenidos de la memoria de instrucciones sean accedidos como si fuesen datos.

Datos del Microcontrolador          

8 Bits Fabricado con doble metal Estos dispositivos están disponibles como UV borrable y One Time Programable (OTP) Temporizador multifunción de 6 bits compatible Modo PWM Modo contador de eventos externos Modo de captura de entrada Cristal, RC u Oscilador Externo, configurable por el usuario OTP EPROM en chip de 4 Kbyte con función de seguridad 128 o 64 bytes de RAM en chip, configurable por el usuario

Registros de alu y cpu La ALU puede hacer una suma de 8 bits, una resta, lógica u Operación de cambio en un ciclo de tiempo. Hay cinco registros de CPU: -

A es el registro del acumulador de 8 bits. PU es los 7 bits superiores del contador de programas (PC) PL es los 8 bits más bajos del contador de programas (PC) B es el registro de dirección de 8 bits, se puede incrementar automáticamente o decrementar X es el registro de dirección alternativa de 8 bits, se puede incrementar o decrementar. SP es el puntero de pila de 8 bits, que apunta a la subrutina / Interrumpir la pila en la memoria RAM.

El SP debe inicializarse con software, este se utiliza con las Subrutinas de llamada, subrutinas de devoluciones, y con las interrupciones. Los registros B, X y SP se asignan en la memoria RAM del chip. Los registros B y X se utilizan para abordar la RAM en chip. El registro SP se utiliza para direccionar la pila en la RAM durante Subrutina de llamadas y devoluciones. Memoria del programa El dispositivo contiene 4096 bytes de UV borrable o OTP Memoria EPROM. La memoria del programa puede contener instrucciones o constantes de datos, y es direccionado por el contador de programa de 15 bits (PC). La memoria del programa puede ser leída indirectamente por el LAID (carga del acumulador indirecto) para la búsqueda en la tabla de datos constantes. Todas las ubicaciones en la memoria del programa EPROM contendrán 0FF Hex (todos los 1) después de que se borre el dispositivo. Las partes de OTP son enviadas con todas las ubicaciones ya borradas a hexadecimal 0FF. Las ubicaciones de EPROM siempre deben programarse a 00Hex para que la trampa de software pueda usarse para detener el fugitivo. Memoria de datos El espacio de direcciones de la memoria de datos incluye RAM en chip, E / S, y registros. La memoria de datos es direccionada directamente por Instrucciones, o indirectamente por medio de los punteros B, X o SP. El dispositivo se puede configurar para tener 64 o 128 bytes de RAM, dependiendo del valor del ‘‘RAM SIZE’’ Bit en el registro ECON (CONFIGURACIÓN EPROM). Los Dieciséis bytes de RAM ubicados en la dirección de memoria de datos 0F0– 0FF se designan como "registros". Estos dieciséis registros pueden ser disminuido y probados con el DRSZ (Decremento Registrar y omitir si es cero). Los tres punteros X, B y SP se asignan en memoria a este espacio de direcciones de registro en las direcciones 0FC, 0FE y 0FD respectivamente. Los registros restantes están disponibles para uso general. Cualquier bit de la memoria de datos se puede configurar, restablecer o probar directamente. Todos los registros de E / S y registros de control (excepto A y PC) son asignados a la memoria. En consecuencia, cualquiera de los bits de E / S o los bits de registro de control se pueden configurar directa e individualmente, restablecer, o probar. Nota: el contenido de la RAM no está definido en el encendido.

Registro econ (configuracion eprom) El registro ECON se utiliza para configurar por el usuario opciones de reloj, seguridad y tamaño de RAM. El registro puede ser Programado y solo lectura en modo de programación EPROM. Por lo tanto, el registro debe ser programado al mismo tiempo. El dispositivo tiene una característica de seguridad que, cuando está habilitada, evita Lectura de la memoria del programa EPROM. La seguridad bit en el registro ECON determina si la seguridad está habilitada o deshabilitada. Si la opción de seguridad está habilitada, entonces cualquier intento de leer externamente el contenido de la EPROM como resultado lee el valor E0 Hex de toda la memoria del programa, si la opción de seguridad está deshabilitada, los contenidos de la EPROM interna puede leerse. El registro ECON es legible independientemente del estado del bit de seguridad.

RABBIT 2000 MICROPROCESSOR

El microprocesador es del tipo von neumann Ya que cumple con las características de uno, por ejemplo y lo más importante es que usa un solo bus de datos, y un solo bus de dirección, en este microcontrolador no cuenta con un único bus de control, si no que sus funciones son determinadas por el conjunto de temporizadores que contiene, ya que estos mediante osciladores determinaran el tiempo de activación de cada una de sus partes. Características básicas del Rabbit El Rabbit es un procesador de 8 bits con un bus de datos externo de 8 bits y un bus de datos interno de 8 bits. Debido a que Rabbit aprovecha al máximo su bus externo de 8 bits y porque tiene un conjunto de instrucciones compacto, su rendimiento es tan bueno como muchos procesadores de 16 bits. Así, el Conejo puede manejar muchas operaciones de 16 bits. El micro rabbit maneja interiormente 8 bits, y por fuera de este tiene la capacidad de adquirir información de otros 8 bits, por lo que realmente trabaja con 16 bits Operaciones que puede realizar “Load Immediate Data” “8-bit Indexed Load and Store” “16-bit Indexed Loads and Stores” “16-bit Load and Store 20-bit Address” “Register to Register Moves” “Exchange Instructions” “Stack Manipulation Instructions” “16-bit Arithmetic and Logical Ops” “8-bit Arithmetic and Logical Ops” “8-bit Bit Set, Reset and Test” “8-bit Increment and Decrement” “8-bit Fast A register Operations” “8-bit Shifts and Rotates”

Puertos seriales Hay cuatro puertos serie designados como puertos A, B, C y D. Los cuatro puertos serie pueden operar en modo asíncrono hasta la velocidad en baudios del reloj del sistema dividido por 32. Los puertos asíncronos pueden manejar 7 u 8 data bits También se admite un esquema de dirección de 9º bit, donde se envía un bit adicional para marcar el primer byte de un mensaje. Sistema de reloj El oscilador principal utiliza un cristal externo con una frecuencia típicamente en el rango de 1.8 MHz a 29.5 MHz. El reloj del procesador se deriva de la salida del oscilador ya sea doblando la frecuencia, usando la frecuencia directamente, o dividiendo la frecuencia por 8. El reloj del procesador también puede ser controlado por el oscilador de 32.768 kHz para una operación de muy baja potencia, en cuyo caso El oscilador principal se puede apagar bajo el control del software Oscilador de fecha y hora El oscilador de 32.768 kHz controla un cristal de cuarzo externo de 32.768 kHz. El reloj de 32.768 kHz se usa para controlar un contador interno de 48 bits con batería de respaldo (hay un pin de alimentación separado) que sirve como reloj en tiempo real (RTC). El contador se puede configurar y leer por software y está diseñado para guardar la fecha y la hora. Hay suficientes bits para mantener la fecha por más de 100 años. El oscilador de 32.768 kHz también se usa para controlar el temporizador de vigilancia y para generar el reloj en baudios para el puerto serie A durante la secuencia de arranque en frío. Puertos paralelos de entrada y salidas hay 40 líneas de entrada / salidas paralelas divididas entre cinco puertos de 8 bits designados de la A, a la E. La mayoría de las líneas de puertos tienen funciones alternativas, como datos en serie o luces estroboscópicas de selección de chip. Los puertos paralelos D y E tienen la capacidad de salidas sincronizadas por temporizador. Los registros de salida están en cascada. Puerto esclavo El puerto esclavo está diseñado para permitir que el Conejo sea esclavo de otro procesador, lo que podría ser otro Conejo. El puerto se comparte con el puerto paralelo A y es un puerto de datos bidireccional. El maestro puede leer cualquiera de los tres registros seleccionados a través de dos líneas de selección que forman la dirección del registro y una luz estroboscópica de lectura que hace que el contenido del registro sea enviado por el puerto. Estos mismos registros pueden escribirse como registros de E / S por el esclavo Rabbit. Tres registros adicionales transmiten datos en la dirección opuesta. Son escritas por el maestro por medio de las dos líneas de selección y una luz estroboscópica de escritura. Temporizadores El conejo tiene varios sistemas de temporizador. La interrupción periódica es activada por el oscilador de 32.768 kHz dividido por 16, lo que da una interrupción cada 488 µs si está

habilitado. Está diseñado para ser utilizado como una interrupción de reloj de propósito general. El temporizador A consta de cinco registros de cuenta atrás y recarga de 8 bits que se pueden conectar en cascada hasta dos niveles de profundidad. Cada registro de cuenta regresiva se puede configurar para dividir por cualquier número entre 1 y 256. La salida de cuatro de los temporizadores se usa para proporcionar relojes de baudios para los puertos serie.

Registros del procesador El registro EIR se usa para apuntar a una tabla de vectores de interrupción para las interrupciones generadas externamente. El registro IIR se encarga de apuntar a una tabla de vectores de interrupción para las interrupciones generadas internamente.

Mapeo de memoria Las instrucciones de Rabbit se dirigen directamente a un espacio de memoria de datos de 64K. Esto significa que los campos de dirección en las instrucciones tienen una longitud de 16 bits y que los registros que pueden usarse como punteros a las direcciones de memoria (registros de índice (IX, IY), contador de programa y puntero de pila (SP)) también tienen una longitud de 16 bits.

La unidad de mapeo de memoria recibe direcciones de 16 bits como entradas y da salida a direcciones de 20 bits. Un método para obtener más espacio de datos es colocar los datos en la RAM o en la memoria flash que no se asigna en el espacio de 64 K, y luego acceder a estos datos mediante llamadas de función o en lenguaje ensamblador utilizando las instrucciones LDP

Related Documents


More Documents from ""