Luận văn: Thiết kế mảng tái cấu hình CGRA ứng dụng điều khiển (ĐH)

Khám phá CGRA, kiến trúc mảng tái cấu hình mạnh mẽ cho các ứng dụng điều khiển. Tìm hiểu ưu điểm, ứng dụng & tiềm năng của CGRA trong công nghiệp.

Người đăng

Ẩn danh

Thể loại

Tiểu Luận

2015

56
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH VẼ, Ồ THỊ

MỞ ĐẦU

1. Lý do lựa chọn đề tài

2. Mục tiêu đề tài

3. Phương pháp nghiên cứu

4. Nội dung nghiên cứu

4.1. Nghiên cứu lý thuyết

4.2. Thiết kế hệ thống

5. Kết cấu luận văn

1. CHƯƠNG 1: KHÁI NIỆM VÀ VẤN ĐỀ CẦN GIẢI QUYẾT

1.1. Giới thiệu chung

1.2. Một số mô hình CGRA đã được nghiên cứu trên thế giới

1.2.1. Kiến trúc MorPhoSys

1.2.2. Kiến trúc ADRES

1.2.3. Kiến trúc REMUS

1.2.4. Nhận xét chung

1.3. Vấn đề cần giải quyết

2. CHƯƠNG 2: THIẾT KẾ CHI TIẾT CỦA CGRA

2.1. Phương án đề xuất thiết kế CGRA sử dụng trong kỹ thuật điều khiển

2.1.1. Phép toán tổng/tích của một dãy

2.1.2. Phép tính tích vô hướng của hai vector

2.1.3. Phương án kiến trúc CGRA

2.2. Kiến trúc tổng thể của mảng tái cấu hình kiến trúc thô CGRA

2.3. Thiết kế chi tiết của RCA

2.3.1. Kiến trúc tổng thể của RCA

2.3.2. Cấu trúc thực hiện của RCA_Row

2.3.3. PE và các phần tử cấu thành PE

2.3.4. Bộ tích lũy, thanh ghi đệm đầu ra của PE

2.3.5. Thanh ghi cấu hình của PE

2.3.6. Tệp thanh ghi cấu hình của RCA

2.4. Thiết kế chi tiết của CGRA_CTRL

2.4.1. Kiến trúc tổng thể của CGRA_CTRL

2.4.2. Bộ nhớ lưu cấu hình theo ngữ cảnh của CGRA

2.4.3. Bộ nhớ dữ liệu vào ra của CGRA

2.4.4. Khối điều khiển hoạt động cơ bản của CGRA

3. CHƯƠNG 3: KẾT QUẢ MÔ PHỎNG VÀ THỬ NGHIỆM

3.1. Mô hình mô phỏng RCA của CGRA trong môi trường ModelSIM

3.2. Kết quả mô phỏng lõi RCA_4x4 của CGRA trên ModelSIM

3.2.1. Kết quả mô phỏng phép toán Tổng của một dãy và Tích vô hướng của hai vector

3.2.2. Kết quả mô phỏng tính tổng theo cửa sổ trượt (Moving-windows)

3.2.3. Kết quả mô phỏng thực hiện bộ lọc FIR

3.2.4. Kết quả mô phỏng thực hiện vòng điều khiển PI (proportional integral)

3.2.5. Nhận xét kết quả mô phỏng

3.3. So sánh kết quả mô phỏng CGRA trên modelSim với một số nền tảng xử lý thông dụng

TÀI LIỆU THAM KHẢO

PHỤ LỤC 1: BẢNG MÔ TẢ THÔNG SỐ VÀ GIAO DIỆN CÁC MODULE PHỤ CỦA RCA

1. Module BIN_DECODER

PHỤ LỤC 2: HỖ TRỢ MÔ PHỎNG TRÊN MODELSIM

Tóm tắt

I. CGRA Là Gì Tổng Quan Về Mảng Tái Cấu Hình 50 60 ký tự

