Está en la página 1de 19

Bus de datos

Un bus de datos es un sistema que se encarga de transferir datos entre componentes de una
computadora o red de computadoras.
En simples palabras, el bus permite la conexin entre diferentes elementos (o sub sistemas) de
un sistema digital principal, y enva datos entre dichos elementos. Estos datos se
encuentran en formas de seales (digitales) que pueden ser precisamente de datos, de
direcciones o de control.
Como todo lo relacionado a la tecnologa, y principalmente lo ligado a la informtica,
podemos descifrar que elementos como un bus de datos ha ido evolucionando con
el tiempo. Y as es efectivamente. Los primeros buses de datos se
denominaban paralelos, por lo cual la conexin entre elementos de una misma
computadora (o sistema digital) se realizaba mediante cintas que conectaban unos y otros
elementos.
En cambio, los ordenadores ms modernos, a partir del desarrollo de la conexin USB, los
buses de datos ahora se denominan seriales y ofrece este cambio una
mayor velocidad de respuesta y eficacia potenciada.
El sistema de medicin de la capacidad de un bus de datos est ligada a su frecuencia
mxima de envo posee y el ancho de datos. En general, ambas variables son inversamente
proporcionales (cuando asciende una, descienda la otra, y a la inversa): si el bus de datos
posee una alta frecuencia, el ancho de datos deber entonces ser pequeo. Por ello, un
bus de datos con pocas seales (o datos) puede funcionar a altas velocidades.
En cuanto a la evolucin de los buses de datos podemos identificar tres generaciones: la
primera de ellas, remite a aquellos sistemas digitales o computadores que posean dos
buses de datos, uno de ellos asignado a la memoria, y el otro asignado a los dems
dispositivos. Esta primera generacin de buses de datos fue desarrollada entre la dcada
del 70 y 80. Recordemos que los buses siempre enviaban datos a la CPU, y su accin era
en combinacin con la misma. Los buses de segunda generacin, poseen mayor
autonoma, algunos integrados al chipset del sistema y otros con controladores instalados
en el propio bus, que permita mayor velocidad.
La tercera generacin est signada por el tipo de buses seriales, que tienen como
objetivo reducir el nmero de conexiones de cada dispositivo que se conecta a la
computadora. El trmite es directamente entre el dispositivo conectado (mediante
conexin USB, por ejemplo) y el bus de datos que recibe las rdenes.








Acumulador (informtica)
En un CPU de computadora, el acumulador es un registro en el que son almacenados
temporalmente los resultados aritmticos y lgicos intermedios que sern tratados por
elcircuito operacional de la unidad aritmtico-lgica (ALU).
Sin un registro como un acumulador, sera necesario escribir el resultado de cada clculo,
como adicin, multiplicacin, desplazamiento,etc.... en la memoria principal, quizs justo
para ser leda inmediatamente otra vez para su uso en la siguiente operacin. El acceso a
la memoria principal es significativamente ms lento que el acceso a un registro como el
acumulador porque la tecnologa usada para la memoria principal es ms lenta y barata
que la usada para un registro interno del CPU.
El ejemplo cannico para el uso del acumulador es cuando se suma una lista de nmeros.
El acumulador es puesto inicialmente a cero, entonces cada nmero es sumado al valor en
el acumulador. Solamente cuando se han sumado todos los nmeros, el resultado
mantenido en el acumulador es escrito a la memoria principal o a otro, registro no-
acumulador del CPU.

Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar
direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son espacios fsicos
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 vieta, que es una direccin de memoria.
Los bits, por conveniencia, se numeran de derecha a izquierda (15,14,13. 3,2,1,0), los registros estn
divididos en seis grupos los cuales tienen un fin especifico. Los registros se dividen en:
Registros de segmento
Registros de apuntadores de instrucciones
Registros apuntadores
Registros de propsitos generales
Registro ndice
Registro de bandera.


