miércoles, 29 de octubre de 2008

Clase 27/10 - Enmascaramiento

El puerto permite el envio y recepcion de datos de afuera de la computadora hacia adentro y visceversa. Estos puertos utilizan conectores especificos, que transmiten la información bit a bit.

Al conectarse a la computadora el conector, pasa a ser una nueva posición de memoria que la lleva a un registro.

Para poder saber el valor de un solo bit (1 o 0) el proceso que se realiza es el enmascaramiento.

Esto implica, mediante compuertas AND o OR, crear, de manera lógica, una serie de bits que me permitan a mi descifrar el bit que preciso conocer. Repasando un poco las compuertas nombradas, sabemos que para que la salida de una compuerta AND sea 1, la unica manera que sea posible es que todas las entradas sean 1. Caso contrario, la salida va a ser 0.



Y por otro lado, en la compuerta OR, a menos que todas las entradas sean 0, la salida siempre va a ser 1.



Sabiendo esto, podemos ver un ejemplo del enmascaramiento:

Si nosotros tuviesemos un octeto de 8 bits, del cual queremos saber el valor del cuarto bit, podriamos hacer lo siguiente:


De esta forma conseguiriamos la forma de discriminar el cuarto bit, ya que en todos los bits de la mascara que el numero es 0, el resultado de los bits va a ser 0, en cambio poniendo un 1 en el cuarto bit que es el que me interesa, es el unico bit que podría leer ya que se mantiene el valor anterior, y los resultados podrian ser 10, 00.

[000?0?00 si yo quiero averiguar esos valores, la mascara que usaria seria 00010100, teniendo cuatro resultados posibles, en hexadecimal, 00, 10, 04, 14.]


Ahora, si yo quiero poner un 1 en los bits 1, 3 y 6, puedo hacer lo siguiente:


Usando en este caso la compuerta OR, la unica forma que quede 0 es que las entradas sean 0. al poner en la mascara un 1 en los bits en los cuales yo quiero que tengan un 1, si o si el resultado va a ser 1, porque la compuerta OR suma las entradas, entonces, 1 + 1=1 y 1+0= 1 . si a esto yo quisiera por ejemplo en los bits 7 y 5 poner un 0, podria usar la compuerta AND, y esto quedaria:
Como la compuerta es AND, poniendo un 0 el resultado si o si va a ser 0, y dado que hay otros bits que no queria asignarles ningun valor, puse un 1, para que de esa forma se mantenga el valor anterior.
Ahora una consigna incluyendo contenidos de Instrucciones del procesador y enmascaramiento:
"Se tiene en F3 un dato el cual se quiere saber si el bit 4 esta en 0. Si es así poner los bits 7 y 5 en 1 y los bits 6 y 3 en 0. En caso contrario, poner el bit 2 en 1."

10 11F3
12 2210
14 8312
16 2000
18 B322
1A 2404
1C 7541
1E 35F3
20 B02C
22 26A0
24 7716
26 28B7
28 8978
2A 39F3
2C C000

Otro ejercicio: "Se tienen dos números guardados en la dirección A0 y A1. Si los bits 1 y 5 son iguales, poner un 1 en el bit 7. Caso contrario, poner un 0 en el bit 7."

10 11A0
12 12A1
14 2322
16 8013
18 8423
1A B424
1C 257F
1E 8615
20 36A2
22 B02A
24 2580
26 7615
28 36A2
2A C000

sábado, 25 de octubre de 2008

Clase del 6/10

Código B

La instrucción “B” permite generar un salto que puede ser condicional o incondicional.
Se escribe BRXY siendo el numero de registro a comparar con el registro “0” y XY como dirección

Funcionamiento de salto condicional: La Instrucción B compara lo que hay en el numero de registro puesto en R con lo que hay en el registro 0 si es igual salta a la dirección puesta en XY y si es diferente pasa a la dirección siguiente como si el proceso no hubiese sido afectado.

Funcionamiento de salto incondicional: Se le pone a R el numero de registro 0, entonces al compararlo con el registro 0 siempre será igual y salta incondicionalmente a la dirección puesta en XY.



Ahora, un ejemplo de una programación en la cual se usa el “código b”: “Se tienen 2 números almacenados, uno en B0 y otro en C0. Se pide sumarlos y guardarlo en la dirección D0, si el resultado es igual al numero 33 (hexa) se pide guardar en la dirección F0 el numero FF, en caso contrario el número 0”.

Nicolás Levinton.

miércoles, 8 de octubre de 2008

Clase del 29/9

Sistema Hexadecimal

El sistema hexadecimal tiene como base al numero 16

