Os aplicativos do mundo real precisarão de um espaço de endereço plano de 128 bits?


32

Este é um pouco "um megabyte deve ser suficiente para qualquer um", mas ...

Um espaço de endereço plano de 64 bits permite até 4,3 milhões de bilhões de vezes mais espaço que um espaço de endereço de 32 bits. São 17.179.869.184 GiB.

Obviamente, a transição de 8 bits para 16 bits foi bem rápida (eu estou vendo as coisas dos anos 80, ignorando todos os mainframes e minis porque eles não conseguiam rodar um porto de Elite). A transição de 16 bits para 32 bits demorou um pouco mais e 32 bits realmente duraram um bom tempo.

Agora, temos 64 bits, seria estúpido dizer que "17.179.869.184 GiB devem ser suficientes para alguém"?

Esta é uma pergunta dos programadores, porque eu realmente tenho o ponto de vista de programação em mente. Mesmo que um dia um computador tenha uma quantidade aparentemente infinita de memória operacional, isso não significa que os aplicativos precisarão ver um espaço de endereço plano aparentemente infinito.

Basicamente, podemos programadores dar um suspiro de alívio e dizer "bem, quaisquer números inteiros ou flutuadores podem fazer, pelo menos não preciso me preocupar com meus indicadores crescendo mais?".


11
Quantos dados o LHC gera por dia?
Peter Taylor

7
Processadores de 8 bits realmente tinha um espaço de endereçamento de 16 bits - daí a "transição rápida" :-)
Neil Butterworth

1
Para fornecer algum contexto, um espaço de endereço de 128 bits fornece o número de endereços que há estrelas no universo observável ou metade dos átomos da nossa galáxia (dentro de algumas ordens de magnitude).
Rein Henrichs

5
@ Rein: Em outras palavras, não é suficiente. Como podemos simular um universo com endereços de memória insuficientes para metade dos átomos apenas em nossa própria galáxia. amiright
Quentin-starin

7
Eu acho que isso pode ser respondido facilmente; Star Trek Holodeck. Disse o suficiente.
Dunk

Respostas:


27

Não acho que teremos máquinas com mais de 2 ^ 64 bytes de RAM no futuro próximo, mas não é para isso que serve o espaço de endereçamento.

Para alguns propósitos, é útil mapear outras coisas no espaço de endereço, sendo os arquivos um exemplo importante. Portanto, é razoável ter mais de 2 ^ 64 bytes de qualquer tipo de armazenamento conectado a um computador em um futuro próximo?

Eu teria que dizer que sim. Deve haver mais de 2 ^ 64 bytes de armazenamento por aí, já que são apenas 17 milhões de pessoas com discos rígidos terabytes. Temos bancos de dados com vários petabytes há alguns anos e 2 ^ 64 são apenas 17 mil petabytes.

Acho que provavelmente usaremos um espaço de endereço> 2 ^ 64 nas próximas décadas.


4
Isso me faz pensar em endereçamento simples para endereçar qualquer byte de armazenamento disponível na internet. Acho que ouvi algo sobre sistemas operacionais que fornecem um endereçamento simples de todo o armazenamento no sistema (não é necessário mapear arquivos para a memória - eles já estão lá). Tornar um endereço IP parte do seu endereço de memória certamente precisará de mais de 64 bits - o IPv6 já precisa de 128 bits apenas para o endereço. Haveria uma enorme quantidade de redundância no espaço de endereço, mas ainda assim poderia fazer sentido.
Steve314

2
Sim. Isso simplificaria a vida se você mapeasse todas as suas unidades e arquivos no espaço de endereço. Uma enorme quantidade de código relacionada à manipulação de arquivos no disco seria muito mais simples se você simplesmente tivesse um ponteiro para o arquivo inteiro. Um segmento: a arquitetura offset seria ideal para esse tipo de coisa.
Loren Pechtel

Isso pressupõe que cada byte de todos os dispositivos de armazenamento em massa seja endereçável diretamente .
Vartec

2
@ steve314: Você está pensando no conceito de loja de nível único , pioneiro no IBM S / 38. Coisas interessantes, mas acho que seria difícil integrá-lo aos sistemas atuais.
TMN

1
@TMN: bem, o IBM i (também conhecido como i5 / OS, também conhecido como OS / 400) ainda o utiliza e ainda é um dos "sistemas atuais".
Joachim Sauer

