Neden “daha ​​fazla çekirdek ekleyin”, “CPU'yu daha hızlı yapmak” ile aynı fiziksel sınırlamalarla karşılaşmıyor?


110

2014'te eşzamanlılık özellikleri için lanse edilen birçok programlama dili duydum. Eşzamanlılık performans kazanımları için çok önemli olduğu söyleniyor.

Bu açıklamayı yaparken, birçok kişi Ücretsiz Öğle Yemeği Bitti: Yazılımda Eşzamanlılığa Doğru Temel Bir Dönüş adlı 2005 makalesine işaret ediyor . Temel argüman, işlemcilerin saat hızını arttırmanın daha zor hale geldiği, ancak yine de bir yongaya daha fazla çekirdek koyabileceğimizi ve performans kazanımları elde etmek için, çoklu çekirdeklerden yararlanmak için yazılımın yazılması gerekecek.

Bazı anahtar alıntılar:

500MHz CPU'ların 1GHz CPU'lara, 2GHz CPU'lara da yol açtığını görmeye alışkınız. Bugün ana bilgisayarlarda 3GHz aralığındayız.

Anahtar soru şudur: Ne zaman bitecek? Sonuçta, Moore Yasası üssel büyümeyi öngörüyor ve açıkça üssel büyüme, fiziksel sınırlara ulaşmadan sonsuza dek devam edemez; Işık daha hızlı olmuyor. Büyüme sonunda yavaşlamalı ve hatta sona ermelidir.

... bir veya birkaç fiziksel sorun nedeniyle, özellikle de ısı (çok fazla ve dağıtılması çok zor), güç tüketimi (çok yüksek) ve mevcut kaçak sorunları nedeniyle daha yüksek saat hızlarından yararlanmak zorlaşıyor ve zorlaşıyor.

... Intel'in ve çoğu işlemci satıcısının geleceği, çip şirketleri agresif bir şekilde aynı yeni çok çekirdekli yönergeleri takip ederken başka bir yerde bulunuyor.

... Çok çekirdekli, bir yonga üzerinde iki veya daha fazla gerçek CPU çalıştırma hakkında.

Bu makalenin öngörüleri yerine gelmiş gibi görünüyor, ama nedenini anlamıyorum. Donanımın nasıl çalıştığı hakkında sadece çok belirsiz fikirlerim var.

Aşırı basitleştirilmiş görüşüme göre “aynı alana daha fazla işlem gücü paketlemek zorlaşıyor” (ısı, güç tüketimi vb. İle ilgili sorunlar nedeniyle). Sonuç olarak "bu nedenle daha büyük bilgisayarlara sahip olmamız veya programlarımızı birden fazla bilgisayarda çalıştırmamız gerekecek" umuyorum. (Ve aslında, dağıtılmış bulut bilişim, daha çok duyduğumuz bir şeydir.)

Ancak çözümün bir kısmı çok çekirdekli mimariler gibi görünüyor. Bilgisayarlar boyutta büyüyünce (sahip olmadıkları), bu da “aynı alana daha fazla odaklanma gücü” demenin başka bir yolu gibi görünüyor.

Neden "daha fazla çekirdek ekle", "CPU'yu daha hızlı kılmak" ile aynı fiziksel sınırlamalarla karşılaşmıyor?

Lütfen yapabileceğiniz en basit ifadelerle açıklayın. :)



4
en.wikipedia.org/wiki/More%27s_law okunmaya değer - iki farklı şeyden söz ettiğimizden beri. Moore yasası saat hızı ile ilgili değil - transistör sayımıyla ilgili
Journeyman Geek

9
Şimdiden 30 yıl önceydi ve işlemciler 4.77MHz’de çalıştığını farz edelim. 4GHz CPU almak imkansız olsa bile neden aynı odaya 4MHz CPU'lu 1000 bilgisayar koydunuz?
user20574

3
@NathanLong, ancak daha hızlı bir bilgisayar almaktan daha fazla yer kaplamak (daha fazla bilgisayar için) daha kolaydır.
user20574

5
Analoji: Bir araba motoru sadece bu kadar çok d / d için yapılabilir, ancak iki tanesini de kolayca bağlayabilirsiniz.
OJFord

Yanıtlar:


143

özet

  • İktisat. Daha yüksek saat hızından daha fazla çekirdeğe sahip bir CPU tasarımı daha ucuz ve kolaydır, çünkü:

  • Güç kullanımında önemli artış. Saat hızını artırdıkça CPU güç tüketimi hızla artar - saat hızını% 25 oranında artırmak için gereken termal alanda daha düşük bir hızda çalışan çekirdek sayısını iki katına çıkarabilirsiniz. % 50 için dört katına.

  • Sıralı işlem hızını arttırmanın başka yolları da var ve CPU üreticileri bu işlemlerden iyi bir şekilde faydalanıyor.


