lunes, 8 de diciembre de 2008

Comentario acerca de la materia

Este semestre , en lo particular, ha sido muy complicado por la cantdad de información recibida de una solo golpe, pero en lo personal de esta materia (Arquitectura de computadoras) fue de la que más pude aprender y comprender a lo largo del semestre ya que la clase, la mayor parte del tiempo, fue muy didactica esto debido a que se nos pusieron los suficientes ejemplos como para entender y digerir toda la información que se nos estaba otorgando en ese momento. Lo único desfavorable que veria, es la hora, pero vaya nadie dijo que esto sería fácil.

Regresando a la materia, pude comprender muchas cosas sobre como esta conformada logicamente un computadora y de todo el trabajo que lleva estar haciendo esto para que funcione como uno quiere, por que a uno le parece muy sencillo llegar a sentarse a usarla sin saber todo el trabajo que hay detras de ella y comprendiendo esto uno se pregunta cosas y esas cosas lo llevan a otras, todo con el fin de seguir aprendiendo, si bien no todo, lo suficinte de una computadora.

Más adelante (seguramente) esto lo podre aplicar en algún momento de mi carrera y de mi vida y tengo el presentimiento de que me será de mucha ayuda y que a su vez me servira para entender muchas cosas más que sin el conocimiento previo no entenderia o probablemente si, pero me costaria mucho, pero mucho trabajo.

En fin, esta es mi humilde opinión acerca de esta materia, espero que a los siguientes en cursarlas les guste o de menos que la entiendan y que les ayude a resolver prolemas futuros. Hasta la próxima.

domingo, 7 de diciembre de 2008

Registros de Memoria

Un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.

Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits". Los registros generalmente se implementan en un banco de registros, pero antiguamente se usaban Flip flops individuales, memoria SRAM o formas aún más primitivas.

El término es usado generalmente para referirse al grupo de registros que pueden ser directamente indexados como operando de una instrucción, como está definido en el conjunto de instrucciones. Sin embargo, los microprocesadores tienen además muchos otros registros que son usados con un propósito específico, como el contador de programa.

Tipos de registros

* Los registros de datos son usados para guardar números enteros. En algunas computadoras antiguas, existía un único registro donde se guardaba toda la información, llamado acumulador.
* Los registros de memoria son usados para guardar exclusivamente direcciones de memoria. Eran muy usados en la arquitectura Harvard, ya que muchas veces las direcciones tenían un tamaño de palabra distinto que los datos.
* Los registros de propósito general (en inglés GPRs o General Purpose Registers) pueden guardar tanto datos como direcciones. Son fundamentales en la arquitectura de von Neumann. La mayor parte de las computadoras modernas usa GPR.
* Los registros de coma flotante son usados para guardar datos en formato de coma flotante.
* Los registros constantes tienen valores creados por hardware de sólo lectura. Por ejemplo, en MIPS el registro $zero siempre vale 0.
* Los registros de propósito específico guardan información específica del estado del sistema, como el puntero de pila o el registro de estado.

Contador

En electrónica digital, un contador es un circuito secuencial construido a partir de Flip flops y compuertas lógicas capaz de realizar el cómputo de los impulsos que recibe en la entrada destinada a tal efecto, almacenar datos o actuar como divisor de frecuencia. Habitualmente, el cómputo se realiza en un código binario, que con frecuencia será el binario natural o el BCD natural (contador de décadas).

Clasificación de los contadores


* Según la forma en que conmutan los Flip flop, podemos hablar de contadores síncronos (todos los flip flop conmutan a la vez, con una señal de reloj común) o asíncronos (el reloj no es común y los flip flops conmutan uno tras otro).
* Según el sentido de la cuenta, se distinguen en ascendentes, descendentes y UP-DOWN (ascendentes o descendentes según la señal de control).
* Según la cantidad de números que pueden contar, se puede hablar de contadores binarios de n bits (cuentan todos los números posibles de n bits, desde 0 hasta 2n − 1), contadores BCD (cuentan del 0 al 9) y contadores Módulo N (cuentan desde el 0 hasta el N-1)

Tipos de contadores

Existen diversos tipos de contadores:

* Contadores de rizado.
* Contadores paralelos.
* Contadores de rizado mod-6.
* Contador Johnson. Activa una sola salida entre varias. En respuesta al pulso de conteo, la salida siguiente pasa a ser la activa.
* Contador en anillo. Está formado por un conjunto de flip flop conectados como un registro de desplazamiento, con un lazo de realimentación que se obtiene uniendo las salidas del último flip flop con la entrada del primero. El inconveniente que presentan es que sólo pueden contar 'n' impulsos (siendo log2m y m los bits del resultado).

“Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Los incrementos son generalmente de uno en uno.”

UN ejemplo de un contador sincrono de 4 bits:

Flip Flops

Un flip-flop es un multivibrador capaz de permanecer en un estado determinado o en el contrario durante un tiempo indefinido. Esta característica es ampliamente utilizada en electrónica digital para memorizar información. El paso de un estado a otro se realiza variando sus entradas. Dependiendo del tipo de dichas entradas los flip flop se dividen en:

* Asíncronos: sólo tienen entradas de control. El más empleado es el flip flop RS.
* Síncronos: además de las entradas de control posee una entrada de sincronismo o de reloj. Si las entradas de control dependen de la de sincronismo se denominan síncronas y en caso contrario asíncronas. Por lo general, las entradas de control asíncronas prevalecen sobre las síncronas.

La entrada de sincronismo puede ser activada por nivel (alto o bajo) o por flanco (de subida o de bajada). Dentro de los flip flop síncronos activados por nivel están los tipos RS y D, y dentro de los activos por flancos los tipos JK, T y D.

Flip Flop SR


Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuyas entradas principales, R y S, a las que debe el nombre, permiten al ser activadas:

* R: el borrado (reset en inglés), puesta a 0 ó nivel bajo de la salida.
* S: el grabado (set en inglés), puesta a 1 ó nivel alto de la salida.

Si no se activa ninguna de las entradas, el flip flop permanece en el estado que poseía tras la última operación de borrado o grabado. En ningún caso deberían activarse ambas entradas a la vez, ya que esto provoca que las salidas directa (Q) y negada (Q') queden con el mismo valor: a bajo, si la báscula está construida con puertas NO-O (NOR), o a alto, si con puertas NO-Y (NAND). El problema de que ambas salidas queden al mismo estado está en que al desactivar ambas entradas no se podrá determinar el estado en el que quedaría la salida. Por eso, en las tablas de verdad, la activación de ambas entradas se contempla como caso no deseado (N. D.).

Sólo posee las entradas R y S. Se compone internamente de dos puertas lógicas NO-Y o NO-O, según se muestra en la siguiente figura:



Su tabla de verdad es la siguiente (Q representa el estado actual de la salida y q el estado anterior a la última activación):



Flip Flop D

Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuya salida adquiere el valor de la entrada D cuando se activa la entrada de sincronismo, C. En función del modo de activación de dicha entrada de sincronismo, existen dos tipos de biestables D:

* Activo por nivel (alto o bajo), también denominado registro o cerrojo (latch en inglés).
* Activo por flanco (de subida o de bajada).

Y su tabla de verdad:



Esta báscula puede verse como una primitiva línea de retardo o una retención de orden cero (zero order hold en inglés), ya que los datos que se introducen, se obtienen en la salida un ciclo de reloj después. Esta característica es aprovechada para sintetizar funciones de procesamiento digital de señales (DSP en inglés) mediante la transformada en z.



Filp Flop T


Dispositivo de almacenamiento temporal de dos estados (alto y bajo). El Flip flop T cambia de estado ("toggle" en inglés) cada vez que la entrada de sincronismo o de reloj se dispara. Si la entrada T está a nivel bajo, el flip flop retiene el nivel previo. La tabla de verdad es:





Flip Flop JK

Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuyas entradas principales, J y K, a las que debe el nombre, permiten al ser activadas:

* J: El grabado (set en inglés), puesta a 1 ó nivel alto de la salida.
* K: El borrado (reset en inglés), puesta a 0 ó nivel bajo de la salida.

Si no se activa ninguna de las entradas, el flip flop permanece en el estado que poseía tras la última operación de borrado o grabado. A diferencia del biestable RS, en el caso de activarse ambas entradas a la vez, la salida adquirirá el estado contrario al que tenía.

Su tabla de verdad es:


Sistema secuencial

A diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de las salidas, en un momento dado, no dependen exclusivamente de los valores de las entradas en dicho momento, sino también de los valores anteriores. El sistema secuencial más simple es el biestable.

La mayoría de los sistemas secuenciales están gobernados por señales de reloj. A éstos se los denomina "síncronos" o "sincrónicos", a diferencia de los "asíncronos" o "asincrónicos" que son aquellos que no son controlados por señales de reloj.

A continuación se indican los principales sistemas secuenciales que pueden encontrarse en forma de circuito integrado o como estructuras en sistemas programados:

* Contador
* Registros


En todo sistema secuencial nos encontraremos con:

a) Un conjunto finito, n, de variables de entrada (X1, X2,..., Xn).
b) Un conjunto finito, m, de estados internos, de aquí que los estados secuenciales también sean denominados autómatas finitos. Estos estados proporcionarán m variables internas (Y1,Y2,..., Ym).
c) Un conjunto finito, p, de funciones de salida (Z1, Z2,..., Zp).

