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

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế mảng tái cấu hình kiến trúc thô CGRA ứng dụng cho kỹ thuật điều khiển luận văn ths công nghệ điện tử viễn thông 60 52 02 03 (Trang 38)

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

Khối điều khiển của GR được thiết kế gồm 03 thành phần cơ bản: - CACHE: có nhiệm vụ đệm dữ liệu vào/ra của CGRA.

- CGRA_FSM: có nhiệm vụ nhận lệnh điều khiển từ bên ngoài.

- CONTEXT_CONF_MEM: có nhiệm vụ lưu thông tin cấu hình làm việc của CGRA.

CGRA_CTRL

CACHE CGRA_FSM

CONTEXT_CONF_MEM

Hình 25: Cấu trúc Top-down của CGRA_CTRL

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

CONF_CONTEXT_#0 CONF_CONTEXT_#1 CONF_CONTEXT_#127 NUM_OF_RCA_COL Context_#0 Context_#1 Context_#127

ấu trúc vùng nhớ Phƣơng án thực thi

Hình 26: Mô hình bộ nhớ lƣu cấu hình theo ngữ cảnh của CGRA

Bộ nhớ lưu thông tin cấu hình theo ngữ cảnh CONTEXT_CONF_MEM của CGRA có nhiệm vụ lưu trữ thông tin cấu hình cho mảng RCA. Do mảng CGRA

thường xuy n được cấu hình lại trong quá trình làm việc, để giảm thiểu thời gian cho việc cấu hình lại hệ thống, bộ nhớ cấu hình ngữ cảnh CONTEXT_CONF_MEM sẽ lưu được tối đa 128 cấu hình khác nhau thường lặp lại trong quá trình tính toán. Các cấu hình này sẽ được lưu theo từng khối nhớ quy định sẵn. Việc 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 của RCA_REG_FILE của RCA.

Do RCA_REG_FILE của R có độ rộng bus dữ liệu lớn (bội số của 32), để thuận tiện cho việc sử dụng lại thiết kế, bộ nhớ ONTEXT_ ONF_MEM được tạo thành bằng các ghép song song các bộ nhớ có độ rộng dữ liệu DATA_WIDTH là 32 bit.

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

DATA_A CACHE DATA_B DATA_B DATA_B DATA_OUT Hình 27: Cấu trúc vùng nhớ CACHE

Bộ nhớ CACHE có nhiệm vụ lưu trữ, đệm dữ liệu cần xử lý đầu v o, lưu trữ dữ liệu đầu ra của RCA. Dữ liệu trong HE được chia thành 2 vùng riêng biệt lưu thông tin tương ứng: đầu v o , B v đầu ra từ RCA. ể có thể truy xuất đồng thời dữ liệu, HE được tạo từ các khối RAM 2 cổng đọc ghi riêng biệt. Bảng 9 mô tả chi tiết giao diện làm việc của CACHE.

Bảng 9: Thông số và giao diện của CACHE

TT Tham số/Giao diện Vào/ra Mô tả

1 Tham số

1.2 DATA_WIDTH ộ rộng đường dữ liệu

2.1 CLK Vào Tín hiệu đồng bộ CLK

2.2 WRITE_N Vào Tín hiệu cho phép ghi dữ liệu

2.4 ADDR_IN Ra ịa chỉ ghi dữ liệu

2.5 ADDR_OUT Ra ịa chỉ đọc dữ liệu

2.8 D_I Vào Dữ liệu đầu vào FIFO

2.9 Q_O Ra Dữ liệu đầu ra FIFO

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

Khối điều khiển hoạt động cơ bản của CGRA thực hiện chức năng giao tiếp với hệ thống bên ngoài thông qua 03 giao diện chính:

- Giao diện ghi đọc dữ liệu cần xử lý. - Giao diện ghi dữ liệu cấu hình.

- Giao diện xử lý lệnh đưa v o điều khiển CGRA từ bên ngoài.

Trong đó giao diện xử lý lệnh đưa v o điều khiển CGRA từ bên ngoài thực hiện những lệnh cơ bản sau:

- Lệnh ghi dữ liệu cần xử lý vào vùng CACHE. - Lệnh lấy dữ liệu đã được xử lý từ vùng CACHE. - Lệnh ghi cấu hình vào CONTEXT_CONF_MEM.

- Lệnh nạp cấu hình từ CONTEXT_CONF_MEMvào RCA. - Lệnh đưa dữ liệu cần xử lý từ CACHE vào RCA

- Lệnh khởi tạo trạng thái ban đầu của RCA

- Lệnh lấy thông tin trạng thái hoạt động của CGRA

Bảng 10: Thông số và giao diện của module FSM

TT Tham số/Giao diện Vào/ra Mô tả

1 Tham số

1.2 DATA_WIDTH ộ rộng dữ liệu

2 Giao diện

