Потребуются ли приложениям реального мира 128-битное плоское адресное пространство?


32

Это немного "одного мегабайта должно хватить на всех", но ...

64-разрядное плоское адресное пространство позволяет в 4,3 миллиарда раз больше пространства, чем 32-разрядное адресное пространство. Это 17 179 869 184 ГиБ.

Очевидно, что переход от 8 бит к 16 битам был довольно быстрым (я смотрю на вещи подростком в 80-х, игнорируя все эти мэйнфреймы и мини, потому что они не могли управлять портом Elite). Переход от 16 бит к 32 битам занял немного больше времени, и 32 бит на самом деле длились довольно долго.

Теперь у нас есть 64 бита, глупо ли было бы говорить, что «17,179,869,184 ГиБ должно быть достаточно для всех»?

Это вопрос программистов, потому что я действительно думаю о программировании. Даже если у компьютера когда-нибудь будет, казалось бы, бесконечный объем рабочей памяти, это не значит, что приложениям нужно будет видеть, казалось бы, бесконечное плоское адресное пространство.

По сути, можем ли мы программисты вздохнуть с облегчением и сказать: «Ну, что бы ни делали целые числа или числа с плавающей запятой, по крайней мере, мне больше не нужно беспокоиться о том, что мои указатели больше растут?».


11
Сколько данных LHC генерирует каждый день?
Питер Тейлор

7
8-разрядные процессоры фактически имели 16-разрядное адресное пространство - отсюда и «быстрый переход» :-)
Нил Баттерворт

1
Чтобы обеспечить некоторый контекст, 128-битное адресное пространство обеспечивает примерно столько адресов, сколько звезд в наблюдаемой вселенной или половина атомов в нашей галактике (с точностью до пары порядков величины).
Рейн Хенрикс

5
@ Rein: Другими словами, недостаточно. Как мы можем моделировать вселенную с недостаточным количеством адресов памяти даже для половины атомов в нашей собственной галактике. amiright
Квентин Старин

7
Я думаю, что на это можно ответить довольно легко; Звездный путь Холодек. Достаточно сказано.
Данк

Ответы:


27

Я не думаю, что в обозримом будущем у нас будут машины с более чем 2 ^ 64 байтами ОЗУ, но это еще не все, для чего полезно адресное пространство.

Для некоторых целей полезно отобразить другие вещи в адресное пространство, файлы являются важным примером. Итак, разумно ли в обозримом будущем иметь более 2 64 байт любого типа хранилища, подключенного к компьютеру?

Я бы сказал да. Там должно быть более 2 ^ 64 байт памяти, так как это всего около 17 миллионов человек с терабайтными жесткими дисками. Несколько лет назад у нас были базы данных с несколькими петабайтами, а 2 ^ 64 - это всего лишь 17 тысяч петабайт.

Я думаю, что мы можем использовать адресное пространство> 2 ^ 64 в течение следующих нескольких десятилетий.


4
Это заставляет меня думать о плоской адресации для адресации любого байта памяти, доступного в Интернете. Мне кажется, я что-то слышал об операционных системах, которые обеспечивают единую адресацию всего хранилища в системе (нет необходимости отображать файлы в память - они уже есть). Чтобы сделать IP-адрес частью вашей памяти, потребуется более 64 бит - для IPv6 уже нужно 128 бит только для адреса. Было бы огромное количество избыточности в адресном пространстве, но это все еще могло иметь смысл.
Steve314

2
Да. Это упростит жизнь, если вы отобразите все свои диски и файлы в адресное пространство. Огромное количество кода, связанного с манипулированием файлами на диске, было бы намного проще, если бы у вас был просто указатель на весь файл. Архитектура сегмент: смещение была бы идеальной для такого рода вещей.
Лорен Печтел

Это предполагает, что каждый байт всех устройств хранения данных будет напрямую адресуемым.
vartec

2
@ steve314: Вы думаете о концепции одноуровневого магазина , впервые предложенной IBM S / 38. Интересные вещи, но я думаю, что было бы сложно интегрировать их с современными системами.
TMN

1
@ TMN: хорошо, IBM i (он же i5 / OS, он же OS / 400) все еще использует его и, возможно, по-прежнему остается одной из «современных систем».
Иоахим Зауэр

16