La unidad de control es uno de los tres bloques funcionales principales en los que se
divide una unidad central de procesamiento (CPU). Los otros dos bloques son la unidad de
proceso y el bus de entrada/salida.
Su funcin es buscar las instrucciones en la memoria principal, decodificarlas
(interpretacin) y ejecutarlas, empleando para ello la unidad de proceso.
Existen dos tipos de unidades de control, las cableadas, usadas generalmente en
mquinas sencillas, y las microprogramadas, propias de mquinas ms complejas. En el
primer caso, los componentes principales son el circuito de lgica secuencial, el de control
de estado, el de lgica combinacional y el de emisin de reconocimiento de seales de
control. En el segundo caso, la microprogramacin de la unidad de control se encuentra
almacenada en una micromemoria, a la cual se accede de manera secuencial para
posteriormente ir ejecutando cada una de las microinstrucciones. Estructura del
computador: Unidad aritmtico-lgica (UAL o ALU por su nombre en ingls, Arithmetic
Logic Unit): aqu se llevan a cabo las operaciones aritmticas y lgicas.
Por otra parte esta la unidad de control, que fue histricamente definida como una parte
distinta del modelo de referencia de 1946 de la Arquitectura de von Neumann. En diseos
modernos de computadores, la unidad de control es tpicamente una parte interna del CPU
y fue conocida primeramente como arquitectura Eckert-Mauchly. Memoria: que almacena
datos y programas. Dispositivos de entrada y salida: alimentan la memoria con datos e
instrucciones y entregan los resultados del cmputo almacenados en memoria. Buses:
proporcionan un medio para transportar los datos e instrucciones entre las distintos y
pequeos que la memoria principal (los registros), constituyen la unidad central de
procesamiento (UCP o CPU por su nombre en ingls: Central Processing Unit)
5.5 La unidad de control
La unidad de control es la parte de la CPU que realmente hace que las cosas ocurran.
La unidad de control emite seales de control (ordenes) externas a la CPU para producir el
intercambio de datos con la memoria y los mdulos de E/S. Tambien emite seales de control
internas para transferir datos entre registros, hacer que la ALU ejecute una funcin concreta y
regular otras operaciones internas.
Es la unidad que extrae y analiza las instrucciones de la memoria central. Para ello necesita
dos registros:
1) Uno, llamado contador de programa, que contiene la direccin de las prxima instruccin por
ejecutar. Su nombre se debe a que, excepcin hecha de las rupturas de secuencia, este
registro va aumentando su contenido de manera de direccionar a la siguiente instruccin;
2) Otro, llamado registro de instruccin, que tiene dos partes: una para el cdigo de operacin,
que define el tipo de instruccin a ejecutar (suma, multiplicacin, salto, etc.) y otra parte, que
contiene la direccin del operando.
Sus componentes son:
- Decodificador: Se encarga de extraer el cdigo de operacin de la instruccin en curso (que
est en RI), la analiza y emite seales necesarias al resto de elementos para su ejecucin a
travs del secuenciador.
- Reloj: Proporciona una sucesin de pulsos elctricos o ciclos a intervalos constantes, que
marcan los instantes en que han de comenzar los distintos pasos de que consta cada
instruccin.

- Secuenciador (S): Tambin llamado controlador. En este dispositivo se generan rdenes
muy elementales (micrordenes) que, sincronizadas por los pulsos del reloj, hacen que se vaya
ejecutando poco a poco la instruccin que est cargada en el RI.
El contador de programa (en ingls Program Counter o PC), tambin llamado Puntero
de instrucciones (Instruction Pointer), parte del secuenciador de instrucciones en
algunas computadoras, es un registro del procesador de un computador que indica la
posicin donde est el procesador en su secuencia de instrucciones. Dependiendo de los
detalles de la mquina particular, contiene o la direccin de la instruccin que es
ejecutada, o la direccin de la prxima instruccin a ser ejecutada. El contador de
programa es incrementado automticamente en cada ciclo de instruccin de tal manera
que las instrucciones son ledas en secuencia desde la memoria. Ciertas instrucciones,
tales como las bifurcaciones y las llamadas y retornos de subrutinas, interrumpen la
secuencia al colocar un nuevo valor en el contador de programa.
En la inmensa mayora de los procesadores, el puntero de instrucciones es incrementado
inmediatamente despus de leer (fetch) una instruccin de programa; esto significa que la
direccin a la que apunta una instruccin de bifurcacin es obtenida agregando el
operando de la instruccin de bifurcacin a la direccin de la instruccin siguiente
(byte o word, dependiendo del tipo de la computadora) despus de la instruccin de
bifurcacin. La direccin de la siguiente instruccin a ser ejecutada siempre se encuentra
en el contador de instruccin.







