3 poin oleh GN⁺ 2023-11-05 | 1 komentar | Bagikan ke WhatsApp
  • AMD MicroBlaze V adalah IP prosesor RISC-V softcore untuk digunakan di dalam AMD adaptive SoC dan FPGA, terintegrasi dengan alur desain Vivado dan Vitis
  • Sambil mempertahankan kompatibilitas perangkat keras dengan desain MicroBlaze yang ada, prosesor ini menargetkan portabilitas perangkat lunak berbasis ISA RISC-V dan pemanfaatan ekosistem open source
  • Dapat mengonfigurasi set instruksi dasar RV32I·RV64I, serta memilih ekstensi M/A/F/C dan ekstensi manipulasi bit ZBa, ZBB, ZBc, ZBs
  • Menyediakan konfigurasi preset mulai dari mikrokontroler hingga prosesor aplikasi, serta mencakup 4 opsi pipeline dan fitur keselamatan seperti dual-core lockstep dan TMR
  • Dapat ditargetkan ke semua perangkat AMD adaptive SoC atau FPGA yang didukung Vivado Design Suite tanpa biaya tambahan, tetapi RV64I dan Memory Protection Unit masih Early Access, sementara Memory Management Unit berada pada tahap roadmap

Prosesor Soft RISC-V untuk AMD adaptive SoC dan FPGA

  • AMD MicroBlaze V adalah IP prosesor RISC-V softcore untuk AMD adaptive SoC dan FPGA
  • Berbasis arsitektur set instruksi (ISA) RISC-V, dan menyediakan arsitektur yang dapat dikonfigurasi secara modular untuk aplikasi sistem embedded
  • Developer dapat menargetkan MicroBlaze V ke perangkat AMD adaptive SoC atau FPGA yang didukung Vivado Design Suite tanpa biaya tambahan
  • RISC-V adalah ISA standar open source yang dikelola oleh organisasi nirlaba RISC-V Foundation, dan AMD telah menjadi anggotanya sejak 2020

Konfigurasi ISA RISC-V dan Portabilitas

  • MicroBlaze V berbasis ISA open source yang didukung oleh ekosistem perangkat lunak dan solusi di seluruh industri
  • Tujuan desainnya adalah memudahkan migrasi perangkat keras dari desain prosesor MicroBlaze yang sudah ada, serta meningkatkan portabilitas perangkat lunak untuk desain RISC-V
  • Cakupan dukungan ISA yang dapat dikonfigurasi:
    • RV32I dan RV64I Base Integer Instruction Set
    • Ekstensi M untuk perkalian dan pembagian
    • Ekstensi A untuk instruksi atomik
    • Ekstensi F untuk floating point
    • Ekstensi C untuk kompresi kode
    • Ekstensi ZBa, ZBB, ZBc, ZBs untuk manipulasi bit
  • Fitur kompresi kode digunakan untuk mengurangi ukuran kode dan menghemat memori desain

Arsitektur, Performa, dan Fitur Keselamatan

  • Tersedia pilihan konfigurasi preset yang disesuaikan untuk berbagai cakupan aplikasi, mulai dari mikrokontroler hingga prosesor aplikasi
  • Menyediakan 4 opsi pipeline untuk optimasi area atau performa
  • Juga mencakup mekanisme keselamatan opsional untuk sistem yang kritis terhadap keselamatan
    • Dual-core lockstep

      • Triple modular redundancy(TMR)

Alur Desain Berbasis Vivado·Vitis dan Periferal

  • MicroBlaze V menyediakan alur desain yang terintegrasi dengan Vivado Design Suite dan Vitis software tools
  • Kompatibel dengan semua AMD adaptive SoC dan FPGA yang didukung alat desain Vivado
  • Dapat digunakan melalui antarmuka pengguna grafis (GUI) dan antarmuka command-line (CLI)
  • Dengan memanfaatkan IP yang dioptimalkan, subsistem prosesor MicroBlaze V terintegrasi dapat ditempatkan di dalam programmable logic, dengan tujuan mengurangi jumlah komponen sistem dan waktu pengembangan
  • Kategori periferal utama yang dapat ditambahkan dengan metode drag-and-drop:
    • 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

