Talimat Boru Hattı Nedir?

click fraud protection

Herhangi bir işlemci talimatının çalışması için birden fazla aşaması vardır. Bu aşamaların her birinin tamamlanması tek bir CPU döngüsüne ihtiyaç duyar. Bu aşamalar, Talimat getirme, Talimat kod çözme, Yürütme, Hafıza erişimi ve Geri Yazma aşamalarıdır. Bunlar sırasıyla tamamlanması gereken talimatı alır, işlemi çalıştırılan değerlerden ayırır. on, işlemi yürütün, sonucun yazılacağı register'ı açın ve açılan kütüğe sonucu yazın. Kayıt ol.

Tarihsel Sıralı İşlemciler

İlk bilgisayarlarda, CPU bir talimat hattı kullanmıyordu. Bu CPU'larda, her komut için her bir tek döngülü işlemin gerçekleşmesi gerekiyordu. Bu, bir sonraki komut başlatılmadan önce ortalama talimatın tamamen işlenmesinin beş saat döngüsü gerektirdiği anlamına geliyordu. Bazı işlemlerin bir kayıt defterine herhangi bir sonuç yazması gerekmeyebilir, bu da bellek erişimi ve geri yazma aşamalarının atlanabileceği anlamına gelir.

Ardışık düzen içermeyen bir alt skaler işlemcide, her talimatın her bir parçası sırayla yürütülür.

Yine de, bir sonraki talimata geçmeden önce tam bir talimatı çalıştırırken gizlenen bir sorun var. Sorun önbellek özledim. CPU, aktif olarak işlediği verileri kayıt defterinde saklar. Bu, bir döngü gecikme ile erişilebilir. Sorun, işlemci çekirdeğinde yerleşik olduğu için kaydın küçük olmasıdır. Veriler henüz yüklenmemişse, CPU daha büyük ancak daha yavaş L1 önbelleğine gitmelidir. Orada değilse, tekrar daha büyük ve daha yavaş L2 önbelleğine gitmesi gerekir. Bir sonraki adım L3 önbelleğidir; son seçenek sistem RAM'idir. Bu seçeneklerin her birinin kontrol edilmesi giderek daha fazla CPU döngüsü gerektirir.

Şimdi, bu ekstra gecikme, bir sonraki talimata başlamadan önce her talimatı tam olarak tamamlaması gereken bir sistemde büyük bir sorun olabilir. Bir komut işlemcisi başına 5 döngü olan şey, düzinelerce veya yüzlerce saat döngüsü için aniden bir komuta takılabilir. Bu arada, bilgisayarda başka hiçbir şey olamaz. Teknik olarak, iki bağımsız çekirdeğe sahip olarak bu biraz hafifletilebilir. Ancak hiçbir şey ikisini de potansiyel olarak aynı anda aynı şeyi yapmaktan alıkoyamaz. Yani çok çekirdekli rotaya gitmek bunu düzeltmez.

Klasik RISC Boru Hattı

RISC, İndirgenmiş Komut Setli Bilgisayar anlamına gelir.. Her talimatın kodunun çözülmesini kolaylaştırarak performansı optimize eden bir işlemci tasarımı stilidir. Bu, aynı görevleri gerçekleştirmek için daha az talimatın gerekli olmasına izin veren daha karmaşık komut setleri tasarlayan CISC veya Karmaşık Komut Seti Bilgisayarı ile karşılaştırılır.

Klasik RISC tasarımı, bir talimat hattı içerir. Herhangi bir döngüde beş komut aşamasından herhangi birini çalıştırmak yerine, ardışık düzen, beş aşamanın tümünün gerçekleştirilmesine izin verir. Elbette, bir komutun beş aşamasının tümünü bir döngüde çalıştıramazsınız. Ancak, her biri bir aşama ofseti olan beş ardışık talimatı sıraya koyabilirsiniz. Bu şekilde, her saat döngüsünde yeni bir talimat tamamlanabilir. Çekirdek karmaşıklığında nispeten düşük bir artış için potansiyel 5 kat performans artışı sunar.

Bir skaler ardışık düzen işlemcide, bir talimat yürütmesinin her aşaması, saat döngüsü başına bir kez gerçekleştirilebilir. Bu, döngü başına tamamlanmış bir talimatın maksimum verimine izin verir.

Bir ardışık düzene sahip olmayan işlemciler, döngü başına tam bir talimat yürütemedikleri için yalnızca alt skaler olabilir. Bu birincil beş aşamalı işlem hattıyla, her işlem için bir talimatı tamamlayabilen bir skaler CPU oluşturabilirsiniz. Daha da geniş kapsamlı işlem hatları oluşturarak, saat döngüsü başına birden fazla talimat yürütebilen süperskalar CPU'lar yapabilirsiniz. Tabii ki, hala potansiyel sorunlar var.

Hala Sıralı

Bunların hiçbiri, farklı önbellek ve RAM düzeylerini sorgulamanız gerektiğinde yanıt için birçok döngü bekleme sorununu çözmez. Aynı zamanda yeni bir sorunu da beraberinde getiriyor. Ya bir talimat önceki talimatın çıktısına dayanıyorsa? Bu sorunlar, gelişmiş bir gönderici ile bağımsız olarak çözülür. Yürütme sırasını dikkatlice planlar, böylece bir başkasının çıktısına dayanan hiçbir talimat birbirine çok yakın olmaz. Ayrıca, bir talimatı park ederek ve onu boru hattında diğerleriyle değiştirerek önbellek kayıplarını da ele alır. çalıştırılmaya hazır olan ve sonucunu gerektirmeyen komutlar, çalıştırıldığında talimata devam edilir. hazır.

Bu çözümler, ardışık düzenlenmemiş işlemciler üzerinde çalışabilir, ancak saat başına birden fazla talimat çalıştıran bir süperskalar işlemci için gereklidir. Dal tahmincisi, birden fazla potansiyel sonucu olan bir talimatın sonucunu tahmin etmeye çalışabileceği ve aksi kanıtlanmadıkça doğru olduğunu varsaymaya devam edebileceği için oldukça faydalıdır.

Çözüm

Bir işlem hattı, işlemcinin tüm farklı yeteneklerinin her döngüde kullanılmasına izin verir. Bunu, farklı talimatların farklı aşamalarını aynı anda çalıştırarak yapar. Bu, CPU tasarımına fazla karmaşıklık bile eklemez. Ayrıca, birden fazla talimatın döngü başına tek bir aşama gerçekleştirmesine izin vermenin yolunu açar.