ISSN 1859 1531 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(96) 2015, QUYỂN 1 91 XÂY DỰNG MÔ HÌNH CẤU HÌNH LẠI TỪNG PHẦN ĐỘNG CHO MẠNG TRÊN CHIP TRÊN FPGA IMPLEMENTATION OF A DYNAMIC PARTIAL R[.]
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(96).2015, QUYỂN 91 XÂY DỰNG MƠ HÌNH CẤU HÌNH LẠI TỪNG PHẦN ĐỘNG CHO MẠNG TRÊN CHIP TRÊN FPGA IMPLEMENTATION OF A DYNAMIC PARTIAL RECONFIGURABLE FPGA FRAMEWORK FOR FLEXIBLE NETWORK ON CHIP Nguyễn Văn Cường1, Trần Thanh2, Phạm Ngọc Nam1 Trường Đại học Bách khoa Hà Nội; cuong.nguyenvan@hust.edu.vn Trường Đại học Đông Á Đà Nẵng; thanht@donga.edu.vn Tóm tắt - Linh hoạt khả mở rộng đặc tính quan trọng thiết bị nhúng đại Cấu hình lại phần động (Dynamic Partial Reconfigurable) FPGA kiến trúc mạng chip (NetworkonChip: NoC) giải pháp tuyệt vời cho yêu cầu thiết kế Bài báo trình bày mơ hình cấu hình lại phần động FPGA cho mạng chip Mơ hình cho phép cấu hình lại kích thước đệm định tuyến thời gian chạy thích nghi theo trạng thái lưu lượng ứng dụng đưa vào mạng để tối ưu thông số độ trễ, thông lượng hay lượng tiêu thụ Mơ hình chúng tơi thực kiểm chứng FPGA Virtex-6chíp XC6VLX240T với hai kiến trúc Bus AXI PLB Abstract - Flexibility and scalability are very important characteristics of modern embedded devices The Dynamic Partial Reconfigurable (DPR) FPGA and Network on Chip (NoC) architectures are excellent solutions to these requirements In this paper, we design a dynamic partial reconfigurable model based on FPGA for Network on Chip The aim of this study is to perform the buffer size reconfiguration in the router at run-time adapted to the traffic state of applications that are used for the network in order to optimize some parameters such as lantency, throughput or energy consumption This model is implemented and tested on Virtex-6 XC6VLX240T FPGA with both AXI and PLB Buses Từ khóa - cấu hình lại phần động; mạng chip; FPGA; đệm; định tuyến; thiết bị nhúng Key words - DPR; NoC; FPGA; Buffer; Router; Embedded device Đặt vấn đề Với ưu việt công nghệ bán dẫn nay, số lượng ứng dụng tích hợp lên chip ngày tăng Kiến trúc Bus truyền thống khơng cịn phù hợp với yêu cầu hướng công nghệ [1-2] Kiến trúc NoC đề xuất xem giải pháp thay cho kiến trúc Bus Kiến trúc NoC cung cấp sở hạ tầng truyền thơng có hiệu cao dễ dàng tích hợp số lượng lớn lõi IP (Intellectual Property) lên hệ thống chip (System-on-Chip: SoC) [3-4] Vì vậy, kiến trúc NoC lựa chọn để thiết kế hầu hết thiết bị nhúng ngày Các thiết bị nhúng ngày tích hợp nhiều ứng dụng, đặc biệt miền ứng dụng đa phương tiện Vì vậy, đặc tính linh hoạt thích nghi với thay đổi ứng dụng thời gian chạy thiết bị nhúng quan trọng Điều giúp hệ thống dễ dàng tối ưu thông số hiệu lượng tiêu thụ theo ứng dụng cụ thể Các đệm định tuyến đóng vai trị quan trọng, chúng ảnh hưởng trực tiếp đến hiệu năng, lượng tiêu thụ diện tích thiết bị Trong [5], tác giả lượng tiêu thụ đệm chiếm khoảng 46% lượng tiêu thụ định tuyến diện tích chiếm khoảng 15% so với tổng diện tích định tuyến Các nghiên cứu [6-7] cho thấy nguồn tiêu thụ tĩnh động lớn định tuyến tập trung đệm Các đánh giá [8-9] ảnh hưởng kích thước đệm đến hiệu mạng lớn Khi kích thước đệm tăng độ trễ cải thiện thông lượng tăng cao, ngược lại kích thước đệm giảm độ trễ tăng cao, thơng lượng giảm Tuy nhiên, kích thước đệm lớn, lưu lượng đưa vào mạng thấp dẫn đến lãng phí tài nguyên làm tăng lượng tiêu thụ Ngược lại, đệm có kích thước nhỏ, lưu lượng đưa vào mạng lớn làm giảm hiệu Chính điều mà việc thiết kế định tuyến cho mạng chip cho phép thay đổi kích thước đệm thích nghi theo trạng thái lưu lượng đưa vào mạng thời gian chạy hệ thống cần thiết để tối ưu thông số hiệu năng, lượng tiêu thụ chi phí Để giải vấn đề này, chúng tơi sử dụng cơng nghệ cấu hình lại phần động, phần cứng/phần mềm kết hợp FPGA để thực cấu hình lại kích thước đệm Với tính ưu việt cơng nghệ cấu hình lại phần động FPGA ngày nay, cho phép thêm vào gỡ phần hệ thống thời gian chạy cần thiết, phần khác hệ thống hoạt động bình thường, mà không bị ngắt hay yêu cầu phải khởi động lại hệ thống Cấu hình lại phần động cho phép mở rộng, nâng cấp, thay đổi sửa lỗi hệ thống cách dễ dàng linh hoạt [10] Đây ưu điểm thực thiết bị nhúng với công nghệ FPGA so với thực công nghệ ASIC Phần lại báo tổ chức sau: Trong mục 2, giới thiệu tổng quan định tuyến cho mạng chíp Trong mục 3, chúng tơi trình bày chi tiết mơ hình cấu hình lại phần động FPGA Mục 4, kết thực nghiệm đưa phân tích đánh giá Cuối cùng, kết luận công việc tương lai trình bày mục Giới thiệu tổng quan định tuyến Trong nghiên cứu này, chúng tơi sử dụng định tuyến có cấu hình mạng 2D-Mesh cấu hình mạng 2D-Mesh có tính linh hoạt cao dễ dàng thực với cơng nghệ FPGA Bộ định tuyến gồm có cổng hai hướng bao gồm: Đông (E), Tây (W), Nam (S), Bắc (N) cổng nội (L) Các cổng E, W, S, N nối với định tuyến lân cận cổng L cổng nội bộ, nối với tài 92 Nguyễn Văn Cường, TrầnThanh, Phạm Ngọc Nam nguyên mạng Cơ chế truyền thông sử dụng thiết kế chuyển mạch gói với chế điều khiển luồng whormhole kết hợp kênh ảo thuật toán định tuyến XY Bộ định tuyến thiết kế với khối bao gồm: Bộ đệm ngõ vào (FIFO queue), giải mã flit định tuyến (Flit decoder), chuyển mạch (Switch), kênh ảo (Virtual Channel) phân xử (Arbiter) Hình Hình Kiến trúc định tuyến Xây dựng mơ hình hệ thống 3.1 Luồng thiết kế Để thiết lập mơ hình hệ thống cấu hình lại phần động, thực theo luồng thiết kế Hình FPGA cấu trúc phần khơng thay đổi suốt trình hoạt động hệ thống Phần tĩnh chịu trách nhiệm điều khiển trình hoạt động toàn hệ thống thời gian chạy ứng dụng điều khiển trình cấu hình lại kích thước đệm định tuyến theo trạng thái lưu lượng đưa vào mạng cần thiết Trong thiết kế này, phần tĩnh bao gồm khối sau: Một Microblaze vi xử lý nhúng đóng vai trò xử lý trung tâm điều khiển hoạt động cấu hình lại hệ thống qua hệ thống Bus AXI/PLB Khối Uart có chức giao tiếp với máy tính thơng qua cổng truyền thơng nối tiếp chuẩn RS-232 để hiển thị thông báo kết máy tính Khối sysAce_Compact Flash thực giao tiếp với nhớ Compact Flash (CF), nơi lưu trữ file cấu hình Bộ định thời (Timer) dùng để đo thời gian cấu hình lại hệ thống Khối HWICAP lõi cứng cung cấp Xilinx [11-12] (XPS_ICAP dùng cho Bus PLB AXI_ICAP sử dụng cho Bus AXI), đóng vai trị quan trọng hệ thống cấu hình lại động có nhiệm vụ nhận file cấu hình từ nhớ ngồi CF, để nạp xuống khu vực cấu hình động FPGA Hình Sơ đồ khối tổng quát hệ thống Hình Sơ đồ luồng thiết lập hệ thống Trong luồng này, công cụ Xilinx sử dụng bao gồm: ISE, XPS, PlanAhead SDK phiên 14.1 Phần tĩnh hộp đen hệ thống tạo công cụ XPS XPS lựa chọn kết nối lõi IP, sau tổng hợp tạo file nestlist (.ngcflie) file ràng buộc (.bmmfile), đồng thời tạo driver datasheet để phục vụ cho việc phát triển phần mềm công đoạn Công cụ ISE sử dụng để tổng hợp phần động cho mô hình, cụ thể tạo định tuyến Mesh, đệm có kích thước khác nhau, để chuẩn bị cho việc tạo file cấu hình (bitstreamfile) Các file cần thiết tạo từ XPS ISE tổng hợp công cụ PlanAhead, để tạo file cấu hình nạp vào FPGA hệ thống yêu cầu Tiếp theo, phần mềm điều khiển phát triển công cụ SDK biên dịch thành file có cấu trúc ELF, sau nạp xuống FPGA để phục vụ cho việc điều khiển giám sát trình cấu hình lại 3.2 Thiết lập hệ thống Hệ thống cấu hình lại phần động xây dựng bao gồm phần, phần tĩnh (static) phần động (dynamic) Hình Phần tĩnh đặt khu vực “tĩnh” Hình Thiết lập phần cứng cơng cụ XPS Phần động (phần cấu hình lại được) mô đun chức hệ thống thay đổi, thay thế, sửa lỗi gỡ bỏ thời gian chạy để thích nghi với yêu cầu cấu trúc hệ thống thực FPGA Trong thiết kế này, đệm định tuyến đặt nhớ động FPGA, giao tiếp với phần tĩnh qua hệ thống Bus Macro Hoạt động cấu hình lại thực nhờ vào điều khiển cấu hình vi xử lý nhúng đặt phần tĩnh Bộ điều khiển cấu hình kết nối nhớ ngồi với ICAP thơng qua Bus AXI/PLB Bộ nhớ ngồi CF sử dụng để lưu trữ file cấu hình phần Để thực trình cấu hình, điều khiển đọc file cấu hình mong muốn từ nhớ CF để ghi vào ICAP, liệu đọc từ ICAP để ghi vào nhớ cấu hình FPGA ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(96).2015, QUYỂN Hệ thống xây dựng tổng hợp XPS Hình Sau phần cứng hệ thống thiết lập, phần mềm điều khiển ngôn ngữ C tạo công cụ SDK dùng để điều khiển, giám sát trình cấu đo đạc vài thơng số cấu thời gian tốc độ Quá trình điều khiển giám sát phần mềm thực theo lưu đồ giải thuật Hình Hoạt động lưu đồ mô tả sau: 93 thống thực cấu hình cách đọc liệu file cấu hình tương ứng lưu trữ nhớ CF để truyền đến ghi vào HWICAP Sau hồn tất q trình ghi vào HWICAP, liệu ghi vào nhớ cấu hình FPGA (phần động chức định tuyến) từ HWICAP Bước 4: Một hàm ngắt kiểm tra trạng thái hồn thành q trình cấu hình vào nhớ cấu hình FPGA Nếu trình cấu hình hồn tất, q trình cấu hình kiểm tra bắt đầu thực Kết thực nghiệm 4.1 Tổng hợp layout vật lý hệ thống Trong mục kết tổng hợp layout vật lý khối chức hệ thống trình bày Thiết kế chúng tơi thực thử nghiệm Kit FPGA Virtex-6 ML605-XC6VLX240T với loại Bus AXI/PLB Tần số hoạt động hệ thống 100 MHz, tốc độ truyền nối tiếp máy tính FPGA 115.200 baud thơng qua cổng UART Các công cụ hỗ trợ thiết kế nghiên cứu bao gồm: ISE, XPS, SDK PlanAhead phiên 14.1 Xilinx Tài nguyên phần cứng hệ thống Bảng Ta thấy sử dụng hệ thống Bus AXI tài nguyên phần cứng có phần tăng so với hệ thống Bus PLB Tuy nhiên, tài nguyên Register Slice tăng khơng đáng kể, có tài ngun LUT Bus AXI tăng 0.4 % so với Bus PLB Bảng Tài nguyên sử dụng hệ thống FPGA Virtex-6 chip XC6VLX240T Tài nguyên Sẵn có Register LUT Slice 301440 150720 37680 AXI PLB Sử dụng 4249 4243 1904 % 1.41 2.82 5.05 Sử dụng 4257 4948 1915 % 1.41 3.28 5.08 Hình Lưu đồ thuật tốn điều khiển trình cấu hình Bước 1: Khi hệ thống bắt đầu hoạt động, chương trình thiết lập cấu hình khối: khối SysAce để giao tiếp với nhớ CF; khối HWICAP để chuẩn bị cho việc cấu hình; khởi tạo cấu hình cho định thời để chuẩn bị cho việc đo đạc thời gian cấu hình Bước 2: Sau thiết lập bước thành công, hệ thống tiếp tục kiểm tra lưu lượng liệu đưa vào ngõ vào định tuyến Nếu lưu lượng ngõ vào có thay đổi (lưu lượng kiểm tra theo hai thông số sau: (1) kích thước gói tin (Packet size) (2) tốc độ gói tin bơm vào mạng (Flit Injection Rate: FIR)) hệ thống thông báo cho người dùng định lựa chọn cấu hình Việc lựa chọn thực bàn phím truyền đến FPGA thơng qua giao tiếp UART Bước 3: Nếu việc lựa chọn cấu hình thiết lập, hệ Hình Vị trí vật lý thành phần hệ thống Các vị trí vật lý thành phần hệ thống đặt Hình Trong đó, vùng A, B, C, D đệm tương ứng với ngõ vào E, W, S, N 94 Nguyễn Văn Cường, TrầnThanh, Phạm Ngọc Nam định tuyến, chúng đặt vùng động FPGA Phần tĩnh hệ thống bao gồm Microblaze, Bus, sysAce_CompactFlash,… đặt vùng tĩnh FPGA (vùng màu xanh) 4.2 Lựa chọn thơng số tối ưu thực cấu hình Trước cấu hình lại đệm định tuyến, kích thước đệm lựa chọn cho phù hợp với tốc độ gói tin đưa vào mạng để thông số trễ, thông lượng, lượng tiêu thụ đạt tối ưu Để xác định thông số này, tiến hành mô mạng 2DMesh có kích thước 4x4, kết nối định tuyến giới thiệu mục cách mở rộng công cụ mô NoCTweak [13] Công cụ cho phép mô nhiều chức cho kiến trúc NoC, phát triển dựa ngôn ngữ hệ thống SystemC [14] Các thông số mô thiết lập sau: Lưu lượng ngẫu nhiên; định tuyến XY, tốc độ gói tin đưa vào mạng từ (0-0.7) (flits/cycle/node); kích thước đệm 2, 4, 8, 16 (buffer depth); thời gian mô 50.000 chu kỳ; thời gian khởi động 5.000 chu kỳ Các kết mơ trình bày Hình 7, Hình 8, Hình Hình Trễ trung bình mạng Hình Thơng lượng trung bình mạng Hình Nguồn tiêu thụ trung bình định tuyến Theo kết mô phỏng, dễ thấy chọn kích thước đệm lớn trễ thơng lượng đạt tối ưu Tuy nhiên, phải trả giá lượng tiêu thụ q lớn Ví dụ: Tại tốc độ gói tin đưa vào mạng 0.2 (flits/cycle/node), sử dụng đệm có kích thước 16, lúc trễ 17.5 (chu kỳ); thơng lượng đạt 0.1 (flits/cycle/node) lượng tiêu thụ 3.15(mW) Trong đó, sử dụng đệm có kích thước 4, lúc trễ 17.5 (chu kỳ); thông lượng đạt 0.1 (flits/cycle/node), lượng tiêu thụ 1.84(mW) Rõ ràng, hiệu đạt sử dụng đệm có kích thước 16 trường hợp nhau, xét lượng tiêu thụ sử dụng đệm có kích thước tiết kiệm 41.5 % so với sử dụng đệm có kích thước 16 Điều cho thấy rằng, chọn kích thước đệm khơng phù hợp với tốc độ gói tin đưa vào mạng cấu hình thơng số trễ, thơng lượng hay lượng tiêu thụ không đạt tối ưu Dựa vào đồ thị Hình 8, 10, xác định kích thước đệm tối ưu theo tốc độ gói tin đưa vào mạng sau: (0.00