¿Las aplicaciones del mundo real alguna vez necesitarán un espacio de direcciones planas de 128 bits?

32

Esto es un poco "un megabyte debería ser suficiente para cualquiera", pero ...

Un espacio de direcciones planas de 64 bits permite hasta 4.300 millones de veces más espacio que un espacio de direcciones de 32 bits. Eso es 17.179.869.184 GiB.

Obviamente, la transición de 8 bits a 16 bits fue bastante rápida (estoy viendo cosas de una manera adolescente durante los años 80, ignorando todos esos mainframes y minis porque no podían ejecutar un puerto de Elite). La transición de 16 bits a 32 bits tomó un poco más de tiempo, y 32 bits en realidad duraron bastante tiempo.

Ahora que tenemos 64 bits, ¿sería estúpido decir "17,179,869,184 GiB debería ser suficiente para cualquiera"?

Esta es una pregunta de los programadores porque realmente tengo en mente el punto de vista de la programación. Incluso si una computadora algún día tiene una cantidad aparentemente infinita de memoria de trabajo, eso no significa que las aplicaciones necesiten ver un espacio de direcciones planas aparentemente infinito.

Básicamente, ¿podemos los programadores dar un suspiro de alivio y decir "bueno, independientemente de lo que puedan hacer los números enteros o las carrozas, al menos ya no tengo que preocuparme de que mis punteros sigan creciendo?".

Steve314
fuente
11
¿Cuántos datos genera el LHC cada día?
Peter Taylor
77
Los procesadores de 8 bits en realidad tenían un espacio de direcciones de 16 bits, de ahí la "transición rápida" :-)
Neil Butterworth
1
Para proporcionar algún contexto, un espacio de direcciones de 128 bits proporciona tantas direcciones como estrellas en el universo observable o la mitad de los átomos en nuestra galaxia (dentro de un par de órdenes de magnitud).
Rein Henrichs
55
@Rein: En otras palabras, no es suficiente. ¿Cómo podemos simular un universo con direcciones de memoria insuficientes para incluso la mitad de los átomos en nuestra propia galaxia? amiright
quentin-starin
77
Creo que esto se puede responder con bastante facilidad; Star Trek Holodeck. Basta de charla.
Dunk

Respuestas:

27

No creo que tengamos máquinas con más de 2 ^ 64 bytes de RAM en el futuro previsible, pero eso no es todo para lo que el espacio de direcciones es útil.

Para algunos propósitos, es útil asignar otras cosas al espacio de direcciones, siendo los archivos un ejemplo importante. Entonces, ¿es razonable tener más de 2 ^ 64 bytes de cualquier tipo de almacenamiento conectado a una computadora en el futuro previsible?

Tendría que decir que sí. Debe haber más de 2 ^ 64 bytes de almacenamiento, ya que solo son unos 17 millones de personas con discos duros de terabytes. Hemos tenido bases de datos de varios petabytes durante algunos años, y 2 ^ 64 son solo unos 17 mil petabytes.

Creo que es probable que tengamos un uso para un espacio de direcciones> 2 ^ 64 en las próximas décadas.

David Thornley
fuente
44
Esto me hace pensar en un direccionamiento plano para abordar cualquier byte de almacenamiento disponible en Internet. Creo que escuché algo sobre los sistemas operativos que proporcionan un direccionamiento plano de todo el almacenamiento en el sistema (no es necesario asignar archivos a la memoria, ya están allí). Convertir una dirección IP en parte de su dirección de memoria ciertamente necesitará más de 64 bits: IPv6 ya necesita 128 bits solo para la dirección. Habría una gran cantidad de redundancia en el espacio de direcciones, pero aún podría tener sentido.
Steve314
2
Sí. Simplificaría la vida si asignara todas sus unidades y archivos en el espacio de direcciones. Una gran cantidad de código relacionado con la manipulación de archivos en el disco sería mucho más simple si simplemente tuviera un puntero a todo el archivo. Un segmento: la arquitectura offset sería ideal para este tipo de cosas.
Loren Pechtel
Esto supone que cada byte de todos los dispositivos de almacenamiento masivo sería directamente direccionable.
vartec
2
@ steve314: Estás pensando en el concepto de tienda de un solo nivel , promovido por el IBM S / 38. Cosas interesantes, pero creo que sería difícil integrarlo con los sistemas actuales.
TMN
1
@ TMN: bueno, IBM i (también conocido como i5 / OS, también conocido como OS / 400) todavía lo usa y podría decirse que sigue siendo uno de los "sistemas actuales".
Joachim Sauer
16