2.1 CLK Vào Tín hiệu đồng bộ CLK

2.2 RESET_N Vào Tín hiệu thiết lập ban đầu (tích cực mức thấp)

2.3 ENABLE Vào Tín hiệu bật/tắt hoạt động của khối

0: dừng hoạt động 1: hoạt động

2.4 COMMAND_I Vào Lệnh cần xử lý

xử lý

2.6 DATA_IO Vào/Ra Bus dữ liệu đưa thông v o HE

hoặc lấy thông tin từ CACHE ra

2.7 DATA_Wen Vào iều khiển quá trình ghi/đọc dữ

liệu vào CACHE

2.8 CONF_DATA_I Vào Dữ liệu cấu hình đưa v o vùng

nhớcấu hình theo ngữ cảnh

CONTEXT_CONF_MEM

2.9 CONF_LOAD_I Vào iều khiển quá trình ghi dữ liệu vào vùng nhớ cấu hình theo ngữ cảnh CONTEXT_CONF_MEM

2.10 CONTEXT_ID_I Vào Vùng nhớ cấu hình ngữ cảnh cần ghi trong

CONTEXT_CONF_MEM

ƢƠ 3 ẾT QUẢ M P Ỏ V T M 3.1 Mô hình mô phỏng RCA của CGRA trong môi trƣờng ModelSIM

RCA_TEST_BENCH IN/OUT CONTROLLER UUT RCA Read_CONF_FILE WRITE OUTPUT TO TEXT_FILE WRITE OUTPUT TO TEXT_FILE CLK_GEN INPUT DATA FILE CONF_DATA FILE OUTPUT DATA FILE

Hình 28: Mô hình mô phỏng RCA trong ModelSIM

Testbench mô phỏng lõi RCA của GR được thực hiện như trong Hình 28 - UUT RCA: là mô hình RTL viết bằng ngôn ngữ mô tả phần cứng VHDL của

mảng CGRA được đề xuất trong chương 2.

- CLK_GEN: tạo xung đồng bộ trong toàn hệ thống.

- IN/OUT ONTROLLER điều khiển quá trình ghi đọc dữ liệu kiểm thử (bao gồm dữ liệu cấu hình, dữ liệu kiểm thử). Dữ liệu đầu v o được đưa v o bằng các file text (để thuận tiện trong việc mô phỏng với các khối dữ liệu lớn). Trong trường hợp dữ liệu đầu ra phức tạp, cần xử lý để thuận tiện cho việc kiểm tra thì có thể xuất ra file text; trường hợp đơn giản có thể xem kết quả trực tiếp trên cửa sổ WAVE của ModelSim.

Nguyên tắc thực hiện mô phỏng kiểm thử như sau:

- Dữ liệu đầu v o được tạo ngẫu nhiên bằng chương trình M TL B (hoặc C). - Thông tin cấu hình được thiết lập thủ công tr n cơ sở đã xác định trước cấu

hình sẽ sử dụng.

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

Tr n cơ sở như tr n, RCA với thiết kế trình bày ở chương 2 đã đượ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 (proportional integral).

- Phép tính tổng của một dãy trong cửa sổ trượt (Moving average). - Thực hiện bộ lọc FIR

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

3.2.1Kế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

x1 y1 x2 y2 x x x3 y3 x4 y4 x x x x x x + + x x + x x x RCA 4x4 x1 y1 x2 y2 x x x3 y3 x4 y4 x x + + x x ACC x x x RCA 4x4 + + + +

Hình 29: Cấu hình thực hiện mô phỏng phép tính SUM 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) đuợc tạo ngẫu nhiên bởi Matlab.

- Dữ liệu đối chiếu lối ra: 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) đuợ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);

Hình 30: Kết quả mô phỏng RCA_4x4 với phép toán tính tổng

Hình 31: Kết quả mô phỏng RCA_4x4 với phép toán tích vô hƣớng

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

Công thức tính tổng theo cửa sổ trượt kích thước N có dạng như sau:

( ) ∑ ( )

(3-1)

Công thức (3-1) có thể viết lại dưới dạng hiệu của hai tổng tích lũy như sau: Kết quả đầu ra có giá trị = 36 Kết quả đầu ra có giá trị = 70

( ) ∑ ( ) ∑ ( ) (3-2)

Cách biểu diễn theo công thức (3-2) giúp đưa ra một cấu trúc thực thi phép tính tổng theo cửa sổ trượt như minh họa ở Hình 32, cấu trúc này phù hợp với thiết kế của RCA trong luận văn.

ADD D1 D2

SUMW(n) DN

-

Hình 32: Cấu trúc tính tổng theo cửa sổ trƣợt có kích thƣớc N

Kịch bản mô phỏng:

- Mô hình mô phỏng tính tổng theo cửa sổ trượt với kích thước cửa sổ là N=10 với cấu trúc thực thi như Hình 33

