Intel Data Streaming Accelerator: nedir ve CPU üzerinde nasıl çalışır?

arasındaki ilişkilerin geleceği işlemci ve bellek, Veri Akışı Hızlandırıcısı gibi işlemci içinde onlar için yeni tip birimler gerektiren evrensel adreslemede gerçekleşir. Ama nedir ve işlemci performansını nasıl artırır?

Intel Veri Akışı Hızlandırıcı

Son zamanlarda, en çok araştırılan gelişmelerden biri, bir mimari içindeki verilerin hareketi ile ilgilidir. İlk bakışta uzun bir süre için tamamen çözülmüş gibi görünen bir şey, ancak son yıllarda CPU'ların performansını artırmak için çok önemli bir nokta haline geldi.

Yeni donanım tasarlarken veri hareketinin mimarların takıntısı haline gelmesinin iki nedeni vardır. İlki enerji tüketimiyle, ikincisi ise bellek işlemini gerçekleştirmek için gereken süre olan gecikmeyle ilgilidir ve bu ikinci noktada gecikme ile genişlik arasındaki ilişkiyi çok net hale getirmemiz gerekir. grup.

Bant genişliği gecikmeye eşit mi?

Movimientos Verileri

Hayır, aynı değiller, gecikme, bir isteğin belleğe çözümlenmesi için gereken saat döngüleridir ve bunun her zaman gerçekleştirilmesi gereken bir dizi adımı vardır. Sorun şu ki, bellek arabirimi çok hızlı olsa da, bellek denetleyicisi öyle olmayabilir ve sonunda şu ya da bu şekilde olur. MMU CPU doygun hale gelir ve tüm bellek istekleri ertelenir.

Arayüz ne kadar hızlı olursa olsun, bellek talebi engellenirse kuyruğun geri kalanı engellenir ve hiçbir veri iletilmez. Ve bu, çok sayıda isteği doyurursak gerçekleşebilir. RAM. En kötüsü, bunun CPU'yu bir sonraki talimatın yürütülmesi için verileri elde etmek için uzun süre beklemesine bile bırakabilmesidir.

Bunun yerine bant genişliği sadece aktarım hızıdır. Örneğin, 100 GB / s'de 1 isteğiniz olabilir veya 1 GB / s'de 100 isteğiniz olabilir, ancak buna erişimleri yönetmekten sorumlu işlemci bellek denetleyicisinin ilk durumda daha büyük zorluklar yaşayacağı dikkate alınmalıdır. ikincisinden daha.

Veri taşıma birimleri

Portada-CPU-Genérica-Placa-Base

Herhangi bir ISA alın, ne olduğu önemli değil ve ona bir göz atın, içinde aritmetik-mantıksal bir işlem yapmayan veya bir atlama veya gemi yapmaktan sorumlu olmayan, ancak içinde olan talimatları göreceksiniz. belleğe taşımayı içeren veri hareketlerini gerçekleştirme sorumluluğu.

Bu talimatların çoğu eski modadır ve belirli bir saat döngüsü gecikmesine sahiptir. Haberci görevi görecek bir destek işlemcisi eklesek ve bu istekleri RAM'e veya aynı adresteki herhangi bir belleğe daha düşük gecikmeyle çözebilseydik ne olurdu? İşlemcinin performansı artacak ve genellikle yeni talimatları çözmeyi bekleyen saat döngülerine odaklanmasına izin verecekti.

Şey, Intel Data Streaming Accelerator bu prensibe dayanmaktadır ve farklı işlemcilerin performansını iyileştirmenin anahtarlarından biridir.

Intel Veri Akışı Hızlandırıcı

Diyagram Veri Akışı Hızlandırıcı

Adından da anlaşılacağı gibi, bir hızlandırıcıdır, yani belirli bir görevi yerine getiren bir birimdir, bu durumda verinin CPU'dan daha kısa sürede yayılmasıdır. DSA'nın özelliği, Compute Express Link'in PCI Express 5.0 üzerinden getirdiği özelliklerden biri için tasarlanmış olmasıdır; bu, PCI Express bağlantı noktasına bağlı tüm çevre birimlerine RAM belleğe tutarlı erişim sağlamak üzere, yani, aynı hafıza adreslerini paylaşırlar.

Bu nedenle, aşağıdaki işlemleri gerçekleştirmek için kullanılır:

  • Verileri CPU'dan RAM'e veya tam tersi şekilde taşıyabilirsiniz.
  • Tutarlı olmayan bellek alanlarına erişmek için, başka bir bellek adreslemesi ile adres dönüşümünü otomatik olarak gerçekleştirebilirsiniz, bu nedenle teknik olarak güncellenmiş bir DMA birimi ile karşı karşıyayız.
  • Ayrıca kalıcı veya kalıcı belleklere erişimi vardır, böylece NVMe SSD'lere, Intel Optane modüllerine, NVDIMM'lere vb.
  • NTB aracılığıyla ve bir sunucu ortamında, veri merkezindeki veya sunucudaki başka bir karttan diğer RAM veya kalıcı belleğe erişmenizi sağlar.
  • Yukarıdaki noktaları sanal makinelere uygulamak için yerleşik işlevlere sahiptir.

Birçoğunuzun çıkarmış olabileceği gibi, otomatik olarak çalışan sabit bir işlev birimi olmasa da, özellikle sunucu işlemcileri için tasarlanmış bir birim türüdür.

Intel DSA Talimatları

Data Streaming Accelerator, kendisine giren verilere her zaman aynı programı uygulamadığı için sabit bir işlev birimi değildir, bunun yerine bir dizi talimatı destekler, bu nedenle etki alanı işlemcisine özel diyoruz. Yapabileceğiniz işlemler arasında şunlar yer alır:

  • Hareket: Klasik x86 veri taşıma talimatlarını, montajcı yazanlar bilecek. İşlemcide bir veya daha fazla Intel Data Streaming Accelerator varsa, CPU çekirdekleri tarafından değil bunlar tarafından yürütülür.
  • Fark: o bellekteki bilgilerin bütünlüğünü doğrulama işlemini yürütmekle görevlidir.
  • CRC Üretimi: İletilen veriler üzerinde CRC Sağlama Toplamı oluşturur.
  • Dolgu: Belleğin bir bölümünü belirli bir veriyle tekrar tekrar doldurmaktan sorumludur, tüm bitleri 0'a ayarlamamıza izin verdiği için belleğin bir bölümünün içeriğini silmek idealdir.
  • Karşılaştırmak: İki bellek bloğunu karşılaştırmak ve aynı olup olmadığını kontrol etmek için kullanılır.
  • Delta Kayıt Oluştur: Bir kontrol yapın ve ikisi arasındaki farkla yeni bir veri akışı oluşturun.

Data Streaming Accelerator aynı anda birkaç depolama cihazını da kontrol edebilir:

  • Etkinleştirme / Devre dışı : RAM veya geçici olmayan depolama olmak üzere bir bellek cihazını bağlamanıza veya bağlantısını kesmenize olanak tanır.
  • İptal: RAM'e veya diğer bellek aygıtına yapılan tüm bellek isteklerini iptal edin.
  • Tahliye: tüm isteklerin aynı anda bir bellek cihazına yapılmasını ister.

Talimat listesi çok daha büyüktür, ancak Intel'in işlemcilerine entegre ettiği bu yeni birimin işleyişi hakkında kabaca bir fikriniz olması içindir. Avantajlar açıktır ve Sapphire Rapids'de daha da geliştirilmesi beklenmektedir.