3 puan yazan GN⁺ 2023-11-05 | 1 yorum | WhatsApp'ta paylaş
  • AMD MicroBlaze V, AMD adaptive SoC ve FPGA’lere yerleştirilerek kullanılan bir soft-core RISC-V işlemci IP’sidir ve Vivado ile Vitis tasarım akışlarına entegredir
  • Mevcut MicroBlaze tasarımlarının donanım uyumluluğunu korurken, RISC-V ISA tabanlı yazılım taşınabilirliğini ve açık kaynak ekosisteminden yararlanmayı hedefler
  • RV32I·RV64I temel komut kümeleri yapılandırılabilir; M/A/F/C uzantıları ile ZBa, ZBB, ZBc, ZBs bit manipülasyon uzantıları seçilebilir
  • Mikrodenetleyiciden uygulama işlemcisine kadar hazır yapılandırmalar sunulur ve 4 farklı pipeline seçeneğiyle birlikte dual-core lockstep ve TMR gibi güvenlik özelliklerini içerir
  • Vivado Design Suite’in desteklediği tüm AMD adaptive SoC veya FPGA cihazları ek maliyet olmadan hedeflenebilir; ancak RV64I ve Memory Protection Unit Early Access aşamasındadır ve Memory Management Unit yol haritası aşamasındadır

AMD adaptive SoC ve FPGA’ler için RISC-V soft işlemci

  • AMD MicroBlaze V, AMD adaptive SoC ve FPGA’ler için bir soft-core RISC-V işlemci IP’sidir
  • RISC-V komut kümesi mimarisi (ISA) temel alınır ve gömülü sistem uygulamalarına uygun modüler şekilde yapılandırılabilen bir mimari sunar
  • Geliştiriciler, Vivado Design Suite’in desteklediği AMD adaptive SoC veya FPGA cihazlarında MicroBlaze V’yi ek maliyet olmadan hedefleyebilir
  • RISC-V, kâr amacı gütmeyen RISC-V Foundation tarafından yönetilen açık kaynak standart bir ISA’dır ve AMD 2020’den beri üyedir

RISC-V ISA yapısı ve taşınabilirlik

  • MicroBlaze V, sektör genelindeki yazılım ve çözüm ekosistemi tarafından desteklenen açık kaynak bir ISA üzerine kuruludur
  • Tasarım hedefi, mevcut MicroBlaze işlemci tasarımlarının donanım geçişini kolaylaştırmak ve RISC-V tasarımlarında yazılım taşınabilirliğini artırmaktır
  • Yapılandırılabilir ISA desteği kapsamı:
    • RV32I ve RV64I Base Integer Instruction Set
    • Çarpma ve bölme için M uzantısı
    • Atomik komutlar için A uzantısı
    • Kayan nokta için F uzantısı
    • Kod sıkıştırma için C uzantısı
    • Bit manipülasyonu için ZBa, ZBB, ZBc, ZBs uzantıları
  • Kod sıkıştırma özelliği, kod boyutunu azaltmak ve tasarım belleğinden tasarruf etmek için kullanılır

Mimari, performans ve güvenlik özellikleri

  • Mikrodenetleyiciden uygulama işlemcisine kadar farklı uygulama aralıklarına uygun hazır yapılandırmalar seçilebilir
  • Alan veya performans optimizasyonu için 4 farklı pipeline seçeneği sunulur
  • Güvenlik açısından kritik sistemler için isteğe bağlı güvenlik önlemleri de içerilir
    • Dual-core lockstep

      • Triple modular redundancy(TMR)

Vivado·Vitis tabanlı tasarım akışı ve çevre birimleri

  • MicroBlaze V, Vivado Design Suite ve Vitis software tools ile entegre bir tasarım akışı sunar
  • Vivado tasarım araçlarının desteklediği tüm AMD adaptive SoC ve FPGA’lerle uyumludur
  • Grafik kullanıcı arayüzü (GUI) ve komut satırı arayüzünde (CLI) kullanılabilir
  • Optimize edilmiş IP’ler kullanılarak programlanabilir mantık içinde entegre bir MicroBlaze V işlemci alt sistemi yerleştirilebilir; bu da sistem bileşeni sayısını ve geliştirme süresini azaltmayı hedefler
  • Sürükle-bırak yöntemiyle eklenebilen başlıca çevre birimi kategorileri:
    • General Purpose: Multichannel DMA, Streaming FIFO, Timer / Watchdog, Mutex / Mailbox
    • I/O: UART, USB 2.0, SPI, GPIO, PWM
    • Video: HDMI Camera/Display Interface, MIPI-CSI, MIPI-DSI, Video DMA
    • Memory: DDR, Quad SPI, SDRAM
    • Networking: Ethernet Subsystem, Controller Area Network

