Buscar este blog

lunes, 27 de junio de 2011

Conversión entre sistemas numericos

En informática, la conversión alude al proceso de transformación de datos informáticos de una representación concreta a otra, cambiando los bits de un formato a otro, normalmente para lograr la interoperatibilidad de aplicaciones o sistemas diferentes. Al nivel más simple, la conversión de datos puede ejemplificarse por la conversión de un fichero de texto desde una codificación de caracteres a otra. Son conversiones más complejas las de los formatos de ficheros ofimáticos y multimedia, a veces fuera de las capacidades de ordenadores domésticos (o a expensas de tiempos de proceso muy altos).

Conceptos básicos

Antes de que pueda efectuarse cualquier conversión de datos el usuario o programador de aplicaciones debe tener en mente unos cuantos conceptos básicos de teoría de la información e informática:
  • Es fácil descartar información usando un ordenador, pero añadirla requiere esfuerzo.
  • El ordenador puede usarse para añadir información sólo con base en reglas; la mayoría de adiciones que interesa a los usuarios sólo puede lograrse con la ayuda de humanos.
  • Sobremuestrear los datos o convertirlos a un formato con más posibilidades no añade información: sólo hace hueco para dicha adición, que suele tener que hacer un humano.
Por ejemplo, una imagen truecolor puede ser convertida fácilmente a escala de grises, siendo la conversión opuesta un proceso concienzudo. Convertir un fichero de texto Unix a un fichero de texto Microsoftretorno de carro (CR) antes de cada salto de línea (LF), pero dicha adición puede hacerse con un ordenador gracias a que se basa en regles, mientras la adición de información de color a una imagen en escala de grises no puede hacer programáticamente, ya que sólo un humano sabe qué colores son necesarios para cada parte de la imagen, por lo que no hay reglas que puedan usarse para automatizar el proceso. Convertir un PNG de 24 bits a uno de 48 bits no añade información a la imagen, pues sólo rellenan los valores RGB de los píxeles con ceros. La conversión permite luego afinar estos valores «expandidos», pero sólo con posteriores manipulaciones manuales. Convertir una imagen o un fichero de sonido desde un formato comprimido con pérdida (como JPEG o Vorbis) a otro sin pérdida (como PNG o FLAC) o descomprimido (como BMP o WAV) sólo desperdicia espacio, ya que la imagen o sonido resultante será el mismo, con la información original perdida (los artefactos de la compresión con pérdida). Una imagen JPEG nunca puede recuperar la calidad de la imagen original anterior a la compresión, por mucho que se use la herramienta de «Eliminación de artefactos JPEG» (que retiran aún más información de la imagen) de los programas de edición gráfica. (DOS/Windows) implica añadir información, concretamente un
Debido a estas realidades, la conversión de datos es con mucha frecuencia un proceso complejo y propenso a errores, que requiere de la ayuda de expertos. Es seguro afirmar que sólo el éxito de la inteligencia artificial llevará a la quiebra a las compañías dedicadas a la conversión de datos.

 

Sistema numérico

En álgebra abstracta, un sistema numérico es un tipo de estructura algebraica

Definición

Un conjunto \mathbb S es un sistema numérico si en él están definidas dos operaciones matemáticas binarias asociativas y conmutativas, denominadas adición y multiplicación, y si además se cumple que la multiplicación es distributiva con respecto a la adición. Para a, b y c elementos de \mathbb S :
  • Propiedad conmutativa de la adición: a + b = b + a
  • Propiedad conmutativa de la multiplicación: a • b = b • a
  • Propiedad asociativa de la adición: (a + b) + c = a + (b + c)
  • Propiedad asociativa de la multiplicación: (a • b) • c = a • (b • c)
  • Propiedad distributiva de la multiplicación sobre la adición: a • (b + c) = a • b + a • c
La adición y la multiplicación no necesariamente deben ser las de la aritmética elemental.

 

.

Funcionamiento de los Buses de datos, dirección y control

