Tải bản đầy đủ (.pdf) (56 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.12 MB, 56 trang )

IH

QU

TRƢ

GI H N I


NGUYỄ

ỨC NAM

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

UẬ V

T

S

ỀU KHIỂN

T

– 2015

-V Ễ T



IH

QU

TRƢ

GI H N I


ỨC NAM

NGUYỄ

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

ỀU KHIỂN

Ng nh: Công nghệ iện tử - Viễn thông
huy n ng nh: Kỹ thuật điện tử
Mã số: 60520203

UẬ V

Ƣ

T


Ƣ

S

T



1. PGS.TS. TRẦN QUANG VINH
2. TS. NGUYỄN KIÊM HÙNG

– 2015

-V Ễ T


M

L
Tôi xin cam đoan:

Bản luận văn tốt nghiệp này là công trình nghiên cứu thực sự của cá nhân tôi,
được thực hiện dựa tr n cơ sở nghiên cứu lý thuyết, thực tế dưới sự hướng dẫn của
PGS.TS Trần Quang Vinh và TS.Nguyễn Kiêm Hùng.
Các số liệu, kết luận của luận văn l trung thực, dựa trên sự nghiên cứu những
mô hình, thành quả đã đạt được của các nước trên thế giới và trải nghiệm của bản thân,
chưa từng được công bố dưới bất kỳ hình thức n o trước khi trình, bảo vệ trước “Hội
đồng đánh giá luận văn thạc sỹ kỹ thuật”.
Một lần nữa tôi xin khẳng định về sự trung thực của lời cam kết.


Hà nội, Ngày ….. tháng … năm2015
Người cam đoan

Nguyễn Đức Nam


ẢM Ơ
Tôi xin chân th nh cảm ơn PGS.TS Trần Quang Vinh v TS.Nguyễn Ki m
Hùng, hai thầy đã tận tình giúp đỡ, chỉ bảo hướng dẫn tôi trong suốt thời gian thực
hiện luận văn tốt nghiệp.
Tôi cũng xin cảm ơn sự hỗ trợ một phần từ đề t i cấp Trường H N, Mã số đề
tài: CN.14.04.
Mặc dù có nhiều cố gắng, nhưng vì thời gian có hạn v vốn kiến thức còn rất
hạn chế n n công trình còn nhiều thiếu sót. Vì vậy, tôi rất mong nhận được sự đóng
góp, chỉ bảo của các thầy cô v các bạn.
Tôi xin chân th nh cảm ơn!


1

MỤ
MỤ



Ụ ............................................................................................................ 0

DANH MỤC CÁC KÝ HI U VÀ CHỮ VIẾT TẮT ....................................... 3
DANH MỤC CÁC BẢNG .................................................................................. 4
DANH MỤC CÁC HÌNH VẼ, Ồ THỊ ............................................................ 5

MỞ ẦU .............................................................................................................. 7
Lý do lựa chọn đề tài .................................................................................................7
Mục tiêu đề tài ...........................................................................................................9
Phƣơng pháp nghiên cứu ..........................................................................................9
Nội dung nghiên cứu ...............................................................................................10
Nghiên cứu lý thuyết .............................................................................................10
Thiết kế hệ thống ...................................................................................................10
Kết cấu luận văn ......................................................................................................10

ƢƠ

1

KHÁI NI M VÀ VẤ

Ề CẦN GIẢI QUYẾT ................. 11

1.1 Giới thiệu chung ................................................................................................11
1.2 Một số mô hình
R đã đƣợc nghiên cứu trên thế giới .............................12
1.2.1 Kiến trúc MorPhoSys ...................................................................................12
1.2.2 Kiến trúc ADRES ..........................................................................................14
1.2.3 Kiến trúc REMUS .........................................................................................15
1.2.4 Nhận xét chung .............................................................................................17
1.3 Vấn đề cần giải quyết ........................................................................................17

ƢƠ

2


THIẾT KẾ CHI TIẾT CỦA CGRA ..................................... 20

