lunes, 8 de diciembre de 2008

Da last One...


Comentarios finales del blog...


Al final del curso, pude entender muchas cosas acerca de la Aquitectura de las Computadoras; uno de los conceptos que mejor entendí y más capacidades tengo para resolver problemas fue todo lo relacionado a sistemas numéricos (codificación, operaciones entre bases, etc), así como el funcionamiento y la utilización de la tablas de verdad y mapas de Karnaugh, en el curso pude comprender la función, en realidad como funionan las memorias, y esto quedó más reforzado con los trabajos acerca de la Jerarquía de memorias y lo realizado en el blog. Algo que no entendí del todo fue la uilización de las "Protoboards", que costó mucho trabajo y esfuerzo etenderla y colocar cada cable donde va.


Otro tema que quedó my claro parami fue el dealgebra de Boole, asó como los circuitos combinatorios.


Este curso fue una gran experiencia, sobre todo para entender el funcionamiento interno de las computadoras y sus componentes.


En al imagen que sigue se puede resumir gran parte de los componentes de los que entendí su funcionamiento mediante el curso...


BIOS


Qué es????
BIOS, acrónimo de Basic Input-Output System, es un tipo de Software muy básico que localiza el Sistema Operativo en la memoria RAM, brinda una comunicación de muy bajo nivel y configuración del Hardware residente en nuestro ordenador.

La BIOS es un firmware presente en las computadoras, contiene las instrucciones más elementales para que puedan funcionar y desempeñarse adecuadamente, pueden incluir rutinas básicas de control de los dispositivos.

Tipos de BIOS

Los del tipo EEPROM
Los EEPROM Flash ROM

Al encender la computadora, la BIOS se carga automáticamente en la memoria principal y se ejecuta desde ahí por el procesador (aunque en algunos casos el procesador ejecuta la BIOS leyéndola directamente desde la ROM que la contiene), cuando realiza una rutina de verificación e inicialización de los componentes presentes en la computadora, a través de un proceso denominado POST (Power On Self Test). Al finalizar esta fase busca el código de inicio del sistema operativo (bootstrap) en algunos de los dispositivos de memoria secundaria presentes, lo carga en memoria y transfiere el control de la computadora a éste.

Unidades Funcionales - Algunos datos::::...

Una unidad funcional o unidad de ejecución es una parte de la CPU que realiza las operaciones y cálculos llamados por los programas. Tiene a menudo su propia unidad de control de secuencia (no confundir con la unidad de control principal de la CPU), algunos registros, otras unidades internas como una sub-ALU o una unidad de punto flotante, o algunos componentes menores más específicos.
Es frecuente que las CPU's modernas tengan múltiples unidades funcionales paralelas, tanto en un diseño escalar como superescalar. El método más simple es utilizar un bus, el bus principal, para gestionar la interfaz de memoria, y el resto para realizar los cálculos. Adicionalmente, las unidades funcionales de las CPU's modernas suelen ser segmentadas.

Memoria Virtual


Memoria virtual
– Técnica que realiza la gestión de dos niveles adyacentes de la jerarquía
de memorias: la memoria principal (ó memoria física) y el
almacenamiento secundario (disco).
• Motivaciones/ventajas
– Eliminar los inconvenientes de una memoria pequeña y limitada
• Los programas de usuario pueden exceder el tamaño de la memoria
principal. Nos permite utilizar un espacio lógico de direcciones
superior al realmente disponible en la memoria principal.
– Compartición eficiente de la memoria entre mútiples procesos
garantizando protección
• La memoria principal necesita solamente las partes activas de los
programas. Esto nos permite compartir eficientemente el procesador
así como la memoria principal. Proporciona los mecanismos de
protección necesarios.


Algunos conceptos...



La memoria virtual ve a la memoria principal como una cache y al disco como
el lugar donde ‘realmente’ residen los programas/datos.


Transferencias en la jerarquía de memoria: Memoria principal - Disco


Memoria Cache



Originariamente, cache es el nombre del nivel de la jerarquía de memoria
entre los registros y la memoria principal.
• Hoy día es cualquier memoria gestionada para aprovechar la localidad de los
accesos.
– Ejemplo: Cache de disco.
• La práctica totalidad de las máquinas actuales poseen uno o varios niveles de
memoria cache que se encuentran dentro y/o fuera del chip.

Memoria ROM



La ROM (Read Only Memory) es una «Memoria Sólo de Lectura». En ella sólo se puede leer la información que contiene, no es posible modificarla. En este tipo de memoria se acostumbra a guardar las instrucciones de arranque y el funcionamiento coordinado de la computadora.
Físicamente, las memorias ROM son cápsulas de cristales de silicio. La información que contienen se graba de una forma especial por sus fabricantes o empresas muy especializadas.