16

A menos que os computadores comecem a usar algumas tecnologias inovadoras que ainda não existem em laboratórios, ter mais de 2 64 espaços endereçáveis ​​simplesmente não é fisicamente possível com a atual tecnologia de silício . A tecnologia está atingindo os limites físicos . O limite de velocidade (GHz) foi atingido já há alguns anos. O limite de miniaturização também está muito próximo. Atualmente, a tecnologia mais avançada em produção é de 20 nm, em laboratórios é de 4 nm com transistores feitos de 7 átomos.

Apenas para colocar em perspectiva quanto tempo leva para o desenvolvimento de novas tecnologias: os computadores atuais são baseados em transistores inventados em 1925, e a atual tecnologia de silício remonta a 1954.


Quanto às tecnologias alternativas:

  • computação óptica - pode aumentar a velocidade da computação, mas não resolve o problema de miniaturização do armazenamento;
  • computação quântica - para ser totalmente utilizada, exigirá um paradigma de programação completamente novo; portanto, se os ponteiros tiverem 64 ou 128 bits, é a menor das suas preocupações. As mesmas limitações físicas de miniaturização também se aplicam a essa tecnologia;
  • Computação em DNA - são brinquedos de prova de conceito, projetados para resolver uma classe específica de problemas. Não é viável para uso na vida real. Para obter cálculos que em computadores normais seriam feitos em menos de um segundo, seria necessário um tanque de DNA do tamanho do Oceano Pacífico e alguns milhares de anos. Como é um processo biológico natural, não há como miniaturizar ou acelerar isso.

4
Então, basicamente, você está dizendo que não haverá mais avanços tecnológicos? Nós ficaremos presos à tecnologia do silício para sempre. Coisas radicalmente novas, como computação quântica ou computadores de DNA, permanecerão em pesquisa para sempre. Você realmente acredita nisso?
Nikie

2
@nikie: computadores quânticos não são mágicos. Eles ainda usam átomos. Eles ainda são limitados pela física. Computadores de DNA? Você está falando sério??? É totalmente inútil, além de ser uma prova de conceito.
vartec

4
@ Thor: bem, não é fisicamente possível colocar o homem na Lua em 2011 também.
vartec

7
Por que -1? O resumo tem uma base muito sólida. 2 ^ 64 é um número muito, muito, muito grande. Não é 2 ^ 32 * 2, é muito maior e 2 ^ 128 é bastante insano. Levaria muito tempo apenas para fazer for(unsigned __int128 i=0; i<2^128; i++){}. Com a tecnologia atual, não há muito uso de números inteiros de 128 bits. Além de talvez voltar ao espaço de endereço não protegido, porque seria acidentalmente pisar acidentalmente na memória de outros aplicativos no espaço de endereço de 128 bits, mesmo se você estivesse gravando endereços aleatórios aleatoriamente.
quer

2
@nikie: Os computadores quânticos são irrelevantes para essas discussões, pois o uso de modelos de memória atuais (que são o assunto aqui) em computadores quânticos anula todo o seu propósito. Ah, e sim, os computadores de DNA nunca serão de uso real. É como usar autômatos celulares como base para um modelo de execução.
back2dos

15

O super computador ligado ao Thorbjoern possui cerca de 2 ^ 47 B de memória física.
Supondo que a Lei de Moore seja válida para a memória de supercomputadores, ela se tornará 2 ^ 64B de memória física em apenas 34 anos. É como "OMG, viveremos para ver isso !!!!". Talvez. E, de fato, é fascinante. Mas tão irrelevante.

A questão é: preciso de espaço de endereço de 128 bits para usar 2 ^ 65 B de memória física?
A resposta é NÃO . Preciso de espaço de endereçamento de 128 bits para endereçar 2 ^ 65 B de memória virtual a partir de um único processo .

Esse é um ponto-chave da sua pergunta: "Os aplicativos do mundo real precisarão de um espaço de endereço plano de 128 bits ?". " Need ", não absolutamente, você pode conviver com menos, tornar o espaço de endereço mapeado (não plano); mas você não teria um "espaço de endereço plano de 128 bits".

Como exemplo, suponha que você desejasse atribuir aos átomos da Terra um endereço de memória física (por qualquer motivo, principalmente por fornecer este exemplo simples), começar do zero e continuar contando (volte para mim quando terminar). Agora, outra pessoa deseja fazer o mesmo no Kepler-10c (a 568 km de distância).