2.1 Phƣơng án đề xuất thiết kế CGRA sử dụng trong kỹ thuật điều khiển .......20
2.1.1 Phép toán tổng/tích của một dãy ..................................................................20
2.1.2 Phép tính tích vô hướng của hai vector........................................................21
2.1.3 Phương án kiến trúc CGRA ..........................................................................22
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 ...................22
2.3 Thiết kế chi tiết của RCA ..................................................................................22
2.3.1 Kiến trúc tổng thể của RCA ..........................................................................22
2.3.2 Cấu trúc thực hiện của RCA_Row ...............................................................25
2.3.3 PE và các phần tử cấu thành PE ..................................................................26
2.3.4 Bộ tích lũy, thanh ghi đệm đầu ra của PE....................................................30


2
2.3.5 Thanh ghi cấu hình của PE ..........................................................................31
2.3.6 Tệp thanh ghi cấu hình của RCA..................................................................32
2.4 Thiết kế chi tiết của CGRA_CTRL .................................................................34
2.4.1 Kiến trúc tổng thể của CGRA_CTRL ...........................................................34
2.4.2 Bộ nhớ lưu cấu hình theo ngữ cảnh của CGRA ...........................................34
2.4.3 Bộ nhớ dữ liệu vào ra của CGRA .................................................................35
2.4.4 Khối điều khiển hoạt động cơ bản của CGRA .............................................36

ƢƠ

3

KẾT QUẢ MÔ PHỎNG VÀ TH

NGHI M ..................... 38


3.1 Mô hình mô phỏng RCA của
R trong môi trƣờng ModelSIM .............38
3.2 Kết quả mô phỏng lõi RCA_4x4 của CGRA trên ModelSIM .......................39
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 .....................................................................................................................39
3.2.2 Kết quả mô phỏng tính tổng theo cửa sổ trượt (Moving-windows). ............40
3.2.3 Kết quả mô phỏng thực hiện bộ lọc FIR ......................................................42
3.2.4 Kết quả mô phỏng thực hiện vòng điều khiển PI (proportional integral)....43
3.2.5 Nhận xét kết quả mô phỏng ..........................................................................45
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 ................................................................................................................46

KẾT LUẬN ........................................................................................................ 48
TÀI LI U THAM KHẢO ................................................................................ 49
PHỤ LỤC 1: BẢNG MÔ TẢ THÔNG SỐ VÀ GIAO DI N CÁC MODULE
PHỤ CỦA RCA ................................................................................................. 50
PL1.1 Module MUX_N_1 .......................................................................................50
PL1.2 Module MUX_2_1 ........................................................................................50
PL1.3 Module BIN_DECODER .............................................................................51

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


3

MỤ
TT

Thuật ngữ viết tắt


Á

Ý

UV

Ữ V ẾT TẮT

Thuật ngữ viết đầy đủ

1 ACC

Accumulator

2 ALU

Arithmetic Logic Unit

3 ASIC

Application-Specific Integrated Circuit

4 CGRA

Coarse Grain Reconfigurable Architectures

5 CPLD

Complex Programmable Logic Device


6 CPU

Central Processing Unit

7 CRA

Reconfigurable ell rray

8 DMA

Direct Memory Access

9 DSP

Digital Signal Processor

10 FIFO

First In, First Out

11 FPGA

Field-Programmable Gate Array

12 FSM

Finite-State Machine

13 GPU


Graphic Processing Unit

14 MIMD

Multiple Instruction, Multiple Data

15 PE

Processing Element

16 SIMD

Single Instruction, Multiple Data

17 SoC

System on Chip

18 VLIW

Very Long Instruction Word


4

MỤ

Á BẢ


