Gerçek dünyadaki uygulamaların hiç 128 bit düz adres alanına ihtiyacı olacak mı?


32

Bu biraz "bir megabayt herkes için yeterli olmalı", ama ...

64 bit düz adres alanı, 32 bit adres alanından 4.3ish milyar kat daha fazla alan sağlar. Bu 17,179,869,184 GiB.

Açıkçası, 8 bitten 16 bit'e geçiş oldukça hızlıydı (80'li yaşlarda genç bir şeyleri izliyorum, tüm bu ana bilgisayarları ve minisleri görmezden geldim, çünkü bir Elit limanı işletemezlerdi). 16 bitten 32 bit'e geçiş biraz daha uzun sürdü ve 32 bit aslında bir süre sürdü.

Şimdi 64 bitimiz var, "17,179,869,184 GiB herkes için yeterli olmalı" demek aptalca olur mu?

Bu bir programcının sorusudur çünkü gerçekten programlama bakış açısına sahibim. Bir gün bir bilgisayarda görünüşte sonsuz miktarda çalışan bellek olsa bile, bu, uygulamaların görünüşte sonsuz düz adres alanı görmesi gerektiği anlamına gelmez.

Temel olarak, programcıların rahat bir nefes alıp "Ne tamsayılar veya değişkenler olursa olsun, en azından artık işaretçilerim için endişelenmeme gerek yok" diyebilir miyiz?


11
LHC her gün ne kadar veri üretiyor?
Peter Taylor,

7
8 bit işlemciler aslında 16 bit adres alanına sahipti - bu nedenle "hızlı geçiş" :-)
Neil Butterworth

1
Bir bağlam sağlamak için, 128 bitlik bir adres alanı, gözlemlenebilir evrende yıldızlar veya galaksimizdeki atomların yarısı kadar çok sayıda adres sağlar (birkaç büyüklük derecesine kadar).
Rein Henrichs,

5
@Rein: Başka bir deyişle, yeterli değil. Sadece kendi galaksimizdeki atomların yarısı için bile yeterli hafıza adresine sahip olmayan bir evreni nasıl simüle edebiliriz. amiright
quentin-

7
Bunun oldukça kolay cevaplanabileceğini düşünüyorum; Star Trek Holodeck. Yeterince söylendi.
Dunk

Yanıtlar:


27

Öngörülebilir bir gelecekte 2 ^ 64 bayt RAM'den fazla makineye sahip olacağımızı sanmıyorum, ancak bu adres alanının faydası için değil.

Bazı amaçlar için, diğer şeyleri adres alanına eşleştirmek yararlıdır, dosyalar önemli bir örnek teşkil eder. Öyleyse, yakın gelecekte bilgisayara bağlı herhangi bir depolama türünün 2 ^ 64 bayttan daha fazlasına sahip olması makul mudur?

Evet demek zorundayım. Orada 2 ^ 64 baytlık depolama alanı olmalı, çünkü bu sadece terabayt sabit diskli yaklaşık 17 milyon insan. Birkaç yıldır etrafta çoklu-petabayt veri tabanları var ve 2 ^ 64 sadece 17 bin petabayt.

Önümüzdeki birkaç on yıl içinde> 2 ^ 64 adres alanı için bir kullanım alanımız olduğunu düşünüyorum.


4
Bu, internette mevcut olan herhangi bir depolama baytını ele almak için düz adresleme yapmamı sağlıyor. Sistemdeki tüm depolama alanlarının düz bir şekilde adreslenmesini sağlayan işletim sistemleri hakkında bir şeyler duydum (dosyaları belleğe eşlemenize gerek yok - zaten oradalar). Bir IP adresini hafıza adresinizin bir parçası haline getirmek için kesinlikle 64 bitden fazlasına ihtiyaç duyacak - IPv6'nın zaten sadece adres için 128 bit'e ihtiyacı olacak. Adres alanında çok fazla fazlalık olabilir, ancak yine de bir anlam ifade edebilirdi.
Steve314

2
Evet. Tüm sürücülerinizi ve dosyalarınızı adres alanına eşlerseniz yaşamı basitleştirir. Tüm dosyaya bir işaretçi koyarsanız, diskteki dosyaları işlemekle ilgili çok fazla sayıda kod daha basit olacaktır. Bir segment: ofset mimarisi bu tür şeyler için idealdir.
Loren Pechtel

Bu, tüm yığın depolama aygıtlarının her bir baytının doğrudan adreslenebilir olacağını varsayar .
vartec

2
@ steve314: IBM S / 38 tarafından öncülük edilen tek seviyeli mağaza konseptini düşünüyorsunuz . İlginç şeyler, ama bugünün sistemlerine entegre etmenin zor olacağını düşünüyorum.
TMN

1
@TMN: Evet, IBM i (i5 / OS, aka OS / 400) hala kullanıyor ve tartışmasız hala "bugünün sistemlerinden" biri.
Joachim Sauer

16

