- 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
- MicroBlaze V Processor Quick Start Guide: işlemci hazır tasarımlarını kullanarak temel bir AMD MicroBlaze V işlemci sistemi oluşturma sürecini anlatır
- MicroBlaze V Processor Reference Guide: AMD Vivado Design Suite içinde yer alan 32 bit ve 64 bit MicroBlaze V soft işlemci hakkında bilgi sunar
- MicroBlaze Debug Module V Product Guide: bir veya daha fazla MicroBlaze V işlemcisinin JTAG tabanlı hata ayıklamasını mümkün kılan MDM V çekirdek tasarım spesifikasyonunu sunar
- Webinar: Getting Started with Zephyr® RTOS on the AMD MicroBlaze™ V Processor: Zephyr kurulumu, yapılandırması ve MicroBlaze V hedefli uygulama derlemeyi kapsar
- Documentation: MicroBlaze V kullanıcı kılavuzları ve ürün kılavuzları koleksiyonu
- Wiki: gerekli çevre birimleri, bellek ve arayüz kombinasyonlarını seçme esnekliğini ele alır
-
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
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
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...
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
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?
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ı
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ı
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
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
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
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
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
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ı?
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
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 Xilinx FPGA tasarımı olduğu için Xilinx geliştirme kartlarıyla başlamak mantıklı
https://www.xilinx.com/products/boards-and-kits/cost-optimiz...
İhtiyacınız sadece bir RISC-V softcore ise Xilinx ekosisteminin dışında da birçok seçenek var. Ben şahsen yosys/nextpnr tarafından iyi desteklenen kartları tercih ederim
0. https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards
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
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