ACC RCA 4x4 D D D D D ACC D D D SUB D D D D D D ầu ra ầu vào

Hình 33: Cấu hình thực hiện phép tính tổng theo cửa sổ trƣợt

- Dữ liệu đầu vào: dữ liệu được tạo dưới dạng chuỗi ngẫu nhiên.

- Dữ liệu đối chiếu lối ra: được đối chiếu với kết quả tính bằng MATLAB 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 trên ModelSim.

Kết quả mô phỏng trong Hình 34 được thực hiện với chuỗi dữ liệu đầu vào là tín hiệu xung vuông có nhiễu cộng. ầu ra sau khi được xử lý bằng bộ cộng theo cửa sổ trượt vẫn là tín hiệu xung vuông nhưng gợn sóng do nhiễu đã được làm mịn.

Hình 34: Kết quả mô phỏng tính tổng theo cửa sổ trƣợt

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

Công thức bộ lọc FIR tổng quát có dạng như sau:

( ) ∑ ( ) ( )

(3-3)

Có nhiều cấu trúc để thực hiện tính toán bộ lọc này, với cấu trúc thiết kế của RCA thực hiện trong luận văn thì cấu trúc thực hiện theo Hình 35 là phù hợp nhất.

Hình 35: Cấu trúc thực hiện FIR với trƣờng hợp N=5

Kịch bản mô phỏng:

- Mô phỏng bộ lọc FIR bậc 3 hệ số tương ứng là (H3, H2, H1, H0); - Thực hiện cấu hình bộ lọc tr n R như trong Hình 36.

- Dữ liệu đầu v o được sinh ngẫu nhiên từ MATLAB (để thuận tiện cho việc theo dõi, đánh giá kết quả, dữ liệu thường được tạo ra dưới dạng là hàm tổng của hai hay nhiều h m sin(2πft) có tần số f khác nhau).

- Kết quả đầu ra được so sánh với kết quả tính trực tiếp trên MATLAB. Tín hiệu đầu vào có nhiễu Tín hiệu đầu sau bộ cộng

MULT RCA 4x4 D ADD MULT D MULT ADD MULT ADD D D D D D ầu ra H3 H2 H1 H0 X(n)

Hình 36: Cấu hình thực hiện bộ lọc FIR (04 tap)

Kết quả mô phỏng trong Hình 37 được thực hiện với đầu vào là tổng của 2 hàm sin (một tần số cao, một tần số thấp). Hệ số lọc được chọn sao cho bộ lọc thực hiện chức năng lọc thông thấp, khi đó đầu ra sẽ chỉ còn lại thành phần tần số thấp.

Hình 37: Kết quả mô phỏng bộ lọc FIR có hệ số lọc {21, 13, 13, 21}

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

Hình 38: Mô hình toán của một vòng điều khiển PI

Tín hiệu đầu v o trước lọc có thành phần tần số cao Tín hiệu đầu ra sau lọc; đã loại bỏ tần số cao

Hình 38 l mô hình cơ bản của một vòng điều khiển PI đầy đủ. Phần mô phỏng của luận văn 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.

Kịch bản mô phỏng:

- Mô hình mô phỏng vòng điều khiển PI (proportional integral)

RCA 4x4 SUB MUL SUB MUL ACC ầu ra Set-Point Kp Ki

Hình 39: Cấu hình vòng điều khiển PD

- Dữ liệu đầu vào:

o Giá trị cần vòng điều khiển PI cần bám theo được đưa v o qua thông số SP (setpoint). Trong trường hợp mô phỏng ở Hình 40 và Hình 41, SP là giá trị cố định.

o 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, 0.5)

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

Hình 40: Kết quả mô phỏng điều khiển PI với giá trị Kp và Ki nhỏ

Hình 41: Kết quả mô phỏng điều khiển PI với giá trị Kp và Ki lớn

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

Về tính năng

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ủa luận văn 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ề tốc độ tính toán:

Trong hai kết quả mô phỏng R đượ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.1.1 và 2.1.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)

Tín hiệu được điều khiển đưa về ngưỡng thiết lập ban đầu (Setpoint) Tín hiệu được điều khiển đưa về ngưỡng thiết lập ban đầu (Setpoint)

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 GR đã 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 (ví dụ như ở cuối chương 1, mục 1.3 của luận văn), lúc n y thời gian để nạp dữ liệu đầu v o HE 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. Kết quả mô phỏng, tính toán trình bày trong mục 3.3 sẽ làm rõ hơn vấn đề này.

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 xử lý thông dụng

Các kết quả mô phỏng trong mục 3.3 được thực hiện với GR 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ữ

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế mảng tái cấu hình kiến trúc thô CGRA ứng dụng cho kỹ thuật điều khiển luận văn ths công nghệ điện tử viễn thông 60 52 02 03 (Trang 38)