A menos que las computadoras comiencen a usar algunas tecnologías innovadoras que aún no existen, incluso en los laboratorios, tener más de 2 64 espacios direccionables no es físicamente posible con la tecnología de silicio actual . La tecnología está llegando a los límites físicos . El límite de velocidad (GHz) ya se alcanzó hace unos años. El límite de miniaturización también está muy cerca. Actualmente, la tecnología más avanzada en producción es de 20 nm, en los laboratorios es de 4 nm con transistores hechos de 7 átomos.

Solo para ponerlo en perspectiva, cuánto tiempo lleva desarrollar una nueva tecnología: las computadoras actuales se basan en transistores inventados en 1925, y la tecnología de silicio actual se remonta a 1954.


En cuanto a tecnologías alternativas:

  • Computación óptica : podría aumentar la velocidad de computación, pero no resuelve el problema de la miniaturización del almacenamiento;
  • Computación cuántica : para usarla completamente, se requerirá un paradigma de programación completamente nuevo, por lo que si los punteros serán de 64 o 128 bits es la menor de sus preocupaciones. También se aplican las mismas limitaciones físicas a la miniaturización a esta tecnología;
  • Computación de ADN : estos son juguetes de prueba de concepto, diseñados para resolver una clase particular de problemas. No es factible para el uso en la vida real. Para obtener cálculos que en una PC normal se realizarían en menos de un segundo, se necesitaría un tanque de ADN del tamaño del Océano Pacífico y unos pocos miles de años. Como es un proceso biológico natural, no hay forma de miniaturizar o acelerar eso.
vartec
fuente
44
Entonces, básicamente, ¿estás diciendo que ya no habrá avances tecnológicos? Nos quedaremos atrapados con la tecnología de silicio para siempre. Cosas radicalmente nuevas como la computación cuántica o las computadoras de ADN permanecerán en la investigación para siempre. ¿Realmente crees eso?
nikie
2
@nikie: las computadoras cuánticas no son mágicas. Todavía usan átomos. Todavía están limitados por la física. Computadoras de ADN? ¿¿¿En serio??? Es totalmente inútil más allá de ser una prueba de concepto.
vartec
44
@Thor: bueno, tampoco es físicamente posible poner al hombre en la Luna en 2011 tampoco.
vartec
77
¿Por qué -1? El resumen tiene una base muy sólida. 2 ^ 64 es un número muy, muy, muy grande. No es 2 ^ 32 * 2, es mucho más grande, y 2 ^ 128 es bastante loco. Llevaría mucho tiempo hacerlo for(unsigned __int128 i=0; i<2^128; i++){}. Con la tecnología actual no hay mucho uso de enteros de 128 bits. Además de quizás volver al espacio de direcciones desprotegido, porque pisar accidentalmente la memoria de otras aplicaciones en un espacio de direcciones de 128 bits sería bastante imposible de hacer, incluso si estuviera escribiendo en direcciones aleatorias al azar.
Codificador
2
@nikie: Las computadoras cuánticas son irrelevantes para estas discusiones, ya que el uso de modelos de memoria actuales (que son el tema aquí) en las computadoras cuánticas anula su propósito. Ah, y sí, las computadoras de ADN nunca serán de uso real. Es como usar autómatas celulares como base para un modelo de ejecución.
back2dos
15

La supercomputadora Thorbjoern vinculada tiene aproximadamente 2 ^ 47 B de memoria física.
Asumiendo que la Ley de Moore es válida para la memoria de las supercomputadoras, se convertirá en 2 ^ 64 B de memoria física en solo 34 años. Esto es como "¡Dios mío, viviremos para ver eso!". Tal vez. Y de hecho, es fascinante. Pero igual de irrelevante.

La pregunta es, ¿necesito un espacio de direcciones de 128 bits para usar 2 ^ 65 B de memoria física?
La respuesta es NO . Necesito un espacio de direcciones de 128 bits para direccionar 2 ^ 65 B de memoria virtual de un solo proceso .

Ese es un punto clave de su pregunta: "¿Alguna vez las aplicaciones del mundo real necesitarán un espacio de direcciones planas de 128 bits ?". " Necesidad ", no del todo, puede arreglárselas con menos, hacer que el espacio de direcciones esté mapeado (no plano); pero entonces no tendría un "espacio de direcciones plano de 128 bits".

Como ejemplo, suponga que desea asignar a los átomos en la Tierra una dirección de memoria física (por cualquier razón, principalmente para proporcionar este simple ejemplo), comience en cero y siga contando (vuelva a mí cuando haya terminado). Ahora alguien más desea hacer lo mismo en Kepler-10c (que está a 568 ly de distancia).

