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

Thiết kế bộ nhớ đệm lệnh cho vi xử lý RISC-V

65 554 8

Đ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

Định dạng
Số trang 65
Dung lượng 1,75 MB

Nội dung

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN VĂN LINH THIẾT KẾ BỘ NHỚ ĐỆM LỆNH CHO VI XỬ LÝ RISC-V Ngành: KHOA HỌC MÁY TÍNH Mã số: 60480101 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng năm 2019 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG TP HCM Cán hướng dẫn khoa học: TS Phạm Quốc Cường Cán chấm nhận xét 1: PGS.TS Phan Công Vinh Cán chấm nhận xét 2: TS Huỳnh Trọng Thưa Luận văn thạc sĩ bảo vệ tại: Trường đại học Bách Khoa - ĐHQG TP.HCM, ngày 02 tháng 07 năm 2019 Thành phần hội đồng đánh giá luận văn thạc sỹ gồm: PGS.TS Trần Văn Hoài TS Nguyễn Trần Hữu Nguyên PGS.TS Phan Công Vinh TS Huỳnh Trọng Thưa PGS.TS Phạm Trần Vũ Xác nhận chủ tịch hội đồng đánh giá luận văn Trưởng khoa quản lý chuyên ngành sau luận văn sữa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA PGS.TS Trần Văn Hoài CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA NHIỆM VỤ LUẬN VĂN THẠC SĨ •••• Họ tên học viên: NGUYỄN VĂN LINH MSHV: 11570217 Ngày, tháng, năm sinh: 10/09/1987 Nơi sinh: Quảng Ngãi Ngành: Khoa học máy tính Mã số: 60480101 I II TÊN ĐỀ TÀI: Thiết kế nhớ đệm lệnh cho vi xử lý RISC-V NHIỆM VỤ VÀ NỘI DUNG: • Nghiên cứu tổng quát yêu cầu hệ thống vi điểu khiển IoT • Nghiên cứu kiến trúc tập lệnh RISC-V, vi kiến trúc CPU sử dụng kiến trúc tập lệnh Nghiên cứu chi tiết vi điều khiển IoT Pulpino sử dụng CPU RISC-V • Thiết kế, thực tích họp nhớ đệm lệnh vào vi điều khiển IoT Pulpino Xây dựng tảng để mô phỏng, tổng hợp, đo lường lượng tiêu thụ nhằm đánh giá thiết kế hệ thống III NGÀY GIAO NHIỆM VỤ : 11/02/2019 III NGÀY HOÀN THÀNH NHIỆM VỤ : 02/06/2019 V CÁN Bộ HƯỚNG DẪN : TS Phạm Quốc Cường Tp HCM, ngày tháng năm 20 CÁN Bộ HƯỚNG DẪN (Họ tên chữ ký) TRƯỞNG KHOA KH & KTMT (Họ tên chữ ký) TS Phạm Quốc Cường LỜI CẢM ƠN Lời tơi xin chân thành cảm ơn tói Thầy hướng dẫn, TS Phạm Quốc Cường tin tưởng giao đề tài, hỗ trợ công cụ hướng dẫn tận tình suốt trình thực luận văn Tôi xin cảm ơn anh em kĩ sư cơng ty Marvell, trưởng nhóm Nguyễn Văn Quang Ánh, đồng nghiệp Phạm Quang Huy, Trần Tấn Đức giúp đỡ, hỗ trợ công việc lúc thực luận văn này, có góp ý quý báu kiến trúc thiết kế Cuối xin cám ơn gia đình vợ tơi ủng hộ động viên suốt thời gian qua TÓM TẮT LUẬN VĂN Những dự án nghiên cứu IoT dự báo có hon 20 tỷ thiết bị sử dụng mạng thập kỷ tới Những thiết bị có đặc điểm riêng yêu cầu khắt khe mức tiêu thụ lượng thấp, đa dạng mức độ ứng dụng nên cần hiệu xử lý đa dạng từ đơn giản đến phức tạp Ngoài ra, với nhu cầu số lượng lớn thiết bị yêu cầu giá thành cần rẻ Tù yêu cầu đó, luận văn đặt mục tiêu nghiên cứu tìm giải pháp cải tiến cho vi điều khiển sử dụng cho lĩnh vực IoT Vi kiến trúc thường gặp vi điều khiển nói chung, đặc biệt vi điều khiển sử dụng CPU ARM sử dụng nhớ SRAM lớn mà CPU truy cập trực tiếp gọi nhớ “tightly-coupled” Mặc dù liệu truy cập nhanh, SRAM có giá thành cao phải ln trì nguồn cấp để lưu trữ liệu Việc sử dụng kiến trúc nhớ thường không phù họp với ứng dụng IoT, đặc biệt cần tăng giảm kích thước nhớ cho ứng dụng phức tạp đơn giản Vi điểu khiển IoT Pulpino vi điều khiển kiến trúc nhớ Trong luận văn này, tác giả đề xuất vi kiến trúc cho vi điều khiển IoT Pulpino thực phần vi kiến trúc thơng qua thiết kế thực phần cứng nhớ đệm lệnh Sau đó, thiết kế tích họp vào vi điều khiển IoT Pulpino đánh giá toàn diện qua môi trường mô phỏng, tổng hợp đo lường lượng tiêu thụ Ket thực nghiệm cho thấy việc thay nhớ “tightly-coupled” nhớ đệm lệnh với % kích thước SRAM nhỏ cho hiệu suất tương đương với điểm CoreMark không thay đổi so với thiết kế gốc Ket thời gian truy cập nhớ trung bình AMAT khoảng từ 1.01 đên 1.13 chu kì clock, giúp cho tống khối lượng cống lượng tiêu thụ vi điều khiển Pulpino giảm lên đến 27% ABSTRACT IoT research projects are expected to have more than 20 billion devices used in this network in the next decade These devices have their own characteristics such as stringent requirements for low energy consumption, variety of application levels, so the processing performance varies from simple to complex In addition, with the demand for a large number of devices, the price needs to be low From those requirements, the thesis aims to research and find innovative solutions for microcontrollers used for this IoT field Common micro architectures of microcontrollers in general, especially microcontrollers using ARM CPUs, use large SRAM memories that CPU can access directly called "tightly-coupled" memory Although the data is quickly accessed, SRAM has a high cost and must maintain the power source to retain data Using such memory architecture is not suitable for IoT applications, especially when it is necessary to increase or reduce the memory size for more complex or simpler applications Pulpino is also an IoT microcontroller of such memory architecture In this thesis, the author proposes a new microarchitecture for IoT Pulpino microcontroller and implements a part of that new microarchitecture through the design and implementation of an instruction cache hardware Then, this design is integrated into the Pulpino IoT microcontroller and is comprehensively evaluated through simulation, synthesis and power consumption estimation environments Experimental results show that, with % SRAM smaller, instruction cache design can give equivalent performance as "tightly-coupled" memory with same benchmark score from CoreMark The average memory access time AMAT only ranges from 1.01 to 1.13 clock cycles but help the Pulpino microcontroller's total gate size reduction of and power consumption reduction of up to 27% LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trù kết tham khảo tù cơng trình khác ghi rõ luận văn, cơng việc trình bày luận văn tơi thực chưa có phần nội dung luận văn nộp để lấy cấp trường trường khác Ngày 02 tháng năm 2019 Nguyễn Văn Linh Danh sách từ viêt tăt CPU Central Processing Unit RISC-V Reduced Instruction Set Computer - Five SRAM Static Random Access Memory FRAM Ferroelectric Random Access Memory AMAT Average Memory Access Time RTL Register Transfer Level WRU Way Replacement Unit FSM Finite State Machine MCU Microcontroller Unit IoT Internet of Things FPU Internet of Things PULP .Parallel Ultra Low Power LSU Load Store Unit ALU Arithmetic Logic Unit MAC Multiply-Accumulate operation SIMD Single Instruction Multiple Data DMA Direct Memory Access Danh sách hình vẽ Hình 2.1: Định dạng lệnh RISC-V 18 Hình 2.2: Sơ đồ khơi CPU RI5CY 22 Hình 2.3: kiến trúc pipe-line CPU RI5CY 23 Hình 2.4: Minh họa giao thức truy cập nhớ (cơ bản) 25 Hình 2.5: Minh họa giao thức truy cập nhớ (Back-to-back) 25 Hình 2.6: Minh họa giao thức truy cập nhớ (đáp ứngchậm) 25 Hình 2.7: Sơ đồ khối vi điều khiển Pulpino 26 Hình 2.8: Bản đồ truy cập nhớ vi điều khiển Pulpino 27 Hình 2.9: Mơ hình vi xử lý với cấp nhớ đệm 28 Hình 2.10: Sơ đồ khối vi điều khiển MSP430FR5739 35 Hình 2.11: Sơ đồ khối FRAM controller MCU MSP430 36 Hình 3.1: Vi kiến trúc đề xuất cho Pulpino 38 Hình 3.2: Kiến trúc thiết kế nhớ đệm lệnh 39 Hình 3.3: Sơ đồ khối tổng quát khối cache controller 40 Hình 3.4: Khối HiƯmiss judgement 41 Hình 3.5: Khối WRU thực LFSR bit 42 Hình 3.6: Khối CTRL FSM 42 Hình 3.7: Khối Performance stat 44 Hình 3.8: Khối AXI Double Buffer 44 Hình 3.9: Bộ nhớ SRAM single port 45 Hình 3.10: cổng inpuưoutput cache top module 46 Hình 3.11: cổng inpuưoutput cache controller 47 Hình 3.12: Verdi schematic top cache module 48 Hình 4.1: Kiến trúc môi trường mô Pulpino 49 Hình 4.2: Các bước chạy mơi trường mơ Pulpino 51 Hình 4.3: Debug trực quan bang Verdi 52 Hình 4.4: Biểu đồ kết AMAT 55 Hình 4.5: Biểu đồ phân tích lượng Pulpino gốc 57 Hình 4.6: Biểu đồ so sánh lượng cấu hình cache 58 Danh sách bảng Bảng 1.1: Những CPU RISC-V tiêu biểu 14 Bảng 2.1: Bảng tập lệnh sở mở rộng RISC-V 16 Bảng 2.2: Phân loại nhóm lệnh tập lệnh RV32I 17 Bảng 2.3: Những ghi điều khiển HW Loop 20 Bảng 2.4: Bảng inpuưoutput phát lệnh 24 Bảng 2.5: Bảng so sánh FRAM vói nhớ khác 34 Bảng 4.1: Bảng kết đo tỉ lệ cache miss nhớ đệm lệnh 53 Bảng 4.2: Bảng so sánh tài nguyên cổng tiêu tốn 54 Bảng 4.3: Bảng so sánh kết Benchmark tù CoreMark 56 Bảng 4.4: Bảng so sánh kết đo lượng bang SpyGlass Power 58 - Sử dụng trực tiếp sv task mem_preload() test bench Task đọc mã máy liệu từ file 12_stim.slm, tcdm_bank0.slm backdoor ghi trực tiếp vào hai nhớ SRAM - Sử dụng SPI Master VIP đọc mã máy liệu từ file spi_stim.txt thông qua cổng giao tiếp SPI slave front-door ghi vào hai nhớ SRAM - Sử dụng JTAG Model truy cập thiết lập hoạt động cho CPU CPU sau đọc Boot code từ Boot RAM thực thi Phan Boot Loader Boot code thực đọc toàn lệnh liệu thiết bị flash bên ngồi thơng qua cổng SPI Master ghi vào hai nhớ SRAM Đe kiểm tra kết mô phỏng, test bench sử dụng thiết bị ngoại vi này, ví dụ nhu: - Chng trình truyền chuỗi kí tự có ý nghĩa bên ngồi thơng qua cổng UART - Hoặc chng trình tự so sánh kết ghi giá trị định truớc vào nhớ liệu Ở cuối chng trình, test bench sử dụng cổng SPI để đọc giá trị so sánh với giá trị định truớc để biết kết mơ có hay khơng - Hoặc chng trình điều khiển chân GPIO test bench can monitor chân để kiểm tra kết mơ Mơi truờng có sẵn hai test case, để kiểm tra toàn chức để đánh giá hiệu suất CPU RI5CY Bộ test case dùng để đánh giá hiệu suất CPU bao gồm ứng dụng nhu: - Giải thuật AES-CBC - Giải thuật Conv2D - Biến đổi Fourier nhanh (FFT) - Bộ lọc Finite Impulse Response (FIR) - Giải thuật SHA-3 (Keccak) - Giải thuật SHA - Giải thuật Inflexion Point Method (IPM) - Giải thuật Fast Discrete Curvelet Transform (FDCT) Trong q trình luận văn này, tồn mơi truờng mơ đuợc kế thừa hoàn toàn thêm vào hai tính mới: - Sửa đối test bench để dump waveform duới định dạng *.fsdb đuợc dùng cho cơng cụ Debug Verdi - Tích họp chuơng trình Core Mark dùng để đo benchmark cho CPU 50 Hình minh họa quỉ trình chạy mơỉ trường mổ Report Hình 4.2: Các bước chạy môi trường mô Pulpino 4.1.2 Cách chạy mơ ❖ Thiết lập Tồn mơi trường mồ xây dựng quản lý CMake Do đó, cần cài đặt CMake trước với phiên yêu cầu CMake 2.8.0 Một số phần mềm khác cần cài đặt Python (phiên >=2.6) công cụ chạy mô ModelSỉm hay QuestaSỉm Ngồi ra, trình biên dịch GCC ETH cho CPU RI5CY cần cài đặt sẵn (ri5cy_gnu toolchain) ❖ Chạy mô Sau khỉ chuẩn bị tất phần mềm trình bỉên dịch, chương trình mơ thực qua bước sau: Bước 1: tạo môi trường làm việc (đặt tên build) mkdir build cd build cp Jsw/cmake_configure.rừcv.gcc.sh / Jcmake_configure.riscv.gcc.sh Sau chạy script trên, tồn mơi trường mơ chuẩn bị kể cảc test case Bước 2: biên dịch phần cứng dùng QuestaSim make vcompile Bước 3: chạy mơ phòng test case Chạy mơ phòng với giao diện GUI: make .vsim 51 Chạy mô với giao diện Console: make .vsimc Sau chạy xong, kết đuợc đặt apps// ❖ Chạy regression Phần mềm CMake hỗ trợ sẵn lệnh ctest để chạy lúc nhiều test case - Lệnh chạy tất test case kiểm tra chức CPU: ctest -Lrừcv_test -j8 —timeout 3000 —output-on-failure - Lệnh chạy tất test case đo hiệu suất CPU: ctest -L bench -j8 —timeout 3000 —output-onfailure 4.1.3 Debug giao diện Verdi Việc sử dụng giao diện Debug công cụ Verdi cho hiệu suất tốt nhiều so vói sử dụng giao diện Visualizer Questa Sau chạy mô nhu trên, file waveform tên trace.fsdb đuợc đặt apps// Sử dụng lệnh duới để tiến hành biên dịch phần cứng mở giao diện GUI công cụ Verdi: Lệnh vericom dùng để biên dịch mã nguồn phần cứng testbench thành thu viện Verdi: verỉcom +systemverilogext+.sv+.SV -sverilog +verilog2001ext+.v -/ rtl.lst -/ tb.lst Sau dùng lệnh Verdi để mở waveform, option -ssf dùng để dump file *.fsdb cần mở để debug: verdi -sv -ntb_opts -ssv -ssy -ssf ,/apps//trace.fsdb -top tb Trong đó, rtl.lst list file gồm tất file RTL MCU Pulpino tb.lst list file gồm tất thành phần đuợc sử dụng test bench file Signal View Waveform Analog Tools Window 53,260 4» ]21.999.491869 \x\ ▼ -11.260.508131 X Ins |(sl| (si By: o ▼ 102000 Q [►] 43 Goto G2 , , , |3? 3CP |32,40P [3? sop [33,60P P2, 70.0 , , |3? pop - , ■ G2 400 I 410 S3 [fe fetch_req_i 39 tfci fetch_addr_i[31:0| 1 _ H V fetch gnt 0 u f etch_fwalid_a 39 [fell fetch rdata [ 127:0 11 a aÔ23 Ỡ00Ũ Ỗ0Ổ7 ŨOa? a023 laio 07b? Iff01 * $30 07*ỊlalO - 053*àí ÍỂ* £ 0S13*ts7 aO* ỊỉedO * Ĩe7 a02*ịíed0 SI cs(2:0] 0*pEQ RE*I WAIT REFILL DONE I ■ G3 1*1 * I * í I 33 111 TA0_req_o[3:0] 0Ii 33 ĨB TAG addr o[5:0| LQ [fej {O, 0, 0} Ĩ {41 0, 0} TAG_rdata_i[3:Q][6:0] Đ Ife) TAG_wdata_o[6:0] SI 13 TAG we o BI (H D*T& int 11 _ _ |o, , , , , , , , |2ipqo, |4ọ,pqo |6Ọ,pqo, , |aọ,pqo, , , , , |iọoKqoọ , , , |i?0, qi Hình 4.3: Debug trực quan Verdi 52 4.2 Kết mơ Đe chọn lựa cấu hình phù họp cho cache, thực nghiệm tiến hành đo hiệu suất số cấu hình cache sau: Direct map: way-lKB, way-2KB, lway-4KB, lway-8KB Set Associate : 2way-2KB, 2way-4KB, 2way-8KB, way-4KB, 4way-8KB, 8way8KB Tất cấu hình sử dụng cache block có độ lớn 128 bit Quá trình đo hiệu suất sử dụng môi trường mô chạy QuestaSim hãng Mentor Graphics Tất ứng dụng dùng để đo hiệu suất CPU RI5CY dự án Pulp đề cập phần 4.1.1 dùng cho thực nghiệm Và đề cập phần thực cache controller (3.3.1), phần cứng cache thực sẵn hai counter để đếm số lần CPU truy cập vào cache đếm số lần cache miss Kết hai counter báo cáo file vsim.log sau lần chạy ứng dụng Sau cấu hình chạy mơ phỏng, kết tỉ lệ “cache miss” tùng cấu hình tổng họp trình bày bảng kết sau: ứng dụng 1W 1KB 1W 2KB 1W 4KB 1W 8KB 2W 2KB 2W 4KB 2W 8KB 4W 4KB 4W 8KB 8W 8KB aes_cbc 12.8% 1.58% 0.95% 0.47% 1.84% 1.01% 0.46% 1.22% 0.40% 0.41% conv2d 2.36% 0.86% 0.83% 0.43% 0.69% 0.46% 0.45% 0.48% 0.46% 0.47% fft 0.72% 0.18% 0.17% 0.14% 0.17% 0.15% 0.15% 0.15% 0.15% 0.15% fir 1.33% 0.29% 0.27% 0.08% 0.29% 0.23% 0.22% 0.24% 0.23% 0.24% keckak 9.61% 0.59% 0.24% 0.19% 0.77% 0.24% 0.08% 0.09% 0.08% 0.08% sha 5.38% 0.59% 0.32% 0.32% 0.82% 0.30% 0.19% 0.23% 0.19% 0.21% ipm 8.47% 3.95% 2.11% 1.38% 4.53% 2.14% 1.25% 1.19% 1.15% 1.19% fdctfst 2.94% 0.73% 0.68% 0.55% 0.72% 0.58% 0.56% 0.59% 0.58% 0.59% Bảng 4.1: Bảng kết đo tỉ lệ cache miss nhớ đệm lệnh Dựa vào bảng kết tỉ lệ “cache miss”, ta rút nhận xét sau: 53 - Tỉ lệ “cache miss” cache sử dụng nhớ với kích thước 1KB 2KB cao Do đó, cần loại bỏ cấu hình way-1KB, way-2KB 2way-2KB khỏi danh sách cấu hình nên sử dụng - Những cấu hình cache có kích thước KB có kết tương đồng kết tốt số miss rate - Những cấu hình cache có kích thước 4KB cho kết tương đối tốt khơng cấu hình cache có kích thước 8K, cấu hình Way-4KB cho kết tốt so vói cấu hình Way-4KB 2Way4KB, đặc biệt ứng dụng ipm Tù nhận xét trên, chưa thể tìm cấu hình tối ưu mà cần đánh giá thêm mặt tiêu tốn tài nguyên thông qua việc tiến hành tổng hợp cấu hình để có thêm thống kê tài nguyên sử dụng Tù đó, có đủ sở để lựa chọn cấu hình phù họp 4.3 Kết tổng họp Những cấu hình đề cập phần 4.2 tổng họp công cụ Genus hãng Cadence sử dụng tần số clock 500Mhz thư viện 16nmFF Ngoài ra, MCU Pulpino gốc tổng họp với tần số thư viện cho kết tổng số cổng 705kG Kết tổng hợp MCU Pulpino sử dụng cấu hình cache khác trình bày bảng sau (chưa bao gồm FRAM): Cấu hình lK-lWay Tổng số cổng Tài nguyên dùng Tỉ lệ so với MCU (kG) cho cache (kG) Pulpino gốc 494 36 -30% 2K-lWay 501 43 -29% 2K-2Way 524 -25% 4K-lWay 513 66 55 4K-2Way 537 79 -24% 4K-4Way 585 125 -17.1% 8K-lWay 540 -23.4% 8K-2Way 562 81 104 8K-4Way 609 156 -13.6% 8K-8Way 704 246 0% -27% -20.3% Bảng 4.2: Bảng so sánh tài nguyên cổng tiêu tốn 54 Tù kết bảng thấy kích thước cache có way sử dụng tài nguyên cấu hình 8K-lWay sử dụng SRAM gấp đơi so với cấu hình 4K-2Way kết tổng họp cho thấy hai cấu hình sử dụng lượng tài nguyên tương đương Kết họp với kết hiệu suất trình bày phần 4.2, cấu hình nên chọn 4K- lWay (tiêu tốn tài nguyên với hiệu suất chấp nhận được), 8K-lWay(cân tài nguyên tiêu tốn hiệu suất), 8K-2Way(tiêu tốn nhiều tài nguyên cho hiệu suất cao hơn) 4.4 Kết tính AMAT Phần trình bày so sánh số thời gian truy cập nhớ trung bình để đánh giá ảnh hưởng cache đối vói thời gian đọc lệnh CPU Khi sử dụng nhớ SRAM riêng biệt cho lệnh, thời gian đọc lệnh CPU chu kì clock Tác giả so sánh so AM AT cho ba cấu hình cache lựa chọn phần 4.2 thông qua biểu đồ AMAT (chu kỳ clock) AVG fdctfst ipm sha keckak fir fft conv2d aescbc 0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 ■ 4KB-1W ■ 8KB-1W ■ 8KB-2W Hình 4.4: Biểu đồ kết AMAT Tỉ lệ “cache miss” thấp giúp cho số AMAT tính theo số chu kỳ clock thấp theo Đối với cấu hình cache kích thước KB số AM AT trung bình 1.04 cấu hình cache kích thước 4KB số AMAT trung bình 1.07 Trong đó, thấp giải thuật Keckak cao giải thuật imp Cụ thể, với cấu hình cache 8KB-2W, giải thuật có số AM AT từ 1.01 đến 1.13 Điều chứng tỏ rằng, việc thay nhớ lệnh SRAM 55 nhớ đệm lệnh khơng ảnh hưởng nhiều đến hiệu suất CPU Ngoài ra, tác giả cho hầu hết số lần “cache miss” xảy hầu hết lệnh cần đọc chưa có cache lần đọc (compulsory miss), vấn đề giải cách thực thêm chức prefetch cho cache Cache cần tải trước vài cache line mà CPU cần tới lần đọc lệnh Khi đó, số AMAT tiến gần Tuy nhiên, thực chức prefetch tương đối phức tạp cần nhiều thời gian để thiết kế 4.5 Kết chạy Benchmark CoreMark Phần trình bày kết benchmark để đánh giá ảnh hưởng cache hiệu suất tính toán CPU Điểm số đo chương trình mơ chạy ứng dụng CoreMark EEMBC giới thiệu phần 2.6 Điểm benchmark đo đối vói MCU Pulpino gốc sử dụng nhớ SRAM “tightly-coupled” riêng biệt cho lệnh 3.03 Kết điểm benchmark MCU Pulpino sử dụng cấu hình cache khác trình bày bảng sau: Cấu hình Cache Điểm Core Mark Miss rate So với MCU gốc 8KB 2W 3.03 0.25% 0% 8KB 1W 3.03 0.25% 0% 4KB 1W 3.03 0.33% 0% 4KB 4W 2.78 0.8% -8% Bảng 4.3: Bảng so sánh kết Benchmark từ CoreMark Bảng so sánh kết từ CoreMark cho thấy với cấu hình lựa chọn phần 4.2 cho kết điểm benchmark tương đương với thiết kế gốc có tỉ lệ miss rate thấp Điều minh chứng việc thay đổi thiết kế dùng nhớ đệm lệnh không ảnh hưởng đến hiệu suất xử lý CPU 56 4.6 Kết so sánh lượng tiêu thụ Phần trình bày kết so sánh lượng tiêu thụ để đánh giá thay đổi lượng tiêu thụ sau thay đổi thiết kế Kết đo công cụ SpyGlass Power Estimation hãng Synopsys Chương trình đo sử dụng waveform tù test case risc-v official test ứng dụng tham khảo hoạt động MCU lúc đo lượng tiêu thụ Đầu tiên, hình 4.5 đây, kết tiêu thụ lượng MCU Pulpino gốc trình bày Dựa vào hai biểu đồ phía dưới, nhận thấy ảnh hưởng SRAM đến lượng tiêu thụ MCU Pulpino sau: - Năng lượng tiêu tốn cho phần lượng rò (leakage) chiếm đến 78% đặc tính SRAM Đây phần cải tiến quan trọng mà FRAM mang đến cho MCU FRAM dạng nhớ nonvalotile nên lượng rò gần - Năng lượng tiêu tốn cho hai nhớ SRAM (lệnh liệu) 74% tương đương vói tài nguyên mà hai nhớ sử dụng PULPINO(BASE) power est ■ IRAMMEM ■ DRAM MEM Bother logics Hình 4.5: Biểu đồ phân tích lượng Pulpino gốc Tiếp theo, kết ước lượng lượng tiêu thụ vi điều khiển (chưa bao gồm FRAM) với cấu hình cache khác so sánh báo cáo bảng sau: 57 Vi điều khiển Leakage Active Total So với Pulpino (mW) 0.87 (mW) 3.72 gốc Pulpino gốc (mW) 2.85 1.08 3.04 -18% 0.96 2.89 -22% 0.92 2.73 -27% Pulpino sử 1.96 - dụng 8KB2W1$ Pulpino sử 1.93 dụng 8KB 1WI$ Pulpino sử 1.81 dụng 4KB1WI$ r Bảng 4.4: Bảng so sảnh kêt đo lượng băng SpyGỉass Power Kết lượng tiêu thụ tương đồng với kết tài nguyên tiêu thụ cấu hình cache 4KB lway tối ưu lượng giảm tới 27% cấu hình cache 8KB 2way tối ưu cấu hình vói mức giảm 18% Thông qua kết cho thấy việc giảm kích thước SRAM giảm lượng rò nhiều, lên tới 36.5% trường hợp 4KB way cache Chi tiết so sánh lượng rò lượng hoạt động cấu hình thể qua biểu đồ so sánh sau đây: Power comparision 2.5 1.5 0.5 Leakage Active ■ Pulpinogốc I Pulpino8K2W BPulpinoSKlW ■Pulpino4KlW Hình 4.6: Biểu đồ so sánh lượng cẩu hình cache 58 Chương Kết luận 5.1 Kết luân Luận văn cung cấp cho người đọc nhìn tổng quan yêu cầu hệ thống IoT, thách thức hệ thống sử dụng vi xử lý kiến trúc tập lệnh có quyền sở hữu tập đoàn lớn Intel, ARM Tù đó, tác giả giói thiệu kiến trúc tập lệnh RISC-V mới, hoàn toàn mở miễn phí, phép dễ dàng tùy chỉnh cho phù họp với tùng sản phẩm IoT riêng biệt Cụ thể tác giả đề xuất thay đổi vi kiến trúc vi điều khiển IoT sử dụng vi xử lý xây dựng dựa kiến trúc tập lệnh này, nhằm giúp cho vi điều khiển thiết kế linh hoạt hơn, tiết kiệm mặt tiêu tốn tài nguyên lượng tiêu thụ Luận văn tiến hành thực phần đề xuất thay đổi vi kiến trúc vi điều khiển thiết kế thực nhớ đệm lệnh có cấu hình tối ưu cân hiệu suất tài nguyên Luận văn tái lập môi trường mô tù mã nguồn mở Github đồng thời nâng cấp khả debug cho mơi trường việc tích họp cơng cụ debug trực quan Verdi Luận văn nghiên cứu tích họp ứng dụng đo benchmark (tên Core Mark) mà CPU ARM sử dụng để đo đánh giá CPU RISC-V sử dụng vi điều khiển IoT Luận văn xây dựng môi trường tổng họp để tổng họp toàn RTL vi điều khiển cổng logic Ngồi ra, luận văn xây dựng môi trường để ước lượng lượng tiêu thụ Luận văn sử dụng hai môi trường để đánh giá thay đổi tài nguyên cổng thay đổi lượng tiêu thay đổi thiết kế ban đầu sang thiết kế đề nghị Luận văn dựa vào kết thực nghiệm để lựa chọn cấu hình nhớ đệm lệnh phù hợp đem đến cải tiến tích cực cho vi điều khiển Pulpino Cụ thể, với việc sử dụng nhớ đệm 8KB thay cho nhớ 32KB giúp cho vi điều khiển giảm tài nguyên cổng sử dụng lượng tiêu thụ 27% Chi phí mặt hiệu suất thấp số AMAT nhớ đệm lệnh khoảng từ 1.01-1.13 chu kỳ clock điểm số CoreMark tương đương với điểm số thiết kế gốc 3.03 59 Tuy nhiên, bên cạnh kết đạt được, luận văn nhiều hạn chế cần phát triển làm rõ thêm, cụ thể là: • Luận văn chưa sử dụng mơ hình verilog thư viện cơng nghệ nhớ FRAM cho môi trường mô phỏng, môi trường tổng họp môi trường ước lượng lượng tiêu thụ • Luận văn chưa hoàn thành thiết kế thực nhớ đệm liệu • Thiết kế nhớ đệm lệnh chưa có chức prefetch nên tỉ lệ “compulsory cache miss” cao 5.2 Hướng phát triển Tù đánh giá mặt hạn chế đề tài, hướng phát triển cần nghiên cứu liệt kê đây: • Đối với thiết kế nhớ đệm lệnh, cải tiến sau đề nghị: - Cải thiện hiệu suất nhớ đệm lệnh cách thực bổ sung thêm chức “prefetch” để giảm tỉ lệ “compulsory cache miss” Cách đơn giản để thực chức thêm khả “đọc lệnh giả” cho CPU Nghĩa lúc CPU xử lý lệnh có “prefetch buffer” gửi yêu cầu đọc lệnh giả xuống cache lệnh để cache đọc trước lệnh mà CPU đọc - Hoàn thiện chức điều khiển phần mềm nhớ đệm lệnh cho phép CPU lựa chọn flush cache line định thay flush tồn cache - Hồn thiện chức debug thông qua thực ghi trạng thái truy cập cổng JTAG - Hiện thực khối WRU (Way Replace Unit) giải thuật LRU thay giải thuật random LFSR Rất nhiều nghiên cứu sử dụng giải thuật LRU cải thiện hiệu suất khoảng 20% so với giải thuật Random - Hiện thực chức “cache-as-memory” lựa chọn cho MCU Chức cho phép vô hiệu cache lệnh đối xử với nhớ lệnh SRAM bình thường sử dụng cho ứng dụng đơn giản có kích thước mã lệnh nhỏ Tồn chương trình tải lần lên nhớ SRAM từ thời điểm CPU boot 60 • Đối với thiết kế MCU Pulpino đề xuất phần nội dung luận văn, cần có nghiên cứu để hoàn thiện: - Hiện thực module “AXI FRAM controller” bổ sung mơ hình verilog thư viện cơng nghệ nhớ FRAM cho môi trường mô phỏng, môi trường tổng họp môi trường đo lượng tiêu thụ Tù đó, kết để đánh giá thực kiến trúc MCU xác - Thiết kế thực nhớ đệm liệu thay cho nhớ liệu 32KB SRAM tương tự nhớ lệnh • Ngồi ra, đề tài có số mở rộng khác có liên quan như: - Trong năm gần đây, phương pháp kiểm thử thiết kế phần cứng UVM ('Universal Verification Methodology) vào sử dụng chứng tỏ tính ưu việt so với phương pháp trước Môi trường mô Pulpino sử dụng ngơn ngữ c SystemVerilog nâng cấp lên sử dụng tảng UVM nhằm tạo môi trường mô tốt dễ tái sử dụng, dễ debug tạo test case phức tạp mức “system test” - Vi kiến trúc MCU Pulpino tương đối đơn giản, cần bổ sung số thiết kế để giúp cho MCU phục vụ tốt cho ứng dụng IoT thêm module DMA hay giao diện ngoại vi khác cổng giao tiếp camera, âm (I2S), Bluetooth, - Như đề cập chương 3, sau thay đổi kiến trúc nhớ, cần đánh giá thay đổi chương trình thiết kế dành cho nhớ Boot ROM Đó hướng phát triển từ luận văn 61 Tài liêu tham khảo [1] K Asanovic, “Instruction Sets Should Be Free: The Case For RISC-V,” University of California at Berkeley, 2014 [2] A Waterman, "Design of the RISC-V Instruction Set Architecture," University of California at Berkeley, 2016 [3] V B p D S V D Aneesh Raveendran, "A RISC-V Instruction Set Processor-Microarchitecture Design and Analysis," in International Conference on VLSI Systems, Architectures, Technology and Applications (VLSI-SATA), Bangalore, 2016 [4] M G p S Andreas Traber, "RI5CY: User Manual," Integrated Systems Lab, ETHZ, Zurich, 2017 [5] p S A T I L A p D R E F K G L B M Gautschi, " Near- Threshold RISC-VCore With DSP Extensions for Scalable IoT Endpoint Devices," IEEE TRANSACTIONS ON VLSI SYSTEMS, vol 25, no 10, 2017 [6] M G Andreas Traber, "Pulpino: Datasheet," Integrated Systems Lab, ETHZ, Zurich, 2017 [7] D M S Sutherland, "Synthesizing SystemVerilogBusting the Myth that SystemVerilog is only for Verification," in Synopsys Users Group (SNUG) Silicon Valley, SantaClara, California, 2013 [8] Bailey, "FRAM memory technology - advantages for low power, fast write, high endurance applications," in IEEE International Conference on Computer Design, San Jose, 2005 [9] Micron Techonology, "Techninal note: Designing for High-Density DDR2 Memory" [10] Cypress Semiconductor, "F-RAM™Technology Brief White Paper," 2016 [11] VolkerRzehak, "Low-Power FRAM Microcontrollers Applications," Texas Instruments Deutschland, 2011 and Their [12] ARM Holdings, "CoreMark Benchmarking for ARM® Cortex® Processors," 2013 62 [13] A Traber, "Pulpino: A small single-core risc-v soc," in RISC-V Workshop, 2016 [14] A R V R Hrishikesh Jayakumar, "Energy-Aware Memory Mapping for Hybrid FRAM-SRAM MCUs in IoT Edge Devices," in 29th International Conference on VLSI Design and 2016 15th International Conference on Embedded Systems (VLSID), Kolkata, 2016 [15] A F Joseph Yiu, "Cortex-M Processors and the Internet of Things IoT white Paper," ARM, 2013 [16] w PriyaThanigai, "MSP430™ FRAMQualityand Reliability," Texas Instrument, 2014 [17] Texas Instrument, "Ultra-low-power consumption with the MSP430FR57XX family featuring FRAM," Texas Instrument, 2011 [18] w G William Cooper, "Revolutionizing context save and restore with MSP FRAM microcontrollers," Texas Instruments, 2015 [19] M & B A & K R & A M & N R & H M & L R & s c & R V & T p & o E B Zwerg, "An 82pA/MHz microcontroller with embedded FeRAM for energy-harvesting applications," in IEEE International Solid-State Circuits Conference, San Francisco, 2011 [20] NXP, "DSP56300 Family Manual, chapter 8," Freescale Semiconductor, 2005 63 LÝ LICH TRÍCH NGANG Họ tên: Nguyễn Văn Linh Ngày tháng năm sinh: 10/09/1987 Nơi sinh: Quảng Ngãi Địa liên lạc: 4.25 Ehomes A Nam Sài Gòn, Bình Hưng, Bình Chánh, Thành phố Hồ Chí Minh Số điện thoại: 0976360130 ❖ QUÁ TRÌNH ĐÀO TẠO Bậc đào tạo Thời gian Trường đào tạo Chuyên ngành 20052010 Đại học SPKT TPHCM Cơ điện tử Đại học 20152019 Đại học Bách Khoa TPHCM Khoa học máy tính Cao học ❖ Q TRÌNH CƠNG TÁC Thời gian Đơn vị cơng tác Vị trí 2010 - 2014 Cơng ty thiết kế Renesas Việt Nam Kĩ sư thiết kế phần cứng 2014 - 2019 Công ty công nghệ Marvell Vietnam Kĩ sư thiết kế phần cứng 64 ... tập lệnh RISC-V vi xử lý điển hình thực kiến trúc tập lệnh 14 • Tìm hiểu vi điều khiển Pulpino vi điều khiển sử dụng vi xử lý RISC-V phát triển hướng đến sản phẩm IoT • Đề xuất thực nhớ đệm lệnh, ... 2.2 Vi xử lý RI5CY 2.2.1 Giới thiệu vi xử lý RI5CY RI5CY vi xử lý có thiết kế tương đối hoàn thiện dựa kiến trúc tập lệnh RISC-V nằm dự án PULP, dự án từ ban đầu hướng đến phát triển thiết kế. .. II TÊN ĐỀ TÀI: Thiết kế nhớ đệm lệnh cho vi xử lý RISC-V NHIỆM VỤ VÀ NỘI DUNG: • Nghiên cứu tổng quát yêu cầu hệ thống vi điểu khiển IoT • Nghiên cứu kiến trúc tập lệnh RISC-V, vi kiến trúc CPU

Ngày đăng: 21/11/2019, 18:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w