Está en la página 1de 12

Arquitectura von Neumann y arquitectura Harvard

Hay dos arquitecturas distintas relacionadas con el uso y distribución de la


memoria: Arquitectura de Von Neumann y Arquitectura Harvard.

Arquitectura de Von Neumann: Tradicionalmente los sistemas con


microprocesadores se basan en esta arquitectura, en la cual la unidad central de
proceso (CPU), está conectada a una memoria principal única (casi siempre sólo
RAM) donde se guardan las instrucciones del programa y los datos. A dicha
memoria se accede a través de un sistema de buses único (control, direcciones
y datos).

En un sistema con arquitectura Von Neumann el tamaño de la unidad de datos


o instrucciones está fijado
por el ancho del bus que comunica la memoria con la CPU. Así un
microprocesador de 8 bits con un bus de 8 bits tendrá que manejar datos e
instrucciones de una o más unidades de 8 bits (bytes) de longitud. Si tiene
que acceder a una instrucción o dato de más de un byte de longitud, tendrá que
realizar más de un acceso a la memoria.
El tener un único bus hace que el microprocesador sea más lento en su
respuesta, ya que no puede buscar
en memoria una nueva instrucción mientras no finalicen las transferencias de
datos de la instrucción anterior.

La arquitectura Von Neumann realiza o emula los siguientes pasos


secuencialmente:

1) 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.

2) Aumenta el contador de programa en la longitud de la instrucción para apuntar


a la siguiente.
3) 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.

4) Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del


programa, permitiendo así operaciones repetitivas.

5) Regresa al paso N° 1.

Conclusión:

* La mayoría de las computadoras todavía utilizan la arquitectura Von Neumann,


propuesta a principios de los años 40 por John Von Neumann.

* La arquitectura Von Neumann describe a la computadora con 4 secciones


principales: la unidad lógica y aritmética (ALU), la unidad de control, la memoria,
y los dispositivos de entrada y salida (E/S).

* En este sistema, la memoria es una secuencia de celdas de almacenamiento


numeradas, donde cada una es un bit, o unidad de información.
La instrucción es la información necesaria para realizar, lo que se desea, con la
computadora.
Las celdas contienen datos que se necesitan para llevar a cabo las instrucciones,
con la computadora.
chip.

Arquitectura Harvard

Este modelo, que utilizan los Microcontroladores PIC, tiene la unidad central de
proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con
los datos) por medio de dos buses diferentes.

Una de las memorias contiene solamente las instrucciones del programa


(Memoria de Programa), y la otra
sólo almacena datos (Memoria de Datos).

Ambos buses son totalmente independientes lo que permite que la CPU pueda
acceder de forma
independiente y simultánea a la memoria de datos y a la de instrucciones. Como
los buses son independientes estos pueden tener distintos contenidos en la
misma dirección y también distinta longitud.
También la longitud de los datos y las instrucciones puede ser distinta, lo que
optimiza el uso de la memoria en general.

Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced


Instrucción Set Computer), el set de instrucciones y el bus de memoria de
programa pueden diseñarse de tal manera que todas las instrucciones tengan
una sola posición de memoria de programa de longitud.
Además, al ser los buses independientes, la CPU puede acceder a los datos
para completar la ejecución de
una instrucción, y al mismo tiempo leer la siguiente instrucción a ejecutar.

Ventajas de esta arquitectura:

* El tamaño de las instrucciones no está relacionado con el de los datos, y por lo


tanto puede ser
optimizado para que cualquier instrucción ocupe una sola posición de memoria
de programa,
logrando así mayor velocidad y menor longitud de programa.

* El tiempo de acceso a las instrucciones puede superponerse con el de los


datos, logrando una
mayor velocidad en cada operación.

 Se evita las formaciones de cuello de botella debido a utilizar diferente


almacenamiento para datos y programa.
 El tamaño de las instrucciones no está relacionado con el tamaño de
datos.
 El diseño del bus de programa ayuda a determinar el tamaño máximo de