Bilgisayarlar henüz laboratuarlarda bile bulunmayan bazı yeni teknolojiler kullanmaya başlamadıkça , mevcut silikon teknolojisi ile 2 64'ten fazla adreslenebilir alana sahip olmak fiziksel olarak mümkün değildir . Teknoloji fiziksel sınırlara çarpıyor . Hız (GHz) sınırı, birkaç yıl önce çoktan çarpılmıştı. Minyatürleştirme sınırı da çok yakındır. Halen üretimdeki en ileri teknoloji 20 nm, laboratuvarlarda 7 atomdan oluşan transistör ile 4 nm'dir.

Sadece yeni teknolojinin geliştirilmesinin ne kadar sürdüğünü perspektif olarak söylemek gerekirse: mevcut bilgisayarlar 1925'te icat edilmiş transistörlere dayanıyor ve mevcut silikon teknolojisi 1954'e dayanıyor.


Alternatif teknolojiler gelince:

  • optik bilgi işlem - hesaplama hızında artış sağlayabilir ancak depolama için minyatürleştirme problemini çözmez;
  • kuantum hesaplama - tam olarak kullanılması, tamamen yeni bir programlama paradigması gerektirecektir; bu nedenle, işaretçiler 64 veya 128 bit olacaksa, endişelerinizden en az biri. Ayrıca minyatürleşmeyle ilgili aynı fiziksel kısıtlamalar bu teknolojiye uygulanır;
  • DNA hesaplama - bunlar belirli bir problem sınıfını çözmek için tasarlanmış konsept kanıtı oyuncaklardır. Gerçek hayat kullanımı için uygun değildir. Normal PC'de bir saniyenin altında yapılacak hesaplamaları almak için, Pasifik Okyanusu büyüklüğünde ve birkaç bin yıl DNA tankı alacağız. Doğal, biyolojik bir işlem olduğu için, bunu küçültmenin veya hızlandırmanın bir yolu yoktur.

4
Yani temel olarak, artık teknolojik bir atılım olmayacağını mı söylüyorsunuz? Sonsuza dek silikon teknolojisiyle sıkışıp kalacağız. Radikal olarak kuantum hesaplama veya DNA bilgisayarları gibi yeni şeyler sonsuza dek araştırmada kalacak. Buna gerçekten inanıyor musun?
nikie

2
@nikie: Kuantum bilgisayarlar sihir değildir. Hala atom kullanıyorlar. Hala fizikle sınırlıdırlar. DNA bilgisayarları? Ciddi misin??? Kavram kanıtı olmanın ötesinde tamamen işe yaramaz.
vartec

4
@Thor: Eh, 2011'de de Ay'a insan koymak fiziksel olarak mümkün değil.
vartec

7
Neden -1? Özet, bazı çok sağlam topraklamalara sahiptir. 2 ^ 64, çok, çok, çok büyük bir sayıdır. 2 ^ 32 * 2 değil, çok daha büyük ve 2 ^ 128 oldukça çılgınca. Sadece yapmak için çok zaman alacaktı for(unsigned __int128 i=0; i<2^128; i++){}. Mevcut teknoloji ile 128 bit tamsayıların fazla kullanımı yoktur. Korunmasız adres alanına geri dönmenin yanı sıra, diğer uygulamaların belleğine 128 bit adres alanında yanlışlıkla basmak, rastgele adreslere rastgele yazıyor olsanız bile, yapmak oldukça imkansız olacaktır.
Kodlayıcı

2
@nikie: Kuantum bilgisayarlarda mevcut bellek modellerinin (burada konusu olan) kullanılması kuantum bilgisayarlarda bütün amaçlarını yitirdiğinden, kuantum bilgisayarları bu tartışmalarla alakasızdır. Ve evet, DNA bilgisayarları asla gerçek kullanımda olmayacak. Bir yürütme modeli için temel olarak hücresel otomatları kullanmak gibidir.
back2dos

15

Thorbjoern bağlantılı süper bilgisayar, yaklaşık 2 ^ 47 B fiziksel belleğe sahiptir.
Moore Yasası'nın süper bilgisayarların hatırası için geçerli olduğunu varsayarsak, yalnızca 34 yıl içinde 2 ^ 64 B fiziksel bellek olacaktır. Bu "OMG, bunu görmek için yaşayacağız !!!!" gibi. Olabilir. Ve gerçekten de büyüleyici. Ama aynı derecede alakasız.

Asıl soru, 2 ^ 65 B fiziksel belleği kullanmak için 128 bit adres alanına ihtiyacım var mı?
Cevap HAYIR . Tek bir işlemden 2 ^ 65 B sanal belleğe ulaşmak için 128 bit adres alanına ihtiyacım var .

Yani bir sorunuzun önemli bir nokta, "Will gerçek dünya uygulamaları hiç gerek 128 bit düz adres boşluğu?". " İhtiyaç ", kesinlikle değil, daha azına ulaşabilir, adres alanını haritalanmış hale getirebilirsiniz (düz değil); ama o zaman "düz bir 128-bit adres alanı" olmazdı.

Örnek olarak, Dünya üzerindeki atomları fiziksel bir hafıza adresi (çoğunlukla bu basit örneği sağlamak için ne nedenle olursa olsun) atamak istediğinizi varsayalım , sıfırdan başlayın ve saymaya devam edin (işiniz bittiğinde bana geri dönün). Şimdi bir başkası Kepler-10c'de (568 ly uzaklıkta) aynı şeyi yapmak istiyor .

