Sunteți pe pagina 1din 8

Arquitectura Interna de un Microcontrolador

Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de


von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura
de von Neumann se caracteriza por disponer de una sola memoria principal donde se
almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través
de un sistema de buses único (direcciones, datos y control). La arquitectura Harvard
dispone de dos memorias independientes, una que contiene sólo instrucciones y otra, sólo
datos. [1]

Arquitectura de Von Neumann


La arquitectura Von Neumann es un modelo de organización en arquitecturas de computadoras
que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los
datos.La arquitectura de von Neumann se caracteriza por disponer de una sola memoria
principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se
accede a través de un sistema de buses único (direcciones, datos y control).

Ilustración 1 Arquitectura Interna de Von Neumann de un Microcontrolador

 Un único bus de datos para instrucciones y datos.


 Las instrucciones del programa y los datos se guardan conjuntamente en una
memoria común.
 Cuando la CPU se dirige a la memoria principal, primero accede a la instrucción
y después a los datos necesarios para ejecutarla, esto retarda el funcionamiento.
[1]

Arquitectura segmentada

Las arquitecturas segmentadas aparecieron a mediados de los años 1960's como una
manera de aumentar el rendimiento sin implicar un nivel masivo de paralelismo Durante
los años 1980's fueron una de las ideas centrales de los procesadores RISC, buscando
alcanzar el objetivo de que se ejecutara una instrucción cada ciclo de máquina. En Inglés
se conocen como “pipelined procesors” o procesadores entubados [2]

 Máquina secuencial
 Buses de datos y direcciones compartidos
 Diseño multietapa (Pipeline)
 El diseño multietapa le permite ejecutar más de una operación a la vez
 Se encuentra combinada con software CISC y en pocas ocasiones con RISC
 Más rápida que Von Neuman
Arquitectura de Harvard
Dispone de dos memorias independientes, una que contiene sólo instrucciones, y otra que
contiene sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es
posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas
memorias, ésta es la estructura para los PIC's

Ilustración 2Arquitectura Interna de Harvard de un Microcontrolador

 El bus de datos y el bus de instrucciones están separados


 Acceso en paralelo: Cuando se está leyendo una instrucción, la instrucción
actual está utilizando el bus de datos. Una vez finalizada la instrucción actual, la
siguiente ya está disponible en la CPU.
 Permite una ejecución más rápida

El tamaño de los buses que direccionan la memoria de datos y la de programa son diferentes.
Lo mismo pasa con el bus que transfiere las instrucciones y el que lo hace con los datos. La total
independencia entre los accesos a las dos memorias permite realizar accesos simultáneos [1]

Ciclos de Instrucción

Von Neumann

Ilustración 3 Ciclo de Instruccion de Von Neuman

Hardvard

Ilustración 4 Ciclo de Instrucción de Hardvard


Arquitecturas de programación

La Arquitectura CISC ( Complex Instruction Set Computer ).

Fue la primera tecnología de CPUs con la que la maquina PC se dio a conocer


mundialmente. Adoptada por Intel, se colocó en las primitivas PCs (procesador 8088) que
fueron lanzadas bajo la marca IBM el 12 de agosto de 1981. Su sistema de trabajo se basa
en la Microprogramación.

Es un modelo de arquitectura de computadoras que cuentan con un conjunto de


instrucciones muy amplias ayudando así a realizar operaciones complejas. CISC (del
inglés Complex Instruction Set Computer, en español Computador con Conjunto de
Instrucciones Complejas).

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la


actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema
que convierte dichas instrucciones complejas en varias instrucciones simples, llamadas
generalmente microinstrucciones. [3]

Características:

 Conjunto de instrucciones grande.


 Ofrece una amplia gama de operaciones.
 Facilita el trabajo de programación.
 Reduce el tamaño del código de programa.
 Incrementa el coste de aprender la programación.
[4]

La arquitectura RISC (reduced instruction set computer).

Es un tipo de diseño de CPU generalmente utilizado en microprocesadores o