Bảng 1: Tham số và giao diện của module RCA ..........................................................24
Bảng 2: Thông số và giao diện của module RCA_row .................................................25
Bảng 3: Thông số và giao diện của module PE .............................................................27
Bảng 4: Thông số và giao diện của module PE_router .................................................28
Bảng 5: Thông số và giao diện của module DATAPATH ............................................29
Bảng 6: Danh sách phép toán của DATAPATH ...........................................................30
Bảng 7: Thông số và giao diện của module ACC .........................................................31
Bảng 8: Thông số và giao diện của module RCA_REG_FILE .....................................33
Bảng 9: Thông số và giao diện của CACHE .................................................................35
Bảng 10: Thông số và giao diện của module FSM .......................................................36
Bảng 11: So sánh tốc độ thực hiện của CGRA với các giải pháp khác nhau ................47
Bảng 12: Thông số và giao diện của module MUX_N_1 .............................................50
Bảng 13: Thông số và giao diện của module MUX_2_1 ..............................................50
Bảng 14: Thông số và giao diện của module BIN_DECODER....................................51


5

MỤ

Á

Ì

VẼ, Ồ T Ị

Hình 1: Ba vấn đề cơ bản trong thiết kế hệ thống ...........................................................7
Hình 2: Minh họa so sánh kiến trúc tinh - kiến trúc thô[13] .........................................11
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 ............................12
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 ..............12

Hình 5: Kiến trúc RC MorPhoSys [4] ...........................................................................13
Hình 6: Kiến trúc MorPhoSys [13] ...............................................................................13
Hình 7: Kết nối MorPhoSys trong hệ SoC [5] ..............................................................14
Hình 8: Kiến trúc ADRES[7] ........................................................................................14
Hình 9: Kiến trúc RSoC của bộ xử lý REMUS [3] .......................................................15
Hình 10: Cấu trúc của một RPU trong bộ xử lý REMUS [3] .......................................16
Hình 11: Cấu trúc của phần tử RC trong REMUS [3] ..................................................16
Hình 12: Các thành phần cơ bản của một hệ thống có CGRA ......................................17
Hình 13: Mô hình ghép nối CGRA cho một hệ điều khiển cơ bản ...............................18
Hình 14: Thực hiện tổng theo phương pháp tính song song nhiều lớp .........................21
Hình 15: Thực hiện tích vô hướng theo phương pháp tính song song nhiều lớp ..........21
Hình 16: Cấu trúc Top-down của RCA .........................................................................23
Hình 17: Mô hình kết nối bên trong RCA .....................................................................23
Hình 18: Mô hình kết nối bên trong RCA_Row (08 PE trong 01 hàng).......................25
Hình 19: Cấu trúc của phần tử PE .................................................................................26
Hình 20: Cấu trúc bộ định tuyến đầu vào ROUTER của PE (cho 01 k nh đầu ra) ......28
Hình 21: Cấu trúc DATAPATH của PE........................................................................29
Hình 22: Cấu trúc bộ tích lũy đầu ra ACC của PE ........................................................31
Hình 23: Cấu trúc thanh ghi cấu hình của PE ...............................................................32
Hình 24: Mô hình kết nối dữ liệu bên trong tệp thanh ghi cấu hình của RCA .............33
Hình 25: Cấu trúc Top-down của CGRA_CTRL ..........................................................34
Hình 26: Mô hình bộ nhớ lưu cấu hình theo ngữ cảnh của CGRA ...............................34
Hình 27: Cấu trúc vùng nhớ CACHE ............................................................................35
Hình 28: Mô hình mô phỏng RCA trong ModelSIM ....................................................38
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 ..................39
Hình 30: Kết quả mô phỏng RCA_4x4 với phép toán tính tổng ...................................40
Hình 31: Kết quả mô phỏng RCA_4x4 với phép toán tích vô hướng ...........................40
Hình 32: Cấu trúc tính tổng theo cửa sổ trượt có kích thước N ....................................41
Hình 33: Cấu hình thực hiện phép tính tổng theo cửa sổ trượt .....................................41
Hình 34: Kết quả mô phỏng tính tổng theo cửa sổ trượt ...............................................42

Hình 35: Cấu trúc thực hiện FIR với trường hợp N=5 ..................................................42
Hình 36: Cấu hình thực hiện bộ lọc FIR (04 tap) ..........................................................43
Hình 37: Kết quả mô phỏng bộ lọc FIR có hệ số lọc {21, 13, 13, 21} .........................43