EL CONTADOR DE PROGRAMA:
El PC proporciona la direccin de la memoria de programa y su longitud
puede oscilar entre 9 y 11 bits, segn la capacidad de la misma. En la
siguiente figura se muestra la longitud que adopta el PC para los diversos
modelos de PIC16C5X.






Los 8 bits de menos peso del PC (A07-A00) estn implementados fsicamente
en un registro denominado PCL, que se ubica en la direccin 02 de la
memoria de datos.
Longitud que adopta el PC para los diversos modelos de PIC de la gama baja.
El comportamiento del PC para las diversas instrucciones del repertorio es el
siguiente:
1. Para todas las instrucciones que no entraen saltos en el programa, el PC
se autoincrementa para apuntar la siguiente instruccin a la que se est
ejecutando.
2. Las instrucciones de salto GOTO cargan en el PC directamente los 9 bits
de menos peso desde el cdigo OP de la propia instruccin. Cuando el rea de
programa es superior a las 512 posiciones, los 2 bits de ms peso del PC (Al0
y A9) se cargan con el valor de los bits PA1 y PA0 del Registro de Estado.
3. Las instrucciones CALL contienen en su cdigo OP el valor de los 8 bits
de menos peso del PC. El bit A8 toma en este caso el valor 0 lo que obliga a
restringir la ubicacin de las rutinas a las 256 primeras posiciones de cada
pgina. Cuando son necesarios los bits Al0 y A9, se cargan con los bits PA1 y
PA0 del Registro de Estado.
Las instrucciones CALL, antes de su ejecucin, guardan en la Pila el valor del
PC inicial incrementado una unidad. Dicho valor se restituye al PC cuando se
ejecuta la instruccin de retorno cuyo mnemnico es RETLW.
4. En las instrucciones de "salto relativo", la ALU suma al PC inicial (A7-
A0), el valor del salto que se obtiene de los 8 bits de menos peso del cdigo
OP. El resultado de la operacin se carga en la parte baja del PC (AT-A0). El
bit A8 toma el valor 0 y los bits Al0 y A9 se cargan con el valor de PA1 y
PA0, respectivamente.
Cuando el PC apunta la ltima posicin de una pgina y se autoincrementa
pasa a direccionar a la siguiente instruccin que estar situada en la primera
posicin de la pgina siguiente. Cuando se produce un cambio de pgina, se
deben actualizar los bits PA1 y PA0 del Registro de Estado porque, en caso
contrario, cuando se ejecute una instruccin de salto, ste seguir controlando
la pgina en la que se halla esta instruccin de salto.
Cuando se genera un reset, los bits PA1 y PA0 del Registro de Estado toman
el valor 0. El PC queda apuntando la ltima posicin de la ltima pgina que
exista en la EPROM. Si en dicha posicin se coloca una instruccin de
GOTO, se pasa a direccionar una posicin de la pgina 0. En la figura que
representamos a continuacin se presenta un rea de programa de cuatro
pginas, habindose colocado en la ltima posicin de la pgina 3 una
instruccin de GOTO 0. Si se produce un RESET, dado que PA1 = PA0 = 0,
el GOTO lleva el flujo del programa a la posicin 0 de la pgina 0.





Bus de direcciones

Este bus se utiliza para direccionar las zonas de memoria y los dispositivos
(que recordemos son tratados como si de posiciones de memoria se tratasen),
de forma que, al escribir una direccin en el bus, cierto dispositivo quede
activado y sea quien reciba-enve los datos en el ciclo de bus as empezado.
Es un bus triestado unidireccional, por lo que puede ponerse en alta
impedancia e ignorar lo que ocurre en el exterior (al tiempo que no influir en
el estado de las lneas), pero solo permite la escritura del bus. Esto ltimo es
razonable, puesto que la lectura del bus de direcciones no es de utilidad para
el uP, al ser l mismo quien gestiona el direccionamiento.
Este bus se compone de 32 lneas, A31 hasta A0, lo que permite direccionar
2^32 posiciones de memoria: un total de 4Gigabytes.
Contrariamente a los modelos anteriores, A0 es una lnea plenamente
utilizada, lo que elimina la necesidad de la existencia de /UDS y /LDS.
en computacin, la unidad aritmtico lgica, tambin conocida como ALU (siglas en
ingls de arithmetic logic unit), es uncircuito digital que calcula operaciones aritmticas
(como suma, resta, multiplicacin, etc.) y operaciones lgicas (si, y, o, no), entre dos
nmeros.
Muchos tipos de circuitos electrnicos necesitan realizar algn tipo de operacin
aritmtica, as que incluso el circuito dentro de un reloj digital tendr una ALU minscula
que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar
el sonido de la alarma, etc.
Por mucho, los ms complejos circuitos electrnicos son los que estn construidos dentro
de los chips de microprocesadoresmodernos. Por lo tanto, estos procesadores tienen
dentro de ellos un ALU muy complejo y potente. De hecho, un microprocesador moderno
(y los mainframes) puede tener mltiples ncleos, cada ncleo con mltiples unidades de
ejecucin, cada una de ellas con mltiples ALU.