Você não deseja um conflito de endereços para que a outra pessoa aloque um endereço de memória alta no espaço de memória disponível, permitindo que você, eles e as próximas pessoas sejam endereçados diretamente , sem mapear a memória. Se você não estiver fazendo isso ou conseguir sobreviver sem um relacionamento individual entre a memória e o endereço (está disposto a implementar uma matriz esparsa), poderá se dar bem com uma mísera memória de 64 bits ou menos.

Sempre que alguém propõe " X quantidade de Y será suficiente ", essa previsão geralmente permanece curta.

Portanto, a pergunta é: em quanto tempo teremos processos únicos , que usam 2 ^ 65 B de memória. Espero nunca.

O grande problema de nosso tempo é que o poder de processamento de uma única CPU é limitado. Há um limite de tamanho definido pelo tamanho dos átomos e, para um determinado tamanho, há um limite na taxa de clock, dada pela velocidade da luz, a velocidade na qual as informações sobre mudanças nos campos magnéticos são propagadas em nosso universo.
E, na verdade, o limite foi atingido alguns anos atrás e estabelecemos taxas de clock abaixo do que eram anteriormente. A energia da CPU não aumentará mais linearmente. Agora, o desempenho é aprimorado por meio de execução fora de ordem, previsão de ramificação, caches maiores, mais códigos operacionais, operações de vetores e outros. Houve otimização arquitetônica .
E uma ideia importante é a da paralelização. O problema da paralelização é que ele não aumenta. Se você escreveu um código lento há 20 anos, funcionou muito mais rápido há 10 anos. Se você escrever um código lento agora, ele não ficará muito mais rápido em 10 anos.

Os processos que usam 2 ^ 65 B de memória são um sinal de extrema estupidez. Isso mostra que não houve otimização arquitetural . Para processar esses dados de maneira sensata, você precisaria de 10 milhões de núcleos, a maioria dos quais gastaria tempo aguardando a disponibilização de algum recurso, porque esses núcleos que realmente adquiriram o recurso estão usando memória física pela Ethernet em uma máquina completamente diferente. A chave para lidar com problemas grandes e complexos é decompô-los em problemas pequenos e simples e não criar sistemas cada vez maiores e cada vez mais complexos. Você precisa de particionamento horizontal ao lidar com sh * tloads de dados.

Mas, mesmo supondo que essa loucura deva continuar, tenha certeza de que 128 bits é suficiente :

  • A Terra tem cerca de 8,87e + 49 átomos , que são 2 ^ 166 átomos que temos .
  • Vamos supor que custa 2 ^ 20 átomos para manter um bit. Isso inclui também toda a fiação, plásticos e energia que o acompanha. Você não pode simplesmente jogar transistores em uma caixa e chamá-lo de computador. Então 2 ^ 20 parece bastante otimista.
  • Para usar o espaço de endereçamento de 128 bits, precisamos de 2 ^ 133 bits, portanto 2 ^ 152 átomos que precisamos . Assumindo uma distribuição igual de átomos na Terra, vamos ver a quantidade de crosta que precisamos retirar para obtê-los:

    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
    

    Então você tem 130 metros para percorrer toda a superfície (incluindo os 80% cobertos de água, areia ou gelo). Não vai acontecer. Mesmo supondo que você possa desenterrá-lo (risos) e todo esse assunto ser adequado para ser processado em chips, de onde você obterá energia?


8
Por outro lado você precisaria de um grande computador para fazer a avaliação de impacto ambiental para a faixa de mineração todo o planeta para que talvez fosse justificar-se (ficando um pouco Caminhantes de engate aqui)
Martin Beckett

2
Um bit = 10 ^ 6 átomos. A Terra inteira = 10 ^ 50 átomos. O universo inteiro = 10 ^ 80 átomos. Notação exponencial é incrível! :-)
Konamiman 24/10

2
O objetivo não é usar um espaço de endereço inteiro de 128 bits, mas usar um espaço de endereço de 64 bits. Então, em que momento precisamos de um bit de endereçamento extra além de 64 bits? Quanto espaço físico (moléculas) é necessário para 2 ^ 65 bytes?
precisa

1
Então você está dizendo que uma arquitetura física de memória de 128 bits requer recursos de fabricação em escala planetária ?
Indolering