6
Hình 38: Mô hình toán của một vòng điều khiển PI .....................................................43
Hình 39: Cấu hình vòng điều khiển PD.........................................................................44
Hình 40: Kết quả mô phỏng điều khiển PI với giá trị Kp và Ki nhỏ ............................45
Hình 41: Kết quả mô phỏng điều khiển PI với giá trị Kp và Ki lớn .............................45


7

MỞ ẦU
Lý do lựa chọn đề tài
Ngày nay, kỹ thuật điều khiển tự động có mặt trong hầu hết tất cả các lĩnh vực đờ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 của các sản phẩm trong lĩnh vực điều khiển đã dẫn tới các yêu cầu mới về tốc độ
tính toán (do dữ liệu xử lý ngày càng nhiều), yêu cầu về tính mềm dẻo trong quá trình
phát triển sản phẩm để rút ngắn thời gian đưa ra thị trường (time-to-market), các vấn
đề 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 (Field Programable Gate Array), vi xử lý, các vi mạch xử lý tín
hiệu số DSP (Digital Signal Processor), hay các vi xử lý đồ họa GPU (Graphic
Processing Unit), ... 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 các vấn đề: sự mềm dẻo trong thiết kế, hiệu năng tính toán, độ phức tạp
của thiết kế (Hình 1).

Sự mềm dẻo
Flexibility

ộ phức tạp
Complexity

iệu năng
Performance

Hình 1: Ba vấn đề cơ bản trong thiết kế hệ thống

Khi thực hiện quá trình thiết kế, ngoài sự cân bằng trong hệ thống, kỹ thuật điều
khiển số có một vấn đề khác cần phải được quan tâm trong tính toá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, …) 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ỗ