2 4 Procesador en detalle
o 4.1 Registros
o 4.2 Unidad de control
o 4.3 Unidad aritmtico-lgica
o 4.4 Buses
o 4.5 Conjunto de instrucciones
5 Memoria
6 Interrupciones
7 Perifricos
o 7.1 Entradas y salidas de propsito general
o 7.2 Temporizadores y contadores
o 7.3 Conversor analgico/digital
o 7.4 Puertos de comunicacin
7.4.1 Puerto serie
7.4.2 SPI
7.4.3 I2C
7.4.4 USB
7.4.5 Ethernet
7.4.6 Can
7.4.7 Otros puertos de comunicacin
o 7.5 Comparadores
o 7.6 Modulador de ancho de pulsos
o 7.7 Memoria de datos no voltil











Arquitectura Harvard

Arquitectura Harvard.
Originalmente, el trmino Arquitectura Harvard haca referencia a las arquitecturas de
computadoras que utilizaban dispositivos de almacenamiento fsicamente separados para
las instrucciones y para los datos (en oposicin a la Arquitectura de von Neumann). El
trmino proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en
cintas perforadas y los datos en interruptores.
Todas las computadoras constan principalmente de dos partes, la CPU que procesa los
datos, y la memoria que guarda los datos. Cuando hablamos de memoria manejamos dos
parmetros, los datos en s, y el lugar donde se encuentran almacenados (o direccin).
Los dos son importantes para la CPU, pues muchas instrucciones frecuentes se traducen
a algo as como "coge los datos de sta direccin y adelos a los datos de sta otra
direccin", sin saber en realidad qu es lo que contienen los datos.
En los ltimos aos la velocidad de las CPUs ha aumentado mucho en comparacin a la
de las memorias con las que trabaja, as que se debe poner mucha atencin en reducir el
nmero de veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada
instruccin ejecutada en la CPU requiere un acceso a la memoria, no se gana nada
incrementando la velocidad de la CPU (este problema es conocido como limitacin de
memoria).
Se puede fabricar memoria mucho ms rpida, pero a costa de un precio muy alto. La
solucin, por tanto, es proporcionar una pequea cantidad de memoria muy rpida
conocida con el nombre de memoria cach. Mientras los datos que necesita el procesador
estn en la cach, el rendimiento ser mucho mayor que si la cach tiene que obtener
primero los datos de la memoria principal. La optimizacin de la cach es un tema muy
importante de cara al diseo de computadoras.
La arquitectura Harvard ofrece una solucin particular a este problema. Las instrucciones y
los datos se almacenan en cachs separadas para mejorar el rendimiento. Por otro lado,
tiene el inconveniente de tener que dividir la cantidad de cach entre los dos, por lo que
funciona mejor slo cuando la frecuencia de lectura de instrucciones y de datos es
aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs, o procesador de
seal digital, usados habitualmente en productos para procesamiento de audio y video.






Arquitectura de von Neumann

Diagrama de la arquitectura Von Neumann.
La arquitectura de von Neumann es una familia de arquitecturas de computadoras que
utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los
datos (a diferencia de la arquitectura Harvard).
La mayora de las computadoras modernas estn basadas en esta arquitectura, aunque
pueden incluir otros dispositivos adicionales (por ejemplo, para gestionar
las interrupciones de dispositivos externos como ratn, teclado, etctera).


ARQUITECTURA VON NEUMANN

