
RISC-V – Một kỷ nguyên mới trong thiết kế hệ thống nhúng nhúng
Bài viết này đưa ra những lợi ích đằng sau mô hình phần cứng nguồn mở RISC-V, đồng thời phân tích về độ bền, tính di động và độ tin cậy của nó.
Ngày nay, các ứng dụng của RISC-V cho việc thiết kế hệ thống nhúng là không thể phủ nhận. Tổ chức RISC-V đã có hơn 100 công ty đứng sau kiến trúc tập lệnh RISC-V (ISA) miễn phí và mở, và số lượng thành viên của tổ chức này đang tăng nhanh khi ngày càng có nhiều công cụ, phần mềm, phần cứng và nhà cung cấp hệ điều hành tham gia. Với hệ sinh thái đang mở rộng, RISC-V cung cấp cho các nhà thiết kế phần mềm và phần cứng, đây được coi là một giải pháp thay thế thuyết phục cho các bộ xử lý nhúng hiện tại. Điều này sẽ mở ra một kỷ nguyên mới trong việc đổi mới bộ xử lý trong khi thiết kế nhúng.
Lý do RISC-V mở ra một kỷ nguyên mới được tóm gọn trong ba yếu tố chính: tuổi thọ, tính di động và độ tin cậy. Cả ba yếu tố này đều là những điểm khiến RISC-V trở nên đặc biệt hấp dẫn. Không giống như các kiến trúc bộ xử lý truyền thống thường bổ sung thêm hướng dẫn mới ở mỗi thế hệ, RISC-V cho phép các nhà thiết kế dựa vào một kiến trúc ISA cố định, giúp đảm bảo tuổi thọ lâu dài cho khoản đầu tư vào phần mềm của họ. Điều này đặc biệt hữu ích cho các ứng dụng nhúng, nơi yêu cầu cao về an toàn trong vận hành, dễ dàng được chứng nhận và có vòng đời sản phẩm kéo dài trong nhiều năm.
ISA Cố Định (Frozen ISA)
Để giúp RISC-V được sử dụng rộng rãi và cho phép thị trường tự định hình các cấu trúc bộ xử lý, nhóm kỹ sư của Đại học UC Berkeley, những người đứng sau RISC-V, đã "đóng băng" cấu trúc tập lệnh (ISA) ngay trước khi giới thiệu công nghệ này tại Hội nghị Hot Chips lần thứ 25 vào năm 2014. Khi tổ chức phi lợi nhuận RISC-V được thành lập vào năm 2015, các thành viên của tổ chức này đã đảm nhận nhiệm vụ định hướng sự phát triển tương lai của các tiêu chuẩn phần cứng/phần mềm và hệ sinh thái, đồng thời thúc đẩy việc áp dụng rộng rãi ISA.
Với cấu trúc tập lệnh cơ bản (base ISA) đã được cố định và các phần mở rộng tùy chọn được cung cấp, các nhà thiết kế có thể tạo ra các bộ xử lý phù hợp với các khối lượng công việc cụ thể của mình. Điều này giúp họ không phải phụ thuộc vào các thiết kế bộ xử lý tiêu chuẩn sẵn có trên thị trường vốn thường không linh hoạt và khó tùy chỉnh.
Hiện nay, nhiều hệ điều hành theo thời gian thực (RTOS) và hệ điều hành đầy đủ đã hỗ trợ RISC-V. Đặc biệt, RISC-V rất hấp dẫn trong các ứng dụng nhúng nhờ vào việc Linux đang ngày càng được sử dụng phổ biến. Điều này cho phép các nhà thiết kế nhanh chóng áp dụng ISA như một kiến trúc tiêu chuẩn mở mới, phù hợp để triển khai trực tiếp trên phần cứng. Tuy nhiên, ngay cả khi không sử dụng Linux, với cấu trúc cố định, tuổi thọ lâu dài, tính di động và độ tin cậy của RISC-V vẫn là những yếu tố quan trọng đáng để người dùng xem xét.
Các Phần Mở Rộng của RISC-V
Như đề cập ở trên, ISA cố định (Frozen ISA) có nghĩa là phần mềm chỉ cần được phát triển một lần và có thể chạy mãi mãi trên bất kỳ thiết bị RISC-V nào, miễn là thiết bị đó hỗ trợ các phần mở rộng (nếu có) được sử dụng. Các phần mở rộng chính là phương pháp duy nhất để thêm các lệnh mới vào ISA. Hiện tại, có 5 phần mở rộng đã được "đóng băng" (frozen), bao gồm:
• M: Hỗ trợ nhân và chia số nguyên.
• A: Hỗ trợ các lệnh nguyên tử (atomic instructions).
• F: Hỗ trợ số dấu phẩy động đơn chính xác (single-precision floating point).
• D: Hỗ trợ số dấu phẩy động kép chính xác (double-precision floating point).
• C: Hỗ trợ các lệnh nén (compressed instructions).
Những phần mở rộng này giúp tăng tính linh hoạt và hiệu suất của RISC-V, đồng thời vẫn giữ được tính ổn định của kiến trúc cơ bản.
Lợi ích của bộ xử lý RISC-V
Bộ xử lý RISC-V mang nhiều lợi ích trong cả việc thiết kế bộ xử lý và phát triển phần mềm nhờ mức độ dự đoán được và vô cùng đơn giản. Những lợi ích này được phân tích tích cụ thể như sau:
1. Tuổi thọ
Cấu trúc tập lệnh cố định của RISC-V (frozen ISA) mang đến một nền tảng thiết kế ổn định và đơn giản. Với ít hơn 50 lệnh trong kiến trúc cơ bản (base ISA), và kể cả khi tích hợp tất cả các phần mở rộng tiêu chuẩn, tổng số lệnh vẫn ít hơn 200. Điều này giúp mang lại:
• Giảm thiểu sự phức tạp: Bộ xử lý đơn giản hơn, tiết kiệm chi phí và năng lượng.
• Ổn định lâu dài: Không cần thay đổi kiến trúc chính, chỉ cần thêm các phần mở rộng khi cần thiết.
• Bảo vệ khoản đầu tư: Phần mềm được viết một lần có thể chạy mãi mãi trên bất kỳ bộ xử lý RISC-V nào hỗ trợ các phần mở rộng tương ứng.
Đây là yếu tố cực kỳ quan trọng đối với các sản phẩm có vòng đời dài, cần được hỗ trợ trong hàng thập kỷ. Đặc biệt, nó rất phù hợp với các ứng dụng yêu cầu chứng nhận nghiêm ngặt, nơi mà việc chỉnh sửa phần mềm là không thể.
2. Tính di động
Cùng với đó, RISC-V giúp các thiết kế dễ dàng đạt được sản lượng cao hơn. Ví dụ, một thiết kế có thể bắt đầu được triển khai trên FPGA với một lõi RISC-V mềm. Vì phần mềm hoàn toàn có thể hoạt động trên bất kỳ thiết bị nào có lõi RISC-V, các nhà thiết kế sẽ có một hệ thống xử lý không cần trả phí bản quyền với mã RTL (Register Transfer Level) sẵn sàng được triển khai vào phần cứng.
Các nhà thiết kế có thể tùy chỉnh, điều chỉnh và chuyển đổi thiết kế của họ sang nền tảng phù hợp nhất với sản phẩm. Nếu FPGA hiện tại cần được thay thế bằng một thiết bị thế hệ mới, không cần phải viết lại mã phần mềm. Mã RTL hiện có chỉ cần được điều chỉnh để chạy trên FPGA khác. Ngoài ra, nếu sản lượng cao, với cùng một mã nguồn RTL có thể được tùy chỉnh để sử dụng trên ASIC (mạch tích hợp ứng dụng riêng) mà không phải trả bất kỳ khoản phí bản quyền nào. Điều này không thể thực hiện được với các bộ xử lý loại ARM hoặc x86.
3. Độ tin cậy và an toàn
Sự linh hoạt của RISC-V cho phép tạo ra các giải pháp độc đáo, đặc biệt phù hợp với các thiết kế nhúng yêu cầu độ an toàn chức năng. Ví dụ, trong các hệ thống có nhiều lõi (cores) tương đương về mặt chức năng, được thiết kế tự động để đạt mức độ dự phòng (redundancy) cao nhất. Một trong các lõi này có thể là Microsemi Mi-V RV32IM, trong khi lõi khác có thể là một thiết kế nội bộ hoàn toàn khác nhưng vẫn tương đương về chức năng. RISC-V cũng cho phép linh hoạt hoàn toàn về mặt vi kiến trúc (microarchitecture). Vì vậy, một lõi có thể được trang bị các biện pháp bảo vệ chống sự cố đơn lẻ (SEU - Single Event Upset) cho bộ nhớ cache dữ liệu và lệnh. Nhiều kỹ thuật phòng ngừa an toàn khác cũng có thể được áp dụng vì RISC-V cho phép truy cập trực tiếp vào mã RTL.
Mặc dù các bộ xử lý Intel x86 và ARM đã rất phổ biến và sẽ còn được sử dụng lâu dài, nhưng RISC-V đang phát triển nhanh trong thị trường nhúng nhờ sự linh hoạt mà nó mang lại cho các nhà thiết kế.
Kiến trúc của RISC-V rất linh hoạt, cho phép tùy chỉnh để tăng tốc một số thao tác trong phần cứng hoặc tối ưu hóa cho các ứng dụng tiêu thụ ít năng lượng. Ngoài ra, nhà thiết kế có thể tự do sử dụng bất kỳ giao diện bus nào họ muốn, thay vì bị giới hạn bởi các giao diện bus do các nhà cung cấp truyền thống đưa ra.
Vì tập lệnh (ISA) của RISC-V được cố định và không thay đổi, nên các nhà thiết kế có thể tự do sáng tạo với bất kỳ biến thể nào trong vi kiến trúc. Điều này mang lại sự linh hoạt vượt trội so với các kiến trúc bộ xử lý truyền thống.
Kết luận
Với kiến trúc tập lệnh cố định (ISA), thiết kế đơn giản, dễ di chuyển và đáng tin cậy, RISC-V mang đến cho các nhà thiết kế một cách tiếp cận mới. Điều này giúp họ vượt qua những giới hạn của các bộ xử lý truyền thống và tạo ra những đột phá sáng tạo vượt bậc.