8
trợ thường chỉ hỗ trợ phép toán với 02 toán hạng đầu vào, 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. 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<=N)
{dot_produc= dot_produc +x(i) * y(i)}
(2) Phép tính tích chập
For (i=0; i++; i<=N)
{ Output(i) = 0;
For (j=0;j++;j{ Output(i) = Output(i)+x(i+j)*h(j) }}

Dễ nhận thấy rằng, với một cấu trúc vi xử lý truyền thống, để thực hiện các vòng
lặp đơn giản trên, hệ thống phải thực hiện lặp lại nhiều lần việc kiểm tra điều kiện khi
nào vòng lặp kết thúc. Như vậy, một phần lớn thời gian tính toán phải dùng cho việc
kiểm tra điều kiện dừng của vòng lặp. Ngoài ra, ở cách thức thực hiện này, lệnh vi xử
lý cũng cần thực hiện lặp đi lặp lại việc nạp và giải mã cùng một mã lệnh trong thân
vòng lặp.

iều 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ý. 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 (trong khi có thể vẫn giữ nguyên
tốc độ xung nhịp đồng hồ, vì thực tế việc tăng tốc độ xung nhịp chỉ có thể đạt một tới
một giới hạn nhất định do giới hạn bởi công nghệ chế tạo vi mạch hiện nay).
ể giải quyết vấn đề tốc độ tính toán, tối ưu hóa tốc độ xung nhịp, vi mạch ASIC
luôn đứng đầu về hiệu năng làm việc do được tối ưu hóa thiết kế ở mức phần cứng.
Tuy nhiên, kết quả tối ưu của ASIC chỉ có thể đạt được thông qua một quá trình thiết
kế 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. iều này làm ASIC "mất điểm" khi so sánh về sự
mềm dẻo với vi mạch FPGA.
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ác vi mạch FPGA rất mềm dẻo bởi ngưởi sử dụng có thể lập trình để cấu
hình lại FPGA tới bất kỳ chức năng mong muốn nào (các FPGA mới nhất hiện nay
cho phép cấu hình từng phần, tức là một phần của FPGA có thể cấu hình trong khi
phần còn lại vẫn hoạt động bình thường). Tuy nhi n, ưu điểm về sự mềm dẻo của
FPGA bị "trả giá" bởi sự phức tạp của hệ thống kết nối trên vi mạch do kiến trúc tinh
(Fine-grain) của các khối logic khả trình. ể cân bằng, lấp vào khoảng trống trong đồ
thị tương quan giữa các vấn đề của thiết kế (sự mềm dẻo, hiệu năng tính toán, độ phức



9
tạp của hệ thống) giữa FPG v
SI , hướng nghiên cứu về một kiến trúc thô
(Coarse-grain) dạng mảng đang được quan tâm nghiên cứu trong những năm gần đây.
Kết hợp tư duy về tính toán song song, khả năng cấu hình lại của hệ thống dạng mảng,
xu hướng nghiên cứu về một cấu trúc tính toán mới 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ế. Sản phẩm sử dụng cấu trúc n y chưa
được thương mại hóa một cách rộng rãi do vẫn đang trong giai đoạn nghiên cứu hoàn
thiện.
Xuất phát từ thực tế nêu trên, luận văn tập trung nghiên cứu với đề tài “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”.

Mục tiêu đề tài
Tr n cơ sở nghiên cứu phương pháp tính song song, cùng với các mô hình kiến
trúc thực thi GR khác nhau, đề tài tập trung vào việc xây dựng một mô hình RCA
(Reconfigurabel Cell Array-đây l lõi tính toán chính của CGRA) ở mức RTL cho
phép thực hiện các phép toán song song, có khả năng tái cấu hình trong quá trình hoạt
động phù hợp cho các ứng dụng trong kỹ thuật điều khiển, các thành phần còn lại của
GR được thiết kế ở mức mô hình hành vi, sử dụng để đánh giá mô phỏng chức
năng của một GR đầy đủ. Thiết kế phải đảm bảo tính mềm dẻo, cho phép mở rộng
trong các phương án khác nhau.

Phƣơng pháp nghiên cứu
ể thực hiện mục ti u tr n, phương pháp nghi n cứu được sử dụng gồm:
 Phương pháp nghiên cứu lý thuyết: Tìm hiểu một số hướng nghiên cứu về
CGRA trên thế giới; Tr n cơ sở phân tích các phép toán với đầu vào kiểu vector

(tích chập, phép toán vector, ..) thường dùng trong kỹ thuật điều khiển kết hợp
với phương pháp tính song song đưa ra mô hình thực hiện mảng tính toán có
khả năng tái cấu hình CGRA.
 Phương pháp thiết kế: Thiết kế theo dạng module, chuẩn hóa các giao diện làm
việc, đảm bảo khả năng mở rộng, tái sử dụng thiết kế trong các phương án khác
nhau. Các module thiết kế được tham số hóa. Trong đó lõi RCA của CGRA
được thiết kế ở mức RTL, các phần còn lại thiết kế ở mức mô hình hành vi
(behavioural).


10
 Phương pháp mô phỏng: Mô phỏng các thiết kế CGRA trên phần mềm
ModelSIM với một số phép toán thường dùng trong kỹ thuật điều khiển.
 Phương pháp kiểm thực: Kiểm nghiệm thiết kế trên nền tảng vi mạch FPGA.

Nội dung nghiên cứu
Nghiên cứu lý thuyết
- Phân tích các phép toán cơ bản trong kỹ thuật điều khiển; đưa ra mô hình tính
toán thực hiện trên lõi xử lý RCA của CGRA.
- Xây dựng mô hình kiến trúc RCA có khả năng mở rộng.
- Khai thác công cụ hỗ trợ thiết kế: mô phỏng ModelSim, phần mềm thiết kế
Quartus II của Altera.
Thiết kế hệ thống
- Thiết kế các module thành phần của CGRA bằng ngôn ngữ VHDL: trong đó

-

RCA sử dụng kiến trúc RTL, các phần khác thực hiện dưới dạng mô hình hành
vi đảm bảo mô phỏng hệ thống CGRA.
Xây dựng phương án thử nghiệm testbench chạy tr n môi trường mô phỏng

của phần mềm ModelSIM.

Kết cấu luận văn
Nội dung luận văn bao gồm các phần sau:
hƣơng 1 hái niệm và vấn đề cần giải quyết: giới thiệu chung về CGRA,
đưa ra phương án tiếp cận thiết kế hệ thống CGRA sử dụng cho kỹ thuật điều
khiển.
hƣơng 2 Thiết kế chi tiết của CGRA: trình bày thiết kết chi tiết của một
CGRA (bao gồm các khối chức năng, giao diện hoạt động, mô tả chức năng
hoạt động…).
hƣơng 3 ết quả mô phỏng và thử nghiệm: trình b y phương án mô phỏng
trên phần mềm ModelSIM. Các kết quả mô phỏng và một số đánh giá cũng
được trình b y trong chương n y.
Kết luận: trình b y ưu, nhược điểm của thiết kế, đưa ra các kết quả thu được từ
việc thực hiện đề t i v phương hướng phát triển tiếp theo.


11

ƢƠ

1

Á

M V VẤ

Ề Ầ

Ả QUYẾT


1.1 Giới thiệu chung
Tư duy sử dụng cấu trúc mảng trong tính toán song song được tiếp cận từ nhiều
năm nay. Các phần tử trong một mảng tính toán 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, 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 tính toán ở mức
thấp hơn (ví dụ: các lõi CPU trong GPU, các tế bào logic trong FPGA, hay 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). Mỗi kiến trúc
có một đặc trưng cơ bản riêng:
- Kiến trúc tinh (fine-grained): tập trung xử lý dữ liệu ở mức bit.
- Kiến trúc thô (coarse-grained): 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 (ví dụ ALU, bộ nhân, …)

Hình 2: Minh họa so sánh kiến trúc tinh - kiến trúc thô[13]

Như đã trình b y ở 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


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

iệu năng


CGRA
FPGA

ASIP
DSP
GPP

ộ mềm dẻo

iệu suất nguồn
(GOPS/W)

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

ASIP
100

ASIP

CGRA

10

DSP
1

0.1

1


10

iệu năng
(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.2.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.


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]


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.
1.2.2 Kiến trúc ADRES

Hình 8: Kiến trúc ADRES[7]


15
ADRES (Architecture for Dynamically Reconfigurable Embedded System) là một
kiến trúc hướng tới các ứng dụng nhúng với SoC (Sytem on Chip). 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.2.3).
1.2.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]


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.


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

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


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
CGRA
CGRA_CTRL