Las memorias de este tipo, al contrario que las RAM, no son volátiles, pero se pueden deteriorar a causa de campos magnéticos demasiado potentes.

La comunicación con el procesador se realiza, al igual que en las memorias RAM, a través de los buses de direcciones y datos.

Al existir sólo la posibilidad de lectura, la señal de control, que en la RAM se utilizaba para indicar si se iba a leer o escribir, sólo va a intervenir para autorizar la utilización de la memoria ROM.

Además de las ROM, en las que sólo puede grabar información el fabricante de la memoria, existen otros tipos de memorias no volátiles que se pueden modificar de diversas formas y son de una flexibilidad y potencia de uso mayor que las simples ROM. La utilización de este tipo de memorias permite a los usuarios configurar computadoras dedicadas a tareas concretas, modificando simplemente la programación de los bancos de memoria del sistema informático. Estas memorias son:

• PROM (Programable Read Only Memory o Memoria Programable Sólo de Lectura).
Las memorias PROM son memorias sólo de lectura que, a diferencia de las ROM, no vienen programadas desde la fábrica donde se construyen, sino que es el propio usuario el que graba, permanentemente, con medios especiales la información que más le interesa.

• EPROM (Erasable-Programable Read Only Memory o Memoria Borrable y Programable Sólo de Lectura).
Las EPROM tienen la ventaja, con respecto a las otras memorias ROM, de que pueden ser reutilizables ya que, aunque la información que se almacena en ellas permanece permanentemente grabada, ésta se puede borrar y volver a grabar mediante procesos especiales, como puede ser el mantenerlas durante treinta minutos bajo una fuente de rayos ultravioletas para borrarlas.

• EEPROM (Electrically Erasable-Programable Read Only Memory o Memoria Borrable y Programable Eléctricamente Sólo de Lectura).

Las EEPROM aumentan, más si cabe, su ventaja con respecto a los anteriores tipos de memorias, ya que la información que se almacena en ellas se puede manipular con energía eléctrica y no es necesaria la utilización de rayos ultravioletas.




Memoria Principal o RAM







Acrónimo de Random Access Memory, (Memoria de Acceso Aleatorio) es donde el ordenador guarda los datos que está utilizando en el momento presente. Se llama de acceso aleatorio porque el procesador accede a la información que está en la memoria en cualquier punto sin tener que acceder a la información anterior y posterior. Es la memoria que se actualiza constantemente mientras el ordenador está en uso y que pierde sus datos cuando el ordenador se apaga.
Cuando las aplicaciones se ejecutan, primeramente deben ser cargadas en memoria RAM. El procesador entonces efectúa accesos a dicha memoria para cargar instrucciones y enviar o recoger datos. Reducir el tiempo necesario para acceder a la memoria, ayuda a mejorar las prestaciones del sistema. La diferencia entre la RAM y otros tipos de memoria de almacenamiento, como los disquetes o discos duros, es que la RAM es mucho más rápida, y se borra al apagar el ordenador.
Es una memoria dinámica, lo que indica la necesidad de "recordar" los datos a la memoria cada pequeños periodos de tiempo, para impedir que esta pierda la información. Eso se llama Refresco. Cuando se pierde la alimentación, la memoria pierde todos los datos. "Random Access", acceso aleatorio, indica que cada posición de memoria puede ser leída o escrita en cualquier orden. Lo contrario seria el acceso secuencial, en el cual los datos tienen que ser leídos o escritos en un orden predeterminado.






Las Memorias de Acceso Aleatorio (RAM: Random Access Memory) son memorias construidas sobre semiconductores donde la información se almacena en celdas de memoria que pueden adquirir uno cualquiera de los dos valores del código binario.
Las memorias de acceso aleatorio son memorias en la que se puede leer y escribir información. Permite el acceso a cualquier información que contenga con la misma velocidad. Esto significa que se puede acceder aleatoriamente a cualquier información almacenada sin que se afecte la eficiencia del acceso. Contrasta con las memorias secuenciales, por ejemplo una cinta magnética, donde la facilidad de acceso a una información depende del lugar de la cinta donde esté almacenada.
Las tecnologías de memorias RAM se basan en Celdas de Memoria. La memoria RAM es volátil, esto es, cuando se corta la alimentación eléctrica se pierde toda la información que estuviera almacenada en este tipo de memoria. La comunicación de la RAM con la CPU se realiza a través del Bus de Direcciones y el Bus de Datos.
La memoria RAM se utiliza tanto para almacenar temporalmente programas y datos como para guardar los resultados intermedios que se están manipulando durante un proceso.




Memorias - Tipos

La memoria se divide, básicamente, en:

--Memoria principal, RAM, también conocida como memoria real o memoria primaria, que es volátil.