Bir adres çatışması istemezsiniz, böylece diğer kişi kullanılabilir düz bellek alanına yüksek bir bellek adresi tahsis eder , bu da siz ve diğer kişilerin belleği eşlemeden doğrudan adreslenmelerini sağlar. Bunu yapmayacaksanız veya hafızanız ile adresi arasında bire bir ilişki olmadan başaramazsanız (seyrek bir dizi uygulamaya istekli olursanız), o zaman bir kızarık 64 bit hafızayla başlayabilirsiniz.

Birisi " X miktarı Y yeterli olacaktır " önerdiğinde , böyle bir tahmin genellikle kısa süren kalır.

Yani soru şudur: Ne kadar sürede tek bir işlem yapacağız , bu işlem 2 ^ 65 B bellek kullanır. Umarım asla

Zamanımızın en büyük sorunu, tek bir işlemcinin işlem gücünün sınırlı olmasıdır. Atomların boyutu tarafından tanımlanan boyutta bir sınır vardır ve belirli bir boyut için, ışık hızıyla verilen saat hızında, manyetik alanlardaki değişikliklerle ilgili bilgilerin evrenimizde yayılma hızının bir sınırı vardır.
Ve aslında, limite birkaç yıl öncesine kadar ulaşıldı ve daha önce olduklarının altındaki saat oranlarına karar verdik . CPU gücü artık doğrusal olarak ölçeklenmeyecek. Performans şimdi sıra dışı çalıştırma, dal kestirimi, daha büyük önbellekler, daha fazla kod, vektör işlemleri ve ne yapılmamasıyla artırıldı. Olmamıştır mimari optimizasyon .
Ve önemli bir fikir paralelliktir. Paralelleştirme ile ilgili sorun, ölçeklenmemesidir. 20 yıl önce yavaş kod yazdıysanız, 10 yıl önce çok daha hızlı çalıştı. Şimdi yavaş kod yazarsanız, 10 yıl içinde çok daha hızlı bir şekilde olmaz.

2 ^ 65 B bellek kullanan işlemler son derece aptallığın bir işaretidir. Bu, mimari bir optimizasyonun olmadığını göstermektedir . Bu verileri makul bir şekilde işlemek için, çoğu kaynağın hazır olmasını beklemek için zaman harcayacağınız 10 milyon çekirdeğe ihtiyacınız olacak, çünkü kaynağı elde eden çekirdekler, ethernet üzerinden tamamen farklı bir makinede fiziksel bellek kullanıyor. Büyük, karmaşık sorunlarla baş etmenin anahtarı, onları daha küçük ve daha karmaşık sistemler kurmamak için küçük, basit sorunlara ayırmaktır. Sh * tload veri ile uğraşırken yatay bölümlere ihtiyacınız vardır.

Fakat bu deliliğin devam etmesi gerektiğini varsayarsak bile, 128 bitin yeterli olduğuna emin olun :

  • Dünya, sahip olduğumuz 2 ^ 166 atom olan yaklaşık 8.87 e + 49 atomuna sahiptir .
  • Bir bit tutmanın 2 ^ 20 atomu olduğunu varsayalım. Bu aynı zamanda tüm kablolama, plastik ve onunla birlikte gelen gücü içerir. Transistörleri bir kutuya atıp bilgisayar diyemezsin. Yani 2 ^ 20 oldukça iyimser görünüyor.
  • 128 bit adres alanı kullanmak için 2 ^ 133 bit, yani 2 ^ 152 atom gerekir . Dünyadaki atomların eşit dağılımını varsayarsak, onları almak için ne kadar kabuk kullanmamız gerektiğini görelim:

    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
    

    Böylece , tüm yüzeyde yüzmek için 130 metreye sahipsiniz (su, kum veya buzla kaplı% 80 dahil). Olmayacak. Kazabildiğinizi varsayalım (lol) ve tüm bu maddeler cips halinde işlenmeye uygun, enerjiyi nereden alacaksınız?


8
Öte yandan, tüm gezegen şeridi madenciliği için çevresel etki değerlendirmesini yapmak için çok büyük bir bilgisayara ihtiyacınız olacaktır, bu yüzden belki de kendini haklı çıkarır (burada biraz Hitch Hiker almak)
Martin Beckett

2
Bir bit = 10 ^ 6 atom. Bütün dünya = 10 ^ 50 atom. Bütün evren = 10 ^ 80 atom. Üstel gösterim, harika! :-)
Konamiman

2
Mesele, 128 bitlik bir adres alanı kullanmak değil, 64 bitlik bir adres alanı kullanmaktır. Peki hangi noktada 64 bitin ötesinde bir ekstra adresleme ihtiyacımız var? 2 ^ 65 bayt için ne kadar fiziksel alana ihtiyaç var?
David R Tribble,

1
Yani fiziksel bir 128-bit bellek mimarisinin gezegen ölçekli üretim yetenekleri gerektirdiğini mi söylüyorsunuz ?
16:32

Tek atomlu transistörler geliştirilmiştir. Bit sayısı başına 2 ^ 20 (yaklaşık bir milyon) atoma nasıl ulaşıyorsunuz? en.wikipedia.org/wiki/5_nanometer
JimmyJames

8

