3 पॉइंट द्वारा GN⁺ 2023-11-05 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • AMD MicroBlaze V एक सॉफ्टकोर RISC-V प्रोसेसर IP है जिसे AMD adaptive SoC और FPGA में एम्बेड कर इस्तेमाल किया जाता है, और यह Vivado व Vitis design flow में integrated है
  • मौजूदा MicroBlaze designs की hardware compatibility बनाए रखते हुए, इसका लक्ष्य RISC-V ISA-आधारित software portability और open source ecosystem का उपयोग करना है
  • RV32I·RV64I base instruction sets को configure किया जा सकता है, और M/A/F/C extensions के साथ ZBa, ZBB, ZBc, ZBs bit manipulation extensions चुने जा सकते हैं
  • microcontroller से लेकर application processor तक preset configurations उपलब्ध हैं, और इसमें 4 pipeline options व dual-core lockstep, TMR जैसी safety features शामिल हैं
  • Vivado Design Suite द्वारा supported किसी भी AMD adaptive SoC या FPGA device को बिना अतिरिक्त लागत target किया जा सकता है, लेकिन RV64I और Memory Protection Unit Early Access में हैं और Memory Management Unit roadmap stage में है

AMD adaptive SoC और FPGA के लिए RISC-V soft processor

  • AMD MicroBlaze V AMD adaptive SoC और FPGA के लिए एक softcore RISC-V processor IP है
  • यह RISC-V instruction set architecture(ISA) पर आधारित है और embedded system applications के लिए modular तरीके से configurable architecture प्रदान करता है
  • Developers Vivado Design Suite द्वारा supported AMD adaptive SoC या FPGA devices पर MicroBlaze V को बिना अतिरिक्त लागत target कर सकते हैं
  • RISC-V एक open source standard ISA है जिसका प्रबंधन non-profit RISC-V Foundation करती है, और AMD 2020 से इसकी member है

RISC-V ISA configuration और portability

  • MicroBlaze V एक open source ISA पर आधारित है, जिसे industry-wide software और solutions ecosystem का समर्थन प्राप्त है
  • Design goal मौजूदा MicroBlaze processor designs की hardware migration को आसान बनाना और RISC-V designs की software portability बढ़ाना है
  • Configurable ISA support range:
    • RV32I और RV64I Base Integer Instruction Set
    • multiplication और division के लिए M extension
    • atomic instructions के लिए A extension
    • floating point के लिए F extension
    • code compression के लिए C extension
    • bit manipulation के लिए ZBa, ZBB, ZBc, ZBs extensions
  • Code compression feature code size घटाने और design memory बचाने के लिए इस्तेमाल होता है

Architecture, performance और safety features

  • microcontroller से application processor तक कई application ranges के अनुरूप preset configurations चुने जा सकते हैं
  • area या performance optimization के लिए 4 pipeline options प्रदान किए जाते हैं
  • safety-critical systems के लिए optional safety mechanisms भी शामिल हैं
    • Dual-core lockstep

      • Triple modular redundancy(TMR)

Vivado·Vitis-आधारित design flow और peripherals

  • MicroBlaze V Vivado Design Suite और Vitis software tools में integrated design flow प्रदान करता है
  • यह Vivado design tools द्वारा supported सभी AMD adaptive SoC और FPGA के साथ compatible है
  • इसे graphical user interface(GUI) और command-line interface(CLI), दोनों में इस्तेमाल किया जा सकता है
  • Optimized IP का उपयोग करके programmable logic के अंदर integrated MicroBlaze V processor subsystem रखा जा सकता है, जिसका लक्ष्य system components की संख्या और development time कम करना है
  • Drag-and-drop तरीके से जोड़ी जा सकने वाली प्रमुख peripheral categories:
    • 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

