¿Podrían las primeras computadoras teóricas de propósito general, por ejemplo, el motor analítico de Charles Babbages ser capaces de procesos de información modernos (kB)?

Teóricamente? Si

El motor analítico :

  1. es en realidad Turing completo ,
  2. tiene una arquitectura de Harvard (casi),
    1. Como escribió Mark Miller, la principal característica arquitectónica de la que carece es explícitamente direcciones de almacenamiento / memoria direccionables (al menos en las versiones más conocidas del Motor, como el Plan General 25, para el que existen los diseños arquitectónicos más completos de los principales subsistemas y la mejor comprensión de su funcionamiento: no queda claro si Babbage más tarde reconoció los beneficios de esta característica y la diseñó en las versiones posteriores del motor, alrededor de las décadas de 1850 y 60.
    2. La memoria direccionable permite punteros y estructuras de datos , que son construcciones comunes y básicas en los programas informáticos modernos.
    3. Sin embargo, esto puede simularse de varias maneras, como Mark describió en su respuesta.
  3. tendría el almacenamiento de datos (o el equivalente decimal) de ~ 16.5kB , si tuviera los ejes de 1000 figuras de Store que Babbage había especulado con 40 ruedas de figuras cada uno.

Sin embargo, ~ “16.2kB” solo se refiere al almacenamiento de datos binarios (o, en el caso del motor analítico de Babbage, el equivalente decimal, ya que todos los datos brutos en el AE están representados en formato decimal y no binario como en casi todas las computadoras modernas).

Procesos de información “, se referiría a un conjunto de operaciones de alto nivel que desea realizar en los datos , donde:

  1. los datos se interpretan de acuerdo con alguna convención o formato (ya sea un diseño personalizado o un estándar establecido),
    por ejemplo, 2 dígitos para 100 posibles valores de escala de grises cada uno por píxel,
    20 de esos píxeles por 40 dígitos fig. eje,
    en 1000 ejes para 20,000 píxeles,
    produciendo una imagen potencial de 200 x 100 en escala de grises.
  2. y donde cada operación de alto nivel se logra mediante un procedimiento o algoritmo que consiste en operaciones más básicas que la computadora puede realizar, por ejemplo, operaciones gráficas comunes tales como volteo horizontal, vertical, llenado, pintura, recorte, desglosado en secuencias de lectura de datos en el procesador (el Molino), alterando esos datos (realizando algunas series de cálculos en él) y volviéndolos a escribir (en la Tienda).

Ninguno de estos está fuera de alcance. Del motor teórico , al menos. Algo así como los formatos de datos de imagen, sus convenciones, ese sistema de direccionamiento de memoria completa, los programas para todas esas operaciones de alto nivel (ya sean gráficos para su imagen digital, o para estructuras de datos o algoritmos u otro software o capacidades que uno podría clasificar en ” los procesos de información modernos “) probablemente se realizarían en el” software “del programa y las tarjetas de instrucciones, tarjetas de operación, tarjetas variables, etc., y dicho programa podría ser enorme.

¿En la práctica? Poco claro

Debido a que ninguna de las muchas variaciones y revisiones de los Planes alcanzó su plena realización, es especulativo a qué tipo de restricciones físicas del mundo real se habrían enfrentado tales datos y conjunto de procesos, o el mismo Babbage.

Puede haber razones para creer que 1000 ejes de figuras eran bastante optimistas. Babbage imaginó que el Motor ocuparía uno de esos largos depósitos, como los que se usan en los astilleros, cerca de la potencia de vapor disponible y de modo que la Tienda tenga una posible sala de expansión. Sin embargo, los datos tienen que transferirse sobre los bastidores (engranajes lineales) y cuantos más ejes de almacenamiento haya, más largos y pesados ​​serán. Eso aumenta los problemas de tolerancia, los problemas de colocación, el espaciamiento de los ejes, etc. No está claro cuán expandible sería físicamente un motor real con esas especificaciones.

Del mismo modo, el almacenamiento denso y barato de las computadoras electrónicas modernas ofrece grandes programas de software de gran complejidad jerárquica, algo que no es práctico con las tarjetas perforadas del motor analítico. (Imagínese compilar incluso un simple programa de gráficos barebones hasta el ensamblaje, y luego tener una tarjeta perforada o más para cada instrucción y cada dato).

Además, ¿tomamos “procesos de información modernos” para incluir el rendimiento? La disparidad de rendimiento entre el motor analítico mecánico de punto fijo impulsado por vapor y las computadoras electrónicas modernas con potencia de procesamiento en el GFLOPS es de gran magnitud. ¿Y si, por “procesos de información modernos”, queremos decir cosas como “tiene un sistema de archivos”, “tiene un sistema operativo” o “descarga mi correo electrónico y me lo muestra”? La máquina abstracta y teórica, claro, pero si tuviéramos tiempo o espacio infinito, entonces, por grande o lento que sea, ya no importa.

El Plan 25 Engine sería un procesador de punto fijo equivalente de 132 bits o 166 bits , ejecutándose alrededor del orden de 1 suma / sub por segundo (mucho más tiempo para multiplicaciones o divisiones), más o menos un orden de magnitud, se me olvida . Las rutas de instrucción y datos fueron paralelizadas y canalizadas, pero eso te da muy poco contra los 8-10 órdenes de magnitud del rendimiento moderno de la computadora.

He estado siguiendo los esfuerzos del Museo de Ciencias de Londres para construir un motor analítico que funcione en el blog del Plan 28, y parece que la pregunta que planteas está en el aire. Nadie lo sabe a ciencia cierta todavía. Se sabe que Babbage persiguió su diseño como una computadora programable, una que era capaz de leer un programa de tarjetas perforadas y almacenar el estado en la memoria, pero como lo demuestra esta publicación: Cómo llegamos a donde estamos (también leer los comentarios), sus capacidades completas son aún desconocidas. Como se señaló en http://blog.plan28.org/2016/05/s …, están teniendo problemas para descifrar el diseño de Babbage, y están trabajando para resolverlo. Todavía no está fuera del tablero de dibujo todavía.

Un problema interesante que han tenido es que tienen problemas para conciliar el ejemplo de algoritmo que publicó Ada Lovelace, que estaba en los números de Bernoulli, con el conjunto de operaciones conocido que han podido deducir del diseño de Babbage. En este punto, parece que el motor analítico no tenía operadores para realizar direccionamiento indirecto, lo que sería más útil para calcular esa serie, aunque, como señaló John Graham-Cumming, es plausible que tuviera un conjunto de operaciones suficiente para poder programarlo. para realizar direccionamiento indirecto. No he hecho una encuesta exhaustiva de todos los procesadores, pero creo que todas las computadoras modernas han tenido operadores para direccionamiento indirecto.

El direccionamiento indirecto permite que un procesador cargue un número desde una dirección en la memoria y luego use ese número como una nueva dirección. También permite direccionar la memoria por un índice, haciendo que el procesador mire una dirección base y luego agregue algún número para obtener una nueva dirección. Visto de otra manera, es una especie de código reentrante.

Por lo que Doron Swade ha descrito, quizás Lovelace le planteó este problema a Babbage, pero nunca lo resolvió en el diseño de su máquina. Según sus propios ejemplos de programación, que fueron producidos antes que los de Lovelace, Babbage puede no haber pensado que era una característica tan importante, ya que sus propios ejemplos no necesitaban direccionamiento indirecto para resolverlos.

Realmente no. Aunque brillante para su época, no era lo que ahora se llama “Turing completo”, y también tenía severas limitaciones mecánicas. Era más que una calculadora, pero no una verdadera computadora de propósito general.

Motor analítico – Wikipedia

Integridad de Turing