3 điểm bởi GN⁺ 2023-11-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • AMD MicroBlaze V là IP bộ xử lý soft core RISC-V dùng cho AMD adaptive SoC và FPGA, được tích hợp vào luồng thiết kế Vivado và Vitis
  • Nhắm tới việc tận dụng hệ sinh thái mã nguồn mở và khả năng di chuyển phần mềm dựa trên RISC-V ISA, đồng thời giữ tương thích phần cứng với các thiết kế MicroBlaze hiện có
  • Có thể cấu hình tập lệnh cơ sở RV32I·RV64I và tùy chọn các phần mở rộng M/A/F/C cùng các phần mở rộng thao tác bit ZBa, ZBB, ZBc, ZBs
  • Cung cấp các cấu hình preset từ vi điều khiển đến bộ xử lý ứng dụng, bao gồm 4 tùy chọn pipeline và các tính năng an toàn như dual-core lockstep, TMR
  • Có thể nhắm mục tiêu tới mọi thiết bị AMD adaptive SoC hoặc FPGA được Vivado Design Suite hỗ trợ mà không phát sinh thêm chi phí, tuy nhiên RV64I và Memory Protection Unit đang ở Early Access còn Memory Management Unit mới ở giai đoạn roadmap

Bộ xử lý mềm RISC-V cho AMD adaptive SoC và FPGA

  • AMD MicroBlaze V là IP bộ xử lý soft core RISC-V dành cho AMD adaptive SoC và FPGA
  • Dựa trên kiến trúc tập lệnh RISC-V (ISA), và cung cấp kiến trúc có thể cấu hình theo mô-đun để phù hợp với các ứng dụng hệ thống nhúng
  • Nhà phát triển có thể nhắm MicroBlaze V tới các thiết bị AMD adaptive SoC hoặc FPGA được Vivado Design Suite hỗ trợ mà không phát sinh thêm chi phí
  • RISC-V là ISA chuẩn mã nguồn mở do tổ chức phi lợi nhuận RISC-V Foundation quản lý, và AMD đã là thành viên từ năm 2020

Cấu hình RISC-V ISA và khả năng di chuyển

  • MicroBlaze V dựa trên ISA mã nguồn mở được hỗ trợ bởi hệ sinh thái phần mềm và giải pháp rộng khắp trong ngành
  • Mục tiêu thiết kế là giúp việc di chuyển phần cứng từ các thiết kế bộ xử lý MicroBlaze hiện có trở nên dễ dàng hơn, đồng thời nâng cao khả năng di chuyển phần mềm của các thiết kế RISC-V
  • Phạm vi hỗ trợ ISA có thể cấu hình:
    • Bộ lệnh số nguyên cơ sở RV32IRV64I
    • Phần mở rộng M cho phép nhân và chia
    • Phần mở rộng A cho các lệnh nguyên tử
    • Phần mở rộng F cho số thực dấu phẩy động
    • Phần mở rộng C cho nén mã
    • Các phần mở rộng ZBa, ZBB, ZBc, ZBs cho thao tác bit
  • Tính năng nén mã được dùng để giảm kích thước mã và tiết kiệm bộ nhớ thiết kế

Kiến trúc, hiệu năng và tính năng an toàn

  • Có thể chọn cấu hình preset phù hợp với nhiều dải ứng dụng, từ vi điều khiển đến bộ xử lý ứng dụng
  • Cung cấp 4 tùy chọn pipeline để tối ưu diện tích hoặc hiệu năng
  • Cũng bao gồm các biện pháp an toàn tùy chọn cho các hệ thống an toàn trọng yếu
    • Dual-core lockstep

      • Triple modular redundancy(TMR)

Luồng thiết kế dựa trên Vivado·Vitis và thiết bị ngoại vi

  • MicroBlaze V cung cấp luồng thiết kế được tích hợp vào Vivado Design SuiteVitis software tools
  • Tương thích với mọi AMD adaptive SoC và FPGA mà công cụ thiết kế Vivado hỗ trợ
  • Có thể sử dụng qua giao diện người dùng đồ họa (GUI) và giao diện dòng lệnh (CLI)
  • Có thể tận dụng IP tối ưu hóa để đặt hệ thống con bộ xử lý MicroBlaze V tích hợp bên trong programmable logic, với mục tiêu giảm số lượng thành phần hệ thống và thời gian phát triển
  • Các nhóm thiết bị ngoại vi chính có thể thêm bằng cách kéo thả:
    • 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