--Memoria secundaria, o memoria externa: disco duro, disquetes, a veces de sólo lectura (ROM), que es permanente.

Memorias

Que son???


Es una enorme colección de circuitos, cada uno de ellos capaz de almacenar un bit, estos circuitos se organizan en unidades básicas, llamadas celdas. Típicamente, una celda de memoria tiene ocho bits, lo cual se denomina byte.
Aún cuando en la memoria no hay “derecha” o “izquierda”, se emplea la abstracción para imaginarse los bytes de la memoria organizados como una fila
El extremo “izquierdo” es el fin de “más alto orden” (high-order), y el otro es de “bajo orden”
Eso mismo sucede en el interior de cada byte: bit de más alto orden y bit de más bajo orden, o bit más significativo y bit menos significativo, lo cual tiene origen en que así sería si se estuvieran representando números.


La memoria de un computador es el conjunto de todos los dispositivos de hardware con que cuenta ese computador para almacenar (lectura y escritura) instrucciones y datos

Memorias....¿Qué son????

Es una enorme colección de circuitos, cada uno de ellos capaz de almacenar un bit, estos circuitos se organizan en unidades básicas, llamadas celdas. Típicamente, una celda de memoria tiene ocho bits, lo cual se denomina byte. Aún cuando en la memoria no hay “derecha” o “izquierda”, se emplea la abstracción para imaginarse los bytes de la memoria organizados como una fila.

El extremo “izquierdo” es el fin de “más alto orden” (high-order), y el otro es de “bajo orden” Eso mismo sucede en el interior de cada byte: bit de más alto orden y bit de más bajo orden, o bit más significativo y bit menos significativo, lo cual tiene origen en que así sería si se estuvieran representando números.

La memoria de un computador es el conjunto de todos los dispositivos de hardware con que cuenta ese computador para almacenar (lectura y escritura) instrucciones y datos.

Contadores


Veamos que son los contadores....

Los contadores digitales o binarios en esencia son un grupo de flip-flops dispuestos de tal manera que sus salidas proporcionan una secuencia determinada como respuesta a los acontecimientos que ocurren a la entrada del reloj. Estos acontecimientos pueden ser por lo general pulsos de reloj (sincrónicos) o acontecimientos aleatorios (asincrónicos) alimentados como entradas por la terminal de reloj de los flip-flops. Los contadores de propagación se basan en este último principio para generar secuencias binarias que cambian como respuesta a eventos.

Para conformar un contador de n bits solo basta tener n flip-flops, uno para cada bit de información. A continuación se dará una descripción sobre la estructura y funcionamiento de los contadores de propagación mas comunes en lógica secuencial



Flip-Flops


A diferencia de los cerrojos los flip-flops son dispositivos sincrónicos y el estado de sus salidas es controlado en instantes de tiempo discretos por una señal de reloj. Al igual que los cerrojos los hay de varios tipos y sus aplicaciones son diversas. Los flip-flops son dispositivos que responden una señal de reloj durante los cambios de 1 a 0 lógico o de 0 a 1 lógico, según el tipo de flip-flop.

Para lograr que los flip-flops respondan al cambio de la señal del reloj es necesario implementar un circuito que detecte el flanco de subida o bajada de la seña de reloj. En la interactividad 5.5.1 se observa uno de estos circuitos, el cuál se conoce como flip-flop D maestro/esclavo. Un flip-flop de este tipo contiene dos cerrojos, uno de ellos actúa como maestro y el otro como esclavo. Durante la transición de la señal de reloj de 1 a 0 lógico las entradas se emplean para determinar la salida del maestro. Cuando la señal de reloj pasa de 0 a 1 lógico el estado del maestro se trasmite al esclavo. De esta forma se garantiza que las salidas Q y Q' del flip-flop cambien cada vez que ocurre una transición de 0 a 1 en la señal de reloj. Haga click sobre la entrada D del cerrojo maestro y observe como se transmite la información al cerrojo esclavo y de este a la salida.

En el siguiente link más info acerca de los Flip-Flops

Aqui algunas cosas interesantes...

Circuitos Secuenciales

Los circuitos secuénciales, de la misma forma que los combinacionales, están constituidos por puertas lógicas, y como en estos últimos, la escala de integración de la mayoría de los circuitos disponibles en catalogo es la MSI. Sin embargo, presentan unas características muy singulares que describiremos a continuación.

A diferencia de los circuitos combinacionales, en los secuenciales, los valores de las salidas en un momento dado no dependen exclusivamente de los valores aplicados en las entradas en ese instante, sino también de los que estuviesen presentes con anterioridad.

Puede ocurrir, por lo tanto, que para iguales valores en las entradas se puedan obtener estados distintos en las salidas en momentos diferentes.