Transistores de átomo único foram criados. Como você está conseguindo os 2 ^ 20 (cerca de um milhão) átomos por número de bits? en.wikipedia.org/wiki/5_nanometer
JimmyJames

8

Bem, definitivamente poderíamos usar um grande espaço de endereço.

Imagina isto:

  1. O espaço de endereço não está limitado a um único computador. Em vez disso, um endereço identifica exclusivamente uma célula de memória em um espaço de endereço universal. Assim, você pode apontar para uma célula de memória em qualquer computador do mundo. Será necessário haver algum protocolo para permitir a leitura da memória remota, mas esse é um detalhe da implementação. :-)

  2. A memória é Write Once, Read Many, ou seja, você só pode gravar dados em um endereço de memória uma vez. Para um valor mutável, você precisará alocar um novo pedaço de memória toda vez que ele mudar. Nós programadores começamos a ver os profissionais da imutabilidade e da memória transacional; portanto, um design de hardware que nem sequer permite a substituição de memória pode não ser uma idéia tão impossível.

Combine essas duas idéias e você precisará de um espaço de endereço enorme.


E por que você precisaria lidar com todos os bytes de todos os computadores do mundo? (Eu estou supondo que você não é o NSA.)
David R Tribble

porque vamos construir o líder mundial da inteligência artificial mundial para nos levar à salvação, é claro!
Sara

7

Quanto mais computadores capazes se tornam, mais problemas complexos eles precisam trabalhar.

O maior supercomputador listado em top500.org é http://www.top500.org/system/10587, com cerca de 220 TB de RAM e 180000 núcleos. Em outras palavras, é com isso que "aplicativos da vida real" podem trabalhar nessa plataforma.

Os computadores atuais são tão poderosos quanto os supercomputadores 10 a 15 anos atrás (mesmo que o poder da computação possa estar oculto na sua placa de vídeo).

Portanto, um fator 100 na memória em 10 a 15 anos significará que o espaço de endereço de 64 bits será um fator limitante em cerca de 100 anos (já que log (100 milhões) / log (100) é em torno de 6) se a tendência atual se mantiver.


nota: matemática não verificada, provavelmente bastante errada.

17
é como previsão a partir de 1800, que, se o tráfego cresce tanto, cidades inteiras serão cobertas por montanhas de :-P cavalo estrume
vartec

1
220 GB não é muito hoje em dia. Existem servidores com 256 GB de RAM. 180000 núcleos? Agora isso é algo :). Só estou apontando isso porque a principal preocupação do OP é o tamanho da RAM.
Tamás Szelei

1
@vartec, apenas mostra que a extrapolação às cegas pode não ser válida. Mesma coisa aqui.

6
Tamás estava certo: no link que você forneceu, ele indica "229376 GB", que seria mais parecido com 220 TB. Além disso, assumindo 4MB de cache L2 por núcleo, 180K núcleos já tem 720 GB de cache L2;)
back2dos

5

Todo este tópico é bastante engraçado de ler, uma opinião muito forte a favor e contra ...

Aqui alguma coisa ..

Eu entendo pela pergunta que era uma tecnologia agnóstica e não limitada pelo tempo. Assim, o desenvolvimento atual em silício, computadores quânticos ou o Ábaco Infinito para Pedagogia de Macacos é de fato irrelevante.

Cálculos e extrapolações também são bastante engraçados, embora a resposta do back2dos funcione muito bem para ilustrar o tamanho do que esse número representa. então vamos trabalhar com isso.

Coloque sua mente no futuro, onde o homem não está mais preso ao seu pequeno planeta, um meio de transporte realista foi desenvolvido para permitir o transporte por grandes distâncias e as estruturas sociais (econômicas, políticas, etc.) evoluíram para transcender gerações. Projetos faraônicos abrangendo tornaram-se lugares comuns. Vamos nos concentrar em dois aspectos dessa visão tão abrangente do futuro, se alguém quiser gastar tempo para explicar todos os detalhes. Tenho certeza de que poderia racionalizar tudo isso através de uma série de evoluções plausíveis nas tecnologias atuais. Em outras palavras, um futuro plausível, embora improvável ... de qualquer maneira ...

