Bước tới nội dung

RISC-V

Bách khoa toàn thư mở Wikipedia
RISC-V
Nhà thiết kếUniversity of California, Berkeley
Bits32, 64, 128
Ra mắt2010
Phiên bản2.2
Kiến trúcRISC
LoạiLoad-store
EncodingVariable
BranchCompare-and-branch
EndiannessBi[1]
Mở rộngM, A, F, D, Q, C
OpenYes
Thanh ghi
General purpose16, 32 (including one always-zero register)
Floating point32 (optional)

RISC-V (phát âm là "risk-năm") là một kiến trúc tập lệnh (ISA) phần cứng mã nguồn mở dựa trên kiến trúc tập lệnh máy tính với tập lệnh đơn giản hóa (RISC).

Dự án bắt đầu từ năm 2010 tại Đại học California, Berkeley, nhưng nhiều người đóng góp là tình nguyện viên không liên kết với trường đại học.[2] Từ tháng 3 năm 2019, một phiên bản chính thức ISA 2.2 �cho chế độ người dùng (User mode), một phiên bản ISA nháp 1.10 cho chế độ đặc quyền (Privilege mode) và một phiên bản ISA 0.13.1 dành cho chế độ gỡ lỗi (Debug mode) được đưa ra.[3]

Nguyên mẫu bộ xử lý RISC-V, tháng 1 năm 2013

ISA mới có thể sử dụng thường rất đắt tiền. Các nhà thiết kế máy tính thường không đủ khả năng làm việc miễn phí. Ngoài ra, phát triển CPU đòi hỏi chuyên môn thiết kế trong một số chuyên ngành: logic kỹ thuật số điện tử, trình biên dịchhệ điều hành. Rất hiếm khi tìm thấy một nhóm như vậy bên ngoài một tổ chức kỹ thuật chuyên nghiệp. Các nhóm thường được trả từ tiền tính cho thiết kế của họ. Do đó, các nhà cung cấp thương mại cho các thiết kế máy tính, như ARM HoldingsCông nghệ MIPS tính phí bản quyền cho việc sử dụng các thiết kế, bằng sáng chếbản quyền của họ.[4][5]

Họ cũng thường yêu cầu các thỏa thuận không tiết lộ trước khi phát hành các tài liệu mô tả các ưu điểm và hướng dẫn chi tiết về thiết kế của họ. Trong nhiều trường hợp, họ không bao giờ mô tả lý do cho sự lựa chọn thiết kế của họ.

Chi phí và bí mật này làm cho việc phát triển phần cứng và phần mềm mới trở nên khó khăn hơn nhiều. Nó cũng ngăn chặn kiểm toán an ninh. Một kết quả khác là các bộ hướng dẫn máy tính đa năng hiện đại, chất lượng cao đã không được giải thích hoặc có sẵn ngoại trừ trong các môi trường học thuật.

RISC-V đã được bắt đầu để giải quyết những vấn đề này. Mục tiêu là tạo ra một ISA thực tế có nguồn mở, có thể sử dụng về mặt học thuật và trong bất kỳ thiết kế phần cứng hoặc phần mềm nào mà không có tiền bản quyền.[3][6] Ngoài ra, các lý do cho mọi phần của dự án được giải thích, ít nhất là rộng rãi. Các tác giả RISC-V là học giả nhưng có kinh nghiệm đáng kể trong thiết kế máy tính. RISC-V ISA là sự phát triển trực tiếp từ một loạt các dự án thiết kế máy tính hàn lâm. Nó được bắt nguồn một phần để hỗ trợ các dự án như vậy.[3][6]

Để giải quyết chi phí thiết kế, dự án bắt đầu như nghiên cứu học thuật được tài trợ bởi DARPA.[3] Để xây dựng một cộng đồng người dùng lớn, liên tục và do đó tích lũy các thiết kế và phần mềm, các nhà thiết kế RISC-V đã lên kế hoạch hỗ trợ nhiều ứng dụng thực tế: Thực hiện trong thế giới thực nhỏ, nhanh và năng lượng thấp,[3][7] mà không cần kiến trúc quá mức cho một kiến trúc vi mô cụ thể.[3][8][9][10] Nhu cầu về số lượng lớn người đóng góp là một phần lý do tại sao RISC-V được thiết kế để phù hợp với nhiều mục đích sử dụng.

Do đó, nhiều người đóng góp RISC-V coi dự án là một nỗ lực cộng đồng thống nhất.

Lịch sử

[sửa | sửa mã nguồn]

Người tiền nhiệm

[sửa | sửa mã nguồn]

Thuật ngữ RISC có từ khoảng năm 1980.[11] Trước đó, có một số quan điểm cho rằng các máy tính đơn giản hơn có thể có hiệu quả, nhưng các nguyên tắc thiết kế không được mô tả rộng rãi. Máy tính đơn giản, hiệu quả luôn được quan tâm trong học tập.

Các học giả đã tạo ra bộ lệnh RISC DLX cho phiên bản đầu tiên của Kiến Trúc Máy Vi Tính: Phân Tích Định Lượng (Computer Architecture: A Quantitative Approach) vào năm 1990. David Patterson là một tác giả, và sau đó đã hỗ trợ RISC-V. DLX được dành cho mục đích giáo dục; các học giả và người có sở thích đã thực hiện nó bằng cách sử dụng FPGA, nhưng nó không thành công về mặt thương mại thương mại.

