Các ứng dụng trong thế giới thực có bao giờ cần một không gian địa chỉ phẳng 128 bit không?


32

Đây là một chút "một megabyte là đủ cho bất cứ ai", nhưng ...

Không gian địa chỉ phẳng 64 bit cho phép không gian gấp tới 4,3 tỷ lần so với không gian địa chỉ 32 bit. Đó là 17.179.869.184 GiB.

Rõ ràng, quá trình chuyển đổi từ 8 bit sang 16 bit khá nhanh chóng (Tôi đang xem mọi thứ theo cách của tuổi teen trong thập niên 80, bỏ qua tất cả các máy tính lớn và minis vì chúng không thể chạy một cổng Elite). Quá trình chuyển đổi từ 16 bit sang 32 bit mất nhiều thời gian hơn và 32 bit thực sự kéo dài khá lâu.

Bây giờ chúng ta có 64 bit, thật ngu ngốc khi nói "17,179,869,184 GiB là đủ cho bất cứ ai"?

Đây là một câu hỏi của các lập trình viên bởi vì tôi thực sự có quan điểm lập trình trong tâm trí. Ngay cả khi một máy tính một ngày nào đó có bộ nhớ làm việc dường như vô hạn, điều đó không có nghĩa là các ứng dụng sẽ cần phải nhìn thấy một không gian địa chỉ phẳng dường như vô hạn.

Về cơ bản, các lập trình viên có thể thở phào nhẹ nhõm và nói "tốt, bất cứ số nguyên hay số float nào có thể làm được, ít nhất tôi không phải lo lắng về việc con trỏ của tôi tăng thêm nữa không?".


11
LHC tạo ra bao nhiêu dữ liệu mỗi ngày?
Peter Taylor

7
Bộ xử lý 8 bit thực sự có không gian địa chỉ 16 bit - do đó "chuyển đổi nhanh" :-)
Neil Butterworth

1
Để cung cấp một số bối cảnh, một không gian địa chỉ 128 bit cung cấp khoảng nhiều địa chỉ như có các ngôi sao trong vũ trụ quan sát được hoặc một nửa số nguyên tử trong thiên hà của chúng ta (trong một vài bậc độ lớn).
Rein Henrichs

5
@Rein: Nói cách khác, không đủ. Làm thế nào chúng ta có thể mô phỏng một vũ trụ không đủ địa chỉ bộ nhớ cho một nửa số nguyên tử chỉ trong thiên hà của chúng ta. amiright
-starin

7
Tôi nghĩ rằng điều này có thể được trả lời khá dễ dàng; Star Trek Holodeck. Đủ nói.
Dunk

Câu trả lời:


27

Tôi không nghĩ rằng chúng ta sẽ có các máy có hơn 2 ^ 64 byte RAM trong tương lai gần, nhưng đó không phải là tất cả không gian địa chỉ đó hữu ích cho.

Đối với một số mục đích, thật hữu ích khi ánh xạ những thứ khác vào không gian địa chỉ, các tệp là một ví dụ quan trọng. Vì vậy, có hợp lý không khi có nhiều hơn 2 ^ 64 byte của bất kỳ loại lưu trữ nào được gắn vào máy tính trong tương lai gần?

Tôi phải nói có. Có hơn 2 ^ 64 byte dung lượng lưu trữ ngoài đó, vì đó chỉ có khoảng 17 triệu người có đĩa cứng terabyte. Chúng tôi đã có cơ sở dữ liệu nhiều petabyte trong vài năm nay và 2 ^ 64 chỉ khoảng 17 nghìn petabyte.

Tôi nghĩ rằng chúng tôi có khả năng sử dụng không gian địa chỉ> 2 ^ 64 trong vài thập kỷ tới.


4
Điều này khiến tôi nghĩ đến việc đánh địa chỉ phẳng để giải quyết bất kỳ byte lưu trữ nào có sẵn trên internet. Tôi nghĩ rằng tôi đã nghe một cái gì đó về các hệ điều hành cung cấp địa chỉ phẳng cho tất cả lưu trữ trên hệ thống (không cần ánh xạ tệp vào bộ nhớ - chúng đã ở đó). Tạo một địa chỉ IP thành một phần của địa chỉ bộ nhớ của bạn chắc chắn sẽ cần nhiều hơn 64 bit - IPv6 đã cần 128 bit chỉ cho địa chỉ. Sẽ có một lượng lớn dư thừa trong không gian địa chỉ, nhưng nó vẫn có thể có ý nghĩa.
Steve314

2
Vâng. Nó sẽ đơn giản hóa cuộc sống nếu bạn ánh xạ tất cả các ổ đĩa & tệp vào không gian địa chỉ. Rất nhiều mã liên quan đến thao tác với các tệp trên đĩa sẽ đơn giản hơn nhiều nếu bạn chỉ cần có một con trỏ tới toàn bộ tệp. Một phân đoạn: kiến ​​trúc bù đắp sẽ là lý tưởng cho loại điều này.
Loren Pechtel

Điều này giả định rằng mỗi byte của tất cả các thiết bị lưu trữ dung lượng lớn sẽ được định địa chỉ trực tiếp .
vartec

2
@ steve314: Bạn đang nghĩ đến khái niệm cửa hàng một cấp , được tiên phong bởi IBM S / 38. Những thứ thú vị, nhưng tôi nghĩ thật khó để tích hợp nó với các hệ thống ngày nay.
TMN

1
@TMN: tốt, IBM i (còn gọi là i5 / OS, hay còn gọi là OS / 400) vẫn sử dụng nó và được cho là vẫn là một trong những "hệ thống ngày nay".
Joachim Sauer

16