Kız kardeşim SE sitelerden birinde bu soruya verilen mükemmel cevaplar üzerine yoğun bir şekilde çizim yapacağım . Öyleyse git onları oyla!


Saat hızı sınırlamaları

Saat hızıyla ilgili bilinen birkaç fiziksel sınırlama vardır:

  • Iletim süresi

    Bir elektrik sinyalinin bir devreyi geçmesi için geçen süre ışık hızı ile sınırlıdır. Bu zor bir sınırdır ve çevresinde bilinen bir yol yoktur 1 . Gigahertz-clocks'da bu sınıra yaklaşıyoruz.

    Ancak henüz orada değiliz. 1 GHz, saat tik başına bir nanosaniye anlamına gelir. O zaman, ışık 30 cm yol alabilir. 10 GHz’de, ışık 3 cm hızla gidebilir. Tek bir CPU çekirdeği yaklaşık 5 mm genişliğindedir, bu yüzden 10 GHz’in üzerinde bir yerde bu sorunlarla karşılaşacağız. 2

  • Anahtarlama gecikmesi

    Bir sinyalin bir uçtan diğerine gitmesi için geçen süreyi düşünmek yeterli değildir. İşlemci içerisindeki bir mantık geçidinin bir durumdan diğerine geçmesi için geçen süreyi de göz önünde bulundurmamız gerekir! Saat hızını arttırdıkça, bu bir sorun olabilir.

    Ne yazık ki, spesifikasyonlardan emin değilim ve herhangi bir sayı sağlayamıyorum.

    Görünüşe göre, içine daha fazla güç pompalamak anahtarlamayı hızlandırabilir, ancak bu hem güç tüketimine hem de ısı dağıtım sorunlarına yol açar. Ayrıca, daha fazla güç, zarar vermeden kullanabilme kabiliyetine sahip kablo kanallarına ihtiyaç duyduğunuz anlamına gelir.

  • Isı dağılımı / güç tüketimi

    Bu büyük olanı. Fuzzyhair2 kullanıcısının yanıtından alıntı :

    Son işlemciler CMOS teknolojisi kullanılarak üretilmektedir. Her zaman bir saat döngüsü olduğunda, güç harcanır. Bu nedenle, daha yüksek işlemci hızları daha fazla ısı dağılımı anlamına gelir.

    AnandTech forum başlığında bazı güzel ölçümler var ve hatta güç tüketimi için bir formül bile üretti: (üretilen ısı ile el ele gider):

    formül
    Idontcare'e Kredi

    Bunu aşağıdaki grafikte görselleştirebiliriz:

    grafik
    Idontcare'e Kredi

    Gördüğünüz gibi, saatin hızı belli bir noktadan geçtikçe güç tüketimi (ve üretilen ısı) oldukça hızlı bir şekilde yükseliyor. Bu, saat hızını sınırsızca artırmanın pratik olmamasını sağlar.

    Güç kullanımındaki hızlı artışın nedeni muhtemelen anahtarlama gecikmesiyle ilgilidir - saat hızıyla orantılı olarak gücü artırmak yeterli değildir; Daha yüksek saatlerde kararlılığı korumak için voltaj da arttırılmalıdır. Bu tamamen doğru olmayabilir; Bir yorumdaki düzeltmeleri belirtmekten çekinmeyin veya bu cevabı düzeltmek için çekinmeyin.


Daha fazla çekirdek mi?

Peki neden daha fazla çekirdek? Kesin olarak cevaplayamam. İnsanlara Intel ve AMD'deki soruları sormalısınız. Ancak, modern CPU'larda, bir noktada saat hızını arttırmanın pratik olmadığını görebilirsiniz.

Evet, çok çekirdekli ayrıca gereken gücü arttırır ve ısı dağılımını arttırır. Ancak iletim zamanını ve anahtarlama gecikme sorunlarını dikkatlice önler. Grafikten de görebileceğiniz gibi, modern bir CPU'daki çekirdek sayısını, aynı termal ek yük ile saat hızındaki% 25'lik bir artışla kolayca ikiye katlayabilirsiniz.

Bazı insanlar yaptı - şu anki hız aşırtma dünya rekoru 9 GHz’e utangaç. Ancak, güç tüketimini kabul edilebilir sınırlar içinde tutarken, bunu yapmak önemli bir mühendislik zorluğudur. Bir noktada tasarımcılar paralel olarak daha fazla iş yapmak için daha fazla çekirdek eklemenin çoğu durumda performansta daha etkili bir artış sağlayacağına karar verdi .

Ekonominin geldiği yer orasıdır - çok çekirdekli rotaya gitmek daha ucuz (daha az tasarım zamanı, daha az karmaşık). Ve pazarlaması kolaydır - yepyeni octa-çekirdek çipini kim sevmiyor ? (Tabii ki, yazılım bunu kullanmadığında çok çekirdekli bir sistem kullanılamaz ...)