Şey, kesinlikle büyük bir adres alanı kullanabiliriz.

Hayal et:

  1. Adres alanı tek bir bilgisayarla sınırlı değildir. Bunun yerine, bir adres evrensel bir adres alanındaki bir bellek hücresini benzersiz şekilde tanımlar. Böylece dünyadaki herhangi bir bilgisayardaki bir hafıza hücresine bir göstergeye sahip olabilirsiniz. Uzak bellekten okumayı mümkün kılan bazı protokoller olması gerekecektir, ancak bu bir uygulama detayıdır. :-)

  2. Hafıza Bir Kez Yaz, Çok Okun, yani bir hafıza adresine yalnızca bir kez veri yazabilirsiniz. Değişken bir değer için, her değiştiğinde yeni bir bellek parçası ayırmanız gerekir. Biz programcılar değişmezliğin ve işlemsel belleğin artılarını görmeye başladık, bu yüzden hafızanın üzerine yazmaya bile izin vermeyen bir donanım tasarımı böyle imkansız bir fikir olmayabilir.

Bu iki fikri birleştirdiğinizde çok büyük bir adres alanına ihtiyacınız olacaktır.


Ve neden dünyadaki her bilgisayarın her baytını adreslemeniz gerekiyor? (NSA olmadığınızı farz ediyorum.)
David R Tribble

çünkü bizleri elbette kurtuluşa götürmek için AI’yı ele geçiren dünya lideri bir bina kuracağız!
sara,

7

Bilgisayarlar ne kadar yetenekli olursa, onlardan daha karmaşık problemlerle çalışmaları istenir.

Top500.org'da listelenen en büyük süper bilgisayar , yaklaşık 220 Tb RAM ve 180000 çekirdeğe sahip http://www.top500.org/system/10587'dir . Başka bir deyişle, "gerçek yaşam uygulamaları" bu platformda çalışabilecek olan şeydir.

Günümüzün bilgisayarları, 10-15 yıl önce süper bilgisayarlar kadar güçlüdür (bilgisayar gücü grafik kartınızda gizlenmiş olsa bile).

Bu nedenle, 10-15 yıl içinde bellekteki 100 faktörü, 64 bit adres alanının, mevcut eğilim devam ederse log (100 milyon) / log (100) 6 civarında olduğu için yaklaşık 100 yıl içinde sınırlayıcı bir faktör olacağı anlamına gelecektir.


not: matematik doğrulanmamış, muhtemelen oldukça kapalı.

17
Tıpkı 1800'lerin öngördüğü gibi, eğer trafik çok büyürse, bütün şehirler at gübresi
dağlarıyla kaplanacak

1
Bu günlerde 220 GB fazla değil. 256 GB RAM'e sahip sunucular var. 180000 çekirdek? Şimdi bu bir şey :). Bunu işaret ediyorum çünkü OP'nin asıl endişesi RAM büyüklüğü.
Tamás Szelei

1
@vartec, sadece kör ekstrapolasyonun geçerli olmayabileceğini gösterir. Burada da aynısı.

6
Tamás haklıydı: Verdiğiniz bağlantıda, daha çok 220 TB gibi olacak olan "229376 GB" yazıyor. Ayrıca, çekirdek başına 4 MB L2 önbellek varsayarak, 180 K çekirdek zaten 720 GB L2 önbelleğe sahip;)
back2dos 15:11

5

Bu konunun okunması oldukça komik, itiraz edip aleyhine çok güçlü bir görüş ...

İşte bir şey ..

Teknolojinin agnostik olduğu ve zamana bağlı olmadığı sorusundan anlıyorum. Bu nedenle, silikon, kuantum bilgisayarlarda veya Sonsuz Maymun Peddling Abacus'taki güncel gelişme, ilgisizdir.

Hesaplamalar ve ekstrapolasyonlar da oldukça komik olsa da, back2dos'un cevabı bu sayının temsil ettiği şeyin gerçek boyutunu göstermek için oldukça iyi çalışıyor. öyleyse bununla çalışalım.

Aklınızı, insanın artık küçük gezegeninin sınırına bağlı olmadığı geleceğe koyun, çok büyük mesafelerde taşımacılığa izin vermek için gerçekçi bir ulaşım aracı geliştirildi ve sosyal yapılar (ekonomik, politik vb.) Nesiller boyu ilerlemeye başladı. Firayonik projelerin yayılması ortak yerler haline geldi. Geleceğe yönelik bu uzak görüş vizyonunun iki yönüne odaklanalım, ancak bir kişinin her ayrıntıyı açıklamak için zaman harcamak istemesi durumunda, mevcut teknolojiler üzerindeki bir dizi akla gelebilecek evrimle rasyonelleştirebileceğinden eminim. Başka bir deyişle, olası bir gelecek olmasa da, makul ... bir şekilde ...