una instrucción.
 Se mejora la velocidad y menor longitud del programa
 Se puede acceder a datos y programa al mismo tiempo.
La arquitectura Harvard cuenta con los mismos módulos o unidades que la
arquitectura Von neuman es decir unidad de control, buses de comunicación,
ALU, E/S, memoria para datos y para programa.

MICROPROCESADOR
 Es el circuito integrado central más complejo de un sistema informático; a
modo de ilustración, se le suele llamar por analogía el «cerebro» de
un computador.
 Es el encargado de ejecutar los programas, desde el sistema
operativo hasta las aplicaciones de usuario; sólo
ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando
operaciones aritméticas y lógicas simples, tales
como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos
a memoria.
Puede contener una o más unidades centrales de procesamiento (CPU)
constituidas, esencialmente, por registros, una unidad de control, una unidad
aritmético lógica (ALU) y una unidad de cálculo en coma flotante (conocida
antiguamente como «coprocesador matemático»).
ARQUITECTURA INTERNA DEL MICROPROCESADOR
El microprocesador tiene una arquitectura parecida a la computadora digital. El
microprocesador es como la computadora digital porque ambos realizan cálculos
bajo un programa de control.
Los primeros microprocesadores se crearon de acuerdo a la arquitectura de Von
Neumann.
Llamamos arquitectura interna del microprocesador a la distribución física de sus
componentes.
Componentes Principales

 Memoria Principal: Memoria primaria (MP), memoria principal, memoria


central o memoria interna es la memoria de la computadora donde se
almacenan temporalmente tanto los datos como los programas que
la unidad central de procesamiento (CPU) está procesando o va a
procesar en un determinado momento.

 Unidad Aritméticológica (ALU): Unidad aritmética lógica, es


un circuito digital que calcula operaciones aritméticas (como suma, resta,
multiplicación, etc.) y operaciones lógicas (si, y, o, no) con números
enteros.

 Unidad de Control (UC): Es el núcleo procesador, dirige la ejecución del


programa y controla el movimiento entre la memoria y ALU.
 FPU: (Unidad de Punto Flotante) se especializa en el cálculo de
operaciones en coma flotante.

 Caché L1-L2-L3: Es una memoria de tipo SRAM, guarda los datos


utilizados frecuentemente para agilizar los procesos.

 Unidad de Entrada/Salida: Es la colección de interfaces que usas las


distintas unidades funcionales de un sistema de procesamiento de
información para comunicarse con otras.

De entrada: Teclado, Ratón, Lápiz óptico, Micrófono, Webcam, Escáner,


Pantalla táctil.

De salida: Monitor, Altavoz, Auriculares, Impresora, Proyector.

De entrada/Salida: Cd, DVD, Modem, Fax, USB.

FUNCIONAMIENTO DE LOS MICROPROCESADORES


Desde el punto de vista lógico, singular y funcional, el microprocesador está
compuesto básicamente por: varios registros, una unidad de control, una unidad
aritmético lógica, y dependiendo del procesador, puede contener una unidad de
coma flotante.
El microprocesador ejecuta instrucciones almacenadas como números binarios
organizados secuencialmente en la memoria principal. La ejecución de las
instrucciones se puede realizar en varias fases:
 Prefetch, prelectura de la instrucción desde la memoria principal.
 Fetch, envío de la instrucción al decodificador
 Decodificación de la instrucción, es decir, determinar qué instrucción es y
por tanto qué se debe hacer.
 Lectura de operandos (si los hay).
 Ejecución, lanzamiento de las máquinas de estado que llevan a cabo el
procesamiento.
 Escritura de los resultados en la memoria principal o en los registros.
Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo
de la estructura del procesador, y concretamente de su grado de segmentación.
La duración de estos ciclos viene determinada por la frecuencia de reloj, y nunca
podrá ser inferior al tiempo requerido para realizar la tarea individual (realizada
en un solo ciclo) de mayor coste temporal. El microprocesador se conecta a un
circuito PLL, normalmente basado en un cristal de cuarzo capaz de generar
pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en un
segundo. Este reloj, en la actualidad, genera miles de megahercios.
MICROCONTROLADOR