En esta arquitectura se observa que las computadoras utilizan el mismo
dispositivo de almacenamiento conectados mediante bus de datos y un bus de
direcciones. Actualmente las computadoras utilizan esta arquitectura, puede no
ser tan rpida, pero permite ms conceptos.




ARQUITECTURA HARVARD

En esta arquitectura se utilizan dispositivos separados para las instrucciones y
los datos, para que haya mayor rapidez se utiliza la memoria cache dividida,
para procesar los datos e instrucciones, es efectivo cuando la lectura de datos
e instrucciones es la misma.








Modos direccionamiento
Tipos de Direccionamiento[editar]
Implcito[editar]
En este modo de direccionamiento no es necesario poner ninguna direccin de forma
explcita, ya que en el propio cdigo de operacin se conoce la direccin del (de los)
operando(s) al (a los) que se desea acceder o con el (los) que se quiere operar.
Supongamos una arquitectura de pila, las operaciones aritmticas no requieren
direccionamiento explcito por lo que se ponen como:
- add
- sub
...
Por qu? Porque cuando se opera con dos datos en esta arquitectura se sabe que son
los dos elementos del tope de la pila:
Ejemplo de una pila
1 2 3 4 5 6 <- pila
top() es 1
ntop() es 2
donde top() representa el tope de la pila y ntop() el siguiente al tope de la pila y son estos
argumentos con los que se opera al llamar a una orden en concreto.
Inmediato[editar]
En la instruccin est incluido directamente el operando.
En este modo el operando es especificado en la instruccin misma. En otras palabras, una
instruccin de modo inmediato tiene un campo de operando en vez de un campo de
direccin. El campo del operando contiene el operando actual que se debe utilizar en
conjunto con la operacin especificada en la instruccin. Las instrucciones de modo
inmediato son tiles para inicializar los registros en un valor constante.
Cuando el campo de direccin especifica un registro del procesador, la instruccin se dice
que est en el modo de registro.

ejemplo:MOV A,#17H
Directo[editar]
El campo de operando en la instruccin contiene la direccin en memoria donde se
encuentra el operando.
En este modo la direccin efectiva es igual a la parte de direccin de la instruccin. El
operando reside en la memoria y su direccin es dada directamente por el campo de
direccin de la instruccin. En una instruccin de tipo ramificacin el campo de direccin
especifica la direccin de la rama actual.

Ejemplo: MOV A,17H
Indirecto[editar]
El campo de operando contiene una direccin de memoria, en la que se encuentra la
direccin efectiva del operando.

Ejemplo: MOV A,@17H
Absoluto[editar]
El campo de operando contiene una direccin en memoria, en la que se encuentra la
instruccin. Y no se cancela.
De registro[editar]
Sirve para especificar operandos que estn en registros. En este modo, los operandos
estn en registros que residen dentro de la CPU

Indirecto mediante registros[editar]
El campo de operando de la instruccin contiene un identificador de
registro en el que se encuentra la direccin efectiva del operando.
En este modo el campo de la direccin de la instruccin da la direccin en donde la
direccin efectiva se almacena en la memoria. El control localiza la instruccin de la
memoria y utiliza su parte de direccin para acceder a la memoria de nuevo para leer una
direccin efectiva. Unos pocos modos de direccionamiento requieren que el campo de
direccin de la instruccin sea sumado al control de un registro especificado en el
procesador. La direccin efectiva en este modo se obtiene del siguiente clculo:
Dir. efectiva = Dir. de la parte de la instruccin + Contenido del registro del procesador...