Orada olan çok çekirdekli bir dezavantajı: ekstra çekirdek koymak için daha fazla fiziksel alan gerekir. Bununla birlikte, CPU işlem boyutları sürekli olarak çok fazla küçülür, bu nedenle önceki bir tasarımın iki kopyasını koyacak kadar alan vardır - gerçek tradeoff daha büyük, daha karmaşık, tek çekirdekler oluşturamaz. Sonra tekrar, çekirdek karmaşıklığını artırmak, tasarım açısından kötü bir şeydir - daha fazla karmaşıklık = daha fazla hata / hata ve üretim hataları. Çok fazla yer kaplamayacak kadar basit, verimli çekirdeklere sahip mutlu bir ortam bulmuş gibiyiz.

Mevcut işlem boyutlarında tek bir kalıba sığabileceğimiz çekirdek sayısı ile zaten bir limite ulaştık. Yakında bir şeyleri küçültebileceğimizin sınırını aşabiliriz. Sırada ne var? Daha fazlasına ihtiyacımız var mı? Maalesef cevap vermek zor. Burada bir çırpınan var mı?


Performansı arttırmanın diğer yolları

Yani, saat hızını artıramayız. Ve daha fazla çekirdeğin ek bir dezavantajı vardır - yani, yalnızca üzerinde çalışan yazılımın bunları kullanabilmesi durumunda yardımcı olurlar.

Peki başka ne yapabiliriz? Modern CPU'lar aynı saat hızında daha eskilerinden daha hızlı nasıl?

Saat hızı gerçekten bir CPU'nun dahili çalışmalarına çok kaba bir yaklaşımdır. Bir CPU'nun tüm bileşenleri bu hızda çalışmaz - bazıları her iki onaylama işleminde bir kez çalışabilir.

Daha önemlisi, zaman birimi başına uygulayabileceğiniz talimatların sayısıdır . Bu, tek bir CPU çekirdeğinin ne kadarını başarabileceğinin çok daha iyi bir ölçüsüdür. Bazı talimatlar; bazıları bir saat döngüsü alır, bazıları üç alır. Örneğin, bölünme, eklemekten çok daha yavaştır.

Böylece, saniyede gerçekleştirebileceği komut sayısını artırarak bir işlemcinin daha iyi performans göstermesini sağlayabiliriz. Nasıl? Bir talimatı daha verimli hale getirebilirsin - belki de bölünme artık sadece iki döngü alıyor. Sonra talimat boru hattı var . Her talimatı birden fazla aşamaya bölerek, komutları "paralel olarak" yürütmek mümkündür - ancak her talimatın, daha önce ve sonra verilen talimatlara göre iyi tanımlanmış, sıralı bir düzeni vardır, bu nedenle çok çekirdekli gibi bir yazılım desteği gerektirmez yapar.

Başka bir yol daha var : daha özel talimatlar. Tek seferde büyük miktarda veriyi işlemek için talimatlar veren SSE gibi şeyler gördük. Benzer amaçlarla sürekli olarak tanıtılan yeni talimat setleri vardır. Bunlar, yine, yazılım desteği gerektirir ve donanımın karmaşıklığını arttırır, ancak iyi bir performans artışı sağlarlar. Son zamanlarda, donanım hızlandırmalı AES şifreleme ve şifre çözme sağlayan AES-NI yazılımda uygulanan bir aritmetikten çok daha hızlı oldu.


1 Zaten teorik kuantum fiziğine derinlemesine girmeden olmaz.

2 Elektrik alanı yayılımı bir vakumdaki ışık hızı kadar hızlı olmadığı için aslında daha düşük olabilir. Ayrıca, bu sadece düz çizgi mesafesi içindir - düz bir çizgiden çok daha uzun olan en az bir yol olması muhtemeldir.


22
Ayrıca, birçok uygulamada darboğazı hesaplama zamanı değil, RAM'den veri almak için durma zamanıdır (ya da tanrıyı yasaklayan, diskten); bu nedenle, başka bir büyük hızlanma daha büyük, daha hızlı işlemci önbelleklerinden gelir.
Matteo Italia

2
@MatteoItalia Yup. Ayrıca, şube tahmini iyileştirmeleri de var ve muhtemelen bilmediğim kadarıyla. İşlemcinin dışında, aynı zamanda daha hızlı otobüsler, daha hızlı bellek, daha hızlı diskler ve ilgili protokoller vb.
Bob

2
Işık hızının “zorlu sınırı” ile ilgili sorunların “20 GHz'den sonra bir yerde” oluşacağından bahsettiniz. Hesaplamaların doğru değil; elektrik sinyalleri, telin geometrisine bağlı olarak, ışık hızından daha düşük hızlarda hareket eder.
Giulio Muscarello

5
Lütfen bu ilişki için tamamen daha doğru kelimeler (ikinci dereceden, kübik, vb.) Tamamen "üstel" kullanmayın ...
Oliver Charlesworth