Các CPU ARM, phiên bản 2 trở về trước, có bộ hướng dẫn miền công cộng và nó vẫn được Bộ trình dịch GNU (GCC) hỗ trợ, một trình biên dịch phần mềm miễn phí phổ biến. Ba lõi nguồn mở tồn tại cho ISA này, nhưng chúng chưa được sản xuất.[12][13]

OpenRISC là một ISA nguồn mở dựa trên DLX, với các thiết kế RISC liên quan. Nó được hỗ trợ đầy đủ với các triển khai GCC và Linux. Tuy nhiên, nó có ít triển khai thương mại.

Dùng trong đào tạo

[sửa | sửa mã nguồn]

Krste Asanović tại Đại học California, Berkeley, đã tìm thấy nhiều ứng dụng cho một hệ thống máy tính nguồn mở. Năm 2010, ông quyết định phát triển và xuất bản một dự án trong một "dự án ngắn ba tháng trong mùa hè". Kế hoạch là để giúp cả người dùng giáo dục và công nghiệp.[6] David Patterson tại Berkeley cũng hỗ trợ nỗ lực. Ban đầu, ông xác định các thuộc tính của Berkeley RISC,[11] và RISC-V là một trong những dự án nghiên cứu RISC hợp tác dài của ông. Ở giai đoạn này, sinh viên được cung cấp phần mềm ban đầu, mô phỏng và thiết kế CPU.[2]

Các tác giả RISC-V và tổ chức của họ ban đầu đã cung cấp các tài liệu ISA và một số thiết kế CPU theo giấy phép BSD, cho phép các tác phẩm phái sinh như các thiết kế chip RISC-V có thể mở và miễn phí, hoặc đóng và độc quyền.

Tài trợ ban đầu là từ DARPA.[3]

Foundation

[sửa | sửa mã nguồn]

Người dùng thương mại yêu cầu một hệ thống ổn định trước khi họ có thể sử dụng nó trong một sản phẩm có thể tồn tại nhiều năm. Để giải quyết vấn đề này, Tổ Chức RISC-V được thành lập để sở hữu, duy trì và xuất bản tài sản trí tuệ liên quan đến định nghĩa của RISC-V. Các tác giả và chủ sở hữu ban đầu đã từ bỏ quyền của họ đối với nền tảng.[14]

Tính đến năm 2019 Tổ chức này đã xuất bản các ấn phẩm tự do định nghĩa RISC-V và cho phép sử dụng không giới hạn của ISA cho cả thiết kế phần mềm và phần cứng. Tuy nhiên, chỉ những thành viên trả tiền của Tổ Chức RISC-V mới có thể bỏ phiếu để phê duyệt các thay đổi hoặc sử dụng logo tương thích đã đăng ký nhãn hiệu.[14]

Giải thưởng

[sửa | sửa mã nguồn]
  • 2017: Giải thưởng Lựa chọn của Nhà phân tích Linley Group cho Công nghệ tốt nhất (cho bộ hướng dẫn) [15]

Yêu cầu thúc đẩy

[sửa | sửa mã nguồn]

Các nhà thiết kế nói rằng tập lệnh là giao diện chính trong máy tính vì nó nằm giữa phần cứng và phần mềm. Nếu một tập lệnh tốt đã được mở, có sẵn để sử dụng cho tất cả, nó sẽ giảm đáng kể chi phí phần mềm bằng cách cho phép tái sử dụng nhiều hơn nữa. Nó cũng sẽ làm tăng sự cạnh tranh giữa các nhà cung cấp phần cứng, những người có thể sử dụng nhiều tài nguyên hơn cho thiết kế và ít hơn cho hỗ trợ phần mềm.[6]

Các nhà thiết kế khẳng định rằng các nguyên tắc mới đang trở nên hiếm hoi trong thiết kế tập lệnh, vì các thiết kế thành công nhất trong bốn mươi năm qua đã trở nên ngày càng giống nhau. Trong số những bản thất bại, hầu hết bị như vậy bởi vì các công ty tài trợ của họ thất bại về thương mại hóa, không phải vì các bộ hướng dẫn kém về mặt kỹ thuật. Vì vậy, một bộ hướng dẫn mở được thiết kế tốt được thiết kế bằng các nguyên tắc được thiết lập tốt sẽ thu hút sự hỗ trợ lâu dài của nhiều nhà cung cấp.[6]

Hầu hết các ISA mở trước đó đã sử dụng Giấy phép Công cộng GNU(GPL), khuyến khích người dùng mở các triển khai của họ để sao chép và sử dụng bởi những người khác.

Không giống như các thiết kế học thuật khác chỉ được tối ưu hóa để đơn giản hóa giải trình bày, các nhà thiết kế tuyên bố rằng tập lệnh RISC-V dành cho máy tính thực tế. Nó được cho là có các tính năng để tăng tốc độ máy tính, nhưng giảm chi phí và sử dụng năng lượng. Chúng bao gồm kiến trúc lưu trữ load, các mẫu bit để đơn giản hóa bộ ghép kênh trong CPU, điểm nổi dựa trên tiêu chuẩn đơn giản hóa, một thiết kế trung lập về mặt kiến trúc và đặt các bit quan trọng nhất tại một vị trí cố định để tăng tốc độ mở rộng dấu hiệu. Gia hạn dấu hiệu được cho là thường nằm trên đường thời gian quan trọng.[3]