Trừ khi máy tính bắt đầu sử dụng một số công nghệ đột phá chưa tồn tại ngay cả trong các phòng thí nghiệm, việc có nhiều hơn 2 64 không gian có thể định địa chỉ là không thể thực hiện được với công nghệ silicon hiện tại . Công nghệ đang đạt đến giới hạn vật lý . Giới hạn tốc độ (GHz) đã bị tấn công vài năm trước. Giới hạn thu nhỏ cũng rất gần. Hiện nay công nghệ tiên tiến nhất trong sản xuất là 20nm, trong phòng thí nghiệm là 4nm với các bóng bán dẫn được làm từ 7 nguyên tử.

Chỉ cần đặt nó trong bối cảnh phải mất bao lâu để công nghệ mới được phát triển: các máy tính hiện tại dựa trên các bóng bán dẫn được phát minh vào năm 1925, và công nghệ silicon hiện tại có từ năm 1954.


Đối với các công nghệ thay thế:

  • điện toán quang - có thể giúp tăng tốc độ tính toán, nhưng không giải quyết được vấn đề thu nhỏ cho việc lưu trữ;
  • điện toán lượng tử - để được sử dụng đầy đủ, sẽ đòi hỏi mô hình lập trình hoàn toàn mới, vì vậy nếu con trỏ sẽ là 64 hoặc 128 bit thì ít nhất bạn lo lắng. Cũng có những hạn chế vật lý tương tự về thu nhỏ áp dụng cho công nghệ này;
  • Điện toán DNA - đây là những đồ chơi bằng chứng, được thiết kế để giải quyết một loại vấn đề cụ thể. Không khả thi để sử dụng thực tế cuộc sống. Để có được các tính toán mà trên PC bình thường sẽ được thực hiện trong vòng một giây, sẽ lấy bể chứa DNA có kích thước của Thái Bình Dương và vài nghìn năm. Vì đó là quá trình tự nhiên, sinh học, không có cách nào để thu nhỏ hoặc tăng tốc.

4
Vì vậy, về cơ bản, bạn đang nói rằng sẽ không có đột phá công nghệ nữa? Chúng ta sẽ bị mắc kẹt với công nghệ silicon mãi mãi. Những thứ hoàn toàn mới như máy tính lượng tử hoặc máy tính DNA sẽ ở lại nghiên cứu mãi mãi. Bạn có thực sự tin rằng?
nikie

2
@nikie: máy tính lượng tử không phải là phép thuật. Họ vẫn sử dụng các nguyên tử. Họ vẫn bị giới hạn bởi vật lý. Máy tính DNA? Bạn nghiêm túc chứ??? Nó hoàn toàn vô dụng ngoài việc là bằng chứng của khái niệm.
vartec

4
@Thor: tốt, không thể đưa con người lên Mặt trăng vào năm 2011.
vartec

7
Tại sao -1? Tóm tắt có một số nền tảng rất vững chắc. 2 ^ 64 là một con số rất, rất, rất lớn. Nó không phải là 2 ^ 32 * 2, nó lớn hơn rất nhiều và 2 ^ 128 khá điên rồ. Nó sẽ mất rất nhiều thời gian chỉ để làm for(unsigned __int128 i=0; i<2^128; i++){}. Với công nghệ hiện tại, không sử dụng nhiều số nguyên 128 bit. Ngoài việc có thể quay lại không gian địa chỉ không được bảo vệ, bởi vì vô tình bước vào bộ nhớ ứng dụng khác trong không gian địa chỉ 128 bit sẽ là điều không thể thực hiện được, ngay cả khi bạn đang ghi ngẫu nhiên vào địa chỉ ngẫu nhiên.
Coder

2
@nikie: Máy tính lượng tử không liên quan đến cuộc thảo luận này, vì sử dụng các mô hình bộ nhớ hiện tại (là chủ đề ở đây) trên máy tính lượng tử đánh bại toàn bộ mục đích của chúng. Ồ, và vâng, máy tính DNA sẽ không bao giờ được sử dụng thực tế. Nó giống như sử dụng automata di động làm cơ sở cho một mô hình thực thi.
back2dos

15

Siêu máy tính Thorbjoern được liên kết có khoảng 2 ^ 47 B bộ nhớ vật lý.
Giả sử Định luật Moore giữ bộ nhớ của các siêu máy tính, nó sẽ trở thành 2 ^ 64 B bộ nhớ vật lý chỉ trong 34 năm. Điều này giống như "OMG, chúng ta sẽ sống để thấy điều đó !!!!". Có lẽ. Và thực sự, nó rất hấp dẫn. Nhưng chỉ là không liên quan.

Câu hỏi là, tôi có cần không gian địa chỉ 128 bit để sử dụng 2 ^ 65 B bộ nhớ vật lý không?
Câu trả lời là KHÔNG . Tôi cần không gian địa chỉ 128 bit để giải quyết 2 ^ 65 B bộ nhớ ảo từ một tiến trình duy nhất .

Đó một điểm chính trong câu hỏi của bạn, "Các ứng dụng trong thế giới thực có bao giờ cần một không gian địa chỉ phẳng 128 bit không?". " Cần ", không hoàn toàn, bạn có thể nhận được với ít hơn, làm cho không gian địa chỉ được ánh xạ (không bằng phẳng); nhưng sau đó bạn sẽ không có "không gian địa chỉ 128 bit phẳng".

Ví dụ: giả sử bạn muốn gán cho các nguyên tử trên Trái đất một địa chỉ bộ nhớ vật lý (vì bất kỳ lý do gì, chủ yếu là để cung cấp ví dụ đơn giản này ), hãy bắt đầu từ 0 và tiếp tục đếm (quay lại với tôi khi bạn hoàn thành). Bây giờ một người khác mong muốn làm điều tương tự trên Kepler-10c (cách 568 ly).