7
@OliCharlesworth Lütfen dipnotu okuyun. Bu tam olarak dipnotun orada olmasının nedeni ve neden her yerde exponentialkullanıldığına dair referanslarım var . Bu, kelimenin tam anlamıyla geçerli bir kullanımıdır ve matematiksel detaylarda boğulmak için bu cevabın noktasına teğet olur. Gerçekten "düzeltmeyi" denemek istiyorsanız, bir düzenleme önermekten çekinmeyin. Anlamını önemli ölçüde değiştirmediğiniz sürece, kabul edilip edilmemesi bana bağlı değildir.
Bob,

14

Fizik fiziktir. Sonsuza dek daha fazla transistörün daha küçük alanlara yerleştirilmesine devam edemeyiz. Bir noktada o kadar küçülüyor ki, garip kuantum saçmalığıyla ilgileniyorsun. Bir noktada , bir yılda alıştığımızdan iki kat fazla transistör toplayamayız (bu, moore yasası ile ilgilidir).

Ham saat hızı hiçbir şey ifade etmiyor. Eski Pentium M, çağdaş bir masaüstü işlemcinin saat hızının yarısı kadardı (ve yine de birçok açıdan daha hızlı ) - ve modern sistemler 10 yıl önce sistemlerin hızlarına zorlukla yaklaşıyor (ve açıkça daha hızlı). Temel olarak 'sadece' saat hızını arttırmak çoğu durumda gerçek performans kazancı sağlamaz. Bazı tek parça işlemlerde yardımcı olabilir , ancak tasarım bütçesini her şey için daha iyi verimlilik için harcama konusunda daha iyi olursunuz.

Birden fazla çekirdek aynı anda iki veya daha fazla şey yapmanıza izin verir , bu nedenle bir sonrakini bitirmek için bir şeyin bitmesini beklemeniz gerekmez. Kısa vadede, mevcut iki çekirdeği aynı pakete kolayca yerleştirebilirsiniz (örneğin Pentium D' ler ve geçiş tasarımı olan MCM'leri) ve iki kat daha hızlı bir sisteme sahipsiniz. Çoğu modern uygulama, elbette bir bellek denetleyicisi gibi şeyleri paylaşır.

Ayrıca farklı şekillerde daha akıllı yapabilirsiniz. ARM Big-Little yapar - 4 daha güçlü çekirdekle birlikte çalışan 4 'zayıf' düşük güçlü çekirdeğe sahip olmak, böylece her iki dünyanın da en iyisini elde edebilirsiniz. Intel, kısma (daha iyi güç verimliliği için) veya hız aşırtma özel çekirdekleri (daha iyi tek iplik performansı için) sağlar. AMD'nin modülleri olan bir şey yaptığını hatırlıyorum.