La función del MICROBus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando datos entre dispositivos de distintos órdenes: desde dentro de los mismos circuitos integrados, hasta equipos digitales completos que forman parte de supercomputadoras.
La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas como datos útiles. Las señales digitales que se trasmiten son de datos, de direcciones o señales de control.
Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de sincronizarlas, crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta velocidad.
Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos.

Primera generación


Bus Backplane del PDP-11 junto con algunas tarjetas.
Los primeros computadores tenían 2 sistemas de buses, uno para la memoria y otro para los demás dispositivos. La CPU tenía que acceder a dos sistemas con instrucciones para cada uno, protocolos y sincronizaciones diferentes.
La empresa DEC notó que el uso de dos buses no era necesario si se combinaban las direcciones de memoria con las de los periféricos en un solo espacio de memoria (mapeo), de manera que la arquitectura se simplificaba ahorrando costos de fabricación en equipos fabricados en masa, como eran los primeros minicomputadores.
Los primeros microcomputadores se basaban en la conexión de varias tarjetas de circuito impreso a un bus Backplane pasivo que servía de eje al sistema. En ese bus se conectaba la tarjeta de CPU que realiza las funciones de arbitro de las comunicaciones con las demás tarjetas de dispositivo conectadas; las tarjetas incluían la memoria, controladoras de diskette y disco, adaptadores de vídeo. La CPU escribía o leía los datos apuntando a la dirección que tuviera el dispositivo buscado en el espacio único de direcciones haciendo que la información fluyera a través del bus principal.
Entre las implementaciones más conocidas, están los buses Bus S-100 y el Bus ISA usados en varios microcomputadores de los años 70 y 80. En ambos, el bus era simplemente una extensión del bus del procesador de manera que funcionaba a la misma frecuencia. Por ejemplo en los sistemas con procesador Intel 80286 el bus ISA tenia 6 u 8 Mhz de frecuencia dependiendo del procesador.

Segunda generación


Jerarquía de diversos buses en un equipo relativamente moderno: SATA, FSB, AGP, USB entre otros.
El hecho de que el bus fuera pasivo y que usara la CPU como control, representaba varios problemas para la ampliación y modernización de cualquier sistema con esa arquitectura. Además que la CPU utilizaba una parte considerable de su potencia en controlar el bus.
Desde que los procesadores empezaron a funcionar con frecuencias más altas, se hizo necesario jerarquizar los buses de acuerdo a su frecuencia: se creó el concepto de bus de sistema (conexión entre el procesador y la RAM) y de buses de expansión, haciendo necesario el uso de un chipset.
El bus ISA utilizado como backplane en el PC IBM original pasó de ser un bus de sistema a uno de expansión, dejando su arbitraje a un integrado del chipset e implementando un bus a una frecuencia más alta para conectar la memoria con el procesador.
En cambio, el bus Nubus era independiente desde su creación, tenía un controlador propio y presentaba una interfaz estándar al resto del sistema, permitiendo su inclusión en diferentes arquitecturas. Fue usado en diversos equipos, incluyendo algunos de Apple y se caracterizaba por tener un ancho de 32 bits y algunas capacidades Plug and Play (autoconfiguración), que lo hacían muy versátil y adelantado a su tiempo. Entre otros ejemplos de estos buses autónomos, están el AGP y el bus PCI.

Tercera generación

Los buses de tercera generación se caracterizan por tener conexiones punto a punto, a diferencia de los buses arriba nombrados en los que se comparten señales de reloj. Esto se logra reduciendo fuertemente el número de conexiones que presenta cada dispositivo usando interfaces seriales. Entonces cada dispositivo puede negociar las características de enlace al inicio de la conexión y en algunos casos de manera dinámica, al igual que sucede en las redes de comunicaciones. Entre los ejemplos más notables, están los buses PCI-Express, el Infiniband y el HyperTransport.

Funcionamiento de la Memoria Cache

