ĐẠI HỌC QUOC GIA TP. HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA KY THUAT MAY TÍNH PHAN VAN TIEN HUYNH TRUNG TAN KHOA LUAN TOT NGHIEP THIET KE BO XU LY THEO VI KIÊN TRÚC 000 DESIGN OOO PROCESSOR KY SU NGANH KỸ THUAT MAY TÍNH TP. HO CHÍ MINH, 2021 ĐẠI HỌC QUOC GIA TP. HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA KY THUAT MAY TÍNH PHAN VAN TIEN — 16521234 HUYNH TRUNG TAN - 16521073 KHOA LUAN TOT NGHIEP THIET KE BO XU LÝ THEO VI KIÊN TRÚC 000 DESIGN O00 PROCESSOR KỸ SƯ NGANH KY THUAT MAY TÍNH GIANG VIEN HUONG DAN HO NGỌC DIEM TP.
HO CHÍ MINH, 2021 THONG TIN HỘI DONG PHAN BIEN KHÓA LUẬN TOT NGHIỆP Hội đồng cham khóa luận tốt nghiệp thành lập theo Quyết định số 70/QD- DHCNTT ngày 27 tháng 01 năm 2021 của hiệu trưởng trường Dai học Công Nghệ Thông Tin. Lâm Đức Khải. - Cán bộ phản biện. Nguyễn Thanh Thiện.
LỜI CẢM ƠN Trong thời gian nghiên cứu và thực hiện khóa luận tốt nghiệp, để đạt được kết quả hôm này, chúng em đã nhận được sự hỗ trợ và hướng dẫn nhiệt tình từ giảng viên hướng dẫn. Qua báo cáo khóa luận tốt nghiệp này, chúng em xin bày tỏ lòng biết ơn chân thành đến giảng viên Thạc sĩ Hồ Ngọc Diễm, Kỹ sư Trần Đại Dương. Đồng thời, nhóm xin chân thành gửi lời cám ơn đến tất cả quý thầy cô giảng viên tại trường Dai học Công Nghệ Thông Tin - ĐHQG TP.HCM, đã giảng dạy và hướng dẫn tận tình cho chúng em trong thời gian học tập và nghiên cứu tại trường. Tổng quan đề tài.
_ Các nghiên cứu liên quan. Lý do thực hiện đề tài. — Mục tiêu đề tài. Phương pháp thực hiện.
Các nội dung chính. Kiến trúc bộ xử lý và kiến trúc tập lệnh risc-v. Kiến trúc RISC 2. Nhược điểm.
Kiến trúc RISC-V. Ưu và nhược điểm của kiến trúc RISC-V. Kiến trúc RISC-V đã pipeline hóa. Vi kiến trúc Out-of-Order (OOO).
Vi kiến trúc In-Of-Orde. Vi kiến trúc OoQ. Kiến trúc tập lệnh RISC-V.---2222222++rtttEEEEEvrrrrrrrrrrrrrrrrrrrrrrrres 9 Chương 3. Thiết kế bộ xử lý RISC-V theo vi kiến trúc OoO.
Vấn dé cần giải quyết. s1 TgHThH HH nrrhưệp 10 3. Thiết kế cơ bản tổng quát. Khối tính toán ALU.
Khối xử ly Forwarding. Khéi Reservation Station(RS) - rsSource. Khối quản lý RS I0. Thiết kế đơn vị xử lý số dau cham động (FPU).
Số dấu chấm động (Floating point). Khái niệm số dấu chấm động.----:zcz+cc5sccc++ 25 4. Số dấu chấm động độ chính xác đơn theo chuẩn IEEE 754. Tính toán trên số dau chấm động độ chính xác đơn.
Ngoại lệ trong tính toán số dau cham động độ chính xác đơn. Làm tròn khi tính toán số đầu châm động. Thiết kế dom vị xử ly Floating point theo ludng thiết kế ASIC. Thiết kế đơn vị xử lý Floating poïn(.----c:cscz+cc5sscz+c+ 28 4.
__ Thực hiện các phép toán trên FPU .- - - + +©++x+c+c+xercxe 30 Chương 5. Mô phỏng và đánh giá kết quả. Mô phỏng bộ xử lý RISC-V.---c2+22222222222221111111111tcrrrrrrrke 4I 0S OS OS100 1| 41 5. Tập lệnh mô phon.
Mô phỏng don vị xử ly Floating point 0. Mô phỏng phép cộng. Mô phỏng phép trừ. Mô phỏng phép nhân 5.
Mô phỏng phép chia. Kết quả Post-synthesis Chương 6. _ Kết luận và hướng phát triển đề tài. Nhược điểm.
So sánh với Nghiên cứu trước đó. Hướng phát triỀn.---2+222V++++22E++++tEEES+rttEEEkvrtttrrtrrrrrrkrrrrrrkee 56 TÀI LIEU THAM KHẢO. 2222: ©2222222EE222922EE222222311222231122222312222122 xe57 Hình 2.1: One-Deep Single-Completion Instruction Pipeline [5] .2 Đường ống song song (Parallel Pipeline) [5].3: Mô hình OoO ExecutiON.---- - ¿62 St ‡EEkSv‡kEEEEEEkkerrrkrkrkerrie 8 Hình 2.4: Kiến trúc tập lệnh [5] .--:---22+++222222v+z+++ttt22zvvrrrrrrrrrrrrerree 9 Hình 3.1: Ví dụ về xung đột dữ liệu [2].2: Thiết kế fowarding dé giải quyết xung dột dit liệu [5].3: Cấu trúc thiết kế khi sử dụng kỹ thuật forwarding [2].4: OoO có phụ thuộc dữ liệu [2] .5: OoO sử dung register renaming [2] .--¿---- + +5+5++++s+sec>++x+xe> 5 Hình 3.7: Khối Control điều khiển.8: Khối tính toán ALU .cccccccc5cc222222cEEEEErrrtrrrtrrrrrrrrrrrrirrrrrrriie 8 Hình 3.9: Khối xử lý fowarding.1: Giao diện mức hệ thống của FPU.- St S Set srEeterxekrrxrrrressrr 29 Hình 4.2: Giao diện mức hệ thống phép cộng trừ.3: Sơ đồ giải thuật phép tính cộng.4: Sơ đồ khối của bộ cộng/trừ [5] .¿¿-2¿¿22++z+2vvzxve+cvvseresrr 34 Hình 4.5: Giao diện mức hệ thống phép nhân .6: Sơ đồ giải thật cho phép tính nhân 36 Hình 4.7: Giao diện mức hệ thống phép chia .8: Sơ đồ giải thuật phép tính chia 40 Hình 5.1: Kết quả chạy khởi tao trên phần mềm RARS 1.2: Kết quả mô phỏng khởi tạO.--¿:©2222+222++tt22SSvvetvvvvrrerrvsrrrrrr 45 Hình 5.3: Kết quả chạy 37 lệnh RV32I và 4 lệnh Float trên phan mềm RARS 1.4: Kết quả mô phỏng 37 lệnh RV32I và 4 lệnh Float.5: Kết quả chạy chuỗi lệnh trên phần mềm RARS I.6 Kết quả mô phỏng chuỗi lệnh .-2¿¿©2++2EE22z++222+zzz+ezvseez 49 Hình 5.7: Dang sóng mô phỏng kết quả phép cộng ở mức RTIL.8: Dạng sóng mô phỏng kết quả phép trừ ở mức RTL.9: Dạng sóng mô phỏng kết quả phép nhân ở mức RTL.10: Dang sóng mô phỏng kết quả phép chia ở mức RTIL.11: Tổng hợp Timing thiết kế chưa tích hợp khối tinh toán Floating Point .12: Tổng hợp Timing thiết kế tích hợp khối tính toán Floating Point.13: Tổng hợp tài nguyên.14: Tóm tắt tài nguyên thiết kế sử dụng trên FPGA. DANH MỤC BANG Bang 3.1: Các tín hiệu của khối Control.- 2-22 22 ++E+2E£+E£+EE+EEezE+zEEzrxerxerez 17 Bang 3.2: Các tín hiệu của khối ALLU.----- 2-2222 E+EE+£E+2EE+EE+EErEEzEksrxerrrrex 18 Bang 3.3: Các tín hiệu của khối xử lý Forwarding .4 Các tín hiệu của khối Rename .---2¿- 2: 522S+2Ex+2E+tEx+erxezrxrreeree 20 Bang 3.5: Các tín hiệu khối rsSOUIFCG.
2-2-2 ©5£2S£+EE+EE£EE+2EE£EEvEEtEEerrkerkerkree 22 Bảng 3.6: Các tín hiệu khối rsFTee.----- 2 522 2+++2E+2EE22EE2EEEEEESExrrrxrrrrcree 24 Bang 4.1: Biểu diễn của các số dấu cham động.----- 2 2 ++x+zE+E++rxerxrez 26 Bang 4.2: Giá trị thể hiện của số dấu chấm động .3: Giao điện mức hệ thống của FPU.4: Tín hiệu hệ thống phép cộng trừ.-----2¿ + ++++++x++zx++zxzrxerxesree 30 Bảng 4.5: Tín hiệu mức hệ thống phép nhân .---2- ¿2+ £2++++£x++z+zzz+zz+z 35 Bảng 4.6: Tín hiệu mức hệ thống phép chia.- 2-2 5¿2¿2+2+2£x+2zxzs+srsz 38 Bảng 5.1: Tập lệnh được thực hiện trên thiết kẾ.----¿- 5 ©£2©sz2x+2zs+zx+zrxz 41 Bảng 5.2: Khởi tạo giá trị ban đầu cho các thanh ghi.3: Bang mã khởi tạo giá tri ban đầu cho các thanh ghi .4: Bang mã thực thi 37 lệnh RV32I và 4 lệnh Float.5: Bảng lệnh thực thi chuỗi lệnh theo OoO.--2- ¿22 ©5z>szcszz+zz+zs+2 48 DANH MỤC TỪ VIET TAT Ký hiệu hoặc viết tắt Chú thích OoO Out-Of-Order ISA Instruction Set Architecture RS Reservation Station RISC Reduced Instructions Set Computer FPU Floating point unit TOM TAT KHÓA LUẬN Hiện nay, các vi kiến trúc ngày càng trở nên phức tạp hơn, khiến cho việc học tâp và nghiên cứu về vi xử lý gặp nhiều khó khăn, nhất là ở phần thực nghiệm. Đồng thời việc tìm hiểu về kiến trúc vi xử lý căn bản giúp ta có thé có được những kiến thức cần thiết, tạo tiền đề cho việc phát triển các vi xử lý trong tương lai. Trong khóa luận tốt nghiệp nay, chúng em sẽ trình bay van dé thiết kế bộ xử lý RISC-V theo vi kiến trúc OoO hỗ trợ xử lý 37 lệnh trong tập lệnh RV32I và 4 lệnh cộng trừ nhân chia với số dau cham động trong tập lệnh RVF. Nhóm sẽ thực hiện việc so sánh kết quả mô phỏng trên công cụ Xinlinx Vivado và đánh giá khả năng hoạt động của bộ xử lý.
Tổng quan đề tài 1. Tổng quan Hiện nay, khoa học kỹ thuật ngày càng phát triển kéo theo đó là một lượng dữ liệu vô cùng lớn cần được xử lý, việc tạo ra các CPU có tốc độ xử lý nhanh là cực kì cần thiết. Một trong những phương pháp để giải quyết vần đề này đó là áp dung vi kiến trúc OoO (Out of Order) vào trong thiết kế các bộ vi xử lý hiệu suất cao. So với vi kiến trúc cũ In of Order thực hiện xử lý chuỗi lệnh theo thứ tự, vi kiến trúc OoO thực hiện việc xử lý chuỗi lệnh không theo thứ tự.
Vi kiến trúc này hỗ trợ giải quyết các van đề gián đoạn xử lý trong quá trình xử lý các lệnh do xuất hiện phụ thuộc dữ liệu, ở vi kiến trúc In of Order không giải quyết được vấn đề này dẫn đến việc ton nhiều chu kì hơn dé xử lý các lệnh. Các nghiên cứu liên quan Theo nhóm tìm hiểu thì chưa có dé tài nghiên cứu nào về thiết kế bộ xử lý theo vi kiến trúc OoO được công bố ở Việt Nam. Ở trường Đại học Công nghệ thông tin - ĐHQG TP.HCM đã có đề tài “Nghiên cứu thiết kế bộ vi xử lý kiến trúc MIPS32” của tác giả Nguyễn Hoàng Dũng va Phan Gia Bảo ở Khóa luận tốt nghiệp ngành Kỹ thuật Máy tính năm 2018. Kết quả của nghiên cứu này đã hoàn thành thiết kế bộ xử lý MIPS32 pipeline 5 tầng theo vi kiến trúc In of Order và đã được kiểm thử trên FPGA Xilinx Virtex-7, tuy nhiên thiết kế chưa thực hiện được các lệnh liên quan đến Floating point, cũng như tốc độ thực thi của thiết kế chưa cao do sử dụng vi kiến trúc In of Order.
Ly do thực hiện đề tài Hiện nay, ở Việt Nam chưa có công trình nghiêng cứu cũng như sản phẩm nao liên quan đến bộ xử lý thế hệ mới RISC-V cũng như việc sử dụng vi kiến trúc OoO vào trong thiết kế. Nhìn thấy được lợi ích của việc áp dụng vi kiến trúc OoO vào trong thiết kế bộ xử lý với tốc độ xử lý tốt hơn, nhóm đã lựa chọn nghiên cứu và thiết kế một bộ xử lý theo vi kiến trúc OoO. Mục tiêu đề tài Thiết kế Bộ xử lý RISC-V pipeline 5 tầng theo vi kiến trúc OoO: - Thuc thi 37 lệnh thuộc tập lệnh RV32I. - Thuc thi 4 lệnh floating point FADD, FSUB, FMUL, FDIV thuộc tập lệnh RVF.
- Hoat động ở tần số 50Mhz. Phương pháp thực hiện - Nghiên cứu tài liệu: Tìm hiểu tài liệu về RISC-V và các công trình nghiêng cứu liên quan đến việc sử dụng vi kiến trúc OoO vào trong thiết kế, nghiên cứu và thiết kế đơn vị xử lý Floating point. - _ Thiết kế: Xilinx FPGA Design Flow. - _ Xác minh: Mô phỏng thiết kế sử dụng công cụ Xilinx Vivado.
- _ Thực nghiệm: Hiện thực trên FPGA Xilinx Virtex-7. Các nội dung chính - _ Thiết kế bộ xử lý RISC-V theo vi kiến trúc OoO. - M6 phỏng bộ xử lý RISC-V. - _ Thiết kế đơn vị xử ly Floating Point.
- M6 phỏng đơn vi xử lý Floating Point. - Tich hợp hệ thống va mô phỏng. - _ Kiểm thử thiết kế trên FPGA. Kiến trúc bộ xử lý và kiến trúc tập lệnh risc-v 2.
Kiến trúc RISC RISC là một phương pháp thiết kế các bộ vi xử lý (VXL) theo hướng đơn giản hóa tập lệnh, trong đó thời gian thực thi tất cả các lệnh đều như nhau. Hiện nay, các bộ vi xử ly RISC phổ biến là ARM, SuperH, MIPS, PIC, DEC Alpha, PA-RISC và PowerPC của IBM.