Ngày nay, kỹ thuật điều khiển tự động đã len lỏi vào mọi lĩnh vực của đời sống xã hội. Cùng với sự phát triển của khoa học kỹ thuật, nhu cầu nâng cao chất lượng sản phẩm trong lĩnh vực điều khiển đã tạo ra những yêu cầu mới về tốc độ tính toán, tính mềm dẻo trong quá trình phát triển sản phẩm, và tiết kiệm năng lượng. Để đáp ứng những yêu cầu này, các vi mạch khả trình đã ra đời và đóng vai trò quan trọng trong quá trình phát triển của kỹ thuật điều khiển số. Vi mạch FPGA, vi xử lý, DSP, hay GPU thực hiện nhiệm vụ then chốt trong quá trình thực hiện các hệ tính toán phức tạp. Tính năng khả trình đã tạo ra sự mềm dẻo trong quá trình phát triển. Tuy nhiên, trong vấn đề thiết kế tính toán hiệu năng cao, người thiết kế luôn phải cân bằng giữa sự mềm dẻo, hiệu năng, và độ phức tạp của thiết kế. Sự mềm dẻo trong thiết kế, hiệu năng tính toán, độ phức tạp của hệ thống là ba yếu tố cần cân bằng. Ngoài ra, kỹ thuật điều khiển số còn có một vấn đề khác cần quan tâm: 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, thường chiếm phần lớn tài nguyên tính toán của hệ thống. Đặc trưng của các vi xử lý truyền thống là ALU chỉ hỗ trợ phép toán với hai toán hạng đầu vào. Do đó, 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. Việc này làm giảm hiệu quả thực thi của các vòng lặp trên vi xử lý. Cần thực hiện theo phương án song song để tăng băng thông tính toán. Vi mạch ASIC luôn đứng đầu về hiệu năng làm việc. Tuy nhiên, quá trình thiết kế ASIC lâu dài, làm chậm tốc độ đưa sản phẩm ra thị trường, đồng thời dẫn tới chi phí nghiên cứu sản xuất ban đầu rất lớn. Khác với tính chất kiến trúc cố định của ASIC, kiến trúc có thể tái cấu hình của vi mạch FPG đã tạo ra một bước phát triển lớn trong kỹ thuật thiết kế số, tạo nền tảng cho việc phát triển các sản phẩm sử dụng kỹ thuật tính toán song song, có khả năng tái cấu hình. Để cân bằng giữa sự mềm dẻo, hiệu năng, và độ phức tạp, hướng nghiên cứu về một kiến trúc thô dạng mảng đang được quan tâm nghiên cứu. CGRA (Coarse Grain Reconfigurable Architectures) đang được nghiên cứu nhiều trên thế giới, phù hợp trong việc xử lý các bài toán liên quan tới vòng lặp trong kỹ thuật điều khiển trong khi vẫn cân bằng được các vấn đề trong thiết kế.

1.1. Lịch sử phát triển của kiến trúc CGRA

Ý tưởng về cấu trúc mảng trong tính toán song song đã xuất hiện từ nhiều năm trước. Các phần tử trong mảng tính toán rất đa dạng, từ các vi mạch DSP, bộ xử lý, đến các hệ máy tính. Ở mức vi mạch, các phần tử trong mảng có thể là các khối tính toán ở mức thấp hơn, ví dụ như các lõi CPU trong GPU, các tế bào logic trong FPGA, hoặc các tế bào thô trong macro cell trong PLD. Ở mức này, có thể phân chia theo hai kiến trúc cơ bản: kiến trúc tinh (fine-grained) và kiến trúc thô (coarse-grained). Kiến trúc tinh tập trung xử lý dữ liệu ở mức bit, trong khi kiến trúc thô tập trung xử lý dữ liệu theo nhóm bit với các khối chức năng phức tạp như ALU, bộ nhân, v.v. 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 cao đi kèm với hệ thống kết nối phức tạp, dẫn đến hiệu suất sử dụng năng lượng thấp. CGRA được đưa ra để giải quyết vấn đề này, cân bằng giữa hiệu quả sử dụng năng lượng, hiệu năng tính toán, và sự mềm dẻo trong thiết kế.

1.2. Ứng dụng tiềm năng của CGRA trong điều khiển

CGRA đặc biệt phù hợp với các ứng dụng trong kỹ thuật điều khiển do khả năng xử lý hiệu quả các phép toán vector và vòng lặp. Các phép toán như nhân ma trận, nhân chập, tính trung bình, v.v., thường chiếm phần lớn tài nguyên tính toán trong các hệ thống điều khiển. CGRA có thể được cấu hình để thực hiện các phép toán này một cách song song, giúp tăng tốc độ tính toán và giảm thời gian trễ. Điều này đặc biệt quan trọng trong các hệ thống điều khiển thời gian thực, nơi mà tốc độ phản hồi nhanh chóng là yếu tố then chốt. Ngoài ra, khả năng tái cấu hình của CGRA cho phép nó thích ứng với các yêu cầu khác nhau của các ứng dụng điều khiển khác nhau, mang lại sự linh hoạt và hiệu quả cao.

