실제 응용 프로그램에 128 비트 플랫 주소 공간이 필요합니까?


32

이것은 "1 메가 바이트이면 누구에게나 충분해야한다"는 것이지만 ...

64 비트 플랫 주소 공간은 32 비트 주소 공간보다 최대 45 억 배 더 많은 공간을 허용합니다. 17,179,869,184 GiB입니다.

분명히 8 비트에서 16 비트로의 전환은 매우 빨랐습니다 (80 년대 동안 물건을 보았습니다. 엘리트 포트를 실행할 수 없기 때문에 모든 메인 프레임과 미니를 무시하고 있습니다). 16 비트에서 32 비트로 전환하는 데 시간이 조금 더 걸렸으며 32 비트는 실제로 꽤 오래 지속되었습니다.

이제 우리는 64 비트를 가지고 있는데, "17,179,869,184 GiB는 누구에게나 충분해야한다"고 말하는 것이 어리석은가?

프로그래밍 관점을 염두에두고 있기 때문에 이것은 프로그래머의 질문입니다. 언젠가 컴퓨터에 겉보기에 무한한 양의 작업 메모리가 있더라도 응용 프로그램이 겉보기에 무한한 플랫 주소 공간을 볼 필요가 있음을 의미하지는 않습니다.

기본적으로 프로그래머는 안도의 한숨을 쉬면서 "정수 나 실수가 무엇이든간에 적어도 포인터가 더 이상 커질 까 걱정할 필요가 없습니까?"라고 말할 수 있습니까?


11
LHC는 매일 얼마나 많은 데이터를 생성합니까?
피터 테일러

7
따라서 "빠른 전환":-) - 8 비트 프로세서는 실제로 16 비트 주소 공간을 가지고 있었다
닐 버터 워스 (Butterworth)을

1
일부 문맥을 제공하기 위해 128 비트 주소 공간은 관측 가능한 우주에 별이 있거나 우리 은하에있는 원자의 절반만큼 (몇 자릿수 이내) 주소를 제공합니다.
Rein Henrichs

5
@Rein : 다시 말해, 충분하지 않습니다. 우리 자신의 은하계에서 원자의 절반에 대한 메모리 주소가 충분하지 않은 우주를 어떻게 시뮬레이션 할 수 있습니까? amiright
quentin-starin

7
나는 이것이 매우 쉽게 대답 될 수 있다고 생각한다. 스타 트렉 홀로 덱 충분했다.
Dunk

답변:


27

장래에 2 ^ 64 바이트 이상의 RAM을 가진 머신을 가질 것이라고 생각하지는 않지만, 이것이 주소 공간이 모두 유용한 것은 아닙니다.

어떤 목적을 위해 다른 것들을 주소 공간에 매핑하는 것이 유용하며 파일은 중요한 예입니다. 따라서 가까운 미래에 컴퓨터에 2 ^ 64 바이트 이상의 스토리지를 두는 것이 합리적입니까?

예라고 대답해야합니다. 테라 바이트 급 하드 디스크를 가진 약 1,700 만 명에 불과한 2 ^ 64 바이트 이상의 저장 공간이 있어야합니다. 우리는 몇 년 동안 여러 페타 바이트 규모의 데이터베이스를 보유하고 있으며 2 ^ 64는 약 17 천 페타 바이트에 불과합니다.

향후 수십 년 내에 2 ^ 64 이상의 주소 공간을 사용할 것으로 생각합니다.


4
이것은 인터넷에서 사용할 수있는 모든 바이트 스토리지를 처리하기위한 플랫 주소 지정을 생각하게합니다. 필자는 시스템의 모든 저장소에 대한 간단한 주소 지정을 제공하는 운영 체제에 대해 들었습니다 (파일을 메모리에 매핑 할 필요가 없습니다-이미 있습니다). IP 주소를 메모리 주소의 일부로 만들려면 반드시 64 비트 이상이 필요합니다. IPv6에는 주소에 대해서만 128 비트가 필요합니다. 주소 공간에는 엄청난 양의 중복성이 있지만 여전히 의미가 있습니다.
Steve314

2
예. 모든 드라이브와 파일을 주소 공간에 매핑하면 수명이 단축됩니다. 디스크에서 파일을 조작하는 것과 관련된 엄청나게 많은 코드는 단순히 전체 파일에 대한 포인터가 있으면 훨씬 간단합니다. segment : offset 아키텍처는 이런 종류의 것에 이상적입니다.
Loren Pechtel

이것은 모든 대용량 저장 장치의 각 바이트에 직접 주소를 지정할 수 있다고 가정합니다 .
vartec

2
@ steve314 : IBM S / 38이 개척 한 단일 레벨 상점 개념을 생각하고 있습니다. 흥미로운 것들이지만 오늘날의 시스템과 통합하기가 어렵다고 생각합니다.
TMN

1
@TMN : IBM i (일명 i5 / OS, 일명 OS / 400)는 여전히이를 사용하며 여전히 "오늘의 시스템"중 하나입니다.
Joachim Sauer 2018 년