Bellek denetleyicileri (düşük gecikme süreniz var) ve IO ile ilgili işlevler (modern CPU'nun kuzey köprüsü yoktur) ve video (dizüstü bilgisayarlar ve AIW tasarımında daha önemlidir) gibi şeyleri de taşıyabilirsiniz. Bunları yapmak, 'sadece' saat hızını arttırmaya devam etmekten daha mantıklı geliyor.

Bir noktada 'daha fazla' çekirdek çalışmayabilir - GPU'larda yüzlerce çekirdek var.

Bu gibi çoklu çekirdekler, bilgisayarların tüm bu yollarla daha akıllı çalışmasını sağlar .


1
GPU çekirdeklerinin, daha genel amaçlı bir şey olan CPU çekirdeğinin aksine, çok özel bir amaç için tasarlandığı unutulmamalıdır. Ayrıca, video kartı kartlarının CPU'lardan önemli ölçüde daha büyük olduğuna da dikkat edilmelidir (yani, çekirdekler karttaki tüm odayı kullanmasalar bile, hala ısıyı dağıtmak için daha fazla alana sahiplerdir).
user2366842

3
true, ancak bu, çekirdeği aşırı miktarda büyüteceğiniz bir örnek. Muhtemelen sabahları bu cevabı tekrar ziyaret edeceğim
Journeyman Geek

msgstr "Var olan iki çekirdeği aynı pakette açabilirsiniz". Ama fazladan çekirdekler için daha fazla alan kullanmadan bunu nasıl başardılar ? Sihirli? Tekboynuzlar? Yavrular? (Senin avatarınla, ikincisinden şüpheleniyorum)
Bu Brezilyalı Adam


6
wierd quantum crapBunun için yalnız + 1!
Dave,

9

Basit cevap

Soruya en basit cevap

Neden "daha fazla çekirdek ekle", "CPU'yu daha hızlı kılmak" ile aynı fiziksel sınırlamalarla karşılaşmıyor?

Aslında sorunuzun başka bir bölümünde bulunur:

Sonuç olarak "bu nedenle daha büyük bilgisayarlara sahip olmamız veya programlarımızı birden fazla bilgisayarda çalıştırmamız gerekecek" umuyorum.

Temelde, birden fazla çekirdek aynı cihazda birden fazla "bilgisayar" olması gibidir.

Karmaşık cevap

"Çekirdek", bilgisayarın yönergeleri gerçekten işleyen kısmıdır (ekleme, çarpma, "ve" ing, vb.). Bir çekirdek, bir kerede yalnızca tek bir komutu çalıştırabilir. Bilgisayarınızın "daha güçlü" olmasını istiyorsanız, yapabileceğiniz iki temel şey vardır:

  1. Verimi artırın (saat hızını artırın, fiziksel boyutu azaltın, vb.)
  2. Aynı bilgisayarda daha fazla çekirdek kullan

# 1 ile ilgili fiziksel sınırlamalar öncelikle, işlemden kaynaklanan ısının boşaltılması ve devrede bir elektronun hızı ihtiyacıdır. Bu transistörlerin bazılarını ayrı bir çekirdeğe böldüğünüzde, ısı sorununu büyük ölçüde azaltırsınız.

2 numara için önemli bir sınırlama var: sorununuzu birden fazla bağımsız soruna bölüp sonra cevabı birleştirebilmelisiniz. Modern bir kişisel bilgisayarda, bu aslında bir problem değil, çünkü çekirdek (ler) ile hesaplamalı zaman için yarışan pek çok bağımsız sorun var. Ancak yoğun hesaplama problemleri yaparken, birçok çekirdek ancak sorunun eşzamanlılık için uygun olması durumunda gerçekten yardımcı olur.


'çoklu çekirdekler aynı aygıtta çoklu "bilgisayarlara" sahip olmak gibidir.' Doğru, ama benim kafa karışıklığım, hepsini oraya nasıl sığdırıyorsunuz? “Daha hızlı gidemeyiz” in “şeyleri daha fazla küçültemeyiz” in bir belirtisi olduğunu düşündüm.
Nathan Long,

Birden fazla çekirdek daha fazla yer kaplar, talaşlar büyür. Yük, işlemciden yazılım mühendisine kaydırıldı ... bu devasa çok çekirdekli cpuslardan birinde daha hızlı çalışabilmek için yazılımın çalışmasını yarı yarıya kesmek ve her iki yarıyı da bağımsız olarak yapmak için yazılması gerekiyor.
James,

1
Kısa cevap, güç tüketiminin saat hızı küpüyle orantılı olmasıdır. Sinyallerin daha uzun mesafeler kat etmesiyle, tek iplik yanılmasının sürdürülmesi zorlaşır. Ayrıntılı cevap: amazon.com/…
Rob,

6

Neden "daha fazla çekirdek ekle", "CPU'yu daha hızlı kılmak" ile aynı fiziksel sınırlamalarla karşılaşmıyor?

Aynı fiziksel sınırlamalarla karşı karşıya kalıyorlar, ancak çok çekirdekli tasarıma geçmek, bazılarına çarpmadan önce bize biraz nefes alma alanı sağlıyor. Aynı zamanda, bu sınırlamaların neden olduğu diğer problemler ortaya çıkar, fakat bunların üstesinden gelinmesi daha kolaydır.

Gerçek 1: Güç tüketimi ve yayılan ısı, hesaplama gücünden daha hızlı büyür. Bir CPU’yu 1 GHz’den 2 GHZ’e itmek güç tüketimini 20 W’den 80 W’ye düşürür, aynı ısıyı harcar. (Bu sayıları yeni oluşturdum, ancak bu nasıl yürüyor)

Gerçek 2: İkinci CPU'yu satın almak ve her ikisini de 1 GHz'de çalıştırmak bilgisayar gücünüzü iki katına çıkarır. 1 GHz hızında çalışan iki CPU, bir 2 GHz CPU ile aynı miktarda veri işleyebilir, ancak her biri yalnızca 20 W enerji tüketir, bu da toplamda 40 W'tır.

Kazanç: Saat frekansı yerine CPU numarasını iki katına çıkarmak bize biraz enerji tasarrufu sağlar ve daha önce olduğu gibi "frekans bariyerine" yakın değiliz.

Sorun: Çalışmayı iki CPU arasında bölmeniz ve sonuçları daha sonra birleştirmeniz gerekiyor.

Bu sorunu kabul edilebilir bir zamanda çözebiliyorsanız ve az önce harcadığınızdan daha az enerji kullanıyorsanız, o zaman birden fazla CPU kullandığınız için kâr etmiş olursunuz.

Şimdi iki işlemciyi bir çift çekirdekli işlemcide birleştirmeniz gerekiyor ve evdesiniz. Bu yararlıdır çünkü çekirdekler CPU'nun bazı kısımlarını paylaşabilir, örneğin önbellek ( ilgili cevap ).


Fiziksel sınırlamaları 1000 farklı şekilde, kalıbın boyutu (daha küçük üretim işlemine neden olan çok çekirdekli ürünler için), mobo boyutunda (çoklu işlemci için), izler boyunca çizilen amperlerde (her ikisi de) vurmaya devam ediyoruz. Bir m-atx veya 4 üzerine 2 cpus ve bir atx panosuna bellek koymak gibi bir şey değil ve bu tasarımlar DECADES'in değişmesine neden oluyor. Gerisini kabul ediyorum.
Rostol,

@Rostol Bu iyi bir nokta, cevabı değiştirdim.
gronostaj

5

Uzun lafın kısası: Tek bir çekirdeğin hızlanması sınırlarına ulaştı, bu yüzden sınırlarını alana kadar ya da daha iyi malzemelere geçebileceğimiz (ya da yerleşik teknolojiyi deviren temel bir atılım elde edebileceğimiz) ev boyutunda, aslında çalışıyor, kuantum hesaplama).