II. Thách Thức Thiết Kế CGRA Cân Bằng Hiệu Năng Linh Hoạt 50 60 ký tự

Thiết kế một CGRA hiệu quả đòi hỏi phải giải quyết nhiều thách thức. Đầu tiên, cần phải lựa chọn kiến trúc phù hợp, cân bằng giữa hiệu năng tính toán và khả năng tái cấu hình. Kiến trúc ô lưới (mesh) mang lại sự mềm dẻo cao trong định tuyến dữ liệu, nhưng lại phức tạp trong quá trình điều khiển. Kiến trúc tuần tự theo hàng đơn giản hơn trong định tuyến, nhưng kém mềm dẻo hơn. Thứ hai, cần phải tối ưu hóa khả năng xử lý của từng phần tử trong mảng. Điều này đòi hỏi phải lựa chọn các toán tử phù hợp và thiết kế các phần tử xử lý (PE) hiệu quả. Thứ ba, cần phải giảm thiểu thời gian cấu hình lại mảng. Điều này có thể được thực hiện bằng cách sử dụng bộ nhớ cấu hình theo ngữ cảnh và kỹ thuật cấu hình đồng thời với quá trình thực thi. Giải quyết những thách thức này đòi hỏi sự hiểu biết sâu sắc về các ứng dụng mục tiêu và các kỹ thuật thiết kế phần cứng tiên tiến.

2.1. Các yếu tố ảnh hưởng đến hiệu năng CGRA

Hiệu năng của một CGRA phụ thuộc vào nhiều yếu tố, bao gồm kiến trúc, khả năng xử lý của các PE, hệ thống kết nối, và chiến lược điều khiển. Kiến trúc phải phù hợp với các ứng dụng mục tiêu để đảm bảo rằng các phép toán quan trọng có thể được thực hiện một cách hiệu quả. Các PE phải có đủ khả năng tính toán để xử lý các phép toán phức tạp. Hệ thống kết nối phải cung cấp đủ băng thông để truyền dữ liệu giữa các PE. Chiến lược điều khiển phải đảm bảo rằng mảng được cấu hình lại một cách nhanh chóng và hiệu quả.

2.2. Độ phức tạp của hệ thống kết nối và định tuyến

Hệ thống kết nối và định tuyến là một phần quan trọng của CGRA, ảnh hưởng trực tiếp đến hiệu năng và khả năng tái cấu hình. Hệ thống kết nối phải cung cấp đủ băng thông để truyền dữ liệu giữa các PE một cách nhanh chóng. Hệ thống định tuyến phải cho phép dữ liệu được định tuyến đến đúng PE một cách hiệu quả. Tuy nhiên, việc thiết kế một hệ thống kết nối và định tuyến hiệu quả là một thách thức lớn, đặc biệt là trong các CGRA lớn. Có nhiều kiến trúc kết nối khác nhau, mỗi kiến trúc có ưu và nhược điểm riêng. Việc lựa chọn kiến trúc kết nối phù hợp phụ thuộc vào các ứng dụng mục tiêu và các ràng buộc về chi phí và năng lượng.

III. Phương Pháp Thiết Kế CGRA Kiến Trúc Thô và Tính Song Song 50 60 ký tự

Phương pháp thiết kế CGRA thường tập trung vào việc sử dụng kiến trúc thô và khai thác tính song song. Kiến trúc thô giúp giảm độ phức tạp của hệ thống kết nối và điều khiển, đồng thời tăng hiệu suất sử dụng năng lượng. Tính song song cho phép CGRA thực hiện nhiều phép toán cùng một lúc, giúp tăng tốc độ tính toán. Có nhiều cách để khai thác tính song song trong CGRA, bao gồm song song dữ liệu, song song tác vụ, và song song đường ống. Việc lựa chọn phương pháp song song phù hợp phụ thuộc vào các ứng dụng mục tiêu và các ràng buộc về tài nguyên.