Tập lệnh được thiết kế cho nhiều mục đích sử dụng. Nó hỗ trợ ba chiều rộng từ, 32, 64 và 128 bit, và một loạt các tập hợp con. Các định nghĩa của mỗi tập hợp con khác nhau một chút cho ba chiều rộng từ. Các tập hợp con hỗ trợ các hệ thống nhúng nhỏ, máy tính cá nhân, siêu máy tính với bộ xử lý vector và máy tính song song gắn trên giá kho.

Tập lệnh có chiều rộng thay đổi và có thể mở rộng để có thể thêm nhiều bit mã hóa. Không gian cho phiên bản kéo dài 128 bit của ISA được dành riêng vì 60 năm kinh nghiệm trong ngành đã chỉ ra rằng lỗi không thể phục hồi nhất trong thiết kế tập lệnh là thiếu không gian địa chỉ bộ nhớ. Tính đến năm 2016, ISA 128 bit vẫn chưa được xác định một cách cố ý, vì có quá ít kinh nghiệm thực tế với các hệ thống bộ nhớ lớn như vậy.[3] Có các đề xuất để thực hiện các hướng dẫn có độ rộng thay đổi lên tới 864 bit.[3][16]

RISC-V cũng hỗ trợ sử dụng học thuật của các nhà thiết kế. Sự đơn giản của tập hợp số nguyên cho phép các bài tập cơ bản của học sinh. Tập hợp con số nguyên là một phần mềm cho phép ISA đơn giản để điều khiển các máy nghiên cứu. ISA có độ dài thay đổi cho phép mở rộng cho cả bài tập và nghiên cứu của sinh viên.[3] Tập lệnh đặc quyền riêng biệt cho phép nghiên cứu hỗ trợ hệ điều hành mà không cần thiết kế lại trình biên dịch.[17] Tài sản trí tuệ mở của RISC-V cho phép các thiết kế của nó được xuất bản, tái sử dụng và sửa đổi.[3]

Phần mềm

[sửa | sửa mã nguồn]

Một vấn đề bình thường đối với một tập lệnh mới là thiếu thiết kế CPU và phần mềm. Cả hai vấn đề đều giới hạn khả năng sử dụng của nó và giảm việc áp dụng.[6]

Trang web RISC-V có thông số kỹ thuật cho các hướng dẫn người dùng và thông số sơ bộ cho bộ hướng dẫn đặc quyền cho mục đích chung, để hỗ trợ các hệ điều hành.[18]

Có một số thiết kế CPU RISC-V có nguồn mở, bao gồm Berkeley Out of Order Machine (BOOM - Máy Không Theo Thứ Tự) 64 bit,[19] 64 bit Rocket,[20] năm thiết kế CPU Sodor 32 bit từ Berkeley,[21] picorv32 của Clifford Wolf, Scr1 từ Syntacore, PULPino (Riscy và Zero-Riscy) từ ETH Zürich/Đại học Bologna,[22] và những bản khác. CPU Sodor ba giai đoạn xuất hiện apt cho một CPU nhúng nhỏ. Rocket có thể phù hợp với máy tính trung gian nhỏ gọn, công suất thấp như thiết bị cá nhân. BOOM sử dụng phần lớn cơ sở hạ tầng được tạo cho Rocket và có thể sử dụng được cho các máy tính cá nhân, siêu máy tính và quy mô kho. Cả picorv và Scr1 đều là các triển khai RV32IMC của đơn vị vi điều khiển 32 bit (MCU) trong Verilog. Các lõi trong PULPino triển khai một ISA RV32IMC đơn giản cho các bộ điều khiển vi mô (Zero-Riscy) hoặc một RV32IMFC mạnh hơn với các phần mở rộng DSP tùy chỉnh để xử lý tín hiệu nhúng.

Phần mềm thiết kế bao gồm một trình biên dịch thiết kế, Chisel,[23] có thể giảm các thiết kế thành Verilog để sử dụng trong các thiết bị. Trang web này bao gồm dữ liệu xác minh để thử nghiệm triển khai cốt lõi.

Các công cụ phần mềm RISC-V có sẵn bao gồm chuỗi công cụ Bộ trình dịch GNU (GCC) (với GDB, trình gỡ lỗi), chuỗi công cụ LLVM, trình giả lập OVPsim (và thư viện Mô hình bộ xử lý nhanh RISC-V), trình giả lập Spike và trình giả lập trong QEMU.

Hỗ trợ hệ điều hành tồn tại cho nhân Linux, FreeBSD và NetBSD, nhưng các hướng dẫn chế độ giám sát không được chuẩn hóa Tính đến ngày 14 tháng 3 năm 2019,[17] vì vậy hỗ trợ này là tạm thời. Port cho FreeBSD sơ bộ cho kiến trúc RISC-V đã được cập nhật vào tháng 2 năm 2016 và được port trong FreeBSD 11.0.[24][25] Các port của Debian[26]Fedora[27] đang ổn định. Một port của Das U-Boot cũng có sẵn.[28] UEFI Spec v2.7 đã xác định ràng buộc RISC-V và một port TianoCore đã được thực hiện bởi các kỹ sư HPE[29] và dự kiến sẽ được đưa lên luồng trên. Có một port sơ bộ của hạt nhân seL4.[30][31] Một trình giả lập tồn tại để chạy hệ thống RISC-V Linux trên trình duyệt web bằng JavaScript.[32] Hex Five đã phát hành Stack IoT bảo mật đầu tiên cho RISC-V với sự hỗ trợ FreeRTOS.[33]

Tiếp nhận

[sửa | sửa mã nguồn]

Thương mại