No querrá un choque de direcciones, por lo que la otra persona asigna una dirección de memoria alta en el espacio de memoria plana disponible, que le permite a usted, a ellos y a las siguientes personas dirigirse directamente , sin asignar la memoria. Si no va a hacer eso o puede sobrevivir sin una relación uno a uno entre su memoria y su dirección (está dispuesto a implementar una matriz dispersa), entonces puede sobrevivir con una memoria miserable de 64 bits, o menos.

Cada vez que alguien propone " X cantidad de Y será suficiente ", tal predicción a menudo permanece de corta duración.

Entonces la pregunta es: ¿Cuándo tendremos procesos únicos , que usan 2 ^ 65 B de memoria? Espero que nunca

El gran problema de nuestro tiempo es que la potencia de procesamiento de una sola CPU es limitada. Hay un límite de tamaño definido por el tamaño de los átomos, y para un tamaño dado, hay un límite en la velocidad del reloj, dada por la velocidad de la luz, la velocidad a la que se propaga la información sobre los cambios en los campos magnéticos en nuestro universo.
Y en realidad, el límite se alcanzó hace unos años y nos hemos asentado a tasas de reloj inferiores a las que habían estado anteriormente. La potencia de la CPU ya no aumentará linealmente. El rendimiento ahora se mejora a través de la ejecución fuera de orden, la predicción de bifurcaciones, los cachés más grandes, más códigos operativos, operaciones de vectores y lo que no. Ha habido optimización arquitectónica .
Y una idea importante es la de paralelización. El problema con la paralelización es que no se escala. Si escribiste código lento hace 20 años, funcionó mucho más rápido hace 10 años. Si escribe código lento ahora, no será mucho más rápido en 10 años.

Los procesos que usan 2 ^ 65 B de memoria son un signo de extrema estupidez. Esto muestra que no ha habido optimización arquitectónica . Para procesar estos datos de manera sensata, necesitaría unos 10 millones de núcleos, la mayoría de los cuales pasaría tiempo esperando que algún recurso esté disponible, porque los núcleos que realmente adquirieron el recurso están utilizando memoria física a través de Ethernet en una máquina completamente diferente. La clave para lidiar con problemas grandes y complejos es descomponerlos en problemas pequeños y simples y no construir sistemas cada vez más grandes y complejos. Necesita particiones horizontales, cuando se trata de sh * tloads de datos.

Pero incluso suponiendo que esta locura continúe, tenga la seguridad de que 128 bits es suficiente :

  • La Tierra tiene alrededor de 8.87e + 49 átomos , que son 2 ^ 166 átomos que tenemos .
  • Supongamos que cuesta 2 ^ 20 átomos contener un bit. Esto incluye también todo el cableado y los plásticos y la energía que lo acompaña. No puede simplemente lanzar transistores en una caja y llamarlo una computadora. Entonces 2 ^ 20 parece bastante optimista.
  • Para utilizar un espacio de direcciones de 128 bits, necesitamos 2 ^ 133 bits, por lo que necesitamos 2 ^ 152 átomos . Suponiendo una distribución igual de átomos en la Tierra, veamos cuánta corteza debemos quitar para obtenerlos:

    let
       q  := ratio of atoms needed to atoms present = 2^-14
       Vc := volume of the crust to be used
       Ve := volume of the earth
       re := the radius of the earth = 6.38e6
       tc := the required thickness of the crust
       k  := 0.75*pi
    thus
                                 Vc / Ve = q 
       (k*re^3 - k*(re-tc)^3) / (k*re^3) = q
                    1 - ((re-tc) / re)^3 = q        
                              (re-tc)/re = root3(1-q)
                                      tc = re * (1 - root3(1-q))
                                      tc = 6.38e6 * (1 - (1 - 2^-14)^(1/3))
                                      tc = 129.804073
    

    Por lo tanto, tiene 130 metros que recorrer en toda la superficie (incluido el 80% cubierto de agua, arena o hielo). No va a pasar. Incluso suponiendo que pueda desenterrarlo (risas) y que todo este asunto sea adecuado para ser procesado en chips, ¿de dónde obtendrá la energía?