Если компьютеры не начнут использовать некоторые прорывные технологии, которые еще не существуют даже в лабораториях, использование более чем 2 64 адресуемых пространств просто физически невозможно при современной кремниевой технологии . Технология поражает физические пределы . Ограничение скорости (ГГц) было достигнуто уже несколько лет назад. Предел миниатюризации также очень близок. В настоящее время самая передовая технология в производстве составляет 20 нм, в лабораториях - 4 нм с транзисторами из 7 атомов.

Просто для того, чтобы оценить, сколько времени потребуется для разработки новой технологии: современные компьютеры основаны на транзисторах, изобретенных в 1925 году, а современная кремниевая технология восходит к 1954 году.


Что касается альтернативных технологий:

  • оптические вычисления - могут повысить скорость вычислений, но не решают проблему миниатюризации хранилища;
  • квантовые вычисления - для их полного использования потребуется совершенно новая парадигма программирования, поэтому, если указатели будут 64- или 128-битными, это меньше всего вас беспокоит. Также к этой технологии применяются те же физические ограничения на миниатюризацию;
  • Вычисления ДНК - это игрушки-концепты, разработанные для решения одного конкретного класса проблем. Не возможно для реального использования. Чтобы получить вычисления, которые на обычном ПК будут выполняться менее чем за одну секунду, потребуется ДНК-бак размером с Тихий океан и несколько тысяч лет. Поскольку это естественный биологический процесс, его невозможно миниатюризировать или ускорить.

4
Итак, вы говорите, что технологических прорывов больше не будет? Мы застрянем на кремниевой технологии навсегда. Радикально новые вещи, такие как квантовые вычисления или ДНК-компьютеры, навсегда останутся в исследованиях. Вы действительно в это верите?
nikie

2
@nikie: квантовые компьютеры не волшебство. Они все еще используют атомы. Они все еще ограничены физикой. ДНК компьютеры? Ты серьезно??? Это абсолютно бесполезно, кроме того, что является доказательством концепции.
vartec

4
@Thor: ну, в 2011 году физически невозможно посадить человека на Луну.
vartec

7
Почему -1? Резюме имеет очень прочное обоснование. 2 ^ 64 - очень, очень, очень большое число. Это не 2 ^ 32 * 2, это намного больше, а 2 ^ 128 довольно безумно. Это заняло бы очень много времени for(unsigned __int128 i=0; i<2^128; i++){}. С текущей технологией не так много использования 128-битных чисел. Помимо, возможно, возврата к незащищенному адресному пространству, потому что случайно наступить на память других приложений в 128-битном адресном пространстве было бы практически невозможно, даже если вы случайным образом записывали случайные адреса.
Кодер

2
@nikie: Квантовые компьютеры не имеют отношения к этому обсуждению, поскольку использование современных моделей памяти (которые здесь обсуждаются) на квантовых компьютерах разрушает их цели. О, да, ДНК-компьютеры никогда не будут полезны. Это похоже на использование клеточных автоматов в качестве основы для модели исполнения.
back2dos

15

Суперкомпьютер, с которым связан Торбьерн, имеет около 2 47 Б физической памяти.
Предполагая, что закон Мура действует для памяти суперкомпьютеров, он станет 2 ^ 64 В физической памяти всего за 34 года. Это как "OMG, мы доживем до этого !!!!" Может быть. И действительно, это увлекательно. Но так же не имеет значения.

Вопрос в том, нужно ли 128-битное адресное пространство для использования 2 ^ 65 B физической памяти?
Ответ НЕТ . Мне нужно 128-битное адресное пространство для адресации 2 ^ 65 B виртуальной памяти из одного процесса .

Это является ключевым моментом вашего вопроса, «Будут ли в реальном мире приложений когда - либо нужно 128-бит плоского адресного пространства?». « Нужно », не совсем, вы можете обойтись с меньшими затратами, сделать адресное пространство сопоставленным (не плоским); но тогда у вас не будет «плоского 128-битного адресного пространства».

В качестве примера, предположим, что вы хотите присвоить атомам на Земле физический адрес памяти (по какой-либо причине, главным образом для предоставления этого простого примера), начать с нуля и продолжать считать (ответьте мне, когда закончите). Теперь кто-то еще хочет сделать то же самое на Kepler-10c (который находится в 568 метрах).