De desplazamiento[editar]
Combina el modo directo e indirecto mediante registros
De pila[editar]
Se utiliza cuando el operando est en memoria y en la cabecera de la pila.
Este direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO), las cuales
estn marcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta
a la ltima posicin ocupada. As, como puntero de direccionamiento usaremos el SP. El
desplazamiento ms el valor del SP nos dar la direccin del objeto al que queramos
hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se trabajara con la
cima de la pila. Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario,
es mucho ms complejo que otros tipos estudiados ms arriba.
Relativo a un registro base[editar]
Consiste, al igual que el indirecto a travs de registro, en calcular la direccin efectiva
(EA, effective address) como la suma del contenido del registro base y un cierto
desplazamiento (offset) que siempre ser positivo. Esta tcnica permite cdigos
reentrantes y acceder de forma fcil y rpida a posiciones cercanas de memoria. Este
modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las
funciones (para acceder a los parmetros almacenados en la pila).
Relativo a un registro ndice[editar]
Es similar al anterior, excepto que es el contenido del registro ndice el que indica el
desplazamiento que se produce a partir de una direccin de memoria que se pasa tambin
como argumento a la orden que utiliza este modo de direccionamiento. Aunque en esencia
son dos modos equivalentes. La EA se calcula como la suma del contenido del registro
ndice y una direccin de memoria:
Indexado respecto a una base[editar]
Se trata de una combinacin de los dos anteriores y consiste en calcular la direccin
efectiva como:
Relativo al contador de programa[editar]
Consiste en direccin una posicin de memoria usando como registro base al contador de
programa (PC), el funcionamiento es anlogo al direccionamiento respecto a registro base
con la salvedad de que, en este caso, el offset puede ser tambin negativo.
Indexado con autoincremento/autodecremento[editar]
Es un modo de direccionamiento anlogo al indexado, explicado
anteriormente.
La nica diferencia es que permite un incremento o decremento de la
direccin final o el registro ndice segn
los siguientes casos:
-> Indexado con autopreincremento: Incrementa el registro ndice primero (se incrementa
un valor, segn el tamao del objeto direccionado) y luego calcula la EA al igual que el
direccionamiento indexado.
-> Indexado con autoposincremento: Calcula la direccin efectiva y despus incrementa
esta.
-> Indexado con autopredecremento: Decrementa el registro ndice y despus calcula la
direccin efectiva.
-> Indexado con autoposdecremento: Calcula la direccin efectica y despus decrementa
esta.






Interrupcin no enmascarable

Este artculo o seccin necesita referencias que aparezcan en
una publicacin acreditada, como revistas especializadas,
monografas, prensa diaria o pginas de Internet fidedignas. Este aviso
fue puesto el 13 de junio de 2011.
Puedes aadirlas o avisar al autor principal del artculo en su pgina de
discusin pegando: {{subst:Aviso
referencias|Interrupcin no enmascarable}} ~~~~
Una interrupcin no enmascarable (o NMI) es un tipo especial de interrupcin usada en
la mayora de los microordenadores como el IBM PC y el Apple II.
Una interrupcin no enmascarable causa que la CPU deje lo que est haciendo, cambie el
puntero de instruccin para que apunte a una direccin particular y contine ejecutando el
cdigo de esa direccin. Se diferencia de los otros tipos de interrupcin en que los
programadores no pueden hacer que la CPU las ignore, aunque algunos ordenadores
pueden por medios externos bloquear esa seal, dando un efecto similar al resto de las
interrupciones.
Usos[editar]
Al no poderse desactivar son empleadas por dispositivos para los que el tiempo de
respuesta es crtico, como por ejemplo el coprocesador matemtico Intel 8087 en el IBM
PC, el indicador de batera baja, o un error de paridad que ocurra en la memoria.
En algunos ordenadores Clnicos las interrupciones no emascarables se usaban para
manejar las diferencias entre su hardware y el original de IBM. As, si se intentaba acceder
a uno de estos dispositivos se lanzaba una NMI y el BIOS ejecutaba el cdigo para
el hardware presente en esa mquina.
Tambin se podan lanzar NMI por el usuario, permitiendo interrumpir el programa actual
para permitir la depuracin. En este caso al lanzarse una NMI se suspenda la ejecucin
del programa actual y el control se transfera a un depurador para que el programador
pudiera inspeccionar el estado de la memoria, los registros, etc. Estas NMI eran lanzadas
de diferentes maneras, como pulsando un botn, por medio de una combinacin de teclas
o por medio de un programa.
En juegos, se produca una NMI y se interrumpa el juego, de esta manera se podan
conseguir vidas extras por ejemplo modificando el rea de memoria donde se guardaban
las vidas restantes.
Interrupcin enmascarable
Significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar)
la seal de interrupcin. Para ello se enva una seal a la patilla INTR , y el procesador la
atiende o la ignora en funcin del contenido de un bit (IF) en un registro (FLAGS) que puede
estar habilitado o deshabilitado.
En el primer caso, cuando se recibe la seal, el procesador concluye la instruccin que
estuviese en proceso y a continuacin responde con una combinacin de seales en algunas
de sus patillas componiendo una sucesin de dos seales INTA ("Interrupt Acknowledge").
La primera seal es simplemente un aviso; la segunda es una peticin para que el PIC coloque
en el bus de datos un Byte con el nmero de interrupcin, de forma que el procesador pueda
localizar el servicio solicitado.