back2dos
fuente
8
Por otro lado, necesitaría una computadora muy grande para realizar la evaluación de impacto ambiental para la minería a cielo abierto de todo el planeta, por lo que tal vez se justificaría a sí mismo (obtener un poco de Hitch Hikers aquí)
Martin Beckett
2
Un bit = 10 ^ 6 átomos. Toda la Tierra = 10 ^ 50 átomos. Todo el universo = 10 ^ 80 átomos. ¡La notación exponencial es asombrosa! :-)
Konamiman
2
El punto no es utilizar un espacio de direcciones completo de 128 bits, sino utilizar un espacio de direcciones de 64 bits. Entonces, ¿en qué punto necesitamos un bit de direccionamiento adicional más allá de 64 bits? ¿Cuánto espacio físico (moléculas) se necesita para 2 ^ 65 bytes?
David R Tribble
1
¿Entonces está diciendo que una arquitectura de memoria física de 128 bits requiere capacidades de fabricación a escala planetaria ?
Interior
Se han ideado transistores de un solo átomo. ¿Cómo se llega a los 2 ^ 20 (alrededor de un millón) átomos por número de bit? en.wikipedia.org/wiki/5_nanometer
JimmyJames
8

Bueno, definitivamente podríamos usar un gran espacio de direcciones.

Imagina esto:

  1. El espacio de direcciones no está limitado a una sola computadora. En cambio, una dirección identifica de forma exclusiva una celda de memoria en un espacio de direcciones universal. Por lo tanto, puede tener un puntero a una celda de memoria en cualquier computadora del mundo. Deberá haber algún protocolo para permitir la lectura desde la memoria remota, pero ese es un detalle de implementación. :-)

  2. La memoria es Escribir una vez, Leer muchas, es decir, solo puede escribir datos en una dirección de memoria una vez. Para un valor mutable, deberá asignar una nueva pieza de memoria cada vez que cambie. Los programadores hemos comenzado a ver las ventajas de la inmutabilidad y la memoria transaccional, por lo que un diseño de hardware que ni siquiera permite sobrescribir la memoria puede no ser una idea tan imposible.

Combine estas dos ideas y necesitará un gran espacio de direcciones.

Martin Vilcans
fuente
¿Y por qué necesitaría abordar cada byte de cada computadora en el mundo? (Supongo que no eres la NSA.)
David R Tribble
¡porque vamos a construir el señor de la IA de la colmena que abarca todo el mundo para llevarnos a la salvación, por supuesto!
sara
7

Las computadoras más capaces se vuelven, los problemas más complejos con los que se les pide que trabajen.

La supercomputadora más grande listada en top500.org es http://www.top500.org/system/10587 con alrededor de 220 Tb de RAM y 180000 núcleos. En otras palabras, eso es con lo que las "aplicaciones de la vida real" pueden trabajar en esta plataforma.

Las computadoras de hoy son tan potentes como las supercomputadoras hace 10-15 años (aunque la potencia informática puede estar oculta en su tarjeta gráfica).

Entonces, un factor 100 en memoria en 10-15 años significará que el espacio de direcciones de 64 bits será un factor limitante en aproximadamente 100 años (ya que log (100 millones) / log (100) es alrededor de 6) si la tendencia actual se mantiene.

usuario1249
fuente
nota: matemática no verificada, probablemente bastante incorrecta.
17
es como la predicción de 1800, que si el tráfico crece tanto, ciudades enteras estarán cubiertas por montañas de estiércol de caballo
:-P
1
220 GB no es tanto en estos días. Hay servidores con 256 GB de RAM. 180000 núcleos? Ahora que es algo :). Solo estoy señalando esto porque la principal preocupación de OP es el tamaño de RAM.
Tamás Szelei
1
@vartec, solo muestra que la extrapolación ciega puede no ser válida. Lo mismo aqui.
66
Tamás tenía razón: en el enlace que proporcionó, dice "229376 GB", que sería más como 220 TB. Además, suponiendo 4 MB de caché L2 por núcleo, los núcleos de 180K ya tienen 720 GB de caché L2;)
back2dos
5

Todo este hilo es bastante divertido de leer, una opinión muy fuerte a favor y en contra ...

Aquí algo ...

Entiendo por la pregunta que era una tecnología independiente y no estaba limitada por el tiempo. Por lo tanto, el desarrollo actual en silicio, las computadoras cuánticas o el ábaco Infinite Monkey Peddling son irrelevantes.

Los cálculos y extrapolaciones también son bastante divertidos, aunque la respuesta de back2dos funciona bastante bien para ilustrar el tamaño de lo que representa este número. así que trabajemos con eso.

Ponga su mente en el futuro donde el hombre ya no está atado al confín de su pequeño planeta, se desarrolló un medio de transporte realista para permitir el transporte a distancias muy grandes y las estructuras sociales (económicas, políticas, etc.) han evolucionado para trascender generaciones. Los proyectos faraónicos que abarcan se han convertido en lugares comunes. Centrémonos en dos aspectos de esta visión del futuro aún descabellada, si uno desea dedicar tiempo a explicar cada detalle, estoy bastante seguro de que podría racionalizarlo todo a través de una serie de evoluciones plausibles en las tecnologías actuales. En otras palabras, un futuro plausible, aunque improbable ... de todos modos ...