Örnek yapılandırmalar, belgeler, destek durumu

  • Örnek tasarım yapılandırmaları iki adettir: MicroBlaze V Microcontroller ve MicroBlaze V with Memory Protection Unit
  • MicroBlaze V Microcontroller yapılandırması

    • 32-bit Processor Core RV32IMAFC
    • JTAG Debug Interface
    • Tightly Coupled Local Memory
    • SPI controller, I2C Controller, UART
    • Interrupt Controller, Timer, GPIO
  • Memory Protection Unit içeren MicroBlaze V yapılandırması

    • Microcontroller Preset Blocks’un tamamı
    • Instruction Cache
    • Memory Protection Unit

      • Data Cache
      • Memory Controller
  • Destek belgeleri ve kaynaklar

  • Destek durumu

    • Microcontroller configuration Production olarak sunulmaktadır
    • RV64I ve Memory Protection Unit içeren AMD MicroBlaze V, Early Access aşamasındadır
    • Memory Management Unit içeren AMD MicroBlaze V yol haritasındadır

1 yorum

 
GN⁺ 2023-11-05
Hacker News görüşleri
  • AMD'nin kısa süre önce Xilinx'i satın aldığını hatırlamıyorsanız kafa karıştırıcı olabilir
    Bundan sonra yeni Xilinx ürünlerinde AMD adını daha sık görmemiz muhtemel

    • Rastgele bir yeni ürün demek zor. Xilinx MicroBlaze, 20 yılı aşkın geçmişe sahip bir teknoloji ve FPGA için geliştirilen ilk “gerçek” softcore'lardan biriydi
      Intel tarafındaki karşılığı kabaca Altera NIOS II sayılabilir
  • Reddit'teki [1] numaralı yoruma göre bu, mevcut MicroBlaze RTL'nin önüne bir RISC-V komut çözücüsü eklemek gibi bir şey
    “En iyi RISC-V çekirdeğini yapalım” bakış açısından mantıksız görünebilir, ama Xilinx/AMD'nin hedefi zaten hiçbir zaman bu değildi
    MicroBlaze, sıkıcı niş alanlara giren sıkıcı sıralı çalışan bir RISC CPU'nun iyi bir örneğiydi ve FPGA üreticileri için softcore'lar yarı yarıya yem ürünüdür. Silikon satışına yardımcı olurlar ama tek başlarına para kazandırmazlar. Performansı belirleyen FPGA alanı değil, daha çok “entegrasyon yapıştırıcısı” gibidir; bu yüzden “yeterince iyi” olması yeterlidir
    AMD gerçekten MicroBlaze RTL'yi yeniden kullanıyorsa mevcut firmware'i (çekirdek, FPU, debug, çevre birimleri vb.) ve yazılımı (HAL, derleyici, sürücüler) koruyabilir. Bu hem tedarikçi açısından hem de yeni MicroBlaze çekirdeğine acısız geçmek isteyen kullanıcılar açısından çok caziptir
    1: https://old.reddit.com/r/FPGA/comments/17mdcyt/microblaze_go...

    • Ama o Reddit kullanıcısının karması -5. Ayrıca basit bir RISC-V çekirdeğini sıfırdan uygulamanın birkaç gün sürdüğü bir durumda bu fikir neredeyse hiç mantıklı gelmiyor
      O bilgiye dayanmazdım
      Yine de mevcut MicroBlaze ile aynı dış arabirimlere sahip olduğu için, donanım açısından mevcut tasarıma doğrudan takılabilecek bir ikame
    • FPGA üreticileri için softcore'ların yem ürün olması tespiti doğru. Bu tür etkinleştirici teknolojiler kendi başlarına para kazandırmadıkları için donanım şirketlerinde değerli görülmüyor
      Bu yüzden Xilinx ve Altera'nın milyarder CEO'ları, Jensen Huang'ın Nvidia yazılım yığınına sürekli para akıtmasını duyunca üzülerek baş sallar. Bir gün gerçek değerin nerede olduğunu öğreneceklerdir
  • Bu duyurunun RISC-V için ne kadar önemli olduğunu açıklayabilir misiniz?

    • Diğer büyük FPGA üreticileri, kendi özel komut kümesi çekirdeklerine alternatif olarak resmi destekli RISC-V çekirdekleri sunmaya zaten birkaç yıl önce başlamıştı
      Elbette GitHub'daki üçüncü taraf çekirdekler de çok kullanılıyor, ama IDE ve araçlarla resmi entegrasyon ve destek birçok müşteri için önemli
      MicroSemi, 2017'den beri RISC-V softcore sunuyor ve 2020 sonlarından itibaren PolarFire SoC gibi hardcore'lar da sağlıyor. Örneğin yeni BeagleBoard Fire, Icicle vb.
      Lattice, ilk resmi RISC-V softcore'unu 2020 Haziran civarında duyurdu; 2019 Aralık'ta SiFive ile iş birliğini açıklamış, 2021 ortalarında da 800 LUT çekirdeği gibi geliştirilmiş sürümler çıkarmıştı
      Intel ise Ekim 2021'de Nios V'yi tanıttı
    • MicroBlaze, RISC-V'nin aktif biçimde içine girdiği kapı sayısı ölçeğindeki bir çekirdekti
      Tensilica ve ARC gibi çözümler de bu alanda ciddi miktarda katma değer kaybetti. Kendi başıma MicroBlaze'e kernel portlamış biri olarak söyleyebilirim ki, bu kabaca 20 bin kapı aralığında klasik boru hatlı bir RISC ve MIPS ile SH4 arasında bir yerde
      Bu duyurudaki en ilginç kısım, AMD/Xilinx'in yeni bir ad üretip mevcut MicroBlaze güncellemelerini desteklemeye devam etmek yerine, markalı “MicroBlaze” teriminin kendisini yeniden tanımlayacak kadar derine inmiş olması
    • Eskiden SiFive'ın Artix-7'ye sığabilecek bir RV32 çekirdeği vardı ama oldukça temel seviyedeydi
      G/Ç tarafı dağınıktı ve kart üzerindeki DRAM'i de kullanamıyordu. Artix-7 üzerinde resmi olarak desteklenen bir RV32 softcore görmek güzel olurdu
      Geçmişte MicroBlaze'i epey fena olmayan şekilde kullandım ama çok kapalı olduğu için test veya eğitim dışında kullanmayı düşünmedim. RISC-V'nin fanatik bir destekçisi değilim ama bu tür alanlara iyi uyuyor. Çünkü yaklaşım şu: “Zaten yatırım yapmış olabileceğiniz komut kümesini kullanan araçlar sunalım, ama sizi o taraftaki toolchain'e de kilitlemeye çalışmayalım”
      AMD/Xilinx'in komut kümesinin alt katmanlarında kilitleme yapması bir ölçüde kabul edilebilir. Sonuçta ister FPGA alın ister bir gün çıkabilecek katalog parçasını alın, donanım maliyetini ödemeniz büyük olasılıkla yine gerekecek
    • Xilinx oldukça büyük bir FPGA üreticisi ve MicroBlaze, TMR dahil hata toleransı özelliklerini oldukça iyi sunuyor
      TMR'nin kendisi RISC-V tarafında yeni değil, ama bu şu anlama geliyor: halihazırda MicroBlaze kullanan birçok proje ve yeni MicroBlaze kullanmak isteyen projeler artık RISC-V kullanabilecek
    • Bir mikrodenetleyici olabildiği gibi gerçek zamanlı CPU olarak da çalışabilir
      RISC-V bu pazarda zaten epey popüler
  • MicroBlaze V'nin kullanım alanının, örneğin SERV https://serv.readthedocs.io/en/latest/servant.html ile kıyaslandığında ne olduğunu merak ediyorum
    Yani çip üreticisinin resmi onayı dışında, MicroBlaze V'nin sunduğu tek benzersiz avantaj hız gibi görünüyor. FPGA CPU'ları genelde o kadar zaman hassas görevlerde kullanılmıyor, değil mi? Yüksek hızlı ve zaman hassas işleri, çip üzerindeki G/Ç arabirimleriyle birlikte FPGA fabric'in yapması beklenir diye düşünüyorum

    • Asıl mesele araçlar ve destek. İnsanlar RISC-V softcore'larıyla kendileri uğraşmak istemiyor; sadece çalışmasını ve gerçekten önem verdikleri şeylerle zaten iyi entegre olmasını istiyorlar
      MicroBlaze, çok çeşitli yapılandırma seçenekleri ve çevre birimleri arasından seçip sürükle-bırak ile kelimenin tam anlamıyla kendi softcore'unuzu oluşturmanıza izin veriyor. Buna kullanıcı uygulamaları için SDK ve sorunların kök nedenini bulmaya yönelik debug araçları da dahil
      SERV ile geliştirme yaparsanız, yalnızca araçların olgunluk düzeyinin düşüklüğü nedeniyle bile geliştirme süresinin birkaç büyüklük mertebesi daha uzun sürmesi şaşırtıcı olmaz
  • Yeni bir softcore çıkması güzel ama sırf isim alanını kirletmeye gerek var mıydı emin değilim
    MicroBlaze zaten birinin aratabileceği mevcut bir mimari adı
    Buna AMDcoreV gibi bir şey deseler de olurdu

    • Evet. MicroBlaze, AMD'nin sahip olduğu bir mimari adı ve habere göre bu çekirdek onunla uyumlu

      It allows developers to leverage the open-source RISC-V software ecosystem, is hardware compatible with the classic MicroBlaze processor

    • HDL tarafından bakınca arayüz aynı. Buna karşılık yazılım tarafında, en güçlü ekosistemlerden biri hâline hızla gelen RISC-V komut seti var
      Sadece yeniden derlemek yeterli olur ve bu kez zayıf, kapalı ve özelleştirilmiş düşük kaliteli araçlarla uğraşmak yerine gcc, binutils, llvm gibi güvenilir endüstri standardı araçları kullanabilirsiniz
    • Bu, yeni Xilinx MicroBlaze. AVR benzeri bir komut setinden RV32'ye geçilmiş
    • AMD'nin Xilinx satın alımıyla sahip olduğu MicroBlaze mimarisinden bahsetmiyor mu?
    • Yine de soneksiz düz kullanmaktansa MicroBlaze V demeleri daha iyi
  • Bunun içinde PSP veya ME benzeri bir şey var mı? Güvensiz ve yama da yapılamayan şüpheli bir kara kutu CPUdan artık bıktım

  • Çekirdeğin kendisi açık kaynak mı?

    • Büyük olasılıkla değil ama AMD, bunun herhangi bir AMD(Xilinx) FPGA'de ücretsiz kullanılabileceğini söyledi
      Kullanım ücreti olsaydı, ücretsiz alternatifler varken bu duyuruyla ilgilenmezdim
      Bu çekirdeğin Xilinx FPGA kaynaklarını verimli kullanacak şekilde iyi optimize edildiği varsayılabilir ve alternatiflere karşı avantajı muhtemelen bu olur
    • Açık kaynak lisanslı olmayabilir ama önceki MicroBlaze çekirdeğinin kaynak kodu geliştirme kitine dahil edilmişti ve hafifçe obfuscate edilmişti
      Hatta kaynak kodu yorumları bile kaldırılmamıştı
  • Bu tür RISC-V softcore'larını tek bakışta karşılaştıran bir genel bakış olsa güzel olurdu
    Açık kaynak olup olmadıkları, CoreMark puanları, boyutları gibi şeyler
    neorv, serv, vexrisc, nios v, microblaze v vb.

  • Bunu kurcalayabileceğim bir geliştirme kiti var mı? Nasıl başlanır?

  • Bu bir ilk adım ve iyiye işaret
    Yine de 32 bit bir çekirdek yerine 64 bit bir çekirdek olmasını isterdim. Çünkü 64 bit RISC-V assembly kod yolları yazarsanız bunu masaüstü, sunucu ve gömülü sistemlerde gerçekten yeniden kullanabilirsiniz

    • “İlk adım” değil. Zaten atılmış birçok adımdan biri
      64 bit çekirdek istiyorsanız muhtemelen hedef pazarın içinde değilsiniz
      64 bit RISC-V assembly'yi masaüstü, sunucu ve gömülü sistemlerde yeniden kullanma fikri de pek gerçekçi değil. Masaüstü ve sunucular fiilen yalnızca 64 bit, gömülü tarafta ise çoğunlukla 32 bit çekirdekler var; dolayısıyla kesişim çok büyük değil
      Sadece 32 bit ve 64 bit farkı değil, sistem karmaşıklığı, önyükleme prosedürleri ve dış dünyayla etkileşim biçimleri gibi programlama ortamları da ciddi biçimde farklı
      Kısacası hedef cihazı seçip ona göre kod yazmak gerekiyor. Farklı türde cihazlar arasında kolay taşınabilirlik istiyorsanız assembly yerine başka bir dilde yazmak daha doğru olur