Bạn sẽ không muốn xung đột địa chỉ để người khác phân bổ địa chỉ bộ nhớ cao trong không gian bộ nhớ phẳng có sẵn, cho phép bạn, họ và những người tiếp theo được giải quyết trực tiếp mà không cần ánh xạ bộ nhớ. Nếu bạn sẽ không làm điều đó hoặc có thể có được mà không có mối quan hệ 1-1 giữa bộ nhớ và địa chỉ của nó (bạn sẵn sàng thực hiện một mảng thưa thớt) thì bạn có thể nhận được bằng bộ nhớ 64 bit hoặc ít hơn.

Bất cứ khi nào ai đó đề xuất " X lượng Y sẽ là đủ " thì một dự đoán như vậy thường chỉ tồn tại trong thời gian ngắn.

Vì vậy, câu hỏi là: chúng ta sẽ có các tiến trình đơn trong bao lâu , sử dụng 2 ^ 65 B bộ nhớ. Tôi hy vọng không bao giờ.

Vấn đề lớn của thời đại chúng ta là khả năng xử lý của một CPU bị hạn chế. Có một giới hạn về kích thước được xác định bởi kích thước của các nguyên tử và đối với một kích thước nhất định, có một giới hạn về tốc độ xung nhịp, được đưa ra bởi tốc độ ánh sáng, tốc độ thông tin về sự thay đổi của từ trường được lan truyền trong vũ trụ của chúng ta.
Và thực tế, giới hạn đã đạt được một vài năm trước và chúng tôi đã giải quyết ở mức đồng hồ dưới mức mà trước đây họ đã đạt được. Sức mạnh CPU sẽ không còn tăng quy mô tuyến tính. Hiệu suất bây giờ được tăng cường thông qua thực hiện đơn hàng, dự đoán chi nhánh, bộ nhớ cache lớn hơn, nhiều mã op hơn, hoạt động véc tơ và những gì không. Đã được tối ưu hóa kiến ​​trúc .
Và một ý tưởng quan trọng là song song hóa. Vấn đề với song song là, nó không mở rộng được. Nếu bạn viết mã chậm 20 năm trước, nó hoạt động nhanh hơn rất nhiều 10 năm trước. Nếu bạn viết mã chậm bây giờ, nó sẽ không nhanh hơn nhiều trong 10 năm.

Các quá trình sử dụng 2 ^ 65 B bộ nhớ là dấu hiệu của sự ngu ngốc tối đa. Điều này cho thấy, không có tối ưu hóa kiến ​​trúc . Để xử lý hợp lý dữ liệu này, bạn cần khoảng 10 triệu lõi, hầu hết trong số đó sẽ dành thời gian chờ đợi một số tài nguyên có sẵn, bởi vì các lõi đó thực sự có được tài nguyên đang sử dụng bộ nhớ vật lý qua ethernet trên một máy hoàn toàn khác. Chìa khóa để xử lý các vấn đề lớn, phức tạp là phân tách chúng thành các vấn đề nhỏ, đơn giản và không xây dựng các hệ thống lớn hơn và phức tạp hơn bao giờ hết. Bạn cần phân vùng ngang, khi xử lý sh * tloads dữ liệu.

Nhưng ngay cả khi giả sử, sự điên rồ này nên tiếp tục, hãy yên tâm 128 bit đủ :

  • Trái đất có khoảng 8,87e + 49 nguyên tử , đó là 2 ^ 166 nguyên tử mà chúng ta có .
  • Giả sử nó tốn 2 ^ 20 nguyên tử để giữ một bit. Điều này bao gồm tất cả các hệ thống dây điện và nhựa và năng lượng đi kèm với nó. Bạn không thể ném bóng bán dẫn vào hộp và gọi nó là máy tính. Vì vậy, 2 ^ 20 có vẻ khá lạc quan.
  • Để sử dụng hết không gian địa chỉ 128 bit, chúng ta cần 2 ^ 133 bit, vì vậy 2 ^ 152 nguyên tử mà chúng ta cần . Giả sử sự phân phối đồng đều các nguyên tử trên trái đất, chúng ta hãy xem chúng ta phải lấy bao nhiêu lớp vỏ để có được chúng:

    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
    

    Vì vậy, bạn có 130 mét để chiếm toàn bộ bề mặt (bao gồm 80% được bao phủ trong nước, cát hoặc băng). No se không xảy ra. Ngay cả khi giả sử bạn có thể đào nó lên (lol) và tất cả vấn đề này phù hợp để được xử lý thành chip, bạn sẽ lấy năng lượng từ đâu?


8
Mặt khác, bạn sẽ cần một máy tính rất lớn để thực hiện đánh giá tác động môi trường để khai thác toàn bộ hành tinh nên có lẽ nó sẽ tự biện minh (lấy một chút Hitch Hikers ở đây)
Martin Beckett

2
Một bit = 10 ^ 6 nguyên tử. Toàn bộ Trái đất = 10 ^ 50 nguyên tử. Toàn bộ vũ trụ = 10 ^ 80 nguyên tử. Ký hiệu số mũ là tuyệt vời! :-)
Konamiman

2
Vấn đề không phải là sử dụng hết toàn bộ không gian địa chỉ 128 bit, mà là sử dụng hết không gian địa chỉ 64 bit. Vậy tại thời điểm nào chúng ta cần thêm một bit địa chỉ ngoài 64 bit? Cần bao nhiêu không gian vật lý (phân tử) cho 2 ^ 65 byte?
David R Tribble

1
Vì vậy, bạn đang nói rằng một kiến ​​trúc bộ nhớ 128 bit vật lý đòi hỏi khả năng sản xuất quy mô hành tinh ?
Xúi giục