El primer proyecto llamado Coloso en memoria de esa primera computadora electrónica, ya que es la primera computadora planetaria. La Hermandad del Coloso de hecho ha descubierto un medio para capturar un pequeño planetoide y transformarlo en una computadora que funcione. Descubiertos recientemente en el cinturón de Kuyper, que es perticuladamente rico en isótopos fusibles, lo que lo hace energéticamente autónomo, hicieron que el proceso de construcción fuera completamente autónomo con sondas, robots, etc. En esta condición, sería concebible que el espacio de direcciones 2 ^ 64 sea algo limitado para este proyecto, ya que desean obtener un espacio de direcciones continuo para portar fácilmente las aplicaciones ya existentes para otro proyecto también en curso.

El otro proyecto es más un experimento en redes que un sistema físico, sin embargo, rápidamente demostró que se necesitaba un espacio de direcciones más grande. Hace 540 años, un joven hacker estaba jugando con la idea de crear una gigantesca red de bots. Internet ya se había expandido para incluir a las colonias nacientes alrededor del sistema solar, construyendo sobre los principales avances realizados en el poder de fusión. Básicamente, su idea era tener pequeños bots repartidos por la red, pero la carga útil estaba destinada a proporcionar una máquina virtual unificada donde se escribiría el código asumiendo que tenía todo el poder de todos los bots combinados. Se realizaron grandes esfuerzos en el compilador y la implementación para optimizar los retrasos y los algoritmos sofisticados diseñados para tener en cuenta la falta de fiabilidad inherente del medio subyacente. Se escribió un idioma específicamente para orientar este nuevo " nuestro hacker creó en su lugar una compañía paraguas y vendió la potencia informática al mejor postor. Cuando murió, donó esta botnet y todas las tecnologías a una fundación. En ese momento, la botnet ya había estado funcionando durante 64 años y ya había superado el espacio de direcciones 2 ^ 64 hace bastante tiempo rompiendo la preconcepción de 1000 años de que nunca necesitaríamos un espacio de direcciones más grande. Hoy en día, 2 ^ 128 es la norma y lo que se usará para Coloso, pero ya hay planes para expandir esto a 2 ^ 256. nuestro hacker creó en su lugar una compañía paraguas y vendió la potencia informática al mejor postor. Cuando murió, donó esta botnet y todas las tecnologías a una fundación. En ese momento, la botnet ya había estado funcionando durante 64 años y ya había superado el espacio de direcciones 2 ^ 64 hace bastante tiempo rompiendo la preconcepción de 1000 años de que nunca necesitaríamos un espacio de direcciones más grande. Hoy en día, 2 ^ 128 es la norma y lo que se utilizará para Colossus, pero ya hay planes para expandir esto a 2 ^ 256.

Probablemente podría proponer escenarios más plausibles que ilustren que sí ... es muy posible, es más, casi seguro, que algún día necesitaremos un espacio de direcciones mayor que este.

Dicho esto, sin embargo, no creo que pierda el sueño por esto, si su aplicación requiere un cierto espacio de direcciones para funcionar correctamente, lo más probable es que viva en una VM que le brinde todo lo que necesita ...

Por lo tanto ... respuesta corta ...

SÍ, lo más probable

pero

¿Por qué no lidiar con esto cuando surge el problema? Personalmente, nunca hago suposiciones en mis programas, por lo tanto, nunca tengo sorpresas.

Newtopian
fuente
2
Me divierte el nivel de detalle en su ejemplo ficticio. ¿Estás escribiendo una historia corta en alguna parte?
Christopher Bibbs
2

Las ubicaciones de las direcciones tienen un costo logarítmico con respecto al ancho de la dirección, por lo que podemos considerar los límites superiores en función de los parámetros en cuestión:

64 bits para partículas de arena en la tierra = 7.5x10 ^ 18
128 bits para estrellas en universo observable = 10 ^ 24
256 bits para partículas en tierra = 10 ^ 50
512 bits para partículas en universo observable = 10 ^ 82
1024 -bit para longitudes de tablones cúbicos en universo observable = 4.65 × 10 ^ 185

  • La escasez introducida para el hash, la seguridad y la indexación.

6.6106 ... × 10 ^ 122 bits para posibles configuraciones de partículas en el universo observable = 10 ^ (10 ^ 122)

Podríamos asumir las posibles configuraciones como el límite superior para la mayor dirección de memoria construible físicamente posible.