O primeiro projeto chamado Colossus, em memória desse primeiro computador eletrônico, é o primeiro computador planetário. A Irmandade Colossus realmente descobriu um meio de capturar um pequeno planetoide e transformá-lo em um computador em funcionamento. Recentemente descobertos no cinturão de Kuyper, que é perticularmente rico em isótopos fusíveis, tornando-o energeticamente autônomo, eles tornaram o processo de construção completamente autônomo com sondas, robôs etc., tornando o sistema de computador auto-reparável e auto-construtivo. Nessa condição, seria concebível que o espaço de endereço 2 ^ 64 fosse um pouco restritivo para este projeto, pois eles desejam obter um espaço de endereço contínuo para facilmente portar aplicativos já existentes para outro projeto que também está em andamento.

O outro projeto é mais um experimento em rede do que um sistema físico, mas rapidamente demonstrou que era necessário um espaço de endereço maior. 540 anos atrás, um jovem hacker estava brincando com a idéia de criar uma gigantesca rede de bots. A internet já havia se expandido para incluir as colônias nascentes ao redor do sistema solar, construindo os principais avanços feitos no poder de fusão. Suas idéias eram basicamente ter pequenos bots espalhados pela rede, mas a carga útil destinava-se a fornecer uma máquina virtual unificada onde o código seria escrito assumindo que ele tinha todo o poder de todos os bots combinados. Foram feitos grandes esforços no compilador e na implantação, tentando otimizar atrasos e algoritmos sofisticados projetados para levar em conta a falta de confiabilidade inerente ao meio subjacente. Um idioma foi escrito especificamente para segmentar este novo " nosso hacker criou uma empresa guarda-chuva e vendeu o poder da computação ao maior lance. Quando ele morreu, ele doou esse botnet e todas as tecnologias para uma fundação. Nesse ponto, a botnet já estava em funcionamento há 64 anos e já havia superado o espaço de endereço 2 ^ 64 há algum tempo, quebrando o preconceito de mil anos de que nunca exigiríamos um espaço de endereço maior. Atualmente 2 ^ 128 é a norma e o que será usado para o Colossus, mas já há planos de expandir isso para 2 ^ 256. nosso hacker criou uma empresa guarda-chuva e vendeu o poder da computação ao maior lance. Quando ele morreu, ele doou esse botnet e todas as tecnologias para uma fundação. Nesse ponto, a botnet já estava em funcionamento há 64 anos e já havia superado o espaço de endereço 2 ^ 64 há algum tempo, quebrando o preconceito de mil anos de que nunca exigiríamos um espaço de endereço maior. Atualmente 2 ^ 128 é a norma e o que será usado para o Colossus, mas já há planos de expandir isso para 2 ^ 256.

Provavelmente, eu poderia criar cenários mais plausíveis que ilustram que sim ... é bem possível, mas quase certo, que um dia precisaremos de um espaço de endereço maior que isso.

Dito isto, no entanto, acho que não perderia o sono por isso, se seu aplicativo exigir que um determinado espaço de endereço funcione corretamente, provavelmente ele viverá em uma VM que fornece tudo o que precisa ...

Assim ... resposta curta ...

SIM, muito provavelmente

mas

Por que não lidar com isso quando o problema surge ... Pessoalmente, nunca faço suposições em meus programas, portanto, nunca recebo surpresas.


2
Estou divertido com o nível de detalhe em seu exemplo fictício. Você está escrevendo uma história curta em algum lugar?
Christopher Bibbs

2

Os locais dos endereços têm um custo logarítmico em relação à largura do endereço, para que possamos considerar os limites superiores com base nos parâmetros em questão:

64 bits para partículas de areia na terra = 7,5x10 ^ 18
128 bits para estrelas no universo observável = 10 ^ 24
256 bits para partículas na terra = 10 ^ 50
512 bits para partículas no universo observável = 10 ^ 82
1024 -bit para comprimentos de prancha cúbica no universo observável = 4,65 × 10 ^ 185

  • A escassez introduzida para hash, segurança e indexação

6,6106 ... × 10 ^ 122 bits para possíveis configurações de partículas no universo observável = 10 ^ (10 ^ 122)

Poderíamos assumir as configurações possíveis como o limite superior para o maior endereço de memória construtível fisicamente possível.


Para calcular a largura necessária para n endereços, este tipo alfa em volfrâmio: 2 ^ ceil (log2 (log2 ( n )))
Timothy Swan