3.1. Phân tích các phép toán vector trong điều khiển

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à 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ự. Khi đó một phép toán vector thường phải mất nhiều xung nhịp hệ thống để hoàn thành đưa ra kết quả. Ví dụ: Phép tính tổng SUM(X) = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 thông thường sẽ cần phải mất 07 xung nhịp đồng hồ liên tiếp để hoàn thành phép tính (với giả thiết mỗi phép tính cộng chỉ 01 xung nhịp). Với cách thực hiện như trên, thiết kế hệ thống tính toán sẽ đơn giản nhất. Tuy nhiên, khi tốc độ tính toán yêu cầu phải tăng cao, lúc này hệ thống tính toán cần phải thực hiện theo phương án song song để tăng băng thông tính toán. Việc thực hiện song song nhiều phép toán cùng lúc có nhiều cách tiếp cận khác nhau.

3.2. Ứng dụng tính song song nhiều lớp trong CGRA

Để đơn giản, xét một dãy gồm 08 các phần tử {x1, x2, x3,x4, x5, x6,x7, x8}. Ta cần tính tổng: SUM(X) =x1 + x2 + x3 +x4 + x5 + x6 +x7 + x8. Phép toán trên có thể thực hiện song song theo cách mô tả như hình 14. Theo mô hình tính toán này, số xung nhịp để thực hiện phép toán chỉ cần 03 xung nhịp (vẫn giữ giả thiết là một phép toán chỉ cần 01 xung nhịp để thực hiện). Tương tự như phép tính tổng, phép tích của một dãy cũng được thực hiện hoàn toàn tương tự với việc thay các toán tử cộng (+) bằng toán tử nhân (×) tương ứng. Trên cơ sở xem xét hai phép toán đơn giản trên, có thể nhận thấy rằng các phép toán vector như phép nhân chập, phép nhân ma trận, … hoàn toàn có thể thực hiện được theo phương án tính song song nhiều lớp. Điểm khác biệt giữa các phép toán này thể hiện ở hai điểm chính sau: cách đưa luồng dữ liệu đầu vào và cách thực thi luồng dữ liệu cho các toán tử giữa hai lớp liền kề. Đây chính là cơ sở cơ bản cho việc xây dựng một mảng tái cấu hình kiến trúc thô CGRA.

IV. Kiến Trúc Chi Tiết CGRA Lõi Tính Toán RCA và Điều Khiển 50 60 ký tự

Kiến trúc tổng thể của một mảng tái cấu hình kiến trúc thô CGRA cơ bản bao gồm hai phần: phần lõi tính toán RCA (Reconfigurable Cell Array) và phần điều khiển chung CGRA_CTRL. RCA làm nhiệm vụ xử lý các phép toán theo một cấu hình đã định trước. CGRA_CTRL thực hiện các nhiệm vụ cơ bản như cung cấp giao diện làm việc của CGRA, lưu trữ tệp tin cấu hình sẵn trong vùng nhớ Context_CONF_MEM, và điều khiển quá trình ghi/đọc dữ liệu với giao diện bên ngoài. RCA là một mảng hai chiều của các phần tử xử lý PE (Processing Element). Các PE được tổ chức thành các hàng và các cột. Để thuận tiện cho việc mở rộng thiết kế, các PE được sắp xếp thành các hàng (RCA_row).

4.1. Thiết kế RCA Mảng các phần tử xử lý PE tái cấu hình

Hai thành phần cơ bản của một RCA bao gồm: thành phần tính toán, xử lý, được tạo thành bởi các hàng PE (gọi là RCA_Row) và thành phần lưu trữ cấu hình: được thực hiện bởi tệp thanh ghi RCA_REG_FILE. Theo mô hình kết nối như mô tả trong Hình 17, mỗi hàng RCA_row sẽ chỉ có thể truyền số liệu đầu ra từ hàng này sang hàng khác theo thứ tự nối tiếp. Trong quá trình hoạt động của RCA, việc cấu hình của RCA có thể thực hiện lại thường xuyên. Khi đó, thời gian cấu hình cho một mảng RCA chiếm một tỷ trọng không nhỏ trong toàn bộ thời gian hoạt động. Để giải quyết vấn đề này, tệp thanh ghi cấu hình RCA_REG_FILE được sử dụng. Khi quá trình cấu hình đang được thực hiện, RCA vẫn có thể thực hiện chức năng tính toán của cấu hình cũ. Nói cách khác, quá trình cấu hình có thể thực thi song song với quá trình thực thi tính toán, xử lý số liệu. Chỉ khi nào quá 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 mỗi PE.

4.2. Cấu trúc và chức năng của phần tử xử lý PE