Timothy Swan
fuente
Para calcular el ancho necesario para n direcciones, escriba esto en wolfram alpha: 2 ^ ceil (log2 (log2 ( n )))
Timothy Swan
1
Tiene razón en que puede ser útil tener espacios de direcciones altamente redundantes donde la mayoría de las direcciones no se refieren a nada en absoluto, como en su punto hash, etc., pero creo que alguien incluso sugirió codificar URL en direcciones virtuales de la máquina (no solo un hashes de ellos), así que realmente, no existe un límite superior sobre lo derrochador / redundante que puede ser algún futuro esquema de direccionamiento virtual No es que codificar datos en direcciones (en lugar de buscarlos en tablas potencialmente protegidas cuando sea necesario) suena como una buena idea, por supuesto.
Steve314
0

Bueno, creo que en los próximos años probablemente puedas respirar aliviado. Si observa la velocidad de la innovación en hardware, se puede observar que en los últimos años no se han producido avances significativos. Las CPU con frecuencias de 2.x GHz han existido desde hace un tiempo y cualquier aumento en la potencia de procesamiento hoy en día proviene de empacar más núcleos en el chip. La capacidad de la unidad sigue aumentando, pero no a la misma velocidad que hace 10 años.

Creo que nuestra tecnología actual se está acercando a los límites de la física.

¿Qué significa eso para el futuro? Creo que para obtener nuevos saltos cuánticos en el procesamiento de la información, deberán utilizarse tecnologías completamente nuevas. Es probable que estas tecnologías usen "software", aunque posiblemente en un contexto bastante ajeno a lo que es hoy. ¿Y quién sabe qué requisitos de espacio de direcciones tienen o pueden proporcionar? ¿O si el espacio de direcciones es incluso un concepto significativo en esa tecnología?

Así que no te retires de esto todavía.

wolfgangsz
fuente
La velocidad de la CPU es un concepto algo diferente al tamaño de la memoria.
No estoy seguro de que pueda llegar a la conclusión de que debido a que las velocidades del procesador no han aumentado mucho en los últimos años tiene algo que ver con acercarse a los límites de la física. Es un hecho que las CPU multinúcleo han estado de moda en los últimos años y podría ser que los fabricantes de CPU están invirtiendo su dinero en la mejor manera de utilizar todos esos procesadores juntos en lugar de gastar su dinero en mejoras de reloj. Incluso las grandes empresas tienen un límite en sus dólares de I + D. La capacidad de la unidad sigue aumentando bastante rápido. Acabo de ver una unidad de 3 TB por $ 140.
Dunk
0

Sí lo habrá. (¿Juegos? ¿Cosas relacionadas con la inteligencia artificial?)

Sin embargo, una pregunta más apropiada podría ser si contará para el programador típico. Piense en cómo Ruby convierte automáticamente los números de FixNum a BigNum y viceversa cuando sea necesario. Me sorprendería si otros idiomas (al menos los dinámicos) no hacen lo mismo eventualmente.

Denis de Bernardy
fuente
1
Oh si. Demonios si. Quiero jugar un juego que es tan genial que tiene que usar aritmética de 128 bits !!!!!!!!!
Chani
1
Duke Nukem Forever Rev 2.0? ¿O Madden Football 2025?
John R. Strohm
0

Almacenar esta cantidad de información es una cosa y hacer algo útil con ella es otra. Desde mi punto de vista, no veo la necesidad de este almacenamiento a menos que tengamos el poder de procesamiento para utilizarlo. Quizás almacenar en caché grandes bases de datos es una cosa, pero para el procesamiento numérico creo que primero necesitamos procesadores.

Gus
fuente
0

¿Las aplicaciones alguna vez necesitarán tanta memoria? Muy posible. Las aplicaciones como pronósticos meteorológicos, simulaciones físicas en general o criptografía probablemente siempre se beneficiarán de más memoria y más potencia de procesamiento. ¿Y quién sabe cuál será la aplicación asesina en 50-100 años? Pantallas holográficas? ¿Tablas de arcoíris para cada contraseña de 100 caracteres posible?

¿Es físicamente posible representar tanta memoria? Definitivamente posible. Por ejemplo, una computadora cuántica de 100 qubits puede representar el mismo número de estados que una computadora clásica de 2 ^ 100 bits. Mucho más que los 2 ^ 67 bits de espacio de direcciones que tenemos ahora. (Lo sé, una computadora cuántica de 100 qubits suena como ciencia ficción. No estoy convencido de que alguna vez sea posible construir una. Pero, por otro lado, lo mismo podría decirse de cualquier tecnología que se utilizará 50). o dentro de 100 años)