1
Você está certo de que pode ser útil ter espaços de endereço altamente redundantes em que a maioria dos endereços não se refere a nada, como no seu ponto de hash, etc., mas acho que alguém sugeriu a codificação de URLs em endereços virtuais da máquina (não apenas um hashes deles), então, realmente, não há limite superior quanto desperdício / redundante potencialmente um esquema de endereçamento virtual futuro. Não que codificar dados em endereços (em vez de procurá-los em tabelas potencialmente protegidas quando necessário) parece uma boa idéia, é claro.
precisa saber é o seguinte

0

Bem, acho que, nos próximos anos, você provavelmente poderá respirar aliviado. Se você observar a velocidade da inovação em hardware, pode-se observar que nos últimos anos não houve avanços significativos. As CPUs com frequências de 2.x GHz já existem há algum tempo e qualquer aumento no poder de processamento hoje em dia vem do empacotamento de mais núcleos no chip. A capacidade da unidade ainda está subindo, mas não nas mesmas taxas de 10 anos atrás.

Eu acho que nossa tecnologia atual está se aproximando dos limites da física.

O que isso significa para o futuro? Penso que, para obter novos saltos quânticos no processamento de informações, serão necessárias novas tecnologias. Essas tecnologias provavelmente usarão "software", embora possivelmente em um contexto bastante estranho ao que é hoje. E quem sabe quais requisitos de espaço de endereço eles têm ou podem fornecer? Ou se o espaço de endereço é mesmo um conceito significativo nessa tecnologia?

Portanto, não se aposente nisso ainda.


A velocidade da CPU é um conceito um pouco diferente do tamanho da memória.

Não tenho certeza de que você possa concluir que, porque a velocidade do processador não aumentou muito nos últimos anos, tem algo a ver com a aproximação dos limites da física. É fato que as CPUs multicore têm sido a última moda nos últimos anos e pode ser que os fabricantes de CPU estejam investindo seu dinheiro na melhor maneira de utilizar todos esses processadores juntos, em vez de gastar seu dinheiro em melhorias de clock. Até as grandes empresas têm um limite de dólares em pesquisa e desenvolvimento. A capacidade da unidade ainda está subindo muito rapidamente na IMO. Só vi um drive de 3 TB por US $ 140.
Dunk

0

Sim, haverá. (Jogos? Coisas relacionadas à inteligência artificial?)

Uma pergunta mais apropriada pode ser se isso conta para o programador típico. Pense em como o Ruby converte automaticamente números do FixNum para o BigNum e vice-versa quando necessário. Eu ficaria surpreso se outros idiomas (pelo menos os dinâmicos) não fizerem o mesmo eventualmente.


1
Oh sim. Isso aí. Eu quero jogar um jogo que é tão legal que ele tem que usar aritmética de 128 bits !!!!!!!!!
Chani

1
Duke Nukem Forever Rev 2.0? Ou Madden Football 2025?
John R. Strohm

0

Armazenar essa quantidade de informação é uma coisa e fazer algo útil com ela é outra. Do meu ponto de vista, não vejo necessidade desse armazenamento, a menos que tenhamos o poder de processamento para utilizá-lo. Talvez o cache de grandes bancos de dados seja uma coisa, mas para o processamento numérico, acho que precisamos de processadores primeiro.


0

Os aplicativos precisarão de tanta memória? Bem possível. Aplicativos como previsões do tempo, simulações físicas em geral ou criptografia provavelmente sempre se beneficiarão de mais memória e mais poder de processamento. E quem sabe qual será o aplicativo assassino daqui a 50 a 100 anos? Displays holográficos? Tabelas Rainbow para todas as senhas possíveis de 100 caracteres?

É fisicamente possível representar tanta memória? Definitivamente possível. Por exemplo, um computador quântico de 100 qubit pode representar o mesmo número de estados que um computador clássico de 2 ^ 100 bits. Muito mais do que os 2 ^ 67 bits de espaço de endereço que temos agora. (Eu sei, um computador quântico de 100 qubit soa como ficção científica. Não estou convencido de que algum dia será possível criar um. Mas, por outro lado, provavelmente poderia ser dito o mesmo sobre qualquer tecnologia que será usada 50 daqui a 100 anos.)