Hexadecimal. Decimal
0 0
1 1
2 2
3 3
. .
. .
. .
. .
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15


Para convertir un número de Hexa. A Decimal si tiene que multiplicar los números o símbolos por 16 elevado según la posición que se encuentre: Ejemplo:

A13F =
Ax16³ + 1x16² + 3x16¹ + Fx16º = Decimal

Para convertir de binario a hexa: Se toman se toman siempre de a 4 números desde la derecha. Ejemplo:
1 0110 1110 1110 1110 1111 0111 0111
1 6 E E E F 7 7

Otro ejemplo: de Hexa a binario:
7 2 E F A
0111 0010 1110 1111 1010

De binario a hexadecimal:

10 1001 1011 0111 0001
2 9 B 7 1

Instrucción elemental: Necesita de un “Codigo de opereacion” y de sus respectivos OPERANDOS (¿Qué?, ¿Cómo? ¿Cuando?, ¿Dónde?) para su funcionamiento.




Actividad: Esta ultima actividad la resolvimos con la fotocopia dada en clase.
Se tiene dos números almacenados, uno en la dirección A3 y otro en la dirección CD, se pide sumarlos y guardarlos en la dirección FF.

10 11A3
12 12CD
14 5312
16 33FF
18 C000

Demian Kania

miércoles, 27 de agosto de 2008

Clase 14 del 25 de agosto






Especificación de memoria:

Ejemplo: 64 K x 8

El primer bloque de la especificación de memoria (64 K) nos permite saber cuantas direcciones y posiciones tiene la memoria para guardar cierta información. El mismo bloque también nos especifica cuantos bits tiene el bus de direcciones, es decir por cuantos bits esta formada una dirección. Si sabemos que 64 K= 2 elevado a la 6 y K= 2 elevado a la 10 el producto que obtenemos es 2 elevado a la 16, por lo tanto el exponente obtenido (16) es la cantidad de bits que va a formar a la dirección y la cantidad de bits que va atener el bus de direcciones.
El segundo bloque de la especificación de memoria (8) nos especifica cuantos bits puedo almacenar en cada una de las direcciones. Esta información se transmite a través del bus de dato.

Dicha esta información ahora sabemos que el chip de memoria, físicamente, va a estar formado por 16 conectores que están enchufados al bus de direcciones y por otros 8 conectores que están enchufados al bus de dato. Estos buses están conectados a al CPU. Además la memoria cuanta con una entrada llamada R/W (read or write) que sirve para especificarle a la memoria si va a ser leída o escrita. Un dato importante a saber es que una memoria tan grande siempre esta formada pro memorias mas pequeñas para formar una sola de gran capacidad de almacenamiento ya que no es posible formar una memoria grande con una sola pieza de memoria.

En el caso de una memoria ROM todo el chip en realidad esta formado por un multiplexor que va conectado a al CPU y que en sus entradas tiene distintos datos, Cada uno de ellos tiene su dirección especifica en el multiplexor, y están almacenados en flip flops D. El multiplexor también cuenta con una entrada llamada OE (output enable). Si a esa entrada le llega un uno la memoria va trabajar normalmente pero si la entrada esta en cero todas las entradas del multiplexor se deshabilitan. Este ultimo estado (OE en cero) se denomina TERCER ESTADO.
Supongamos que tenemos una memoria ROM 4x2. La conexión entre esta y El CPU entonces será: 8 flip-flops D (cada una con un dato) con sus salidas Q conectadas a las entradas del multiplexor, la entrada OE conectada a la salida R/W del CPU, los dos conectores de salida del multiplexor (que transportan datos a través del bus de dato) conectados a las dos entradas de datos del CPU, y la salida de direcciones conectada a la entrada de dirección del multiplexor. (IMAGEN 1).
Los pasos para leer este tipo de memoria son los siguientes:
1- EL CPU especifica la dirección en la que esta ubicado el dato que va a ser leído.
2- Luego el mismo CPU pone R/W a la entrada OE.
3- Especificada la dirección y el READ el dato ubicado en esa dirección entra en el CPU.



En el caso de una memoria RAM el chip de memoria esta formado por los mismos componentes que una memoria ROM pero tiene un DMULTIPLEXOR. Este tiene la función inversa al multiplexor. Posee una sola entrada de dato, varias salidas y por su puesto entrada de dirección y según cual sea esta ultima el dato que esta a la entrada va a salir por alguna de las salidas, es decir que en este caso la dirección especifica la salida por la cual el dato se va a ir. La conexión es la misma que el multiplexor al CPU salvo que las salidas de datos del DMULTIPLEXOR están conectadas a las entradas de los flip flop D y en la entrada del output enable hay un inversor, ya que cuando la memoria va a ser leída nada mas y no escrita en el output enable del multiplexor esta en uno y entonces si hay un inversor en la entrada OE del Dmultiplexor va a estar en 0 por lo tanto no funciona en ese momento. En cambio en el momento que la memoria va a ser escrita el que no va funcionar va a ser el multiplexor por l tanto la cpu va a especificar el dato que quiere escribir primero y luego la dirección. Entonces ese dato va a salir por una de las salidas del multiplexor y va a a ir a una de las entradas de los flip flops D reescribiendo lo que había antes. (Imagen 2)
Imagen 1:

Imagen 2:



















lunes, 21 de julio de 2008

Clase 13 del 7 de julio

Multiplexor

Un multiplexor es un dispositivo que tiene varias entradas de datos, una entrada de control y una salida. El dispositivo permite que, a partir de la entrada lógica del selector, se pueda elegir la información de que entrada será la que pase finalmente por la salida.
Ejemplo:
En un multiplexor de 4 entradas, la combinación de los selectores de cada una será esta:

S0 S1
A 0 0
B 1 0
C 0 1
D 1 1




Ya qué:



















Siempre una de las entradas da 1 y las demás 0 por lo que solo esa pasa por la compuerta And y llega a la salida.

Para 8 entradas:




















Por lo que la combinación de los selectores debe ser:

S0 S1 S2
A 0 0 0
B 1 0 0
C 0 1 0
D 1 1 0
E 0 0 1
F 1 0 1
G 0 1 1
H 1 1 1

Ejercicio:

a) Si tenemos multiplexores de dos entradas y un selector, cuantos de estos se necesitan y como se interconectan para obtener el equivalente a un multiplexor de 4 entradas y 2 selectores:

















b) Si tenemos multiplexores de dos entradas y un selector, cuantos de estos se necesitan y como se interconectan para obtener el equivalente a un multiplexor de 8 entradas y 3 selectores:


















Melisa Kovalskis

lunes, 30 de junio de 2008

Clase 11 del 23/06 y clase 12 del 30/06

Empezamos viendo como esta compuesta la CPU ( Unidad de Control de Procesos). Esta esta compuesta por 3 partes:
Registro (desplazamiento), tiene poca memoria, aproximadamente 32 bits, y puede haber hasta un maximo de 20 registros en una CPU o microprocesador. Este dispositivo sirve para registrar en que lugar esta cada dato, ya sea en una posicion de la RAM o la ROM.
Otra parte de la CPU, es la Unidad de Control, que se encarga de analizar, decodificar, interpreta y mandar a ejecutar a lo que se denomina instrucciones elementales, comandos basicos para ejecutar las acciones.
La 3era parte de la CPU es la Unidad Arigmetica Lógica (ALU), que se encarga de hacer las operaciones arigmeticas (+ ; - ; x ; / ) y de comparar entre los datos ( < ; = ; > ).
Luego de entender el funcionamiento y proposito de la CPU, pasamos a ver otros componentes del hardware.
Vimos las distintos tipos de memorias, empezando por la Memoria Principal, que es un componente externo a la CPU, una memoria electronica osea que adentro son microchips, no es que hay un motor o algo mecanico que la haga funcionar.Esta es una memoria mas grande que los registros.
En este tipo de memoria se pueden clasificar la RAM ( Memoria de Acceso Aleatorio ) y la ROM ( Memoria de Solo Lectura ).
La ROM es una memoria no volatil, osea que al cortarle la energia, la informacion se mantiene. Esta memoria sirve para guardar la ROMBIOS ( ROM Basic Input Ouput System), esto quiere decir que tiene un programa POST ( Power On Self Test), que es el primer programa que usa la maquina ni bien empieza, testea si el teclado, mouse, etc, estan conectados, si las memorias funcionan correctamente,etc.
La RAM es una memoria para guardar y recibir informacion mientras se usa el programa. Sin energia se borra todo.
Se le dio ese nombre porque accede a cualquier posicion en el mismo tiempo, otro nombre que se le da es RWM ( Read Write Memory).
Hay otros tipos de memoria, que son las memorias de almacenamiento, o memorias secundarias en las que se encuentran el disco rigido, un cd, un diskette.
Las primeras Roms eran programadas desde fabrica, y habia que encargarlas de a millones, si querias hacer 10 computadoras no se vendian, tenias que contratar a una empresa y crear millones de memorias programadas.
Lo que se hizo para solucionar ese problema fue crear la PROM ( Programable Read Only Memory), es una memoria ROM, pero que se podia programar una sola vez.
Funcionaba con fusibles, entonces donde se queria que haya un 1, se quemaba el fusible y se dejaba pasar corriente, y donde se queria dejar un 0, no se pasaba corriente. Por esto mismo no se podia re programar, por que en ese espacio habia 1 fusible y ya estaba quemado no se podia revertir.
Para solucionar este inconveniente de no poder reprogramarlo mas de una ves se creo la EPROM (Erasable Programable Read Only Memory ). Esta memoria lo que tenia en ves de fusibles, eran capacitores. Para programarlos se les pasaba corriente sin quemarlos y los electrones al quedar atrapados entre el cable y el espacio de aislamiento dentro del capacitor, hacia que la memoria quede programada. Para poder borrar esta memoria se le aplica Luz Ultra Violeta, osea se le aplicaba energia para "liberar" a los electrones atrapados dentro del capacitor.