Вы не хотели бы столкновения адресов, поэтому другой человек выделяет высокий адрес памяти в доступном пространстве памяти , что позволяет вам, им и следующим людям быть адресованными напрямую , без отображения памяти. Если вы этого не сделаете или можете обойтись без взаимно-однозначного отношения между вашей памятью и ее адресом (вы готовы реализовать разреженный массив), то вы можете обойтись ничтожной 64-битной памятью или меньше.

Всякий раз, когда кто-то предлагает « X количества Y будет достаточно », такой прогноз часто остается недолговечным.

Таким образом, вопрос заключается в следующем: как скоро у нас будут отдельные процессы , которые используют 2 ^ 65 B памяти. Надеюсь никогда.

Большая проблема нашего времени заключается в том, что вычислительная мощность одного процессора ограничена. Существует ограничение в размере, определяемом размером атомов, и для данного размера существует ограничение в тактовой частоте, определяемой скоростью света, скоростью, с которой информация об изменениях магнитных полей распространяется в нашей вселенной.
И на самом деле, предел был достигнут несколько лет назад, и мы установили тактовые ставки ниже, чем они были ранее. Мощность процессора больше не будет линейно увеличиваться. Производительность теперь повышается за счет выполнения не по порядку, прогнозирования ветвлений, увеличения кэшей, большего количества кодов операций, векторных операций и чего-то еще. Там была архитектурная оптимизация .
И важной идеей является идея распараллеливания. Проблема с распараллеливанием заключается в том, что он не масштабируется. Если вы написали медленный код 20 лет назад, он работал намного быстрее 10 лет назад. Если вы напишите медленный код сейчас, он не станет намного быстрее через 10 лет.

Процессы, которые используют 2 ^ 65 B памяти, являются признаком крайней глупости. Это показывает, что не было никакой архитектурной оптимизации . Для разумной обработки этих данных вам потребуется около 10 миллионов ядер, большая часть которых будет тратить время на ожидание доступности какого-либо ресурса, поскольку те ядра, которые фактически получили этот ресурс, используют физическую память через Ethernet на совершенно другой машине. Ключом к решению больших и сложных проблем является разложение их на небольшие простые задачи, а не построение все более крупных и все более сложных систем. Вам нужно горизонтальное разбиение, когда имейте дело с sh * tloads данных.

Но даже если предположить, это безумие должно продолжаться, будьте уверены , 128 бита является достаточно :

  • Земля имеет около 8,87e + 49 атомов , что составляет 2 ^ 166 атомов, которые мы имеем .
  • Давайте предположим, что удержание одного бита стоит 2 ^ 20 атомов. Это включает в себя также всю проводку и пластик и мощность, которая идет с ним. Вы не можете просто бросить транзисторы в коробку и назвать это компьютером. Так что 2 ^ 20 выглядит довольно оптимистично.
  • Чтобы использовать 128-битное адресное пространство, нам нужно 2 ^ 133 бита, поэтому нам нужно 2 ^ 152 атома . Предполагая равное распределение атомов на земле, давайте посмотрим, сколько коры мы должны взять, чтобы получить их:

    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
    

    Таким образом, у вас есть 130 метров на всю поверхность (включая 80% воды, песка или льда). Этого не случится. Даже если предположить, что вы можете его выкопать (смеется), и все это пригодно для переработки в чипсы, где вы получите энергию?


8
С другой стороны, вам понадобится очень большой компьютер для оценки воздействия на окружающую среду для добычи полезных ископаемых на всей планете, так что, возможно, он оправдает себя (получая немного Hitch Hikers здесь)
Мартин Беккет

2
Один бит = 10 ^ 6 атомов. Вся Земля = 10 ^ 50 атомов. Вся вселенная = 10 ^ 80 атомов. Экспоненциальная запись - это круто! :-)
Konamiman

2
Суть не в том, чтобы использовать все 128-битное адресное пространство, а в том, чтобы использовать 64-битное адресное пространство. Так в какой момент нам нужен один дополнительный бит адресации помимо 64 бит? Сколько физического пространства (молекул) необходимо для 2 ^ 65 байт?
Дэвид Р. Триббл

1
Итак, вы говорите, что физическая 128-битная архитектура памяти требует производственных возможностей планетарного масштаба ?
помещении

Одноатомные транзисторы были разработаны. Как вы добираетесь до 2 ^ 20 (около миллиона) атомов на число бит? ru.wikipedia.org/wiki/5_nanometer
JimmyJames