16

컴퓨터가 실험실에도 아직 존재하지 않는 혁신적인 기술을 사용하지 않으면 현재 실리콘 기술로 는 2 64 개 이상의 주소 지정 가능 공간을 물리적으로 사용할 수 없습니다 . 기술이 물리적 한계에 도달하고 있습니다 . 몇 년 전 속도 (GHz) 한계에 도달했습니다. 소형화 한계도 매우 가깝습니다. 현재 생산에서 가장 앞선 기술은 20nm이며, 실험실에서는 7 개의 원자로 이루어진 트랜지스터가있는 4nm입니다.

새로운 기술을 개발하는 데 걸리는 시간을 간단히 살펴보면 현재 컴퓨터는 1925 년에 발명 된 트랜지스터를 기반으로하며 현재 실리콘 기술은 1954 년으로 거슬러 올라갑니다.


대체 기술에 관해서는 :

  • 광학 컴퓨팅 — 컴퓨팅 속도를 향상시킬 수 있지만 스토리지의 소형화 문제를 해결하지는 못합니다.
  • 양자 컴퓨팅 — 완전히 사용 되려면 완전히 새로운 프로그래밍 패러다임이 필요하므로 포인터가 64 비트 또는 128 비트라면 걱정할 필요가 없습니다. 또한 소형화에 대한 동일한 물리적 제한이이 기술에 적용됩니다.
  • DNA 컴퓨팅 -하나의 특정 종류의 문제를 해결하도록 설계된 개념 증명 완구입니다. 실제 사용에는 적합하지 않습니다. 정상적인 PC에서 1 초 이내에 수행되는 계산을 얻으려면 태평양 크기와 수천 년의 DNA 탱크가 필요합니다. 자연적이고 생물학적 인 과정이기 때문에이를 최소화하거나 가속화 할 방법이 없습니다.

4
기본적으로 더 이상 기술 혁신이 없을 것이라고 말하고 있습니까? 우리는 실리콘 기술을 영원히 고수 할 것입니다. 양자 컴퓨팅이나 DNA 컴퓨터와 같은 근본적으로 새로운 것들은 영원히 연구에 남을 것입니다. 당신은 정말로 그것을 믿습니까?
니키

2
@nikie : 양자 컴퓨터는 마술이 아닙니다. 그들은 여전히 ​​원자를 사용합니다. 그들은 여전히 ​​물리학에 의해 제한됩니다. DNA 컴퓨터? 진심 이냐 ??? 개념 증명 외에는 전혀 쓸모가 없습니다.
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 비트 주소 공간의 다른 응용 프로그램 메모리를 밟는 것은 불가능하기 때문에 보호되지 않은 주소 공간으로 돌아가는 것 외에는 불가능합니다.
Coder

2
@nikie : 퀀텀 컴퓨터는이 토론과 관련이 없습니다. 퀀텀 컴퓨터에서 현재 메모리 모델 (여기에서 다루는 주제)을 사용하면 전체 목적이 무효화되기 때문입니다. 아, 그렇습니다. DNA 컴퓨터는 실제로 사용되지 않습니다. 셀룰러 오토마타를 실행 모델의 기초로 사용하는 것과 같습니다.
back2dos

15

Thorbjoern이 연결된 슈퍼 컴퓨터에는 약 2 ^ 47B의 실제 메모리가 있습니다.
무어의 법칙이 슈퍼 컴퓨터의 메모리를 보유한다고 가정하면 불과 34 년 만에 2 ^ 64B의 실제 메모리가됩니다. 이것은 "OMG, 우리는 그것을 보게 될 것입니다 !!!!"와 같습니다. 아마도. 그리고 실제로, 그것은 매력적입니다. 그러나 무관합니다.

문제는 2 ^ 65B의 실제 메모리를 사용하려면 128 비트 주소 공간이 필요합니까?
대답은 아니오 입니다. 단일 프로세스 에서 2 ^ 65B의 가상 메모리를 처리 하려면 128 비트 주소 공간이 필요 합니다. .

그것은 이다 질문의 핵심, "윌 실제 응용 적 필요 A는 128 비트 평면 주소 공간을?". " 필요 ", 절대적으로, 적은 공간으로 얻을 수 있고, 주소 공간을 평평하지 않게 매핑 할 수 있습니다. 그러나 "플랫 128 비트 주소 공간"이 없을 것입니다.

예를 들어, 지구상의 원자에 물리적 메모리 주소를 할당하려고한다고 가정하고 (어떤 이유로 든, 간단한 예제 를 제공 하기 위해 ), 0부터 시작하여 계속 계산합니다 (완료되면 다시 연락하십시오). 이제 다른 누군가가 Kepler-10c 에서 동일한 작업을 수행하기를 원합니다 (568 거리).

주소 충돌을 원하지 않기 때문에 다른 사람 이 사용 가능한 플랫 메모리 공간 에 높은 메모리 주소를 할당하여 메모리 를 매핑하지 않고도 자신과 다음 사람이 직접 주소 를 지정할 수 있습니다 . 그렇게하지 않거나 메모리와 주소 사이의 일대일 관계없이 얻을 수 있다면 (거의 배열을 기꺼이 구현하려는 경우) 64 비트 이하의 메모리로 얻을 수 있습니다.

