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 - Pdf 31

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


Ƣ

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.


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



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


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

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

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


(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


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


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

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]



-

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

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;


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


+
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


Trích đoạn Kết quả mô phỏng tính tổng theo cửa sổ trượt (Moving-windows) Nhận xét kết quả mô phỏng So sánh kết quả mô phỏng CGRA trên modelSim với một số nền tảng xử lý
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status