8

Ну, мы можем определенно использовать большое адресное пространство.

Вообразите это:

  1. Адресное пространство не ограничено одним компьютером. Вместо этого адрес однозначно идентифицирует ячейку памяти в универсальном адресном пространстве. Таким образом, вы можете иметь указатель на ячейку памяти на любом компьютере в мире. Должен быть какой-то протокол, позволяющий читать из удаленной памяти, но это деталь реализации. :-)

  2. Память записывается один раз, считывается много, т.е. вы можете записать данные на адрес памяти только один раз. Для изменяемого значения вам придется выделять новый фрагмент памяти каждый раз, когда он изменяется. Мы, программисты, начали видеть плюсы неизменяемости и транзакционной памяти, поэтому аппаратный дизайн, который даже не допускает перезаписи памяти, не может быть такой невозможной идеей.

Объедините эти две идеи, и вам понадобится огромное адресное пространство.


И зачем вам обращаться к каждому байту каждого компьютера в мире? (Я предполагаю, что вы не АНБ.)
Дэвид Р. Триббл

потому что мы собираемся построить повелителя искусственного интеллекта ушедшего разума, чтобы, конечно, привести нас к спасению!
Сара

7

Чем более способными становятся компьютеры, тем более сложные проблемы им требуются для работы.

Самый большой суперкомпьютер, указанный на top500.org, - это http://www.top500.org/system/10587 с оперативной памятью около 220 ТБ и 180000 ядрами. Другими словами, это то, с чем «реальные приложения» могут работать на этой платформе.

Современные компьютеры столь же мощны, как и суперкомпьютеры 10–15 лет назад (хотя вычислительная мощность может быть скрыта в вашей видеокарте).

Таким образом, коэффициент 100 в памяти через 10-15 лет будет означать, что 64-разрядное адресное пространство будет ограничивающим фактором примерно через 100 лет (поскольку log (100 миллионов) / log (100) составляет около 6), если текущий тренд сохраняется.


примечание: математика не проверена, вероятно, совсем не так.

17
это похоже на предсказание 1800-х годов, что, если транспорт вырастет так сильно, целые города будут покрыты горами конского навоза :-P
vartec

1
220 ГБ это не так много в наши дни. Есть серверы с 256 ГБ оперативной памяти. 180000 ядер? Теперь это что-то :). Я только указываю на это, потому что основной проблемой OP является размер оперативной памяти.
Тамас Селей

1
@vartec, просто показывает, что слепая экстраполяция может быть недействительной. То же самое и здесь.

6
Тамас был прав: в предоставленной вами ссылке указано «229376 ГБ», что больше похоже на 220 ТБ. Кроме того, принимая во внимание, что кэш-память второго уровня объемом 4 МБ на ядро, 180-тысячные ядра уже имеют кэш-память второго уровня объемом 720 ГБ;)
back2dos

5

Весь этот поток довольно забавно читать, очень сильное мнение за и против ...

Здесь что-то ..

Из вопроса я понимаю, что это была технология, независимая и не связанная временем. Таким образом, текущее развитие в кремнии, квантовых компьютерах или Abacus бесконечной обезьяны в действительности не имеет значения.

Расчеты и экстраполяции также довольно забавны, хотя ответ от back2dos работает довольно хорошо, чтобы проиллюстрировать абсолютный размер того, что представляет это число. так что давайте работать с этим.

Помните о своем будущем, когда человек больше не привязан к границам своей маленькой планеты, был разработан реалистичный способ транспортировки, позволяющий осуществлять перевозки на очень большие расстояния, и социальные структуры (экономические, политические и т. Д.) Эволюционировали, чтобы превзойти поколения. Проекты фараонов стали обычным явлением. Давайте сконцентрируемся на двух аспектах этого надуманного видения будущего, если кто-то захочет потратить время на объяснение каждой детали, я вполне уверен, что можно было бы рационализировать все это через серию вероятных эволюций современных технологий. Другими словами, правдоподобное, хотя и маловероятное будущее ... во всяком случае ...