Un microcontrolador es un circuito integrado que en su interior contiene una


unidad central de procesamiento (CPU), unidades de memoria (RAM y ROM),
puertos de entrada y salida y periféricos. Estas partes están interconectadas
dentro del microcontrolador, y en conjunto forman lo que se le conoce como
microcomputadora. Se puede decir con toda propiedad que un microcontrolador
es una microcomputadora completa encapsulada en un circuito integrado.
Toda microcomputadora requiere de un programa para que realice una función
específica. Este se almacena normalmente en la memoria ROM.

Las aplicaciones de los microcontroladores son vastas, se puede decir que solo
están limitadas por la imaginación del usuario. Es común encontrar
microcontroladores en campos como la robótica y el automatismo, en la industria
del entretenimiento, en las telecomunicaciones, en la instrumentación, en el
hogar, en la industria automotriz, etc.
Los microcontroladores están diseñados para interpretar y procesar datos e
instrucciones en forma binaria. Patrones de 1's y 0's conforman el lenguaje
máquina de los microcontroladores, y es lo único que son capaces de entender.
La programación comúnmente se lleva a cabo en un lenguaje de alto nivel, es
decir, un lenguaje que utilice frases o palabras semejantes o propias del
lenguaje humano. Las sentencias de los lenguajes de alto nivel facilitan
enormemente la programación ya que son familiares a nuestra manera de
comunicarnos. Lenguajes como el C o BASIC son comúnmente utilizados en la
programación de microcontroladores.
Todo programa escrito en un lenguaje de alto nivel debe ser transformado en
código máquina. Los programas que escribimos los entendemos nosotros, no
así el microcontrolador.
Un software de computadora, llamado compilador, traduce y transforma nuestro
programa en código máquina, que es lo que realmente puede leer e interpretar
el microcontrolador.

El procesador: Es el elemento más importante del microcontrolador y determina


sus principales características, tanto a nivel hardware como software. Se
encarga de direccionar la memoria de instrucciones, recibir el código OP de la
instrucción en curso, su decodificación y la ejecución de la operación que implica
la instrucción, así como la búsqueda de los operandos y el almacenamiento del
resultado.
Memoria: En los microcontroladores la memoria de instrucciones y datos está
integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se destina
a contener el programa de instrucciones que gobierna la aplicación. Otra parte
de memoria será tipo RAM, volátil, y se destina a guardar las variables y los
datos.

Hay dos peculiaridades que diferencian a los microcontroladores de los


computadores personales:

No existen sistemas de almacenamiento masivo como disco duro o disquetes.


Como el microcontrolador sólo se destina a una tarea en la memoria ROM, sólo
hay que almacenar un único programa de trabajo.

La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las
variables y los cambios de información que se produzcan en el transcurso del
programa.
Puertas de Entrada y Salida: Las puertas de Entrada y Salida (E/S) permiten
comunicar al procesador con el mundo exterior, a través de interfaces, o con
otros dispositivos. las líneas de E/S se destinan a proporcionar el soporte a las
señales de entrada, salida y control
Reloj principal: Esta señal del reloj es el motor del sistema y la que hace que el
programa y los contadores avancen.
Temporizadores o Timers: Se emplean para controlar periodos de tiempo
(temporizadores) y para llevar la cuenta de acontecimientos que suceden en el
exterior (contadores).

Arquitectura básica de un microcontrolador

La unidad central de procesamiento de un microcontrolador:


Es la encargada de direccionar la memoria de instrucciones, recibir el código de
la instrucción, decodificarla y ejecutar la operación, así como el almacenamiento
del resultado. Existen tres orientaciones en cuanto a la arquitectura de los
microcontroladores.

- CISC (Computadores de juego de Instrucciones Complejo ) Disponen de