[sửa | sửa mã nguồn]
  • SiFive, một công ty được thành lập để phát triển phần cứng RISC-V, có các mẫu bộ xử lý được phát hành vào năm 2017.[34][35] Chúng bao gồm hệ thống lõi tứ RISC-V SoCa, SoC 64 bit.[36]
  • Syntacore,[37] một thành viên sáng lập của Tổ Chức RISC-V và là một trong những nhà cung cấp IP RISC-V thương mại đầu tiên, phát triển và cấp phép cho gia đình RISC-V IP kể từ năm 2015. Kể từ năm Tính đến năm 2018, dòng sản phẩm bao gồm tám lõi 32 và 64 bit, bao gồm lõi MCU mã nguồn mở SCR1.[38] SoC thương mại đầu tiên, dựa trên IP Syntacore đã được công nhận vào năm 2016.[39]
  • Công Ty Công Nghệ Andes (Andes Technology Corporation), thành viên sáng lập của Tổ Chức RISC-V[40] đã gia nhập liên minh vào năm 2016, đã phát hành hai lõi RISC-V đầu tiên vào năm 2017. Các lõi, N25 và NX25, đi kèm với một hệ sinh thái thiết kế hoàn chỉnh và một số lượng đối tác của RISC-V. Andes đang tích cực thúc đẩy sự phát triển của hệ sinh thái RISC-V và dự kiến sẽ phát hành một số sản phẩm RISC-V mới trong năm 2018.
  • Codasip và UltraSoC đã phát triển tài sản trí tuệ được hỗ trợ đầy đủ cho các SOC nhúng RISC-V kết hợp các lõi RISC-V của Codasip và IP khác với gỡ lỗi, tối ưu hóa và phân tích của UltraSoC.[41]
  • Imperas đã phát triển một nhóm các mô hình bộ xử lý nhanh cho các tập hợp con khác nhau của các biến thể RV RV32GC và RV64GC là một phần của phân phối giả lập chính xác tập lệnh OVPsim được sử dụng để phát triển phần mềm nhúng.
  • Công Nghệ GreenWaves (GreenWaves Technology) đã công bố tính khả dụng của GAP8, bộ điều khiển 32 bit 1 trình điều khiển với 8 lõi tính toán, SoC 32 bit và bảng nhà phát triển vào tháng 2 năm 2018. Ban phát triển GAPuino GAP8 của họ bắt đầu giao hàng vào tháng 5 năm 2018.[42][43][44]
  • Hex Five đã công bố tính khả dụng chung MultiZone Security (An Ninh Đa Khu Vực) - môi trường thực thi tin cậy RISC-V (TEE) đầu tiên bằng cách sử dụng RISC-V ISA tiêu chuẩn và các phần mở rộng chế độ đặc quyền.[45]
  • CloudBEAR là một công ty IP bộ xử lý phát triển lõi RISC-V của riêng mình cho một loạt các ứng dụng.[46]
  • IAR Systems đã phát hành phiên bản đầu tiên của IAR Embedded Workbench cho RISC-V, hỗ trợ các lõi và phần mở rộng RISC-V RV32 32 bit trong phiên bản đầu tiên. Các bản phát hành trong tương lai sẽ bao gồm hỗ trợ và hỗ trợ 64 bit cho bộ hướng dẫn cơ sở RV32E nhỏ hơn, cũng như các giải pháp bảo mật và chứng nhận an toàn chức năng.
  • Western Digital, vào tháng 2 năm 2019 đã công bố lõi RISC-V 32 bit có tên SweRV. SweRV có thiết kế đường ống siêu tốc 2 chiều và 9 tầng theo thứ tự. WD có kế hoạch sử dụng bộ xử lý dựa trên SweRV trong bộ điều khiển flash và SSD của họ và sẽ phát hành mã nguồn mở cho các bên thứ ba bắt đầu từ Q1 2019.[47]
  • Instant SoC của FPGA Cores tạo ra lõi RISC-V, các thiết bị ngoại vi và bộ nhớ trực tiếp từ C++.
  • Tập đoàn Alibaba, vào tháng 7 năm 2019 đã công bố bộ xử lý XuanTie 910 16 nhân 16 GHz 2,5 GHz, bộ xử lý RISC-V nhanh nhất cho đến nay[48]

Trong giai đoạn phát triển

[sửa | sửa mã nguồn]
  • Trung Tâm Cho Phát Triển Tin Học Cấp Cao (Centre for Development of Advanced Computing), Ấn Độ (C-DAC) đang phát triển một vi xử lý 64-bit Out-of-order Quadcore RISC-V.[49]
  • Viện Kỹ Thuật Ấn Độ Madras (Indian Institute of Technology Madras) đang phát triển sáu thiết kế CPU nguồn mở RISC-V cho sáu mục đích sử dụng khác nhau, từ CPU 32 bit nhỏ cho Internet vạn vật (IoT) đến CPU 64 bit lớn được thiết kế cho các máy tính quy mô kho như trang trại máy chủ dựa trên công nghệ RapidIO và Hybrid Memory Cube (Lập Phương Bộ Nhớ Ghép).[9][50]
  • Nvidia có kế hoạch sử dụng RISC-V để thay thế bộ xử lý Falcon (Chim Ưng) trên các mạch đồ họa GeForce của họ.[51]
  • ASTC đã phát triển CPU RISC-V cho các IC nhúng.[52]
  • lowRISC là một dự án phi lợi nhuận để thực hiện một hệ thống phần cứng SOC nguồn mở dựa trên RISC-V 64 bit.[53]
  • Phòng Thử Nhiệm Mát Vi Tính, Đại Học Cambridge, phối hợp với Dự Án FreeBSD, đã port hệ điều hành đó sang RISC-V 64-bit để sử dụng làm nền tảng nghiên cứu phần mềm-phần cứng.[25]
  • ETH ZurichĐại học Bologna đã hợp tác phát triển bộ xử lý RISC-V PULPino mã nguồn mở[54] như một phần của dự án Parallel Ultra-Low Power (PULP - Song Song Cực Hạ Năng Lượng) cho điện toán IoT tiết kiệm năng lượng.[55]
  • Công Nghệ Esperanto (Esperanto Technologies) thông báo rằng họ đang phát triển ba bộ xử lý dựa trên RISC-V: lõi hiệu suất cao ET-Maxion, Lõi tiết kiệm năng lượngET-Minion bộ xử lý đồ họa ET-Graphics.[56]

