Dự án Trung Quốc nhằm mục đích chạy mã RISC-V trên bộ xử lý AMD Zen
Tháng trước, một nhóm nghiên cứu bảo mật của Google đã phát hành công cụ Zentool có khả năng chỉnh sửa vi mã của vi xử lý AMD dựa trên kiến trúc Zen. Mặc dù đây là một lỗ hổng bảo mật, nhưng một số người coi đây là cơ hội. Các thành viên của Dự án Jiachen của Trung Quốc đang tổ chức một cuộc thi nhằm phát triển vi mã cho CPU hiện đại dựa trên Zen của AMD để cho phép chúng thực thi các chương trình RISC-V một cách natively.
Mục tiêu cuối cùng có thể là xây dựng một CPU RISC-V tối ưu sử dụng silicon hiện có. X86 là kiến trúc tập lệnh phức tạp (CISC) được phát triển cách đây khoảng 48 năm. Tuy nhiên, các lõi x86 hiện đại chủ yếu dựa vào các động cơ độc quyền chạy trên kiến trúc tập lệnh RISC để xử lý các lệnh phức tạp. Các kiến trúc RISC nội bộ này không được công bố, nhưng có thể tương tự như các kiến trúc RISC nổi tiếng như Arm hoặc RISC-V.
Microcode CPU là lớp cấp thấp chuyển đổi các lệnh x86 CISC phức tạp thành các lệnh nội bộ đơn giản giống như RISC mà phần cứng CPU thực thi. Microcode này thường chỉ có thể được thay đổi bởi nhà cung cấp CPU, nhưng một số bộ phận của microcode Zen 1234 của AMD có thể được chỉnh sửa bằng công cụ Zentool. Các thành viên của Dự án Jianchen muốn tìm người có thể sửa đổi microcode CPU Zen của AMD trên bộ vi xử lý hiện đại, chẳng hạn như dòng EPYC 9004, để thực thi các tệp nhị phân RISC-V.
Bản vá dự kiến sẽ cho phép thực thi trực tiếp các chương trình RISC-V hoặc tăng đáng kể tốc độ thực thi so với mô phỏng trên cùng phần cứng. Cần kiểm tra bằng các phiên bản RISC-V của các benchmark như Coremark hoặc Dhrystone. Một bài nộp đầy đủ bao gồm các tệp nhị phân hoặc mã nguồn, tệp cấu hình, phụ thuộc và hướng dẫn kiểm tra. Nếu chỉ nộp tệp nhị phân trước hạn chót 6 tháng 6, mã nguồn tương ứng phải được thêm sau đó qua yêu cầu pull.
Người chiến thắng sẽ nhận được ¥20,000, khoảng 2,735 USD. Nghiên cứu viên của Google đã phát hành bộ công cụ cho phép khai thác lỗ hổng vi mã trong các chip Ryzen từ Zen 1 đến Zen 4. Chính phủ Trung Quốc đang chuyển hướng từ CPU x86 và Arm, tích cực thúc đẩy chip RISC-V. Các bộ xử lý EPYC 9004 của AMD và tương tự cung cấp hiệu suất và số lượng lõi không thể đạt được trên các bộ xử lý RISC-V hiện có, vì vậy việc thực thi các chương trình RISC-V độc quyền trên EPYC là một ý tưởng khả thi.
Microcode được thiết kế để sửa lỗi bên trong thay vì thay thế hoàn toàn ISA phía trước, và việc có thể viết lại microcode hoàn toàn hay không vẫn chưa rõ ràng, như đã được ghi chú bởi những người ở Ycombinator. Vào giữa những năm 2010, AMD đã dự định cung cấp cả CPU x86-64 và Armv8-A cho Zen, điều này được nhắc lại bởi Mike Clarke, kiến trúc sư chính của AMD, nên rất có khả năng có một microcode cho kiến trúc Zen 1 hỗ trợ ISA Aarch64 phía trước.
Các CPU Zen 1 có thể có nhiều lớp vi mã, một cho x86-64 và một cho Aarch64. Tuy nhiên, điều này khó xảy ra vì các CPU hiện đại đã được tối ưu hóa hiệu suất phần cứng rất kỹ lưỡng, bao gồm cả tối ưu hóa phần cứng giữa vi mã và phần còn lại của nhân. AMD hiếm khi phát triển vi mã hỗ trợ Aarch64 hoặc RISC-V cho các bộ vi xử lý Zen 234, do đó lớp vi mã của những CPU này chỉ hỗ trợ x86-64 và không đủ không gian vi mã để viết lại từ đầu.
Một người bình luận tên là Monocasa cho biết điều này không thể thực hiện được. Không có đủ mã vi mô có thể viết lại để làm điều đó, ngay cả khi sử dụng cách hack rất chậm. Hơn nữa, ngay cả khi tất cả mã vi mô có thể viết lại, mã vi mô chỉ là một phương thức dự phòng trên các lõi x86 hiện đại, trong khi đường dẫn nhanh được lập trình cứng cho việc giải mã các lệnh x86. Thậm chí, việc giải mã và nhảy mã vi mô cũng được lập trình cứng cho các định dạng lệnh x86.
Ngay cả khi không phải như vậy, các micro-ops cũng rất không phải RISC. Một người bình luận chỉ trích định dạng cuộc thi, cho rằng đây là cách để hoàn thành công việc phức tạp với mức thù lao dưới 3.000. Nhìn chung, mặc dù ý tưởng về microcode có thể ghi lại lại rất thú vị và kích thích thảo luận về các thiết kế CPU thay thế, hỗ trợ đa ISA và tối ưu hóa cấp thấp, nhưng có vẻ như cuộc thi sẽ không đạt được mục tiêu đã đề ra.
Có lẽ việc viết lại hoặc biên soạn lại một hoặc hai chương trình RISC-V cho CPU x86 sẽ hợp lý hơn.
Nguồn: www.tomshardware.com/pc-components/cpus/google-tool-spurs-contest-to-run-risc-v-on-amd-zen-cpus-but-is-it-possible