İlk proje, ilk gezegen bilgisayar olduğu gibi ilk elektronik bilgisayarın anısına Colossus olarak adlandırıldı. Colossus Brotherhood gerçekten küçük bir gezegeni yakalamak ve onu çalışan bir bilgisayara dönüştürmek için bir araç buldu. Son zamanlarda, eriyebilir izotoplar arasında periküler yönden zengin olan Kuyper kuşağında, enerjisel olarak özerk hale getirilen keşfedilmiş, yapım sürecini sondalar, robotlar vb. İle tamamen özerk hale getirmiş, bilgisayar sistemini kendi kendine onarım ve kendi kendine inşa ettirmiştir. Bu durumda, 2 ^ 64 adres alanının bu proje için daha da kısıtlayıcı olması, halihazırda başka bir proje için halihazırda mevcut olan uygulamaları kolayca taşımak için sürekli bir adres alanı elde etmek istediği için düşünülebilir.

Diğer proje, ağ oluşturmada fiziksel bir sistemden çok bir deneydir, ancak daha büyük bir adres alanına ihtiyaç duyulduğunu gösterdi. 540 yıl önce genç bir hacker devasa bir bot ağı oluşturma fikriyle oynuyordu. İnternet, füzyon gücündeki büyük ilerlemeler üzerine güneş sistemi binasının etrafındaki yeni kolonileri içerecek şekilde genişlemişti. Fikirleri temelde ağ üzerinde küçük botlar yaymaktı, ancak yük yükü, tüm botların tüm gücünün bir araya geldiğini varsayarak kodun yazıldığı birleşik bir sanal makine sağlamaya yönelikti. Derleyiciye ve dağıtımın altında yatan ortamın doğal güvenilmezliğini hesaba katmak için tasarlanmış gecikmeleri ve karmaşık algoritmaları optimize etmek için büyük çabalar sarf edildi. Bu yeni dili hedeflemek için özel olarak bir dil yazılmıştır " Hacker'ımız bunun yerine bir şemsiye şirketi kurdu ve bilgisayar gücünü en yüksek teklifi verene sattı. Öldüğü zaman bu botnet'i ve tüm teknolojileri bir vakfa bağışladı. Bu noktada botnet zaten 64 yıldan beri çalışıyordu ve bir süre önce 2 ^ 64 adres alanını çoktan aşmıştı, 1000 yıl öncesine ait hiçbir zaman daha büyük adres alanı gerektirmeyeceğimizi düşünerek. Günümüzde 2 ^ 128, norm ve Colossus için kullanılacak olan şeydir, ancak bunu zaten 2 ^ 256'ya genişletme planları var. Hacker'ımız bunun yerine bir şemsiye şirketi kurdu ve bilgisayar gücünü en yüksek teklifi verene sattı. Öldüğü zaman bu botnet'i ve tüm teknolojileri bir vakfa bağışladı. Bu noktada botnet zaten 64 yıldan beri çalışıyordu ve bir süre önce 2 ^ 64 adres alanını çoktan aşmıştı, 1000 yıl öncesine ait hiçbir zaman daha büyük adres alanı gerektirmeyeceğimizi düşünerek. Günümüzde 2 ^ 128, norm ve Colossus için kullanılacak olan şeydir, ancak bunu zaten 2 ^ 256'ya genişletme planları var.

Muhtemelen, evet demek istediğimi anlatan daha makul senaryolar bulabilirim ... evet, neredeyse kesin, bir gün bundan daha büyük bir adres alanına ihtiyaç duyacağız.

Bununla birlikte, uygulamanızın düzgün çalışması için belirli bir adres alanı gerektiriyorsa, bunun için büyük olasılıkla ihtiyaç duyduğu her şeyi veren bir VM'de yaşayacağımı, bunun üzerinde uyuyamayacağımı sanmıyorum.

Böylece ... kısa cevap ...

EVET, Büyük olasılıkla

fakat

Sorun ortaya çıktığında neden bununla ilgilenmiyoruz ... Şahsen ben programlarımda asla varsayımlarda bulunmam, bu yüzden asla sürprizlerle karşılaşmam.


2
Hayali örneğinizde ayrıntı düzeyinde eğleniyorum. Bir yere kısa bir hikaye mi yazıyorsun?
Christopher Bibbs

2

Adres konumları, adres genişliğine göre logaritmik bir maliyete sahiptir , böylece söz konusu parametrelere dayanarak üst sınırları göz önünde bulundurabiliriz:

Dünyadaki kum parçacıkları için 64-bit = 7.5x10 ^ 18 Gözlenebilir evrendeki yıldızlar için
128-bit = 10 ^ 24 Dünyadaki parçacıklar için
256-bit = 10 ^ 50 Gözlenebilir evrendeki parçacıklar için
512-bit = 10 ^ 82
1024 -gözlemlenebilir evrendeki kübik tahta uzunlukları için bit = 4.65 × 10 ^ 185

  • Sparsity karma, güvenliği ve indeksleme için tanıtıldı

6.6106 ... × 10 ^ 122 gözlenebilir evrendeki muhtemel parçacık konfigürasyonları için = 10 ^ (10 ^ 122)

Muhtemel yapılandırmaları, fiziksel olarak mümkün olan en büyük yapılandırılabilir bellek adresi için üst sınır olarak kabul edebiliriz.


N adresleri için gereken genişliği hesaplamak için , bunu wolfram alpha: 2 ^ ceil (log2 (log2 ( n ))) yazın
Timothy Swan