Thiết kế

[sửa | sửa mã nguồn]

Đối với các hệ thống RISC-V đơn giản, giảm chi phí, có một đề xuất sử dụng các bit của thanh ghi dấu phẩy động để thực hiện lệnh đơn song song, số học từ nhiều dữ liệu (SIMD). Điều này được sử dụng rộng rãi để tăng tốc đa phương tiện và xử lý tín hiệu số khác.[3] Tính đến năm 2016, ISA này không được xác định, nhưng có thể giống với các hướng dẫn đa phương tiện của PA-RISC: Tăng tốc đa phương tiện. Bên cạnh toán học 64 bit gốc, CPU PA-RISC MAX2 có thể thực hiện số học trên bốn mật khẩu 16 bit cùng một lúc, với một số phương thức tràn. Nó cũng có thể di chuyển các từ khóa con đến các vị trí khác nhau. MAX2 của PA-RISC đã được đơn giản hóa một cách có chủ ý. Nó thiếu hỗ trợ cho các từ khóa 8 bit hoặc 32 bit. Kích thước từ phụ 16 bit được chọn để hỗ trợ hầu hết các tác vụ xử lý tín hiệu số. Những hướng dẫn này không tốn kém để thiết kế và xây dựng. Tuy nhiên, họ đã tăng hiệu suất của CPU đối với các tác vụ xử lý tín hiệu số từ 48 lần trở lên, cho phép các codec video thời gian thực thực tế vào năm 1995.[57][58]

Bộ vector

[sửa | sửa mã nguồn]

Bộ hướng dẫn xử lý vector được đề xuất có thể làm cho bộ SIMD đóng gói bị lỗi thời. Các nhà thiết kế hy vọng có đủ sự linh hoạt để CPU có thể thực hiện các hướng dẫn vector trong các thanh ghi của bộ xử lý tiêu chuẩn. Điều này sẽ cho phép thực hiện tối thiểu với hiệu suất tương tự như một ISA đa phương tiện, như trên. Tuy nhiên, một bộ đồng xử lý vector thực sự có thể thực thi cùng một mã với hiệu suất cao hơn.[59]

Tính đến ngày 29 tháng 6 năm 2015, đề xuất xử lý vector là một thiết kế linh hoạt, bảo thủ của bộ xử lý vector có độ chính xác hỗn hợp cho mục đích chung, phù hợp để thực hiện các hạt nhân tính toán. Mã sẽ chuyển dễ dàng đến các CPU có độ dài vector khác nhau, lý tưởng mà không cần biên dịch lại.[59]

Ngược lại, các phần mở rộng SIMD vector ngắn ít thuận tiện hơn. Chúng được sử dụng trong x86, ARMPA-RISC. Trong đó, thay đổi độ rộng từ buộc thay đổi tập lệnh để mở rộng các thanh ghi vector (trong trường hợp x86, từ các thanh ghi MMX 64 bit sang phần mở rộng SIMD truyền phát 128 bit (SSE), sang nâng cao 256 bit phần mở rộng vector (AVX) và AVX-512). Kết quả là một tập lệnh đang phát triển và cần chuyển mã làm việc sang các hướng dẫn mới.

Trong ISA vector RISC-V, thay vì sửa độ dài vector trong kiến trúc, một lệnh (setvl) có sẵn trong đó có kích thước được yêu cầu và đặt độ dài vector ở mức tối thiểu của giới hạn phần cứng và kích thước được yêu cầu. Vì vậy, đề xuất RISC-V giống như thiết kế vector dài của Cray. Nghĩa là, mỗi vector trong tối đa 32 vector có cùng độ dài.[59]

Ứng dụng chỉ định tổng chiều rộng vector mà nó yêu cầu và bộ xử lý xác định độ dài vector mà nó có thể cung cấp với các tài nguyên trên chip có sẵn. Điều này có hình thức của một hướng dẫn (vsetcfg) với bốn toán hạng ngay lập tức, chỉ định số lượng thanh ghi vector của mỗi chiều rộng có sẵn cần thiết. Tổng số phải không quá giới hạn địa chỉ là 32, nhưng có thể ít hơn nếu ứng dụng không yêu cầu tất cả. Độ dài vector bị giới hạn bởi bộ lưu trữ trên chip có sẵn chia cho số byte lưu trữ cần thiết cho mỗi mục nhập. (Các giới hạn phần cứng được thêm vào cũng có thể tồn tại, do đó có thể cho phép triển khai theo kiểu SIMD.)[59]