Các bóng bán dẫn nguyên tử đơn đã được nghĩ ra. Làm thế nào bạn nhận được các nguyên tử 2 ^ 20 (khoảng một triệu) trên mỗi số bit? vi.wikipedia.org/wiki/5_nanometer
JimmyJames

8

Vâng, chúng tôi chắc chắn có thể sử dụng một không gian địa chỉ lớn.

Hãy tưởng tượng điều này:

  1. Không gian địa chỉ không giới hạn trong một máy tính. Thay vào đó, một địa chỉ xác định duy nhất một ô nhớ trong không gian địa chỉ chung. Vì vậy, bạn có thể có một con trỏ tới một ô nhớ trên bất kỳ máy tính nào trên thế giới. Sẽ cần có một số giao thức để cho phép đọc từ bộ nhớ từ xa, nhưng đó là một chi tiết triển khai. :-)

  2. Bộ nhớ là Ghi một lần, Đọc nhiều, tức là bạn chỉ có thể ghi dữ liệu vào địa chỉ bộ nhớ một lần. Đối với một giá trị có thể thay đổi, bạn sẽ phải phân bổ một phần bộ nhớ mới mỗi khi nó thay đổi. Chúng tôi lập trình viên đã bắt đầu nhìn thấy những ưu điểm của tính bất biến và bộ nhớ giao dịch, do đó, một thiết kế phần cứng thậm chí không cho phép ghi đè lên bộ nhớ có thể không phải là một ý tưởng không thể.

Kết hợp hai ý tưởng này và bạn sẽ cần một không gian địa chỉ khổng lồ.


Và tại sao bạn cần giải quyết từng byte của mọi máy tính trên thế giới? (Tôi cho rằng bạn không phải là NSA.)
David R Tribble

bởi vì chúng ta sẽ xây dựng lớp phủ AI tầm cỡ trên toàn thế giới để dẫn chúng ta đến sự cứu rỗi!
sara

7

Càng nhiều máy tính có khả năng trở thành, các vấn đề phức tạp hơn chúng được yêu cầu làm việc với.

Siêu máy tính lớn nhất được liệt kê trên top500.org là http://www.top500.org/system/10587 với khoảng 220 Tb RAM và 180000 lõi. Nói cách khác, đó là những gì "ứng dụng thực tế" có thể hoạt động trên nền tảng này.

Máy tính ngày nay mạnh như siêu máy tính từ 10 - 15 năm trước (mặc dù sức mạnh tính toán có thể bị ẩn trong card đồ họa của bạn).

Vì vậy, một yếu tố 100 trong bộ nhớ trong 10-15 năm sẽ có nghĩa là không gian địa chỉ 64 bit sẽ là yếu tố giới hạn trong khoảng 100 năm (kể từ khi log (100 triệu) / log (100) là khoảng 6) nếu xu hướng hiện tại giữ.


lưu ý: toán chưa được xác minh, có thể khá tắt.

17
Nó giống như dự đoán từ những năm 1800, rằng nếu giao thông phát triển quá nhiều, toàn bộ thành phố sẽ bị bao phủ bởi hàng núi phân ngựa :-P
vartec

1
220 GB không phải là nhiều trong những ngày này. Có máy chủ với RAM 256 GB. 180000 lõi? Bây giờ đó là một cái gì đó :). Tôi chỉ chỉ ra điều này vì mối quan tâm chính của OP là kích thước RAM.
Tamás Szelei

1
@vartec, chỉ cho thấy phép ngoại suy mù có thể không hợp lệ. Điều tương tự ở đây.

6
Tamás đã đúng: Trong liên kết bạn cung cấp, nó ghi "229376 GB", giống như 220 TB. Ngoài ra, giả sử bộ đệm L2 4 MB cho mỗi lõi, lõi 180K đã có bộ đệm L2 720 GB;)
back2dos

5

Toàn bộ chủ đề này khá buồn cười để đọc, ý kiến ​​rất mạnh mẽ cho và chống lại ...

Đây là một cái gì đó ..

Tôi hiểu từ câu hỏi rằng đó là bất khả tri về công nghệ và không bị ràng buộc bởi thời gian. Do đó, sự phát triển hiện tại trong silicon, máy tính lượng tử hoặc Bàn tính bán lẻ khỉ vô hạn có hiệu lực không liên quan.

Tính toán và ngoại suy cũng khá buồn cười, mặc dù câu trả lời từ back2dos hoạt động khá tốt để minh họa kích thước tuyệt đối của những gì con số này thể hiện. Vì vậy, hãy làm việc với điều đó.

Đặt tâm trí của bạn vào tương lai nơi con người không còn bị ràng buộc trong giới hạn của hành tinh nhỏ bé đó, một phương tiện giao thông thực tế đã được phát triển để cho phép vận chuyển qua khoảng cách rất lớn và các cấu trúc xã hội (kinh tế, chính trị, v.v.) đã phát triển để vượt qua các thế hệ. Các dự án pharaonic trải dài đã trở thành nơi phổ biến. Chúng ta hãy tập trung vào hai khía cạnh của tầm nhìn xa về tương lai này, nếu người ta muốn dành thời gian để giải thích mọi chi tiết tôi chắc chắn một người có thể hợp lý hóa tất cả thông qua một loạt các phát triển hợp lý về các công nghệ hiện tại. Nói cách khác, một tương lai hợp lý, dù không chắc chắn ... dù sao đi nữa ...