누군가가 " X의 양은 충분할 것 "을 제안 할 때마다 그러한 예측은 종종 수명이 짧습니다.

따라서 문제는 2 ^ 65B의 메모리를 사용하는 단일 프로세스를 얼마나 빨리 가질 것인가 입니다. 나는 결코 희망하지 않는다.

우리 시대의 가장 큰 문제는 단일 CPU의 처리 능력이 제한되어 있다는 것입니다. 원자의 크기로 정의 된 크기에는 한계가 있으며, 주어진 크기에 대해, 빛의 속도, 자기장의 변화에 ​​대한 정보가 우리 우주에서 전파되는 속도에 의해 주어진 클럭 속도에 한계가 있습니다.
실제로 한계는 몇 년 전에 도달했으며 이전 보다 낮은 클럭 속도로 정착했습니다 . CPU 전원이 더 이상 선형 적으로 확장되지 않습니다. 비 순차적 실행, 분기 예측, 더 큰 캐시, 더 많은 op 코드, 벡터 연산 및 기타 기능을 통해 성능이 향상되었습니다. 건축 최적화 가있었습니다 .
중요한 아이디어는 병렬화라는 것입니다. 병렬화의 문제는 확장되지 않는다는 것입니다. 20 년 전에 느린 코드를 작성했다면 10 년 전에 훨씬 빠르게 작동했습니다. 느린 코드를 작성하면 10 년 후에는 훨씬 빠르지 않습니다.

2 ^ 65B의 메모리를 사용하는 프로세스는 최대한의 어리 석음의 신호입니다. 이것은 아키텍처 최적화 가 없었 음을 보여줍니다 . 이 데이터를 현명하게 처리하려면 약 1 천만 개의 코어가 필요합니다.이 중 대부분은 실제로 리소스를 확보 한 코어가 완전히 다른 시스템에서 이더넷을 통해 실제 메모리를 사용하기 때문에 일부 리소스를 사용할 수있을 때까지 기다리는 데 시간이 걸립니다. 크고 복잡한 문제를 해결하는 열쇠는 문제를 작고 간단한 문제로 분해하고 더 크고 복잡한 시스템을 구축하지 않는 것입니다. sh * tloads의 데이터를 처리 할 때는 수평 분할이 필요합니다.

그러나이 광기가 계속되어야한다고 가정하더라도 128 비트 이면 충분합니다 .

  • 지구는 약 8.87e + 49 개의 원자 를 가지고 있는데 이것은 우리가 가지고있는 2 ^ 166 개의 원자입니다 .
  • 1 비트를 유지하는 데 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
    

    따라서 물, 모래 또는 얼음으로 덮인 80 %를 포함하여 전체 표면에서 130 미터를 가져갈 수 있습니다 . 일어나지 않을거야 그것을 파낼 수 있다고 가정하더라도 (lol) 이 모든 문제는 칩으로 가공하는 것이 적합합니다. 어디에서 에너지를 얻을 수 있습니까?


8
반면에 당신이 그렇게 아마도 그 자체를 정당화 전체 지구를 채굴 스트립에 대한 환경 영향 평가를 수행하는 매우 큰 컴퓨터를 필요 (약간 여기 히치 하이킹 점점)
마틴 베켓

2
1 비트 = 10 ^ 6 원자. 지구 전체 = 10 ^ 50 원자. 전체 우주 = 10 ^ 80 원자. 지수 표기법은 대단합니다! :-)
Konamiman

2
요점은 전체 128 비트 주소 공간을 사용하는 것이 아니라 64 비트 주소 공간을 사용하는 것입니다. 그렇다면 어느 시점에서 64 비트를 초과하는 하나의 추가 어드레싱 비트가 필요합니까? 2 ^ 65 바이트에 필요한 물리적 공간 (분자)은 얼마입니까?
David R Tribble

1
따라서 실제 128 비트 메모리 아키텍처에는 행성 규모 제조 기능이 필요 합니까?
Indolering

단일 원자 트랜지스터가 고안되었습니다. 비트 번호 당 2 ^ 20 (약 백만) 개의 원자에 어떻게 접근하고 있습니까? en.wikipedia.org/wiki/5_nanometer
JimmyJames

8

큰 주소 공간을 확실히 사용할 수 있습니다.

이것을 상상해보십시오 :

  1. 주소 공간은 단일 컴퓨터로 제한되지 않습니다. 대신, 주소는 범용 주소 공간에서 메모리 셀을 고유하게 식별합니다. 따라서 전 세계 모든 컴퓨터의 메모리 셀에 대한 포인터를 가질 수 있습니다. 원격 메모리에서 읽을 수있게하려면 약간의 프로토콜이 필요하지만 이는 구현 세부 사항입니다. :-)

  2. 메모리는 Write Once, Read Many입니다. 즉, 메모리 주소에 한 번만 데이터를 쓸 수 있습니다. 변경 가능한 값의 경우, 변경 될 때마다 새 메모리를 할당해야합니다. 우리 프로그래머들은 불변성 및 트랜잭션 메모리의 장점을보기 시작했습니다. 따라서 메모리 덮어 쓰기를 허용하지 않는 하드웨어 디자인은 그렇게 불가능한 아이디어가 아닐 수도 있습니다.