Một phần tử PE bao gồm 04 thành phần chính: Router, DATAPATH, ACC, và CONF_REG. Router làm nhiệm vụ định tuyến đầu vào dữ liệu cho DATAPATH. DATAPATH thực hiện chức năng tính toán dữ liệu dựa trên đầu vào được lựa chọn bởi bộ định tuyến Router. ACC thực hiện một trong hai chức năng: đệm dữ liệu đầu ra cho PE hoặc cộng tích lũy dữ liệu đầu ra của DATAPATH. CONF_REG lưu thông tin cấu hình của PE. Bộ định tuyến Router thực hiện chức năng định tuyến cho 01 kênh đầu vào của DATAPATH. Một phần tử PE phải gồm 02 bộ định tuyến như vậy (mỗi bộ cho một kênh đầu vào riêng biệt của DATAPATH). Khối tính toán xử lý PE chỉ là mạch tổ hợp thông thường, thực hiện chức năng DATAPATH. Khối gồm 2 đầu vào A, B. Các toán tử được thực hiện đồng thời, kết quả đầu ra sẽ được lựa chọn thông qua bộ ghép kênh với đầu vào lựa chọn là giá trị của OpCode.

V. Kết Quả Mô Phỏng Đánh Giá CGRA Trong Các Ứng Dụng 50 60 ký tự

Testbench mô phỏng lõi RCA của CGRA được thực hiện bằng phần mềm ModelSim. Testbench bao gồm các thành phần chính: UUT RCA (mô hình RTL của mảng CGRA), CLK_GEN (tạo xung đồng bộ), IN/OUT CONTROLLER (điều khiển quá trình ghi đọc dữ liệu kiểm thử). Dữ liệu đầu vào được đưa vào bằng các file text. Dữ liệu đầu ra sẽ được lưu lại và so sánh với việc thực hiện tính toán bằng phần mềm trên MATLAB hoặc C. RCA đã được tiến hành mô phỏng một số cấu hình tính toán thường dùng trong kỹ thuật điều khiển, bao gồm phép tính tổng, tích vô hướng, bộ điều khiển PI, phép tính tổng của một dãy trong cửa sổ trượt, và thực hiện bộ lọc FIR.

5.1. Mô phỏng phép toán cơ bản Tổng và Tích Vô Hướng

Phép tính tổng của một dãy: Kịch bản mô phỏng tính tổng SUM(X) = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8. Dữ liệu đầu vào gồm chuỗi X = (x1, x 2, x3, x4, x5, x6, x7, x8) được tạo ngẫu nhiên bởi Matlab. Dữ liệu đối chiếu lối ra là tổng của chuỗi lối vào tính bởi phần mềm Matlab được dùng để đối chiếu với các kết quả được tính bằng mô phỏng kiến trúc CGRA trên ModelSim. Hình 30 minh họa kết quả mô phỏng trên modelSim cho trường hợp: X = (1, 2, 3, 4, 5, 6, 7, 8); Kết quả tính toán SUM(X) = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36. Phép toán tích vô hướng: Kịch bản mô phỏng tính tích vô hướng <X,Y> = x1×y1 + x2× y2 + x3× y3 + x4× y4. Dữ liệu đầu vào gồm cặp vector X = (x1,x 2, x3, x4) và Y =(y1, y2, y3, y4) được tạo ngẫu nhiên bởi Matlab. Dữ liệu đối chiếu lối ra: Tính tích vô hướng của cặp vector (X,Y) lối vào tính bởi phần mềm Matlab được dùng để đối chiếu với các kết quả được tính bằng mô phỏng kiến trúc CGRA trên ModelSim. Hình 31 minh họa kết quả mô phỏng trên modelSim cho trường hợp: X = (1, 2, 3, 4), Y = (5, 6, 7, 8); Kết quả tính toán <X, Y> = 1×5 + 2×6 + 3×7 + 4×8 = 70.

5.2. Đánh giá CGRA trong ứng dụng điều khiển PI