Bence bu problem çok boyutlu ve daha eksiksiz bir tabloyu boyamak için biraz yazı alacak:

  1. Fiziksel sınırlamalar (gerçek fizik tarafından dayatılan): Işık hızı gibi, kuantum mekaniği, hepsi.
  2. Üretim sorunları: Daha küçük yapıları gereken hassasiyetle nasıl üretiyoruz? Hammadde ile ilgili problemler, devreleri kurmak için kullanılan malzemeler, dayanıklılık.
  3. Mimari problemler: Isı, çıkarım, enerji tüketimi vb.
  4. Ekonomik problemler: Kullanıcıya daha fazla performans almanın en ucuz yolu nedir?
  5. Kullanım alanları ve kullanıcı performans algısı.

Çok daha fazlası olabilir. Çok amaçlı bir işlemci, tüm bu faktörleri (ve daha fazlasını) pazardaki deneklerin% 93'üne uyan tek, seri üretilebilir bir çipte karıştırmak için bir çözüm bulmaya çalışıyor. Gördüğünüz gibi, son nokta, en önemli nokta, müşterinin CPU'yu kullanma biçiminden doğrudan elde edilen müşteri algısı.

Kendinize sorun, normal uygulamanız nedir? Belki: 25 Firefox sekmesi, her biri arka planda bazı reklamlar oynatılıyor, müzik dinlerken, hepsi inşaat işinizi beklerken 2 saat önce bitirmeye başladınız. Bu yapılacak çok iş ve hala sorunsuz bir deneyim istiyorsun. Ancak CPU'nuz o zaman BİR görevi yerine getirebilir! Tek şeyde. Yani, yaptığınız şey, şeyleri bölmek ve uzunca bir kuyruk yapmak ve her biri kendi payını almak ve hepsi mutlu. Senin dışında çünkü her şey tembelleşiyor ve hiç pürüzsüz olmuyor.

Böylece, aynı sürede daha fazla işlem yapmak için CPU'nuzu hızlandırırsınız. Ama dediğin gibi: ısı ve güç tüketimi. Ve hammadde kısmına geldiğimiz yer burası. Silikon ısınırken daha iletken hale gelir, yani siz onu ısıtırken malzemeden daha fazla akım akar. Transistörler, siz onları daha hızlı değiştirirken daha yüksek bir güç tüketimine sahiptir. Ayrıca, yüksek frekanslar, kısa teller arasında karışma riskini daha da kötüleştirir. Görüyorsunuz, hız yaklaşımı yaklaşımı “erimeye” yol açacak. Silikon veya daha iyi transistörlerden daha iyi hammaddelere sahip olmadığımız sürece, tek çekirdekli hız ile bulunduğumuz yere sıkışıp kaldık.

Bu bizi başladığımız yere geri götürür. Paralel olarak işlerin yapılması. Başka bir çekirdek ekleyelim. Şimdi aslında aynı anda iki şey yapabiliriz. Öyleyse işleri biraz sakinleştirelim ve çalışmasını iki, daha az güçlü ancak daha işlevsel çekirdeklere ayırabilen bir yazılım yazalım. Bu yaklaşımın iki temel sorunu vardır (bunun yanında yazılım dünyasının buna uyum sağlaması için zamana ihtiyacı vardır): 1. Çipi daha büyük hale getirin veya bireysel çekirdeği daha küçük hale getirin. 2. Bazı görevler aynı anda çalışan iki parçaya bölünemez. Küçültebildiğiniz sürece çekirdek eklemeye devam edin, ya da çipi daha büyük yapın ve ısı sorununu uzak tutun. Ah ve müşteriyi unutmayalım. Eğer kullanımlarımızı değiştirirsek, endüstrilerin uyum sağlaması gerekir. Mobil sektörünün geldiği tüm parlak "yeni" şeyleri görün.

Evet, bu strateji sınırlamalarına ulaşacak! Ve Intel bunu biliyor, bu yüzden geleceğin başka bir yerde yattığını söylüyorlar. Ancak ucuz, etkili ve yapılabilir olduğu sürece yapmaya devam edecekler.