microcontroladores, buscando aumentar la velocidad del procesamiento se descubrió en
base a experimentos que, con una determinada arquitectura de base, la ejecución de
programas directamente con microinstrucciones. Se entiende por procesador RISC aquel
que tiene un conjunto de instrucciones con unas características determinadas.

Características:
 Pocas instrucciones
 Más fácil de aprender el método de programación
 Mayor tamaño del código de programa
 La CPU trabaja mas rápido al utilizar menos ciclos de reloj para cumplir sus
funciones (ejecutar instrucciones).
 Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a
diferencia de CISC, RISC conserva después de realizar sus operaciones en
memoria los dos operándoos y su resultado (total tres direcciones), lo que facilita
a los compiladores conservar llenos los 'pipelines' (conductos) de la CPU para
utilizarlos concurrentemente y reducir la ejecución de nuevas operaciones.
 Cada instrucción puede ser ejecutada en un solo ciclo de la CPU (máxima
velocidad y eficiencia).
Ilustración 5Comparación entre arquitectura CISC y RISC

Arquitectura SISC (Simple Instruction Set Co mputing)

En los microcontroladores destinados a aplicaciones muy concretas, el juego de


instrucciones, además de ser reducido, es "específico", o sea, las instrucciones se adaptan
a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre
de SISC (Computadores de Juego de Instrucciones Específico).

La tecnología SISC nació como concepto en 1975 en los laboratorios Yorktown Heights
de IBM. Fue desarrollada por John Cocke quien investigaba cómo simplificar las
instrucciones utilizadas para desempeñar tareas de cómputo; sin embargo, fue hasta enero
de 1986 cuando IBM anunció la primera generación de computadoras basadas en RISC.

Estas computadoras se acomodaban perfectamente a los ambientes comerciales y


científicos, pero, al igual que otros sistemas SISC de terceras companías, estaban
totalmente fuera del mercado de los sistemas personales. Esta realidad motivó que el
nicho fuera exclusivo de las arquitecturas CISC, específicamente de la familia de
procesadores de Intel. La alianza entre Apple, IBM y Motorola se dio precisamente para
enfrentar a Intel y el resultado fue el poderoso PowerPC, que es un procesador de bajo
costo con todo el poder de la tecnología RISC.

Tabla 1Comparación entre arquitectura CISC y RISC


REGISTROS

Los registros del procesador se emplean para controlar instrucciones en ejecución,


manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros
son espacios físicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits
dependiendo del microprocesador que se emplee. Los registros son direccionables por
medio de una viñeta, que es una dirección de memoria. Los registros se dividen en:

 Registros de propósito específico: se utilizan para una tarea determinada. Están


asociados a las unidades funcionales y cumplen funciones específicas: PC, MDR,
IR, ALUOut, etc.
 Registros de propósito general: se utilizan para almacenar datos o direcciones de
forma flexible. Agrupados en bancos de registros.

Registros de propósito especifico:

Almacenan información específica sobre el estado del sistema como el puntero de pila o
el registro de estado.
Permiten llevar un récord de estado del procesador en todo momento.
Los mas importantes son el contador de programa (PC), el registro de banderas, y el
apuntador de pila (SP).

Los registros con función específica más usuales son:

Contador de programa: Contiene la dirección de la memoria donde está alojada la


siguiente instrucción a ejecutar. Actúa, por tanto, como un puntero y, de hecho en algunos
microprocesadores se denomina puntero de instrucción.
Puntero de pila: En ocasiones es necesario guardar temporalmente el contador de
programa, por ejemplo al saltar a una subrutina o cuando el microprocesador debe atender
una interrupción externa, con la intención de recuperarlo posteriormente.

Acumulador: Puede ser utilizado como registro de propósito general en muchas


situaciones, pero en otras adquiere el papel de registro específico al ser el destinatario de
diferentes operaciones aritméticas, lógicas o de entrada/salida.

Estado: Su denominación cambia según el tipo de diseño y fabricante, pero su finalidad