Phần mô phỏng tập trung đánh giá hoạt động của RCA_4x4 khi thực hiện vòng điều khiển, nên để đơn giản hóa, giả thiết cơ cấu chấp hành (process) chỉ là bộ trễ, tương đương với MV = PV. Các giá trị Ki và Kp sẽ được tính toán dựa theo từng tính huống điều khiển cụ thể. Phép tính tích phân ∫ ( ) trong miền tương tự khi chuyển sang miền số sẽ được thực hiện dưới dạng tổng tích lũy. Trên cơ sở này, vòng điều khiển PI như Hình 38 có thể ánh xạ vào RCA như Hình 39. Vòng điều khiển có hệ số Kp, Ki điều khiển được. Kết quả ở Hình 40 được thực hiện với giá trị (SP, Kp, Ki) =(100000, 0.005, 0005), Hình 41 ứng với giá trí (SP, Kp, Ki) = (100000, 0.5). Tất cả các phép toán được xử lý dưới dạng số fixed-point (32 bit, trong đó 16 bit biểu diễn phần thập phân).

VI. Kết Luận và Hướng Phát Triển Tiềm Năng của CGRA 50 60 ký tự

Các kết quả mô phỏng đã thực hiện cho thấy RCA theo thiết kế trình bày ở chương 2 có khả năng cấu hình để thực hiện được một dải các phép toán thường gặp trong kỹ thuật điều khiển (như nội suy, tính trung bình, tính công suất, tính tương quan, vòng điều khiển cơ bản, …). Với phép toán tổng với chiều dài dãy là 8 phần tử hay với phép toán tích vô hướng của hai vector 04 chiều thì cần 03 xung nhịp để thực hiện (mỗi nhịp tương ứng với một mức tính toán như mô tả trong các Hình 14 và Hình 15). Các kết quả mô phỏng trong mục 3.3 được thực hiện với CGRA có kích thước 8x8, độ rộng dữ liệu là 32 bit đầu vào, thời gian thực thi bằng tổng thời gian nạp dữ liệu vào/đọc kết quả ra và thời gian thực thi phép toán.

6.1. Ưu điểm và hạn chế của thiết kế CGRA hiện tại

Trong hai kết quả mô phỏng RCA được thực hiện trong 3.2 cho thấy sự phù hợp với kết quả phân tích thiết kế ban đầu ở mục 2. Với phép toán tổng với chiều dài dãy là 8 phần tử hay với phép toán tích vô hướng của hai vector 04 chiều thì cần 03 xung nhịp để thực hiện (mỗi nhịp tương ứng với một mức tính toán như mô tả trong các Hình 14 và Hình 15). Trong trường hợp độ dài dữ liệu đầu vào là N (với trường hợp tính tổng thì N là số lượng của phần tử trong dãy, tích vô hướng là số chiều của các vector) thì chỉ cần số xung nhịp cần cho mỗi phép toán sẽ như sau: (N/8 + 4) xung nhịp với phép tính tổng (quá trình tính tổng được thực hiện theo phương pháp Pipeline, mỗi lần tính thực hiện với 8 số hạng trong dãy, và cần phải 3 nhịp mới hoàn thành được một phép cộng). (N/4 + 4) xung nhịp với phép tính tích vô hướng. (quá trình tính tích vô hướng được thực hiện theo phương pháp Pipeline, mỗi lần tính thực hiện với 4 thành phần của mỗi vector, và cần phải 3 nhịp mới hoàn thành được một phép cộng).

6.2. Hướng phát triển tiềm năng của CGRA trong tương lai

Kết quả mô phỏng ở mục 3.2 mới chỉ thể hiện được khả năng tính toán của RCA sau khi CGRA đã có sẵn dữ liệu đầu vào trong vùng nhớ CACHE. Trong thực tế, khi ghép nối CGRA vào một hệ thống hoàn chỉnh, lúc này thời gian để nạp dữ liệu đầu vào CACHE và đọc dữ liệu kết quả ra từ CACHE cần phải xem xét đến. Do RCA trong CGRA tính toán với bus dữ liệu có kích thước lớn (ví dụ: RCA 8x8 với dữ liệu có độ rộng 32 bit thì bus dữ liệu xử lý là 8×32 = 256 bit) trong khi bus dữ liệu của hệ thống điều khiển nhỏ hơn rất nhiều (với mô hình ở mục 1.3 thì độ rộng của bus dữ liệu Avalon của Altera là 32 bit). Vì vậy để không làm giảm hiệu năng tính toán của CGRA, cần phải thực hiện phép toán theo kỹ thuật đường ống (pipeline), và thực hiện đồng thời quá trình ghi dữ liệu vào CACHE và xử lý dữ liệu trên RCA.

24/09/2025

Trích đoạn nội dung tài liệu

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).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