Son fakat en az değil: fizik. Kuantum mekaniği talaş küçülmesini sınırlayacaktır. Işık hızı henüz bir sınır değildir, çünkü elektronlar silikondaki ışık hızında gidemezler, aslında ondan çok daha yavaştır. Ayrıca, sert kapağı bir malzemenin sunduğu hıza yerleştiren itme hızıdır. Ses, suda havadan daha hızlı yol alırken, elektrik darbeleri, örneğin grafen, silikondan daha hızlı hareket eder. Bu hammadde geri yol açar. Grafen, elektriksel özellikleri olduğu kadar iyidir. İşlemciler oluşturmak için çok daha iyi bir malzeme olurdu, ne yazık ki çok fazla miktarda üretilmesi çok zor.


2

Diyelim ki (gerçekçi olmayan bir örnek olarak, ancak yine de noktayı anlamalısınız) 100F'de çalışan bir işlemciniz var. Çok çekirdekli genellikle nasıl çalıştığı 100F'de çalışan CPU'nun saat frekansını alarak ve düşürerek, böylece hızı düşürür. Artık sıcak olarak çalışmadığından, işlemcinin genel sıcaklığını önemli ölçüde etkilemeden ve çok çekirdekten faydalar elde etmeden hemen yanına bir saniye, 3. veya hatta hemen dördüncü bir adım atabilirler. Bu açık bir şekilde bazı ek yüklerle birlikte gelir, çünkü çekirdeklerin bir yerden bir çekirdekten kontrol edilmesi gerekir. Ne kadar çok çekirdek eklerseniz, o kadar fazla ek yük olur. Tek çekirdekli gelince, onlar üzerinde hız arttıkça, daha fazla ısı üretir. Bu açıkça fiziksel sınırlamalara sahiptir (yani belirli bir noktadan sonra performansa zarar vermeye başlar)

Zaman geçtikçe, CPU'ların fiziksel boyutunu azaltmanın yollarını buldular, bu yüzden henüz daha fazla alana ihtiyaç duyma gereğini henüz bulamadık, ancak örneğin 16 çekirdekli CPU gerçekten yok Sunucu sınıfı donanım dışında fiziksel boyut sınırlamaları nedeniyle, sunucu sınıfı CPU'lar fiziksel olarak standart tüketici sınıfından önemli ölçüde daha büyük olduğu için yazma süresi.


2

CPU = Otomobil motoru: 16 valfli, yani bir lamborghini ile daha güçlü bir otomobil yapmak, 100 dev / dak'da dev bir valfe / silindire sahip olan yüksek devirli bir arabaya göre daha kolaydır.

Nedenler fiziksel ve kimyasaldır, çekirdek sayısı ile çekirdek hızı arasındaki dengeyi değiştirmek için silikonun hesaplamalı roket yakıtı ile değiştirilmesi gerekir.


2

Hesaplamalı güç limitleri üzerindeki birincil kısıtlamanın temel olarak elektronu bir devre boyunca ne kadar hızlı hareket ettirebileceğimiz ( ışık elektronunun sürüklenme hızı ) sınırı ile ilgili olduğunu söyleyebilirim . Bahsettiğiniz gibi daha birçok faktör var.

Ek çekirdek eklemek, aynı zamanda daha fazla işlemesine izin vermesine rağmen işlemciyi daha hızlı yapmaz.

Moore Yasası çok ilginç ve bilgilendirici bir okumadır. Özellikle bu teklif burada geçerlidir:

Bir de oldukça pratik bir "nihai dizüstü bilgisayar" teorik performansını bir kilogram kütle ve bir litre hacimle sınırlandırabilir. Bu 5,4258 ⋅ 10 bir performans veren, ışık hızı, kuantum ölçekte, yerçekimi sabiti ve Boltzmann sabiti göz önüne alınarak yapılır 50 saniye yaklaşık 10 ortalama mantıksal işlemleri 31 bit.


2
Bu arada, elektronlar aslında IIRC başına milimetre sırasına göre, çok yavaş hareket eder ("sürüklenme hızı"). Daha çok elektrik alanın yayıldığı hızdan bahsediyorsunuz .
Bob

2
En küçük açıdan fiziği anlıyormuşum gibi davranmaya cesaret edemem gerektiğini biliyordum. :) Bu konuda beni düzelttiğiniz / bilgilendirdiğiniz için teşekkür ederiz.
jredd,

Ayrıca, yayılma hızının önemli bir etkiye sahip olacağı gerçek saat hızları, 10+ GHz civarındadır. Modern işlemcilerin daha yüksek saatlerde daha fazla çekirdek kullanması için başka nedenler de var.
Bob

1

Uzun hikaye daha kısa:

Gerçekten daha hızlı CPU'lara ihtiyacımız yok. Birkaç özel kullanımın dışında * CPU yıllardır bir darboğaz olmadı - bellek, depolama ve ağ gibi tüm çevre birimleri CPU'yu genellikle başka şeyler yapabileceği milyonlarca saat döngüsünü bekletti. İkinci bir çekirdek daha "başka şeyler" yapabilir, böylece kullanıcıya daha yüksek performans algısı verir.

Birçok mobil cihaz, dizüstü bilgisayar vb. Daha iyi pil ömrü ve daha düşük sıcaklıklar için CPU'yu alt eder. Ana müşteriniz 1.3GHz'de çalışıyorsa, 3.5GHz'lik bir ARM çekirdeği geliştirmek için pek de teşvik edici değildir.

  • Bu özel kullanımlar 5 GHz'lik bir çekirdeğin gelişimini haklı çıkarmak için yeterli satın almıyor. Ayrıca ısıya veya güce aldırmazlar - mümkün olan en hızlı şekilde satın alın, overclock edin ve tost makinesinin büyüklüğündeki bir su soğutmalı soğutucuyu cıvatalayın.

1
Bu "algı" değil, "daha iyi gecikme". Bunun ana sorunlarımızdan biri olduğunu düşünüyorum; Her ne pahasına olursa olsun güçlü bir tek dişli verim. Tüketici işletim sistemleri henüz gerçek zamanlı değil, temelde eşzamanlılık veya paralellik yönelimli değildir.
Rob,

@peter Çok iyi bir noktaya değindiniz ve bunu açıkladığınız için teşekkürler. Programcı olarak hatırlamam gereken bir şey bu. :) Yine de, bu sorunun amaçları için hala bir yan sorun. Benim sorum biz neden oldu olamaz daha yüksek saat hızlarına olsun; Cevabınız şu anda neden ihtiyaç duymadığımızla ilgili.
Nathan Long,

1
@ NathanLong "yapamaz" ve "gerek yok" bağlantılıdır. İşlemcileri daha hızlı alamazsınız çünkü hiç kimse onu geliştirmek için gereken milyar veya beş yatırım yapmayı istemiyor (5GHz muhtemelen fiziksel sınırları zorluyor). Hiç kimse yatırım yapmaya istekli değil çünkü genel işlemci hızları düşerken gerçekçi bir pazar yok - bazı mevcut üretim masaüstü bilgisayarları 1,5 GHz sınıfında (10 yıl önce satırın en üstünde) çünkü o pazar için daha ucuz, daha soğuk ve yeterince hızlı segmenti.
Peter,

1

Kısa ve basit cevap:

Neden 1 kamyon çeken maldan 100 kat daha fazla olan 100 kamyona giderken, 100 kamyonda 1 kamyonla 10,000mph'de 1 kamyonla sürüşle aynı fiziksel kısıtlamalarla karşılaşmıyorsunuz?

Bu soruyu cevaplayın, sorunuz da cevaplanacaktır. Kavramı kabaca aynıdır.


1

Bence başka bir faktör sıcaklık. Saat frekansını arttırırsanız, çekirdek sıcaklığı artar. Daha fazla çekirdek eklerseniz, güç tüketimi artarken bile, bu çekirdekler üzerine dağıtılır, böylece sıcaklık aynı kalır (örneğin, aynı sıcaklıkta iki sıcak sıvı eklerseniz, sıcaklık aynı kalır) ).

Başka bir neden, artan saat frekansının, frekansı artırdığınız faktörün bir karesiyle artırma eğiliminde olmasıdır (belirli bir noktada hangi engellere çarptığınıza bağlı olarak). Bu nedenle, saat frekansının arttırılması güç tüketimini bir kare arttırır, oysa daha fazla çekirdek eklemek sadece doğrusal olarak arttırır.


0

Neden "daha fazla çekirdek eklemeyin" cevabı, "CPU'yu daha hızlı yapın" sorusuyla aynı fiziksel sınırlamalarla karşı karşıyadır. Tek çekirdekli bir sistemi daha hızlı hale getirme seçeneğinin olmadığı bir noktaya ulaştık, bu yüzden bir kerede daha fazla şey yapabilmemiz için yaptık. Boyut ve eşgüdüm zorluklarının çözülmesi şu an için hızlı ilerlemekten daha kolaydır. Dezavantajı ise, bir görev parçalara bölünemezse, tek bir çekirdek sistemden daha hızlı ilerlemeyebiliriz.


0

Daha fazla kapıya tıkışarak işlemciyi daha hızlı yapamazsınız. Sonuçta, talimatlar yerine getirilmeli ve her komut birkaç "anahtarlama" işlemi gerektirir. Bir işlemcinin "saat hızını" mevcut üst uç sistemlerin hızının ötesinde artırmayı çok zorlaştıran temel fiziksel sınırlar (kuantum mekaniği - Belirsizlik İlkesi) vardır.

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.