instrucciones maquina en su repertorio, son mucho muy potentes y requieren de
muchos ciclos para su ejecución. Su ventaja es que ofrecen instrucciones
complejas que actúan como macros.

- RISC (Computadores de juego de Instrucciones Reducido) El repertorio de


instrucciones maquina es muy reducido y las instrucciones son simples y,
generalmente, se ejecutan en un ciclo. La sencillez permite optimizar el hardware
y el software de dicho procesador.

- SISC (Computadores de juego de Instrucciones Especifico) Están hechos para


aplicaciones específicas como su nombre lo dice y el sistema de instrucciones
se adapta a la aplicación prevista a crear.

Memoria de un microcontrolador

Cabe destacar que los microcontroladores no tienen sistemas de


almacenamiento másico como discos duros, ya que para su ejecución solo
necesita un único programa. Por ultimo para la ROM normalmente se le dan de
512 bytes hasta 8 kb.

Otra parte es Random Access Memory y se utiliza para guardar datos durante la
ejecución de las instrucciones. Dicha memoria es reducida ya que solo necesita
contener unas cuantas variables y cambios de información durante la ejecución
del programa. A esta memoria se le otorgan alrededor de 512 bytes.

Los microcontroladores actuales solo pueden tener uno de cinco de los tipos de
memoria no volátil, como son:

-ROM: una memoria no volátil que puede procesar cantidades de varios miles de
unidades.
-OTP: una memoria no volátil que solo puede ser programada una sola vez por
el usuario.
-EPROM: su nombre indica su función (Erasable programmable read only
memory) solo cuenta con una particularidad ya que debe exponerse a rayos
ultravioleta durante varios minutos para poder borrarle el contenido.
-EEPROM: es la versión mejorada de la EPROM ya que este tipo de memorias
se pueden borrar con electricidad, no son necesarios los rayos UV. Pero se
deben usar con cuidado ya que su reprogramación cumple un ciclo finito de
veces, no son eternos.
-FLASH: cumple la función de una ROM y una RAM, porque se puede leer y
escribir información en dicha memoria, haciéndola una memoria más veloz que
la EEPROM pero cambiando el coste de tolerancia para los ciclos de escritura y
borrado.
TIPOS DE MICROCONTROLADORES

Entre casi un centenar de fabricantes de microcontroladores que existen en el


mundo es muy difícil seleccionar «el mejor». En realidad, no existe, porque en
cada aplicación son sus características específicas las que determinan el más
conveniente.

- Gama baja o básica: PIC16C5X con instrucciones de 12 bits

Se trata de una serie de PIC de recursos limitados, pero con una de las mejores
relaciones Coste/prestaciones. Sus versiones están encapsuladas con I8 y 28
patitas y pueden alimentarse a partir de una tensión de 2,5 V lo que les hace
ideales en las aplicaciones que funcionan con pilas. Tienen un repertorio de 33
instrucciones cuyo formato consta de I2 bits. No admiten ningún tipo de
interrupción y la pila sólo dispone de dos nivele

- Gama media: PIC16CXXX con instrucciones de 14 bits

Es la gama más variada y completa de los PIC. Abarca modelos con


encapsulado desde 18 pines hasta 68, cubriendo varias opciones que integran
abundantes periféricos. Dentro de esta gama se halla el «fabuloso PIC 16F84».
El repertorio de instrucciones es de 35 a 14 bits cada una y compatible con el de
la gama baja. Sus distintos modelos contienen todos los recursos que se
precisan en las aplicaciones de los microcontroladores de 8 bits. También
dispone de interrupciones y una Pila de 8 niveles que permite el anidamiento de
subrutinas.

- Gama alta: PIC17CXXX con instrucciones de 16 bits

Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos


disponen de un sistema de gestión de interrupciones sectorizadas muy potente.
También incluyen variados controladores de periféricos, puertas de
comunicación serie y paralelo con elementos externos y un multiplicador
hardware de gran velocidad. Quizás la característica más destacable de los
componentes de esta gama es su arquitectura abierta, que consiste en la
posibilidad de ampliación del microcontrolador con elementos externos.