1
Adreslerin çoğunda hiçbir adrese değinmediği çok fazla gereksiz adres alanlarına sahip olmanın faydalı olabileceği konusunda haklısınız, vb. Gibi, ancak birinin URL'leri makine sanal adreslerine kodlamasını bile önerdiğini düşünüyorum (yalnızca bir onların karmaları), yani gerçekten, gelecekteki bazı sanal adresleme planlarının potansiyel olarak ne kadar boş / gereksiz olduğu konusunda bir üst sınır yoktur. Verileri adreslere kodlamanın (gerektiğinde potansiyel olarak korunan tablolarda aranmanın aksine) elbette iyi bir fikir gibi göründüğü anlamına gelmez.
Steve314

0

Bence birkaç yıl gelmek için muhtemelen rahat bir nefes alabiliyorsunuz. Donanımda inovasyon hızına bakarsanız, son birkaç yılda önemli bir atılım olmadığına bakılır. 2.x GHz frekanslı CPU'lar bir süredir buralardaydı ve bugünlerde işlem gücündeki herhangi bir artış çip üzerine daha fazla çekirdek paketlemekten kaynaklanıyor. Tahrik kapasitesi hala artıyor, ancak 10 yıl önceki aynı oranlarda değil.

Mevcut teknolojimizin fiziğin sınırlarına yaklaştığını düşünüyorum.

Bu gelecek için ne anlama geliyor? Bilgi işlemede yeni kuantum sıçramaları elde etmek için tamamen yeni teknolojilerin kullanılması gerektiğini düşünüyorum. Bu teknolojiler, muhtemelen bugünküne tamamen yabancı bir bağlamda olsa da, “yazılımı” kullanacaklardır. Ve hangi alan gereksinimlerini karşıladığını ya da sağlayabileceklerini kim biliyor? Veya adres alanının bu teknolojide anlamlı bir kavram olup olmadığı?

Bu yüzden henüz bu konuda emekli olma.


CPU hızı bellek boyutundan biraz farklı bir kavram.

İşlemci hızlarının son birkaç yılda çok fazla artmadığı sonucuna varacağınızdan emin değilim, fiziğin sınırlarına yaklaşmakla bir ilgisi var. Çok çekirdekli işlemcilerin son birkaç yıldaki bütün öfke gibi bir şey olduğu ve CPU üreticilerinin paralarını saat iyileştirme işlemlerine harcamak yerine tüm bu işlemcileri en iyi şekilde nasıl kullanacaklarına yatırım yaptıkları bir gerçektir. Büyük şirketlerin bile Ar-Ge doları konusunda bir sınırı vardır. Sürücü kapasitesi hala oldukça hızlı artmaktadır IMO. 140 dolara 3 TB'lik bir sürücü gördüm.
Dunk

0

Evet olacak. (Oyunlar? Yapay Zeka ile ilgili konular?)

Yine de, daha uygun bir soru, bunun tipik bir programlayıcıya sayılıp sayılmayacağı olabilir. Ruby'nin sayıları otomatik olarak FixNum'dan BigNum'a nasıl dönüştürdüğünü ve gerektiğinde geri döndüğünü düşünün. Diğer diller (en azından dinamik diller) sonunda aynı şeyi yapmazsa şaşırırdım.


1
Ah evet. cehennem evet. Ben 128 bit aritmetik kullanmak zorunda sooo serin bir oyun oynamak istiyorum !!!!!!!!!
Chani

1
Dük Nukem Forever Rev 2.0 mı? Veya Madden Futbol 2025?
John R. Strohm

0

Bu miktarda bilgiyi saklamak bir şeydir ve onunla faydalı bir şey yapmak başka bir şeydir. Benim bakış açıma göre, onu kullanacak işlem gücüne sahip olmadıkça bu depolamaya ihtiyaç duymuyorum. Belki de büyük veritabanlarını önbelleğe almak bir şeydir, ancak sayısal işlemler için önce işlemcilere ihtiyacımız olduğunu düşünüyorum.


0

Uygulamalar hiç bu kadar belleğe ihtiyaç duyacak mı? Oldukça mümkün. Hava durumu tahminleri, genel olarak fiziksel simülasyonlar veya kriptografi gibi uygulamalar muhtemelen her zaman daha fazla hafıza ve daha fazla işlem gücünden faydalanacaktır. Ve 50-100 yıldaki katil uygulamasının ne olacağını kim bilebilir? Holografik görüntüler? Her 100 karakterlik şifre için gökkuşağı masaları?

Bu kadar hafızayı temsil etmek fiziksel olarak mümkün mü? Kesinlikle mümkün. Örneğin, 100 bitlik bir kuantum bilgisayar, klasik 2 ^ 100 bitlik bir bilgisayarla aynı sayıda durumu temsil edebilir. Yolu daha adres alanı 2 ^ 67 bitten daha şimdi var. (Biliyorum, 100-bit kuantum bir bilgisayar bilim kurgu gibi geliyor. Birisinin inşa edilmesinin mümkün olacağına ikna olmadım. Fakat diğer yandan, aynı şey muhtemelen kullanılacak olan herhangi bir teknoloji için de söylenebilir. veya bundan 100 yıl sonra.)