Ngoài các vòng lặp vector, ứng dụng có thể yêu cầu các thanh ghi vector không, lưu hệ điều hành công việc bảo quản chúng trên các công tắc ngữ cảnh.[59]

Độ dài vector không chỉ thay đổi về mặt kiến trúc mà còn được thiết kế để thay đổi theo thời gian chạy. Để đạt được tính linh hoạt này, tập lệnh có khả năng sử dụng các đường dẫn dữ liệu có chiều rộng thay đổi và các hoạt động kiểu biến bằng cách sử dụng quá tải đa hình.[59] Kế hoạch là những thứ này có thể làm giảm kích thước và độ phức tạp của ISA và trình biên dịch.[59]

Các bộ xử lý vector thử nghiệm gần đây với đường dẫn dữ liệu có chiều rộng thay đổi cũng cho thấy sự gia tăng lợi nhuận trong các hoạt động mỗi: giây (tốc độ), diện tích (chi phí thấp hơn) và watt (tiết kiệm năng lượng).[60]

Không giống như một đơn vị xử lý đồ họa hiện đại thông thường, không có kế hoạch cung cấp phần cứng đặc biệt để hỗ trợ sự tiên đoán chi nhánh. Thay vào đó, mục đích dựa trên trình biên dịch chi phí thấp hơn sẽ được sử dụng.[59][61]

Hệ thống gỡ lỗi bên ngoài

[sửa | sửa mã nguồn]

Có một đặc điểm kỹ thuật sơ bộ cho trình gỡ lỗi được hỗ trợ phần cứng của RISC-V. Trình gỡ lỗi sẽ sử dụng một hệ thống vận chuyển như Test Action Group (JTAG - Nhóm Thử Hành Động) hoặc USB để truy cập các thanh ghi gỡ lỗi. Giao diện gỡ lỗi phần cứng tiêu chuẩn có thể hỗ trợ giao diện trừu tượng được chuẩn hóa hoặc cấp lệnh.[62][63]

Tính đến tháng 1 năm 2017, hình thức chính xác của giao diện trừu tượng vẫn chưa được xác định, nhưng các đề xuất bao gồm một hệ thống được ánh xạ bộ nhớ với các địa chỉ được tiêu chuẩn hóa cho các thanh ghi của thiết bị gỡ lỗi hoặc một thanh ghi lệnh và một thanh ghi dữ liệu có thể truy cập vào hệ thống truyền thông.[62] Các thông tín viên cho rằng các hệ thống tương tự được sử dụng bởi giao diện chế độ gỡ lỗi nền của Freescale (BDM) cho một số CPU, ARM, OpenRISC và LEON của Aeroflex.[62]

Trong chế độ đút ăn lệnh, CPU sẽ xử lý một ngoại lệ gỡ lỗi để thực thi các lệnh riêng lẻ được ghi vào thanh ghi. Điều này có thể được bổ sung với một thanh ghi truyền dữ liệu và một mô-đun để truy cập trực tiếp vào bộ nhớ. Hướng dẫn cho phép trình gỡ lỗi truy cập vào máy tính chính xác như phần mềm. Nó cũng giảm thiểu các thay đổi trong CPU và thích nghi với nhiều loại CPU. Điều này được cho là đặc biệt thích hợp với RISC-V vì nó được thiết kế rõ ràng cho nhiều loại máy tính. Thanh ghi truyền dữ liệu cho phép trình gỡ lỗi ghi vòng lặp di chuyển dữ liệu vào RAM và sau đó thực hiện vòng lặp để di chuyển dữ liệu vào hoặc ra khỏi máy tính với tốc độ gần tốc độ tối đa của kênh dữ liệu của hệ thống gỡ lỗi.[62] Các thông tín viên nói rằng các hệ thống tương tự được sử dụng bởi Công Nghệ MIPS MIPS, Intel Quark, Xtensa của Tensilica và cho giao diện chế độ gỡ lỗi nền của CPU Freescale Power ISA (BDM).[62]

Chú thích