- Gama mejorada: PIC18C(F)XXX con instrucciones de 16 bits

En los inicios del tercer milenio de nuestra era Microchip presentó la gama
mejorada de los microcontroladores PIC con la finalidad de soportar las
aplicaciones avanzadas en las áreas de automoción, comunicaciones,
ofimática y control industrial. Sus modelos destacaron por su alta velocidad (40
MHz) y su gran rendimiento (10 MIPS a 10 MHz). Entre las aportaciones más
representativas de esta serie de modelos que crece cada año, destacan.

A) Un espacio de direccionamiento para la memoria de programa que permite


alcanzar los2 MB, y 4 KB para la memoria de datos.
B) Inclusión de la tecnología FLASH para la memoria de código.
C) Potente juego de 77 instrucciones de 16 bits cada una. Permiten realizar
una multiplicación8 x 8 en un ciclo de instrucción, mover información entre
las memorias y modificar el valor de un bit en un registro o en una línea de
E/S.
D) Orientación a la programación en lenguaje C con la incorporación de
compiladores muy eficientes para este lenguaje.
E) Nuevas herramientas para la emulación.

Estructura general del PIC 16F84A

Interior del procesador

 MEMORIA FLASH DEL PROGRAMA: 1K


 MEMORIA DE DATOS RAM: 68 bytes
 MEMORIA DE DATOS EEPROM: 64 bytes
 PILA (STACK): 8 niveles
 INTERRUPCIONESS: 4 tipos diferentes (Pata externa RB0/INT, exceso
del temporizador TMR0, Interrupción al cambio PORTB<7:4> y al
completar la escritura del EEPROM de datos).
 JUEGO DE INSTRUCCIONES: 35
 FRECUENCIA DE TRABAJO: 20Mhz máxima.
 TEMPORIZADORES: solo uno, el TMR0 de 8 bits con preescaler (divisor
de frecuencia) programable de 8 bytes. También tienen perro guardián
(WDT).
 LINEAS DE E/S DIGITALES: 13(5 Puerta A y 8 Puerta B) con control
individual de dirección
 VOLTAJE DE ALIMENTACION: 2 a 6V DC
 REGISTROS DE HARDWARE DE FUNCIONES ESPECIALES: 15
 EXTENSION DE DATOS: 8bits
 MODOS DE ACCESO: directo, indirecto, relativo.
 CICLO DE INSTRUCCIÓN: 2 para saltos y 1 para el resto.

Características especiales del microcontrolador PIC 16F84A

 Memoria de programa de 1000 ciclos de escritura/borrado de flash


reforzado.
 Memoria de datos EEPROM de 10, 000,000 de ciclos de borrado/escritura
típica
 Retención de datos de EEPROM de >40años.
 Programación en serie dentro del circuito (ICSP = In Circuit Serial
Programming) mediante dos patas
 Watchdog Timer (WDT) con su propio oscilador RC incorporado en el chip
para un funcionamiento confiable
 Protección de códigos.
 Modo SLEEP para economizar consumos.
 Opciones de seleccionado de oscilador.
 Tecnología CMOS con flash reforzado y EEPROM.
 Tecnología de baja potencia y alta velocidad.
 Diseño estático completo.
 Rango amplio de tensiones de funcionamiento.
 Comercial: 2volt a 5.5volt.
 Industrial: 2volt a 5.5volt.
 Consumo muy bajo
 <mA típico a 5volt, 4Mhz
 <0,5uA típico de corriente en reposo a 2volt.

Arquitectura moderna y revolucionaria


 Para lograr una compactación de código óptima y una velocidad superior
a la de sus competidores los microcontroladores PIC incorporan en su
procesador tres de las características más avanzadas en los grandes
computadores:
 Procesador tipo RISC.
 Procesador segmentado