You are currently viewing MUSRA #3: Kiến trúc mảng RCA
Hình 22. Cấu trúc của mảng RCA.

MUSRA #3: Kiến trúc mảng RCA

Tóm tắt — Bài viết này nằm trong loạt bài viết về việc đề xuất một kiến trúc phần cứng có thể tái cấu hình động lõi thô CGRA (Coarse-grained Reconfigurable Architecture) ứng dụng trong lĩnh vực xử lý đa phương tiện và truyền thông có tên viết tắt là MUSRA (Multimedia Specific Reconfigurable Architecture). Để giải quyết vấn đề về yêu cầu băng thông dữ liệu lớn trong các mảng xử lý song song, kiến trúc MUSRA được đề xuất tập trung vào việc khai thác tính cục bộ của dữ liệu nhằm giảm băng thông dữ liệu và tăng hiệu quả sử dụng tài nguyên tính toán. Kiến trúc được đề xuất đã được mô hình hóa bằng ngôn ngữ C nhằm mục đích mô phỏng và phân tích các tham số khác nhau của kiến trúc hệ thống mục tiêu, cũng như hỗ trợ khả năng đồng kiểm chứng phần cứng – phần mềm khi ánh xạ một ứng dụng lên hệ thốngMột số ứng dụng đã được ánh xạ và chạy trên mô hình C của kiến trúc nhằm kiểm chứng khả năng ứng dụng linh hoạt của kiến trúc được đề xuất cho một dải các ứng dụng xử lý đa phương tiện và truyền thông.

Cấu trúc của mảng RCA
Hình 1. Cấu trúc của mảng RCA.

Thành phần quyết định tới khả năng có thể tái cấu hình của MUSRA là mảng RCA được tổ chức thành một ma trận 8×8 phẩn tử RC (Reconfigurable Cell) và có thể thực hiện cấu hình từng phần ở thời gian chạy để thực hiện một nhiệm vụ tính toán chuyên sâu (Computation-intensive algorithms). Kiến trúc TOP-DOWN phần DATAPATH của mảng RCA8x8 được chỉ ra trong Hình 2.

Kiến trúc TOP-DOWN phần DATAPATH của mảng MUSRA-RCA.
Hình 2. Kiến trúc TOP-DOWN phần DATAPATH của mảng MUSRA-RCA.

       Kết cấu truyền thông của RCA được thiết kế nhằm khai thác tối đa khả năng tính toán theo phương thức đường ống hóa (pipelining) tính toán của các vòng lặp, cũng như khai thác tối đa dữ liệu giữa các lần lặp qua đó giảm băng thông dữ liệu vào RCA. Các RC trong hai hàng liên tiếp được kết nối với nhau thông qua hệ thống các chuyển mạch crossbar (Crossbar Switch). Thông qua qua hệ thống chuyển mạch này một RC có thể nhận kết quả tính toán từ một RC bất kỳ ở hàng ngay trên nó, đặc biệt RC trong hàng đầu tiên có thể lấy kết quả tính toán từ RC hàng cuối cùng.

       RC (Hình 3) là đơn vị xử lý cơ bản của mảng RCA. Mỗi RC có thể thực hiện các thao tác trên 2 hoặc 3 toán hạng 8/16 bit chẳng hạn như các phép tính logic và số học, phép nhân, và các phép tính được dùng nhiều trong xử lý đa phương tiện và truyền thông (như dịch barrel, dịch làm tròn, tổng sai số tuyệt đối, v.v) như chỉ ra trong Bảng 1. Mỗi RC cũng có một thanh ghi cục bộ LOR (Local Register), dùng cho việc hiệu chỉnh chu kỳ làm việc của đường ống khi ánh xạ vòng lặp lên RCA, hoặc để lưu các hệ số trong suốt thời gian RCA làm việc. Dữ liệu đầu vào của mỗi RC có thể từ IN_FIFO, từ RC hàng ngay trên nó hoặc từ thanh ghi toàn cục GRF. Mỗi RC cũng bao gồm 2 tệp thanh ghi cấu hình, ký hiệu là layer 0 và layer 1. Khi một layer đang được dùng cho thiết lập chức năng của RC, layer còn lại có thể được dùng để nạp trước cấu hình tiếp theo của RC.

