Neden daha fazla transistör = daha fazla işlem gücü?


43

Wikipedia'ya göre, işlem gücü Moore yasası ile güçlü bir şekilde bağlantılı:

http://en.wikipedia.org/wiki/Moore's_law

Entegre bir devre üzerine ucuz bir şekilde yerleştirilebilen transistörlerin sayısı yaklaşık iki yılda bir ikiye katlandı. Trendin yarım yüzyıldan uzun bir süredir devam ettiği ve 2015 ya da sonrasına kadar durması beklenmiyor. Pek çok dijital elektronik cihazın yetenekleri Moore yasalarına güçlü bir şekilde bağlı: işlem hızı, bellek kapasitesi, sensörler ve hatta dijital fotoğraf makinelerinde piksel sayısı ve boyutu. Bunların hepsi de (kabaca) üssel oranlarda gelişiyor.

Bilgisayar mimarisinde bazı geçmişleri olan biri olarak, neden bir CPU'ya daha fazla transistör yerleştirmenin nihayetinde gücünü artıracağını anlamıyorum, nihayetinde talimatlar kabaca sırayla okunur / yürütülür. Bir kısmı eksik olduğumu açıklayabilir mi?


10
Daha fazla transistör = daha fazla paralellik
Toby Jaffey

2
İşlemcinin kaç çekirdeği olursa olsun doğrudur.
Thomas O

1
Evet. Daha fazla transistör, daha fazla paralel yürütme birimi yerleştirebileceğiniz anlamına gelir. Daha büyük önbellek. Daha derin boru hatları.
Kaz

1
Önbellek büyük olanıdır. Önbelleğe adanmış silikon emlak oranının arttığını düşünüyorum. Modern işlemcilerin performansının çoğu önbelleklemeye atfedilebilir ve önbellekleme yalnızca yerel konum olduğunda çalışır, ancak önbellek ne kadar büyükse, o kadar rahat bir yer gerekir (daha fazla bellek erişim düzenine sahip daha büyük uygulamalar hala hızlanır).
Kaz

2
Sadece bir çarpan düşünün. Yeterli transistörle, tam bir arama tablosu kullanabilir ve tüm çarpmayı tek adımda yapabilirsiniz. Daha az transistörle, tekrarlanan toplama gibi şeyler yapmanız gerekir.
David Schwartz

Yanıtlar:


29

Size daha fazla güç veren birçok şey, onları inşa etmek için daha fazla transistör gerektirir. Daha geniş otobüsler, transistörün neredeyse tüm işlemci bileşenlerinde sayılmasını sağlar. Yüksek hızlı önbellekler, önbellek boyutuna göre transistör ekler. Bir boru hattını uzatırsanız aşamalar ve daha karmaşık kontrol üniteleri eklemeniz gerekir. Boru hattındaki bir tıkanıklığın azaltılmasına yardımcı olmak için yürütme birimleri eklerseniz, bunların her biri daha fazla transistör gerektirir ve daha sonra yürütme birimlerinin ayrı tutulması için kontroller daha fazla transistör ekler.

Mesele, elektronik bir devrede her şey paralel olarak gerçekleşiyor. Yazılım dünyasında, varsayılan şeylerin sıralı olması ve yazılım tasarımcılarının donanımın paralel doğasından faydalanabilmesi için yazılıma paralelliği sağlamak için büyük acılar çekmesidir. Paralellik sadece aynı anda gerçekleşen daha fazla şey anlamına gelir, bu yüzden kabaca hıza eşittir; Paralel olarak ne kadar çok şey yapılabiliyorsa, o kadar hızlı bir şekilde o işi yapabilirsiniz. Sadece gerçek paralellik iş üzerinde daha fazla transistöre sahip olduğunda ne elde ediyoruz.


19

İlk talimatlar mutlaka VLIW olmayan bir ISA'da bile "sırayla yürütülmez" değildir, yürütmenin yalnızca sıralı görünmesi gerekir. Sıralı bir süperskalar uygulama, diğerine paralel olarak birden fazla talimat yürütebilir. Bunu etkin bir şekilde yapmak için kod çözme talimatlarının donanımı arttırılmalı (genişletilmeli), paralel olarak yürütülecek talimatların veri bağımsızlığını sağlamak için donanım eklenmeli, yürütme kaynakları arttırılmalı ve kayıt dosya portlarının sayısı genellikle arttırılmalıdır. Bunların hepsi transistör ekler.