ETHERNET
CONTROLLER

PERIPHERAL
INTERFACE


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


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
o

iều khiển giao diện với P thông qua đường kết nối Ethernet.
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.


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).
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
(2-1)
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 đơn sẽ 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. Trong đề tài này, với
mục tiêu cân bằng giữa tài nguyên, tính mềm dẻo, tốc độ tính toán, phương án được
lựa chọn việc để tính song song các phép toán là thực hiện theo nhiều lớp. Trên cơ sở
mô tả chi tiết các thực hiện hai phép toán vector đơn giản, mục 2.1.1 và mục 2.1.2
dưới đây sẽ l m rõ hơn về các tiếp cận này.
2.1.1 Phép toán tổng/tích của một dãy
(2-2)

(2-3)

ể đơ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


21
Phép toán trên có thể thực hiện song song theo cách mô tả như hình Hình 14
x1

x2


x3

x4

+

x5

x6

+

x7

x8

+

Mức 1

+

+

Mức 2

+

Mức 3


+
SUM

Hình 14: Thực hiện tổng theo phƣơng pháp tính song song nhiều lớp

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.
2.1.2 Phép tính tích vô hướng của hai vector
ho trước 2 vector:

Cần tính tích vô hướng:
(2-4)

Xét ví dụ đơn giản với N=4, khi đó phép nhân vô hướng của hai vector ,

có thể

thực hiện song song nhiều lớp như Hình 15
x1

y1

x2

x

y2


x3

x

y3

x4

x

+

x

+

+

y4
Mức 1

Mức 2

Mức 3

<X, Y>

Hình 15: Thực hiện tích vô hƣớng theo phƣơng pháp tính song song nhiều lớp



×