CPU'da Sıralı ve Arızalı Yürütme Arasındaki Fark

CPU'da Sıralı ve Arızalı Yürütme Arasındaki Fark

Sıra dışı yürütmeye sahip ilk işlemci, aynı adı taşıyan RISC işlemcileri ve PowerPC'ler için temel oluşturacak olan IBM POWER 1 idi. Intel x86 için bu teknolojiyi Pentium Pro'da kullandı. O zamandan beri tüm PC CPU'ları, mümkün olan maksimum performansı elde etmek için temellerden biri olarak sıra dışı teknolojiyi kullanıyor.

İşlemcilerin tasarımındaki ana endişe, çoğu zaman en fazla gücü elde etmek değil, talimatları uygularken en iyi performansı elde etmektir. Performansı, bir işlemcinin çalışmasının teorik idealine yaklaşma gerçeği olarak anlıyoruz. En güçlü olana sahip olmak işe yaramaz işlemci eğer, sınırlamalar nedeniyle, sahip olduğu tek şey olma potansiyeli olup olmadığıdır.

Paralellikle başa çıkmanın iki yolu

TLP ILP sınırlı IPC

Bir programın kodunda paralelliği ele almanın iki yolu vardır, bunlar iş parçacığı düzeyinde paralellik veya ILP ve öğretimsel paralellik veya TLP'dir.

TLP'de kod, diğerlerinden bağımsız olan ve eşzamansız olarak çalışan birkaç alt programa bölünmüştür, bu, her birinin geri kalanının koduna bağlı olmadığı anlamına gelir. Bir TLP işlemcisindeyken, anahtar, herhangi bir nedenle bir yürütme durması meydana gelirse, TLP işlemcisinin yürütme iş parçacıklarından bir başkasını alır ve boşta olanı beklemeye alır.

ILP işlemcileri farklıdır, paralellikleri komut düzeyindedir ve bu nedenle aynı yürütme zincirindedir, bu nedenle ana iş parçacığını beklemeye alarak hile yapamazlar. Günümüzde CPU'lar iki tür yürütmeyi birleştirir, ancak ILP hala CPU'lara özeldir ve tamamen paralelleştirilebilir koda göre seri kod açısından büyük bir avantaj elde ettikleri yerdir.

ley amdahl

Amdahl Yasasına göre, bir kodun yalnızca bir işlemci tarafından yürütülebilen ve birkaç işlemci tarafından paralel olarak yürütülebilen, seri olarak parçalardan oluştuğunu unutamayız. Bununla birlikte, her şey paralelleştirilemez ve kodun seri işlem gerektiren seri bölümleri vardır.

Son 15 yılda çekirdeği TLP tipinde olan GPU'larda paralel algoritmaların çalıştırıldığı, ILP tipi CPU'larda ise seri kodun çalıştırıldığı konsept geliştirilmiştir.

Talimatların sırayla uygulanması

Ciclo Instrucción Unidad Kontrolü

Sıralı yürütme, klasik komut yürütmedir, adı, komutların kodda göründükleri sırayla yürütülmesi ve bir önceki komut çözülene kadar sonraki komutun devam edememesinden kaynaklanmaktadır.

Sıralı yürütmenin en büyük zorluğu, koşullu ve atlama komutlarıdır, çünkü bu, koşul oluştuğunda yürütülecektir ve kod yürütme hızını büyük ölçüde yavaşlatır. Bu, bir işlemcideki aşama sayısı son derece yüksek olduğunda büyük bir sorundur; bu, bir CPU yüksek saat hızlarında çalıştığında olan şeydir.

Yüksek saat hızlarına ulaşmak için tuzak, talimatların çözünürlüğünü, talimat döngüsünün çok sayıda alt aşamasıyla maksimuma ayırmaktır. Bir sıçrama veya hatalı bir durum meydana geldiğinde, önemli sayıda komut döngüsü kaybolur.

ILP'yi hızlandıran düzensizlik

GELID-Support-retención-cpu-AM4

Sıra dışı veya sıra dışı yürütme, en gelişmiş CPU'ların kodu yürütme biçimidir ve yürütme durmalarını önlediği düşünülmektedir. Adından da anlaşılacağı gibi, bir işlemcinin talimatlarını kodda belirtilenlerden farklı bir sırada yürütmekten ibarettir.

Bunun yapılmasının nedeni, her talimat türünün kendisine atanmış bir tür yürütme birimine sahip olmasıdır. Yönerge türüne bağlı olarak, CPU bir tür yürütme birimi veya başka bir tür kullanır, ancak bunlar sınırlıdır. Bu, yürütmenin durdurulmasına neden olabilir, bu nedenle yapılan şey, bir sonraki talimatı yürütmede ilerletmektir, talimatların gerçek sırası olan bir hafızayı veya dahili yazmacı işaret eder, bunlar yürütüldükten sonra geri gönderilirler. kodda bulundukları orijinal sıra.

Sıra dışı kullanım, döngü başına çözülen ortalama talimat sayısını artırmanıza ve bunu ideal performansa yaklaştırmanıza olanak tanır. Örneğin, ilk Intel Pentium sıralı yürütmeye sahipti ve 486'ya karşı yalnızca biriyle çalışabilen iki komutla çalışabilen bir CPU'ydu, ancak buna rağmen durmalara bağlı performansı yalnızca% 40 ek düzeydeydi.

Hizmet dışı için ek aşamalar

Hizmet dışı

Arıza dışı yürütmenin uygulanması, talimat döngüsüne, başlıklı makalede daha önce bahsettiğimiz ek aşamalar ekler. Bu, CPU'nuzun yazılım tarafından verilen talimatları nasıl yürüttüğüdür. HardZone'da bulabileceğiniz.

Aslında, talimatın yürütülmesinin yalnızca merkezi kısmı sırayla yürütmeye göre değişir, bu değişiklikler yürütme aşamasından önce gerçekleşir, bu nedenle getirme ve kod çözme olan ilk ikisi etkilenmez, ancak iki yeni aşama talimatların uygulanmasından önce ve sonra meydana gelen eklendi.

İlk aşama bekleme istasyonlarıdır, içinde donanım yürütme birimlerinin serbest olmasını bekler. Uygulaması karmaşıktır, çünkü sadece bir yürütme birimi serbest olduğunda izleyen değil, aynı zamanda talimatları nasıl yeniden sıralaması gerektiğini bilmek için çalıştırılan her talimatın saat döngülerindeki ortalama süresini de sayan bir mekanizmaya dayandığından, karmaşıktır.

İkinci aşama, komutların çıktı sırasına göre sıralanmasından sorumlu olan yeniden sıralama tamponudur. Sıra dışı yürütmede komutların çıkışını hızlandırmak için koddaki tüm spekülatif talimat dallarının çalıştırıldığını unutmayın. Spekülatif talimat, koşulun karşılanıp karşılanmadığına bakılmaksızın koşullu bir sıçrama olduğunda verilen talimattır. Dolayısıyla, bu aşamada, onaylanmamış icra dalları atılır.