Первый проект называется «Колосс» в памяти этого первого электронного компьютера, поскольку это первый планетарный компьютер. Братство Колоссов действительно нашло способ захватить маленький планетоид и превратить его в работающий компьютер. Недавно обнаруженные в поясе Кайпера, который практически полностью содержит легкоплавкие изотопы, делающие его энергетически автономным, они сделали процесс строительства полностью автономным с помощью зондов, роботов и т. Д., Что делает компьютерную систему самовосстанавливающейся и самостроящейся. В этом случае вполне возможно, что 2 ^ 64 адресного пространства несколько ограничивают этот проект, так как они хотят получить непрерывное адресное пространство, чтобы легко переносить приложения, уже существующие для другого проекта.

Другой проект является скорее экспериментом в сети, чем физической системой, но он быстро продемонстрировал, что необходимо большее адресное пространство. 540 лет назад молодой хакер занимался идеей создания гигантской бот-сети. Интернет уже расширился и теперь включает зарождающиеся колонии вокруг Солнечной системы, основанные на значительных достижениях в области термоядерного синтеза. Его идея заключалась в том, чтобы в сети были распространены маленькие боты, но полезная нагрузка была предназначена для создания единой виртуальной машины, на которой был бы написан код, предполагая, что в нем объединены все возможности всех ботов. Большие усилия были приложены к компилятору и развертыванию, пытаясь оптимизировать лаги и сложные алгоритмы, разработанные для учета внутренней ненадежности базовой среды. Язык был специально написан для этого нового " вместо этого наш хакер создал зонтичную компанию и продал вычислительную мощность самой высокой цене. Когда он умер, он пожертвовал этот ботнет и все технологии в фонд. В тот момент ботнет уже работал 64 года и уже давно перерос адресное пространство 2 ^ 64, разрушив предвзятое 1000-летнее предубеждение о том, что нам никогда не потребуется больше адресного пространства. В настоящее время 2 ^ 128 является нормой и тем, что будет использоваться для Колосса, но уже есть планы расширить это до 2 ^ 256. вместо этого наш хакер создал зонтичную компанию и продал вычислительную мощность самой высокой цене. Когда он умер, он пожертвовал этот ботнет и все технологии в фонд. В тот момент ботнет уже работал 64 года и уже давно перерос адресное пространство 2 ^ 64, разрушив предвзятое 1000-летнее предубеждение о том, что нам никогда не потребуется больше адресного пространства. В настоящее время 2 ^ 128 является нормой и тем, что будет использоваться для Колосса, но уже есть планы расширить это до 2 ^ 256.

Я мог бы, вероятно, придумать более квази вероятные сценарии, которые иллюстрируют, что да ... вполне возможно, нет, почти наверняка, что однажды нам потребуется адресное пространство больше, чем это.

Тем не менее, я не думаю, что потерял бы сон из-за этого, если ваше приложение требует определенного адресного пространства для правильной работы, то, скорее всего, оно будет жить в виртуальной машине, которая дает все, что ему нужно ...

Таким образом ... короткий ответ ...

ДА, скорее всего

но

Почему бы не заняться этим, когда возникнет проблема ... Лично я никогда не делаю предположений в своих программах, поэтому никогда не получаю сюрпризов.


2
Меня удивляет уровень детализации в вашем вымышленном примере. Вы пишете где-нибудь рассказ?
Кристофер Биббс

2

Расположение адресов имеет логарифмическую стоимость по отношению к ширине адреса, поэтому мы можем рассмотреть верхние границы на основе рассматриваемых параметров:

64-битный для частиц песка на земле = 7,5x10 ^ 18
128-битный для звезд в наблюдаемой вселенной = 10 ^ 24
256-битный для частиц в земле = 10 ^ 50
512-битный для частиц в наблюдаемой вселенной = 10 ^ 82
1024 -бит для кубических длин планок в наблюдаемой вселенной = 4.65 × 10 ^ 185

6,6106 ... × 10 ^ 122-бит для возможных конфигураций частиц в наблюдаемой вселенной = 10 ^ (10 ^ 122)

Мы могли бы принять возможные конфигурации в качестве верхней границы для максимально возможного физически возможного адреса памяти.


Чтобы вычислить ширину, необходимую для n адресов, введите это в вольфрам альфа: 2 ^ ceil (log2 (log2 ( n )))
Тимоти Свон,