Arquitectura RISC


En la arquitectura computacional, RISC (del ingls reduced instruction set computer) es un
tipo de microprocesador con las siguientes caractersticas fundamentales:


Instrucciones de tamao fijo y presentadas en un reducido nmero de formatos.
Slo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

El objetivo de disear mquinas con esta arquitectura es posibilitar la segmentacin y el
paralelismo en la ejecucin de instrucciones y reducir los accesos a memoria.



Las mquinas RISC protagonizan la tendencia actual de construccin de
microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC... son ejemplos de
algunos de ellos.
RISC es una filosofa de diseo de CPU para computadora que est a favor de conjuntos
de instrucciones pequeas y simples que toman menor tiempo para ejecutarse.

El tipo de procesador ms comnmente utilizado en equipos de escritorio, el x86, est
basado en CISC en lugar de RISC, aunque las versiones ms nuevas traducen
instrucciones basadas en CISC x86 a instrucciones ms simples basadas en RISC para
uso interno antes de su ejecucin.

La idea fue inspirada por el hecho de que muchas de las caractersticas que eran incluidas
en los diseos tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas
por los programas que eran ejecutados en ellas. Adems, la velocidad del procesador en
relacin con la memoria de la computadora que acceda era cada vez ms alta. Esto con
llev la aparicin de numerosas tcnicas para reducir el procesamiento dentro del CPU,
as como de reducir el nmero total de accesos a memoria.

Caracteristicas:


En pocas palabras esto significa que para cualquier nivel de desempeo dado, un chip
RISC tpicamente tendr menos transistores dedicados a la lgica principal. Esto permite a
los diseadores una flexibilidad considerable; as pueden, por ejemplo:


Incrementar el tamao del conjunto de registros.
Mayor velocidad en la ejecucin de instrucciones.
Implementar medidas para aumentar el paralelismo interno.
Aadir cachs enormes.
Aadir otras funcionalidades, como E/S y relojes para minicontroladores.
Construir los chips en lneas de produccin antiguas que de otra manera no seran
utilizables.
No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo
consumo de energa o de tamao limitado.

Las caractersticas que generalmente son encontradas en los diseos RISC son:


Codificacin uniforme de instrucciones, lo que permite una de codificacin ms rpida.
Un conjunto de registros homogneo, permitiendo que cualquier registro sea utilizado en
cualquier contexto y as simplificar el diseo del compilador.
Modos de direccionamiento simple con modos ms complejos reemplazados por secuencias
de instrucciones aritmticas simples.
Los tipos de datos soportados en el hardware no se encuentran en una mquina RISC.
Los diseos RISC tambin prefieren utilizar como caracterstica un modelo de memoria
Harvard, donde los conjuntos de instrucciones y los conjuntos de datos estn
conceptualmente separados.


Arquitectura CISC


En la arquitectura computacional, CISC (complex instruction set computer) es un modelo
de arquitectura de computadora.
Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por
ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria
o en los registros internos, en contraposicin a la arquitectura RISC.



Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la
actualidad, la mayora de los sistemas CISC de alto rendimiento implementan un sistema
que convierte dichas instrucciones complejas en varias instrucciones simples del tipo
RISC, llamadas generalmente microinstrucciones.

Los CISC pertenecen a la primera corriente de construccin de procesadores, antes del
desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia
Intel x86 usada en la mayora de las computadoras personales actuales.


Para realizar una sola instruccin un chip CISC requiere de cuatro a diez ciclos de reloj.



Entre las ventajas de CISC destacan las siguientes:


Reduce la dificultad de crear compiladores.
Permite reducir el costo total del sistema.
Reduce los costos de creacin de sftware.
Mejora la compactacin de cdigo.
Facilita la depuracin de errores.

Ejemplo de microprocesadores basados en la tecnologa CISC:


Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.


Ejemplo de microprocesadores basados en la tecnologa CISC:


MIPS, Millions Instruction Per Second.
PA-RISC, Hewlett Packard.
SPARC, Scalable Processor Architecture, Sun Microsystems.
POWER PC, Apple, Motorola e IBM.