이 두 가지 아이디어를 결합하면 거대한 주소 공간이 필요합니다.


그리고 왜 전세계 모든 컴퓨터의 모든 바이트를 처리해야합니까? (나는 당신이 NSA가 아니라고 가정합니다.)
David R Tribble

우리는 물론 우리를 구원으로 인도하기 위해 세계적으로 벌어진 하이브 마인드 AI 대 군주를 건설 할 것이기 때문입니다!
새라

7

유능한 컴퓨터 일수록 더 복잡한 문제를 해결해야합니다.

top500.org에 나와있는 가장 큰 슈퍼 컴퓨터는 http://www.top500.org/system/10587 이며 약 220Tb RAM과 180000 개의 코어가 있습니다. 즉, "실제 응용 프로그램"이이 플랫폼에서 작동 할 수있는 것입니다.

오늘날 컴퓨터는 10-15 년 전 슈퍼 컴퓨터만큼 강력합니다 (그래픽 카드에 컴퓨팅 성능이 숨겨져 있어도).

따라서 현재 추세가 유지된다면 10-15 년 동안 메모리에 100을 곱하면 64 비트 주소 공간이 약 100 년 (로그 (1 억) / log (100)이 약 6이므로)에 제한 요소가됨을 의미합니다.


참고 : 수학은 검증되지 않았으며 아마도 상당히 벗어났습니다.

17
1800 년대의 예측과 비슷합니다. 교통량이 너무 커지면 도시 전체가 말 비료 산으로
뒤덮

1
요즘 220GB는 그리 많지 않습니다. RAM이 256GB 인 서버가 있습니다. 180000 코어? 이제는 뭔가입니다 :). OP의 주요 관심사는 RAM 크기이기 때문에 이것을 지적하고 있습니다.
Tamás Szelei

1
@vartec은 블라인드 외삽이 유효하지 않을 수 있음을 보여줍니다. 여기도 마찬가지입니다.

6
Tamás가 옳습니다. 제공 한 링크에서 "229376GB"로 표시되며 이는 220TB와 비슷합니다. 또한 코어 당 4MB L2 캐시를 가정하면 180K 코어에는 이미
720GB

5

이 전체 스레드는 읽기에 매우 재미 있고 반대 의견이 있습니다.

여기 뭔가 ..

나는 그것이 기술에 무관심하고 시간에 구속되지 않는다는 질문에서 이해합니다. 따라서 실리콘, 양자 컴퓨터 또는 무한 원숭이 페들 링 주판에서의 현재 개발은 사실상 관련이 없습니다.

back2dos의 대답은이 숫자가 나타내는 크기의 크기를 설명하는 데 매우 효과적이지만 계산 및 외삽도 매우 재미 있습니다. 그걸로 작업합시다.

인류가 더 이상 작은 행성의 경계에 묶이지 않는 미래에 당신의 마음을 두십시오. 현실적인 거리의 교통 수단은 매우 먼 거리의 교통을 허용하도록 개발되었으며 사회 구조 (경제적, 정치적 등)는 세대를 초월하도록 진화했습니다. 경건한 프로젝트는 일반적인 장소가되었습니다. 미래에 대한이 먼 미래 비전의 두 가지 측면에 중점을 두자. 모든 세부 사항을 설명하기 위해 시간을 보내고 싶다면 현재 기술에 대한 일련의 그럴듯한 진화를 통해 모든 것을 합리화 할 수 있다고 확신합니다. 다른 말로하자면, 아마도 그럴듯하지만 미래는 ... 어쨌든 ...

첫 번째 행성 컴퓨터 인 첫 번째 전자 컴퓨터의 메모리에서 Colossus라는 첫 번째 프로젝트. Colossus Brotherhood는 실제로 작은 행성을 캡처하여 작동하는 컴퓨터로 변환하는 방법을 알아 냈습니다. 최근 카이퍼 벨트에서 가용성 동위 원소가 풍부하여 에너지를 자율적으로 만들어내는 것으로 밝혀졌으며, 프로브, 로봇 등으로 완전히 자율적으로 건설 과정을 만들어 컴퓨터 시스템을 자체 수리하고 자체 구성했습니다. 이 조건에서 2 ^ 64 주소 공간은이 프로젝트에 다소 제한적인 것으로 생각할 수 있는데, 이는 다른 프로젝트에도 이미 존재하는 응용 프로그램을 쉽게 이식하기 위해 지속적인 주소 공간을 확보하고자하기 때문입니다.