La respuesta de un circuito de estas características, frente a una secuencia de valores aplicada a las entradas, depende de su constitución física.

Los circuitos secuenciales tienen capacidad para recordar o memorizar los valores de las variables de entrada. Esta operación es imprescindible en los sistemas automáticos construidos con circuitos digitales, sobre todo en los programables, de los cuales nos ocuparemos mas adelante.

El almacenamiento o memorización de la información presente en la puerta del circuito se realiza gracias a la existencia de unas variables denominadas de estado interno, cuyo valor se vera afectado por los cambios producidos en la combinación binaria aplicada a la entrada.

Existen dos grandes tipos de circuitos secuenciales:

a) Maquina de Mealy. En este tipo de circuitos, las salidas dependen, en cada instante de los valores de los elementos de memoria y de las entradas presentes en ese instante.

Aquí, para cada estado, podemos tener tantas salidas como combinaciones tengarnos en las entradas.

b) Maquina de Moore. Aquí las salidas en cada instante dependen exclusivamente de los estados de los elementos de memoria, y no dependen directamente de las entradas en ese instante. Los valores de las entradas, sirven para modificar las diversas transiciones entre estados.

Otra importante división de los circuitos secuenciales es entre sincronos y asíncronos


Circuitos Combinatorios - Decodificadores


El decodificador es un circuito combinacional diseñado para convertir un número binario (entrada) en word de "unos" y "ceros" (niveles altos y bajos de voltaje) con un orden distinto, para ejecutar un trabajo especial. En otras palabras, el word que sale es diferente al word que entró, aunque tenga la misma cantidad de bits. En Electrónica Digital es a menudo necesario pasar un número binario a otro formato, tal como el requerido para energizar los siete segmentos de los display hechos con diodos emisores de luz, en el orden adecuado para que se ilumine la figura de un individual número decimal.
Los decodificadores son también usados en los microprocesadores para convertir instrucciones binarias en señales de tiempo, para controlar máquinas en procesos industriales o implementar circuitos lógicos avanzados. El decodificador convierte números binarios en sus equivalentes Octales (base 8), decimales (base 10) y Hexadecimales (base 16).

http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/index.html

Circuitos Combinatorios - Codificadores


En un sentido general, se puede decir que un codificador es un circuito hecho para pasar información de un sistema a otro con clave diferente, y en tal caso un decodificador sería el circuito o dispositivo que retorne los datos o información al primer sistema.

Un codificador es un bloque combinacional hecho para convertir una entrada no binaria en una salida de estricto orden binario. En otras palabras, es un circuito integrado por un conjunto de componentes electrónicos con la habilidad para mostrar en sus terminales de salida un word binario (01101, 1100, etc.), equivalente al número presente en sus entradas, pero escrito en un código diferente. Por ejemplo, un Octal-to-binary encoder es un circuito codificador con ocho entradas (un terminal para cada dígito Octal, o de base 8) y tres salidas (un terminal para cada bit binario).
Los codificadores pueden, también, proporcionar otras operaciones de conversión, tal como ocurre en las calculadoras de bolsillo con el teclado: El Keyboard (teclas, llaves) encoder convierte la posición de cada tecla (No. 9, No. 3, No. 5, + , %, etc.) en su correspondiente word asignado previamente. Un ejemplo de lo anterior es el teclado codificador en ASCII (American Standard Code for Information Interchange), que genera el word de 7 bits 0100101 cuando es presionada la tecla del porcentaje(%).


Circuitos Combinatorios - Demultiplexores

Utilizan la función inversa de los demultiplexores. La información de la entrada se transmite a la línea de salida seleccionada mediante las entradas de control.

a

b

S0

S1

S2

S3

0

0

x

0

0

0

0

1

0

x

0

0

1

0

0

0

x

0

1

1

0

0

0

x

Estudio del demultiplexor 74138 con 1 entrada y 8 salidas.

Circuitos Combinatorios - Multiplexores

Circuitos que envían por un solo canal de salida alguna de las informaciones presentes en varias lineas de salida.
Circuito Multiplexor en Cascada Ejemplo: Hacer un multiplexor de 8 entradas con multiplexores de 4 entradas Para ver el gráfico seleccione la opción "Descargar" del menú superior Estudio del multiplexor 74151 con 8 entradas.

Tabla de verdad

C

B

A

strobe

d0

d1

d2

d3

d4

d5

d6

d7

y

w

x

x

x

1

x

x

x

x

x

x

x

x

0

1

0

0

0

0

0

x

x

x

x

x

x

x

0

1

0

0

0

0

1

x

x

x

x

x

x

x

1

0

0

0

1

0

x

0

x

x

x

x

x

x

0

1