Ancak, "düz adres alanları" nın o zamanlar için ana endişe kaynağı olacağından ciddi olarak şüpheliyim. Belki o zamana kadar "adres alanı" kavramının pek anlamlı olmadığı kuantum algoritmaları geliştireceğiz. Bilgisayarlar "klasik" olsalar bile, muhtemelen üniform olmayan belleğe sahip korkunç sayıda işlem birimi ile uğraşmak zorunda kalacağız.


"100-bitlik kuantum bilgisayar, klasik 2 ^ 100 bitlik bilgisayarla aynı sayıda durumu temsil edebilir." Qubitlerin işleyişi böyle değil. 100 bitlik bir bilgisayar, 100 bitlik bir bilgisayarla aynı sayıda durumu temsil edebilir. Aradaki fark, 100-bitlik bilgisayarın bir anda tüm bu durumların üst üste gelmesini temsil edebileceğidir. Qubitlerle ilgili diğer bir şey, onları okumaya gittiğinde, sadece bir cevap alacağın ve tamamen rastgele olacağı.
JimmyJames,

@JimmyJames: Kesinlikle. Dolayısıyla, 100-bit kuantum bir bilgisayarın klasik bir bilgisayarda belirli bir zamanda sahip olduğu aynı bilgiyi temsil etmek istiyorsanız (örn. Onu simüle etmek için), 100 bitden daha fazlasına ihtiyacınız olacaktır. Benim söylediğim de bu. (Ya da her neyse demek
istedim

Yine, bu nasıl çalıştığını değil. 2 bitlik bir kayıt 4 değeri temsil edebilir. 2-bitlik bir kayıt 4 değeri gösterebilir. Her ikisi de aynı değerleri temsil edebilir. Qubit register aynı 4'ü de temsil edebilir. Aradaki fark bu.
JimmyJames,

@JimmyJames: 2 bitlik bir "klasik" sicilin 2 değeri temsil edebileceğini söylemek gibi, aynı zamanda. Bu konuda Şöyle düşünün: Bir klasik bilgisayarda bir kuantum bilgisayarı simüle etmek istiyorsa, kaç bit istediğiniz zaman 2-qubit kuantum bilgisayarın tam durumunu saklamak gerekir t ?
nikie

Anladım ama ben ama eksik olan şey, litrelerden belirli bir değer alamamanız. Yani, süperpozisyonda bir alışkanlık olarak verilen, okunduğu zaman ya 1 ya da 0 alırsınız, ancak her iki değeri de
decoherence

0

Her hafıza konumunda global olarak benzersiz bir adres olsaydı ne olurdu?

  • Ağ protokolleri çok daha kolay olabilirdi.
  • Dağıtılmış nesneler ilginç olabilir - tüm nesneler aynı bellek alanında var olabilir.
  • Belki de "bir kez yaz" hatıralarına geçip, adres yapısının bir parçası olarak zamanı dahil ederiz. Geçmişte var olan nesneleri okuyabilirdiniz.
  • Tüm ikincil depolama doğrudan adreslenebilir. Elveda FILE, fopen()vb
  • Kötü bir işaretçiye yazmak ve bir başkasının makinesini bağlamaktan tutuklanabilirsiniz.
  • Öğrencilerin ilk CS dersine başlamadan önce gösterilmeleri gerekirdi: Çok az kişi Total Perspective Vortex'e dayanabilir .

0

Burada sadece “yüksek sesle düşünmek”, ama sadece bir 128-bit bilgisayar üzerinde kalan 64 bit ile ilginç bir anlamsal şeyler yapabileceğimin aklıma geldi. Krş IP'nin çalışma şekli.

İnsanların böyle bir şey için eğlenceli kullandıklarından eminim. :) PS3'ün 128 bit adreslerini ne için kullandığını bilen var mı? Kuşkusuz ki tüm bu ekstra belleği boşa harcamazsınız (ve bu adreslerin gösterdiği şeylerden değil, yalnızca gerçek adreslerin belleğinden bahsediyorum). Veri olarak adreslenir. Bir şubeyi adresin içinde bile kodlayabilirsiniz ... yani, 0x [ifAddress] [elseAddress] Çok çekirdekli sistemler bu tür bölümlendirmeden de yararlanabilir. Ve ve...


0

64 bit mimarinin üstüne çıkmak için herhangi bir sebep var mı? (18,446,744,073,709,551,615 bayt adreslenebilir hafıza)

Dijital elektronik ve hesaplama ile ilgili ikili ölçüm birimi katları için öneklerin kullanımıyla ilgili IEEE 1541-2002 standardını kullanarak, şunu görüyoruz:

1 Bayt = 8 Bit, 1 Kilobayt = 1024 Bayt, 1 Megabayt = 1024 KB, 1 Gigabayt = 1024 MB, 1 Terabayt = 1024 GB, 1 Petabayt = 1024 TB, 1 Eksabayt = 1024 PB

Ve Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte ve Monoicosebyte için de geçerlidir.

Toplam Earth disk depolama alanının 2016 yılı itibariyle yaklaşık 2,500 Exabyte olduğu tahmin edilmektedir.

64 bitlik bir kayıt 15 Exabyte belleğe doğrudan erişebilir. 128 bitlik bir kayıt doğrudan 3.40282367 × 10 ^ 35 Zettabayt'a erişebilir. Veya 295,147,905,247,928,000 Monoicosebytes.