Pero dudo seriamente que los "espacios de direcciones planas" sean la principal preocupación para entonces. Tal vez estaremos desarrollando algoritmos cuánticos para entonces, donde el concepto de un "espacio de direcciones" no tiene mucho sentido. Incluso si las computadoras permanecen "clásicas" probablemente tendremos que lidiar con un número aterrador de unidades de procesamiento con memoria no uniforme unida a ellas.

nikie
fuente
"La computadora cuántica de 100 qubits puede representar el mismo número de estados que una computadora clásica de 2 ^ 100 bits". No es así como funcionan los qubits. Una computadora de 100 qubits puede representar el mismo número de estados que una computadora de 100 bits. La diferencia es que la computadora de 100 qubits puede representar la superposición de todos esos estados en un momento. La otra cosa acerca de los qubits es que cuando vayas a leerlos, obtendrás solo una respuesta y será completamente al azar.
JimmyJames
@JimmyJames: Exactamente. Entonces, si desea representar la misma información que una computadora cuántica de 100 qubit tiene en un momento único en una computadora clásica (por ejemplo, para simularla), necesitaría más de 100 bits. Eso es lo que dije. (O bien, de todos modos.)
Nikkie
Nuevamente, no es así como funciona. Un registro de 2 bits puede representar 4 valores. Un registro de 2 qubits puede representar 4 valores. Ambos pueden representar el mismo rango de valores. El registro qubit puede representar los 4 al mismo tiempo. Esa es la diferencia.
JimmyJames
@JimmyJames: Eso es como decir que un registro "clásico" de 2 bits puede representar 2 valores, pero al mismo tiempo. Piénselo de esta manera: si quisiera simular una computadora cuántica en una computadora clásica, ¿cuántos bits necesitaría para almacenar el estado completo de la computadora cuántica de 2 qubits en cualquier momento t ?
nikie
Lo entiendo, pero lo que te falta es que no puedes recuperar un valor específico de los qubits. Es decir, dado un qubit en superposición, cuando se lee, obtendrá 1 o 0 pero no puede recuperar ambos valores debido a la decoherencia: en.wikipedia.org/wiki/Quantum_decoherence
JimmyJames
0

¿Qué pasaría si cada ubicación de memoria tuviera una dirección global única?

  • Los protocolos de red podrían volverse mucho más simples.
  • Los objetos distribuidos serían interesantes: todos los objetos podrían existir en el mismo espacio de memoria.
  • Tal vez cambiaríamos a "escribir una vez" recuerdos e incluir el tiempo como parte de la estructura de direcciones. Podrías leer objetos que existieron en el pasado.
  • Todo el almacenamiento secundario sería directamente direccionable. Adiós FILE, fopen(), etc.
  • Podría ser arrestado por escribir a un puntero malo y manguear la máquina de otra persona.
  • Los estudiantes tendrían que ser evaluados antes de tomar su primera clase de CS: muy pocas personas pueden soportar el Vórtice de Perspectiva Total .
Caleb
fuente
0

Simplemente "pensando en voz alta" aquí, pero se me ocurrió que uno podría hacer cosas semánticas interesantes con los 64 bits restantes en una computadora, digamos, de 128 bits. Cf. la forma en que funciona la IP.

Estoy seguro de que la gente podría encontrar usos divertidos para algo como esto. :) ¿Alguien sabe para qué usa la PS3 sus direcciones de 128 bits? Seguramente no desperdiciarías toda esa memoria extra (y estoy hablando solo de la memoria para las direcciones reales, no a lo que esas direcciones apuntan). Direcciones como datos. Incluso podría codificar una rama en la dirección misma ... es decir, 0x [ifAddress] [elseAddress] Los sistemas multinúcleo también podrían beneficiarse de este tipo de segmentación. Y y...

muy tonto
fuente
0

¿Hay alguna razón para superar la arquitectura de 64 bits? (18,446,744,073,709,551,615 bytes de memoria direccionable)

Usando el estándar IEEE 1541-2002 sobre el uso de prefijos para múltiplos binarios de unidades de medida relacionadas con la electrónica digital y la computación, vemos que:

1 byte = 8 bits, 1 kilobyte = 1024 bytes, 1 megabyte = 1024 KB, 1 gigabyte = 1024 MB, 1 terabyte = 1024 GB, 1 petabyte = 1024 TB, 1 exabyte = 1024 PB

Y así sucesivamente para Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte y Monoicosebyte.

Se estima que el almacenamiento total de la unidad Earth será de aproximadamente 2.500 Exabytes a partir de 2016.

Un registro de 64 bits puede acceder a 15 Exabytes de memoria directamente. Un registro de 128 bits puede acceder directamente a 3.40282367 × 10 ^ 35 Zettabytes. O 295,147,905,247,928,000 Monoicosebytes.