1
Вы правы, что может быть полезно иметь сильно избыточные адресные пространства, в которых большинство адресов вообще ни на что не ссылаются, как в вашей точке хэширования и т. Д., Но я думаю, что кто-то даже предлагал кодировать URL-адреса в виртуальные адреса машины (а не просто их хэши), поэтому на самом деле нет верхней границы того, насколько бесполезной / избыточной может быть будущая схема виртуальной адресации. Не то, чтобы кодирование данных в адреса (в отличие от поиска их в потенциально защищенных таблицах при необходимости), конечно, звучит как хорошая идея.
Steve314

0

Ну, я думаю, что через несколько лет вы, вероятно, вздохнете с облегчением. Если вы посмотрите на скорость инноваций в аппаратном обеспечении, можно заметить, что за последние несколько лет значительных достижений не произошло. Процессоры с частотой 2.x ГГц существуют уже давно, и любое увеличение вычислительной мощности в настоящее время происходит из-за упаковки большего количества ядер в чип. Емкость диска все еще растет, но не такими же темпами, как 10 лет назад.

Я думаю, что наши современные технологии приближаются к пределам физики.

Что это значит для будущего? Я думаю, что для того, чтобы получить новые качественные скачки в обработке информации, нужно будет использовать совершенно новые технологии. Эти технологии, вероятно, будут использовать «программное обеспечение», хотя, возможно, в контексте, совершенно чуждом тому, что есть сегодня. И кто знает, какие требования к адресному пространству они имеют или могут предоставить? Или адресное пространство является даже значимым понятием в этой технологии?

Так что пока не уходите в отставку.


Скорость процессора - это несколько иное понятие, чем объем памяти.

Я не уверен, что вы можете сделать вывод, что поскольку скорость процессора за последние несколько лет не сильно возросла, это как-то связано с приближением к физическим пределам. Фактом является то, что многоядерные процессоры были в моде в последние несколько лет, и, возможно, производители процессоров вкладывают свои деньги в то, как наилучшим образом использовать все эти процессоры вместе, а не тратят свои деньги на усовершенствования тактирования. Даже крупные компании имеют ограничение на свои исследовательские доллары. Емкость диска все еще растет довольно быстро, ИМО. Только что увидел диск на 3 ТБ за 140 долларов.
Данк

0

Да, будет. (Игры? Предметы, связанные с искусственным интеллектом?)

Более подходящий вопрос может заключаться в том, будет ли это учитываться типичным программистом. Подумайте о том, как Ruby автоматически конвертирует числа из FixNum в BigNum и обратно при необходимости. Я был бы удивлен, если другие языки (по крайней мере, динамические) не делают то же самое в конце концов.


1
о да. черт возьми да Я хочу играть в игру, которая ооочень крутая, она должна использовать 128-битную арифметику !!!!!!!!!
Чани

1
Duke Nukem Forever Rev 2.0? Или Madden Football 2025?
Джон Р. Штром

0

Хранить такое количество информации - это одно, а делать что-то полезное - совсем другое. С моей точки зрения, я не вижу необходимости в этом хранилище, если у нас нет вычислительной мощности, чтобы его использовать. Возможно, кэширование огромных баз данных - это одно, но для числовой обработки, я думаю, нам сначала нужны процессоры.


0

Потребуются ли приложениям столько памяти? Вполне возможно. Приложения, такие как прогнозы погоды, физическое моделирование в целом или криптография, вероятно, всегда выиграют от большей памяти и большей вычислительной мощности. И кто знает, каким будет приложение-убийца через 50-100 лет? Голографические дисплеи? Радужные таблицы для каждого возможного 100-символьного пароля?

Можно ли физически представить столько памяти? Определенно возможно. Например, 100-кубитный квантовый компьютер может представлять такое же количество состояний, что и классический 2 ^ 100-битный компьютер. Намного больше, чем 2 ^ 67 бит адресного пространства у нас сейчас. (Я знаю, что 100-кубитный квантовый компьютер звучит как научная фантастика. Я не уверен, что когда-нибудь удастся его создать. Но с другой стороны, то же самое можно сказать и о любой технологии, которая будет использоваться 50 или через 100 лет.)

Но я серьезно сомневаюсь, что к тому времени главной проблемой будут «плоские адресные пространства». Возможно, к тому времени мы будем разрабатывать квантовые алгоритмы, где концепция «адресного пространства» не имеет особого смысла. Даже если компьютеры останутся «классическими», нам, вероятно, придется иметь дело с пугающим числом процессорных блоков с неоднородной памятью, прикрепленной к ним.