Dự án đầu tiên được gọi là Colossus trong bộ nhớ của máy tính điện tử đầu tiên đó vì đây là máy tính hành tinh đầu tiên. Colossus Brotherhood thực sự đã tìm ra một phương tiện để bắt một hành tinh nhỏ và biến nó thành một máy tính hoạt động. Được phát hiện gần đây trong vành đai Kuyper rất giàu các đồng vị dễ nổ khiến nó tự chủ về mặt năng lượng, họ đã làm cho quá trình xây dựng hoàn toàn tự động với các đầu dò, robot, vv làm cho hệ thống máy tính tự sửa chữa và tự xây dựng. Trong điều kiện này, có thể hình dung rằng không gian địa chỉ 2 ^ 64 bị giới hạn phần nào cho dự án này vì họ muốn có được một không gian địa chỉ liên tục để dễ dàng chuyển các ứng dụng đã có cho dự án khác.

Dự án khác giống như một thử nghiệm trong mạng hơn là một hệ thống vật lý, tuy nhiên, nó nhanh chóng chứng minh rằng không gian địa chỉ lớn hơn là cần thiết. Cách đây 540 năm, một hacker trẻ tuổi đã đùa giỡn với ý tưởng tạo ra một mạng bot khổng lồ. Internet đã được mở rộng để bao gồm các thuộc địa non trẻ xung quanh việc xây dựng hệ mặt trời dựa trên những tiến bộ lớn được thực hiện trong năng lượng nhiệt hạch. Ý tưởng của anh về cơ bản là có các bot nhỏ lan truyền trên mạng nhưng tải trọng được định sẵn để cung cấp một máy ảo hợp nhất, nơi mã sẽ được viết với giả định rằng nó có tất cả sức mạnh của tất cả các bot kết hợp. Những nỗ lực to lớn đã được đưa vào trình biên dịch và triển khai nhằm tối ưu hóa độ trễ và các thuật toán tinh vi được thiết kế để tính đến sự không đáng tin vốn có của phương tiện cơ bản. Một ngôn ngữ được viết riêng để nhắm mục tiêu mới này " thay vào đó, hacker của chúng tôi đã tạo ra một công ty ô và bán sức mạnh tính toán cho người trả giá cao nhất. Khi chết, ông đã tặng botnet này và tất cả các công nghệ cho một nền tảng. Vào thời điểm đó, botnet đã hoạt động được 64 năm và đã vượt qua không gian địa chỉ 2 ^ 64 trong một thời gian trước đây phá vỡ định kiến ​​1000 năm tuổi mà chúng ta sẽ không bao giờ yêu cầu không gian địa chỉ lớn hơn. Ngày nay, 2 ^ 128 là chuẩn mực và những gì sẽ được sử dụng cho Colossus nhưng đã có kế hoạch mở rộng này lên 2 ^ 256. thay vào đó, hacker của chúng tôi đã tạo ra một công ty ô và bán sức mạnh tính toán cho người trả giá cao nhất. Khi chết, ông đã tặng botnet này và tất cả các công nghệ cho một nền tảng. Vào thời điểm đó, botnet đã hoạt động được 64 năm và đã vượt qua không gian địa chỉ 2 ^ 64 trong một thời gian trước đây phá vỡ định kiến ​​1000 năm tuổi mà chúng ta sẽ không bao giờ yêu cầu không gian địa chỉ lớn hơn. Ngày nay, 2 ^ 128 là chuẩn mực và những gì sẽ được sử dụng cho Colossus nhưng đã có kế hoạch mở rộng này lên 2 ^ 256.

Tôi có lẽ có thể đưa ra nhiều kịch bản hợp lý hơn để minh họa rằng có ... hoàn toàn có thể, gần như chắc chắn, một ngày nào đó chúng ta sẽ yêu cầu không gian địa chỉ lớn hơn thế này.

Tuy nhiên, điều đó nói rằng tôi không nghĩ mình sẽ mất ngủ vì điều này, nếu ứng dụng của bạn yêu cầu một không gian địa chỉ nhất định để hoạt động chính xác thì rất có thể nó sẽ sống trong một VM cung cấp tất cả những gì nó cần ...

Vì vậy ... câu trả lời ngắn ...

CÓ, rất có thể

nhưng

Tại sao không giải quyết vấn đề này khi vấn đề xảy ra ... Cá nhân tôi không bao giờ đưa ra các giả định trong các chương trình của mình do đó không bao giờ có bất ngờ.


2
Tôi thích thú ở mức độ chi tiết trong ví dụ hư cấu của bạn. Bạn đang viết một câu chuyện ngắn ở đâu đó?
Christopher Bibbs

2

Vị trí địa chỉ có chi phí logarit liên quan đến chiều rộng địa chỉ để chúng tôi có thể xem xét giới hạn trên dựa trên các tham số trong câu hỏi:

64 bit cho các hạt cát trên trái đất = 7,5x10 ^ 18
128 bit cho các ngôi sao trong vũ trụ quan sát được = 10 ^ 24
256 bit cho các hạt trong trái đất = 10 ^ 50
512 bit cho các hạt trong vũ trụ quan sát được = 10 ^ 82
1024 -bit cho chiều dài tấm ván khối trong vũ trụ quan sát được = 4,65 × 10 ^ 185

6.6106 ... × 10 ^ 122-bit cho các cấu hình hạt có thể có trong vũ trụ quan sát được = 10 ^ (10 ^ 122)

Chúng ta có thể giả sử các cấu hình có thể là giới hạn trên cho địa chỉ bộ nhớ có thể xây dựng lớn nhất có thể.


Để tính chiều rộng cần thiết cho n địa chỉ, hãy nhập địa chỉ này vào wolfram alpha: 2 ^ ceil (log2 (log2 ( n )))
Timothy Swan

