Publicidad:
Terra
La Coctelera

SISTEMA DE REPRESENTACION NUMERICA.

Representación de datos numéricos en el ordenador.
Coma fija y coma flotante 1
Representación de datos no numéricos en el ordenador.
Códigos binarios. ASCII. EBCDIC. 10

Representación de datos numéricos en el ordenador. Coma fija y coma flotante:
Todos los datos el ordenador los representa en sistemas basados en el sistema binario, ya que sólo utiliza dos estados estables.
Los números reales se clasifican en tres tipos:

  • Enteros.- Positivos y negativos.
  • Racionales.- Se pueden expresar como cociente de dos enteros.
  • Irracionales.- Resto de números que no pueden expresarse como cociente de dos enteros.
    Cualquier conjunto de números reales es infinito, por lo que, dadas las limitaciones del espacio material de representación de las computadoras, no es posible representar a todos. Por el mismo motivo, serán irrepresentables los números irracionales, que precisan de un número infinito de bits.
  • Generalmente, en una computadora se asigna un número fijo de n bits para representar un número, siendo n el tamaño de la palabra, u otro tamaño privilegiado. Esta limitación define el rango de representación, o sea, los límites. Consecuentemente, los números racionales se expresarán con un número finito de cifras fraccionarias, lo que dará lugar a una cierta precisión en la representación.
    Dada esta limitación de bits, existen diversos métodos de representar los datos numéricos que optimizan la utilización de estos bits para determinadas aplicaciones.
    Vamos a estudiar los llamados métodos posicionales, en los cuales los números se representan en dígitos sucesivos, teniendo cada dígito un peso o valor que depende del lugar donde se encuentra. Los pesos son potencias sucesivas de una base.
    El valor de un número X formado por los dígitos: xn...x3x2x1x0.x-1x-2...x-m tomando como pesos las potencias sucesivas de una base r será:
    X = xnrn + ... + x3r3 + x2r2 + x1r1 + x0r0 + x-1r-1 + x-2r-2 + ...+ x-mr-m = 'Sistemas de representación numérica'

    Por ejemplo, el número 913.4 en base 10 (r = 10), se puede descomponer:
    913.4 = 9 x 102 + 1 x 101 + 3 x 100 + 4 x 10-1
    El número binario 1011, se descompondrá:
    1011 = 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11(10
    Los dígitos xi son siempre positivos y menores que la base (0 " xi < r). En el sistema decimal, con r = 10; 0 " xi < 10 y en el sistema binario con r = 2; 0 " xi < 2.
    Si dos bases r1 y r2 cumplen la condición r1 = 'Sistemas de representación numérica'
    , entonces:
    (xn... x2 x1x0.x-1x-2...x-m)(r1 = (ak...a2a1a0.a-1a-2...a-v)(r2 siendo: aj = (xpj+p-1 xpj+p-2... xpj+1 xpj).
    De esta propiedad se deduce que los dígitos de la base r1 se obtienen agrupando los dígitos de la base r2 en grupos de longitud p, empezando a partir del punto decimal. Cada una de estas cadenas de la base menor es un número de la base mayor. Esta propiedad se puede aplicar para pasar un número binario a octal, agrupando los bits de 3 en 3, o a hexadecimal, agrupando los bits de 4 en 4.
    Por ejemplo para pasar a hexadecimal el número 101101110.1011(2 agrupamos las cifras en los siguientes grupos: 1 0110 1110 1011 con lo que obtendríamos 16E.B(16
    A veces, un número racional tiene una representación exacta en una base, mientras que en otra es de tipo periódica; por ejemplo: (1/5)(10 = 0.2(10 = 0.0011001100110011...(2
    Al tener que encajar los números en un tamaño fijo de n bits, se trunca o pierde el periodo y el ordenador produce resultados con un cierto error.
    A continuación se estudian los métodos más corrientes de representación de enteros y racionales en el sistema posicional, que pueden dividirse en los siguientes grupos:

  • Coma fija sin signo. Binario puro sin signo. Enteros Positivos.
  • Coma fija con signo. Binario puro con signo. Enteros.
  • Coma fija con complemento restringido a la base. Complemento a uno. Enteros.
  • Coma fija con complemento a la base. Complemento a dos. Enteros.
  • Coma fija BCD. Enteros.
  • Coma flotante. Racionales.
    En todos los formatos supondremos que estamos trabajando en base 2 y que el número de bits que tiene una palabra (es decir el número de bits con los que opera el ordenador) es n.
    Coma fija sin signo. Binario puro sin signo.
    Es el formato más simple para representar números enteros positivos y responde a la siguiente forma:
    Si las cifras del número entero X son xn-1xn-2...x2x1x0,
    El valor de X es: X = 2n-1xn-1 + 2n-2xn-2 + ...+ 22x2 + 21x1 + 20x0 = 'Sistemas de representación numérica'

    El rango de valores que admite un número X expresado en este formato es: 0 " X < 2n
    Modificando el bit menos significativo, el número variará en una unidad, y, por tanto, la precisión es de una unidad.
    Este formato tiene el inconveniente de que, al realizar sumas, se puede perder el bit más significativo del resultado cuando no cabe en el tamaño de la palabra (desbordamiento). El ordenador puede disponer de un mecanismo para avisar cuando se produce esta eventualidad.
    Coma fija con signo. Binario puro con signo.
    Es igual al formato anterior, pero reservando un bit para indicar el signo. Este bit, si es un 0, define al número como positivo y si es un 1, como negativo.
    El mayor número, en valor absoluto, que se puede formar teniendo en cuenta que uno de los n bits es el de signo, es 2n-1-1. Por tanto el rango es: -(2n-1-1) " X " (2n-1-1).
    La precisión sigue siendo la unidad.
    Además del problema de desbordamiento se presentan otros dos:
    Existen dos ceros: el 00...00 (0) y el 10...00 (-0).
    Cuando uno de los operandos es negativo, una suma se convierte en una resta.
    Coma fija con complemento restringido a la base. Complemento a uno.
    En este sistema los números positivos coinciden con los correspondientes a los sistemas antes descritos. Para formar los números negativos se aplica el siguiente algoritmo:
    -A = 2n - 1 - A = C1, siendo C1 la representación en complemento a uno del número -A
    El complemento a uno coincide con el complemento lógico o negación, es decir, para formarse se cambian los unos por ceros y viceversa.
    La precisión también es uno y existen dos ceros. Pero además presenta el problema de que hay situaciones en las cuales al sumar dos número el resultado es incorrecto:
    Al sumar dos números negativos, o un número positivo y uno negativo de menor o igual valor absoluto que el positivo, el resultado es una unidad inferior al correcto y, además se produce un bit de acarreo superior. La corrección se realiza sumando el bit de acarreo al resultado. Sin embargo estas correcciones son fáciles de realizar por la ALU, por lo que se emplean en algunos ordenadores.
    Por ejemplo siendo n = 8:
    -3(10 = 11111100(2
    -8(10 = 11110111(2
    -11(10 " 111110011(2 = -12(10, si ahora sumamos el bit de acarreo tendremos: 111110100(2 = -11(10
    9(10 = 00001001(2
    -4(10 = 11111011(2
    5(10 " 100000100(2 = 4(10, si ahora sumamos el bit de acarreo tendremos: 00000101(2 = 5(10
    En ambos casos hemos prescindido del noveno bit, ya que para el ordenador tampoco cuenta.
    Coma fija con complemento a la base. Complemento a dos.
    Este formato es parecido al de complemento a uno, con la diferencia de que los números negativos se representan restando de 2n el valor absoluto del número. Es decir:
    -A = 2n - A = C2, siendo C2 la representación en complemento a dos del número -A.
    Es equivalente a calcular el complemento a uno y después incrementar una unidad.
    El rango de este formato es -2n-1 " X " 2n-1 - 1.
    No existe duplicidad del cero y el número negativo más pequeño es una unidad menor que en los casos anteriores.
    Coma fija BCD. Enteros.
    El código BCD consiste en representar cada una de las cifras que compone un número en binario, utilizando para cada una de ellas 4 bits.
    Los datos de entrada y salida del ordenador suelen expresarse en base decimal, excepto cuando se dirigen o se reciben de periféricos de almacenamiento magnético, en cuyo caso se utiliza el sistema binario. Cuando se precisan realizar cálculos complejos, hay que transformar los datos de entrada a binario; mientras que los de salida hay que convertirlos a decimal desde el binario.
    De todas formas, hay situaciones en las que conviene trabajar con formatos decimales. Es el caso de una aplicación de contabilidad en la que hay que aplicar ciertas normas de redondeo. Al operar en binario, los errores de redondeo son diferentes a los obtenidos usando el sistema decimal.
    Como el sistema decimal utiliza los números comprendidos entre el 0 y el 9, para representarlos en binario se necesitan 4 bits. Por lo tanto, se desaprovechan 6 de las 16 posibles combinaciones que se pueden hacer con 4 bits.
    Un problema que surge cuando se opera con dígitos BCD, es que los acarreos no se generan siempre que se deban originar. Por ejemplo, 7 + 4 = 11 que, al ser un número menor que 16, se puede representar con 4 bits y no produce acarreo. Este motivo hace recomendable utilizar, en ocasiones, el código de exceso a 3 (que consiste en sumarle 3 al número en binario puro), en el cual, si el resultado real es 10 en una suma, se representará como 16(10 = 10(16, lo que supone la generación del acarreo.
    Decimal BCD Exceso a 3
    0 0000 0011
    1 0001 0100
    2 0010 0101
    3 0011 0110
    4 0100 0111
    5 0101 1000
    6 0110 1001
    7 0111 1010
    8 1000 1011
    9 1001 1100
    Se pueden dar dos situaciones:

  • Que la suma de dos cifras sea menor o igual a nueve (es decir que no se genere acarreo):
    S = x + y " 9 ! S = x + 3 + y + 3 = x + y + 6, por lo tanto hay que restarle 3 al resultado:
    Decimal BCD Exceso a 3
    'Sistemas de representación numérica'
    'Sistemas de representación numérica'
    'Sistemas de representación numérica'
    , pero el resultado debe ser 1100, por lo que debemos restar 3:
    'Sistemas de representación numérica'
    Para obtener el resultado correcto en exceso a 3.
  • Que la suma de dos cifras sea mayor que nueve (es decir que se genere acarreo):
    S = x + y > 9 ! S = x + 3 + y + 3 = x + y - 16, por producirse acarreo, por lo tanto lo que hay que hacer es quitar el acarreo y sumar 3 al resultado:
    Decimal BCD Exceso a 3
    'Sistemas de representación numérica'
    'Sistemas de representación numérica'
    'Sistemas de representación numérica'
    , pero el resultado debe ser 1 1000, por lo que debemos sumar 3:
    'Sistemas de representación numérica'
    Para obtener el resultado correcto en exceso a 3.
    Coma flotante. Racionales.
    Los sistemas de representación numérica con coma fija sólo pueden expresar números enteros.
    Escalando adecuadamente las cantidades, se puede representar la coma y así expresar números racionales. La labor de escalado la realiza el ordenador, automáticamente, de forma dinámica y óptima. Así surgen los sistemas de representación en coma flotante, cuya propiedad primordial es concatenar con cada número un factor de escala.
    La representación en coma flotante divide los n bits en dos partes:
  • Mantisa: contiene los dígitos significativos del número.
  • Exponente: indica el factor de escala, como una potencia de la base r.
    La mantisa y el exponente tienen unas longitudes respectivas de p y q bits, de forma que p + q = n.
    En coma flotante un número A viene expresado como: mantisa x baseexponente.
    En la práctica, la base a la que se eleva el exponente es la base en la que se representa la mantisa. De esta manera, el exponente indica directamente el número de dígitos o posiciones que debe correrse la coma de la mantisa (hacia la derecha si ésta es positiva y hacia la izquierda si es negativa). Por ejemplo:
    0.932 x 102 = 93.2 (2 posiciones a la derecha)
    0.932 x 10-2 = 0.00932 (2 posiciones a la izquierda)
    0.11101 x 24 = 1110.1
    0.11101 x 2-4 = 0.000011101
    La mantisa (M) y el exponente (E) se representan en alguno de los sistemas de coma fija ya vistos, de forma que la base de representación de M coincida con la base de la escala r, esto es, bM = r, por lo que r = 2k pues es el único modo de ajustar fácilmente el exponente. En efecto, en este caso un desplazamiento a la izquierda o derecha de la coma, corresponde a un decremento o incremento de E, respectivamente. Los valores de r más usados en la práctica son 2 y 16.
    La mantisa se representa como entero, con la coma a la derecha del dígito m0, o como fracción, con la coma a la izquierda del dígito más significativo. Por ejemplo:
    r = 10 879 x 10-4 (mantisa entera)
    0.879 x 10-1 (mantisa fracción)
    r = 2 110111 x 2-1 (mantisa entera)
    0.110111 x 25 (mantisa fracción)
    El exponente E se representa en base 2 y en exceso 2q-1, siendo q la longitud de E.
    La mantisa puede ser un número entero o una fracción. La representación que más se utiliza es la de que la mantisa sea una fracción con la siguiente normalización:
  • La primera cifra después de la coma no puede ser un cero:
    0.004587 x 106 se transforma en 0.4587 x 104
    0.010011 x 2101 se transforma en 0.10011 x 2100
  • En base 2, el dígito primero será siempre uno, por lo que puede no representarse quedando como bit implícito. De esta forma, la mantisa tiene un bit más de los que pueden almacenarse en memoria.
    Si el número de dígitos de la mantisa es p, la precisión de ésta será 2-(p-1), que es el peso del bit menos significativo, considerando que un bit está ocupado por el signo.
    La precisión total para una base r = 2k será: 2-(p-1) x re = 2-(p-1) x 2kxe = 2kxe+1-p.
    De aquí se deduce que la precisión no es uniforme, por depender del exponente "e".
    Si un dato se representa por el número más cercano, el dato representado x' distará como mucho, del real x, la mitad del intervalo entre dos representaciones x'1 y x'2 sucesivas, por lo que la precisión total será: 2kxe+1-p x 2-1 = 2kxe-p
    Representación de datos no numéricos en el ordenador. Códigos binarios. ASCII. EBCDIC:
    Cada carácter de una cadena de datos alfanumérica se codifica en un byte. Actualmente el tamaño del byte es de 8 bits, por lo que se pueden representar 28 = 256 caracteres diferentes, y todos los periféricos deben estar preparados para poder reconocerlos, ya que su uso principal es el de poder introducir información al ordenador y extraerla. También se emplea internamente en el ordenador cuando se trata de una información en forma de texto.
    Todos los sistemas de codificación alfanumérica han de cumplir tres reglas muy útiles:
  • Intentar que el reconocimiento de los caracteres que representan números sea muy sencillo, dada la repetición de operaciones de traducción desde/a otros métodos de representación numéricos.
  • Que los códigos para las letras mayúsculas difieran sólo en un bit con el de las letras minúsculas, para que ciertos periféricos que no tengan minúsculas interpreten los caracteres con facilidad y las comparaciones y búsquedas sean más sencillas.
  • Distinguir claramente los tipos de caracteres numéricos, alfabéticos y de control para simplificar los programas de interpretación de dichos elementos.
    Las cadenas de caracteres alfanuméricas, manejadas y almacenadas por el ordenador, pueden ser:

    • De longitud fija: Cada dato ocupa un determinado número de bytes fijo. Por lo tanto, puede conocerse rápidamente el comienzo y el final de cada dato.
    • De longitud variable: Para determinar el final de cada dato existen dos métodos:
    • Cada dato tiene en su inicio un campo en el que se indica la longitud.
    • Cada dato se separa de los colindantes mediante un símbolo específico.

    Los dos códigos más empleados para la representación de datos alfanuméricos son el ASCII (American Standard Code for Information Interchange) y el EBCDIC (Extended Binary Coded Decimal Interchange Code). Ambos sirven para representar tanto las letras mayúsculas como las minúsculas, las cifras del 0 al 9, las letras acentuadas, símbolos especiales y una treintena de caracteres especiales de control, como son el fin de fichero, de línea, etc. En ASCII los cuatro primeros bits de las cifras del 0 al 9 son 0011 y las cuatro siguientes son la representación en binario puro de la cifra, mientras que en EBCDIC los cuatro primeros bits son 1111.

    FUENTE, EL RINCON DEL VAGO

  • HISTORIA DE LA INFORMÁTICA

    La computadora o computador no es invento de alguien en especial, sino el resultado de ideas y realizaciones de muchas personas relacionadas con la electrónica, la mecánica, los materiales semiconductores, la lógica, el álgebra y la programación.

    Línea Cronológica.


    Los primeros artilugios de cálculo, se remontan a 3000 adC. Los babilonios que habitaron en la antigua Mesopotamia empleaban unas pequeñas bolas hechas de semillas o pequeñas piedras, a manera de "cuentas" agrupadas en carriles de caña.
    Posteriormente, en el año 1800 adC, un matemático babilónico inventó los algoritmos que permitieron resolver problemas de cálculo numérico. Algoritmo es un conjunto ordenado de operaciones propias de un cálculo.

    ábaco

    ábaco

    Los chinos desarrollaron el ábaco, con éste realizaban cálculos rápidos y complejos. Éste instrumento tenía un marco de madera cables horizontales con bolas agujereadas que corrían de izquierda a derecha.
    En el siglo XVII, John Napier, matemático escocés famoso por su invención de los logaritmos (unas funciones matemáticas que permiten convertir las multiplicaciones en sumas y las divisiones en restas) inventó un dispositivo de palillos con números impresos que, merced a un ingenioso y complicado mecanismo, le permitía realizar operaciones de multiplicación y división.

    Una Pascalina firmada por Pascal del año 1652.

    Una Pascalina firmada por Pascal del año 1652.

    En 1642 el físico y matemático francés Blaise Pascal inventó el primer calculador mecánico, la pascalina. A los 18 años de edad, deseando reducir el trabajo de cálculo de su padre, funcionario de impuestos, fabricó un dispositivo de 8 ruedas dentadas en el que cada una hacía avanzar un paso a la siguiente cuando completaba una vuelta. Estaban marcadas con números del 0 al 9 y había dos para los decimales, con lo que podía manejar números entre 000000,01 y 999999,99. Giraban mediante una manivela, con lo que para sumar o restar había que darle el número de vueltas correspondiente en un sentido o en otro. Treinta años después el filósofo y matemático alemán Leibnitz inventó una máquina de calcular que podía multiplicar, dividir y obtener raíces cuadradas en sistema binario. A los 26 años aprendió matemáticas de manera autodidáctica y procedió a inventar el cálculo infinitesimal, honor que comparte con Newton.
    En 1801 el francés Joseph Marie Jacquard, utilizó un mecanismo de tarjetas perforadas para controlar el dibujo formado por los hilos de las telas confeccionadas por una máquina de tejer. Estas plantillas o moldes metálicos perforados permitían programar las puntadas del tejido, logrando obtener una diversidad de tramas y figuras.
    Charles Babbage (1793-1871) creó un motor analítico que permitía sumar, sustraer, multiplicar y dividir a una velocidad de 60 sumas por minuto. En 1843 Lady Ada Augusta Lovelace sugirió la idea de que las tarjetas perforadas se adaptaran de manera que causaran que el motor de Babbage repitiera ciertas operaciones. Debido a esta sugerencia algunos consideran a Lady Lovelace la primera programadora.
    En 1879, a los 19 años de edad, Herman Hollerith fue contratado como asistente en las oficinas del censo estadounidense y desarrolló un sistema de cómputo mediante tarjetas perforadas en las que los agujeros representaban el sexo, la edad, raza, entre otros. Gracias a la máquina tabuladora de Hollerith el censo de 1890 se realizó en dos años y medio, cinco menos que el censo de 1880.
    Hollerith dejó las oficinas del censo en 1896 para fundar su propia Compañía: la Tabulating Machine Company. En 1900 había desarrollado una máquina que podía clasificar 300 tarjetas por minuto (en vez de las 80 cuando el censo), una perforadora de tarjetas y una máquina de cómputo semiautomática. En 1924 Hollerith fusionó su compañía con otras dos para formar la International Business Machines hoy mundialmente conocida como IBM.

    Calculador digital.

    A comienzos de los años 30, John Vincent Atanasoff, un estadounidense doctorado en física teórica, hijo de un ingeniero eléctrico emigrado de Bulgaria y de una maestra de escuela, se encontró con que los problemas que tenía que resolver requerían una excesiva cantidad de cálculo. Aficionado a la electrónica y conocedor de la máquina de Pascal y las teorías de Babbage, empezó a considerar la posibilidad de construir un calculador digital. Decidió que la máquina habría de operar en sistema binario, y hacer los cálculos de modo distinto a como los realizaban las calculadoras mecánicas.
    Con 650 dólares donados por el Consejo de Investigación del Estado de Iowa, contrató la cooperación de Clifford Berry, estudiante de ingeniería, y los materiales para un modelo experimental. Posteriormente recibió otras donaciones que sumaron 6460 dólares. Este primer aparato fue conocido como ABC Atanasoff- Berry-Computer
    Prácticamente al mismo tiempo que Atanasoff, el ingeniero John Mauchly, se había encontrado con los mismos problemas en cuanto a velocidad de cálculo, y estaba convencido de que habría una forma de acelerar el proceso por medios electrónicos. Al carecer de medios económicos, construyó un pequeño calculador digital y se presentó al congreso de la Asociación Americana para el Avance de la Ciencia para presentar un informe sobre el mismo. Allí, en diciembre de 1940, se encontró con Atanasoff, y el intercambio de ideas que tuvieron originó una disputa sobré la paternidad del computador digital.

    Segunda Guerra Mundial.

    En 1940 Mauchly se matriculó en unos cursos en la Escuela Moore de Ingeniería Eléctrica de la Universidad de Pensilvania, donde conoció a John Presper Eckert, un instructor de laboratorio. La escuela Moore trabajaba entonces en un proyecto conjunto con el ejército para realizar unas tablas de tiro para armas balísticas. La cantidad de cálculos necesarios era inmensa, tanto que se demoraba unos treinta días en completar una tabla mediante el empleo de una máquina de cálculo analógica. Aun así, esto era unas 50 veces más rápido de lo que tardaba un hombre con una sumadora de sobremesa.

    ENIAC.

    ENIAC

    ENIAC

    Mauchly publicó un artículo con sus ideas y las de Atanasoff, lo cual despertó el interés de Herman Goldstine, un oficial de la reserva que hacía de intermediario entre la universidad y el ejército, el cual consiguió interesar al Departamento de Ordenación en la financiación de un computador electrónico digital. El 9 de abril de 1943 se autorizó a Mauchly y Eckert iniciar el desarrollo del proyecto. Se le llamó Electronic Numerical integrator and Computer (ENIAC) y comenzó a funcionar en las instalaciones militares norteamericanas del campo Aberdeen Proving Ground en Agosto de 1947. La construcción tardó 4 años y costó $486.804,22 dólares (el equivalente actual a unos tres millones de dólares por menos poder de cómputo del que actualmente se consigue en las calculadoras de mano).
    El ENIAC tenía 19.000 tubos de vacío, 1500 relés, 7500 interruptores, cientos de miles de resistencias, condensadores e inductores y 800 kilómetros de alambres, funcionando todo a una frecuencia de reloj de 100.000 ciclos por segundo. Tenía 20 acumuladores de 10 dígitos, era capaz de sumar, restar, multiplicar y dividir, y tenía tres tablas de funciones. La entrada y la salida de datos se realizaba mediante tarjetas perforadas. Podía realizar unas 5000 sumas por segundo. Pesaba unas 30 toneladas y tenía un tamaño equivalente al de un salón de clases. Consumía 200 kilovatios de potencia eléctrica y necesitaba un equipo de aire acondicionado para disipar el gran calor que producía. En promedio, cada tres horas de uso fallaba una de las válvulas.
    Lo que caracterizaba al ENIAC como a un computador moderno no era simplemente su velocidad de cálculo, sino el que permitía realizar tareas que antes eran imposibles.

    Mark 1.

    Konrad Zuse.

    Konrad Zuse.

    Entre 1939 y 1944, Howard Aiken de la Universidad de Harvard, en colaboración con IBM, desarrolló el Mark 1, conocido como Calculadora Automática de Secuencia Controlada. Fue un computador electromecánico de 16 metros de largo y unos 2 de alto. Tenía 700.000 elementos móviles y varios centenares de kilómetros de cables. Podía realizar las cuatro operaciones básicas y trabajar con información almacenada en forma de tablas. Operaba con números de hasta 23 dígitos y podía multiplicar tres números de 8 dígitos en 1 segundo.
    El Mark 1, y las versiones que posteriormente se realizaron del mismo, tenían el mérito de asemejarse al tipo de máquina ideado por Babbage, aunque trabajaban en código decimal y no en binario.
    El avance que dieron estas máquinas electromecánicas a la informática fue rápidamente ensombrecido por el ENIAC con sus circuitos electrónicos.
    Alan Turing, matemático inglés, descifra los códigos secretos Enigma usados por la Alemania nazi para sus comunicaciones. Turing fue un pionero en el desarrollo de la lógica de los computadores modernos, y uno de los primeros en tratar el tema de la inteligencia artificial con máquinas.
    Norbert Wiener, trabajó con la defensa antiaérea estadounidense y estudió la base matemática de la comunicación de la información y del control de un sistema para derribar aviones. En 1948 publicó sus resultados en un libro que tituló CYBERNETICS (Cibernética), palabra que provenía del griego "piloto", y que se usó ampliamente para indicar automatización de procesos.

    Computador Z3.

    El computador Z3, fue la primera máquina programable y completamente automática, características usadas para definir a un computador. Estaba construido con 2200 relés, tenía una frecuencia de reloj de ~5 Hz, y una longitud de palabra de 22 bits. Los cálculos eran realizados con aritmética en coma flotante puramente binaria. La máquina fue completada en 1941 (el 12 de mayo de ese mismo año fue presentada a una audiencia de científicos en Berlín). El Z3 original fue destruido en 1944 durante un bombardeo aliado de Berlín. Una réplica completamente funcional fue construida durante los años 60 por la compañía del creador Zuse KG y está en exposición permanente en el Deutsches Museum. En 1998 se demostró que el Z3 es Turing completo.

    Posguerra.

    Cronología.

    1944
    Se construyo el primer ordenador al cual se le llamo Eniac. Era un ordenador electronico con el cual el proceso de datos, almacenamiento y control de operaciones se realizaban con dispositivos electronicos,se utilizaban tubos de vacio, que hacen posible el salto del calculo electrico al electronico.
    1946
    John Von Neumann propuso una versión modificada del ENIAC; el EDVAC, que se construyó en 1952. Esta máquina presentaba dos importantes diferencias respecto al ENIAC: En primer lugar empleaba aritmética binaria, lo que simplificaba enormemente los circuitos electrónicos de cálculo. En segundo lugar, permitía trabajar con un programa almacenado. El ENIAC se programaba enchufando centenares de clavijas y activando un pequeño número de interruptores. Cuando había que resolver un problema distinto, era necesario cambiar todas las conexiones, proceso que llevaba muchas horas.
    Von Neumann propuso cablear una serie de instrucciones y hacer que éstas se ejecutasen bajo un control central. Además propuso que los códigos de operación que habían de controlar las operaciones se almacenasen de modo similar a los datos en forma binaria. De este modo el EDVAC no necesitaba una modificación del cableado para cada nuevo programa, pudiendo procesar instrucciones tan deprisa como los datos. Además, el programa podía modificarse a sí mismo, ya que las instrucciones almacenadas, como datos, podían ser manipuladas aritméticamente.
    1951
    Eckert y Mauchly entregan a la Oficina del Censo su primer computador: el UNIVAC I. Posteriormente aparecería el UNIVAC-II con memoria de núcleos magnéticos, lo que le haría superior a su antecesor, pero, por diversos problemas, esta máquina no vio la luz hasta 1957, fecha en la que había perdido su liderazgo en el mercado frente al 705 de IBM.
    1952
    Shannon desarrolla el primer raton electrico capaz de salir de un laberinto, primera red neural.
    1953
    IBM fabricó su primer computadora gran escala, el IBM 650.
    1956
    Darthmouth da una conferencia en donde nace la inteligencia artificial.
    1958
    Comienza la segunda generación de computadoras, caracterizados por usar circuitos transistorizados en vez de válvulas al vacío. Un transistor y una válvula cumplen funciones equivalentes, con lo que cada válvula puede ser reemplazada por un transistor. Un transistor puede tener el tamaño de una lenteja mientras que un tubo de vacío tiene un tamaño mayor que el de un cartucho de escopeta de caza. Mientras que las tensiones de alimentación de los tubos estaban alrededor de los 300 voltios, las de los transistores vienen a ser de 10 voltios, con lo que los demás elementos de circuito también pueden ser de menor tamaño, al tener que disipar y soportar tensiones mucho menores. El transistor es un elemento constituido fundamentalmente por silicio o germanio. Su vida media es prácticamente ilimitada y en cualquier caso muy superior a la del tubo de vacío.
    1962
    El mundo estuvo al borde de una guerra nuclear entre la Unión Soviética y los Estados Unidos, en lo que se denominó “la Crisis de los misiles de Cuba”. A causa de esto, una de las preocupaciones de las ejército de los Estados Unidos era conseguir una manera de que las comunicaciones fuesen más seguras en caso de un eventual ataque militar con armas nucleares. Como solución entró en consideración solamente el proceso de datos en forma electrónica. Los mismos datos se deberían disponer en diferentes computadores alejados unos de otros. Todos los computadores entrelazados deberían poder enviarse en un lapso corto de tiempo el estado actual de los datos nuevos o modificados, y cada uno debería poder comunicarse de varias maneras con cada otro. Dicha red también debería funcionar si un computador individual o cierta línea fuera destruida por un ataque del enemigo.
    Joseph Carl Robnett Licklider escribió un ensayo sobre el concepto de Red Intergaláctica, donde todo el mundo estaba interconectado para acceder a programas y datos desde cualquier lugar del planeta. En Octubre de ese año, Lickider es el primer director de ARPA (Advanced Research Projects Agency), o Agencia de Proyectos de Investigación Avanzada, una organización científica creada en 1958 como contestación a la puesta en orbita por parte de los rusos del primer satélite conocido como Sputnik.
    1963

    Caracteres ASCII imprimibles, del 32 al 126.

    Caracteres ASCII imprimibles, del 32 al 126.

    Un comité Industria-Gobierno desarrolla el código de caracteres ASCII, (se pronuncia asqui), el primer estándar universal para intercambio de información (American Standard Code for Information Interchange), lo cual permitió que máquinas de todo tipo y marca pudiesen intercambiar datos.
    1964
    La aparición del IBM 360 marca el comienzo de la tercera generación. Las placas de circuito impreso con múltiples componentes pasan a ser reemplazadas por los circuitos integrados. Estos elementos son unas plaquitas de silicio llamadas chips, sobre cuya superficie se depositan por medios especiales unas impurezas que hacen las funciones de diversos componentes electrónicos. Esto representa un gran avance en cuanto a velocidad y, en especial, en cuanto a reducción de tamaño. En un chip de silicio no mayor que un centímetro cuadrado caben 64.000 bits de información. En núcleos de ferrita esa capacidad de memoria puede requerir cerca de un litro en volumen.
    Investigadores del Instituto Tecnológico de Massachusetts (MIT) y del Laboratorio Nacional de Física de la Gran Bretaña, presentaron simultáneamente soluciones a lo propuesto por las Fuerzas Armadas norteamericanas. Y ese mismo año la Fuerza Aérea le asignó un contrato a la Corporación RAND para la llamada "red descentralizada". Ese proyecto fracasó después de muchos intentos y nunca fue realizado, pero la idea de una red que no dependiese de un solo punto central y con la transferencia de datos por paquete se quedó anclada en la cabeza de muchas personas.
    Paul Baran, quien por ese entonces trabajaba con Rand Corporation, fue uno de los primeros en publicar en Data Communications Networks sus conclusiones en forma casi simultánea con la publicación de la tesis de Kleinrock sobre teoría de líneas de espera. Diseñó una red de comunicaciones que utilizaba computadores y no tenía núcleo ni gobierno central. Además, asumía que todas las uniones que conectaban las redes eran altamente desconfiables.
    El sistema de Baran trabajaba con un esquema que partía los mensajes en pequeños pedazos y los metía en sobres electrónicos, llamados "paquetes", cada uno con la dirección del remitente y del destinatario. Los paquetes se lanzaban al seno de una red de computadores interconectados, donde rebotaban de uno a otro hasta llegar a su punto de destino, en el cual se juntaban nuevamente para recomponer el mensaje total. Si alguno de los paquetes se perdía o se alteraba (y se suponía que algunos se habrían de dislocar), no era problema, pues se volvían a enviar.
    1966
    La organización científica ARPA se decidió a conectar sus propios computadores a la red propuesta por Baran, tomando nuevamente la idea de la red descentralizada. A finales de 1969 ya estaban conectados a la red ARPA los primeros cuatro computadores, y tres años más tarde ya eran 40. En aquellos tiempos era, sin embargo, la red propia de ARPA. En los años siguientes la red fue llamada ARPANET (red ARPA), y su uso era netamente militar.

    Ken Thompson y Dennis Ritchie

    Ken Thompson y Dennis Ritchie

    Un grupo de investigadores de los Laboratorios Bell (hoy AT&T) desarrolló un sistema operativo experimental llamado Multics (Información multiplexada y Sistema de Computación) para usar con un computador General Electric. Los laboratorios Bell abandonaron el proyecto, pero en 1969, Ken Thompson, uno de los investigadores del Multics, diseñó un juego para dicho computador, que simulaba el sistema solar y una nave espacial. Con la ayuda de Dennis Ritchie, Thompson volvió a escribirlo, ahora para un computador DEC (Digital Equipment Corporation), aprovechando que, junto con Ritchie había creado también un sistema operativo multitarea, con sistema de archivos, intérprete de órdenes y algunas utilidades para el computador DEC. Se le llamó UNICS (Información Uniplexada y Sistema de Computación) y podía soportar dos usuarios simultáneamente. En 1970 se renombró Unix. Su licencia de uso era muy costosa, lo cual lo ponía fuera del alcance de muchas personas. Esto motivaría luego la creación del Proyecto GNU para el desarrollo de software libre.
    1968
    Robert Noyce y Gordon Moore fundan la corporacion intel(intel corporation).
    1969
    La organización ARPA junto con la compañía Rand Corporation desarrolló una red sin nodos centrales basada en conmutación de paquetes tal y como había propuesto Paul Baran. La información se dividía en paquetes y cada paquete contenía la dirección de origen, la de destino, el número de secuencia y una cierta información. Los paquetes al llegar al destino se ordenaban según el número de secuencia y se juntaban para dar lugar a la información. Al viajar paquetes por la red, era más difícil perder datos ya que, si un paquete concreto no llegaba al destino o llegaba defectuoso, el computador que debía recibir la información sólo tenía que solicitar al computador emisor el paquete que le faltaba. El protocolo de comunicaciones se llamó NCP. Esta red también incluyó un gran nivel de redundancia (repetición) para hacerla más confiable.
    ARPANET conectó los ordenadores centrales vía ordenadores de pasarela pequeños, o "routers", conocidos como Interface Message Processors (IMPs). El 1 de septiembre de 1969 el primer IMP llegó a UCLA. Un mes después el segundo fue instalado en Stanford. Después en UC Santa Barbara y después en la Universidad de Utah.
    1971


    Correo electrónico y FTP

    Se creó el primer programa para enviar correo electrónico. Fue Ray Tomlinson, del BBN, y combinaba un programa interno de correo electrónico y un programa de transferencia de ficheros. También en este año un grupo de investigadores del MIT presentaron la propuesta del primer “Protocolo para la transmisión de archivos en Internet”. Era un protocolo muy sencillo basado en el sistema de correo electrónico pero sentó las bases para el futuro protocolo de transmisión de ficheros (FTP).
    Las instituciones académicas se interesaron por estas posibilidades de conexión. La NSF dio acceso a sus seis centros de supercomputación a otras universidades a través de la ARPANET. A partir de aquí se fueron conectando otras redes, evitando la existencia de centros, para preservar la flexibilidad y la escalabilidad.
    1972
    Aparecen los disquetes de 5.25 pulgadas.
    1973
    ARPA cambia su nombre por DARPA, inicia un programa para investigar técnicas y tecnologías para interconectar redes de tipos diferentes y se lanzan dos nuevas redes: ALOHAnet, conectando siete computadores en cuatro islas, y SATNET, una red conectada vía satélite, enlazando dos naciones: Noruega e Inglaterra.
    Lawrence Roberts se propone interconectar a DARPA con otras redes, PRNET y SATNET, con diferentes interfaces, tamaños de paquetes, rotulados, convenciones y velocidades de transmisión.
    1974
    Vinton Cerf, conocido como el padre de Internet, junto con Bob Kahn, publican “Protocolo para Intercomunicación de Redes por paquetes”, donde especifican en detalle el diseño de un nuevo protocolo, el Protocolo de control de transmisión (TCP, Transmission Control Protocol), que se convirtió en el estándar aceptado. La implementación de TCP permitió a las diversas redes conectarse en una verdadera red de redes alrededor del mundo.
    Se crea el sistema Ethernet para enlazar a través de un cable único a las computadoras de una red local (LAN).
    1975
    En enero la revista Popular Electronics hace el lanzamiento del Altair 8800, el primer computador personal reconocible como tal. Tenía una CPU Intel de 8 bits y 256 bytes de memoria RAM. El código de máquina se introducía por medio de interruptores montados en el frente del equipo, y unos diodos luminosos servían para leer la salida de datos en forma binaria. Costaba 400 dólares, y el monitor y el teclado había que comprarlos por separado. Se funda Microsoft al hacer un interpretador BASIC para esta máquina.
    1976
    Se funda Apple. Steve Wozniak desarrolla el Apple I para uso personal, a Steve Jobs se le ocurre comercializarlo.
    1977

    El Apple II

    El Apple II

    Se hace popular el ordenador Apple II, desarrollado por Steve Jobs y Steve Wozniak en un garaje, y al año siguiente se ofrece la primera versión del procesador de texto WordStar.
    1979

    Hoja de cálculo

    Hoja de cálculo

    Dan Bricklin crea la primera hoja de cálculo, más tarde denominada VisiCalc, la cual dio origen a Multiplan de Microsoft, Lotus 1-2-3 (en 1982), Quattro Pro, y Excel.
    ARPA crea la primera comisión de control de la configuración de Internet y en 1981 se termina de definir el protocolo TCP/IP (Transfer Control Protocol / Internet Protocol) y ARPANET lo adopta como estándar en 1982, sustituyendo a NCP. Son las primeras referencias a Internet, como “una serie de redes conectadas entre sí, específicamente aquellas que utilizan el protocolo TCP/IP”. Internet es la abreviatura de Interconnected Networks, es decir, Redes interconectadas, o red de redes.
    1980
    En octubre, la IBM comenzó a buscar un sistema operativo para su nueva computadora personal que iba a lanzar al mercado, cosa de la cual se enteraron Bill Gates y su amigo Paul Allen, autores del lenguaje de programación Microsoft BASIC, basado en el ya existente lenguaje BASIC. Ellos compraron los derechos de QDOS (Quick and Dirty Operating System), un sistema operativo desarrollado por Tim Paterson y basado en CP/M, un sistema escrito por Gary Kildall, y lo negociaron con IBM como Microsoft DOS.
    1981

    IBM PC 5150

    IBM PC 5150

    El 12 de Agosto, IBM presenta el primer computador personal, el IBM PC reconocido popularmente como tal, con sistema operativo PC DOS y procesador Intel 8088. IBM y Microsoft son coautores del sistema operativo PC-DOS/MS-DOS, ya que IBM ayudó a Microsoft a pulir los muchos errores que el MS DOS tenía originalmente.
    Sony crea disquetes de 3.5 pulgadas.
    1983

    Proyecto GNU

    Proyecto GNU

    IBM presenta un PC con un procesador 8088 de 4,77 Mhz de velocidad y un disco duro de 10 MB, Microsoft ofrece la versión 1.0 del procesador de palabras Word para DOS y ARPANET se separa de la red militar que la originó, de modo que ya sin fines militares se puede considerar esta fecha como el nacimiento de Internet. Es el momento en que el primer nodo militar se desliga, dejando abierto el paso para todas las empresas, universidades y demás instituciones que ya por esa época poblaban la red.
    Richard Stallman, quien por ese entonces trabajaba en el Instituto Tecnológico de Massachusetts (MIT), decidió dedicarse al proyecto de software libre que denominó GNU.
    1984
    IBM presenta un PC con procesador Intel 286, bus de expansión de 16 bits y 6 Mhz de velocidad. Tenía 512 KB de memoria RAM, un disco duro de 20 Mb y un monitor monocromático. Precio en ese momento: 5.795 dólares.
    Apple Computer presenta su Macintosh 128K con el sistema operativo Mac OS, el cual introduce la interfaz gráfica ideada por Xerox.
    Las compañías Philips y Sony crean los CD-Rom para los ordenadores.
    1985
    Microsoft presenta el sistema operativo Windows 1.0, demostrando que los computadores compatibles IBM podían manejar también el entorno gráfico, usual en los computadores Mac de Apple.
    1986
    Compaq lanza el primer computador basado en el procesador Intel 80386, adelantándose a IBM.
    1989
    Creative Labs presenta la tarjeta de sonido Sound Blaster
    1990

    WWW

    WWW

    Tim Berners-Lee ideó el hipertexto para crear el World Wide Web (www) una nueva manera de interactuar con Internet. Su sistema hizo mucho más fácil compartir y encontrar datos en Internet. Berners-Lee también creó las bases del protocolo de transmisión HTTP, el lenguaje de documentos HTML y el concepto de los URL.
    1991

    Linux

    Linux

    Linus Torvalds, un estudiante de Ciencias de la Computación de la Universidad de Helsinki (Finlandia), al ver que no era posible extender las funciones del Minix, decidió escribir su propio sistema operativo compatible con Unix, y lo llamó Linux (el parecido con su nombre personal es mera coincidencia).
    Miles de personas que querían correr Unix en sus PCs vieron en Linux su única alternativa, debido a que a Minix le faltaban demasiadas cosas. El proyecto GNU que Stallman había iniciado hacía ya casi diez años había producido para este entonces un sistema casi completo, a excepción del kernel, que es el programa que controla el hardware de la máquina, el cual desarrolló Torvalds y agregó al GNU para formar Linux.
    A mediados de los años noventa Linux se había convertido ya en el Unix más popular entre la gente que buscaba alternativas al sistema Windows de Microsoft.
    1992
    Es indroducida Arquitectura Alpha diseñada por DEC e bajo el nombre AXP, como reemplazo a la serie VAX que comúnmente utilizaba el sistema operativo VMS y que luego originaría el openVMS. Cuenta con un set de instrucciones RISC de 64 bits especialmente orientada a cálculo de punto flotante. No se ha hecho muy popular pero si es reconocida su tecnología en el entorno corporativo.
    1993
    Un grupo de investigadores descubrieron que un rasgo de la mecánica cuántica, llamado entrelazamiento, podía utilizarse para superar las limitaciones de la teoría del cuanto (quantum) aplicada a la construcción de computadoras cuánticas y a la teleportación (teleportation).
    1995
    Lanzamiento de Windows 95. Desde entonces Microsoft ha sacado al mercado varias versiones tales como Windows 98, 2000 (Server y Professional), NT Workstation, NT SMB (Small Business Server), ME, XP (Professional y Home Edition) y Vista.
    1996
    Se creó Internet2, más veloz que la Internet original, lo cual permite el manejo de archivos muy grandes y aplicaciones en videoconferencia, telemedicina y muchas otras cosas imprácticas por Internet 1.
    2000
    Es presentado el prototipo de computador cuántico construido por el equipo de investigadores de IBM que constaba de 5 átomos, se programaba mediante pulsos de radiofrecuencia y su estado podía ser leído mediante instrumentos de resonancia magnética, similares a los empleados en hospitales y laboratorios de química. En este computador, cada uno de los átomos de flúor que lo componen actúa como un qubit; un qubit e

    CONVERSIÓN ENTRE SISTEMAS.

    SISTEMAS NUMÉRICOS
    Digito: Es un signo que representa una cantidad contable. Dependiendo del sistema de numeración, serán los diferentes signos que se tenga para representar cualquier cantidad.
    Numero: Es la representación de una cantidad contable por medio de uno o más dígitos.
    Sistema de Numeración: Es un conjunto de dígitos que sirven para representar una cantidad contable.
    El nombre del sistema de numeración que se trate serán los diferentes dígitos posibles para tal representación.
    Así también los sistemas de numeración se les llama base, de tal manera que el sistema de numeración binario, también se le llama base 2.
    Los sistemas de numeración más utilizados en electrónica son:

    • Binario o Base 2 (0, 1)

    • Octal o Base 8 (0, 1, 2, 3, 4, 5, 6, 7)
    • Hexadecimal o Base 16 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)
    • Decimal o Base 10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

    Absoluto
    Valores de un digito
    Relativo
    Valor Absoluto de un Digito: Es aquel representa un digito sin importar donde se encuentre así:

    5 2 7 6 10 BASE 10

    5 Cinco 2 Dos 7 Siete 6 Seis

    Valor Relativo de un Digito: Es aquel representa el mismo digito, dependiendo de la posición que se encuentre con respecto a la división de los enteros y las fracciones.

    53 22 71 60 = Cinco mil, doscientos, Setenta y Seis

    5 x 103 + 2 x 102 + 7 x 101 + 6 x 100

    5 x 1000 + 2 x 100 + 7 x 10 + 6 x 1

    Conversiones Entre los Sistemas de Numeración
    Conversión de decimal a cualquier otro sistema de numeración:
    Para convertir de decimal a cualquier otro sistema se hará por división sucesiva, es decir que si queremos convertir a binario un numero de decimal, bastara dividir entre dos la cantidad y el resultado volverlo a dividir hasta que el resultado sea menor a 2, siempre con números enteros, de tal manera si él numero decimal es non o impar sobrara siempre uno y si es par sobrara cero y estos residuos se pondrán en orden de la ultima división a la primera y se da dicho numero binario.

    BINARIO O BASE 2
    Ejemplo de la conversión de decimal a binario:
    7004 10 1101101011100 2 2003 10 11111010011 2
    7004 0 2003 1
    3502 0 1001 1
    1751 1 500 0
    875 1 250 0
    437 1 125 1
    218 0 62 0
    109 1 31 1
    54 0 15 1
    27 1 7 1
    13 1 3 1
    6 0 1 1
    3 1
    1 1
    7699 10 1111000010011 2 2531 10 1001111000112
    7699 1 2531 1

    • 1 1265 1

    1924 0 623 0
    962 0 316 0
    481 1 158 0
    240 0 79 1
    120 0 39 1
    60 0 19 1
    30 0 9 1
    15 1 4 0
    7 1 2 0
    3 1 1 1
    1 1
    Para convertir de cualquier sistema de numeración a decimal se hará por el peso de los dígitos, convirtiéndose estos a decimal y sumando el resultado.

    DECIMAL

    BINARIO

    BASE 4

    OCTAL

    HEXADECIMAL

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    2

    10

    2

    2

    2

    3

    11

    3

    3

    3

    4

    100

    10

    4

    4

    5

    101

    11

    5

    5

    6

    110

    12

    6

    6

    7

    111

    13

    7

    7

    8

    1000

    20

    10

    8

    9

    1001

    21

    11

    9

    10

    1010

    22

    12

    A

    11

    1011

    23

    13

    B

    12

    1100

    30

    14

    C

    13

    1101

    31

    15

    D

    14

    1110

    32

    16

    E

    15

    1111

    33

    17

    F

    16

    10000

    40

    20

    10

    20

    1

    21

    2

    22

    4

    23

    8

    24

    16

    25

    32

    26

    64

    27

    128

    28

    256

    29

    512

    210

    1024

    211

    2048

    212

    4096

    213

    8192

    214

    16, 384

    215

    32, 768

    216

    65, 573

    217

    131, 072

    218

    262, 144

    219

    524, 288

    220

    1' 048, 576

    80

    1

    81

    8

    82

    64

    83

    512

    84

    4, 096

    85

    32, 768

    86

    262, 144

    87

    2' 097, 152

    160

    1

    161

    16

    162

    256

    163

    4, 096

    164

    65, 536

    165

    1' 048, 576

    En matemáticas, varios sistemas de notación que se han usado o se usan para representar cantidades abstractas denominadas números. Un sistema numérico está definido por la base que utiliza. La base de un sistema numérico es el número de símbolos diferentes o guarismos, necesarios para representar un número cualquiera de los infinitos posibles en el sistema.
    A lo largo de la historia se han utilizado multitud de sistemas numéricos diferentes, pero existen 4 de sistemas numéricos de los mas utilizados en la actualidad y son:

    • Binario o Base 2 (2 Dígitos, 0 - 1)

    • Octal o Base 8 (8 Dígitos, 0 - 7)
    • Decimal o Base 10 (10 Dígitos, 0 - 9)
    • Hexadecimal o Base 16 (16 Dígitos, 0 - f)

    Valores posiciónales.
    La posición de una cifra indica el valor de dicha cifra en función de los valores exponenciales de la base. En el sistema decimal, la cantidad representada por uno de los diez dígitos -0, 1, 2, 3, 4, 5, 6, 7, 8 y 9- depende de la posición del número completo.
    Para convertir un número n dado en base 10 a un número en base b, se divide (en el sistema decimal) n por b, el cociente se divide de nuevo por b, y así sucesivamente hasta obtener un cociente cero.
    Sistema Numérico Binario o Base 2
    El sistema de numeración más simple que usa la notación posicional es el sistema de numeración binario. Este sistema, como su nombre lo indica, usa solamente dos dígitos (0,1).

    Números decimales del 0 al 10 y sus equivalentes en binario

    Decimal

    Binario

    0

    0

    1

    1

    2

    10

    3

    11

    4

    100

    5

    101

    6

    110

    7

    111

    8

    1000

    9

    1001

    10

    1010

    Sistema Numérico Octal o Base 8
    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
    Los números octales pueden construirse a partir de números binarios agrupando cada tres dígitos consecutivos de estos últimos (de derecha a izquierda) y obteniendo su valor decimal.
    Por ejemplo, el número binario para 74 (en decimal) es 1001010 (en binario), lo agruparíamos como 1 001 010. De modo que 74 en octal es 112.
    Es posible que la numeración octal se usara en el pasado en lugar de la decimal, por ejemplo, para contar los espacios interdigitales o los dedos distintos de los pulgares. Esto explicaría porqué en latín nueve (novem) se parece tanto a nuevo (novus). Podría tener el significado de número nuevo.
    Sistema Numérico Decimal o Base 10
    El sistema de numeración decimal es el más usado, tiene como base el número 10, o sea que posee 10 dígitos (o símbolos) diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). El sistema de numeración decimal fue desarrollado por los hindúes, posteriormente lo introducen los árabes en Europa, donde recibe el nombre de sistema de numeración decimal o arábigo. Si se aplica la notación posicional al sistema de numeración decimal entonces el dígito número n tiene el valor: (10n)* A
    Este valor es positivo y es mayor o igual que uno si el dígito se localiza a la izquierda del punto decimal y depende del dígito A, en cambio el valor es menor que uno si el dígito se localiza a la derecha del punto decimal. Por ejemplo, el número 3489.125 expresado en la notación posicional es:

    primero 9 * (100) = 9 --------- primero 1*(10-1) = 0.1
    segundo 8 * (101) = 80 -------- segundo 2*(10-2) = 0.02
    tercero 4 * (102) = 400 -------- tercero 5*(10-3) = 0.005
    cuarto 3 * (103) = 3000
    Notación Posicional del Sistema

    (10-6) = 0.000001
    (10-5) = 0.00001
    (10-4) = 0.0001
    (10-3) = 0.001
    (10-2) = 0.01
    (10-1) = 0.1
    (100) = 1
    (101) = 10
    (102) = 100
    (103) = 1000
    (104) = 10000
    (105) = 100000
    (106) = 10000000

    Sistema Numérico Hexadecimal o Base 16
    El sistema de numeración hexadecimal, o sea de base 16, (es común abreviar hexadecimal como hex aunque hex significa base seis y no base dieciséis). El sistema hexadecimal es compacto y nos proporciona un mecanismo sencillo de conversión hacia el formato binario, debido a esto, 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 dieciséis 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 símbolos para estos dígitos, utilizamos las letras A a la F.

    Para convertir un número hexadecimal en binario, simplemente sustituya los correspondientes cuatro bits para cada dígito hexadecimal, por ejemplo, para convertir 0ABCDh en un valor binario:
    0 A B C D (Hexadecimal)
    0000 1010 1011 1100 1101 (Binario)

    FUENTE :http://html.rincondelvago.com/sistemas-numericos.html

    SISTEMAS DE NUMERACION INFORMATICA.

    Sistemas
    de Numeración.

    Existen básicamente 3 tipos de sistemas de numeración.

    • Sistema Binario.

    El sistema binario se compone de 2 dígitos como su
    nombre lo indica el 0 y 1.

    • Sistema Octal

    El sistema octal se compone de 7 dígitos el
    0,1,2,3,4,5,6,7.

    • Sistema Hexadecimal.

    El sistema hexadecimal se compone de 15 dígitos el
    0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

    Conversión Decimal - Binario
    Este sistema lo emplean las computadoras para trabajar
    internamente.

    Para transformar un número decimal al sistema binario,
    se realizan divisiones enteras sucesivas entre 2, hasta que el resultado sea cero.

    Por ejemplo.
    Pasar a binario él número 67.
    33
    16
    8
    4
    2
    1
    0 Aquí
    se esta realizando la división entera.

    2 | 67 2 |
    33 2 | 16 2 |
    8 2 | 4 2 |
    2 2| 1 Es
    decir lo que queda de residuo se deja.

    1
    1
    0
    0
    0
    0
    1

    El resultado se lee empezando con el ultimo
    residuo.

    Entonces 67 =1000011 2 Hay que recordar que
    el número es decimal, es decir 67= 6710

    Otros ejemplos serian:
    125 = 11111012
    255 = 111111112
    512 = 10000000002
    264 = 1000010002
    214 = 110101102
    El
    subíndice es un 2 para indicar que es un
    número binario.l

    Conversión Decimal - Octal
    Para transformar un número decimal al sistema octal, se
    realizan divisiones enteras sucesivas entre 8, hasta que el resultado sea cero.

    Por ejemplo
    Pasar a octal el número 63.
    7
    0
    Se realiza únicamente la división entera

    8 |
    63 8 | 7
    El resultado se lee tomando el último residuo, siguiendo con el anterior.

    7
    7
    Entonces 63 10 =77 8

    Otros ejemplos serian:
    425 = 6518 El
    subíndice es un 8 para indicar que es un
    número octal.

    278 = 4268
    1512 = 27508
    2001=37218
    Conversión
    Decimal – Hexadecimal

    Para transformar un número decimal al sistema
    hexadecimal, se realizan divisiones enteras sucesivas entre 16 hasta que el resultado sea
    cero.

    Este sistema lo emplean las computadoras para trabajar
    internamente.

    Por ejemplo
    Pasar a hexadecimal el número 10.
    0
    Obtenemos Cero por ser la división entera

    16 | 10
    10
    10 en Hexadecimal es resulta ser A.
    Entonces 10 10 =A 16

    Otros ejemplos serian:
    1525 = 5F516
    El subíndice es un 16 para
    indicar que es un número hexadecimal.

    3984 = F9016
    7569 = 1D9116
    Conversión
    Binario – Hexadecimal

    Cuando se tiene un número en binario y se desea pasarlo
    al sistema hexadecimal se forman parejas de 4 en 4 empezando de derecha a izquierda.

    Por ejemplo.
    Pasar el número 1110111012= Hexadecimal
    Solución
    Empezamos tomando parejas de 4 en 4 de derecha a
    izquierda

    Como el número esta en binario la base es 2.
    Tomamos sus potencias en orden ascendente empezando
    desde el cero, de derecha a izquierda

    Como se muestra a continuación.
    1 , 1
    1 0 1 , 1 1
    0 12 = Hexadecimal

    20
    23 22 21 20 23 22 21 20

    Y sumamos. (Recordar que 13 en
    hexadecimal es D)

    1, 8 + 4 +
    0 + 1, 8 + 4 + 0 + 1 = 1 D D 16

    Conversión
    Binario – Decimal

    Cuando se tiene un número en binario y se desea pasarlo
    al sistema decimal se toma cada uno de los dígitos empezando por la ultima posición
    hasta la primera.

    Y multiplicamos cada dígito por la respectiva posición
    de la potencia de 2.

    Por ejemplo.
    Pasar el número 1110111012= Decimal
    Solución
    Como el número esta en binario la base es 2.
    Tomamos sus potencias en orden ascendente empezando
    desde el cero, de derecha a izquierda

    Como se muestra a continuación
    1 1
    1, 0 1
    1, 1
    0 12 =
    Decimal

    28 27 26 25 24 23 22 21 20
    Posteriormente tomamos cada uno de los dígitos y lo
    multiplicamos por el 2 ala potencia respectiva.

    Y sumamos.
    20 x 1 = 1 x 1 = 1
    21 x 0 = 2 x 0 = 0
    22 x 1 = 4 x 1 = 4
    23 x 1 = 8 x 1 = 8
    24 x 1 = 16 x 1 = 16
    25 x 0 = 32 x 1 = 0
    26 x 1 = 64 x 1 = 64
    28 x 1 = 128 x 1 = 128
    28 x 1 = 256 x 1 = 256
    Y sumando obtenemos 477
    Entonces 1110111012=47710
    Otros ejemplos serian:
    111110 2 =
    62

    101010102
    = 170

    100000012 =
    65

    Conversión
    Binario – Octal

    Cuando se tiene un número en binario y se desea pasarlo
    al sistema octal se forman parejas de 3 en 3 empezando de derecha a izquierda.

    Por ejemplo.
    Pasar el número 1110111012= Octal
    Solución
    Empezamos tomando parejas de 3 en 3 de derecha a
    izquierda

    Como el número esta en binario la base es 2.
    Tomamos sus potencias en orden ascendente empezando
    desde el cero, de derecha a izquierda

    Como se muestra a continuación.
    Y sumamos.
    1 1 1 , 0 1 1 , 1 0 12 = Octal
    22 21 20 22
    21 20 22 21 20

    4 + 2 +1 2 + 1 4 + 1 =7 3 5 8
    Esto es de para la primer pareja
    20 x 1 = 1 x 1 = 1
    21 x 0 = 2 x 0 = 0
    Si sumamos obtenemos 5

    22 x 1 = 4 x 1 = 4
    Para la segunda pareja
    20 x 1 = 1 x 1 = 1
    21 x 1 = 2 x 1 = 2 Si
    sumamos obtenemos 3

    22 x 0 = 4 x 0 = 0
    Y la tercer pareja
    20 x 1 = 1 x 1 = 1
    21 x 1 = 2 x 1 = 2 Si
    sumamos obtenemos 7

    22 x 1 = 4 x 1 = 4
    Y se leen en orden inverso
    Suma
    en binario

    Para sumar 2 números en binario se debe de recordar que
    1 + 1 = 10

    Ejemplo
    Sumar 1001 + 101 ( En decimal seria 9 + 5 = 14 )
    Solución
    Se colocan las mismas posiciones para ambos números.

    1 0 0 1 De
    hecho estamos sumando ( 9 + 5 )

    +
    0 1 0 1
    Hay que recordar que 1 +1 =10


    1 1 1 0 Se
    escribe el cero y se lleva 1 ( Y el
    resultado es el 14 decimal que esperábamos )

    Multiplicación
    en binario

    Para multiplicar 2 números en binario se realiza la
    operación de la manera normal

    Ejemplo
    Multiplicar 111 x 101 (Esto seria 7 * 5 = 35 )
    Solución
    Se colocan las mismas posiciones para ambos números.

    1 1 1


    x 1
    0 1 Nota.-
    Hay que recordar que 1 x 1 =1 ,
    1 x 0
    = 0 x 1 = 0 y 1
    +1 =10 , 1 + 0 = 0 +1 = 0


    1 1 1 Y se realiza de la
    manera tradicional


    0 0 0 Se
    suman los 3 renglones en binario


    1 1 1


    1 0 0 0 1 1
    (
    Que es el 35 decimal que esperábamos)

    FUENTE .GRUPO3 ;)

    LA MÁQUINA.

    La unidad central de procesamiento, CPU, o, simplemente, el procesador. Es el componente en una computadora digital que interpreta las instrucciones y procesa los datos contenidos en los programas de computadora. Los CPU proporcionan la característica fundamental de la computadora digital, la programabilidad, y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores.
    La expresión "unidad central de proceso" es, en términos generales, una descripción de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de computadora. Esta amplia definición puede fácilmente ser aplicada a muchos de los primeros ordenadores que existieron mucho antes que el término "CPU" estuviera en amplio uso. Sin embargo, el término sí mismo y su acrónimo han estado en uso en la industria de la informática por lo menos desde el principio de los años 1960 . La forma, el diseño y la implementación de las CPU ha cambiado drásticamente desde los primeros ejemplos, pero su operación fundamental ha permanecido bastante similar.
    Las primeras CPU fueron diseñadas a la medida como parte de una computadora más grande, generalmente una computadora única en su especie. Sin embargo, este costoso método de diseñar los CPU a la medida, para una aplicación particular, ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o muchos propósitos.

    Historia .

    El EDVAC, una de los primeras computadores de programas almacenados electrónicamente.

    El EDVAC, una de los primeras computadores de programas almacenados electrónicamente.

    Artículo principal: Historia del hardware

    Antes del advenimiento de las máquinas parecidas a los CPU de hoy, computadores como el ENIAC tenían que ser físicamente recableados para poder realizar tareas diferentes. Estas máquinas eran a menudo referidas como "computadores de programa fijo", puesto que tenían que ser reconfiguradas físicamente para correr un programa diferente. Puesto que el término "CPU" es generalmente definido como un dispositivo de ejecución de software (programa de computadora), los primeros dispositivos que podían ser llamados correctamente como CPU vinieron con el advenimiento de la computadora con programa almacenado.
    La idea de una computadora con programa almacenado ya estaba presente durante el diseño del ENIAC, pero fue omitida inicialmente para que la máquina pudiera ser terminada más pronto. El 30 de junio de 1945, antes de que el ENIAC incluso fuera terminado, el matemático John von Neumann distribuyó el trabajo titulado "Primer Borrador de un Reporte sobre el EDVAC". Este trabajo, cuya autoría principal hoy se les reconoce a John Presper Eckert y John William Mauchly[1] , esbozó el diseño de una computadora con programa almacenado que finalmente sería terminado en agosto de 1949 . El EDVAC fue diseñado para efectuar un número determinado de instrucciones (u operaciones) de varios tipos. Estas instrucciones podían combinarse para crear programas útiles para ser ejecutados por el EDVAC. Significativamente, los programas escritos para el EDVAC fueron almacenados en memoria de la computadora de alta velocidad en lugar de ser especificados por el cableado físico de la computadora. Esto superó una severa limitación del ENIAC, que era la gran cantidad de tiempo y esfuerzo que tomaba reconfigurar el computador para realizar una nueva tarea. Con el diseño de Eckert-Mauchly, el programa, o el software, que el EDVAC corría, podía ser reemplazado simplemente cambiando el contenido de la memoria del computador [2] .
    Debe ser notado que mientras que von Neumann es acreditado más frecuentemente por el diseño del computador con programa almacenado debido a su diseño del EDVAC, otros antes de él, como Konrad Zuse, habían sugerido ideas similares. Además, la llamada arquitectura Harvard del Harvard Mark I, que fue terminada antes del EDVAC, también utilizó un diseño con programa almacenado empleando cinta de papel perforada en vez de memoria electrónica. La diferencia clave entre las arquitecturas de Eckert-Mauchly y la de Harvard es que la última separa el almacenamiento y el tratamiento de las instrucciones y de los datos del CPU, mientras que la primera usa el mismo espacio de memoria para ambos. La mayoría de los CPU modernos son diseños de Eckert-Mauchly en su mayor parte, pero también son vistos comúnmente elementos de la arquitectura de Harvard.
    Siendo dispositivos digitales todos los CPU tratan con estados discretos, y por lo tanto requieren una cierta clase de elementos de conmutación para diferenciar y cambiar estos estados. Antes de la aceptación comercial del transistor, los relés eléctricos y los tubos de vacío (válvulas termoiónicas) eran usados comúnmente como elementos de conmutación. Aunque éstos tenían distintas ventajas de velocidad sobre los anteriores diseños puramente mecánicos, no eran fiables por varias razones. Por ejemplo, hacer circuitos de lógica secuencial de corriente directa requería hardware adicional para hacer frente al problema del rebote de contacto. Por otro lado, mientras que los tubos de vacío no sufren del rebote de contacto, éstos deben calentarse antes de llegar a estar completamente operacionales y eventualmente fallan y dejan de funcionar por completo [3] . Generalmente, cuando un tubo ha fallado, el CPU tendría que ser diagnosticado para localizar el componente que falla para que pueda ser reemplazado. Por lo tanto, los primeros computadores electrónicos, (basados en tubos de vacío), generalmente eran más rápidas pero menos confiables que las computadoras electromecánicas, (basadas en relés). Las computadoras de tubo, como el EDVAC, tendieron en tener un promedio de ocho horas entre fallas, mientras que las computadoras de relés, (anteriores y más lentas), como el Harvard Mark I, fallaban muy raramente . Al final, los CPU basados en tubo llegaron a ser dominantes porque las significativas ventajas de velocidad producidas generalmente pesaban más que los problemas de confiabilidad. La mayor parte de estos tempranos CPU síncronos corrían en frecuencias de reloj bajas comparadas con los modernos diseños microelectrónicos, (ver más abajo para una exposición sobre la frecuencia de reloj). Eran muy comunes en este tiempo las frecuencias de la señal del reloj con un rango desde 100 kHz hasta 4 MHz, limitado en gran parte por la velocidad de los dispositivos de conmutación con los que fueron construidos.

    CPU de transistores y de circuitos integrados discretos.

    CPU, memoria de núcleo, e interface de bus externo de un MSI PDP-8/I.

    CPU, memoria de núcleo, e interface de bus externo de un MSI PDP-8/I.

    La complejidad del diseño de los CPU se incrementó a medida que varias tecnologías facilitaron la construcción de dispositivos electrónicos más pequeños y confiables. La primera de esas mejoras vino con el advenimiento del transistor. Los CPU transistorizados durante los años 1950 y los años 1960 no tuvieron que ser construidos con elementos de conmutación abultados, no fiables, y frágiles, como los tubos de vacío y los relés eléctricos. Con esta mejora, fueron construidos CPUs más complejos y más confiables sobre una o varias tarjetas de circuito impreso que contenían componentes discretos (individuales).
    Durante este período, ganó popularidad un método de fabricar muchos transistores en un espacio compacto. El circuito integrado (IC) permitió que una gran cantidad de transistores fueran fabricados en una simple oblea basada en semiconductor o "chip". En 1964, IBM introducido su arquitectura de computador System/360, que fue usada en una serie de computadores que podían correr los mismos programas con velocidades y desempeños diferentes. Esto fue significativo en un tiempo en que la mayoría de las computadoras electrónicas eran incompatibles una con la otra, incluso las hechas por el mismo fabricante. Para facilitar esta mejora, IBM utilizó el concepto de microprograma, a menudo llamado "microcódigo", que todavía ve un uso extenso en los CPU modernos . La arquitectura System/360 era tan popular que dominó el mercado del mainframe por las siguientes décadas y dejó una herencia que todavía es continuada por computadores modernos similares como el IBM zSeries. En el mismo año de 1964, Digital Equipment Corporation (DEC) introdujo otro computador influyente dirigido a los mercados científicos y de investigación, el PDP-8. DEC introduciría más adelante la extremadamente popular línea del PDP-11, que originalmente fue construido con ICs SSI pero eventualmente fue implementado con componentes LSI cuando llegaron a ser prácticos. En fuerte contraste con sus precursores hechos con tecnología SSI y MSI, la primera implementación LSI del PDP-11 contuvo un CPU integrado por solamente cuatro circuitos integrados LSI .
    Los computadores basados en transistores tenían varias ventajas distintas sobre sus predecesores. Aparte de facilitar una creciente confiabilidad y un más bajo consumo de energía, los transistores también permitían al CPU operar a velocidades mucho más altas debido al corto tiempo de conmutación de un transistor en comparación a un tubo o relé. Gracias tanto a la creciente confiabilidad como a la dramáticamente incrementada velocidad de los elementos de conmutación que por este tiempo eran casi exclusivamente transistores, fueron obtenidas frecuencias de reloj del CPU de decenas de megahertz. Además, mientras que los CPU de transistores discretos y circuitos integrados estaban en fuerte uso, comenzaron a aparecer los nuevos diseños de alto rendimiento como procesadores vectoriales SIMD (Single Instruction Multiple Data) (Simple Instrucción Múltiples Datos). Estos tempranos diseños experimentales dieron lugar más adelante a la era de los supercomputadoras especializados, como los hechos por Cray Inc.

    Microprocesadores.

    Microprocesador Intel 80486DX2 en un paquete PGA de cerámica

    Microprocesador Intel 80486DX2 en un paquete PGA de cerámica

    Artículo principal: Microprocesador

    Desde la introducción del primer microprocesador, el Intel 4004, en 1970, y del primer microprocesador ampliamente usado, el Intel 8080, en 1974. Esta clase de CPUs ha desplazado casi totalmente el resto de los métodos de implementación de la Unidad Central de Proceso. Los fabricantes de mainframes y minicomputadores de ese tiempo lanzaron programas de desarrollo de ICs propietarios para actualizar sus más viejas arquitecturas de computador, y eventualmente produjeron microprocesadores con conjuntos de instrucciones que eran compatibles hacia atrás con sus más viejos hardwares y softwares. Combinado con el advenimiento y el eventual vasto éxito del ahora ubicuo computadora personal, el término "CPU" es aplicado ahora casi exclusivamente a los microprocesadores.
    Las generaciones previas de CPUs fueron implementadas como componentes discretos y numerosos circuitos integrados de pequeña escala de integración en una o más tarjetas de circuitos. Por otro lado, los microprocesadores son CPUs fabricados con un número muy pequeño de ICs; usualmente solo uno. El tamaño más pequeño del CPU, como resultado de estar implementado en una simple pastilla, significa tiempos de conmutación más rápidos debido a factores físicos como el decrecimiento de la capacitancia parásita de las puertas. Esto ha permitido que los microprocesadores síncronos tengan ratas de reloj con un rango de decenas de megahertz a varios gigahertz. Adicionalmente, como ha aumentado la capacidad de construir transistores excesivamente pequeños en un IC, la complejidad y el número de transistores en un simple CPU también se ha incrementado dramáticamente. Esta tendencia ampliamente observada es descrita por la ley de Moore, que ha demostrado hasta la fecha, ser una predicción bastante exacta del crecimiento de la complejidad de los CPU y otros ICs.
    Mientras que, en los pasados sesenta años han cambiado drásticamente, la complejidad, el tamaño, la construcción, y la forma general del CPU, es notable que el diseño y el funcionamiento básico no ha cambiado demasiado. Casi todos los CPU comunes de hoy se pueden describir con precisión como máquinas de programa almacenado de Eckert-Mauchly.
    A medida que la a mencionada ley del Moore continúa manteniéndose verdadera, se han presentado preocupaciones sobre los límites de la tecnología de transistor del circuito integrado. La miniaturización extrema de puertas electrónicas está causando los efectos de fenómenos que se vuelven mucho más significativos, como la electromigración, y el subumbral de pérdida. Estas más nuevas preocupaciones están entre los muchos factores que hacen a investigadores estudiar nuevos métodos de computación como la computadora cuántica, así como ampliar el uso de paralelismo, y otros métodos que extienden la utilidad del modelo clásico de Eckert-Mauchly.

    Operación del CPU.

    La operación fundamental de la mayoría de los CPU, sin importar la forma física que tomen, es ejecutar una secuencia de instrucciones almacenadas llamadas "programa". Aquí se habla sobre los dispositivos conformes con la arquitectura Eckert-Mauchly común. El programa es representado por una serie de números que se mantentienen en una cierta clase de memoria de computador. Hay cuatro pasos que casi todos los CPU de Eckert-Mauchly usan en su operación: fetch, decode, execute, y writeback, (leer, decodificar, ejecutar, y escribir).

    Diagrama mostrando como es decodificada una instrucción del MIPS32. (MIPS Technologies 2005)

    Diagrama mostrando como es decodificada una instrucción del MIPS32. (MIPS Technologies 2005)

    El primer paso, leer (fetch), implica el recuperar una instrucción, (que es representada por un número o una secuencia de números), de la memoria de programa. La localización en la memoria del programa es determinada por un contador de programa (PC), que almacena un número que identifica la posición actual en el programa. En otras palabras, el contador de programa indica al CPU, el lugar de la instrucción en el programa actual . Después de que se lee una instrucción, el PC es incrementado por la longitud de la palabra de instrucción en términos de unidades de memoria [4] . Frecuentemente la instrucción a ser leída debe ser recuperada de memoria relativamente lenta, haciendo detener al CPU mientras espera que la instrucción sea retornada. Este problema es tratado en procesadores modernos en gran parte por los cachés y las arquitecturas pipeline (ver abajo).
    La instrucción que el CPU lee desde la memoria es usada para determinar qué deberá hacer el CPU. En el paso de decodificación, la instrucción es dividida en partes que tienen significado para otras porciones del CPU. La manera en que el valor de la instrucción numérica es interpretado está definida por la arquitectura del conjunto de instrucciones (el ISA) del CPU [5] . A menudo, un grupo de números en la instrucción, llamado opcode, indica qué operación realizar. Las partes restantes del número usualmente proporcionan información requerida para esa instrucción, como por ejemplo, operandos para una operación de adición. Tales operandos se pueden dar como un valor constante (llamado valor inmediato), o como un lugar para localizar un valor, que según lo determinado por algún modo de dirección, puede ser un registro o una dirección de memoria. En diseños más viejos las porciones del CPU responsables de decodificar la instrucción eran dispositivos de hardware fijos. Sin embargo, en CPUs e ISAs más abstractos y complicados, es frecuentemente usado un microprograma para asistir en traducir instrucciones en varias señales de configuración para el CPU. Este microprograma es a veces reescribible de tal manera que puede ser modificado para cambiar la manera en que el CPU decodifica instrucciones incluso después de que haya sido fabricado.

    Diagrama de bloques de un CPU simple

    Diagrama de bloques de un CPU simple

    Después de los pasos de lectura y decodificación, es llevado a cabo el paso de la ejecución de la instrucción. Durante este paso, varias porciones del CPU son conectadas de tal manera que ellas pueden realizar la operación deseada. Si, por ejemplo, una operación de adición fue solicitada, una unidad aritmético lógica (ALU) será conectada a un conjunto de entradas y un conjunto de salidas. Las entradas proporcionan los números a ser sumados, y las salidas contendrán la suma final. El ALU contiene la circuitería para realizar operaciones simples de aritmética y lógica en las entradas, como adición y operaciones de bits (bitwise). Si la operación de adición produce un resultado demasiado grande para poder ser manejado por el CPU, , también puede ser ajustada una bandera (flag) de desbordamiento aritmético localizada en un registro de banderas (ver abajo la sección sobre rango de números enteros).
    El paso final, la escritura (writeback), simplemente "escribe" los resultados del paso de ejecución a una cierta forma de memoria. Muy a menudo, los resultados son escritos a algún registro interno del CPU para acceso rápido por subsecuentes instrucciones. En otros casos los resultados pueden ser escritos a una memoria principal más lenta pero más barata y más grande. Algunos tipos de instrucciones manipulan el contador de programa en lugar de directamente producir datos de resultado. Éstas son llamadas generalmente "saltos" (jumps) y facilitan comportamientos como bucles (loops), la ejecución condicional de programas (con el uso de saltos condicionales), y funciones en programas [6] . Muchas instrucciones también cambiarán el estado de dígitos en un registro de "banderas". Estas banderas pueden ser usadas para influenciar cómo se comporta un programa, puesto que a menudo indican el resultado de varias operaciones. Por ejemplo, un tipo de instrucción de "comparación" considera dos valores y fija un número, en el registro de banderas, de acuerdo a cual es el mayor. Entonces, esta bandera puede ser usada por una posterior instrucción de salto para determinar el flujo de programa.
    Después de la ejecución de la instrucción y la escritura de los datos resultantes, el proceso entero se repite con el siguiente ciclo de instrucción, normalmente leyendo la siguiente instrucción en secuencia debido al valor incrementado en el contador de programa. Si la instrucción completada era un salto, el contador de programa será modificado para contener la dirección de la instrucción a la cual se saltó, y la ejecución del programa continúa normalmente. En CPUs más complejos que el descrito aquí, múltiples instrucciones pueden ser leídas, decodificadas, y ejecutadas simultáneamente. Esta sección describe lo que es referido generalmente como el "entubado RISC clásico" (Classic RISC pipeline), que de hecho es bastante común entre los CPU simples usados en muchos dispositivos electrónicos, a menudo llamados microcontroladores [7] .

    Diseño e implementación.

    Prerequisitos
    Arquitectura informática
    Circuitos digitales

    Rango de enteros .

    La manera en que un CPU representa los números es una opción de diseño que afecta las más básicas formas en que el dispositivo funciona. Algunas de las primeras calculadoras digitales usaron, para representar números internamente, un modelo eléctrico del sistema de numeración decimal común (base diez). Algunas otras computadoras han usado sistemas de numeración más exóticos como el ternario (base tres). Casi todas los CPU modernos representan los números en forma binaria, en donde cada dígito es representado por una cierta cantidad física de dos valores, como un voltaje "alto" o "bajo" [8] .

    Microprocesador MOS 6502 en un dual in-line package (paquete en línea dual), un diseño extremadamente popular de 8 bits.

    Microprocesador MOS 6502 en un dual in-line package (paquete en línea dual), un diseño extremadamente popular de 8 bits.

    Con la representación numérica están relacionados el tamaño y la precisión de los números que un CPU puede representar. En el caso de un CPU binario, un bit se refiere a una posición significativa en los números con que trabaja un CPU. El número de bits (o de posiciones numéricas, o dígitos) que un CPU usa para representar los números, a menudo se llama "tamaño de la palabra", "ancho de bits", "ancho de ruta de datos", o "precisión del número entero" cuando se ocupa estrictamente de números de números enteros (en oposición a números de punto flotante). Este número difiere entre las arquitecturas, y a menudo dentro de diferentes partes del mismo CPU. Por ejemplo, un CPU de 8 bits maneja un rango de números que pueden ser representados por ocho dígitos binarios, cada dígito teniendo dos valores posibles, y en combinación los 8 bits teniendo 28 ó 256 números discretos. En efecto, el tamaño del número entero fija un límite de hardware en el rango de números enteros que el software corre y que el CPU puede usar directamente [9] .
    El rango del número entero también puede afectar el número de posiciones en memoria que el CPU puede direccionar (localizar). Por ejemplo, si un CPU binario utiliza 32 bits para representar una dirección de memoria, y cada dirección de memoria representa a un octeto (8 bits), la cantidad máxima de memoria que el CPU puede direccionar es 232 octetos, o 4 GB. Ésta es una vista muy simple del espacio de dirección del CPU, y muchos diseños modernos usan métodos de dirección mucho más complejos como paginación para localizar más memoria que su rango entero permitiría con un espacio de dirección plano.
    Niveles más altos del rango de números enteros requieren más estructuras para manejar los dígitos adicionales, y por lo tanto, más complejidad, tamaño, uso de energía, y generalmente costo. Por ello, no es del todo infrecuente, ver microcontroladores de 4 y 8 bits usados en aplicaciones modernas, aun cuando están disponibles CPU con un rango mucho más alto (de 16, 32, 64, e incluso 128 bits). Los microcontroladores más simples son generalmente más baratos, usan menos energía, y por lo tanto disipan menos calor. Todo esto pueden ser consideraciones de diseño importantes para los dispositivos electrónicos. Sin embargo, en aplicaciones del extremo alto, los beneficios producidos por el rango adicional, (más a menudo el espacio de dirección adicional), son más significativos y con frecuencia afectan las opciones del diseño. Para ganar algunas de las ventajas proporcionadas por las longitudes de bits tanto más bajas, como más altas, muchos CPUs están diseñados con anchos de bit diferentes para diferentes porciones del dispositivo. Por ejemplo, el IBM Sistem/370 usó un CPU que fue sobre todo de 32 bits, pero usó precisión de 128 bits dentro de sus unidades de punto flotante para facilitar mayor exactitud y rango de números de punto flotante . Muchos diseños posteriores de CPU usan una mezcla de ancho de bits similar, especialmente cuando el procesador está diseñado para usos de propósito general donde se requiere un razonable equilibrio entre la capacidad de números enteros y de punto flotante.

    Frecuencia de reloj.

    Artículo principal: Frecuencia de reloj

    La mayoría de los CPU, y de hecho, la mayoría de los dispositivos de lógica secuencial, son de naturaleza síncrona [10] . Es decir, están diseñados y operan en función de una señal de sincronización. Esta señal, conocida como señal de reloj, usualmente toman la forma de una onda cuadrada periódica. Calculando el tiempo máximo en que las señales eléctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de un CPU, los diseñadores pueden seleccionar un período apropiado para la señal del reloj.
    Este período debe ser más largo que la cantidad de tiempo que toma a una señal moverse, o propagarse, en el peor de los casos. En fijar el período del reloj a un valor bastante sobre el retardo de la propagación del peor caso, es posible diseñar todo el CPU y la manera que mueve los datos alrededor de los "bordes" de la subida y bajada de la señal del reloj. Esto tiene la ventaja de simplificar el CPU significativamente, tanto en una perspectiva de diseño, como en una perspectiva de cantidad de componentes. Sin embargo, esto también tiene la desventaja que todo el CPU debe esperar por sus elementos más lentos, aun cuando algunas porciones del mismo son mucho más rápidas. Esta limitación ha sido compensada en gran parte por varios métodos de aumentar el paralelismo del CPU (ver abajo).
    Sin embargo, las solamente mejoras arquitectónicas no solucionan todas las desventajas de CPUs globalmente síncronos. Por ejemplo, una señal de reloj está sujeta a los retardos de cualquier otra señal eléctrica. Ratas de reloj más altas en CPUs cada vez más complejos hacen más difícil de mantener la señal del reloj en fase (sincronizada) a través de toda la unidad. Esto ha conducido que muchos CPU modernos requieran que se les proporcione múltiples señales de reloj idénticas, para evitar retardar una sola señal lo suficiente significativamente como para hacer al CPU funcionar incorrectamente. Otro importante problema cuando las ratas del reloj aumentan dramáticamente, es la cantidad de calor que es disipado por el CPU. La constantemente cambiante señal del reloj causa la conmutación de muchos componentes (cambian de estado) sin importar si están siendo usados en ese momento. En general, un componente que está conmutando usa más energía que un elemento en un estado estático. Por lo tanto, a medida que la rata del reloj aumenta, así lo hace también la disipación de calor, causando que el CPU requiera soluciones de enfriamiento más efectivas.
    Un método de tratar la conmutación de componentes innecesarios se llama el clock gating, que implica apagar la señal del reloj a los componentes innecesarios, efectivamente desactivándolos. Sin embargo, esto es frecuentemente considerado como difícil de implementar y por lo tanto no ve uso común afuera de diseños de muy baja potencia [11] . Otro método de tratar algunos de los problemas de una señal global de reloj es la completa remoción de la misma. Mientras que quitar la señal global del reloj hace, de muchas maneras, considerablemente más complejo el proceso del diseño, en comparación con diseños síncronos similares, los diseños asincrónicos (o sin reloj) tienen marcadas ventajas en el consumo de energía y la disipación de calor. Aunque algo infrecuente, CPUs completos se han construido sin utilizar una señal global de reloj. Dos notables ejemplos de esto son el AMULET, que implementa la arquitectura del ARM, y el MiniMIPS, compatible con el MIPS R3000. En lugar de remover totalmente la señal del reloj, algunos diseños de CPU permiten a ciertas porciones del dispositivo ser asincrónicas, como por ejemplo, usar ALUs asincrónicas en conjunción con pipelining superescalar para alcanzar algunas ganancias en el desempeño aritmético. Mientras que no está completamente claro si los diseños totalmente asincrónicos pueden desempeñarse a un nivel comparable o mejor que sus contrapartes síncronas, es evidente que por lo menos sobresalen en las más simples operaciones matemáticas. Esto, combinado con sus excelentes características de consumo de energía y disipación de calor, los hace muy adecuados para los computadores empotrados .

    Paralelismo.

    Modelo de un CPU subescalar. Note que toma quince ciclos para terminar tres instrucciones.

    Modelo de un CPU subescalar. Note que toma quince ciclos para terminar tres instrucciones.

    Artículo principal: Computación paralela

    La descripción de la operación básica de un CPU ofrecida en la sección anterior describe la forma más simple que puede tomar un CPU. Este tipo de CPU, usualmente referido como subescalar, opera sobre y ejecuta una sola instrucción con una o dos piezas de datos a la vez.
    Este proceso da lugar a una ineficacia inherente en CPUs subescalares. Puesto que solamente una instrucción es ejecutada a la vez, todo el CPU debe esperar que esa instrucción se complete antes de proceder a la siguiente instrucción. Como resultado, el CPU subescalar queda "paralizado" en instrucciones que toman más de un ciclo de reloj para completar su ejecución. Incluso la adición de una segunda unidad de ejecución (ver abajo) no mejora mucho el desempeño. En lugar de un camino quedando congelado, ahora dos caminos se paralizan y aumenta el número de transistores no usados. Este diseño, en donde los recursos de ejecución del CPU pueden operar con solamente una instrucción a la vez, solo puede, posiblemente, alcanzar el desempeño escalar (una instrucción por ciclo de reloj). Sin embargo, el desempeño casi siempre es subescalar (menos de una instrucción por ciclo).
    Las tentativas de alcanzar un desempeño escalar y mejor, han resultado en una variedad de metodologías de diseño que hacen comportarse al CPU menos linealmente y más en paralelo. Cuando se refiere al paralelismo en los CPU, generalmente son usados dos términos para clasificar estas técnicas de diseño.

    • El paralelismo a nivel de instrucción, en inglés Instruction Level Parallelism (ILP), busca aumentar la tasa en la cual las instrucciones son ejecutadas dentro de un CPU, es decir, aumentar la utilización de los recursos de ejecución en la pastilla
    • El paralelismo a nivel de hilo de ejecución, en inglés thread level parallelism (TLP), que se propone incrementar el número de hilos (efectivamente programas individuales) que un CPU pueda ejecutar simultáneamente. Cada metodología diferencia tanto en las maneras en las que están implementadas, como en la efectividad relativa que producen en el aumento del desempeño del CPU para una aplicación [12] .

    ILP: Entubado de instrucción y arquitectura superescalar.

    Tubería básica de cinco etapas. En el escenario del mejor caso, esta tubería puede sostener un rata de completado de una instrucción por ciclo.

    Tubería básica de cinco etapas. En el escenario del mejor caso, esta tubería puede sostener un rata de completado de una instrucción por ciclo.

    Artículo principal: Entubado de instrucción y superescalar
    Uno de los más simples métodos usados para lograr incrementar el paralelismo es comenzar los primeros pasos de leer y decodificar la instrucción antes de que la instrucción anterior haya terminado de ejecutarse. Ésta es la forma más simple de una técnica conocida como instruction pipelining (entubado de instrucción), y es utilizada en casi todos los CPU de propósito general modernos. Al dividir la ruta de ejecución en etapas discretas, la tubería permite que más de una instrucción sea ejecutada en cualquier tiempo. Esta separación puede ser comparada a una línea de ensamblaje, en la cual una instrucción es hecha más completa en cada etapa hasta que sale de la tubería de ejecución y es retirada.
    Sin embargo, la tubería introduce la posibilidad de una situación donde es necesario terminar el resultado de la operación anterior para completar la operación siguiente; una condición llamada a menudo como conflicto de dependencia de datos. Para hacer frente a esto, debe ser tomado un cuidado adicional para comprobar estas clases de condiciones, y si esto ocurre, se debe retrasar una porción de la tubería de instrucción. Naturalmente, lograr esto requiere circuitería adicional, los procesadores entubados son más complejos que los subescalares, pero no mucho. Un procesador entubado puede llegar a ser casi completamente escalar, solamente inhibido por las abruptas paradas de la tubería (una instrucción durando más de un ciclo de reloj en una etapa).

    Tubería superescalar simple. Al leer y despachar dos instrucciones a la vez,un máximo de dos instrucciones por ciclo pueden ser completadas.

    Tubería superescalar simple. Al leer y despachar dos instrucciones a la vez,un máximo de dos instrucciones por ciclo pueden ser completadas.

    Una mejora adicional sobre la idea del entubado de instrucción (instruction pipelining) condujo al desarrollo de un método que disminuye incluso más el tiempo ocioso de los componentes del CPU. Diseños que se dice que son superescalares incluyen una larga tubería de instrucción y múltiples unidades de ejecución idénticas. En una tubería superescalar, múltiples instrucciones son leídas y pasadas a un despachador, que decide si las instrucciones se pueden o no ejecutar en paralelo (simultáneamente). De ser así, son despachadas a las unidades de ejecución disponibles, dando por resultado la capacidad para que varias instrucciones sean ejecutadas simultáneamente. En general, cuanto más instrucciones un CPU superescalar es capaz de despachar simultáneamente a las unidades de ejecución en espera, más instrucciones serán completadas en un ciclo dado.
    La mayor parte de la dificultad en el diseño de una arquitectura superescalar de CPU descansa en crear un despachador eficaz. El despachador necesita poder determinar rápida y correctamente si las instrucciones pueden ejecutarse en paralelo, tan bien como despacharlas de una manera que mantenga ocupadas tantas unidades de ejecución como sea posible. Esto requiere que la tubería de instrucción es llenada tan a menudo como sea posible y se incrementa la necesidad, en las arquitecturas superescalares, de cantidades significativas de caché de CPU. Esto también crea técnicas para evitar peligros como la predicción de bifurc

    Fuente: WIKIPEDIA.

    Unidades de información.

    Bit es el acrónimo de Binary digit. (dígito binario). Un bit es un dígito del sistema de numeración binario.
    El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cualesquiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, amarillo o azul, etc. Basta con asignar uno de esos valores al estado de "apagado" (0), y el otro al estado de "encendido" (1).

    Byte

    equivalente a octeto, es decir a ocho bits, para fines correctos, un byte debe ser considerado como una secuencia de bits contiguos, cuyo tamaño depende del código de información o código de caracteres en que sea definido.
    Se usa comúnmente como unidad básica de almacenamiento de información en combinación con los prefijos de cantidad. Originalmente el byte fue elegido para ser un submúltiplo del tamaño de palabra de un ordenador, desde seis a nueve bits (un caracter codificado estaría adaptado a esta unidad).
    Escala general [editar]9333333

    Nombres para diferentes unidades.

    Los prefijos usados para medidas de byte normalmente son los mismos que los prefijos del SI utilizados para otras medidas, pero tienen valores ligeramente distintos. Se basan en potencias de 1024 (210), un número binario conveniente, mientras que los prefijos del SI se basan en potencias de 1000 (103), un número decimal conveniente. La tabla inferior ilustra estas diferencias. Ver Prefijo binario para una discusión mayor.

    Nombre Abrev. Factor Tamaño en el SI
    bytes B 20 = 1 100 = 1
    kilo k 210 = 1024 103 = 1000
    mega M 220 = 1048576 106 = 1000000
    giga G 230 = 1073741824 109 = 1000000000
    tera T 240 = 1099511627776 1012 = 1000000000000
    peta P 250 = 1125899906842624 1015 = 1000000000000000
    exa E 260 = 1152921504606846976 1018 = 1000000000000000000
    zetta Z 270 = 1180591620717411303424 1021 = 1000000000000000000000
    yotta Y 280 = 1208925819614629174706176 1024 = 1000000000000000000000000
    bronto[citarequerida] B 290 = 1 237 940 039 285 380 274 899 124 224 1027 = 1000000000000000000000000 000
    geop[citarequerida] Ge 2100 = 1 267 650 600 228 229 401 496 703 205 376 1030 = 1000000000000000000000000 000 000

    En 1998 fue creado un nuevo sistema de prefijos para denotar múltiplos binarios por la IEC. Oficialmente, el padrón IEC especifica que los prefijos del SI son usados solamente para múltiplos en base 10 (Sistema decimal) y nunca base 2 (Sistema binario).

    Nuevo padrón de prefijos IEC
    Nombre Abrev. Factor
    kibi Ki 210 = 1024
    mebi Mi 220 = 1048576
    gibi Gi 230 = 1073741824
    tebi Ti 240 = 1099511627776
    pebi Pi 250 = 1125899906842624
    exbi Ei 260 = 1152921504606846976

    La información fraccional normalmente se mide en bits, nibbles, nats o bans, donde las últimas dos se utilizan especialmente en el contexto de la teoría de la información y no se utilizan en otros campos de la computación

    fuente WKIPEDIA

    Informática

    La ciencia que estudia el tratamiento automático de la información.