Chương 1. GIỚI THIEU DE TÀI. Giới hạn để tài.ee--cecerireerrirrrtrirrtriiirrrirrrrrrrrrrrrtrrrrrrrrrrrrrrrrrrre 2 Chương 2. CO SỞ LÝ THUYÊTT.
Kiến trúc tập lệnh RISC-V. Tổng quát RISC-V. Tổng quát lõi RISC-V RV32IME.-sseceesreeerreeere 4 AVANCE Ôn -eeere 4 2. Mo rong chuẩn M (RV32M) wecssssssssssssssscssesssssssssssssssesssseeeeeesesssssssasessssee 5 2.
Mở rộng chuẩn F (RV32F) scssssssssssssessassnsssssssessssssessssesessnsseesnssneeseeseees 7 2. Sơ lược về bộ nhớ đệm. Sơ lược về giao thức TileLink. Hoạt động cơ bản.
Các kênh của TileLink. Các cấp độ của TileLink. Tilelink Uncached Lightweight (TL-UL). TileLink Uncached Heavyweight (TL-UH).
TileLink Cached (TL-C)etsesssssssssssusssesssnsessssssessssnsesssnsssssssesssnsesssen 20 2. So luge ve Crossbar seccsssessssssssssssssusssssssssssssssssssssssssssssussssseessssssssssssssseeseessessssseeeeeeee 22 2. Sơ lược về Network on Chipeesssssssssssssussssssussesssussssssasesesissssssssssssssssessssseese 22 Chương 3. HIỆN THỰC THIET KKẾ.
Thiết kế lõi vi xử lý RISC-V RV32IME. _ Tổng quan thiết kế.ccccHhHHHHìH Hà nhe ưkt 24 B. Tamg Fetch nh. Tang Execute an.
Tầng Memory rrsssssssssssossssssneesessssessssssssssesessssssessssssesusssssssssessasesessses 29 3. Thiết kế bộ nhớ đệm kiểu 4-Way SCt aSSOCIAfIV€. Bộ nhớ đệm lệnh. Bộ nhớ đệm đữ liệu.
Hiện thực giao thức TileLink Cached (TL-C). Hiện thực crossbar 4X4. Hiện thực Network on Chip với lối RV32IME. Hién thực kết nối giữa RV32IME với Agent.
_ Hiện thực kết nối các lõi với Crossbar 4x4. Hiện thực SoC dé nạp xuống kit VirteX 7.-cceeeceereeeerreeerre 55 Chương 4. KET QUÁ VÀ ĐÁNH GIA. Kết quả mô phỏng trên VivadO.
Kết quả mô phỏng crossbar 4X4. Kết quả mô phỏng giao thức TileLink. Kết quả mô phỏng từng lõi vi xử lý. Đánh giá thiết kết Crossbar 4x4.
Đánh giá thiết kế của lõi RV32IME. Đánh giá thiết kế hệ thống NoC. Bảng SO sánh. «ch th HH HH H111.
So sánh độ chuẩn xác của các thuật toán số thực. So sánh thiết kế của Crossbar 4x4. So sánh giao thức TileLink với các chuẩn giao thức khác. So sánh lõi RV32IMF với các thiết kế khác.
KET LUẬN VÀ HƯỚNG PHAT TRIỂN. Hướng phát triễn.-:eccccerrrreeeveertirrrerrtrririrrertrririrrrrrrrrrrrrrerrrre 82 TÀI LIEU THAM KHẢO. 2< s2£©ss£€2ssESse©vssevseersservsserssee 84 DANH MỤC HÌNH Hình 2. Sơ đồ giải thuật chia Non-Restoring.
Biểu diễn lệnh Load-word và Store-word số thực. Sơ đồ giải thuật cộng và trừ 2 số thực 32 bit. Sơ đồ giải thuật nhân 2 số thực 32 bit. Sơ đồ giải thuật chia 2 số thực 32 bit.
Sơ đồ giải thuật căn bậc 2 số thực.------ss++ccstreeerrreerrrrerre 13 Hình 2. Mô tả hoạt động cơ bản của TilelLLInK.--‹--ss-5s<5cssresreexeeereeereeee 16 Hình 2. Mô tả đường di các kênh của 'T1leLLInk.--e--sc5cse5cevcceexeeerveervexx 17 Hình 3. Kiến trúc tổng quát lõi vi xử lý RISC-V RV32IME.
Sơ đồ kiến trúc tổng quan của BTB. Sơ đồ kiến trúc tổng quan của PHTT. Kiến trúc tông quan của bộ nhớ đệm 4-way set associative. Sơ đồ giải thuật điều khién bộ nhớ đệm lưu trữ lệnh.
Sơ đồ giải thuật điều khién bộ nhớ đệm lưu trữ dữ liệu. Kiến trúc tong quan giao tiếp giữa 2 lõi bằng TileLink. Sơ đồ máy trang thái ưu tiên theo kênh của Master. Sơ đồ máy trang thái ưu tiên theo kênh của Slave.
Kiến trúc tổng quan khối Crossbar 4x4. Tông quan về giải thuật DPA trong Crossbar 4x4. Kiến trúc của một 6 trong giải thuật DPA.--cc-e+rcccccv+ 49 Hình 3. Kiến trúc của công đầu ra dữ liệu thứ nhất.
Kiến trúc của công đầu ra dit liệu thứ hai. Kiến trúc của công đầu ra dữ liệu thứ ba.-----cc-errcccccee 51 Hình 3. Kiến trúc đầu ra của công dit liệu thứ tư. Thành phan cụ thể của một gói tin dữ liệu.
Mô hình giao tiếp lõi RV32IMF với Agent. Kiến trúc tổng quan của NoC. Block design trên Vivado. Sơ dé thiết kế SoC và kiến trúc bộ nhớ của lõi RV32IME.
Kết quả mô phỏng Crossbar 4x4.---+-ccss+eecetrrereerrrrererrrerre 57 Hình 4. Kết quả mô phỏng Crossbar 4x4 khi xảy ra tranh chấp. Kết quả mô phỏng TL-UL cho PUT và GET. Kết quả mô phỏng TL-UH cho nhóm lệnh toán học.
Kết quả mô phỏng TL-UH cho lệnh logical. Kết quả mô phỏng TL-C cho các lệnh Probe. Kết quả mô phỏng TL-C cho các nhóm lệnh Release. Kết quả mô phỏng TL-C cho các nhóm lệnh Acquire.
Chương trình kiểm tra gốc và chương trình được tạo ra cho NoC. Kết quả mô phỏng lõi master l. Kết quả mô phỏng lõi master 2. Kết quả mô phỏng lõi master 2 sau khi nhận được dit liệu.
Kết quả mô phỏng lõi master 3. Kết qua mô phỏng lõi master 3 sau khi nhận được dữ liệu. Kết quả mô phỏng lõi master 4. Kết qua mô phỏng lõi master 4 sau khi nhận được dữ liệu.
Chương trình tính toán của 101 Slave Š. Đợi các cờ và dữ liệu để thực thi. Kết quả mô phỏng lõi slave 5. Kết quả mô phỏng lõi slave 5 sau khi nhận được dữ liệu lần thứ nhất.
Kết quả mô phỏng lõi slave 5 sau khi nhận được dữ liệu lần thứ hai. Kết quả mô phỏng lõi slave 5 sau khi nhận được dữ liệu lần thứ ba. Kết qua mô phỏng lõi slave 5 sau khi nhận được dtr liệu lần cuối. Kết quả mô phỏng lõi slave 6.
Kết quả mô phỏng lõi slave 7. Kết quả mô phỏng lõi slave. Power on Chip của Crossbar 4X4. Design Timming Summary của Crossbar 4X4 .---«--c«e-cecc«ee 72 Hình 4.
Power on Chip của lõi RV322IME. Design Timming Summary của lõi RV32IME. Thời gian bắt đầu thực thi.--+--s2++ce+trecztrererrrrrrrrrrrrrrrrrre 74 Hình 4. Kết quả mô phỏng thời gian thực thi của lõi RV32IME.
Kết quả mô phỏng thời gian thực thi của NoC. Power on chip của ÌNOC.c«-csstHHHHHHHHHàư HHehiưêt 76 Hình 4. Design Timming Summary của ÌNOC.e--55c5c+ssceerxeereservsrreeee 77 DANH MỤC BANG Bảng 2. Mô tả chức năng thanh ghi cơ bản RV32ÌL.---cc-cccsscreerereerrreerree 4 Bảng 2.
Bảng mã hóa Booth của giải thuật Radix-4 booth multipiler. Mô tả chức năng thanh ghi RV32E. Mô tả số bit trừ và thương số được tính trong mỗi tang Pipeline. Phân loại các thao tác theo cấp độ TileLink hỗ trợ.
Mô tả chỉ tiết thông điệp trong giao thức TL-UL. Mô ta chỉ tiết các thông điệp được bé sung trong giao thức TL-UH. Mô tả chỉ tiết các thông điệp trong giao thức TL-C. Mô tả chỉ tiết các tín hiệu điều khiến.
Chi tiết tín hiệu điều khiển nhóm lệnh load. Chỉ tiết tín hiệu điều khiển ứng với từng lệnh. Chỉ tiết tín hiệu điều khiển ứng với từng lệnh (t. Chỉ tiết tín hiệu điều khiển ứng với từng lệnh (t.
Chi tiết tín hiệu điều khién ứng với từng lệnh (t. Chỉ tiết tín hiệu điều khién ứng với từng lệnh (t. Chi tiết tín hiệu điều khiển bộ Mul_Div. Chỉ tiết tín hiệu điều khiển Branch.---cs2i+eeceetrcccerrrreeerrre 34 Bảng 3.
Chi tiết tín hiệu điều khiển bộ AL/U. Chi tiết tín hiệu điều khiển bộ FPU. Mô tả chỉ tiết tín hiệu của các kênh ở Master Interface. Mô tả chỉ tiết tín hiệu của các kênh ở Slave Interface.
Mô tả chỉ tiết các trạng thái của Master. Mô tả chỉ tiết các trạng thái của Slave. Bảng sự thật của một ô trong giải thuật DPA. Cách dữ liệu được phân xử khi 2 cổng truy xuất 1 công.
Tài nguyên tiêu thụ của Crossbar 4{x4. Tài nguyên tiêu thụ của lõi RV32IME. Tài nguyên tiêu thụ của ]NOC. Kết quả so sánh thực toán cộng số thực giữa máy tính và vi xử lý.
Kết quả so sánh thực toán trừ số thực giữa máy tình và xi xử lý. Kết quả so sánh giữa nhân số thực giữ máy tính và vi xử lý. Kết quả so sánh chia số thực giữa máy tính và vi xử lý. Kết quả so sánh căn bậc 2 số thực giữa máy tính và vi xử lý.
Bảng so sánh giữa DPA với các giải thuật khác. Bảng so sánh giữa Crossbar với đề tài liên quan. So sánh giao thức TileLink với các giao thức khác. Bang so sánh lõi RV32IME với đề tài liên quan.------ 81 DANH MỤC TU VIET TAT Viết tắt Viết đầy đủ AI Artificial Intelligence ALU Arithmetic Logic Unit BTB Branch Target Buffer CPU Central Processing Unit CSR Control and Status Register DPA Diagonal Propagation arbiter FPGA Field-Programmable Gate Array FPU Floating Point Unit ID Identity ISA Instruction Set Architecture IP CORE Intellectual Property Core LSB Least Significant Bit MSB Most Significant Bit NoC Network on Chip PHT Pattern History Table RISC Reduce Instruction Set Computer SoC System on Chip TL-C TileLink-Cached TL-UH TileLink-Uncached Heavyweight TL-UL TileLink-Uncached Lightweight TÓM TẮT KHÓA LUẬN Nội dung chính của khóa luận là xoay quanh việc nghiên cứu và hiện thực một NoC (Network on Chip) sử dụng lõi vi xử lý RISC-V RV32IME thông qua giao thức TileLink trên FPGA.
Trong kiến trúc RISC-V RV32IMF, có tích hợp bộ nhớ đệm (4- way set associative) và giải thuật Branch Prediction dé cải thiện tốc độ xử lý và truy xuất dit liệu vào bộ nhớ. Có xây dựng cau trúc kết nối Crossbar dé hỗ trợ về mặt kết nối cho giao thức TileLink. Đầu tiên nhóm sẽ nghiên cứu và thực hiện một bộ nhớ đệm theo kiểu 4-way set associative, giải thuật Branch Prediction dé tích hợp vào vi xử lý RISC-V RV32IMF tăng cao tốc độ xử lý và truy cập vùng nhớ. Tiếp theo thiết kế vi xử lý RISC-V RV32IMF, chúng em sẽ nghiên cứu và hiện thực kiến trúc RISC-V RV32I Pipeline 5 tang, sau đó thiết kế một bộ nhân chia số nguyên và một bộ FPU cho xử lý số thực, tích hợp vào vi xử lý RV32I tạo thành vi xử lý RV32IMF.
Hiện thực giao thức TileLink và kiến trúc Crossbar 4x4 dé xây dựng lên một NoC 4x4 sử dụng lõi vi xử lý RISC-V RV32IMF. Cuối cùng là kiểm tra các lệnh được hỗ trợ trong lõi vi xử lý RISC-V RV32IME, khả năng giao tiếp của NoC 4x4 thông qua mô phỏng trên phan mềm Vivado và Kit VC707 FPGA. GIỚI THIỆU DE TÀI 1. Tông quan đề tài Trong thời điểm hiện tại, vi xử lý mã nguồn mở RISC-V [1] đang thu hút sự quan tâm và tạo ra triển vọng cho một cuộc cách mạng toàn diện trong ngành công nghệ thông tin trên toàn thế giới.
Mang đến một sự hứa hen mới trong thay đổi bối cảnh của ngành điện toán và vi mạch. Hiện nay có rất nhiều đồ án, nghiên cứu khoa học về đề tài RISC-V, trong đó hướng thiết kế kiến trúc RISC-V là cơ bản và dễ tiếp cận nhất với sinh viên. Qua đó mà sinh viên có thể làm quen với một ISA mới, cách thiết kế một vi xử lý dựa trên kiến trúc đã tìm hiểu. Do đó việc chọn kiến trúc của RISC- V làm hướng nghiên cứu và phát triển những ứng dụng dựa trên nó rất đa dạng cả về lĩnh vực công nghiệp và học thuật.
Trong các hệ thống tích hợp hiện nay, sự tăng cường của kích thước và tính phức tạp của các thành phần đã tạo ra những thách thức trong việc quản lý và truyền dữ liệu giữa chúng như đa lõi, đa luồng, hay phần cứng cho các ứng dụng máy học, xử lý tín hiệu số thì việc sử dụng bus truyền thống gây ra độ trễ lớn, khó quản lý và tiêu tốn năng lượng. Vì vậy việc nghiên cứu và phát trién những giải thuật và giao thức để hỗ trợ giao tiếp các thành phần trong chip rất quan trọng. NoC (Network on Chip) được xem là 1 giải pháp giúp quản lý việc truyền dữ liệu và giảm sự xung đột trong quá trình yêu cầu tài nguyên trong chip.