1
Bạn đúng rằng có thể có không gian địa chỉ rất dư thừa, nơi hầu hết các địa chỉ không đề cập đến bất cứ điều gì, như trong điểm băm của bạn, nhưng tôi nghĩ ai đó thậm chí còn đề xuất mã hóa URL vào địa chỉ ảo của máy (không chỉ là một băm của họ), vì vậy, thực sự, không có giới hạn trên về mức độ lãng phí / dư thừa của một số lược đồ địa chỉ ảo trong tương lai. Dĩ nhiên, việc mã hóa dữ liệu vào các địa chỉ (trái ngược với việc tìm kiếm nó trong các bảng có khả năng được bảo vệ khi cần thiết) nghe có vẻ là một ý tưởng hay, tất nhiên.
Steve314

0

Chà, tôi nghĩ rằng vài năm nữa bạn có thể thở phào nhẹ nhõm. Nếu bạn nhìn vào tốc độ đổi mới trong phần cứng, có thể thấy rằng trong vài năm qua, không có đột phá đáng kể nào xảy ra. Các CPU có tần số 2.x GHz đã xuất hiện được một thời gian và hiện tại bất kỳ sự gia tăng nào về sức mạnh xử lý đều đến từ việc đóng gói nhiều lõi hơn trên chip. Dung lượng ổ đĩa vẫn tăng, nhưng không ở mức như 10 năm trước.

Tôi nghĩ rằng công nghệ hiện tại của chúng tôi đang tiếp cận giới hạn của vật lý.

Điều đó có ý nghĩa gì cho tương lai? Tôi nghĩ rằng để có được những bước nhảy lượng tử mới trong xử lý thông tin, các công nghệ hoàn toàn mới sẽ phải được sử dụng. Những công nghệ này có thể sẽ sử dụng "phần mềm", mặc dù có thể trong bối cảnh khá xa lạ với những gì ngày nay. Và ai biết những yêu cầu không gian địa chỉ họ có hoặc có thể cung cấp? Hoặc liệu không gian địa chỉ thậm chí là một khái niệm có ý nghĩa trong công nghệ đó?

Vì vậy, đừng nghỉ hưu về điều này chưa.


tốc độ cpu là một khái niệm hơi khác so với kích thước bộ nhớ.

Tôi không chắc bạn có thể rút ra kết luận rằng vì tốc độ của bộ xử lý không tăng nhiều trong vài năm qua có liên quan gì đến việc tiếp cận các giới hạn của vật lý. Có một thực tế là CPU đa lõi đã trở thành cơn thịnh nộ trong vài năm qua và có thể các nhà sản xuất CPU đang đầu tư tiền của họ vào cách sử dụng tốt nhất tất cả các bộ xử lý đó cùng nhau thay vì chi tiền cho cải tiến xung nhịp. Ngay cả các công ty lớn cũng có giới hạn đối với đô la R & D của họ. Dung lượng ổ đĩa vẫn đang tăng lên khá nhanh IMO. Chỉ thấy một ổ đĩa 3 TB với giá 140 đô la.
Dunk

0

Vâng, sẽ có. (Trò chơi? Những thứ liên quan đến Trí tuệ nhân tạo?)

Một câu hỏi thích hợp hơn có thể là liệu nó sẽ được tính cho các lập trình viên điển hình hay không. Hãy nghĩ về cách Ruby tự động chuyển đổi số từ FixNum sang BigNum và quay lại khi cần. Tôi sẽ ngạc nhiên nếu các ngôn ngữ khác (ít nhất là các ngôn ngữ động) cuối cùng không làm như vậy.


1
ồ vâng chết tiệt Tôi muốn chơi một trò chơi thật tuyệt, nó phải sử dụng số học 128 bit !!!!!!!!!
Chani

1
Công tước Nukem Mãi mãi Rev 2.0? Hay bóng đá Madden 2025?
John R. Strohm

0

Lưu trữ lượng thông tin này là một chuyện và làm một cái gì đó hữu ích với nó là một chuyện khác. Từ quan điểm của tôi, tôi thấy không cần lưu trữ này trừ khi chúng tôi có khả năng xử lý để sử dụng nó. Có lẽ lưu trữ cơ sở dữ liệu khổng lồ là một điều nhưng để xử lý số tôi nghĩ rằng chúng ta cần bộ xử lý trước.


0

Các ứng dụng sẽ cần bao nhiêu bộ nhớ? Khá có thể. Các ứng dụng như dự báo thời tiết, mô phỏng vật lý nói chung hoặc mật mã có thể sẽ luôn được hưởng lợi từ nhiều bộ nhớ hơn và khả năng xử lý nhiều hơn. Và ai biết ứng dụng sát thủ trong 50 - 100 năm nữa sẽ là gì? Màn hình ba chiều? Bảng cầu vồng cho mỗi mật khẩu 100 ký tự có thể?

Là vật lý có thể đại diện cho nhiều bộ nhớ? Chắc chắn là có thể. Ví dụ, một máy tính lượng tử 100 qubit có thể biểu thị cùng số lượng trạng thái như một máy tính 2 ^ 100 bit cổ điển. Cách hơn 2 ^ 67 bit của không gian địa chỉ chúng tôi có bây giờ. (Tôi biết, một máy tính lượng tử 100 qubit nghe có vẻ khoa học viễn tưởng. Tôi không tin nó sẽ có thể chế tạo được một cái. hoặc 100 năm nữa.)

Nhưng tôi thực sự nghi ngờ rằng "không gian địa chỉ phẳng" sẽ là mối lo chính vào lúc đó. Có lẽ lúc đó chúng ta sẽ phát triển các thuật toán lượng tử, trong đó khái niệm "không gian địa chỉ" không có nhiều ý nghĩa. Ngay cả khi máy tính vẫn "cổ điển", có lẽ chúng ta sẽ phải đối phó với một số đơn vị xử lý đáng sợ với bộ nhớ không đồng nhất gắn liền với chúng.


