1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế datapath cho bộ xử lý RISCV (code ở link trong báo cáo)

58 124 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Phỏng Đường Dữ Liệu Bộ Xử Lý RISC-V Cho Các Chương Trình Viết Bằng Ngôn Ngữ C
Tác giả Nguyễn Văn Toán
Người hướng dẫn TS. Tạ Thị Kim Huệ
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Kiến Trúc Máy Tính
Thể loại Đồ Án Môn Học
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 58
Dung lượng 2 MB

Nội dung

Kiến trúc RISCV, được công bố năm 2014, được các nhân viên tại Đại học Berkeley là Yunsup Lee, Krste Asanovic, David A. Patterson và Andrew Waterman phát triển và nghiên cứu. Mục tiêu ban đầu của dự án RISCV:  Thiết kế kiến trúc tập lệnh RISC (ISA) phù hợp để sử dụng trong nhiều ứ dụng, trải rộng từ thiết bị nhúng đến các bộ đa xử lý máy chủ đám mây hi suất cao.  ISA dễ sử dụng cho bất kỳ ứng dụng nào, điều này khác với hầu hết các bộ xử lý có sẵn trên thị trường khác.  Khả năng tương thích với các hệ trước, tối ưu các chức năng đã có.  Cung cấp ISA cơ sở nhỏ, phù hợp để sử dụng trong các thiết bị nhúng. ISA sở là tập các khả năng tối thiểu mà bất kỳ bộ xử lý RISCV nào phải thực hiệ Nó là một kiến trúc của bộ xử lý 32 bits với 31 thanh ghi có mục đích chun ISA cơ sở hỗ trợ phép cộng và phép trừ số nguyên, nhưng không bao gồm ph nhân và phép chia số nguyên. Điều này giảm chi phí phần cứng cho những t vụ không cần thiết.  Cung cấp các phần mở rộng ISA tùy chọn để hỗ trợ phép toán học dấu ph động, các phép toán trong bộ nhớ cũng như phép nhân và chia.  Cung cấp các phần mở rộng ISA bổ sung để hỗ trợ các chế độ thực thi đ quyền, giống với kiến trúc x86, x64, ARM.

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN MÔN HỌC KIẾN TRÚC MÁY TÍNH Đề tài: MƠ PHỎNG ĐƯỜNG DỮ LIỆU BỘ XỬ LÝ RISC-V CHO CÁC CHƯƠNG TRÌNH VIẾT BẰNG NGƠN NGỮ C NGUYỄN VĂN TOÁN Sinh viên thực hiện: Lớp ĐTVT.01-K62 Giảng viên hướng dẫn: TS TẠ THỊ KIM HUỆ Hà Nội, 01/2022 ĐÁNH GIÁ BÁO ĐỒ ÁN (Dùng cho giảng viên hướng dẫn) Tên giảng viên đánh giá: Họ tên sinh viên: MSSV: Tên đồ án: Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề Có kết mơ phỏng/thực nghiệm trình bày rõ ràng kết đạt Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết đồ án (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, đánh số thứ tự giải thích hay đề cập đến; lề thống nhất, có dấu cách sau dấu chấm, dấu phảy v.v.), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/Đạt giải SVNCKH 10a giải cấp Viện trở lên/Có giải thưởng khoa học (quốc tế nước) từ giải trở lên/Có đăng ký phát minh, sáng chế Được báo cáo hội đồng cấp Viện hội nghị SVNCKH 10b không đạt giải từ giải trở lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chuyên ngành (VD: TI contest) 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng Điểm tổng quy đổi thang 10 1 2 3 4 5 5 5 5 /50 Nhận xét khác (về thái độ tinh thần làm việc sinh viên) Ngày: … / … / 20… Người nhận xét (Ký ghi rõ họ tên) LỜI NÓI ĐẦU Hiện nay, công nghệ phát triển ngày nhanh, máy tính yêu cầu phải làm nhiều việc với thời gian thực nhanh hơn, hiệu suất cao Hàng loạt cấu trúc x86, x64 theo đà phát triển công nghệ dần trở nên lỗi thời Bắt xu mà xử lý RISC-V đời nhằm đáp ứng yêu cầu ngày cao người Kiến trúc đời chưa lâu phát huy ưu điểm mình, đồng thời khắc phục yếu điểm cấu trúc cũ Hiện tại, RISC-V khơng q trình nghiên cứu nữa, tập đồn cơng nghệ lớn đầu tư phát triển để ứng dụng lên sản phẩm họ Điển hình ta kể đến tên lớn Apple Samsung Do thời gian để làm đề tài em bị hạn chế, nên việc thực đề tài em nhiều sai sót, mong q vị thơng cảm Em xin gửi lời cảm ơn đến TS Tạ Thị Kim Huệ dốc lòng dạy em để em hoàn thành đề tài LỜI CAM ĐOAN Tơi Nguyễn Văn Tốn, mã số sinh viên 20172852, sinh viên lớp ĐTVT.01, khóa K62 Người hướng dẫn TS Tạ Thị Kim Huệ, tơi xin cam đoan tồn nội dung trình bày đồ án Mơ đường liệu xử lý RISC-V cho chương trình viết ngơn ngữ C kết q trình tìm hiểu nghiên cứu tơi Các liệu nêu đồ án hoàn toàn trung thực, phản ánh kết đo đạc thực tế Mọi thơng tin trích dẫn tn thủ quy định sở hữu trí tuệ; tài liệu tham khảo liệt kê rõ ràng Tôi xin chịu hoàn toàn trách nhiệm với nội dung viết đồ án Hà Nội, ngày 02 tháng 01 Năm 2022 Người cam đoan Nguyễn Văn Toán MỤC LỤC I DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT II DANH MỤC HÌNH VẼ III DANH MỤC BẢNG BIỂU 11 IV TÓM TẮT ĐỒ ÁN 12 PHẦN MỞ ĐẦU 13 CHƯƠNG CƠ SỞ LÝ THUYẾT 14 1.1 Giới thiệu RISC-V 14 1.2 Các bước thực 15 1.3 Datapath 16 1.3.1 Xây dựng đường liệu 17 1.3.2 Lệnh loại R 19 1.3.3 Lệnh loại I 23 1.3.4 Lệnh loại B 25 1.3.5 Kết hợp loại lệnh datapath 26 1.3.6 Thực chương trình xử lý RISC-V 28 1.3.7 RV32 Datapath 32 1.4 Datapath cho định dạng lệnh 37 1.4.1 Datapath cho lệnh loại R 37 1.4.2 Datapath cho lệnh loại I 39 1.4.3 Datapath cho lệnh loại S 41 1.4.4 Datapath cho lệnh loại B 43 1.4.5 Datapath cho lệnh loại J 45 1.4.6 Datapath cho lệnh loại U 46 CHƯƠNG THỰC HÀNH 48 2.1 Tổng quan phần mềm RIPES 48 2.2 Mô 51 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC 58 I DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT RISC Reduced Instruction Set Computer ISA Instruction Set Architecture PC Program Counter MUX Multiplexer IF Instruction Fetch Stage ID Instruction Decode Stage EX Execute Stage MEM Memory Access Stage WR Register Write II DANH MỤC HÌNH VẼ Hình 1.1 Từ ngơn ngữ bậc cao đến cấu trúc cổng logic 15 Hình 1.2 Các giai đoạn để thực chu kỳ lệnh 16 Hình 1.3 Các thành phần CPU 17 Hình 1.4 Cấu tạo khối IF 18 Hình Khối tệp ghi 19 Hình 1.6 Tệp ghi đọc 20 Hình 1.7 Tệp ghi ghi 21 Bảng 1.7 Bảng mô tả chức ghi 21 Hình 1.8 Mơ tả khối ALU 22 Hình 1.9 Data memory unit 23 Hình 1.10 Immediate generation unit 24 Hình 1.11 Sơ đồ đường liệu lệnh loại B 25 Hình 1.12 Đường liệu loại R với lệnh ld sd 26 Hình 1.13 Sơ đồ lệnh loại R kết hợp với lệnh loại B 27 Hình 1.14 Datapath lệnh từ nhớ đến tập ghiui 29 Hình 1.15 Sơ đồ toàn đường liệu Control Unit 31 Hình 1.16 Cấu tạo lệnh I chi tiết 32 Hình 1.17 Cấu tạo khối Immediate generation unit 32 Hình 1.18 Cấu tạo khối Branch Comparator 33 Hình 1.19 Complete RV32 Datapath 34 Hình 1.20 Ánh xạ cú pháp với ví dụ lệnh R 37 Hình 1.21 Datapath cho lệnh Add 38 Hình 1.22 Ánh xạ cú pháp với ví dụ lệnh I 39 Hình 1.23 Datapath cho lệnh Addi 39 Hình 1.24 Ánh xạ cú pháp với ví dụ lệnh loại S 41 Hình 1.25 Datapath cho lệnh sw 41 Hình 1.26 Cấu trúc câu lệnh loại B tổng quát 43 Hình 1.27 Datapath lệnh BEQ 43 Hình 1.28 Cấu trúc câu lệnh loại J tông quát 45 Hình 1.29 Datapath cho lệnh jal 45 Hình 1.30 Cấu trúc câu lệnh loại U tổng quát 46 Hình 1.31 Datapath lệnh lui 46 Hình 1.32 Datapath cho lệnh AUIPC 47 Hình The Editor Tab 48 Hình 2.2 The Processor Tab 49 Hình 2.3 Datapath 49 Hình 2.4 Select Processor 50 Hình 2.5 Code C thực 51 Hình 2.6 Label Assembly Code 52 Hình 2.7 Label_start in Assembly Code 53 Hình 2.8 Label in Assembly Code 54 Hình 2.9 Datapath lệnh add mô 55 Hình 2.10 Thống kê chương trình 55 10  ALU thực phép cộng địa với đầu vào PC giá trị immtrong khối Imm Gen xác định địa lệnh định lệnh có rẽ nhánh hay khơng 44 1.4.5 Datapath cho lệnh loại J Ví dụ: jal Hình 1.28 Cấu trúc câu lệnh loại J tông quát Lệnh loại J thực theo bước:  Lưu PC + vào ghi rd  Đặt PC = PC + offset (PC – Relative jump) Hình 1.29 Datapath cho lệnh jal  Lệnh bắt đầu cách sử dụng đếm chương trình PC để cung cấp địa lệnh cho nhớ lệnh, lưu địa trả PC+4 cộng thêm phần bù imm nhãn so với lệnh để nhảy đến nhãn ( RegWEn=1 cho phép ghi PC+4 vào ghi rd)  Sau lệnh tìm nạp, giá trị imm đưa vào khối Imm Gen (ImmSel =J)  ALU thực phép cộng địa với đầu vào PC giá trị imm khối Imm Gen xác định địa lệnh nhãn cần nhảy đến (Bsel=1 đầu vào imm, ALUSel=add thực cộng địa chỉ) 1.4.6 Datapath cho lệnh loại U Ví dụ: auipc Hình 1.30 Cấu trúc câu lệnh loại U tổng quát Hình 1.31 Datapath lệnh lui  Lệnh bắt đầu cách sử dụng đếm chương trình PC để cung cấp địa lệnh cho nhớ lệnh, PC tăng lên để xác định địa lệnh  Sau lệnh tìm nạp, ghi đích rd giải mã trường lệnh với địa Addr D ứng với ghi data D tệp ghi  Giá trị imm đưa vào khối Imm Gen (ImmSel =U)  Khối ALU để thực phép cộng logic số học  Kết đầu ALU giá trị ghi rd ghi vào ghi Data D ứng với địa Addr D Tín hiệu điều khiển RegWrite =1 cho phép thực việc ghi liệu  Sau thực thi xong PC cập nhật lên để nhảy đến câu lệnh 46 Hình 1.32 Datapath cho lệnh AUIPC  Lệnh bắt đầu cách sử dụng đếm chương trình PC để cung cấp địa lệnh cho nhớ lệnh, PC tăng lên để xác định địa lệnh  Sau lệnh tìm nạp, ghi đích rd giải mã trường lệnh với địa Addr D ứng với ghi data D tệp ghi  Giá trị imm đưa vào khối Imm Gen (ImmSel =U)  Khối ALU để thực phép cộng logic số học với đầu vào PC imm  Kết đầu ALU giá trị ghi rd ghi vào ghi Data D nhớ ứng với địa Addr D Tín hiệu điều khiển RegWEn =1 cho phép thực việc ghi liệu  Sau thực thi xong PC cập nhật lên để nhảy đến câu lệnh CHƯƠNG THỰC HÀNH 2.1 Tổng quan phần mềm RIPES Ripes phần mềm mô xử lý cho kiến trúc tập lệnh RISC-V Phần mềm bao gồm chức liên quan đến datapath như:  The editor tab: chia phần phía bên trái, nơi viết chương trình hợp ngữ, C Sau biên dịch thực thi chương trình Phía bên phải nơi câu lệnh assembly cấu trúc lệnh RISC-V hiển thị Hình The Editor Tab  The processor tab: nơi hiển thị chế độ xem xử lý chọn ( đơn xung nhịp, đường ống,…), thông tin liên quan đến việc thực thi 48 Hình 2.2 The Processor Tab Registers: chứa tất ghi, giá trị ghi xử lý 2- Intruction memory: Chế độ xem chương trình tải mô 3- Statistics: Các thống kê số chu kì, số intruction,… 4- Output: Hiển thị đầu lệnh ecall assembly printf C  The processor view: Các mơ hình xử lý Ripes mô trạng thái datapath thơng qua hình ảnh trực quan Hình 2.3 Datapath  Selecting Processor Model: Cung cấp khả ảnh hưởng khác đến việc thực thi trương trình Ripes cung cấp chương trình sau: Hình 2.4 Select Processor 50 2.2 Mô Trong phần em xin trình bày thực chương trình C mơ datapath xử lý đơn xung nhịp Hình 2.5 Code C thực Ở em lựa chọn chương trình C đơn giản cộng hai mảng với nhau, cụ thể mảng mảng phần tử kết lưu lại mảng khác Sau khi chạy chuyển sang code Assembly Hình 2.6 Label Assembly Code Sau biên dịch, tập tập trung vào label_start, main, exit Khi bắt đầu chạy lệnh thực label_start 52 Hình 2.7 Label_start in Assembly Code Hình 2.7 mô tả lable_start code assembly, thời điểm chương trình tạo lệnh khởi động xử lý sau lệnh thực hàm main Sau bước khởi tạo, chương trình nhảy đến hàm main thơng qua lệnh jal x1 112 Hình 2.8 Label in Assembly Code Ở bước này, chương trình tiến hành cộng mảng với thông qua liệu khởi tạo trước 54 Hình 2.9 Datapath lệnh add mơ Hình mơ việc cộng phần tử hai mảng với Hiện giá trị mảng a lưu ghi x14 với giá trị 15, giá trị mảng b lưu ghi x15 với giá trị Tiếp theo chương trình thực add x14 x14 x15 để cộng phần tử mảng kết lưu lại ghi x14 Kết cuối thu được: Hình 2.10 Thống kê chương trình Hình 2.10 mơ tả thống kê chương trình sau thực chạy, chương trình C thực 305 cycles, 305 instruction KẾT LUẬN  Kết luận chung Đề tài này, giúp em kiểm nghiệm lại kiến thức mà em học mơn kiến trúc máy tính Kết mơ hoàn toàn phù hợp với lý thuyết mà em học lớp  Hướng phát triển Đề tài có hướng phát triển lớn, thử với nhiều chương trình C khác để kiểm nghiệm kết Rất tiếc thời gian không cho phép nên em dừng lại mơ chương trình đơn giản cộng mảng  Kiến nghị đề xuất Có thể áp dụng với chương trình phức tạp hơn, từ ta kiểm nghiệm thêm nhiều loại lệnh 56 TÀI LIỆU THAM KHẢO [1] John L Hennessy, D A (n.d.) Computer Organization And Design 1993 [2] Petersen, M B (2021, 27) Building and Executing C programs with Ripes Retrieved from https://github.com/mortbopet/Ripes/wiki/Building-and- Executing-C-programs-with-Ripes [3] Petersen, M B (2021, 27) Ripes Introduction https://github.com/mortbopet/Ripes/wiki/Ripes-Introduction Retrieved from PHỤ LỤC Mọi hướng dẫn sử dụng cài đặt Ripes trình bày rõ ràng link github mortbopet https://github.com/mortbopet/Ripes 58

Ngày đăng: 18/01/2022, 02:23

w