Example configurations, documentation और support status

  • Example design configurations दो हैं: MicroBlaze V Microcontroller और MicroBlaze V with Memory Protection Unit
  • MicroBlaze V Microcontroller configuration

    • 32-bit Processor Core RV32IMAFC
    • JTAG Debug Interface
    • Tightly Coupled Local Memory
    • SPI controller, I2C Controller, UART
    • Interrupt Controller, Timer, GPIO
  • MicroBlaze V with Memory Protection Unit configuration

    • सभी Microcontroller Preset Blocks
    • Instruction Cache
    • Memory Protection Unit

      • Data Cache
      • Memory Controller
  • Support documentation और resources

    • MicroBlaze V Processor Quick Start Guide: processor preset design का इस्तेमाल करके basic AMD MicroBlaze V processor system बनाने की प्रक्रिया बताता है
    • MicroBlaze V Processor Reference Guide: AMD Vivado Design Suite में शामिल 32-bit और 64-bit MicroBlaze V soft processor की जानकारी देता है
    • MicroBlaze Debug Module V Product Guide: एक या अधिक MicroBlaze V processors को JTAG-based तरीके से debug करने में सक्षम बनाने वाले MDM V core design specification प्रदान करता है
    • Webinar: Getting Started with Zephyr® RTOS on the AMD MicroBlaze™ V Processor: Zephyr setup, configuration और MicroBlaze V target application build को cover करता है
    • Documentation: MicroBlaze V user guides और product guides का संग्रह
    • Wiki: आवश्यक peripherals, memory और interface combinations चुनने की flexibility को cover करता है
  • Support status

    • Microcontroller configuration Production के रूप में उपलब्ध है
    • AMD MicroBlaze V with RV64I और Memory Protection Unit Early Access में हैं
    • AMD MicroBlaze V with Memory Management Unit roadmap में है