Mas duvido seriamente que "espaços de endereço simples" sejam a principal preocupação até então. Talvez estejamos desenvolvendo algoritmos quânticos até então, onde o conceito de "espaço de endereço" não faz muito sentido. Mesmo se os computadores permanecerem "clássicos", provavelmente teremos que lidar com um número assustador de unidades de processamento com memória não uniforme anexada a eles.


"O computador quântico de 100 qubit pode representar o mesmo número de estados que um computador clássico de 2 ^ 100 bits". Não é assim que os qubits funcionam. Um computador de 100 qubit pode representar o mesmo número de estados que um computador de 100 bits. A diferença é que o computador de 100 qubit pode representar a superposição de todos esses estados em um momento. A outra coisa sobre os qubits é que, quando você os ler, receberá apenas uma resposta e será completamente aleatória.
precisa saber é o seguinte

@JimmyJames: Exatamente. Portanto, se você deseja representar as mesmas informações que um computador quântico de 100 qubit possui em um único momento em um computador clássico (por exemplo, para simulá-lo), precisará de muito mais do que 100 bits. Foi o que eu disse. (Ou quis dizer, de qualquer maneira.)
Nikie

Novamente, não é assim que funciona. Um registro de 2 bits pode representar 4 valores. Um registro de 2 qubit pode representar 4 valores. Ambos são capazes de representar o mesmo intervalo de valores. O registro qubit pode representar todos os 4 ao mesmo tempo. Essa é a diferença.
JimmyJames

@ JimmyJames: É como dizer que um registro "clássico" de 2 bits pode representar 2 valores, mas ao mesmo tempo. Pense da seguinte maneira: se você quisesse simular um computador quântico em um computador clássico, quantos bits você precisaria para armazenar o estado completo do computador quântico de 2 qubit a qualquer momento t ?
Nikie

Eu entendo, mas eu, mas o que está faltando é que você não pode recuperar um valor específico dos qubits. Isto é, dado um qubit em superposição, quando é lido, você receberá 1 ou 0, mas você não pode recuperar os valores por causa da decoerência: en.wikipedia.org/wiki/Quantum_decoherence
JimmyJames

0

O que aconteceria se cada local de memória tivesse um endereço exclusivo globalmente?

  • Os protocolos de rede podem se tornar muito mais simples.
  • Objetos distribuídos seriam interessantes - todos os objetos poderiam existir no mesmo espaço de memória.
  • Talvez passássemos para as memórias "escrever uma vez" e incluíssemos o tempo como parte da estrutura de endereço. Você pode ler objetos que existiam no passado.
  • Todo o armazenamento secundário seria diretamente endereçável. Despedir FILE, fopen()etc.
  • Você pode ser preso por escrever para um indicador ruim e mangueira na máquina de outra pessoa.
  • Os alunos precisariam ser examinados antes da primeira aula de ciências da computação: pouquíssimas pessoas aguentariam o vórtice de perspectiva total .

0

Apenas "pensando em voz alta" aqui, mas me ocorreu que alguém poderia fazer coisas semânticas interessantes com os 64 bits restantes em um computador, digamos, de 128 bits. Cf. a maneira como o IP funciona.

Tenho certeza de que as pessoas poderiam usar usos divertidos para algo assim. :) Alguém sabe para que o PS3 usa seus endereços de 128 bits? Certamente você não desperdiçaria toda essa memória extra (e eu estou falando apenas da memória dos endereços reais, não do que esses endereços apontam). Endereços como dados. Você pode até codificar uma ramificação no próprio endereço ... ou seja, 0x [ifAddress] [elseAddress] Os sistemas com vários núcleos também podem se beneficiar desse tipo de segmentação. E e...


0

Existe alguma razão para ir além da arquitetura de 64 bits? (18.446.744.073.709.551.615 bytes de memória endereçável)

Usando o padrão IEEE 1541-2002 referente ao uso de prefixos para múltiplos binários de unidades de medida relacionadas à eletrônica e computação digitais, 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

E assim por diante, para Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte e Monoicosebyte.

O armazenamento total da unidade Earth é estimado em cerca de 2.500 Exabytes a partir de 2016.

Um registro de 64 bits pode acessar diretamente 15 Exabytes de memória. Um registro de 128 bits pode acessar diretamente 3,40282367 × 10 ^ 35 Zettabytes. Ou 295.147.905.247.928.000 monoicosebytes.

