Zephyrnet Logosu

SoC Tasarımımın Ne Zaman NoC'ye İhtiyacı Var?

Tarih:

Michael Frank ve Frank Schirrmeister tarafından

En basit teklifler hariç, hemen hemen her modern çip üzerinde sistem (SoC) cihazı, çip üzerinde iletişimlerini bir çip üzerinde ağ (NoC) kullanarak gerçekleştirecektir. Bazı insanlar NoC kullanmanın gerekli olup olmadığını veya daha temel bir yaklaşımın yeterli olup olmayacağını sorguluyor.

SoC'de ne var?

SoC, bir bilgisayarın veya başka bir elektronik sistemin bileşenlerinin çoğunu veya tamamını içeren bir entegre devredir (IC). SoC, fikri mülkiyet (IP) blokları adı verilen birden fazla işlevsel birimden oluşur. Bu blokların çoğu üçüncü taraf satıcılardan temin edilecek; geri kalanlar (bu SoC'yi rakip tekliflerden ayıran "gizli sosu" sağlayanlar) şirket içinde oluşturulacak.

Bu IP blokları, mikroişlemci birimleri (MPU'lar), grafik işlem birimleri (GPU'lar) ve sinirsel işlem birimleri (NPU'lar) gibi işlemci çekirdeklerini içerebilir. Çeşitli bellek IP türlerine ek olarak, diğer IP blokları iletişim, yardımcı program, çevre birimi ve hızlandırma işlevlerini gerçekleştirebilir.

Otobüsler, çapraz çubuk anahtarları ve NoC'ler

Her IP bloğu sistemin bellek alanında bir yerde temsil edilir. “İşlem” terimi, sistemin bellek alanındaki adreslere veya adreslerden veri baytlarının yazılması veya okunması işlemini ifade eder. SoC'nin sihrini gerçekleştirmesi için, IP bloklarının bir tür ara bağlantı üzerinden birbirleriyle "konuşmak" için işlemleri kullanması gerekir. "Başlatıcı" ve "hedef" terimleri, işlemleri oluşturan veya bunlara yanıt veren IP bloklarını ifade eder.

1990'larda SoC'lerde kullanılan baskın ara bağlantı mekanizması veri yoluydu. Şekil 1'de oldukça basitleştirilmiş bir gösterim gösterilmektedir. "Veri yolu" olarak işaretlenen satırın, bir veri yolunu, bir adres veriyolunu ve ilgili kontrol sinyallerini uygulayan birden fazla kablodan oluşacağına dikkat edin.

Şekil 1: Basit veri yolu ara bağlantı yapısı.

İlk SoC tasarımlarının çoğunda, merkezi işlem birimi (CPU) biçiminde yalnızca tek bir başlatıcı IP bloğu bulunurdu. Başlatıcı, adres veriyoluna bir adres yerleştirdiğinde, tüm hedef IP blokları onu görecek ve içlerinden biri kendi kendine "bu benim" diyecektir. Başlatıcı daha sonra bir okuma komutu yayınladığında veya verileri veri yoluna yerleştirip bir yazma komutu yayınladığında, uygun hedef yanıt verecektir.

İlk SoC'lerden bazıları birden fazla başlatıcı kullanabilir. Örneğin CPU'ya, büyük veri bloklarını belleğin farklı alanları ve çevre birimleri arasında hızla aktarmak için kullanılabilecek bir doğrudan bellek erişimi (DMA) işlevi eşlik edebilir. Bir tasarımdaki başlatıcıların sayısı arttıkça, otobüsün kontrolü için pazarlık yapmalarına olanak tanıyan bir çeşit tahkim planının uygulanması gerekli hale gelir.

2000'li yılların başında, SoC tasarımları daha karmaşık hale geldikçe (giderek daha fazla IP bloğu içeren ve birden fazla başlatıcı kullanan), çapraz çubuk anahtarı tabanlı ara bağlantı mimarilerinin kullanılması yaygınlaştı (şekil 2). Bir kez daha, bu diyagramdaki her satır veri, adres ve kontrol sinyallerinden oluşan çok telli bir veri yolunu temsil etmektedir.

Şekil 2: Basit çapraz çubuk anahtarı ara bağlantı yapısı.

Bu durumda başlatıcılardan herhangi biri hedeflerden herhangi biriyle konuşabilir. Anahtarlar, başlatıcıdan hedefe ve tekrar başlatıcıdan hedefe geçerken işlemleri yönlendirir ve birden fazla işlem herhangi bir zamanda "uçuş halinde" olabilir. Her anahtarın işlemleri tamponlama özelliği vardır, böylece birden fazla kişinin aynı anda gelmesi durumunda hangisinin daha yüksek önceliğe sahip olduğuna karar verebilir.

SoC tasarımlarının boyutu ve karmaşıklığı artmaya devam etti. 1990'ların başındaki SoC'ler yalnızca birkaç düzine IP bloğu içerebilir ve cihazın tamamı yalnızca 20,000 ila 50,000 mantık kapısı ve kaydından oluşabilir. Bugün, bir SoC, her biri yüzbinlerce veya bazen milyonlarca mantık kapısı ve kayıt içeren yüzlerce IP bloğu içerebilir.

Aynı dönemde veri yollarının genişliği 8'den 16'ya, 32'den 64 bit'e ve daha yükseğe çıktı. Aslında günümüzde veri aktarımlarının tipik boyutu 64 baytlık (512 bit) önbellek hatlarıdır ve bu da hızlı bir şekilde yönlendirme tıkanıklığı sorunlarına yol açmaktadır. Silikon çip işlemlerinin evrimi, transistörlerin büyüklük derecelerinde küçülmesine yol açmış olsa da, çip üzerindeki tellerin genişlikleri aynı oranda azalmadığından bu sorunlar daha da kötüleşiyor.

Bu sorunları çözmek için günümüzün tasarımcıları çip üzerinde ağ kavramını benimsemişlerdir. Şekil 3'te basit bir NoC örneği gösterilmektedir. Bu durumda işlemler, bilgi paketlerinin aktarılmasını içerir. Her paket, hedef adresi yansıtan bir başlık ve verileri, talimatları, istek türünü vb. içeren bir gövdeden oluşur.

Şekil 3: Basit çip üzerinde ağ ara bağlantı mimarisi.

Herhangi bir zamanda birden fazla bilgi paketi "hareket halinde" olabilir ve bir kez daha anahtarlar işlemleri tamponlama ve önceliklendirme yeteneğine sahiptir. Her başlatıcının her hedefle iletişim kurması gerekmediğinden bu durum mimariye yansıtılabilir ve böylece ara bağlantı gereksinimleri daha da azaltılabilir.

Kullanıma hazır mı yoksa "kendi rulonuz mu"?

Bir açıdan bakıldığında, NoC kullanmak SoC tasarımını büyük ölçüde basitleştirir, ancak bu büyük ölçüde NoC'yi kimin geliştirdiğine bağlıdır. "Soket" terimi, bir IP bloğu ile NoC arasındaki fiziksel arayüzü (örn. veri genişliği) ve iletişim protokolünü ifade eder. SoC endüstrisi çeşitli soket protokollerini (OCP, APB, AHB, AXI, STBus, DTL, vb.) tanımlamış ve benimsemiştir.

Farklı veri genişliklerine ek olarak aynı tasarımdaki IP blokları farklı frekanslarda saatlenebilir. Bir SoC tasarımı, çoğu diğer üçüncü taraf satıcılardan gelen yüzlerce IP bloğu içerebileceğinden, IP'ler farklı soket protokolleri kullanabilir. Bu çeşitliliğe uyum sağlamak için başlatıcı ve hedef soketler arasındaki işlemlerin dönüştürülmesi gerekli olabilir.

Birden fazla SoC projesini destekleyecek şirket içi NoC, birden çok boyutta yapılandırılabilirlik ve esneklik gerektirir. Sonuç olarak, sıfırdan bir NoC geliştirmek, SoC'nin geri kalanını tasarlamak kadar karmaşık ve zaman alıcı olabilir. Dahası, geliştiricilerin artık doğrulaması ve hata ayıklaması gereken iki şey olacak: NoC ve tasarımın geri kalanı.

Çözüm, kullanıma hazır bir NoC çözümü kullanmaktır. FlexNoC itibaren arterler. Bu durumda sezgisel bir arayüz, tasarımcıların mimariyi oluşturan IP bloklarını her bloğun soket özellikleriyle (genişlik, protokol, frekans vb.) tanımlamasına olanak tanır. Geliştiriciler ayrıca hangi başlatıcıların hangi hedeflerle konuşması gerektiğini de belirleyebilirler. Bu noktada, NoC'yi oluşturmak aslında bir "düğme" işlemidir.

Zaten çip üzerindeki sistemler ne kadar karmaşık?

Bir tasarımın ne zaman çip üzerinde ağa ihtiyaç duyduğu sorusuna geri dönelim. Sezgisel cevap, daha küçük tasarımların muaf olabileceği olabilir. Ancak Semico Research'ten Rich Wawrzyniak ile yakın zamanda yapılan bir tartışmada, müşterilerimizde zaten gördüğümüz şeyi doğruladı: Endüstriyel ve IoT alanlarındaki daha küçük tasarımlarda bile, kullanıcılar genellikle birleştirilmesi ve koordine edilmesi gereken 10'larca ila 100'lerce IP bloğuyla karşı karşıya kalıyor.

Aşağıdaki şekil 4'te gösterildiği gibi Semico, SoC'lerin dört kategorisini tanımlar. Bunlardan üçü (100-200 ayrı blok ve 1+ ara bağlantıya sahip Temel SoC'ler, 200-275 blok ve 4+ karmaşık ara bağlantıya sahip Değerli Çok Çekirdekli SoC'ler ve >275 blok ve 5+ karmaşık ara bağlantıya sahip Gelişmiş Performans SoC'ler) net hedef odaklıdır çipler üzerinde ağ otomasyonuna yönelik hedefler. Ancak emtia kontrolörleri için bile tasarımcılar, etkileşime girmesi gereken 10 ila 100 ayrı blokla karşı karşıyadır.

Mühendisler daha küçük tasarımlar için "NoC'yi kendileri yapma" eğilimindedir. Ancak çoğu zaman NoC otomasyonunu kullanmak için Arteris'i aramaları gerektiğinin farkına varırlar.

Şekil 4: Semico'nun çip üzerindeki sistemlerin dört karmaşıklık kategorisi.

Sonuç

Bu sütunun başında "SoC tasarımım ne zaman NoC'ye ihtiyaç duyar?" sorusu yer alıyor. poz verildi. Bunun basit cevabı, günümüzün giderek daha karmaşık hale gelen SoC tasarımlarının, yönlendirme ve performans hedeflerine en iyi şekilde ulaşmak için her zaman bir NoC'ye ihtiyaç duymasıdır. Son teknoloji ürünü bir NoC'yi uygulamanın en kolay yolu FlexNoC'yi kullanmaktır. arterler.

Frank Schirrmeister, Arteris IP'de çözüm ve iş geliştirmeden sorumlu başkan yardımcısıdır.

spot_img

En Son İstihbarat

spot_img