다른 프로젝트는 실제 시스템보다 네트워킹에서 실험적인 것이지만 더 큰 주소 공간이 필요하다는 것을 신속하게 입증했습니다. 540 년 전 한 젊은 해커가 거대한 봇넷을 만들 겠다는 생각으로 놀았습니다. 인터넷은 이미 핵융합 발전으로 이루어진 주요 발전에 따라 태양계 건물 주변의 초기 식민지를 포함하도록 확장되었습니다. 그의 아이디어는 기본적으로 네트워크에 작은 봇이 퍼져있는 것이었지만 페이로드는 모든 봇의 모든 힘을 결합한 것으로 가정하여 코드가 작성되는 통합 된 가상 머신을 제공 할 예정이었습니다. 기본 매체의 고유 한 신뢰성을 고려하여 설계된 지연 및 정교한 알고리즘을 최적화하기 위해 컴파일러와 배포에 많은 노력을 기울였습니다. 이 새로운 언어를 타겟팅하기 위해 언어가 특별히 작성되었습니다. 우리의 해커는 대신 우산 회사를 만들어 컴퓨팅 능력을 최고 입찰자에게 판매합니다. 그는 죽었을 때이 봇넷과 모든 기술을 재단에 기부했습니다. 이 시점에서 봇넷은 이미 64 년 동안 실행되어 왔으며 이미 2 ^ 64 주소 공간을 상당히 앞질렀습니다. 요즘에는 2 ^ 128이 표준이며 Colossus에 사용될 것이지만 이미 이것을 2 ^ 256으로 확장 할 계획이 있습니다. 우리의 해커는 대신 우산 회사를 만들어 컴퓨팅 능력을 최고 입찰자에게 판매합니다. 그는 죽었을 때이 봇넷과 모든 기술을 재단에 기부했습니다. 이 시점에서 봇넷은 이미 64 년 동안 실행되어 왔으며 이미 2 ^ 64 주소 공간을 상당히 앞질렀습니다. 요즘에는 2 ^ 128이 표준이며 Colossus에 사용될 것이지만 이미 이것을 2 ^ 256으로 확장 할 계획이 있습니다.

아마도 더 그렇습니다. 예, 거의 확실합니다. 언젠가는 이보다 더 큰 주소 공간이 필요할 것입니다.

그러나 응용 프로그램이 올바르게 작동하기 위해 특정 주소 공간이 필요한 경우 VM에 있으면 모든 것이 필요한 모든 것을 제공 할 가능성이 높습니다 ...

따라서 ... 짧은 대답 ...

그렇습니다.

그러나

문제가 올 때 이것을 다루지 않는 이유는 무엇입니까?


2
나는 당신의 가상의 예에서 세부적인 수준으로 즐겁습니다. 당신은 어딘가에 짧은 이야기를 쓰고 있습니까?
Christopher Bibbs 2016 년

2

주소 위치는 주소 너비와 관련하여 로그 비용 이 있으므로 문제가되는 매개 변수를 기반으로 상한을 고려할 수 있습니다.

지구상의 모래 입자에 대한 64 비트 = 7.5x10 ^ 18 관측 가능한 우주에있는 별에 대한
128 비트 = 10 ^ 24 지구에있는 입자에 대한
256 비트 = 10 ^ 50 관측 가능한 우주에있는 입자에 대한
512 비트 = 10 ^ 82
1024 관측 가능한 우주에서 3 차 널빤지 길이에 대한 비트 = 4.65 × 10 ^ 185

  • 해시, 보안 및 인덱싱에 도입 된 희소성

6.6106 ... × 10 ^ 122- 비트 , 관측 가능한 우주에서 가능한 입자 구성 = 10 ^ (10 ^ 122)

가능한 구성을 물리적으로 가능한 가장 큰 구성 가능한 메모리 주소의 상한으로 가정 할 수 있습니다.


n 주소에 필요한 너비를 계산하려면 이것을 wolfram alpha에 입력하십시오 : 2 ^ ceil (log2 (log2 ( n )))
Timothy Swan

1
해시 등에서와 같이 대부분의 주소가 전혀 참조하지 않는 중복 주소 공간을 갖는 것이 유용 할 수도 있지만 누군가가 URL을 컴퓨터 가상 주소로 인코딩하는 것을 제안했다고 생각합니다. 따라서 실제로 미래의 가상 주소 지정 체계가 얼마나 낭비적이고 중복되는지에 대한 상한은 없습니다. 물론 데이터를 주소로 인코딩하는 것은 (필요할 때 잠재적으로 보호되는 테이블에서 데이터를 조회하는 것과 대조적으로) 좋은 생각처럼 들리지 않습니다.
Steve314

0

글쎄, 몇 년 동안 당신은 아마 한숨을 쉬게 할 수 있다고 생각합니다. 하드웨어 혁신 속도를 살펴보면 지난 몇 년 동안 큰 돌파구가 없었 음을 알 수 있습니다. 2.xGHz 주파수의 CPU는 한동안 사용되어 왔으며 오늘날 처리 능력의 증가는 칩에 더 많은 코어를 패킹함으로써 발생합니다. 드라이브 용량은 여전히 ​​증가하고 있지만 10 년 전과 같은 속도는 아닙니다.