Assim, podemos ver que um registro de 128 bits estaria em uma boa posição para acessar toda a memória da Terra, tudo já enviado na Internet, todas as palavras ditas ou escritas, todos os filmes e muito mais, por muito tempo. .

Portanto, a resposta é sim , dependendo de uma estrutura que possa apontar para qualquer coisa digital que já foi ou será .


0

A melhor estimativa que posso encontrar para o número de neurônios em um cérebro humano médio é de cerca de 86 bilhões. Não podemos comparar diretamente a RAM com os neurônios em geral, mas em uma rede neural você meio que pode. São necessários vários endereços para representar o estado do neurônio ou uma sinapse. Então, vou fazer um palpite e dizer que estamos vendo algo como um trilhão de endereços para criar uma rede neural que seria comparável a um cérebro humano. Então, se isso pode ser feito, não vejo por que não iria muito além disso. Os tipos de problemas que uma rede como essa poderia ser capaz de contemplar estariam além de nossas habilidades de compreensão e também por que eles precisariam ser tão grandes para fazê-lo.


0

É o espaço de endereço. Digamos que alteremos o padrão C para que o realloc não tenha permissão para alterar o ponteiro usado. Posso alocar 2 ^ 33 blocos de memória hoje (exigiria 192 GB de RAM no meu Mac, 8 bilhões de vezes um ponteiro de 8 bytes e 16 bytes de espaço alocado, por isso não posso fazer isso agora, mas poderia comprar um Mac que possa fazer isso. sem tirar uma nova hipoteca).

E posso realocar qualquer um desses ponteiros para conter 2 ^ 33 bytes. Porém, não muitos ao mesmo tempo :-) Se o realloc não permitir mover ponteiros e 2 ^ 33 bytes forem permitidos, os ponteiros originais deverão estar separados por 2 ^ 33 bytes, o que significa que são necessários 2 ^ 66 bytes de memória.


-1

Claro, não vejo razão para que essa quantidade de espaço não seja necessária no futuro. Se você considera o desenvolvimento de jogos, não há limite para quão realista ou complexo um jogo pode ser feito, certo? (Detalhe dos gráficos / número de polígonos utilizados e algoritmos que definem a interação e o comportamento dos objetos)?

Quem sabe, daqui a 10 anos, estaremos jogando jogos de 10 TB com requisitos mínimos de 12 GB de RAM e um processador de 8 núcleos. : P


Não há limite para detalhes. Mas há um limite para o silício.
precisa

-1

Há 20 anos, havia 2 bilhões a menos de pessoas no planeta e a maioria dos sistemas de computadores tinha memória endereçável que podia ser medida em kilobytes. Hoje, a população do mundo aumenta na mesma proporção e o número de usuários de computadores aumenta exponencialmente a cada ano.

É verdade que muito poucos sistemas precisam de um espaço de endereço completo de 64 bytes. Alguns sistemas armazenam terabytes de informações todos os dias, no entanto. Isso foi possível devido ao aumento de usuários de computador e velocidade da internet. Já podemos suportar velocidades de internet de 10 GB / s após apenas 23 anos após a invenção do HTTP. A esse ritmo, acho que seria tolice não esperar 1 TB / s ou maiores velocidades de internet em 50 anos. Quando todos nós podemos mover dados com tanta rapidez, haverá mais dados a serem armazenados, enquanto mais pessoas existirão para armazená-los e é quase inevitável que haja outra transição generalizada para um sistema de 128 bits e, eventualmente, 256 e 512 bits.


Você está correto em todos os aspectos, no entanto, você perdeu o meu ponto. O setor de computação tem menos de 100 anos e, se continuar crescendo como nas últimas décadas, não seria apenas tolice supor que atingimos nosso limite neste momento, mas é ignorante quanto às demandas do futuro. O espaço de endereço não é a única razão pela qual precisaríamos de uma arquitetura de 64 bits. Os conjuntos de instruções podem crescer muito e os ponteiros de 128 bits de largura são mais eficientes e preferidos. Outro benefício é o espaço de registro da CPU que muda para uma arquitetura de bit mais alta.
Andrew Katz

Não sei por que escrevi todos esses comentários - apenas o mau humor é minha melhor desculpa. O voto negativo não é meu, no entanto.
31313 Steve314

-1

Sim, os aplicativos não preenchem todos os bytes de espaço virtual. a aleatorização do layout do espaço de endereço obteria o maior benefício.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.