0

0

1

0

x

1

x

x

x

x

x

x

1

0

0

1

0

0

x

x

0

x

x

x

x

x

0

1

0

1

0

0

x

x

1

x

x

x

x

x

1

0

0

1

1

0

x

x

x

0

x

x

x

x

0

1

0

1

1

0

x

x

x

1

x

x

x

x

1

0

1

0

0

0

x

x

x

x

0

x

x

x

0

1

1

0

0

0

x

x

x

x

1

x

x

x

1

0

1

0

1

0

x

x

x

x

x

0

x

x

0

1

1

0

1

0

x

x

x

x

x

1

x

x

1

0

1

1

0

0

x

x

x

x

x

x

0

x

0

1

1

1

0

0

x

x

x

x

x

x

1

x

1

0

1

1

1

0

x

x

x

x

x

x

x

0

0

1

1

1

1

0

x

x

x

x

x

x

x

1

1

0


Algebra de Boole - Datos interesantes

También llamada Retículas booleanas es una estructura algebraica que rigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento.

Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. Específicamente, el álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla en el diseño de circuitos de conmutación eléctrica biestables, en 1938.

Link con datos adicionales e interesantes acerca del Algebra de Boole....

http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/index.html

Los códigos numéricos - Un acercamiento

Los códigos numéricos sirven para representar números con fines de procesamiento y almacenamiento. Los números de punto fijo y de punto flotante son ejemplos de estos códigos.