Böylece 128 bitlik bir kaydın tüm Dünyaların hafızasına, internette gönderilen her şeye, konuşulan veya yazılan her kelimeye, her filme ve çok daha fazlası için oldukça uzun bir süre boyunca iyi bir konumda olacağını görebiliriz. .

Yani cevap evet , şimdiye kadar olan veya olacak olan herhangi bir dijital şeye işaret edebilecek bir çerçeve bekliyor .


0

Ortalama bir insan beynindeki nöronların sayısı için bulabildiğim en iyi tahmin yaklaşık 86 milyar. RAM'i genel olarak nöronlarla doğrudan karşılaştıramayız, ancak bir sinir ağında sizin de yapabilirsiniz. Nöron veya bir sinaps durumunu temsil etmek için birkaç adres gerekir. Bu yüzden vahşi bir tahminde bulunacağım ve bir insan beyniyle karşılaştırılabilecek bir sinir ağı oluşturmak için trilyon adresleri gibi bir şeye baktığımızı söyleyeceğim. Öyleyse, bu yapılabilirse, neden bundan daha fazla ileri gitmediğini anlamıyorum. Böyle bir ağın düşünebildiği problem türleri, bunu yapabilmek için neden bu kadar büyük olmaları gerektiğinin yanı sıra kavrama yeteneklerimizin de ötesinde olacaktır.


0

Adres alanı. C standardını değiştirelim diyelim ki realloc kullanılan imleci değiştiremez. Bugün 2 ^ 33 bellek bloğu ayırabilirim (Mac'imde 192 GB RAM gerekir, 8 milyar kez 8 bayt işaretçi ve 16 bayt ayrılmış alan var, bu yüzden şu anda bunu yapamam, ancak yapabilen bir Mac alabilirim) yeni bir ipotek almadan).

Ve bu işaretçilerden herhangi birini 2 ^ 33 bayt alabilmek için yeniden ayırabilirim. Aynı anda çok fazla değil :-) Ancak eğer realloc hareket eden işaretçilere izin vermiyorsa ve 2 ^ 33 byte'a izin verilirse, orijinal işaretçiler 2 ^ 33 byte olmalıdır, yani 2 ^ 66 byte bellek gerekir.


-1

Tabii, gelecekte bu kadar fazla alana ihtiyaç duyulmaması için hiçbir neden görmüyorum. Oyunun gelişimini düşünürseniz, bir oyunun ne kadar gerçekçi veya karmaşık olabileceğinin bir sınırı yoktur, değil mi? (Kullanılan grafik / poligon sayısı ve nesnelerin etkileşimi ve davranışını tanımlayan algoritmalar)?

Kim bilir, 10 yıl içinde minimum 12GB koç ve 8 çekirdekli işlemci gereksinimi olan 10 TB oyunlar oynuyoruz. : P


Ayrıntı için bir sınır yok. Fakat silikonun bir sınırı var.
Billy ONeal,

-1

20 yıl önce, gezegende 2 milyar daha az insan vardı ve bilgisayar sistemlerinin çoğu kilobayt cinsinden ölçülebilen adreslenebilir belleğe sahipti. Bugün, dünya nüfusu aynı oranda artmakta ve bilgisayar kullanıcılarının sayısı her yıl katlanarak artmaktadır.

Çok az sistemin 64 baytlık bir adres alanına ihtiyaç duyduğu doğrudur. Ancak bazı sistemler her gün terabaytlık bilgi depolar. Bu, bilgisayar kullanıcılarının artması ve internet hızlarının artması nedeniyle mümkün olmuştur. HTTP'nin icad edilmesinden yalnızca 23 yıl sonra 10 GB / sn internet hızlarını zaten destekleyebiliriz. Bu oranda 50 yılda 1 TB / s veya daha yüksek internet hızları beklememek aptallık olur diye düşünüyorum. Verileri bu kadar hızlı bir şekilde taşıyabildiğimizde, depolanacak daha fazla veri olacak, bu verileri depolamak için daha fazla insan var olacak ve 128 bitlik bir sisteme başka yaygın bir geçiş olması gerekecek ve kaçınılmaz olacak. 512 bit.


Her konuda haklısın, ama benim açımdan özledim. Bilişim endüstrisi 100 yıldan daha eski ve son birkaç on yılda olduğu gibi büyümeye devam ederse, sadece bu zaman diliminde bu noktada sınırımızı aştığımızı varsaymak aptalca olmaz, ancak talepleri görmezden gelir geleceğin. 64 bitlik bir mimariye ihtiyaç duymamızın tek nedeni adres alanı değil. Komut setleri o kadar büyüyebilir ve 128 bit genişliğinde işaretçiler daha verimli ve tercih edilir. Bir diğer avantaj ise daha yüksek bir bit mimariye geçiş sağlayan CPU kayıt alanıdır.
Andrew Katz

Neden tüm bu yorumları yazdım bilmiyorum - sadece kötü bir ruh hali en iyi bahanem. Olumsuz oy benim değil.
Steve314

-1

evet uygulamalar sanal alanın her baytını doldurmaz. adres alanı düzenini rastgele seçerek en büyük yararı elde edersiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.