[sửa | sửa mã nguồn]
  1. ^ “Changes to unprivileged spec for bi[g]-endian support”.
  2. ^ a b “Contributors”. riscv.org. Regents of the University of California. Bản gốc lưu trữ ngày 13 tháng 6 năm 2018. Truy cập ngày 25 tháng 8 năm 2014.
  3. ^ a b c d e f g h i j k l m Waterman, Andrew; Asanović, Krste. “The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.2”. University of California, Berkeley. EECS-2016-118. Truy cập ngày 25 tháng 5 năm 2017.
  4. ^ Demerjian, Chuck (ngày 7 tháng 8 năm 2013). “A long look at how ARM licenses chips: Part 1”. SemiAccurate. Bản gốc lưu trữ ngày 24 tháng 10 năm 2022. Truy cập ngày 6 tháng 8 năm 2019.
  5. ^ Demerjian, Chuck (ngày 8 tháng 8 năm 2013). “How ARM licenses its IP for production: Part 2”. SemiAccurate. Bản gốc lưu trữ ngày 25 tháng 10 năm 2022. Truy cập ngày 6 tháng 8 năm 2019.
  6. ^ a b c d e f Asanović, Krste. “Instruction Sets Should be Free” (PDF). U.C. Berkeley Technical Reports. Regents of the University of California. Truy cập ngày 15 tháng 11 năm 2016.
  7. ^ “Rocket Core Generator”. RISC-V. Regents of the University of California. Bản gốc lưu trữ ngày 26 tháng 9 năm 2014. Truy cập ngày 1 tháng 10 năm 2014.
  8. ^ Celio, Christopher; Love, Eric. “ucb-bar/riscv-sodor”. GitHub Inc. Regents of the University of California. Truy cập ngày 12 tháng 2 năm 2015.
  9. ^ a b “SHAKTI Processor Project”. Indian Institute of Technology Madras. Bản gốc lưu trữ ngày 21 tháng 8 năm 2017. Truy cập ngày 15 tháng 9 năm 2014.
  10. ^ Celio, Christopher. “CS 152 Laboratory Exercise 3” (PDF). UC Berkeley. Regents of the University of California. Truy cập ngày 12 tháng 2 năm 2015.
  11. ^ a b Patterson, David A.; Ditzel, David R. (tháng 10 năm 1980). “The Case for the Reduced Instruction Set Computer”. ACM SIGARCH Computer Architecture News. 8 (6): 25. doi:10.1145/641914.641917.
  12. ^ “Amber ARM-compatible core”. OpenCores. Truy cập ngày 26 tháng 8 năm 2014.
  13. ^ “ARM4U”. OpenCores. OpenCores. Truy cập ngày 26 tháng 8 năm 2014.
  14. ^ a b “RISC-V Foundation”. RISC-V Foundation. Truy cập ngày 15 tháng 3 năm 2019.
  15. ^ “The Linley Group Announces Winners of Annual Analysts' Choice Awards” (Thông cáo báo chí). The Linley Group. ngày 12 tháng 1 năm 2017. Truy cập ngày 21 tháng 1 năm 2018.
  16. ^ Wolf, Clifford. “Alternative proposal for instruction length encoding”. Cliffords Subversion Servier. Clifford Wolf. Bản gốc lưu trữ ngày 26 tháng 4 năm 2019. Truy cập ngày 24 tháng 4 năm 2019.
  17. ^ a b Waterman, Andrew; Lee, Yunsup; Avizienas, Rimas; Patterson, David; Asanović, Krste. “Draft Privileged ISA Specification 1.9”. RISC-V. RISC-V Foundation. Bản gốc lưu trữ ngày 26 tháng 8 năm 2018. Truy cập ngày 30 tháng 8 năm 2016.
  18. ^ “RISC-V The Free and Open Instruction Set”. RISC-V Foundation. Truy cập ngày 11 tháng 11 năm 2016.
  19. ^ Celio, Christopher. “riscv-boom”. GitHub. Regents of the University of California. Truy cập ngày 11 tháng 11 năm 2016.
  20. ^ Asanović, Krste; và đồng nghiệp. “rocket-chip”. GitHub. The RISC-V Foundation. Truy cập ngày 11 tháng 11 năm 2016.
  21. ^ Celio, Christopher. “riscv-sodor”. GitHub. Regents of the University of California. Truy cập ngày 11 tháng 11 năm 2016.
  22. ^ Traber, Andreas; và đồng nghiệp. “PULP: Parallel Ultra Low Power”. ETH Zurich, University of Bologna. Truy cập ngày 5 tháng 8 năm 2016.
  23. ^ “Chisel: Constructing Hardware in a Scala Embedded Language”. UC Berkeley. Regents of the University of California. Truy cập ngày 12 tháng 2 năm 2015.
  24. ^ “FreeBSD Wiki: RISC-V”.
  25. ^ a b “FreeBSD Foundation: Initial FreeBSD RISC-V Architecture Port Committed”.
  26. ^ Montezelo, Manuel. “Debian GNU/Linux port for RISC-V 64”. Google Groups. Truy cập ngày 19 tháng 7 năm 2018.
  27. ^ “Architectures/RISC-V”. Fedora Wiki. Red Hat. Truy cập ngày 26 tháng 9 năm 2016.
  28. ^ Begari, Padmarao. “U-Boot port on RISC-V 32-bit is available”. Google Groups. Microsemi. Truy cập ngày 15 tháng 2 năm 2017.
  29. ^ RiscVEdk2 trên GitHub
  30. ^ Almatary, Hesham. “RISC-V, seL4”. seL4 Documentation. Commonwealth Scientific and Industrial Research Organisation (CSIRO). Truy cập ngày 13 tháng 7 năm 2018.
  31. ^ Almatary, Hesham. “heshamelmatary”. GitHub. Truy cập ngày 13 tháng 7 năm 2018.
  32. ^ “ANGEL is a Javascript RISC-V ISA (RV64) Simulator that runs riscv-linux with BusyBox”. RISCV.org. Bản gốc lưu trữ ngày 11 tháng 11 năm 2018. Truy cập ngày 6 tháng 8 năm 2019.
  33. ^ “MultiZone Secure IoT Stack, the First Secure IoT Stack for RISC-V”. Hex Five Security. Hex Five Security, Inc. Truy cập ngày 3 tháng 3 năm 2019.
  34. ^ “HiFive1”. SiFive. Bản gốc lưu trữ ngày 26 tháng 2 năm 2017. Truy cập ngày 10 tháng 7 năm 2018.
  35. ^ SiFive. “Hi-Five1: Open-source Arduino-Compatible Development Kit”. Crowd Supply. Truy cập ngày 2 tháng 12 năm 2016.
  36. ^ “FU540 SoC CPU”. SiFive. Truy cập ngày 24 tháng 10 năm 2018.
  37. ^ “Syntacore”. Truy cập ngày 11 tháng 12 năm 2018.
  38. ^ “SCR1, open-source RISC-V core”. Truy cập ngày 11 tháng 12 năm 2018.
  39. ^ “RISC-V workshop proceedings”. Truy cập ngày 11 tháng 12 năm 2018.
  40. ^ “Andes Technology”. RISC-V Foundation. Bản gốc lưu trữ ngày 13 tháng 5 năm 2020. Truy cập ngày 10 tháng 7 năm 2018.
  41. ^ Manners, David. “Codasip and UltraSoC Combine on RISC-V”. Electronics Weekly. Metropolis International Group, Ltd. Truy cập ngày 23 tháng 11 năm 2016.
  42. ^ “GreenWaves GAP8 is a Low Power RISC-V IoT Processor Optimized for Artificial Intelligence Applications”. CNXSoft: Embedded Systems News. Truy cập ngày 4 tháng 3 năm 2018.
  43. ^ Yoshida, Junko (ngày 26 tháng 2 năm 2018). “AI Comes to Sensing Devices”. EE Times. Truy cập ngày 10 tháng 7 năm 2018.
  44. ^ “GreenWaves Technologies Announces Availability of GAP8 Software Development Kit and GAPuino Development Board” (Thông cáo báo chí). ngày 22 tháng 5 năm 2018.
  45. ^ “Hex Five Security Adds MultiZone Trusted Execution Environment to the SiFive Software Ecosystem”. Hex Five Security. Truy cập ngày 13 tháng 9 năm 2018.
  46. ^ “CloudBEAR”. Truy cập ngày 16 tháng 10 năm 2018.
  47. ^ Shilov, Anton. “Western Digital Reveals SweRV RISC-V Core, Cache Coherency over Ethernet Initiative”. www.anandtech.com. Truy cập ngày 23 tháng 5 năm 2019.
  48. ^ “China's Alibaba is making a 16-core, 2.5 GHz RISC-V processor”. www.techspot.com. Truy cập ngày 30 tháng 7 năm 2019.
  49. ^ “C-DAC announces Tech Conclave 2019 - Times of India”. The Times of India. Truy cập ngày 12 tháng 4 năm 2019.
  50. ^ “IIT Madras Open Source Processor Project”. Rapid IO. IIT Madras. Bản gốc lưu trữ ngày 14 tháng 9 năm 2014. Truy cập ngày 13 tháng 9 năm 2014.
  51. ^ Xie, Joe (tháng 7 năm 2016). NVIDIA RISC V Evaluation Story. Youtube.
  52. ^ “Re: [isa-dev] RISC V ISA for embedded systems” (Danh sách thư).
  53. ^ “lowRISC website”. Truy cập ngày 10 tháng 5 năm 2015.
  54. ^ “PULPino GitHub project”. GitHub. Truy cập ngày 2 tháng 2 năm 2018.
  55. ^ “PULP Platform”. PULP Platform. Truy cập ngày 2 tháng 2 năm 2018.
  56. ^ “Esperanto exits stealth mode, aims at AI with a 4,096 core 7nm RISC-V monster”. wikichip.org (bằng tiếng Anh). Truy cập ngày 2 tháng 1 năm 2018.
  57. ^ Lee, Ruby; Huck, Jerry (ngày 25 tháng 2 năm 1996). “64-bit and Multimedia Extensions in the PA-RISC 2.0 Architecture”. Proceedings of Compcon 96: 152–160. Truy cập ngày 21 tháng 9 năm 2014.
  58. ^ Lee, Ruby B. (tháng 4 năm 1995). “Accelerating Multimedia with Enhanced Microprocessors” (PDF). IEEE Micro. 15 (2): 22–32. CiteSeerX 10.1.1.74.1688. doi:10.1109/40.372347. Truy cập ngày 21 tháng 9 năm 2014.
  59. ^ a b c d e f g h Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. “RISC-V Vector Extension Proposal” (PDF). RISC-V. Regents of the University of California. Truy cập ngày 14 tháng 3 năm 2016.
  60. ^ Ou, Albert; Nguyen, Quan; Lee, Yunsup; Asanović, Krste. “A Case for MVPs: Mixed-Precision Vector Processors” (PDF). UC Berkeley EECS. Regents of the University of California. Bản gốc (PDF) lưu trữ ngày 15 tháng 3 năm 2016. Truy cập ngày 14 tháng 3 năm 2016.
  61. ^ Lee, Yunsup; Grover, Vinod; Krashinsky, Ronny; Stephenson, Mark; Keckler, Stephen W.; Asanović, Krste. “Exploring the Design Space of SPMD Divergence Management on Data-Parallel Architectures” (PDF). Berkeley's EECS Site. Regents of the University of California. Bản gốc (PDF) lưu trữ ngày 14 tháng 11 năm 2014. Truy cập ngày 14 tháng 3 năm 2016.
  62. ^ a b c d e Bradbury, Alex; Wallentowitz, Stefan. “RISC-V Run Control Debug”. Google Docs. RISC-V Foundation. Truy cập ngày 20 tháng 1 năm 2017.
  63. ^ Newsome, Tim. “RISC-V Debug Group > poll results”. Google Groups, RISC-V Debug Group. RISC-V Foundation. Truy cập ngày 20 tháng 1 năm 2017.

Lỗi chú thích: Thẻ <ref> có tên “isacompressed” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.

Lỗi chú thích: Thẻ <ref> có tên “riscvc” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.

Đọc thêm

[sửa | sửa mã nguồn]

Liên kết ngoài

[sửa | sửa mã nguồn]