La memoria caché es una clase de memoria RAM estática (SRAM) de acceso aleatorio y alta velocidad, situada entre el CPU y la RAM; se presenta de forma temporal y automática para el usuario, que proporciona acceso rápido a los datos de uso más frecuente.
La ubicación de la caché entre el microprocesador y la RAM, hace que sea suficientemente rápida para almacenar y transmitir los datos que el microprocesador necesita recibir casi instantáneamente.
La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM dinámica), por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 ó 20 veces más que la memoria principal dinámica para la misma cantidad de memoria.
La utilización de la memoria caché se describe a continuación:
  • Acelerar el procesamiento de las instrucciones de memoria en la CPU.
  • Los ordenadores tienden a utilizar las mismas instrucciones y (en menor medida), los mismos datos repetidamente, por ello la caché contiene las instrucciones más usadas.
Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener directamente de la memoria caché, tanto más rápido será el funcionamiento del ordenador.
La memoria caché se carga desde la RAM con los datos y/o instrucciones que ha buscado la CPU en las últimas operaciones. La CPU siempre busca primero la información en la caché, lo normal es que va encontrar ahí la mayoría de las veces, con lo que el acceso será muy rápido. Pero si no encuentra la información en la caché, se pierde un tiempo extra en acudir a la RAM y copiar dicha información en la caché para su disponibilidad.

Funcionamiento de la memoria de almacenamiento masivo

por ejemplo:
memoria USB
Estas memorias se han convertido en el sistema de almacenamiento y transporte personal de datos más utilizado, desplazando en este uso a los tradicionales disquetes y a los CD. Se pueden encontrar en el mercado fácilmente memorias de 1, 2, 4, 8, 16, 32, 64, 128 y hasta 256 GB (a partir de los 64 GB ya no resultan prácticas por su elevado costo). Esto supone, como mínimo, el equivalente a 180 CD de 700MB o 91.000 disquetes de 1,44 MB aproximadamente


Funcionamiento de la Memoria RAM

Se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan "de acceso aleatorio" porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible.

Periférico

En informática, se denomina periféricos a los aparatos o dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.
Se consideran periféricos tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.
Se entenderá por periférico al conjunto de dispositivos que, sin pertenecer al núcleo fundamental de la computadora, formado por la CPU y la memoria central, permitan realizar operaciones de entrada/salida (E/S) complementarias al proceso de datos que realiza la CPU. Estas tres unidades básicas en un computador, CPU, memoria central y el subsistema de E/S, están comunicadas entre sí por tres buses o canales de comunicación:
  • el bus de direcciones, para seleccionar la dirección del dato o del periférico al que se quiere acceder,
  • el bus de control, básicamente para seleccionar la operación a realizar sobre el dato (principalmente lectura, escritura o modificación) y
  • el bus de datos, por donde circulan los datos.
A pesar de que el término periférico implica a menudo el concepto de “adicional pero no esencial”, muchos de ellos son elementos fundamentales para un sistema informático. El teclado y el monitor, imprescindibles en cualquier computadora personal de hoy en día (no lo fueron en los primeros computadores), son posiblemente los periféricos más comunes, y es posible que mucha gente no los considere como tal debido a que generalmente se toman como parte necesaria de una computadora. El mouse es posiblemente el ejemplo más claro de este aspecto. Hace menos de 20 años no todos las computadora personales incluían este dispositivo. El sistema operativo MS-DOS, el más común en esa época, tenía una interfaz de línea de comandos para la que no era necesaria el empleo de un mouse, todo se hacía mediante comandos de texto. Fue con la popularización de Finder, sistema operativo de la Macintosh de Apple y la posterior aparición de Windows cuando el mouse comenzó a ser un elemento imprescindible en cualquier hogar dotado de una computadora personal. Actualmente existen sistemas operativos con interfaz de texto que pueden prescindir del mouse como, por ejemplo, algunos sistemas básicos de UNIX y GNU/Linux.