Xem mẫu

  1. HộiHội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Mô hình tính toán và Kiến trúc mảng tái cấu hình cấu trúc thô cho các ứng dụng điều khiển hiệu năng cao Nguyễn Đức Nam, Trần Quang Vinh, Nguyễn Kiêm Hùng Khoa Điện tử - Viễn thông, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội Email: kiemhung@vnu.edu.vn Abstract— Trong bài báo này, chúng tôi đề xuất mô hình tính nghiêm trọng của loại cấu trúc này là công suất tiêu thụ, toán và kiến trúc một mảng tái cấu hình cấu trúc thô CGRA (Coarse-Grained Reconfigurable Architecture) cho các ứng dụng trễ lan truyền tín hiệu và diện tích thực thi lớn [1]. điều khiển đòi hỏi hiệu năng tính toán cao. Đây là một mô hình - Kiến trúc thô tập trung vào khả năng xử lý dữ liệu và tính toán mới nhằm giải quyết các vấn đề liên quan tới thông thiết lập cấu hình theo nhóm bit với các khối chức năng lượng tính toán lớn trong khi vẫn phải cân bằng các yếu tố: độ phức tạp, tính mềm dẻo và hiệu năng hoạt động của hệ thống. phức tạp (ví dụ ALU (Arithmetic-logic Unit), bộ nhân, Mảng CGRA được đề xuất trong bài báo có thể được tích hợp …). Các cấu trúc này thường được thiết kế nhắm tới như một phần tử tính toán trong các hệ thống SoC (System-on- chip) có khả năng cấu hình động ứng dụng trong kỹ thuật điều một dải các ứng dụng xác định thay vì bất kỳ một ứng khiển. Kiến trúc được đề xuất đã được mô hình hóa bằng ngôn dụng nào như cấu trúc tinh. Các cấu trúc thô đạt được ngữ VHDL nhằm mục đích mô phỏng và kiểm thử trên FPGA. Một số ứng dụng đã được ánh xạ và chạy trên kiến trúc CGRA sự dung hòa giữa các chỉ tiêu về tính mềm dẻo, hiệu nhằm kiểm chứng khả năng ứng dụng linh hoạt của kiến trúc năng và công suất tiêu thụ. được đề xuất cho một dải các ứng dụng điều kiển khác nhau. Hiện nay trên thế giới đã có nhiều nghiên cứu khác nhau Keywords- kỹ thuật tái cấu hình, tính toán song song, vi mạch về các kiến trúc mảng tái cấu hình cấu trúc thô CGRA lập trình, kiến trúc mảng tái cấu hình cấu trúc thô, CGRA (Coarse-Grained Reconfigurable Architecture). Mỗi nghiên cứu đưa ra một kiến trúc đặc trưng riêng với các ưu nhược I. GIỚI THIỆU điểm khác nhau, hướng tới một số ứng dụng cụ thể. Hai mô Tư duy sử dụng cấu trúc mảng gồm nhiều phần tử xử lý hình chính nhóm tác giả tham khảo là REMUS[2][3] và trong tính toán song song được tiếp cận từ nhiều năm nay. ADRES[4]. Trong một mảng tính toán như vậy, các phần tử xử lý có thể có cấu trúc và tính năng rất đa dạng và phong phú. Ở một hệ thống lớn, các phần tử này có thể là các vi mạch như DSP (Digital Signal Processor), bộ xử lý, hay thậm chí là các hệ máy tính. Ở mức vi mạch, các phần tử trong mảng là các khối xử lý có cấu trúc ở mức thấp hơn (ví dụ: các lõi CPU (Central Processing Unit) trong GPU (Graphics Processor Unit), các tế bào logic trong FPGA (Field Programable Gate Array), hay các tế bào thô trong trong PSoC (Programable System-on- Chip, …). Ở mức thứ hai, cấu trúc của các phần tử xử lý có thể tiếp tục được phân chia thành loại cấu trúc tinh (fine- grained fabrics) và loại cấu trúc thô (coarse-grained fabrics). Mỗi loại cấu trúc này có những đặc trưng cơ bản riêng như: - Cấu trúc tinh tập trung vào khả năng xử lý dữ liệu và Hình 1: Kiến trúc ADRES thiết lập cấu hình ở mức bit (ví dụ LUT (Look-up Table), cổng logic, …). Loại cấu trúc này có ưu điểm là ADRES (Architecture for Dynamically Reconfigurable tính mềm dẻo rất cao, nó cho phép có thể thực thi hầu Embedded System) là một kiến trúc hướng tới các ứng dụng như bất cứ loại mạch số nào. Tuy nhiên nhược điểm nhúng với các hệ thống tích hợp trên một chip đơn SoC (Sytem-on-Chip). Bộ vi xử lý VLIW (Very Large Instruction ISBN: 978-604-67-0635-9 431 431
  2. Hội Thảo Hội Thảo Quốc Quốc GiaGia 2015 2015 vềvềĐiện ĐiệnTử, Tử,Truyền TruyềnThông Thông và vàCông CôngNghệ NghệThông Tin Tin Thông (ECIT 2015) (ECIT 2015) Word) là thành phần chính của hệ thống, mảng tái cấu hình Phần còn lại của bài báo được tổ chức như sau: phần II đóng vai trò là một phần của vi xử lý, giúp gia tốc tính toán. miêu tả cách tiếp cận xây dựng mô hình của CGRA; phần III Hình 1 minh họa một kiến trúc ADRES gồm một mảng các trình bày một kiến trúc CGRA đang thử nghiệm; phần IV là khối chức năng FU (Functional Unit) kết hợp với các tệp kết quả kiểm thử trên phần mềm mô phỏng và trên vi mạch thanh ghi kết nối với nhau thông qua hệ kết nối định tuyến FPGA. Cuối cùng, chúng tôi đưa ra một số kết luận trong phần (được tạo bởi dây nối, bộ ghép kênh, bus dữ liệu). Việc kết V. hợp CGRA trực tiếp với bộ vi xử lý làm tăng khả năng làm II. XÂY DỰNG MÔ HÌNH việc của hệ thống nhưng lại buộc cấu trúc CGRA phải tương Trong kỹ thuật điều khiển, các phép toán vector với vòng thích với một kiến trúc vi xử lý cố định, không được linh hoạt lặp không có rẽ nhánh được thực hiện phổ biến (ví dụ: phép so với cách thực hiện dưới dạng IP core như cách thực hiện nhân ma trận, phép nhân chập, tính trung bình, …). Những của kiến trúc REMUS trình bày ở dưới đây. phép toán này thường chiếm phần lớn tài nguyên tính toán của hệ thống. Do đặc trưng của các vi xử lý truyền thống, các phép toán mà ALU hỗ trợ thường chỉ hỗ trợ phép toán với hai số hạng, nên cách thực hiện đơn giản nhất là sử dụng các vòng lặp FOR lồng vào nhau. Khi đó để hoàn thành một phép toán vector thường phải mất rất nhiều xung nhịp hệ thống. Xét một số đoạn giả mã C thực hiện các phép toán đơn giản sau: (1) Phép nhân vô hướng For (i=0; i++; i
  3. HộiHội ThảoThảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) phương án được lựa chọn để thực hiện tính toán song song là RCA là một mảng hai chiều của các phần tử xử lý PE. kiến trúc mảng tái cấu hình cấu trúc thô. Điểm phân biệt chính Để thuận tiện cho việc mở rộng thiết kế, các PE sẽ được sắp giữa các mảng tái cấu hình kiến trúc thô CGRA là: xếp thành các hàng (RCA_row). Các phần tử cơ bản của RCA - Cách đưa luồng dữ liệu đầu vào, được mô tả như Hình 3. - Các toán tử được hỗ trợ bởi mỗi phần tử Trong quá trình hoạt động của RCA, việc cấu hình của - Cách thực thi luồng dữ liệu giữa các phần tử. RCA có thể thực hiện lại thường xuyên. Khi đó, thời gian cấu Theo đó, các toán tử sẽ được thực hiện bởi các phần tử hình cho một mảng RCA chiếm một tỷ trọng không nhỏ trong xử lý PE (Processing Element). Một phần tử PE có thể thực toàn bộ thời gian hoạt động. Để giải quyết vấn đề này, tệp hiện chức năng của nhiều toán tử khác nhau tùy thuộc theo thanh ghi cấu hình RCA_REG_FILE được sử dụng. Trong quá thông tin cấu hình. Tổ chức của mảng CGRA được thực hiện trình ghi thông tin vào tệp thanh ghi này (quá trình cấu hình), bằng cách sắp xếp các PE theo các hàng nối tiếp nhau. Việc RCA vẫn có thể thực hiện chức năng tính toán của cấu hình định tuyến dữ liệu vào các toán tử sẽ được điều khiển bởi các cũ. Nói cách khác, quá trình cấu hình có thể thực thi song song bộ định tuyến (router). Các bộ định tuyến này có nhiệm vụ lựa với quá trình thực thi tính toán, xử lý số liệu. Chỉ khi nào quá chọn đầu vào cho các toán tử. trình ghi vào tệp thanh ghi kết thúc, lúc đó mới thực hiện nạp toàn bộ cấu hình mới vào các thanh ghi cấu hình có sẵn trong III. KIẾN TRÚC MẢNG CGRA mỗi PE. Trên cơ sở tiếp cận phương án thiết kế CGRA trình bày ở Một phần tử PE bao gồm bốn thành phần chính: mục II, chúng tôi xây dựng kiến trúc tổng thể của một mảng - Router: làm nhiệm vụ định tuyến đầu vào dữ liệu tái cấu hình kiến trúc thô CGRA như chỉ ra trong Hình 3 cơ cho DATAPATH; bản bao gồm hai phần: - DATAPATH: thực hiện chức năng tính toán dữ liệu - Phần lõi tính toán RCA (Reconfigurable Cell dựa trên đầu vào được lựa chọn bởi bộ định tuyến Array): làm nhiệm vụ xử lý các phép toán theo một cấu Router; hình đã định trước. - ACC: thực hiện một trong hai chức năng: đệm dữ - Phần điều khiển chung CGRA_CTRL: thực hiện các liệu đầu ra cho PE, cộng tích tích lũy dữ liệu đầu ra nhiệm vụ cơ bản sau: của DATAPATH; o Cung cấp giao diện làm việc của CGRA: bao gồm - CONF_REG: lưu thông tin cấu hình của PE các tín hiệu đồng bộ, điều khiển (CLK, Reset_n, Pre_Row …), các đầu vào/ra dữ liệu; DATA_A DATA_B DATA o Lưu trữ tệp tin cấu hình thường dùng trong vùng nhớ Context_CONF_MEM; Router o Điều khiển quá trình ghi/đọc dữ liệu (bao gồm dữ liệu cấu hình, số liệu cần xử lý, các lệnh điều CONF_REG khiển, …) với giao diện bên ngoài; CONF_DATA DATAPATH o Điều khiển giao tiếp với RCA để thực hiện quá trình tính toán, xử lý số liệu. CGRA ACC CGRA_CTRL FIFO_A CACHE FIFO_B DATA_O FIFO_O RCA Hình 4: Cấu trúc một phần tử PE RCA_row_#0 Một trong những tính năng quan trọng của CGRA là phải RCA_row_#1 có khả năng tái cấu hình trong quá trình hoạt động. Quá trình RCA_REG_FILE FSM RCA_row_#2 tái cấu hình này có thể chiếm một phần lớn thời gian trong quá RCA_row_#3 RCA_row_#4 trình làm việc của CGRA. Trong khi đó, số phép toán trong CONTEXT_CONF_ RCA_row_#5 một ứng dụng thường không quá nhiều. Để giảm thiểu thời MEM RCA_row_#6 gian cho việc cấu hình lại hệ thống, bộ nhớ cấu hình ngữ cảnh RCA_row_#7 CONTEXT_CONF_MEM sẽ lưu sẵn được tối đa 128 cấu hình Hình 3: Cấu trúc của một CGRA khác nhau thường lặp lại trong quá trình tính toán. Các cấu 433 433
  4. HộiHội Thảo Quốc Thảo Gia Quốc 2015 Gia 2015về vềĐiện Điện Tử, Tử,Truyền Truyền Thông vàCông Thông và CôngNghệ Nghệ Thông Thông TinTin (ECIT (ECIT 2015) 2015) hình này sẽ được lưu theo từng khối nhớ quy định sẵn. Việc Set-Point Kp Ki phân biệt, ghi đọc cấu hình được phân biệt qua ID đánh dấu thứ tự của cấu hình trong bộ nhớ. Khi có lệnh điều khiển từ bên ngoài, CGRA_CTRL chỉ cần nạp dữ liệu sẵn có này sang tệp thanh ghi cấu hình RCA_REG_FILE của RCA. SUB IV. MÔ PHỎNG ĐÁNH GIÁ HIỆU NĂNG Để đánh giá khả năng tái cấu hình của CGRA, chúng tôi MUL MUL ACC đã thực hiện mô phỏng hoạt động CGRA có kích thước mảng RCA là 44 với các cấu hình thực thi phép toán khác nhau SUB như phép toán tính tích vô hướng (Hình 5), tính tổng trong cửa RCA 4x4 sổ trượt (Hình 6), vòng điều khiển PI (Hình 7), bộ lọc FIR (Hình 8),... Đây là những phép toán cơ bản thường gặp trong Đầu ra Hình 7: Cấu hình vòng điều khiển PI kỹ thuật điều khiển. Trên cơ sở cấu hình thực thi như trên, các phép toán này có thể tùy biến thành các phép toán có cấu trúc tương đương khác (như tính trung bình, tính công suất, nội suy x[6] InputFIFO x[5] đa thức, …) x[4] x[3] x[2] x[1] x1 y1 x2 y2 x3 y3 x4 y4 x[0] x x x x Mức 1 h[3]  + + Mức 2 h[2] MAC h[1] + Mức 3 MAC h[0] Hình 5: Mô hình thực thi phép tính tích vô hướng MAC Constant_REG Đầu vào z[n] Hình 8: DFG thực hiện một bộ lọc FIR bậc 4 ACC D D Chúng tôi đã mô hình hóa kiến trúc CGRA được đề xuất bằng ngôn ngữ VHDL để mô phỏng đánh giá và tiến hành D D D kiểm thử. Mô hình kiểm thử CGRA trên nền tảng vi mạch FPGA được thực hiện như Hình 9. ACC D D D ALTERA FPGA SoC uP NIOS EXT.MEM SUB D D ALTERA AVALON BUS RCA 4x4 CGRA_WRAPPER ETHERNET PERIPHERAL CGRA CONTROLLER INTERFACE Đầu ra CGRA_CTRL Hình 6: Mô hình thực thi phép tính tổng trong cửa sổ trượt RCA PC Sensors Motor driver ... Hình 9: Mô hình kiểm thử trên kit FPGA 434 434
  5. Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Để đánh giá hiệu năng hoạt động của CGRA, chúng tôi bằng cách sử dụng vòng lặp “FOR” truyền thống so với việc thực hiện việc so sánh số lượng xung nhịp cần thực hiện cho xử lý từng khối dữ liệu lớn trên CGRA. Khi đó, yêu cầu các phép toán thường gặp trong kỹ thuật điều khiển: phép toán CGRA phải đáp ứng được yêu cầu tái cấu hình trong lúc hệ tính tổng, phép toán tính tích vô hướng và phép tính tích chập thống đang chạy. Tín hiệu đầu vào có Tín hiệu đầu sau bộ Tín hiệu đầu vào trước lọc Tín hiệu đầu ra sau lọc đã nhiễu cộng theo cửa sổ trượt có thành phần tần số cao loại bỏ tần số cao Hình 10: Kết quả mô phỏng tính tổng theo cửa sổ trượt Hình 11: ết quả mô phỏng bộ lọc FIR bậc 4 với mô hình RTL trên ModelSim với mô hình RTL trên ModelSim Bảng 1. Kết quả mô phỏng thử nghiệm các vòng lặp trên các nền tảng xử lý khác nhau. Vòng lặp Kích Lõi NIOS DSP DSP CGRA thước dữ (Altera) (dùng code C (dùng thư (ModelSim) liệu thông viện riêng) thường) Phép tổng SUM N=1024 29 148 24 117 X 1045 N=2048 58 142 48 181 X 2096 N=4096 116 128 96 301 X 4117 Tích vô hướng N=1024 64 622 30 827 555 2096 N=2048 128 864 61 827 1 067 4117 N=4096 257 344 122 987 2 083 8213 FIR (8 tap) N=1024 407 765 X 7 216 1043 N=2048 816 384 X 14 384 2067 N=4096 1 641 778 X 29 736 4115 Kết quả đánh giá số chu kỳ thực thi của các vòng lặp trên của việc cân bằng giữa các yếu tố thiết kế hệ thống (sự mềm các nền tảng tính toán khác nhau (gồm lõi vi xử lý NIOS của dẻo, sự phức tạp của hệ thống và hiệu năng hoạt động của hệ Altera, bộ xử lý DSP và mảng CGRA) được thống kê trong thống). Bảng 1. Hình 10 và Hình 11 chỉ ra kết quả mô phỏng tính V. KẾT LUẬN tổng theo cửa sổ trượt và kết quả mô phỏng của bộ lọc FIR Trong bài báo này chúng tôi trình bày mô hình và kiến bậc 4 với mô hình RTL của mảng CGRA trên phần mềm mô trúc của một mảng phần cứng có thể tái cấu hình lõi thô cho phỏng ModelSim. các ứng dụng điều khiển hiệu năng cao. Chúng tôi cũng chỉ ra Kết quả mô phỏng CGRA trên ModelSim cho thấy tốc độ mô hình hoạt động của hệ thống thông qua việc ánh xạ một số thực hiện tương đương với DSP, ở một số kết quả thực hiện có ví dụ cụ thể lên kiến trúc mảng nhằm mục đích kiểm chứng thể tốt hơn. Tốc độ tính toán của CGRA được cải thiện do đánh giá mảng phần cứng được đề xuất. Kết quả mô phỏng chỉ thực hiện song song quá trình nạp dữ liệu và tính toán cùng ra rằng, mảng CGRA được đề xuất có thể tái cấu hình rất linh lúc. hoạt với khả năng khai thác tốt các cơ chế song song và tính Trong bài báo này, qua kết quả đánh giá thử nghiệm trên cục bộ dữ liệu của thuật toán nhằm tăng hiệu năng xử lý và phần mềm mô phỏng và chạy thử nghiệm trên nền tảng vi giảm băng thông truy xuất bộ nhớ. Trong tương lai chúng tôi mạch FPGA, chúng tôi thấy rằng kiến trúc thô CGRA có sẽ tiếp tục tối ưu hóa kiến trúc được đề xuất, đồng thời tiến những ưu điểm nhất định đối với các bài toán có yếu tố sử hành đánh giá kiến trúc với các ứng dụng điều khiển phức tạp dụng vòng lặp với dữ liệu đầu vào có kích thước lớn. Kỹ thuật hơn. tính toán trên CGRA không phải là tối ưu nhất mà là kết quả 435 435
  6. Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) TÀI LIỆU THAM KHẢO Coarse- grained Reconfigurable Computing System”, Journal of computers, Vol. 8, No. 3, March 2013. [1] G. Theodoridis, D. Soudris and S. Vassiliadis: “A Survey of Coarse- Grain Reconfigurable Architectures and Cad Tools Basic Definitions, [4] Frank Bouwens, Mladen Berekovic, Bjorn De Sutter, and Georgi Gaydadjiev: “Architecture Enhancements for the ADRES Coarse- Critical Design Issues and Existing Coarse-grain Reconfigurable Grained Reconfigurable Array” HiPEAC 2008, LNCS 4917, pp. 66–81, Systems”, Springer 2008, p89-149. 2008.. [2] Hung K. NGUYEN, Quang-Vinh TRAN, and Xuan-Tu TRAN: Data [5] Frank Bouwens, Mladen Berekovic, Andreas Kanstein, and Georgi Locality Exploitation for Coarse-grained Reconfigurable Architecture in a Reconfigurable Network-on-Chip, The 2014 International Conference Gaydadjiev: “Architectural Exploration of the ADRES, Coarse-Grained on Integrated Circuits, Design, and Verification (ICDV 2014), Hanoi 14- Reconfigurable Array”, ARC 2007, LNCS 4419, pp. 1–13, 2007 15/2014.3 [6] Andy Lambrechts, Praveen Raghavan, Murali Jayapala, Francky [3] Kiem-Hung Nguyen, Peng Cao and Xue-Xiang Wang: “An Efficient Catthoor, and Diederik Verkest: “Energy-Aware Interconnect Optimization for a Coarse Grained Reconfigurable Processor”, 21st Implementation of H.264/AVC Integer Motion Estimation Algorithm on International Conference on VLSI Design, 2008, Hyderabad, India. 436 436
nguon tai.lieu . vn