우리의 현재 기술이 물리학의 한계에 근접하고 있다고 생각합니다.

미래에 어떤 의미가 있습니까? 정보 처리 분야에서 새로운 양자 도약을 위해서는 완전히 새로운 기술이 활용되어야한다고 생각합니다. 이 기술들은 아마도 오늘날의 소프트웨어와 상당히 다른 맥락에서 "소프트웨어"를 사용할 것입니다. 그리고 어떤 주소 공간 요구 사항을 가지고 있거나 제공 할 수 있는지 누가 알 수 있습니까? 아니면 해당 기술에서 주소 공간이 의미있는 개념인지 여부

따라서 아직 이것으로 은퇴하지 마십시오.


CPU 속도는 메모리 크기와 다소 다른 개념입니다.

지난 몇 년 동안 프로세서 속도가 크게 증가하지 않았기 때문에 물리학의 한계에 접근하는 것과 관련이 있다는 결론을 내릴 수는 없습니다. 멀티 코어 CPU가 지난 몇 년 동안 모든 분노에 빠졌으며, CPU 제조업체는 클럭킹 개선에 돈을 쓰지 않고 모든 프로세서를 함께 사용하는 가장 좋은 방법에 돈을 투자하고있을 수 있습니다. 대기업조차도 R & D 비용에 제한이 있습니다. 드라이브 용량은 여전히 ​​매우 빠른 IMO입니다. 140 달러에 3TB 드라이브를 보았습니다.
Dunk

0

그렇습니다. (게임? 인공 지능 관련?)

그러나보다 적절한 질문은 일반적인 프로그래머에게 해당되는지 여부입니다. Ruby가 어떻게 숫자를 FixNum에서 BigNum으로 자동 변환하고 필요할 때 다시 변환하는지 생각해보십시오. 다른 언어 (적어도 역동적 인 언어)가 결국 동일하게 작동하지 않으면 놀랍습니다.


1
오 예. 그럼 당연하지. 128 비트 산술을 사용해야하는 멋진 sooo 게임을하고 싶습니다 !!!!!!!!!
Chani

1
듀크 뉴켐 포에버 레브 2.0? 아니면 Madden Football 2025?
John R. Strohm

0

이 정도의 정보를 저장하는 것은 한 가지 일이며 유용한 정보를 수행하는 것은 다른 일입니다. 내 관점에서 볼 때 처리 능력이 없다면이 저장소가 필요하지 않습니다. 아마도 거대한 데이터베이스를 캐싱하는 것이 한 가지 일이지만 숫자 처리를 위해서는 먼저 프로세서가 필요하다고 생각합니다.


0

응용 프로그램에 많은 양의 메모리가 필요합니까? 가능합니다. 일기 예보, 일반적인 물리적 시뮬레이션 또는 암호화와 같은 응용 프로그램은 항상 더 많은 메모리와 더 많은 처리 능력을 활용할 수 있습니다. 그리고 50-100 년 안에 킬러 앱이 무엇인지 누가 알겠습니까? 홀로그램 디스플레이? 가능한 모든 100 자 암호의 레인보우 테이블?

그렇게 많은 기억을 나타내는 것이 물리적으로 가능합니까? 확실히 가능합니다. 예를 들어, 100 큐 비트 양자 컴퓨터는 클래식 2 ^ 100 비트 컴퓨터와 동일한 수의 상태를 나타낼 수 있습니다. 우리가 가진 2 ^ 67 비트의 주소 공간보다 더 많은 방법 . (100- 큐 비트 양자 컴퓨터는 공상 과학과 같은 소리를냅니다. 컴퓨터를 만들 수 있을지 확신 할 수 없습니다. 그러나 다른 한편으로는, 사용될 기술에 대해서도 같은 말을 할 수 있습니다. 또는 지금부터 100 년입니다.)

그러나 나는 "플랫 주소 공간"이 그때까지 가장 큰 걱정거리가 될 것이라고 진지하게 의심한다. 어쩌면 우리는 "주소 공간"의 개념이 의미가없는 양자 알고리즘을 개발할 것입니다. 컴퓨터가 "고전적인"상태를 유지하더라도 불균일 한 메모리가 연결된 무서운 처리 장치를 처리해야 할 것입니다.


"100- 큐 비트 양자 컴퓨터는 고전적인 2 ^ 100 비트 컴퓨터와 동일한 수의 상태를 나타낼 수 있습니다." 그것은 실제로 큐빗이 작동하는 방식이 아닙니다. 100 큐 비트 컴퓨터는 100 비트 컴퓨터와 동일한 수의 상태를 나타낼 수 있습니다. 차이점은 100 큐 비트 컴퓨터가 한 번에 모든 상태의 중첩을 나타낼 수 있다는 것입니다. 큐 비트에 대한 다른 점은 읽을 때 하나의 답만 얻을 수 있고 완전히 무작위라는 것입니다.
JimmyJames 2016 년