1 टिप्पणियां

 
GN⁺ 2023-11-05
Hacker News टिप्पणियां
  • अगर आपको याद नहीं है कि AMD ने हाल ही में Xilinx का अधिग्रहण किया है, तो यह थोड़ा भ्रमित कर सकता है
    आगे नए Xilinx products पर AMD का नाम लगना आम होने की संभावना है

    • इसे कोई रैंडम नया product मानना मुश्किल है। Xilinx MicroBlaze 20 साल से ज्यादा पुरानी तकनीक है, और FPGA के लिए विकसित शुरुआती “असली” softcore में से एक था
      Intel की तरफ इसका समकक्ष Altera NIOS II समझ सकते हैं
  • Reddit comment [1] के मुताबिक, यह मौजूदा MicroBlaze RTL के front-end पर RISC-V instruction decoder लगाने जैसा है
    “सबसे अच्छा RISC-V core बनाएं” वाले नजरिए से यह बात ठीक नहीं लगती, लेकिन Xilinx/AMD का लक्ष्य कभी वह था ही नहीं
    MicroBlaze उन उबाऊ niches में जाने वाले उबाऊ sequential-execution RISC CPU का अच्छा उदाहरण था, और FPGA vendor के लिए softcore आधा bait product जैसा होता है। यह silicon sales में मदद करता है, लेकिन अपने-आप में पैसा नहीं कमाता। यह FPGA area नहीं है जो performance तय करता है, बल्कि “integration glue” के करीब की तकनीक है, इसलिए “good enough” होना काफी है
    अगर AMD सच में MicroBlaze RTL reuse करता है, तो मौजूदा firmware (core, FPU, debug, peripherals आदि) और software (HAL, compiler, drivers) को बनाए रख सकता है। यह provider के लिए भी और नए MicroBlaze core पर बिना दर्द के migrate करना चाहने वाले users के लिए भी बहुत आकर्षक है
    1: https://old.reddit.com/r/FPGA/comments/17mdcyt/microblaze_go...

    • उस Reddit user का karma -5 है। और जब एक simple RISC-V core को scratch से implement करने में कुछ ही दिन लगते हों, तो वह idea लगभग बिल्कुल समझ में नहीं आता
      मैं उस जानकारी पर भरोसा नहीं करूंगा
      हालांकि इसके external interfaces मौजूदा MicroBlaze जैसे ही हैं, इसलिए hardware के नजरिए से यह मौजूदा design में सीधे फिट होने वाला replacement है
    • FPGA vendor के लिए softcore bait product है, यह बात सही है। ऐसी enabling technology अपने-आप में पैसा नहीं कमाती, इसलिए hardware companies में इसे valuable नहीं माना जाता
      इसलिए Xilinx और Altera के billionaire CEOs, Jensen Huang को Nvidia software stack में लगातार पैसा डालते सुनकर अफसोस में सिर हिलाते होंगे। किसी दिन वे सीख ही जाएंगे कि असली value कहां है
  • क्या कोई समझा सकता है कि यह announcement RISC-V के लिए कितना महत्वपूर्ण है?

    • दूसरे बड़े FPGA manufacturers ने कई साल पहले से ही अपने proprietary instruction set cores के alternative के तौर पर officially supported RISC-V cores देना शुरू कर दिया था
      बेशक GitHub के third-party cores भी काफी इस्तेमाल होते हैं, लेकिन IDE और tools में official integration और support होना कई customers के लिए मायने रखता है
      MicroSemi 2017 से RISC-V softcore दे रहा था, और 2020 के आखिर से PolarFire SoC जैसे hardcores भी दे रहा था। उदाहरण के लिए नया BeagleBoard Fire, Icicle वगैरह हैं
      Lattice ने जून 2020 के आसपास अपना पहला official RISC-V softcore announce किया, दिसंबर 2019 में SiFive के साथ collaboration announce किया था, और 2021 के मध्य में 800 LUT core जैसी improved versions भी निकालीं
      Intel ने अक्टूबर 2021 में Nios V introduce किया
    • MicroBlaze ऐसा core था जो उस gate-count scale में था जिसे RISC-V सक्रिय रूप से खा रहा है
      Tensilica, ARC जैसी चीजों ने भी इस area में काफी added value खोई है। खुद MicroBlaze पर kernel port कर चुके व्यक्ति के रूप में कहूं तो, यह करीब 20k gates range का classic pipelined RISC है और MIPS और SH4 के बीच कहीं आता है
      इस announcement में सबसे interesting बात यह है कि AMD/Xilinx ने कोई नया नाम बनाकर मौजूदा MicroBlaze updates को support जारी रखने के बजाय, trademark लगे “MicroBlaze” शब्द को ही redefine करने जितनी गहराई तक कदम रखा है
    • पुराने SiFive के पास Artix-7 में fit हो सकने वाला RV32 core था, लेकिन वह काफी basic था
      I/O अलग-अलग तरह का था, और board की built-in DRAM भी use नहीं कर सकता था। Artix-7 पर officially supported RV32 softcore दिखे तो अच्छा होगा
      मैंने पहले MicroBlaze का काफी ठीक-ठाक इस्तेमाल किया था, लेकिन वह बहुत closed था, इसलिए testing या education के अलावा उसे use करने के बारे में नहीं सोचा। मैं RISC-V का कट्टर समर्थक नहीं हूं, लेकिन यह ऐसे क्षेत्र के लिए अच्छी तरह fit बैठता है। यह कुछ ऐसा है: “हम आपको ऐसे tools देंगे जो उस instruction set का use करते हैं जिसमें आपने शायद पहले से investment किया हो, और हम आपको उस toolchain में भी बांधने की कोशिश नहीं करेंगे”
      AMD/Xilinx का instruction set के नीचे वाले layer पर बांधना कुछ हद तक स्वीकार्य है। आखिर FPGA खरीदें या कभी आने वाला कोई catalog part खरीदें, hardware cost तो चुकानी ही पड़ने की संभावना ज्यादा है
    • Xilinx काफी बड़ा FPGA manufacturer है, और MicroBlaze TMR सहित fault-tolerance features काफी अच्छे से देता है
      RISC-V में TMR अपने-आप में नया नहीं है, लेकिन इसका मतलब है कि बहुत से projects जो पहले से MicroBlaze use करते हैं और वे projects जो नया MicroBlaze use करना चाहते हैं, अब RISC-V use कर पाएंगे
    • यह microcontroller होने के साथ-साथ real-time CPU की तरह भी काम कर सकता है
      RISC-V उस market में पहले से काफी popular है
  • मैं जानना चाहता हूं कि MicroBlaze V का use case, उदाहरण के लिए SERV https://serv.readthedocs.io/en/latest/servant.html की तुलना में कैसा है
    यानी chip manufacturer की official approval के अलावा, MicroBlaze V का एकमात्र फायदा speed ही लगता है। FPGA CPU आम तौर पर ऐसे tasks में use नहीं होते जो इतने time-sensitive न हों? high-speed और time-sensitive काम on-chip I/O interfaces के साथ FPGA fabric करे, यही मकसद माना जाता है

    • असली मुद्दा tools और support है। आप RISC-V softcore के साथ खुद छेड़छाड़ करना नहीं चाहते, बस चाहते हैं कि वह चले और जिन चीजों की आपको सच में परवाह है उनसे पहले से अच्छी तरह connect हो
      MicroBlaze आपको अलग-अलग configuration options और peripherals चुनकर drag-and-drop से सचमुच अपना softcore configure करने देता है। इसमें user application के लिए SDK और problem की जड़ ढूंढने के लिए debugging tools भी शामिल हैं
      SERV के साथ development करने पर सिर्फ tools की maturity कम होने की वजह से भी development time कई orders of magnitude ज्यादा लग जाए, तो आश्चर्य नहीं होगा
  • नया softcore आना अच्छी बात है, लेकिन लगता है कि बेवजह namespace को गंदा करने की क्या जरूरत थी
    MicroBlaze पहले से ही एक architecture का नाम है जिसे कोई खोज सकता है
    बस AMDcoreV जैसा कुछ नाम रख देते तो ठीक था

    • सही. MicroBlaze AMD के स्वामित्व वाली architecture का नाम है, और लेख के मुताबिक यह core उससे compatible है

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

    • HDL से देखने पर interface वही है. वहीं software side पर यह RISC-V instruction set है, जो सबसे मजबूत ecosystem के रूप में तेजी से बढ़ रहा है
      बस फिर से compile करना होगा, और इस बार कमजोर, proprietary, custom low-quality tools से निपटने के बजाय gcc, binutils, llvm जैसे भरोसेमंद industry-standard tools इस्तेमाल किए जा सकते हैं
    • यही नया Xilinx MicroBlaze है. AVR-जैसे instruction set से RV32 पर आया है
    • क्या वे उसी MicroBlaze architecture की बात नहीं कर रहे, जो AMD को Xilinx acquisition के जरिए मिला?
    • फिर भी suffix के बिना सिर्फ नाम इस्तेमाल करने से तो MicroBlaze V बेहतर है
  • क्या इसमें PSP या ME जैसा कुछ है? असुरक्षित और patch न हो सकने वाले संदिग्ध black-box CPU से अब तंग आ चुका हूं

  • क्या core खुद open source है?

    • शायद नहीं, लेकिन AMD ने कहा है कि इसे किसी भी AMD(Xilinx) FPGA पर मुफ्त में इस्तेमाल किया जा सकता है
      अगर license fee देनी पड़ती, तो free alternatives मौजूद होने के कारण इस announcement में मेरी दिलचस्पी नहीं होती
      माना जा सकता है कि यह core Xilinx FPGA resources का efficient इस्तेमाल करने के लिए अच्छी तरह optimized है, और शायद alternatives की तुलना में यही इसका फायदा है
    • open source license शायद न हो, लेकिन पुराने MicroBlaze core का source code development kit में शामिल था और हल्के तौर पर obfuscated था
      यहां तक कि source code comments भी नहीं हटाए गए थे
  • अच्छा हो अगर इन RISC-V softcores की एक नजर में तुलना करने वाला overview मिले
    जैसे कि वे open source हैं या नहीं, CoreMark score कितना है, size कितना है
    neorv, serv, vexrisc, nios v, microblaze v आदि

  • क्या कोई development kit है जिससे इसे आजमाया जा सके? शुरुआत कैसे करें?

    • linked लेख पढ़ लें: https://docs.xilinx.com/v/u/en-US/microblaze-quick-start-gui...
      यह Xilinx FPGA design है, इसलिए Xilinx development board से शुरू करना सही है
    • beginner boards यहां मिल सकते हैं. कीमत 150 डॉलर से लेकर करीब 4000 डॉलर तक है
      https://www.xilinx.com/products/boards-and-kits/cost-optimiz...
    • मैं कोई भी सस्ता Xilinx board चुनूंगा जो MicroBlaze soft CPU को support करता हो
      अगर जरूरत सिर्फ RISC-V softcore की है, तो Xilinx ecosystem के बाहर भी कई options हैं. निजी तौर पर मैं ऐसे boards पसंद करता हूं जिन्हें yosys/nextpnr अच्छी तरह support करते हैं
      0. https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards
  • यह पहला कदम है, और अच्छा संकेत है
    हालांकि 32-bit core के बजाय 64-bit core होता तो बेहतर था. क्योंकि 64-bit RISC-V assembly code path लिखने पर उसे desktop, server, embedded में सच में reuse किया जा सकता है

    • “पहला कदम” नहीं है. यह पहले से चल रहे कई कदमों में से एक है
      अगर आपको 64-bit core चाहिए, तो लगता है आप target market में नहीं हैं
      64-bit RISC-V assembly को desktop, server, embedded में reuse करना भी realistic नहीं है. desktop और server असल में लगभग 64-bit-only हैं, और embedded में ज्यादातर 32-bit cores होते हैं, इसलिए overlap ज्यादा नहीं है
      32-bit और 64-bit के फर्क के अलावा, programming environment भी काफी अलग होता है—system complexity, boot process, बाहर की दुनिया से interact करने का तरीका वगैरह
      संक्षेप में, target device चुनना होगा और उसी के हिसाब से code लिखना होगा. अगर कई तरह के devices के बीच आसानी से port करना चाहते हैं, तो assembly के बजाय किसी दूसरी language में लिखना बेहतर है