Cấu trúc của một RC (Reconfigurable Cell).
Hình 2. Cấu trúc của một RC.

Bảng 1. Các phép tính được hỗ trợ bởi RCA.

Classification Opcode Operation Description Mnemonic
Arithmetic operations 5’b00000 (0) A+B Add A and B ADD
5’b00001 (1) A−B Subtract B from A SUB
Shift operations 5’b00010 (2) A>>B[3:0] Shift A to the right by B[3:0] BSR
5’b00011 (3) A<<B[3:0] Shift A to the left by B[3:0] BSL
5’b00100 (4) (A+((1<<B)>>1)>>B Shift Right and Round SRR
Bypass A 5’b00101 (5) A Bypass A A
Bitwise operations 5’b00110 (6) A&B Bitwise AND AND
5’b00111 (7) A|B Bitwise OR operator OR
5’b01000 (8) A^B Bitwise Exclusive OR XOR
5’b01001 (9) ~(A^B) Bitwise NOT XOR NXOR
Absolute operation 5’b01010 (10) |A−B| Absolute Difference ASD
Comparison Operations 5’b01011 (11) A−B>0 Is A Greater than B? TGT
5’b01100 (12) A−B=0 Is A Equal to B? TEQ
5’b01101 (13) A−B>=0 Is A Greater than or equal to B? TGE
Saturation operator 1

(Clip A between 0 and B)

5’b01110 (14) A<0?0:(A>B?B:A) If A<0 then result := 0

Else if A>B then result := B

Else result := A

CLIP
5’b01111 (15) Max(A, B) If A<B then result = B else result =A MAXB
Condition operation 2 (Multiplexer) 5’b10000 (16) C?A:B Result := C?A:B

(‘Comp’ is the result of RC that is in the immediately above row and the same column with the current RC)

MUX
Multiplication 5’b10001 (17) A×B lower 16 (or 8) bits MUL
5’b10010 (18)
Asymmetric Arithmetic operators 5’b10011 (19) B−A Subtract A from B
5’b10100 (20) B−A>0 Is A Less than B?
5’b10101 (21) B−A>=0 Is A Less than or equal to B?
Condition operation 2 5’b10110 (22) C==1?B+A:B−A ‘C’ is the Tempreg_input that is in the same row and column with the current RC
Saturation operator 2 5’b10111 (23) Min(A, B) If A>B then result = B else result =A MIN
Bypass B 5’b11001 (25) B Bypass B B
5’b11011 (27) C+|A−B| Result := C+ |A−B| SADC
5’b11100 (28) C+(A+B) Result := C+A+B SUM3
5’b11101 (29) B + |C−A| Result := B+|C−A| SADB
5’b11101 (30) A*B + C Result := A*B+C MAC
Others   Reserved

Nguyễn Kiêm Hùng

Hung K. Nguyen studied “Electronic Engineering” in both his bachelor’s and master’s degrees at the Vietnam National University, Hanoi, Vietnam. He received the bachelor’s degree in 2003. After receiving his bachelor’s degree, He worked as an internship in the Research Center of Electronics and Telecommunications. In 2006, He received the master’s degree in electronic engineering from VNU University of Engineering and Technology (VNU-UET). Before pursuing his Ph.D’s degree, He worked as a researcher at the Laboratory for Smart Integrated Systems in VNU University of Engineering and Technology for two years. In 2008, He went to Southeast University, Nanjing, China to get his Ph.D degree. He received the Ph.D. degree in Microelectronics and Solid State Electronics from Southeast University in 2013. After got his Ph.D’s degree, He returned to VNU University of Engineering and Technology to continue his research in VLSI design. He works currently as an assistant professor and senior researcher at VNU Key Laboratory for Smart Integrated Systems. His research interests mainly include multimedia processing, reconfigurable computing, and SoC designs.

Trả lời