Veri bağımlılığı olmadığı sürece, daha önceki talimatların daha öncekilerden önce yürütülmesine izin veren sıra dışı bir uygulama, veriler kullanılabilir olduğu anda talimatların planlanmasını işlemek için ek donanım kullanır ve veriler eşleştirilirken yeniden adlandırma ve donanım ekler, okuma ve yazma sonrası tehlikelerinden kaçınmak için (daha fazla transistör) tahsis edilmesi ve serbest bırakılması. Sıra dışı çalıştırma, işlemcinin durmasını önlemeye izin verir.

Yüklerin ve depoların sıra dışı bir işlemcide yeniden sıralanması, program sıralamasında daha önce depolananların aynı adresin daha sonraki yüklerine sonuçları iletmesini sağlar. Bu, adres karşılaştırma mantığının yanı sıra, mağaza belleğine (önbellek) karar verene kadar mağaza adreslerinin (ve verilerin depolandığı alan) (ve verilerin depolanması) depolanması anlamına gelir. (Daha az zayıf bellek tutarlılık modeline sahip bir ISA için, diğer işlemcilerden depolara göre daha fazla transistör için yüklerin uygun şekilde sipariş edildiğini kontrol etmek de gereklidir.)

Boru hattı ek kontrol ve tamponlama ek yükü ekler ve farklı işlem talimatlarının farklı bölümleri için mantığın yeniden kullanılmasını önler, ancak farklı işlemlerde farklı talimatların zaman içinde üst üste gelmesini sağlar.

Boru hattı ve süperskalar uygulama, kontrol tehlikelerinin (yani şartlı dallar ve sıçramalar) etkisini artırır. Boru hattı (ve ayrıca sıra dışı çalıştırma) koşulsuz atlayışların bile hedefinin kullanılabilirliğini geciktirebilir, bu nedenle hedefleri tahmin etmek için donanım eklemek (ve koşullu dallar için yön) komutların çalıştırma bölümünü beklemeden talimatların alınmasına izin verir Gerekli verileri elde etmek için işlemci. Daha doğru tahmin ediciler daha fazla transistör gerektirme eğilimindedir.

Sıra dışı bir işlemcide, önceki tüm mağazaların adresleri hesaplanmadan önce bellekten bir yükün çalıştırılmasına izin verilmesi istenebilir, bu nedenle potansiyel olarak bir tahminci içeren bu tür spekülasyonları idare etmek için bazı donanımlar gereklidir.

Önbellekler gecikmeyi azaltabilir ve bellek erişimlerinin bant genişliğini artırabilir, ancak verileri depolamak ve etiketleri depolamak için transistörler ekleyebilir (ve etiketleri istenen adresle karşılaştırın). Değişim politikasını uygulamak için ek donanım da gereklidir. Donanım ön kurulumu daha fazla transistör katacaktır.

İşlevselliği yazılım yerine donanımda uygulamak, performansı artırabilir (daha fazla transistör gerektirir). Örneğin, TLB yönetimi, çarpma veya kayan nokta işlemleri gibi karmaşık işlemler, sayılan liderler gibi özel işlemler. (Talimat ekleme, talimat kod çözme karmaşıklığını ve tipik olarak uygulama karmaşıklığını da arttırır - örneğin uygulama donanımının hangi parçalarının kullanılacağını kontrol etmek için.)

SIMD / vektör işlemleri talimat başına yapılan iş miktarını arttırır, ancak daha fazla veri depolama gerektirir (daha geniş kayıtlar) ve genellikle daha fazla yürütme kaynağı kullanır.

(Spekülatif çoklu okuma da birden fazla işlemcinin tek bir iş parçacıklı programı daha hızlı yürütmesine izin verebilir. Açıkçası bir yongaya işlemci eklemek, transistör sayısını artıracaktır.)