"Máy tính lượng tử 100 qubit có thể biểu thị cùng số lượng trạng thái như một máy tính 2 ^ 100 bit cổ điển." Đó không thực sự là cách mà qubit hoạt động. Một máy tính 100 qubit có thể biểu thị cùng số lượng trạng thái như một máy tính 100 bit. Sự khác biệt là máy tính 100 qubit có thể đại diện cho sự chồng chất của tất cả các trạng thái đó tại một thời điểm. Một điều khác về qubit là khi bạn đọc chúng, bạn sẽ chỉ nhận được một câu trả lời và nó sẽ hoàn toàn ngẫu nhiên.
JimmyJames

@JimmyJames: Chính xác. Vì vậy, nếu bạn muốn biểu diễn cùng một thông tin, một máy tính lượng tử 100 qubit có tại một thời điểm đơn lẻ trong một máy tính cổ điển (ví dụ để mô phỏng nó), bạn cần cách hơn 100 bit. Đó là những gì tôi nói. (Hoặc có nghĩa là, dù sao đi nữa.)
nikie

Một lần nữa, đó không phải là cách nó hoạt động. Một thanh ghi 2 bit có thể đại diện cho 4 giá trị. Một thanh ghi 2 qubit có thể đại diện cho 4 giá trị. Cả hai đều có thể đại diện cho cùng một phạm vi giá trị. Thanh ghi qubit có thể đại diện cho cả 4 cùng một lúc. Đó là sự khác biệt.
JimmyJames

@JimmyJames: Điều đó giống như nói rằng một thanh ghi "cổ điển" 2 bit có thể đại diện cho 2 giá trị, nhưng đồng thời. Hãy suy nghĩ về nó theo cách này: Nếu bạn muốn mô phỏng một máy tính lượng tử trong một máy tính cổ điển, bao nhiêu bit bạn sẽ cần phải lưu trữ đầy đủ các trạng thái của máy tính lượng tử 2 qubit bất cứ lúc nào t ?
nikie

Tôi hiểu nhưng tôi nhưng điều bạn thiếu là bạn không thể lấy một giá trị cụ thể từ các qubit. Đó là, được đưa ra một qubit trong chồng chất, khi nó được đọc, bạn sẽ nhận được 1 hoặc 0 nhưng bạn không thể truy xuất cả hai giá trị vì tính trang trí: en.wikipedia.org/wiki/Quantum_decoherence
JimmyJames

0

Điều gì sẽ xảy ra nếu mỗi vị trí bộ nhớ có một địa chỉ duy nhất trên toàn cầu?

  • Các giao thức mạng có thể trở nên đơn giản hơn rất nhiều.
  • Các đối tượng phân tán sẽ rất thú vị - tất cả các đối tượng có thể tồn tại trong cùng một không gian bộ nhớ.
  • Có lẽ chúng ta sẽ chuyển sang ký ức "viết một lần" và bao gồm thời gian như một phần của cấu trúc địa chỉ. Bạn có thể đọc các đối tượng tồn tại trong quá khứ.
  • Tất cả lưu trữ thứ cấp sẽ được địa chỉ trực tiếp. Tạm biệt FILE, fopen()vv
  • Bạn có thể bị bắt vì viết cho một con trỏ xấu và cuốc máy của người khác.
  • Học sinh sẽ phải được sàng lọc trước khi tham gia lớp CS đầu tiên của họ: rất ít người có thể chịu được cơn lốc Tổng quan .

0

Chỉ cần nghĩ ra tiếng ồn ào ở đây, nhưng tôi nhận ra rằng người ta có thể làm những điều ngữ nghĩa thú vị với 64 bit còn lại trên máy tính 128 bit. Cf. cách thức hoạt động của IP.

Tôi chắc chắn mọi người có thể đưa ra những cách sử dụng thú vị cho những thứ như thế này. :) Có ai biết PS3 sử dụng địa chỉ 128 bit của mình để làm gì không? Chắc chắn bạn sẽ không lãng phí tất cả bộ nhớ bổ sung đó (và tôi đang nói về chỉ bộ nhớ cho các địa chỉ thực tế, chứ không phải những gì các địa chỉ đó chỉ đến). Địa chỉ dưới dạng dữ liệu. Bạn thậm chí có thể mã hóa một nhánh trong chính địa chỉ ... tức là 0x [ifAddress] [otherAddress] Các hệ thống đa lõi cũng có thể được hưởng lợi từ loại phân đoạn này. Và và...


0

Có bất kỳ lý do để đi trên kiến ​​trúc 64 bit? (18,446,744,073,709,551,615 byte bộ nhớ có thể đánh địa chỉ)

Sử dụng tiêu chuẩn IEEE 1541-2002 liên quan đến việc sử dụng tiền tố cho bội số đơn vị đo lường liên quan đến điện tử kỹ thuật số và điện toán, chúng tôi thấy rằng:

1 Byte = 8 Bits, 1 Kilobyte = 1024 Byte, 1 Megabyte = 1024 KB, 1 Gigabyte = 1024 MB, 1 Terabyte = 1024 GB, 1 Petabyte = 1024 TB, 1 Exabyte = 1024 PB

Và như vậy đối với Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottitherte, Icosebyte và Monoicosebyte.

Tổng dung lượng ổ đĩa Trái đất được ước tính là khoảng 2.500 Exabyte vào năm 2016.

Một thanh ghi 64 bit có thể truy cập trực tiếp 15 Exabyte bộ nhớ. Một thanh ghi 128 bit có thể truy cập trực tiếp 3,40282367 × 10 ^ 35 Zettabyte. Hoặc 295.147.905.247.928.000 Monoicosebyte.

Vì vậy, chúng ta có thể thấy rằng một thanh ghi 128 bit sẽ ở vị trí tốt để truy cập tất cả bộ nhớ Trái đất, mọi thứ từng được gửi trên internet, mọi từ từng được nói hoặc viết, mọi bộ phim, và nhiều hơn nữa, trong một thời gian tới .