Binary-coded decimal (BCD8421) es un sistema numérico usado en sistemas computacionales y electrónicos para codificar números enteros positivos y facilitar las operaciones aritméticas. Es un código pesado debido a que representa los dígitos con un orden específico (8421).En BCD cada cifra que representa un dígito decimal (0, 1,...8 y 9) se representa con su equivalente binario en cuatro bits (nibble o cuarteto) (esto es así porque es el número de bits necesario para representar el nueve, el número más alto que se puede representar en BCD.

Codigo Gray

El código binario reflejado o código Gray, nombrado así en honor del investigador Frank Gray, es un sistema de numeración binario en el que dos valores sucesivos difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales espurias de los switches electromecánicos. Actualmente es usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales como algunos sistemas de televisión por cable y la televisión digital terrestre.

http://huitoto.udea.edu.co/SistemasDiscretos/contenido/cod_numericos.html

Sistemas de Numeración - Ultima Parte

Numeración decimal y binaria

Cuando en una numeración se usan diez símbolos diversos, a ésta se la denomina numeración decimal o en base 10. El valor de cada cifra es el producto de la misma por una potencia a 10 (la base), cuyo exponente es igual a la posición 0, las decenas la 1 y así sucesivamente.

Por ejemplo, 327 se puede descomponer en:

3 . 10² + 2 . 10¹ + 7 . 10º = 300 + 20 + 7 = 327

Siguiendo con el mismo razonamiento, podemos definir una numeración binaria o en base 2, donde los símbolos 0 y 1 vistos anteriormente asumen el valor numérico 0 y 1. Así, el número 10110 escrito en base 2 o binaria equivale al siguiente número en base 10 o decimal:

1 . 24 + 0 . 2³ + 1 . 2² + 1 . 2¹ + 0 . 2º = 16 + 0 + 4 + 2 + 0 = (22)10

En el sistema binario:

- Con 1 bit el valor más alto que se puede expresar es el 1.

- Con 2 bits el valor más alto que se puede expresar es el 3.

- Con n bits el valor más alto que se puede expresar es el 2 – 1.

Cada bit, según la posición que ocupa dentro del conjunto de un número binario, tiene un peso o un valor determinado en el sistema decimal.

Como vemos, el sistema binario emplea muchas cifras para representar una información. Para poder trabajar con más comodidad, los programadores emplean los sistemas octal y hexadecimal, que permiten operar con muchas menos cifras.


Sistema Octal

El sistema de numeración octal es también muy usado en la computación por tener una base que es potencia exacta de 2 o de la numeración binaria. Esta característica hace que la conversión a binario o viceversa sea bastante simple. El sistema octal usa 8 dígitos (0,1,2,3,4,5,6,7) y tienen el mismo valor que en el sistema de numeración decimal. Como el sistema de numeración octal usa la notación posicional entonces para el número 3452.32q tenemos:
2*(80) + 5*(81) + 4*(82) + 3*(83) + 3*(8-1) + 2*(8-2) = 2 + 40 + 4*64 + 64 + 3*512 + 3*0.125 + 2*0.015625 = 2 + 40 + 256 + 1536 + 0.375 + 0.03125 = 1834 + 40625dentonces, 3452.32q = 1834.40625d

El subindice q indica número octal, se usa la letra q para evitar confusión entre la letra o y el número 0.

Sistema Hexadecimal


Un gran problema con el sistema binario es la verbosidad. Para representar el valor 20210 se requieren ocho dígitos binarios, la versión decimal sólo requiere de tres dígitos y por lo tanto los números se representan en forma mucho más compacta con respecto al sistema numérico binario. Desafortunadamente las computadoras trabajan en sistema binario y aunque es posible hacer la conversión entre decimal y binario, ya vimos que no es precisamente una tarea cómoda. El sistema de numeración hexadecimal, o sea de base 16, resuelve este problema (es común abreviar hexadecimal como hex aunque hex significa base seis y no base dieciseis). El sistema hexadecimal es compacto y nos proporciona un mecanismo sencillo de conversión hacia el formato binario, debido a ésto, la mayoría del equipo de cómputo actual utiliza el sistema numérico hexadecimal. Como la base del sistema hexadecimal es 16, cada dígito a la izquierda del punto hexadecimal representa tantas veces un valor sucesivo potencia de 16, por ejemplo, el número 123416 es igual a: 1*163 + 2*162 + 3*161 + 4*160 lo que da como resultado: 4096 + 512 + 48 + 4 = 466010 Cada dígito hexadecimal puede representar uno de dieciseis valores entre 0 y 1510. Como sólo tenemos diez dígitos decimales, necesitamos inventar seis dígitos adicionales para representar los valores entre 1010 y 1510. En lugar de crear nuevos simbolos para estos dígitos, utilizamos las letras A a la F. La conversión entre hexadecimal y binario es sencilla, considere la siguiente tabla:


Binario             Hexadecimal

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F


Sistemas de numeración - Tercera Parte

Conversión entre bases

Podemos convertir un número cualquiera de nuestra base decimal a una base menor (por ejemplo, un número en sistema decimal a su equivalente en sistema base tres) por el método de la división sucesiva. Este método se lleva a cabo de la siguiente manera:

(1) Se divide el número decimal dado entre la base al cual queremos convertir al número, y se destaca el residuo obtenido.
(2) El cociente obtenido de la división anterior se vuelve a dividir nuevamente entre la base a la cual queremos convertir el número, y se destaca el residuo así obtenido.
(3) El procedimiento anterior se repite hasta que ya no es posible seguir dividiendo sin obtener una fracción con punto decimal. Al llegar a esta etapa, se destacan el dividendo obtenido así como el residuo.
(4) El número correspondiente a la base menor se obtiene escribiendo como el primer dígito el dividendo obtenido en el último paso anterior, y poniendo como el segundo dígito (a su derecha) el residuo obtenido del también del último paso anterior.
(5) Para el tercer dígito, escribimos a la derecha del resultado anterior el residuo obtenido de la penúltima división.
(6) El paso anterior se repite hasta que se hayan agotado todos los dígitos.Para convertir un número en una base menor al sistema decimal (por ejemplo, un número en el sistema base siete a su equivalente en sistema decimal), se multiplica la primera cifra del número por la base menor. Al producto resultante se le agrega la segunda cifra del número y se vuelve a multiplicar por la base menor. El procedimiento se continúa hasta agotar las cifras, después de lo cual se tendrá el número decimal.

Sistemas de numeración - Segunda Parte

¿Qué son??


Los sistemas de numeración son las distintas formas de representar la información numérica. Se nombran haciendo referencia a la base, que representa el número de dígitos diferentes para representar todos los números.
El sistema habitual de numeración para las personas es el Decimal, cuya base es diez y corresponde a los distintos dedos de la mano, mientras que el método habitualmente utilizado por los sistemas electrónicos digitales es el Binario, que utiliza únicamente dos cifras para representar la información: el 0 y el 1.
Otros sistemas como el Octal (base 8) y el Hexadecimal (base 16) son utilizados en las computadoras.

Un sistema de numeración es un conjunto de símbolos y reglas de generación que permiten construir todos los números válidos en el sistema.
Un sistema de numeración puede representarse como

N = S + R

donde:

N es el sistema de numeración considerado (p.ej. decimal, binario, etc.)

S son los símbolos permitidos en el sistema. En el caso del sistema decimal son {0,1...9}; en el binario son {0,1}; en el octal son {0,1...7}; en el hexadecimal son {0,1...9,A,B,C,D,E,F}

R son las reglas que nos indican qué números son válidos en el sistema, y cuáles no.

Estas reglas son diferentes para cada sistema de numeración considerado, pero una regla común a todos es que para construir números válidos en un sistema de numeración determinado sólo se pueden utilizar los símbolos permitidos en ese sistema.
Para indicar en qué sistema de numeración se representa una cantidad se añade como subíndice a la derecha el número de símbolos que se pueden representar en dicho sistema.

Sistemas de numeración - Primera Parte



Algo de historia....


Desde que el hombre aprendió a hacer uso de razón, se vió en la necesidad de contar de alguna manera los objetos que le rodeaban y, muy en especial, los que poseía. El florecimiento del comercio en los tiempos antiguos agravó aún más la necesidad de utilizar un sistema numérico preciso y fácil de utilizar.


De esta manera, el hombre empezó a contar de diez en diez (que es lo que hoy conocemos como el sistema decimal) influenciado por el hecho de que poseía diez dedos. Conforme ascendía la numeración, cada unidad numérica recibía un símbolo diferente (por ejemplo, 3, 4, 5 en la numeración arábiga). Después del nueve, se tomaba el símbolo que representaba la menor cantidad de unidades (el 1) y se le agregaba un cero, con lo cual se obtenía la cantidad décima. La operación empezaba de nuevo su conteo ascendente hasta llegar a diecinueve, después de lo cual se aumentaba la cifra a la izquierda en una unidad poniéndose un cero a la derecha de la misma, repitiéndose el proceso indefinidamente. Podemos observar que, sin el cero, se habría requerido un símbolo diferente para cada número mayor que nueve (por ejemplo, el símbolo A para el diez, el símbolo B para el once, el símbolo C para el doce, etc.). En efecto, sin el cero, cualquier sistema numérico resulta extremadamente complejo e impráctico (podemos imaginar los problemas que padecían los romanos cuando en su sistema de numeración romana trataban de multiplicar una cantidad por otra, cuando trataban de multplicar algo como XXIII por LIV en vez de lo que para nosotros es 23 por 54). No en vano se ha proclamado la invención del cero como uno de los más importantes avances en la historia de la humanidad.








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 bits, por conveniencia, se numeran de derecha a izquierda (15,14,13…. 3,2,1,0), los registros están 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 propósitos generales
-Registro índice
-Registro de bandera

La Unidad Aritmético-lógica (ALU)



Su misión es realizar las operaciones con los datos que recibe, siguiendo las indicaciones dadas por la unidad de control.
El nombre de unidad aritmética y lógica se debe a que puede realizar operaciones tanto aritméticas como lógicas con los datos transferidos por la unidad de control.



La unidad de control maneja las instrucciones y la aritmética y lógica procesa los datos.
Para que la unidad de control sepa si la información que recibe es una instrucción o dato, es obligatorio que la primera palabra que reciba sea una instrucción, indicando la naturaleza del resto de la información a tratar.
Para que la unidad aritmética y lógica sea capaz de realizar una operación aritmética, se le deben proporcionar, de alguna manera, los siguientes datos:



1. El código que indique la operación a efectuar.
2. La dirección de la celda donde está almacenado el primer sumando.
3. La dirección del segundo sumando implicado en la operación.
4. La dirección de la celda de memoria donde se almacenará el resultado.

Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el pitido del temporizador, etc.
Por mucho, los más complejos circuitos electrónicos son los que están construidos dentro de los chips de microprocesadores modernos como el Intel Core Duo. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso. De hecho, un microprocesador moderno (y los mainframes) pueden tener múltiples núcleos, cada núcleo con múltiples unidades de ejecución, cada una de ellas con múltiples ALU.

domingo, 7 de diciembre de 2008

La Unidad de control

La Unidad de control es la encargada de activar o desactivar los diversos componentes del microprocesador en función de la instrucción que el microprocesador esté ejecutando y en función también de la etapa de dicha instrucción que se esté ejecutando.
La unidad de control (UC) interpreta y ejecuta las instrucciones almacenadas en la memoria principal y genera las señales de control necesarias para ejecutarlas.
Existen dos tipos de unidades de control, las cableadas, usadas generalmente en máquinas sencillas, y las microprogramadas, propias de máquinas más complejas. En el primer caso, los componentes principales son el circuito de lógica secuencial, el de control de estado, el de lógica combinacional, y el de emisión de reconocimiento señales de control. En el segundo caso, la microprogramación se encuentra almacenada en una micromemoria (se accede a las mismas de manera secuencial (1, 2, ..., n), y posteriormente se ejecuta cada una de ellas).
Sus funciones Básicas son:

1. Manejar todas las operaciones de acceso, lectura y escritura a cada una de las posiciones de la memoria principal donde se almacenan las instrucciones necesarias para realizar un proceso.
2. Interpretar la instrucción en proceso.
3. Realizar las tareas que se indican en la instrucción.

Esta unidad también se ocupa de controlar y coordinar a las unidades implicadas en las operaciones anteriormente mencionadas, de manera que se eviten problemas internos que se puedan producir entre los componentes de la computadora.

La unidad de control, comunica entre sí y dirige las entradas y salidas desde y hasta los periféricos, dando el oportuno tratamiento a la información en proceso.
Finalmente, para realizar su cometido, la unidad de control necesita manejar la siguiente información:

• El registro de estado.
• El registro puntero de instrucciones.
• La instrucción a ejecutar.
• Las señales de entrada/salida.

Clases de Bus...

En est caso analizaremos los siguientes tipos de Bus:
-Bus de direcciones.
está vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecución de los procesos de cómputo.
es un canal del microprocesador totalmente independiente al bus de datos donde se establece la dirección de memoria del dato en tránsito. El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección.La capacidad de la memoria que se puede direccionar depende de la cantidad de bits que conforman el bus de direcciones, siendo 2^n (dos elevado a la ene) el tamaño máximo en bytes del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para direccionar una memoria de 256 bytes, son necesarias al menos 8 líneas, pues 2^8 = 256. Adicionalmente pueden ser necesarias líneas de control para señalar cuando la dirección está disponible en el bus. Esto depende del diseño del propio bus.


-Bus de datos.
mueve los datos entre los dispositivos del hardware: de Entrada como el Teclado, el Escáner, el Ratón, etc.; de salida como la Impresora, el Monitor o la tarjeta de Sonido; y de Almacenamiento como el Disco Duro, el Diskette o la Memoria Flash.
Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexión de componentes Periféricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semáforos para el tráfico en las calles de una ciudad.

-Bus de control.
Este bus transporta señales de estado de las operaciones efectuadas por la CPU. El método utilizado por el ordenador para sincronizar las distintas operaciones es por medio de un reloj interno que posee el ordenador y facilita la sincronización y evita las colisiones de operaciones (unidad de control).Estas operaciones se transmiten en un modo bidireccional y unidireccional.


Una tarjeta-madre tipo ATX tiene tantas pistas eléctricas destinadas a buses, como anchos sean los Canales de Buses del Microprocesador de la CPU: 64 para el Bus de datos y 32 para el Bus de Direcciones.
El "ancho de canal" explica la cantidad de bits que pueden ser transferidos simultáneamente. Así, el Bus de datos transfiere 8 bytes a la vez.
Para el Bus de Direcciones, el "ancho de canal" explica así mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32 potencia. "2" porque son dos las señales binarias, los bits 1 y 0; y "32 potencia" porque las 32 pistas del Bus de Direcciones son, en un instante dado, un conjunto de 32 bits.
Así, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" más de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su Bus.

Que es un Bus??


El bus, quizá fuera mejor decir los buses ya que existen varios con diversas funciones, es un circuito que conecta el procesador central con todo el resto de componentes de la computadora.

El bus sirve para que le llegue al procesador la información y las solicitudes de trabajo, desde el exterior, y envíe hacia afuera los resultados del trabajo realizado.


El bus es un enlace de comunicaciones que conecta todos los componentes que configuran el sistema informático y permite la transferencia de información entre ellos. Esta información se compone de datos y órdenes de comandos para manipular los datos. Existen varias tecnologías de diseño y construcción de buses entre las que se pueden distinguir las arquitecturas ISA, EISA y MCA.


Hablando del Hardware ss el conjunto de líneas cables utilizados para la transmisión de datos entre los componentes de un sistema informático. Un bus es en esencia una ruta compartida que conecta diferentes partes del sistema como el procesador, la controladora de unidad de disco, la memoria y los puertos de entrada, salida, permitiéndoles transmitir información.
Existen diferentes tipos de bus, como se mencionó la inicio de esta entrada, qu serán analizados más adelante.

Microprocesador


En esta entrada se hablará del miroprocesador, así como de los "buses" que contiene, que es un bus. En las siguientes entradas se hablará de Unidad de Control, la ALU(Unidad Aritmético Lógica por sus siglas en inglés) y los registros, todos ellos que forman parte del procesador.

La construcción del microprocesador a través de la integración de circuitos en gran escala, así como la construcción de las unidades periféricas de apoyo, así como la construcción de memorias RAM, de discos duros y demás accesorios que constituyen lo que se comúnmente se conoce como el hardware de la máquina.




El Modelo de Von Neuman


Las computadoras con arquitectura Von Neumann se refiere a las arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos. Fue escrito por el conocido matemático John Von Neumann, que propuso el concepto de programa almacenado.
Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:

La unidad aritmético-lógica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.
Un ordenador con 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. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.
5) Vuelve al paso N° 1


sábado, 6 de diciembre de 2008

Una introducción a la Arquitectura de Computadoras...


La arquitectura de una computadora explica la situación de sus componentes y permite determinar las posibilidades de que un sistema informático, con una determinada configuración, pueda realizar las operaciones para las que se va a utilizar.