Daha fazla transistör bulunması, bilgisayar mimarlarının yazılıma göre daha fazla kayıt yapan bir ISA sunmasına izin verebilir, potansiyel olarak kayıt erişiminden daha yavaş olma eğiliminde olan ve bir miktar dolaylı yönlendirme içeren bellek erişim sıklığını azaltabilir (örneğin, yığına bir ofset ekleme) pointer) gecikmeyi arttırır.

Bir çip üzerindeki transistör sayısını artıran, ancak sistemdeki olmayan Entegrasyon, iletişim gecikmesini azaltır ve bant genişliğini arttırır ve açıkça performansta bir artışa izin verir. (Daha fazla performansa çevrilebilecek güç tüketiminde de azalma vardır.)

Öğretim uygulaması düzeyinde bile, transistörlerin eklenmesi performansı artırabilir. Örneğin, bir taşıma seçimi toplayıcı, alt bitlerden farklı varsayımlara paralel olarak iki kez üst bitler ekler, alt bitlerden yapılan işlem mümkün olduğunda üst bitlerin doğru toplamını seçerek, basit bir şekilde daha fazla transistör gerektirir dalgalanma taşıma toplayıcı ancak tam toplamı üreten gecikme azaltır. Benzer şekilde, tek bir taşıma-kaydetme ekleyicileri dizisine sahip bir çarpan, bir Dadda (veya Wallace) ağaç çarpanından daha az sayıda transistör kullanır (ancak daha yavaştır) ve daha önceden bir çarpma işlemine başlayabilmesi için çoğaltılması gerekir; çarpma işlemi devam ediyordu).

Yukarıdakiler çok yorucu olabilir ama çok yorucu değil!


2
Yeni bir adamdan mükemmel cevap!
Connor Wolf

12

Transistörlerin sayısı mutlaka daha fazla işlem gücüyle ilişkili değildir, ancak daha fazla transistör ile işlemci öncekinden daha fazla karmaşık talimatlar gerçekleştirebilir. Örneğin, SSE'li bir işlemci bu karmaşık talimatları uygulamak için ek transistörler kullanacaktır (örneğin bir çevrimde birçok sayı ekleyerek).


2
Alan Kay, Xerox PARC'da Smalltalk üzerinde çalıştığı için, yanlış mimariler ve yazılım verimsizliği nedeniyle 18 yıllık transistörün iki katını kaybettiğimizi, çünkü bilgisayarların kesinlikle transistörün iki katının önerdiği kadar hızlı olmadıklarını hesapladı.
KPK

5

Başka bir faktör: daha fazla transistörü küçülttükçe daha küçük hale gelir ve daha hızlı hale getirir.


Transistörler birbirine yaklaştıkça yaklaştıkça, artan kaçak akım gibi diğer istenmeyen etkiler elde edersiniz, bu nedenle performans ile düşük güç arasında bir denge kurulur - çoğu üretici performans için gitti.
Thomas O

4

Mikroişlemciler son yıllarda önemli ölçüde ilerlemişlerdir, daha uzun boru hatları, tahmine dayalı dallanma ve çip önbellekindeki şeylerin hepsi bir işlemciyle ilişkili karmaşıklıklara eklenmiştir.

İşlemcinin temelleri olduğundan emin olun, getir, kod çöz, ALU, yazmaya devam hala aynı, ancak işleri hızlandırmak için daha uzun boru hatları kullanılıyor. Uzun boru hatları, sürekli kod yürütme için performansı artırır, ancak kod dalları performansa zarar verdiğinde daha büyük isabet süreleri de sağlar. Çözüm, prediktif dallanma. Tahmine dayalı dallanma, intel'in normal olarak tüm çalışmalarını açıklamadığı, sadece işlemcileri CPU'larında mümkün olduğu kadar yüksek tutmak için kullandığı bir ticari sırdır.

Önbellek RAM'den çok daha hızlıdır, ancak ne RAM'den önbelleğe ve önbellekten RAM'e geri taşımak için ??? Bu yine özel mülktür, ancak tekrar uygulanması için transistör gerekir.

Bu yüzden ekstra transistörler daha uzun boru hattı, tahmine dayalı dallanma algoritmaları, önbellek ve hafıza algoritmaları gibi şeylere girerler.

Bu, çok çekirdekli işlemcilerden ve paylaşılan bellek / kaynak erişim denetleyicilerinden bahsetmeden.

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.