Para poder aplicarle la luz, la memoria venia con un plastico que permitia ver las patas de los capacitores. El problema de esta memoria es que es aunque sea mas practico poder borrarlo y grabar otra cosa sin necesidad de cambiarlo, hay que desarmar la computadora, sacar la memoria, dejarlo a la L.U.V. durante 30 min aprox,y despues programarlo.
(integrado EROM, los puntos azules son las patitas de los capacitores )
Para solucionar este problema se creo la EEPROM ( Electric Erasable Programable Read Only Memory). Es una memoria que se le hace circular corriente y direccionando la electricidad se determina que se guarda o quse borra.
No se usa Rom por Ram por que la Rom en comparacion es mucho mas lenta.
Diagrama de conexionado dentro de la CPU:


El cable dibujado en color negro es un bus de direccion, que dice del registro, a que lugar dentro de toda la RAM tiene que buscar los datos.
El cable dibujado en color azul, es un bus de control, que sale la orden de la UC hacia la RAM para que busque algo.
El cable dibujado en rojo, es un cable que sirve para recibir y mandar datos, es el bus de datos por que en la RAM se puede leer o escribir por eso va para los 2 lados.

lunes, 16 de junio de 2008

Clase 10 del 2 de junio


Consigna: hacer un reloj que cuente segundos, minutos y horas. (FF P ? revisar)

Se empieza por la parte de los segundos con la primera cifra, que debe llegar hasta 9, entonces se pone un grupo de 4 FF-P que detectaran el numero 10, cuando llegue a 10 se pondrán otras vez en 0, y al mismo tiempo le mandar también un 1 a otro grupo de 3 FF-P que son la otra cifra de segundo que deben contar hasta 5, el 1 mandado por el grupo de FF-P anterior entrara por el primer CLOCK, y hará que este empiece a contar. Este grupo de FF-P contara un numero cada vez que el otro llegue a 9, y detectara el numero 6 para ponerse en 0 otra vez, ya que el ultimo numero que deben formar esas 2 cifras es el “59”.
Luego con los minutos es lo mismo, pero el primer clock, será el 1 que le mande el segundo grupo de FF-P de los segundos, entonces sucederá lo mismo que antes, pero con un tiempo más lento. La parte de los minutos esta formada exactamente igual, con un grupo 4 FF-P que cuentan hasta 9, y otro de 3 FF-P que cuentan hasta 5, conectados entre si desde la salida de la compuerta del primer contador hasta el primer clock del segundo contador.
Y por ultimo el sistema contador de las horas. Comienza con un grupo de 4 FF-P que tienen como clock el último contador de los minutos. Este contador debe contar hasta 9 dos veces, y luego de eso hasta 3, entonces lo que se hace es detectar el numero 4 y el 10, lo que va a pasar es que al llegar al 4 se mandara un 1 a una compuerta que también recibe la señal de l contador de la segunda cifra, pero como la otra cifra debe contar hasta 2 antes de mandar un 1, las 2 primeras veces que llegue a 4 no habrá nada, entonces seguirá contando hasta 10, que será cuando este se ponga en cero y el segundo grupo de FF-T(segunda cifra) empezara a contar. Hará otra vez lo mismo y la segunda cifra llegara a 2 al que es el numero a detectar, este contador mandara un 1 a la compuerta y cuando el primer contador llegue a 4 mandara el otro 1 y ahí llegara a la hora “23:59:59” y todo volverá a cero ya que en la compuerta ambas entradas estarán en 1 y mandaran el 1 a los 2 contadores que pertenecen a las horas.
Las compuertas “OR” en las entradas de los clear de los FF-P de la primera cifra de las horas sirven para que la entrada de la compuerta 3 no afecte, ya que esta compuerta “OR” hace que entre lo que entre de va a poner en uno igual, por ejemplo se la hora es 19 hs, volverá a cero igual.