es siempre la misma: mantener una serie de bits indicando el estado en que se encuentra
el microprocesador.

Otros registros: Si bien los cuatro citados pueden considerarse los más importantes, todos
los microprocesadores disponen además de otros registros de uso específico, ocultos en
su mayor parte que emplean para almacenar el código de la instrucción que está
ejecutándose, contener temporalmente datos procedentes de memoria que van a intervenir
en un cálculo, etc. [5]

Registros de propósito general:


Son registros que permiten almacenar tanto datos como direcciones. La mayoría de las
computadoras modernas emplean este tipo de registro

Los registros de propósito general se utilizan para almacenar datos temporalmente.


Debido a que estos registros han evolucionado desde una máquina de 8 bits (el 8080) un
grupo de registros aún se puede utilizar con un tamaño de 8 bits para mantener
compatibilidad con toda la línea de procesadores.

Aun cuando estos registros pueden mantener cualquier tipo de datos, algunos tienen cierta
funcionalidad específica o son usados de manera especial por algunas instrucciones

Los registros de propósitos generales AX, BX, CX y DX son los caballos de batalla o las
herramientas del sistema. Son los únicos en el sentido de que se puede direccionarlos
como una palabra o como una parte de un byte. El último byte de la izquierda es la parte
“alta”, y el último byte de la derecha es la parte “baja”. [5]

Registros ax.
El registro ax, el acumulador principal, es utilizado para operaciones que implican
entrada/salida y la mayor parte de la
Aritmética. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el
uso del ax.
Registro bx.
El bx es conocido como el registro base ya que es el único registro de propósitos generales
que pueden ser unos índices
Para direccionamiento indexado. También es común emplear al bx para cálculos.
Registro cx.
El cx es conocido como el registro contador. Puede contener un valor para controlar el
número de veces que un ciclo se
Repite o un valor para corrimiento de bits, hacia la derecha o hacia la izquierda.
Registro dx.
El dx es conocido como el registro de datos. Algunas operaciones de entrada/salida
requieren su uso, y las operaciones
De multiplicación y división con cifras grandes suponen al dx y al ax trabajando juntos.

Bancos de memoria

Toda la memoria de datos está organizada en 4 bancos numerados: 0, 1, 2 y 3. Para


seleccionar un banco, se debe hacer uso de los bits del registro STATUS<7:5>
denominados IRP, RP1 y RP0.

Cada banco se extiende hasta la dirección de memoria 7Fh (128 bytes). Las posiciones
inferiores de cada banco están reservadas para los registros de funciones especiales, a
continuación de estos, se ubican los registros de propósito general, implementado como
RAM estática. Todos los bancos implementados contienen registros de funciones
especiales. Uno de los usos más frecuentes de estos registros con respecto a un banco,
puede ser el reflejo en otro para la reducción de código y la vía de entrada más rápida.
Ilustración 6 Bancos de memoria de los PIC de la gama media.

Hay dos maneras de acceder a la memoria de datos: Direccionamiento directo e indirecto.


La selección de bancos se basa en la siguiente tabla.

Los PIC´s de la gama mejorada, poseen memoria de datos RAM en todas las versiones
hasta 1MB, con MMU y 4 canales de DMA. También tienen versiones de memoria de
datos EEPROM (con protección) de 256 bytes
es un registro que siempre apunta a ladirección en
memoria de programa que se esta ejecutando

Contador del su valor es incrementado en 1 en cada ciclo, excepto cuando una


instrucción de
programa(PC) salto es ejecutada

determina el flujo deejecución de las instrucciones almacenadas en la memoria


de programa

guarda el estado de las diferentes banderas que son modificadas por


eventos específicos

bandera de signo (SF)

Registros de la bandera de cero (ZF),


banderas
la bandera de acarreo
(CF)

la bandera
de interrupción (IF

guarda la dirección de memoria mas reciente usada por la pila.


Apuntador de
pilas (SP) La pila es un espacio reservado en memoria usado para guardar el estado del procesador
cuando se llaman sub-rutinas

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