«100-кубитный квантовый компьютер может представлять такое же количество состояний, что и классический 2 100-битный компьютер». Это не совсем так, как работают кубиты. 100-битный компьютер может представлять такое же количество состояний, что и 100-битный компьютер. Разница в том, что 100-кубитный компьютер может представлять суперпозицию всех этих состояний в один момент. Еще одна вещь, касающаяся кубитов, заключается в том, что когда вы будете читать их, вы получите только один ответ, и он будет совершенно случайным.
JimmyJames

@JimmyJames: Точно. Поэтому, если вы хотите представить ту же информацию, что и квантовый компьютер со скоростью 100 кубитов, в один момент времени на классическом компьютере (например, для его моделирования), вам потребуется более 100 бит. Это то, что я сказал. (Или имел ввиду, во всяком случае.)
nikie

Опять же, это не так, как это работает. 2-битный регистр может представлять 4 значения. 2-кубитовый регистр может представлять 4 значения. Они оба могут представлять один и тот же диапазон значений. Регистр кубита может представлять все 4 одновременно. В этом разница.
JimmyJames

@JimmyJames: Это как сказать, что 2-битный «классический» регистр может представлять 2 значения, но в то же время. Подумайте об этом следующим образом: если вы хотите смоделировать квантовый компьютер на классическом компьютере, сколько раз вам потребуется для хранения полного состояния 2-кубитного квантового компьютера в любой момент времени t ?
nikie

Я понимаю, но мне не хватает того, что вы не можете получить определенное значение из кубитов. То есть, учитывая кубит в суперпозиции, когда он читается, вы получите либо 1, либо 0, но вы не можете получить оба значения из-за декогеренции: en.wikipedia.org/wiki/Quantum_decoherence
JimmyJames

0

Что произойдет, если каждая ячейка памяти будет иметь глобально уникальный адрес?

  • Сетевые протоколы могут стать намного проще.
  • Распределенные объекты были бы интересны - все объекты могли бы существовать в одном и том же пространстве памяти.
  • Возможно, мы бы переключились на «однократную запись» памяти и включили время в структуру адреса. Вы могли читать объекты, которые существовали в прошлом.
  • Все вторичное хранилище будет напрямую адресуемым. До свидания FILE, fopen()и т.д.
  • Вас могут арестовать за то, что вы написали на плохой указатель, и за то, что вы взяли чужую машину.
  • Студенты должны будут пройти скрининг перед тем, как брать первый класс CS: очень немногие люди могут противостоять Total Perspective Vortex .

0

Просто «мысли вслух» здесь, но мне просто пришло в голову, что можно делать интересные семантические вещи с оставшимися 64 битами на, скажем, 128-битном компьютере. Ср как работает IP.

Я уверен, что люди могут придумать забавное использование для чего-то подобного. :) Кто-нибудь знает, для чего PS3 использует свои 128-битные адреса? Конечно, вы не будете тратить всю эту дополнительную память (и я говорю только о памяти для фактических адресов, а не о том, на что указывают эти адреса). Адреса как данные. Вы могли бы даже закодировать ветку в самом адресе ... то есть, 0x [ifAddress] [elseAddress] Многоядерные системы могли бы также извлечь выгоду из этого типа сегментации. И и...


0

Есть ли причина выходить за рамки 64-битной архитектуры? (18,446,744,073,709,551,615 байт адресуемой памяти)

Используя стандарт IEEE 1541-2002, касающийся использования префиксов для двоичных кратных единиц измерения, связанных с цифровой электроникой и вычислениями, мы видим, что:

1 байт = 8 бит, 1 килобайт = 1024 байта, 1 мегабайт = 1024 КБ, 1 гигабайт = 1024 МБ, 1 терабайт = 1024 ГБ, 1 петабайт = 1024 ТБ, 1 эксабайт = 1024 ПБ

И так далее для Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte и Monoicosebyte.

По оценкам, общее количество накопителей на Земле составляет около 2500 эксабайт по состоянию на 2016 год.

64-битный регистр может напрямую обращаться к 15 эксабайтам памяти. 128-битный регистр может напрямую обращаться к 3,40282367 × 10 ^ 35 зетабайт. Или 295 147 905 247 928 000 моноикосебайт.

