Sunteți pe pagina 1din 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 (BDIR-
I) 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 E tener una memoria de
utilizada en nuestros días programa y una memoria de
es más lenta que la datos la hace una
arquitectura de Harvard, arquitectura mucho más
esto se debe a su estable y con más
flexibilidad para el uso de velocidad, aunque no sea
diferentes tipos de tan utilizada
programas

Uso de la memoria Las instrucciones y los Se utiliza una sola caché


datos se almacenan en para datos e instrucciones
cachés separadas para (programas), lo cual merma
mejorar el rendimiento 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 Consume muchas líneas de
PC por que permite ahorrar E/S del procesador, por lo
una buena cantidad de que en sistemas donde el
líneas de E/S, que son procesador está ubicado en
bastantes costosas. 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

S-ar putea să vă placă și