phần mở đầu, kiến trúc tinh đã được ứng dụng rộng rãi trong các vi mạch FPGA. Tuy nhiên, ở kiến trúc này, tính mềm dẻo trong thiết kế phần cứng thể hiện rất rõ nét, nhưng hệ thống kết nối trên vi mạch dạng này chiếm một tài nguy n đáng kể, dẫn tới vấn đề hiệu suất sử dụng năng lượng bị giảm đáng kể so với các vi mạch SI. ể giải quyết việc cân bằng hiệu quả sử dụng năng lượng, hiệu TIEU LUAN MOI download : skknchat@gmail.com 12 năng tính toán cũng như sự mềm dẻo linh hoạt trong thiết kế, kiến trúc thô CGRA được đưa ra để lấp vào khoảng trống này. ASIC CGRA iệu năng FPGA ASIP DSP GPP ộ mềm dẻo Hình 3: So sánh hiệu năng - tính mềm dẻo của một số loại vi mạch iệu suất nguồn ASIP (GOPS/W) 100 ASIP CGRA 10 DSP 1 iệu năng 0.1 1 10 (GOPS) Hình 4: So sánh hiệu năng - hiệu suất sử dụng điện của một số loại vi mạch 1.2 Một số mô hình R đã đƣợc nghiên cứu trên thế giới Hiện nay trên thế giới đã có nhiều nghiên cứu khác nhau về CGRA.
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ểm khác nhau, hướng tới một số ứng dụng cụ thể. Dưới đây l một số mô hình tiêu biểu.1 Kiến trúc MorPhoSys ây l một trong những kiến trúc được phát triển trong những năm của giai đoạn đầu của CGRA (khoảng năm 1998) với mục đích ứng dụng cho truyền thông đa phương tiện. Nó kết hợp giữa tái cấu hình kiến trúc thô và kiến trúc tinh để tối ưu hóa phần cứng. TIEU LUAN MOI download : skknchat@gmail.com 13 Kiến trúc này bao gồm các phần tử cơ bản sau: - Reconfigurable ell rray: đây l phần tử chính của kiến trúc MorphoSys gồm một mảng 8x8 phần tử RC (Reconfigurable ell) như mô tả trong Hình 6.
Kiến trúc của R được thể hiện chi tiết trong hình 5: mỗi RC gồm một ALU, một tệp thanh ghi, các bộ ghép k nh, … - Host/Control processor: là một bộ xử lý 32-bit làm nhiệm vụ khởi tạo truyền số liệu, điều khiển hoạt động của mảng RC - Frame Buffer: làm nhiệm vụ đệm, truyền nhận dữ liệu giữa RCA và bộ nhớ chính. Hình 5: Kiến trúc RC MorPhoSys [4] Hình 6: Kiến trúc MorPhoSys [13] TIEU LUAN MOI download : skknchat@gmail.com 14 Hình 7: Kết nối MorPhoSys trong hệ SoC [5] Việc kết hợp mảng tái cấu hình R như trong hệ thống n y giúp gia tăng khả năng tính toán, nhưng việc chia sẻ bus dữ liệu dung chung dễ tạo ra việc quá tải trong truy xuất dữ liệu. Tuy nhi n, đây l một mô hình cơ bản để xây dựng phát triển các hệ thống về sau.2 Kiến trúc ADRES Hình 8: Kiến trúc ADRES[7] TIEU LUAN MOI download : skknchat@gmail. Bộ vi xử lý VLIW (Very Large Instruction Word) là thành phần chính của hệ thống, mảng tái cấu hình đóng vai trò l một phần của vi xử lý, giúp gia tốc tính toán.
Hình 8 minh họa một kiến trúc ADRES gồm một mảng các khối chức năng (FU-functional units) kết hợp với các tệp thanh ghi kết nối với nhau thông qua hệ kết nối định tuyến (được tạo bởi dây nối, bộ ghép kênh, bus dữ liệu). Việc kết hợp CGRA trực tiếp với bộ vi xử lý l m tăng khả năng l m việc của hệ thống nhưng lại buộc cấu trúc CGRA phải tương thích với một kiến trúc vi xử lý cố định, không được linh hoạt so với cách thực hiện dưới dạng IP core (như cách thực hiện của kiến trúc REMUS trình bày ở mục 1.3 Kiến trúc REMUS REMUS (REconfigurable MUltimedia System) là một kiến trúc GR hướng tới các ứng dụng xử lý đa phương tiện và xử lý tín hiệu băng gốc trong truyền thông. Kiến trúc này kết nối trong hệ thống So như mô tả ở Hình 9. Hệ thống gồm 02 RPU được sử dụng kết hợp với vi xử lý ARM, cùng với các module khác.
Các phần tử trong hệ thống liên kết với nhau qua bus AHB. Ngoài Bus AHB, các RPU còn có thể giao tiếp qua hệ thống chia sẻ dữ liệu d nh ri ng, cũng như qua giao diện với bộ nhớ ngoài EMI (External Memory Interface). Khối uPU là một mảng của 8 vi xử lý RISC có nhiệm vụ giám sát hoạt động của RPU, đồng thời cũng có thể hỗ trợ xử lý trong những trường hợp các phép toán không hợp với thiết kế của RPU. Hình 9: Kiến trúc RSoC của bộ xử lý REMUS [3] TIEU LUAN MOI download : skknchat@gmail.com 16 Hình 10 mô tả kiến trúc chi tiết của một RPU được sử dụng trong kiến trúc REMUS.
Ở đây, các R được sắp xếp thành một mảng 8x8 làm nhiệm vụ thực thi các phép toán của RPU. Các thành phần điều khiển ontroller, FIFO, ontext register, … có nhiệm vụ điều khiển, cấu hình, truyền nhận dữ liệu giữa mảng RCA hệ thống bên ngoài RPU. Phần tử xử lý cơ bản RC có kiến trúc như mô tả trong Hình 11 Hình 10: Cấu trúc của một RPU trong bộ xử lý REMUS [3] Hình 11: Cấu trúc của phần tử RC trong REMUS [3] Việc thiết kế GR dưới dạng IP-core tạo ra việc thuận tiện cho việc sử dụng lại thiết kế trong các hệ thống khác nhau, không bị phụ thuộc nhiều vào kiến trúc vi xử lý. Thiết kế GR được trình bày ở chương 2 của luận văn được thực hiện theo hướng này.
TIEU LUAN MOI download : skknchat@gmail.4 Nhận xét chung Các kiến trúc tham khảo trên có một số đặc điểm tương đồng sau: - Một hệ thống có GR thường bao gồm 3 thành phần như mô tả trong Hình 12 (CPU, bộ nhớ và RPU). CGRA kết hợp với các bộ xử lý để tương tác, hỗ trợ khắc phục những nhược điểm của nhau (CPU có thể thực hiện một dải các phép toán khác nhau nhưng bị giới hạn về tốc độ khi thực hiện vòng lặp; CGRA tuy không mềm dẻo được như PU nhưng lại có khả năng gia tốc tính toán trong một số trường hợp cụ thể). Cách thức kết hợp có thể khác nhau tùy theo từng kiến trúc cụ thể, ví dụ: trong MorphoSys GR l đơn vị đồng xử lý của CPU, được ghép nối với CPU qua kết nối trực tiếp; trong REMUS CGRA được sử dụng như một IP core ghép nối với CPU qua shared-bus; trong ADRES RPU là một đơn vị chức năng nằm bên trong kiến trúc VLIW của CPU. Trong các hệ thống n y, PU đóng vai trò điều khiển trung tâm (các quá trình đọc/ghi dữ liệu, điều khiển cấu hình cho mảng tính toán) còn CGRA đóng vai trò chia sẻ tải tính toán; tăng tốc khả năng xử lý số liệu cho hệ thống.
Hình 12: Các thành phần cơ bản của một hệ thống có CGRA - Bộ nhớ sử dụng trong hệ thống được tách biệt thành 2 phần riêng biệt: Bộ nhớ dữ liệu và Bộ nhớ cấu hình. Việc tách biệt 2 bộ nhớ cấu hình và dữ liệu là kỹ thuật chung của thiết kế tái cấu hình dạng mảng. - Các phần tử xử lý liên kết với nhau thông qua hệ định tuyến (bằng dây nối, bus hoặc các bộ ghép kênh). Kiến trúc định tuyến, các thức xử lý được cấu hình bằng cách sử dụng các tệp thanh ghi.3 Vấn đề cần giải quyết Tr n cơ sở tìm hiểu các mô hình trình bày ở mục 1.2, khi thiết kế mảng CGRA cần giải quyết 03 nội dung sau: TIEU LUAN MOI download : skknchat@gmail.com 18 - Khả năng xử lý của từng phần tử trong mảng: đây l một trong các yếu tố quyết định dải ứng dụng của thiết kế.
Với định hướng ứng dụng kỹ thuật điều khiển, thiết kế trình bày trong luận văn tập trung vào các phép toán số học. - Khả năng kết nối giữa các phần tử trong mảng: Các mô hình tham khảo trong mục 1.2 sử dụng kiến trúc ô lưới (mesh) tạo ra sự mềm dẻo định tuyến dữ liệu trong hệ thống, nhưng điều n y cũng kéo theo sự phức tạp trong quá trình điều khiển. Với mục đích tập trung vào một số phép toán vector thường dùng trong kỹ thuật điều khiển, hướng thiết kế mảng tái cấu hình trong luận văn n y sẽ sử dụng cấu trúc tuần tự theo hàng (row-by-row). Kiến trúc này kém mềm dẻo hơn, tuy nhi n việc định tuyến lại đơn giản.
Thiết kế chi tiết được trình bày ở chương 2 của luận văn. - Khả năng điều khiển, tái cấu hình của mảng: do mảng CGRA phải thường xuyên cấu hình lại trong quá trình làm việc, cho nên cần phải đưa ra giải pháp rút ngắn thời gian cấu hình (bằng cách sử dụng bộ nhớ cấu hình theo ngữ cảnh, kỹ thuật cấu hình đồng thời với quá trình thực thi). Với mục tiêu thiết kế một CGRA dùng cho kỹ thuật điều khiển, chương 2 tiếp theo của luận văn sẽ trình bày chi tiết một thiết kế của CGRA có khả năng hướng tới việc tích hợp vào một hệ thống điều kiển có mô hình kết nối như mô tả ở Hình 13. ALTERA FPGA SoC uP NIOS EXT.MEM ALTERA AVALON BUS CGRA_WRAPPER ETHERNET PERIPHERAL CGRA CONTROLLER INTERFACE CGRA_CTRL RCA PC Sensors Motor driver.
Hình 13: Mô hình ghép nối CGRA cho một hệ điều khiển cơ bản TIEU LUAN MOI download : skknchat@gmail.com 19 Trong mô hình này, hệ thống điều khiển gồm các khối chức năng cơ bản sau: - Vi xử lý NIOS đóng vai trò l khối điều khiển trung tâm, đưa ra các lệnh điều khiển cơ bản: o iều khiển giao diện với P thông qua đường kết nối Ethernet. o iều khiển các khối giao tiếp thiết bị ngoại vi (nhận dữ liệu từ sensor sau khi đã được số hóa, điều khiển động cơ, …) o iều khiển hoạt động của CGRA: cấp dữ liệu cần xử lý từ PC hoặc các giao diện ngoại vi vào CGRA; cấu hình hoạt động của GR ; … - Bộ nhớ ngoài EXT.MEM có tác dụng lưu trữ chương trình hoạt động của hệ thống; - CGRA: thực hiện các nhiệm vụ tính toán theo yêu cầu từ vi xử lý NIOS - Bus dữ liệu ALTERA_AVALON_BUS làm nhiệm vụ kết nối toàn hệ thống. TIEU LUAN MOI download : skknchat@gmail.com 20 ƢƠ 2 T ẾT Ế T ẾT Ủ R 2.1 Phƣơng án đề xuất thiết kế CGRA sử dụng trong kỹ thuật điều khiển Như đã trình bày ở phần mở đầu, trong kỹ thuật điều khiển, các phép toán vector với vòng lặp không có rẽ nhánh được thực hiện phổ biến (ví dụ: phép nhân ma trận, phép nhân chập, tính trung bình, …) v thường chiếm một lượng lớn tải tính toán của hệ thống. Cách thực hiện đơn giản nhất cho việc thực thi các phép toán này là các toán tử trong phép tính vector phải thực hiện tuần tự (các toán tử sử dụng là toán tử 2 ngôi).