Contoh Konfigurasi, Dokumentasi, dan Status Dukungan

  • Contoh konfigurasi desain terdiri dari dua jenis: MicroBlaze V Microcontroller dan MicroBlaze V with Memory Protection Unit
  • Konfigurasi MicroBlaze V Microcontroller

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

    • Seluruh Microcontroller Preset Blocks
    • Instruction Cache
    • Memory Protection Unit

      • Data Cache
      • Memory Controller
  • Dokumentasi dan Sumber Daya Dukungan

  • Status Dukungan

    • Microcontroller configuration tersedia sebagai Production
    • AMD MicroBlaze V dengan RV64I dan Memory Protection Unit berstatus Early Access
    • AMD MicroBlaze V dengan Memory Management Unit berada dalam roadmap

1 komentar

 
GN⁺ 2023-11-05
Komentar Hacker News
  • Bisa membingungkan jika tidak ingat bahwa AMD baru-baru ini mengakuisisi Xilinx
    Ke depannya, kemungkinan akan makin sering ada produk Xilinx baru yang memakai nama AMD

    • Sulit dianggap sebagai produk baru yang benar-benar acak. Xilinx MicroBlaze adalah teknologi yang sudah berusia lebih dari 20 tahun, dan merupakan salah satu soft core “asli” awal yang dikembangkan untuk FPGA
      Padanan di kubu Intel kurang lebih adalah Altera NIOS II
  • Menurut komentar Reddit [1], ini pada dasarnya seperti menempelkan dekoder instruksi RISC-V di bagian depan RTL MicroBlaze yang sudah ada
    Dari sudut pandang “mari buat core RISC-V terbaik”, ini tampak tidak masuk akal, tetapi memang itu bukan tujuan Xilinx/AMD sejak awal
    MicroBlaze adalah contoh bagus dari CPU RISC eksekusi berurutan yang membosankan untuk ceruk yang membosankan, dan bagi vendor FPGA, soft core itu semacam produk umpan. Ia membantu menjual silikon, tetapi tidak menghasilkan uang dengan sendirinya. Ini lebih seperti “lem integrasi” daripada area FPGA yang menentukan performa, jadi “cukup bagus” memang sudah cukup
    Jika AMD benar-benar memakai ulang RTL MicroBlaze, mereka bisa mempertahankan firmware yang ada (core, FPU, debug, periferal, dll.) dan perangkat lunaknya (HAL, compiler, driver). Ini sangat menarik baik dari sisi pemasok maupun dari sisi pengguna yang ingin beralih ke core MicroBlaze baru tanpa rasa sakit
    1: https://old.reddit.com/r/FPGA/comments/17mdcyt/microblaze_go...

    • Pengguna Reddit itu punya karma -5. Dan idenya sendiri hampir tidak masuk akal, mengingat mengimplementasikan core RISC-V sederhana dari nol bisa dilakukan hanya dalam beberapa hari
      Saya tidak akan bergantung pada informasi itu
      Meski begitu, ia memang punya antarmuka eksternal yang sama seperti MicroBlaze lama, jadi dari sudut pandang perangkat keras, ini tetap merupakan pengganti yang bisa langsung disisipkan ke desain lama
    • Benar bahwa bagi vendor FPGA, soft core adalah produk umpan. Teknologi pendukung seperti ini tidak menghasilkan uang dengan sendirinya, sehingga tidak dianggap bernilai oleh perusahaan perangkat keras
      Itulah sebabnya para CEO miliarder Xilinx dan Altera mungkin menggeleng prihatin saat mendengar Jensen Huang terus mengucurkan uang ke software stack Nvidia. Suatu hari nanti mereka akan belajar di mana nilai yang sebenarnya berada
  • Bisa jelaskan seberapa penting pengumuman ini bagi RISC-V?

    • Vendor FPGA besar lainnya sudah mulai menawarkan core RISC-V dengan dukungan resmi sebagai alternatif untuk core instruction set milik mereka sendiri sejak beberapa tahun lalu
      Tentu saja, banyak juga core pihak ketiga dari GitHub yang dipakai, tetapi integrasi resmi dan dukungan di IDE serta toolchain sangat berarti bagi banyak pelanggan
      MicroSemi sudah menyediakan soft core RISC-V sejak 2017, dan sejak akhir 2020 juga menyediakan hard core seperti PolarFire SoC. Contohnya BeagleBoard Fire baru, Icicle, dan lain-lain
      Lattice mengumumkan soft core RISC-V resmi pertamanya sekitar Juni 2020, telah mengumumkan kolaborasi dengan SiFive pada Desember 2019, dan pada pertengahan 2021 juga merilis versi yang ditingkatkan seperti core 800 LUT
      Intel memperkenalkan Nios V pada Oktober 2021
    • MicroBlaze adalah core yang berada pada skala jumlah gerbang yang sedang secara aktif digerus oleh RISC-V
      Hal-hal seperti Tensilica dan ARC juga telah kehilangan banyak nilai tambah di area ini. Dari pengalaman saya yang pernah mem-porting kernel langsung ke MicroBlaze, ini kurang lebih adalah RISC berpipeline klasik di kisaran 20 ribu gerbang, berada di antara MIPS dan SH4
      Bagian paling menarik dari pengumuman ini adalah bahwa AMD/Xilinx masuk cukup dalam sampai-sampai mereka mendefinisikan ulang istilah bermerek “MicroBlaze” itu sendiri, alih-alih membuat nama baru dan tetap mendukung pembaruan MicroBlaze lama
    • Dulu SiFive punya core RV32 yang bisa muat di Artix-7, tetapi levelnya cukup dasar
      I/O-nya tidak seragam, dan DRAM bawaan papan pun tidak bisa dipakai. Akan keren jika ada soft core RV32 dengan dukungan resmi di Artix-7
      Saya dulu cukup sering memakai MicroBlaze dan sebenarnya lumayan bagus, tetapi sangat tertutup sehingga saya tidak pernah terpikir memakainya untuk hal lain selain pengujian atau pendidikan. Saya bukan pendukung fanatik RISC-V, tetapi untuk area seperti ini, ia memang cocok. Karena idenya adalah “kami menyediakan alat yang memakai instruction set yang mungkin sudah Anda investasikan, dan kami tidak akan berusaha mengunci Anda ke toolchain kami juga”
      Jika AMD/Xilinx ingin mengunci pengguna di lapisan bawah instruction set, saya masih bisa menerimanya sampai batas tertentu. Bagaimanapun juga, entah membeli FPGA atau komponen katalog yang mungkin suatu hari akan muncul, kemungkinan besar Anda tetap harus membayar biaya perangkat keras
    • Xilinx adalah produsen FPGA yang cukup besar, dan MicroBlaze menyediakan fitur toleransi kesalahan yang lumayan baik, termasuk TMR
      TMR sendiri bukan hal baru di RISC-V, tetapi artinya banyak proyek yang sudah memakai MicroBlaze, serta proyek baru yang ingin memakai MicroBlaze, sekarang bisa memakai RISC-V
    • Ia bisa menjadi mikrokontroler sekaligus CPU real-time
      RISC-V sudah cukup populer di pasar itu
  • Saya penasaran seperti apa posisi penggunaan MicroBlaze V dibandingkan, misalnya, SERV https://serv.readthedocs.io/en/latest/servant.html
    Maksudnya, selain persetujuan resmi dari pembuat chip, satu-satunya kelebihan unik MicroBlaze V tampaknya adalah kecepatan. Bukankah CPU FPGA biasanya dipakai untuk pekerjaan yang tidak terlalu sensitif terhadap waktu? Untuk pekerjaan cepat dan sensitif waktu, bukankah tujuannya justru agar fabric FPGA yang menanganinya bersama antarmuka I/O on-chip?

    • Intinya adalah alat dan dukungan. Yang diinginkan bukan mengutak-atik soft core RISC-V sendiri, melainkan sesuatu yang langsung bekerja dan sudah terhubung dengan baik ke hal-hal yang benar-benar penting
      MicroBlaze memungkinkan Anda memilih berbagai opsi konfigurasi dan periferal, lalu secara drag-and-drop benar-benar menyusun soft core Anda sendiri. Termasuk juga SDK untuk aplikasi pengguna dan alat debug untuk mencari akar masalah
      Jika mengembangkan dengan SERV, tidak akan mengejutkan bila waktu pengembangannya memakan beberapa orde magnitudo lebih lama hanya karena kematangan alatnya masih rendah
  • Munculnya softcore baru memang bagus, tapi rasanya tidak perlu sampai mengotori namespace
    MicroBlaze sudah merupakan nama arsitektur yang bisa dicari orang
    Harusnya cukup diberi nama seperti AMDcoreV

    • Betul. MicroBlaze adalah nama arsitektur yang dimiliki AMD, dan menurut artikelnya, core ini kompatibel dengannya

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

    • Antarmuka dari sudut pandang HDL tetap sama. Sementara di sisi perangkat lunak, ini adalah instruction set RISC-V yang sedang tumbuh cepat menjadi ekosistem terkuat
      Tinggal kompilasi ulang, dan kali ini bisa memakai alat standar industri yang tepercaya seperti gcc, binutils, llvm tanpa harus berurusan dengan tool yang lemah, proprietari, dan kustom berkualitas rendah
    • Ini adalah Xilinx MicroBlaze yang baru. Berpindah dari instruction set mirip AVR ke RV32
    • Maksudnya arsitektur MicroBlaze yang dimiliki AMD lewat akuisisi Xilinx itu, kan?
    • Tetap lebih baik karena namanya MicroBlaze V daripada dipakai begitu saja tanpa akhiran
  • Apakah ada komponen semacam PSP atau ME di dalamnya? Saya sudah muak dengan CPU black box yang mencurigakan, tidak aman, dan bahkan tidak bisa ditambal

  • Apakah core ini sendiri open source?

    • Kemungkinan besar tidak, tetapi AMD mengatakan ini bisa dipakai gratis di FPGA AMD(Xilinx) mana pun
      Kalau harus bayar lisensi, saya tidak akan tertarik dengan pengumuman ini karena sudah ada alternatif gratis
      Bisa diasumsikan core ini dioptimalkan dengan baik untuk menggunakan sumber daya FPGA Xilinx secara efisien, dan itu kemungkinan menjadi keunggulannya dibanding alternatif lain
    • Mungkin bukan berlisensi open source, tetapi kode sumber core MicroBlaze sebelumnya disertakan dalam kit pengembangan dan hanya diobfusksi ringan
      Bahkan komentar dalam kode sumbernya pun tidak dihapus
  • Akan bagus kalau ada ikhtisar yang membandingkan softcore RISC-V seperti ini dalam satu tempat
    Misalnya apakah open source, berapa skor CoreMark-nya, seberapa besar ukurannya, dan sebagainya
    neorv, serv, vexrisc, nios v, microblaze v, dll.

  • Apakah ada kit pengembangan untuk mencoba ini? Bagaimana cara memulainya?

  • Ini adalah langkah awal, dan pertanda baik
    Hanya saja akan lebih baik kalau ini core 64-bit daripada core 32-bit. Soalnya jika menulis jalur kode assembly RISC-V 64-bit, itu benar-benar bisa dipakai ulang di desktop, server, dan embedded

    • Ini bukan “langkah awal”. Ini sudah salah satu dari banyak langkah
      Kalau menginginkan core 64-bit, kemungkinan Anda memang bukan target pasarnya
      Gagasan memakai ulang assembly RISC-V 64-bit di desktop, server, dan embedded juga tidak realistis. Desktop dan server pada praktiknya hampir selalu 64-bit, sedangkan embedded kebanyakan memakai core 32-bit, jadi irisan kesamaannya tidak banyak
      Bukan cuma berbeda 32-bit dan 64-bit, lingkungan pemrogramannya juga sangat berbeda dalam hal kompleksitas sistem, prosedur boot, dan cara berinteraksi dengan dunia luar
      Singkatnya, Anda harus memilih perangkat target lalu menulis kode yang sesuai untuk itu. Kalau ingin mudah dipindahkan antarberbagai jenis perangkat, sebaiknya gunakan bahasa lain, bukan assembly