@JimmyJames : 맞습니다. 따라서 100-qubit 퀀텀 컴퓨터가 클래식 컴퓨터에서 단일 시점에 가지고있는 동일한 정보를 나타내려면 (예 : 시뮬레이션) 100 비트 이상이 필요합니다. 그게 내가 말한거야. (또는 어쨌든 의미합니다.)
nikie

다시 말하지만, 그것이 작동하는 방식이 아닙니다. 2 비트 레지스터는 4 개의 값을 나타낼 수 있습니다. 2 큐 비트 레지스터는 4 개의 값을 나타낼 수 있습니다. 둘 다 동일한 범위의 값을 나타낼 수 있습니다. 큐 비트 레지스터는 동시에 4 개를 모두 나타낼 수 있습니다. 그 차이입니다.
JimmyJames

@JimmyJames : 2 비트 "클래식"레지스터는 2 개의 값을 나타낼 수 있지만 동시에. 그것에 대해 이런 식으로 생각 : 당신이 고전적인 컴퓨터 양자 컴퓨터를 시뮬레이션하고 싶었다면, 얼마나 많은 비트 당신이 어떤 시간에 2 큐 비트 양자 컴퓨터의 전체 상태를 저장해야 t ?
nikie

나는 그것을 얻지 만 당신이 누락 된 것은 qubits에서 특정 값을 검색 할 수 없다는 것입니다. 즉, 중첩 된 큐 비트가 주어지면 읽을 때 1 또는 0을 얻지 만 분리로 인해 두 값을 모두 검색 할 수는 없습니다. en.wikipedia.org/wiki/Quantum_decoherence
JimmyJames

0

모든 메모리 위치에 전체적으로 고유 한 주소가 있으면 어떻게됩니까?

  • 네트워크 프로토콜은 훨씬 간단 해 질 수 있습니다.
  • 분산 객체는 흥미로울 것입니다. 모든 객체는 동일한 메모리 공간에 존재할 수 있습니다.
  • 어쩌면 우리는 "한 번 쓰기"메모리로 전환하고 주소 구조의 일부로 시간을 포함 할 것입니다. 과거에 존재했던 개체를 읽을 수 있습니다.
  • 모든 보조 스토리지는 직접 주소를 지정할 수 있습니다. 안녕 FILE, fopen()
  • 당신은 나쁜 포인터에 쓰고 다른 사람의 기계를 원한다고 체포 될 수 있습니다.
  • 학생들은 첫 번째 CS 수업을 받기 전에 선별 검사를 받아야합니다. 전체 시각 소용돌이를 견딜 수있는 사람은 거의 없습니다 .

0

여기서“큰 소리로 생각”하지만, 64 비트의 나머지 64 비트로 흥미로운 의미 론적 작업을 수행 할 수 있다는 것이 나에게 일어났다. Cf. IP가 작동하는 방식.

나는 사람들이 이런 식으로 재미있는 용도를 생각 해낼 수 있다고 확신합니다. :) PS3가 128 비트 주소를 어떻게 사용하는지 아는 사람이 있습니까? 분명히 당신은 모든 여분의 메모리를 낭비하지 않을 것입니다 (그리고 나는 그 주소가 가리키는 것이 아니라 실제 주소의 메모리에 대해서만 이야기하고 있습니다). 데이터 주소. 주소 자체에서 분기를 인코딩 할 수도 있습니다. 즉, 0x [ifAddress] [elseAddress] 멀티 코어 시스템은 이러한 유형의 세분화에서도 이점을 얻을 수 있습니다. 그리고 ... 그리고 ...


0

64 비트 아키텍처를 넘어 설 이유가 있습니까? (18,446,744,073,709,551,615 바이트의 주소 지정 가능 메모리)

디지털 전자 및 컴퓨팅과 관련된 측정 단위의 이진 배수 단위에 대한 접두사 사용과 관련하여 IEEE 1541-2002 표준을 사용하면 다음을 알 수 있습니다.

1 바이트 = 8 비트, 1 킬로바이트 = 1024 바이트, 1 메가 바이트 = 1024KB, 1 기가 바이트 = 1024MB, 1 테라 바이트 = 1024GB, 1 페타 바이트 = 1024TB, 1 엑사 바이트 = 1024PB

Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte 및 Monoicosebyte 등도 마찬가지입니다.

총 어스 드라이브 스토리지는 2016 년 기준 약 2,500 엑사 바이트로 추정됩니다.

64 비트 레지스터는 15 엑사 바이트의 메모리에 직접 액세스 할 수 있습니다. 128 비트 레지스터는 3.40282367 × 10 ^ 35 Zettabytes에 직접 액세스 할 수 있습니다. 또는 295,147,905,247,928,000 Monoicosebytes.

따라서 128 비트 레지스터는 모든 지구 메모리, 인터넷으로 전송 된 모든 것, 말하거나 쓴 모든 단어, 모든 영화 등 훨씬 앞으로 다가올 모든 지구 메모리에 액세스 할 수있는 좋은 위치에 있음을 알 수 있습니다. .

