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

(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

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 tố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 tố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 tốn tính tổng ...................................40
Hình 31: Kết quả mơ phỏng RCA_4x4 với phép tố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 tố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 tốn (do dữ liệu xử lý ngày càng nhiều), u cầu về tính mềm dẻo trong q 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
tố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 tốn hiệu năng cao, người thiết kế ln 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 tố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ế, ngồ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 tốn: các phép tố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 ngun tính tố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 tốn phải dùng cho việc
kiểm tra điều kiện dừng của vịng lặp. Ngồ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 tốn u cầu phải tăng cao, lúc n y hệ thống tính tốn cần phải thực hiện theo
phương án song song để tăng băng thơng tính tố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 tố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 q 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 tố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 tố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 tố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 tố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 tố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 q 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 tốn với đầu vào kiểu vector

(tích chập, phép tố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 tố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
tố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 tố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 tố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 tố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 tố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 tố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 tố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 tố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
tố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 tốn) cịn CGRA
đóng vai trị chia sẻ tải tính tố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 q 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ớ ngồ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 tố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 tố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 tố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 tố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 tố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 để hồ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 tố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 tốn cần phải
thực hiện theo phương án song song để tăng băng thơng tính tốn. Việc thực hiện song
song nhiều phép tố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 tố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 tố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 tố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 tố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 hồn
to n tương tự với việc thay các toán tử cộng (+) bằng tố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



×