Vì vậy, câu trả lời là , đang chờ một khuôn khổ có thể chỉ ra bất kỳ điều kỹ thuật số nào đã từng hoặc sẽ tồn tại .


0

Ước tính tốt nhất tôi có thể tìm thấy cho số lượng tế bào thần kinh trong một bộ não trung bình của con người là khoảng 86 tỷ. Chúng ta không thể so sánh trực tiếp RAM với các nơ-ron nói chung nhưng trong một mạng nơ-ron bạn có thể sắp xếp. Nó chiếm một số địa chỉ để đại diện cho trạng thái của tế bào thần kinh hoặc một khớp thần kinh. Vì vậy, tôi sẽ đưa ra một phỏng đoán hoang dã và nói rằng chúng ta nhìn vào thứ gì đó giống như một nghìn tỷ địa chỉ để tạo ra một mạng lưới thần kinh có thể so sánh với bộ não của con người. Vì vậy, nếu điều đó có thể được thực hiện, tôi không hiểu tại sao nó sẽ không đi xa hơn thế. Các loại vấn đề mà một mạng như vậy có thể có thể suy nghĩ sẽ vượt quá khả năng hiểu biết của chúng tôi cũng như lý do tại sao chúng cần phải quá lớn để làm như vậy.


0

Đó là không gian địa chỉ. Giả sử chúng ta thay đổi tiêu chuẩn C để realloc không được phép thay đổi con trỏ được sử dụng. Tôi có thể phân bổ 2 ^ 33 khối bộ nhớ ngay hôm nay (sẽ yêu cầu 192GB RAM trên máy Mac của tôi, 8 tỷ lần con trỏ 8 byte và không gian được phân bổ 16 byte, vì vậy tôi không thể làm điều này ngay bây giờ, nhưng tôi có thể mua máy Mac có thể làm được nó mà không đưa ra một thế chấp mới).

Và tôi có thể tái phân bổ bất kỳ con trỏ nào trong số này để chứa 2 ^ 33 byte. Không có nhiều cùng một lúc :-) Nếu realloc không cho phép di chuyển con trỏ và cho phép 2 ^ 33 byte, các con trỏ ban đầu phải cách nhau 2 ^ 33 byte, nghĩa là cần 2 ^ 66 byte bộ nhớ.


-1

Chắc chắn, tôi thấy không có lý do tại sao số lượng không gian đó sẽ không được yêu cầu trong tương lai. Nếu bạn xem xét việc phát triển trò chơi, không có giới hạn nào về mức độ thực tế hoặc phức tạp của một trò chơi, phải không? (Chi tiết về đồ họa / số lượng đa giác được sử dụng và thuật toán xác định tương tác và hành vi của đối tượng)?

Ai biết được, trong 10 năm nữa chúng tôi có thể chơi các trò chơi 10TB với yêu cầu tối thiểu là ram 12GB và bộ xử lý 8 lõi. : P


Không có giới hạn chi tiết. Nhưng có một giới hạn đối với silicon.
Billy ONeal

-1

20 năm trước, có ít hơn 2 tỷ người trên hành tinh và hầu hết các hệ thống máy tính đều có bộ nhớ có thể đánh địa chỉ có thể đo bằng kilobyte. Ngày nay, dân số thế giới tăng với tốc độ tương tự và số người dùng máy tính tăng theo cấp số nhân mỗi năm.

Đúng là rất ít hệ thống cần một không gian địa chỉ 64 byte đầy đủ. Tuy nhiên, một số hệ thống lưu trữ hàng terabyte thông tin mỗi ngày. Điều này đã có thể do sự gia tăng của người dùng máy tính và tốc độ internet. Chúng tôi đã có thể hỗ trợ tốc độ internet 10 GB / giây chỉ sau 23 năm sau khi HTTP được phát minh. Với tốc độ này, tôi nghĩ sẽ thật ngu ngốc khi không mong đợi tốc độ internet 1 TB / giây hoặc cao hơn trong 50 năm. Khi tất cả chúng ta có thể di chuyển dữ liệu nhanh như vậy, sẽ có nhiều dữ liệu được lưu trữ hơn trong khi nhiều người sẽ tồn tại để lưu trữ dữ liệu này và gần như không thể tránh khỏi việc chuyển đổi rộng rãi sang hệ thống 128 bit, và cuối cùng là 256 và 512 bit.


Bạn đúng về mọi mặt, tuy nhiên bạn đã bỏ lỡ quan điểm của tôi. Ngành công nghiệp điện toán chưa đầy 100 tuổi và nếu nó tiếp tục phát triển như trong vài thập kỷ qua, sẽ không chỉ là ngu ngốc khi cho rằng chúng ta đã đạt đến giới hạn của mình tại thời điểm này nhưng nó không biết gì về các yêu cầu của tương lai. Không gian địa chỉ không phải là lý do duy nhất tại sao chúng ta sẽ cần một kiến ​​trúc 64 bit. Các tập lệnh có thể phát triển quá lớn và con trỏ rộng 128 bit sẽ hiệu quả và được ưa thích hơn. Một lợi ích khác là không gian đăng ký CPU chuyển sang kiến ​​trúc bit cao hơn cung cấp.
Andrew Katz

Tôi không biết tại sao tôi lại viết tất cả những bình luận đó - chỉ một tâm trạng tồi tệ là lý do tốt nhất của tôi. Downvote không phải là của tôi, mặc dù.
Steve314

-1

có ứng dụng không lấp đầy từng byte không gian ảo. ngẫu nhiên bố trí không gian địa chỉ sẽ nhận được lợi ích lớn nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.