Por lo tanto, podemos ver que un registro de 128 bits estaría en una buena posición para acceder a toda la memoria de la Tierra, todo lo que se haya enviado a Internet, cada palabra hablada o escrita, cada película, y mucho más, durante bastante tiempo. .

Entonces, la respuesta es , a la espera de un marco que pueda apuntar a cualquier cosa digital que haya sido o sea alguna vez .

Sean Vikoren
fuente
0

La mejor estimación que puedo encontrar para la cantidad de neuronas en un cerebro humano promedio es de alrededor de 86 mil millones. No podemos comparar directamente la RAM con las neuronas en general, pero en una red neuronal puede hacerlo. Toma varias direcciones para representar el estado de la neurona o una sinapsis. Así que arrojaré una conjetura salvaje y diré que estamos viendo algo así como un billón de direcciones para crear una red neuronal que sería comparable a un cerebro humano. Entonces, si eso se puede hacer, no veo por qué no iría mucho más lejos que eso. Los tipos de problemas que tal red podría contemplar estarían más allá de nuestras capacidades de comprensión, así como por qué tendrían que ser tan grandes para hacerlo.

JimmyJames
fuente
0

Es el espacio de direcciones. Digamos que cambiamos el estándar C para que realloc no pueda cambiar el puntero utilizado. Puedo asignar 2 ^ 33 bloques de memoria hoy (requeriría 192 GB de RAM en mi Mac, 8 mil millones de veces puntero de 8 bytes y 16 bytes de espacio asignado, por lo que no puedo hacer esto ahora, pero podría comprar una Mac que pueda sin sacar una nueva hipoteca).

Y puedo reasignar cualquiera de estos punteros para contener 2 ^ 33 bytes. Sin embargo, no hay muchos al mismo tiempo :-) Si realloc no permite mover punteros y se permiten 2 ^ 33 bytes, los punteros originales deben estar separados por 2 ^ 33 bytes, lo que significa que se necesitan 2 ^ 66 bytes de memoria.

gnasher729
fuente
-1

Claro, no veo ninguna razón por la que esa cantidad de espacio no sea necesaria en el futuro. Si consideras el desarrollo del juego, no hay límite en cuanto a cuán realista o complejo puede ser un juego, ¿verdad? (Detalle de los gráficos / número de polígonos utilizados y algoritmos que definen la interacción y el comportamiento de los objetos)

Quién sabe, dentro de 10 años podríamos estar jugando juegos de 10 TB con requisitos mínimos de 12 GB de RAM y un procesador de 8 núcleos. :PAGS

Anónimo
fuente
No hay límite para los detalles. Pero hay un límite para el silicio.
Billy ONeal
-1

Hace 20 años, había 2.000 millones de personas menos en el planeta y la mayoría de los sistemas informáticos tenían memoria direccionable que se podía medir en kilobytes. Hoy, la población del mundo aumenta al mismo ritmo y el número de usuarios de computadoras aumenta exponencialmente cada año.

Es cierto que muy pocos sistemas necesitan un espacio de direcciones completo de 64 bytes. Sin embargo, algunos sistemas almacenan terabytes de información todos los días. Esto ha sido posible debido al aumento de los usuarios de computadoras y las velocidades de Internet. Ya podemos soportar velocidades de Internet de 10 GB / s después de solo 23 años después de que se inventó HTTP. A este ritmo, creo que sería una tontería no esperar 1 TB / so mayores velocidades de Internet en 50 años. Cuando todos podamos mover datos tan rápido, habrá más datos para almacenar, mientras que existirá más gente para almacenar estos datos y es casi inevitable que deba haber otra transición generalizada a un sistema de 128 bits, y eventualmente 256 y 512 bit.

Andrew Katz
fuente
Tienes razón en todos los aspectos, sin embargo te perdiste mi punto. La industria de la computación tiene menos de 100 años y si continúa creciendo como lo ha hecho en las últimas décadas, no solo sería una tontería suponer que hemos alcanzado nuestro límite en este momento, sino que ignora las demandas del futuro. El espacio de direcciones no es la única razón por la que necesitaríamos una arquitectura de 64 bits. Los conjuntos de instrucciones pueden crecer tanto y los punteros de 128 bits de ancho son más eficientes y preferidos. Otro beneficio es el espacio de registro de la CPU que proporciona una arquitectura de bits más alta.
Andrew Katz
No sé por qué escribí todos esos comentarios, solo un mal humor es mi mejor excusa. Sin embargo, el voto negativo no es mío.
Steve314
-1

Sí, las aplicaciones no llenan cada byte de espacio virtual. la aleatorización del diseño del espacio de direcciones obtendría el mayor beneficio.

Roger
fuente