대답 그래서입니다 를 가리 할 수있는 프레임 워크 보류 이제까지거나 어느 것 모든 디지털 것을 .


0

평균적인 인간 두뇌의 뉴런 수에 대해 내가 알 수있는 최선의 추정치는 약 860 억입니다. 우리는 일반적으로 RAM을 뉴런과 직접 비교할 수 없지만 신경망에서는 할 수 있습니다. 뉴런 또는 시냅스의 상태를 나타내는 데 여러 주소가 필요합니다. 그래서 난폭 한 추측을 버리고 우리는 인간의 뇌와 비슷한 신경망을 만들기 위해 1 조 개의 주소와 같은 것을보고 있다고 말할 것입니다. 그래서 그렇게 할 수 있다면, 왜 그보다 훨씬 더 멀리 가지 않을지 모르겠습니다. 그러한 네트워크가 생각할 수있는 종류의 문제는 우리가 이해할 수있는 능력을 넘어서서 그렇게하기 위해 왜 그렇게 커야 하는지를 넘어 설 것입니다.


0

주소 공간입니다. realloc이 사용 된 포인터를 변경할 수 없도록 C 표준을 변경한다고 가정 해 봅시다. 오늘 2 ^ 33 개의 메모리 블록을 할당 할 수 있습니다 (Mac에는 192GB의 RAM, 80 억 배의 8 바이트 포인터 및 16 바이트의 할당 공간이 필요하므로 지금은 할 수 없지만 Mac을 구입할 수는 있습니다) 새로운 모기지를 취하지 않고).

그리고 2 ^ 33 바이트를 유지하기 위해 이러한 포인터를 재 할당 할 수 있습니다. 그러나 동시에 많은 수는 없습니다 :-) realloc이 포인터 이동을 허용하지 않고 2 ^ 33 바이트가 허용되는 경우 원래 포인터는 2 ^ 33 바이트 떨어져 있어야합니다. 즉, 2 ^ 66 바이트의 메모리가 필요합니다.


-1

물론, 앞으로 그 공간이 필요하지 않은 이유는 없습니다. 게임 개발을 고려한다면, 게임이 얼마나 현실적이고 복잡 할 수 있는가에 제한이 없습니다. (사용 된 그래픽 / 폴리곤 수와 객체 상호 작용 및 동작을 정의하는 알고리즘에 대한 세부 정보)?

10 년 후 우리는 최소 12GB 램과 8 코어 프로세서의 10TB 게임을 할 수 있다는 것을 알고 있습니다. :피


디테일에는 제한이 없습니다. 그러나 실리콘에는 한계가 있습니다.
Billy ONeal

-1

20 년 전에는 지구상에 20 억 명의 사람들이 줄어들었고 대부분의 컴퓨터 시스템에는 주소를 지정할 수있는 메모리가 킬로바이트 단위로있었습니다. 오늘날 전 세계 인구는 동일한 비율로 증가하고 매년 컴퓨터 사용자 수는 기하 급수적으로 증가합니다.

전체 64 바이트 주소 공간이 필요한 시스템은 거의 없습니다. 그러나 일부 시스템은 매일 테라 바이트의 정보를 저장합니다. 이것은 컴퓨터 사용자 및 인터넷 속도의 증가로 인해 가능했습니다. HTTP가 발명 된 후 23 년 만에 이미 10GB / s의 인터넷 속도를 지원할 수 있습니다. 이 속도로 50 년 안에 1TB / s 이상의 인터넷 속도를 기대하지 않는 것은 어리석은 일이라고 생각합니다. 우리 모두가이 데이터를 빠르게 이동시킬 수 있다면, 더 많은 사람들이이 데이터를 저장하기 위해 존재할 것이고, 더 많은 사람들이이 데이터를 저장하기 위해 존재할 것이며, 128 비트 시스템으로의 또 다른 광범위한 전환이 필요하고 결국 256과 512 비트


당신은 모든면에서 정확하지만 내 요점을 놓쳤습니다. 컴퓨팅 산업은 100 년도 채되지 않았으며 지난 수십 년 동안 계속 성장하고 있다면이 시점에서 한계에 도달했다고 가정하는 것은 어리석은 일일뿐만 아니라 요구도 무시할 수 없습니다. 미래의. 주소 공간이 64 비트 아키텍처가 필요한 유일한 이유는 아닙니다. 명령어 세트가 너무 커질 수 있으며 128 비트 너비의 포인터가 더 효율적이고 선호됩니다. 또 다른 이점은 더 높은 비트 아키텍처로 전환되는 CPU 레지스트리 공간입니다.
Andrew Katz

나는 왜 내가 그 모든 의견을 썼는지 모른다. 단지 기분이 좋지 않은 것이 나의 가장 좋은 변명이다. 하지만 downvote는 내 것이 아닙니다.
Steve314

-1

예, 앱은 모든 바이트의 가상 공간을 채우지 않습니다. 주소 공간 레이아웃 무작위 화가 가장 큰 이점을 얻습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.