Dependiendo de como se obtengan las funciones de salida, Z, los sistemas secuenciales pueden tener dos estructuras como las que se observan el la siguiente figura, denominadas autómata de Moore, a), y autómata de Mealy, b).

Multiplexores y decodificadores

Multiplexor

En el campo de las telecomunicaciones el multiplexor se utiliza como dispositivo que puede recibir varias entradas y transmitirlas por un medio de transmisión compartido. Para ello lo que hace es dividir el medio de transmisión en múltiples canales, para que varios nodos puedan comunicarse al mismo tiempo.

Una señal que está multiplexada debe desmultiplexarse en el otro extremo.

Según la forma en que se realice esta división del medio de transmisión, existen varias clases de multiplexación:

* Multiplexación por división de frecuencia
* Multiplexación por división de tiempo
* Multiplexación por división de código
* Multiplexación por división de longitud de onda

Electrónica digital


En electrónica digital, un multiplexor, es un circuito usado para el control de un flujo de información que equivale a un conmutador. En su forma más básica se compone de dos entradas de datos (A y B), una salida de datos y una entrada de control. Cuando la entrada de control se pone a 0 lógico, la señal de datos A es conectada a la salida; cuando la entrada de control se pone a 1 lógico, la señal de datos B es la que se conecta a la salida.

El multiplexor es una aplicación particular de los decodificadores, tal que existe una entrada de habilitación (EN) por cada puerta AND y al final se hace un OR entre todas las salidas de las puertas AND.

La función de un multiplexor da lugar a diversas aplicaciones:
1. Selector de entradas.
2. Serializador: Convierte datos desde el formato paralelo al formato serie.
3. Transmisión multiplexada: Utilizando las mismas líneas de conexión, se transmiten diferentes datos de distinta procedencia.
4. Realización de funciones lógicas: Utilizando inversores y conectando a 0 ó 1 las entradas según interese, se consigue diseñar funciones complejas, de un modo más compacto que con las tradicionales puertas lógicas.



Decodificador

Un decodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada (natural, BCD, etc.) de N bits de entrada y M líneas de salida (N puede ser cualquier entero y M es un entero menor o igual a 2N), tales que cada línea de salida será activada para una sola de las combinaciones posibles de entrada. Estos circuitos, normalmente, se suelen encontrar como decodificador / demultiplexor. Esto es debido a que un demultiplexor puede comportarse como un decodificador.

Si por ejemplo tenemos un decodificador de 2 entradas con 22=4 salidas, en el que las entradas, su funcionamiento sería el que se indica en la siguiente tabla, donde se ha considerado que las salidas se activen con un "uno" lógico:

Tabla de verdad para el decodificador 2 a 4




Sistema combinacionales

Se denomina sistema combinacional o lógica combinacional a todo sistema digital en el que sus salidas son función exclusiva del valor de sus entradas en un momento dado, sin que intervengan en ningún caso estados anteriores de las entradas o de las salidas. Por tanto, carecen de memoria y de realimentación.

En electrónica digital la lógica combinacional está formada por ecuaciones simples a partir de las operaciones básicas del álgebra de Boole. Entre los circuitos combinacionales clásicos tenemos:

-Lógicos

* Generador/Detector de paridad
* Multiplexor y Demultiplexor
* Codificador y Decodificador
* Conversor de código
* Comparador: compara 2 números en código binario.

- Aritméticos

* Sumador
* Restador

- Aritméticos y lógicos

* Unidad aritmético lógica

Éstos circuitos están compuestos únicamente por puertas lógicas interconectadas entre sí.

Funciones combinacionales

Todos los circuitos combinacionales pueden representarse empleando álgebra de Boole y lo que se conoce como Lógica binaria, generando de forma matemática el funcionamiento del sistema combinacional, así cada señal de entrada es una variable de la ecuación.

De esta forma, un sistema combinacional compuesto exclusivamente por una puerta AND tendría dos entradas A y B. Su función combinacional seria F = A . B, para una puerta OR sería F = A + B. Estas operaciones se pueden combinar formando funciones más complejas. Por ejemplo, el siguiente esquema se define por la función debajo de este.