- 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ở RV32I và RV64I
- 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 Suite và Vitis 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 Microcontroller và MicroBlaze 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ợ
- MicroBlaze V Processor Quick Start Guide: hướng dẫn quy trình tạo hệ thống bộ xử lý AMD MicroBlaze V cơ bản bằng thiết kế preset của bộ xử lý
- MicroBlaze V Processor Reference Guide: cung cấp thông tin về bộ xử lý mềm MicroBlaze V 32 bit và 64 bit trong AMD Vivado Design Suite
- MicroBlaze Debug Module V Product Guide: cung cấp đặc tả thiết kế lõi MDM V cho phép gỡ lỗi một hoặc nhiều bộ xử lý MicroBlaze V dựa trên JTAG
- Webinar: Getting Started with Zephyr® RTOS on the AMD MicroBlaze™ V Processor: đề cập tới thiết lập Zephyr, cấu hình và build ứng dụng cho mục tiêu MicroBlaze V
- Documentation: bộ sưu tập hướng dẫn người dùng và hướng dẫn sản phẩm cho MicroBlaze V
- Wiki: trình bày tính linh hoạt trong việc chọn kết hợp thiết bị ngoại vi, bộ nhớ và giao diện cần thiết
-
Trạng thái hỗ trợ
- Microcontroller configuration được cung cấp ở mức Production
- AMD MicroBlaze V với RV64I và Memory Protection Unit đang ở Early Access
- AMD MicroBlaze V với Memory Management Unit đang nằm trong roadmap
1 bình luận
Ý 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
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...
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ó
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?
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
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ó
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 đó
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
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
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
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
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?
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ế
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.
Có bộ kit phát triển nào để thử cái này không? Bắt đầu thế nào?
Vì đây là thiết kế FPGA của Xilinx, bắt đầu với bo mạch phát triển Xilinx là hợp lý
https://www.xilinx.com/products/boards-and-kits/cost-optimiz...
Nếu thứ cần chỉ là softcore RISC-V thì ngoài hệ sinh thái Xilinx cũng có nhiều lựa chọn. Cá nhân tôi thích các bo mạch được yosys/nextpnr hỗ trợ tốt
0. https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards
Đâ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
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