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,
Trang 1TRƢ Ọ
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 KHIỂN
UẬ V T S T - V Ễ T
– 2015
Trang 2TRƢ Ọ
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 KHIỂN
Ng nh: Công nghệ iện tử - Viễn thông huy n ng nh: Kỹ thuật điện tử
Trang 3L M
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
Trang 4Ả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!
Trang 5MỤ Ụ
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
Trang 62.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
Trang 7MỤ Á Ý U V Ữ V ẾT TẮT
TT Thuật ngữ viết tắt Thuật ngữ viết đầy đủ
Trang 8MỤ Á 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
Trang 9MỤ Á Ì 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
Trang 10Hì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
Trang 11MỞ Ầ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ỗ
Trang 12trợ 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)}
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
Trang 13tạ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)
Trang 14 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
Trang 15ƢƠ 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
Trang 16nă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
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
Trang 17Kiế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]
Trang 18Hì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]
Trang 19ADRES (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]
Trang 20Hì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
Trang 211.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:
Trang 22- 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
CGRA_WRAPPER CGRA
ETHERNET CONTROLLER
RCA CGRA_CTRL
PERIPHERAL INTERFACE ALTERA AVALON BUS
Motor driver
Hình 13: Mô hình ghép nối CGRA cho một hệ điều khiển cơ bản
Trang 23Trong mô hình này, hệ thống điều khiển gồm các khối chức năng cơ bản sau:
- Vi xử lý NIOS đóng vai trò l khối điều khiển trung tâm, đưa ra các lệnh điều khiển cơ bản:
o iều khiển giao diện với P thông qua đường kết nối Ethernet
o iều khiển các khối giao tiếp thiết bị ngoại vi (nhận dữ liệu từ sensor sau khi đã được số hóa, điều khiển động cơ, …)
o iều khiển hoạt động của CGRA: cấp dữ liệu cần xử lý từ PC hoặc các giao diện ngoại vi vào CGRA; cấu hình hoạt động của GR ; …
- Bộ nhớ ngoài EXT.MEM có tác dụng lưu trữ chương trình hoạt động của hệ thống;
- CGRA: thực hiện các nhiệm vụ tính toán theo yêu cầu từ vi xử lý NIOS
- Bus dữ liệu ALTERA_AVALON_BUS làm nhiệm vụ kết nối toàn hệ thống
Trang 24ƯƠ 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ả
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
Trang 25Phép toán trên có thể thực hiện song song theo cách mô tả như hình Hình 14
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
Trang 262.1.3 Phương án kiến trúc CGRA
Tr n cơ sở xem xét hai phép toán đơn giản trên, có thể nhận thấy rằng các phép toán vector như phép nhân chập, phép nhân ma trận, … ho n to n có thể thực hiện được theo phương án tính song song nhiều lớp iểm khác biệt giữa các phép toán này thể hiện ở hai điểm chính sau:
- ách đưa luồng đầu dữ liệu đầu vào
- Cách thực thi luồng dữ liệu cho các toán tử giữa hai lớp liền kề
ây chính l cơ sở cơ bản cho việc xây dựng một mảng tái cấu hình kiến trúc thô
GR Theo đó, các toán tử sẽ được thực hiện bởi các phần tử xử lý (PE) Một phần
tử PE có thể thực hiện chức năng của nhiều toán tử khác nhau tùy thuộc theo thông tin cấu hình Các mức thực hiện phép toán được triển khai bằng cách sắp xếp các PE theo các hàng nối tiếp nhau Việc định tuyến dữ liệu vào các toán tử sẽ được điều khiển bởi các bộ định tuyến (router), các bộ định tuyến này có nhiệm vụ lựa chọn đầu vào cho các toán tử
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
Tr n cơ sở tiếp cận phương án thiết kế CGRA trình bày ở mục 2.1, kiến trúc tổng thể của một mảng tái cấu hình kiến trúc thô GR cơ bản bao gồm 02 phần:
- Phần lõi tính toán RCA (Reconfigurable Cell Array): làm nhiệm vụ xử lý các
phép toán theo một cấu hình đã định trước
- Phần điều khiển chung CGRA_CTRL: thực hiện các nhiệm vụ cơ bản sau:
o Cung cấp giao diện làm việc của CGRA: bao gồm các tín hiệu đồng bộ, điều khiển ( LK, Reset_n, …); các đầu vào/ra dữ liệu, đầu vào
o Lưu trữ tệp tin cấu hình sẵn thường dùng trong vùng nhớ
2.3 Thiết kế chi tiết của RCA
2.3.1 Kiến trúc tổng thể của RCA
RCA là một mảng hai chiều của các phần tử xử lý PE (Processing Element) Các
PE sẽ được tổ chức thành các hàng và các cột ể thuận tiện cho việc mở rộng thiết kế,
các PE sẽ được sắp xếp thành các hàng (RCA_row) Các phần tử cơ bản của RCA
được mô tả như Hình 16
Trang 27RCA_row
DATAPATH Router RCA_REG_FILE
ACC PE
PE_CONF_REG
Hình 16: Cấu trúc Top-down của RCA
Hai thành phần cơ bản của một RCA bao gồm:
- Thành phần tính toán, xử lý, được tạo thành bởi các hàng PE (gọi là RCA_Row)
- Thành phần lưu trữ cấu hình: được thực hiện bởi tệp thanh ghi RCA_REG_FILE Mỗi thanh ghi trong tệp thanh ghi có nhiệm vụ lưu cấu hình hoạt động cho một hàng RCA_Row
Theo mô hình kết nối như mô tả trong Hình 17, mỗi hàng RCA_row sẽ chỉ có thể truyền số liệu đầu ra từ hàng này sang hàng khác theo thứ tự nối tiếp
RCA REG_FILE
RCA_row_#0 Reg_#0
Reg_#1 Reg_#2 Reg_#3 Reg_#4 Reg_#5 Reg_#6 Reg_#7
RCA_row_#1 RCA_row_#2 RCA_row_#3 RCA_row_#4 RCA_row_#5 RCA_row_#6 RCA_row_#7 DATA_A DATA_B
DATA_O Hình 17: Mô hình kết nối bên trong RCA
Trong quá trình hoạt động của RCA, việc cấu hình của RCA có thể thực hiện lại thường xuy n Khi đó, thời gian cấu hình cho một mảng RCA chiếm một tỷ trọng
Trang 28không nhỏ trong toàn bộ thời gian hoạt động ể giải quyết vấn đề này, tệp thanh ghi cấu hình R _REG_FILE được sử dụng Khi quá trình cấu hình đang được thực hiện, RCA vẫn có thể thực hiện chức năng tính toán của cấu hình cũ Nói cách khác, quá trình cấu hình có thể thực thi song song với quá trình thực thi tính toán, xử lý số liệu Chỉ khi nào quá trình ghi vào tệp thanh ghi kết thúc, lúc đó mới thực hiện nạp toàn bộ cấu hình mới vào các thanh ghi cấu hình có sẵn trong mỗi PE
ể cho phép kiến trúc RCA có khả năng mở rộng tới một kích thước bất kỳ, kiến trúc R được thực hiện dưới mô hình kiến trúc tham số hóa Các tham số và giao diện ghép nối của mô-đun R được mô tả chi tiết trong Bảng 1
Bảng 1: Tham số và giao diện của module RCA
vào các PE trong hàng
từ Tệp thanh ghi cấu hình vào các
PE trong RCA
tệp thanh ghi 2.7 REG_FILE_CONF_DATA_I Vào Dữ liệu đưa v o thanh ghi cấu
hình