Cấu hình ví dụ, tài liệu và trạng thái hỗ trợ

  • Có hai cấu hình thiết kế mẫu là MicroBlaze V MicrocontrollerMicroBlaze V with Memory Protection Unit
  • Cấu hình MicroBlaze V Microcontroller

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

    • Toàn bộ các khối preset của Microcontroller
    • Instruction Cache
    • Memory Protection Unit

      • Data Cache
      • Memory Controller
  • Tài liệu và tài nguyên hỗ trợ

  • Trạng thái hỗ trợ

    • Microcontroller configuration được cung cấp ở mức Production
    • AMD MicroBlaze V với RV64IMemory Protection Unit đang ở Early Access
    • AMD MicroBlaze V với Memory Management Unit đang nằm trong roadmap

1 bình luận

 
GN⁺ 2023-11-05
Ý kiến trên Hacker News
  • Nếu không nhớ rằng AMD gần đây đã mua lại Xilinx thì có thể sẽ thấy khó hiểu
    Trong tương lai, nhiều khả năng các sản phẩm Xilinx mới sẽ mang tên AMD

    • Khó có thể xem đây là một sản phẩm mới ngẫu nhiên. Xilinx MicroBlaze là công nghệ đã hơn 20 năm tuổi, và là một trong những “softcore” thực thụ đầu tiên được phát triển cho FPGA
      Có thể xem đối trọng phía Intel là Altera NIOS II
  • Theo một bình luận trên Reddit [1], thứ này giống như gắn thêm bộ giải mã lệnh RISC-V vào phía trước MicroBlaze RTL hiện có
    Nếu nhìn từ góc độ “hãy tạo ra lõi RISC-V tốt nhất” thì có vẻ không hợp lý, nhưng mục tiêu của Xilinx/AMD vốn không phải như vậy
    MicroBlaze là một ví dụ điển hình về một CPU RISC thực thi tuần tự nhàm chán, nằm trong một ngách nhàm chán; với các hãng FPGA, softcore gần như là một sản phẩm mồi nhử. Nó giúp bán silicon, nhưng bản thân không kiếm ra tiền. Đây là công nghệ gần với “keo tích hợp” hơn là phần FPGA quyết định hiệu năng, nên “đủ tốt” là đủ
    Nếu AMD thực sự tái sử dụng MicroBlaze RTL, họ có thể giữ lại firmware hiện có (lõi, FPU, debug, ngoại vi, v.v.) và phần mềm (HAL, compiler, driver). Điều đó rất hấp dẫn cả với nhà cung cấp lẫn người dùng muốn chuyển sang lõi MicroBlaze mới một cách ít đau đớn
    1: https://old.reddit.com/r/FPGA/comments/17mdcyt/microblaze_go...

    • Người dùng Reddit đó có karma -5. Và trong bối cảnh việc triển khai một lõi RISC-V đơn giản từ đầu chỉ mất vài ngày, ý tưởng đó gần như chẳng hợp lý
      Tôi sẽ không dựa vào thông tin đó
      Tuy vậy, nó có cùng các giao diện bên ngoài như MicroBlaze hiện tại, nên xét từ góc độ phần cứng thì đúng là một lựa chọn thay thế có thể cắm thẳng vào thiết kế hiện có
    • Nói softcore là sản phẩm mồi nhử đối với các hãng FPGA thì chính xác. Những công nghệ kích hoạt như thế này tự thân không kiếm ra tiền, nên trong các công ty phần cứng chúng không được coi trọng
      Vì vậy các CEO tỷ phú của Xilinx và Altera sẽ lắc đầu tiếc nuối khi nghe Jensen Huang liên tục đổ tiền vào stack phần mềm của Nvidia. Rồi một ngày nào đó họ sẽ học được giá trị thật nằm ở đâu
  • Có ai giải thích được thông báo này quan trọng thế nào đối với RISC-V không?

    • Các nhà sản xuất FPGA lớn khác đã bắt đầu cung cấp lõi RISC-V được hỗ trợ chính thức như một lựa chọn thay thế cho các lõi dùng tập lệnh độc quyền của họ từ vài năm trước
      Tất nhiên cũng có rất nhiều lõi bên thứ ba trên GitHub được dùng, nhưng việc được tích hợp và hỗ trợ chính thức trong IDE và công cụ có ý nghĩa với nhiều khách hàng
      MicroSemi đã cung cấp softcore RISC-V từ năm 2017, và từ cuối năm 2020 cũng cung cấp hard core như PolarFire SoC. Ví dụ có BeagleBoard Fire mới, Icicle, v.v.
      Lattice công bố softcore RISC-V chính thức đầu tiên vào khoảng tháng 6/2020, công bố hợp tác với SiFive vào tháng 12/2019, và đến giữa năm 2021 cũng đưa ra các phiên bản cải tiến như lõi 800 LUT
      Intel giới thiệu Nios V vào tháng 10/2021
    • MicroBlaze là một lõi nằm trong quy mô số cổng mà RISC-V đang tích cực lấn vào
      Những thứ như Tensilica, ARC cũng đã mất nhiều giá trị gia tăng trong lĩnh vực này. Từ góc nhìn của người đã trực tiếp port kernel lên MicroBlaze, đây là một RISC pipeline cổ điển ở tầm khoảng 20.000 cổng, nằm đâu đó giữa MIPS và SH4
      Phần thú vị nhất trong thông báo này là AMD/Xilinx đã đi sâu đến mức tái định nghĩa chính thuật ngữ mang nhãn hiệu “MicroBlaze”, thay vì tạo tên mới và tiếp tục hỗ trợ các bản cập nhật MicroBlaze hiện có
    • Trước đây SiFive có một lõi RV32 có thể đưa vào Artix-7, nhưng nó khá cơ bản
      I/O thì rời rạc, và cũng không dùng được DRAM tích hợp trên bo mạch. Nếu có thể thấy một softcore RV32 được hỗ trợ chính thức trên Artix-7 thì sẽ rất tuyệt
      Trước đây tôi từng dùng MicroBlaze khá ổn, nhưng nó rất khép kín nên ngoài thử nghiệm hoặc giáo dục thì tôi không nghĩ đến việc dùng nó. Tôi không phải người cuồng RISC-V, nhưng nó phù hợp với lĩnh vực này. Kiểu như: “chúng tôi cung cấp công cụ dùng một tập lệnh mà có thể bạn đã đầu tư vào, và sẽ không cố trói bạn cả vào toolchain của phía đó”
      Việc AMD/Xilinx trói buộc ở tầng bên dưới tập lệnh thì ở mức nào đó còn chấp nhận được. Dù sao bạn nhiều khả năng vẫn phải trả chi phí phần cứng, dù là mua FPGA hay mua một linh kiện trong catalog có thể xuất hiện vào một ngày nào đó
    • Xilinx là một nhà sản xuất FPGA khá lớn, và MicroBlaze cung cấp khá tốt các tính năng chịu lỗi, bao gồm TMR
      Bản thân TMR trong RISC-V không phải điều mới, nhưng điều này có nghĩa là nhiều dự án đang dùng MicroBlaze và các dự án mới muốn dùng MicroBlaze giờ có thể dùng RISC-V
    • Nó là vi điều khiển nhưng cũng có thể hoạt động như một CPU thời gian thực
      RISC-V vốn đã khá phổ biến trong thị trường đó
  • Tôi tò mò trường hợp sử dụng của MicroBlaze V so với, chẳng hạn, SERV https://serv.readthedocs.io/en/latest/servant.html sẽ như thế nào
    Tức là, ngoài việc được nhà sản xuất chip phê duyệt chính thức, có vẻ lợi thế duy nhất MicroBlaze V mang lại là tốc độ. CPU FPGA thường được dùng cho các tác vụ không quá nhạy cảm về thời gian, đúng không? Tôi nghĩ mục đích là để FPGA fabric xử lý các tác vụ tốc độ cao, nhạy thời gian cùng với các giao diện I/O on-chip

    • Điểm cốt lõi là công cụ và hỗ trợ. Người dùng không muốn tự mày mò một softcore RISC-V, mà chỉ muốn nó chạy được và đã kết nối tốt với những thứ họ thực sự quan tâm
      MicroBlaze cho phép chọn nhiều tùy chọn cấu hình và ngoại vi rồi kéo-thả để, theo đúng nghĩa đen, cấu hình softcore của riêng mình. Nó cũng bao gồm SDK cho ứng dụng người dùng và công cụ debug để tìm nguyên nhân vấn đề
      Nếu phát triển với SERV, chỉ riêng vì công cụ kém trưởng thành hơn thì thời gian phát triển lâu hơn vài bậc độ lớn cũng không có gì đáng ngạc nhiên
  • Việc có softcore mới là tốt, nhưng không hiểu có cần phải làm bẩn thêm không gian tên không
    MicroBlaze vốn đã là tên của một kiến trúc mà ai đó có thể tìm kiếm
    Đáng lẽ cứ gọi kiểu AMDcoreV là được

    • Đúng vậy. MicroBlaze là tên kiến trúc do AMD sở hữu, và theo bài viết thì core này tương thích với nó

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

    • Giao diện nhìn từ HDL thì giống nhau. Trong khi đó, về phía phần mềm, nó là tập lệnh RISC-V đang nhanh chóng trở thành hệ sinh thái mạnh nhất
      Chỉ cần biên dịch lại là được, và lần này không phải xử lý những công cụ chất lượng thấp, nghèo nàn, độc quyền và tùy biến riêng nữa, mà có thể dùng các công cụ chuẩn ngành đáng tin cậy như gcc, binutils, llvm
    • Đây là Xilinx MicroBlaze mới. Tức là chuyển từ một tập lệnh kiểu AVR sang RV32
    • Không phải đang nói đến kiến trúc MicroBlaze mà AMD sở hữu sau khi mua lại Xilinx sao?
    • Dù sao thì có hậu tố MicroBlaze V vẫn đỡ hơn là dùng trơn không hậu tố
  • Có thứ tương đương PSP hay ME bên trong không? Tôi đã quá chán những CPU hộp đen đáng ngờ, không an toàn và không thể vá lỗi rồi

  • Bản thân core có mã nguồn mở không?

    • Nhiều khả năng là không, nhưng AMD nói có thể dùng miễn phí trên bất kỳ FPGA AMD(Xilinx) nào
      Nếu phải trả phí sử dụng thì đã có các lựa chọn thay thế miễn phí, nên thông báo này hẳn đã không đáng quan tâm
      Có thể xem core này đã được tối ưu tốt để dùng hiệu quả tài nguyên FPGA của Xilinx, và đó có lẽ là lợi thế so với các lựa chọn thay thế
    • Có thể không phải giấy phép mã nguồn mở, nhưng mã nguồn của core MicroBlaze trước đây từng được đưa vào bộ công cụ phát triển và chỉ bị làm rối nhẹ
      Thậm chí họ còn không xóa các chú thích trong mã nguồn
  • Giá mà có một tổng quan so sánh nhanh các softcore RISC-V này thì tốt
    Chẳng hạn chúng có mã nguồn mở không, điểm CoreMark khoảng bao nhiêu, kích thước thế nào
    neorv, serv, vexrisc, nios v, microblaze v, v.v.

  • bộ kit phát triển nào để thử cái này không? Bắt đầu thế nào?

  • Đây là bước đầu tiên, và là một dấu hiệu tốt
    Tuy vậy, giá mà là core 64-bit thay vì core 32-bit thì tốt hơn. Vì nếu viết đường mã assembly RISC-V 64-bit thì thực sự có thể tái sử dụng trên desktop, server và embedded

    • Không phải “bước đầu tiên”. Nó đã là một trong nhiều bước rồi
      Nếu muốn core 64-bit thì có lẽ bạn không thuộc thị trường mục tiêu
      Việc tái sử dụng assembly RISC-V 64-bit trên desktop, server và embedded cũng không thực tế. Desktop và server về cơ bản chỉ dùng 64-bit, còn embedded phần lớn là core 32-bit nên phần giao nhau không nhiều
      Không chỉ khác biệt 32-bit và 64-bit, môi trường lập trình cũng khác đáng kể, như độ phức tạp hệ thống, quy trình khởi động, cách tương tác với bên ngoài, v.v.
      Tóm lại là phải chọn thiết bị mục tiêu rồi viết mã cho phù hợp. Nếu muốn dễ dàng chuyển giữa nhiều loại thiết bị, nên viết bằng ngôn ngữ khác thay vì assembly