Таким образом, мы можем видеть, что 128-битный регистр будет в хорошем положении для доступа ко всей памяти Земли, всему, что когда-либо отправлялось в Интернете, каждому слову, когда-либо произнесенному или написанному, каждому фильму и многому другому, в течение некоторого времени ,

Таким образом, ответ - да , в ожидании структуры, которая может указывать на любую цифровую вещь, которая когда-либо была или будет .


0

Лучшая оценка, которую я могу найти для числа нейронов в среднем человеческом мозге, составляет около 86 миллиардов. Мы не можем напрямую сравнивать оперативную память с нейронами в целом, но в нейронной сети вы можете. Требуется несколько адресов для представления состояния нейрона или синапса. Поэтому я выкину дикое предположение и скажу, что мы смотрим на что-то вроде триллиона адресов, чтобы создать нейронную сеть, которая была бы сопоставима с человеческим мозгом. Так что, если это можно сделать, я не понимаю, почему это не пойдет намного дальше. Виды проблем, которые такая сеть могла бы рассмотреть, были бы за пределами наших способностей понимать, а также почему они должны быть такими большими, чтобы сделать это.


0

Это адресное пространство. Допустим, мы изменили стандарт C, так что realloc не может изменять используемый указатель. Сегодня я могу выделить 2 ^ 33 блоков памяти (на моем Mac потребуется 192 ГБ ОЗУ, 8-миллиардный 8-байтовый указатель и 16-байтовое выделенное пространство, поэтому я не могу сделать это прямо сейчас, но я мог бы купить Mac, который может делать это без вывоза новой ипотеки).

И я могу перераспределить любой из этих указателей для хранения 2 ^ 33 байтов. Хотя не так много одновременно :-) Если realloc не позволяет перемещать указатели, и разрешено 2 ^ 33 байта, исходные указатели должны быть на расстоянии 2 ^ 33 байта, что означает, что требуется 2 ^ 66 байтов памяти.


-1

Конечно, я не вижу причин, по которым такое количество места не потребовалось бы в будущем. Если вы рассматриваете разработку игр, нет предела тому, насколько реалистичной или сложной может быть игра, верно? (Подробная информация о графике / количестве используемых полигонов и алгоритмах, определяющих взаимодействие и поведение объектов)?

Кто знает, через 10 лет мы можем играть в игры по 10 ТБ с минимальными требованиями: 12 ГБ ОЗУ и 8-ядерный процессор. :П


Нет предела деталям. Но есть предел для кремния.
Билли ONEAL

-1

20 лет назад на планете было на 2 миллиарда человек меньше людей, и большинство компьютерных систем имели адресуемую память, которую можно измерять в килобайтах. Сегодня население мира увеличивается с той же скоростью, и число пользователей компьютеров увеличивается в геометрической прогрессии с каждым годом.

Это правда, что очень немногие системы нуждаются в полном 64-байтовом адресном пространстве. Однако некоторые системы хранят терабайты информации каждый день. Это стало возможным благодаря увеличению числа пользователей компьютеров и скорости интернета. Мы уже можем поддерживать скорость интернета 10 ГБ / с уже через 23 года после изобретения HTTP. При таких показателях я думаю, что было бы глупо не ожидать, что скорость интернета в 1 ТБ / с или выше через 50 лет. Когда все мы сможем перемещать данные так быстро, будет больше данных для хранения, в то время как для хранения этих данных будет больше людей, и почти неизбежно потребуется еще один широко распространенный переход в 128-битную систему, и в конечном итоге 256 и 512 бит


Вы правы во всех отношениях, однако вы упустили мою точку зрения. Индустрии компьютеров менее 100 лет, и если она продолжит расти, как и в течение последних нескольких десятилетий, было бы не только глупо предполагать, что мы достигли нашего предела в данный момент, но она не знает требований будущего. Адресное пространство - не единственная причина, по которой нам нужна 64-битная архитектура. Наборы инструкций могут стать настолько большими, что указатели шириной 128 битов будут более эффективными и предпочтительными. Еще одним преимуществом является пространство реестра ЦП, которое обеспечивает переключение на более высокую битовую архитектуру.
Эндрю Кац

Я не знаю, почему я написал все эти комментарии - просто плохое настроение - мое лучшее оправдание. Хотя это не мое мнение.
Steve314

-1

да, приложения не заполняют каждый байт виртуального пространства. Рандомизация макета адресного пространства получила бы наибольшую выгоду.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.