Mô hình cấu trúc thô cho các ứng dụng xử lý đa phương tiện

48 134 0
Mô hình cấu trúc thô cho các ứng dụng xử lý đa phương tiện

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ TÓM TẮT LUẬN VĂN MỞ ĐẦU Lý lựa chọn đề tài Mục tiêu đề tài Phƣơng pháp nghiên cứu Kết cấu luận văn 9 CHƢƠNG : LÝ THUYẾT TỔNG QUAN 11 1.1 Giới thiệu chung 11 1.2 Cấu trúc CGRA 11 1.3 Vấn đề cần giải 14 CHƢƠNG : THIẾT KẾ CHI TIẾT CỦA MUSRA 16 2.1 Đặc tả kỹ thuật 16 2.2 Cấu trúc mảng phần cứng tái cấu hình 21 2.2.1 Cấu trúc tổng thể MUSRA 21 2.2.2 Mảng RCA 22 CHƢƠNG : KẾT QUẢ MÔ PHỎNG VÀ THỬ NGHIỆM 39 3.1 Mơ hình mơ MUSRA 39 3.2 Kịch kiểm chứng 40 3.2.1 Phép tổng sai phân (chênh lệch) tuyệt đối (SAD) 40 3.2.2 Tổng chuyển động (Moving Sum) 40 3.2.3 Nhân vô hƣớng hai vector 41 3.2.4 Tích chập 42 3.3 Kết thực nghiệm đánh giá 43 3.3.1 Kết tổng hợp phần cứng 43 3.3.2 Kết mô 44 KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 48 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Thuật ngữ TT viết tắt Thuật ngữ viết đầy đủ Ý nghĩa ASIC Application-Specific Integrated Mạch tích hợp chuyên Circuit dụng CGRA Coarse Grain Reconfigurable Architectures Cấu trúc tái cấu hình lõi thơ CPU Central Processing Unit Đơn vị xử lý trung tâm DMA Direct Memory Access Truy cập nhớ trực tiếp DFG Data Flow Graph Sơ đồ luồng liệu FIFO First In, First Out FPGA Field-Programmable Gate Array Mảng cổng lập trình đƣợc dƣới dạng trƣờng Multiple Instruction, Multiple Data Xử lý đa lệnh đa liệu MIMD Multimedia Specific Reconfigurable Architecture Mảng phần tử xử lý tái cấu hình kiến trúc thô ứng dụng cho xử lý đa phƣơng tiện 10 PE Processing Element Phần tử xử lý Xử lý đơn lệnh, đa liệu 11 SIMD Single Instruction, Multiple Data 12 SoC System on Chip Hệ thống chip Reconfigurable Cell Array Mảng phần tử tái cấu hình 13 RTL Register Transfer Level Mức chuyển giao ghi 14 VLIW Very Long Instruction Word Từ lệnh dài MURSA RCA DANH MỤC CÁC BẢNG BẢNG 2- 1: CÁC PHÉP TÍNH ĐƢỢC HỖ TRỢ BỞI RCA 18 BẢNG 2-2: TÍN HIỆU V O RA CỦA KHỐI RCA8 23 BẢNG 2-3 TÍN HIỆU V O RA CỦA KHỐI RC LINE 25 BẢNG 2-4: MÔ TẢ CÁC TÍN HIỆU CỦA RC 27 BẢNG 2-5: ĐỊNH NGHĨ THÔNG TIN CẤU HÌNH NGUỒN DỮ LIỆU LỐI VÀO MỖI RC 29 BẢNG 2-6: MƠ TẢ CÁC TÍN HIỆU CỦA PE 30 BẢNG 2-7: MƠ TẢ CÁC TÍN HIỆU VÀO RA CỦA DATAPATH 31 BẢNG 2-8: MÔ TẢ CÁC PHÉP TOÁN ĐƢỢC THỰC HIỆN TRÊN KHỐI ALU 32 BẢNG 2-9: MƠ TẢ TÍN HIỆU CỦA THANH GHI CỤC BỘ LOR 37 BẢNG 2-10: MÔ TẢ CÁC TÍN HIỆU CỦA ROUTER_A 37 BẢNG 2-11: MƠ TẢ CÁC TÍN HIỆU CỦA ROUTER_B .38 BẢNG 3- KẾT QUẢ TỔNG HỢP MẢNG RCA8×8 TRÊN CƠNG NGHỆ FPGA VIRTEX-7 ((XC7VX485T) 44 BẢNG 3- THỜI GIAN THỰC THI CÁC VỊNG LẶP KERNEL TRÊN CÁC NỀN TẢNG TÍNH TỐN KHÁC NHAU 45 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ HÌNH 1- CẤU TRÚC CHUNG CỦA MỘT MẢNG PHẦN CỨNG TÁI CẤU HÌNH CẤU TRÚC THƠ 12 HÌNH 2- 1: BIỂU DIỄN DFG CHO MỘT VỊNG LẶP ĐƠN GIẢN 17 HÌNH 2- 2: LẬP LỊCH SỰ CẤU HÌNH VÀ THỰC THI CỦA MỘT VÒNG LẶP TRÊN MUSRA 17 HÌNH 2- 3: CẤU TRÚC CỦA MUSRA 21 HÌNH 2- 4: TỔ CHỨC CỦA FIFO 22 HÌNH 2- 5: CẤU TRÚC TOP-DOWN CỦA MẢNG RCA 23 HÌNH 2- 6: CẤU TRÚC CỦA MỘT PHẦN TỬ RC 26 HÌNH 2- 7: ĐỊNH DẠNG THƠNG TIN CẤU HÌNH CÁC PHẦN A, B, C 28 HÌNH 2- 8: CẤU TRÚC CỦA MỘT PE 30 HÌNH 2- 9: GIAO DIỆN VÀO/RA CỦA DATAPATH 31 HÌNH 2- 10 SƠ ĐỒ THIẾT KẾ CÁC KHỐI THỰC HIỆN CÁC PHÉP TÍNH TRÊN DATAPATH 32 HÌNH 2- 11: KHỐI ALU 33 HÌNH 2- 12: ĐƠN VỊ CHỨC NĂNG ADD/SUB THỰC HIỆN PHÉP TÍNH CỘNG VÀ TRỪ HAI SỐ 16-BIT 33 HÌNH 2- 13: CẤU TRÚC CỦA BỘ CỘNG LAI GHÉP HBD_ADDER 34 HÌNH 2- 14: BỘ CỘNG CLA 4-BIT 34 HÌNH 2- 15: SƠ ĐỒ CẤU TRÚC PHẦN CỨNG CỦA BỘ NHÂN BAUGHWOOLEY [15] 35 HÌNH 2- 16 BỘ NHÂN MUL BÍT [15] 36 HÌNH 2- 17: SƠ ĐỒ THỰC HIỆN KHỐI ABS 36 HÌNH 3- MƠ HÌNH MƠ PHỎNG RCA CỦA MUSRA TRONG MÔI TRƢỜNG MODELSIM 39 HÌNH 3- (A) DFG VÀ (B) TỔ CHỨC DỮ LIỆU CHO Q TRÌNH TÍNH TỐN TRÊN MUSRA 40 HÌNH 3- ÁNH XẠ TỔNG CHUYỂN ĐỘNG TRÊN MỘT CỬA SỔ TRƢỢT VỚI ĐỘ DÀI N=10 41 HÌNH 3- DFG (A), ÁNH XẠ CỦA DFG TRÊN MUSRA (B), VÀ SỰ THỰC THI ĐƢỢC ĐƢỜNG ỐNG HÓA (C) CỦA PHÉP NHÂN MA TRẬN – VECTƠ 42 HÌNH 3- 5: DFG THỰC HIỆN MỘT BỘ LỌC FIR BẬC 43 HÌNH 3- KẾT QUẢ MƠ PHỎNG CỦA KHỐI ƢỚC LƢỢNG CHUYỂN ĐỘNG (A) VÀ BỘ LỌC FIR (B) SỬ DỤNG MƠ HÌNH RTL CỦA MUSRA 45 TĨM TẮT LUẬN VĂN Luận văn mơ tả thiết kế cấu trúc tái cấu hình cấu trúc thô ứng dụng cho xử lý đa phƣơng tiện gọi tắt MUSRA (Multimedia Specific Reconfigurable Architecture) Cấu trúc đƣợc sử dụng để tăng tốc độ tính tốn cho nhiệm vụ tính tốn chun sâu thuật toán việc khai thác nhiều mức chế song song thuật toán Cấu trúc hỗ trợ khả tái cấu hình động việc cho phép kết cấu phần cứng tái cấu hình lại để thực chức khác hệ thống làm việc Cấu trúc đề xuất đƣợc mô hình hố mức truyền ghi RTL (Register Transfer Level) sử dụng ngơn ngữ VHDL Một vài ví dụ benchmark đƣợc ánh xạ lên cấu trúc MUSRA để đánh giá độ linh hoạt hiệu cao hệ thống Thiết kế đƣợc mơ hình hóa ngơn ngữ VHDL (trong RCA MUSRA đƣợc thiết kế dƣới dạng RTL) tiến hành mô phỏng, so sánh với phƣơng thức thực khác Các kết thực nghiệm thiết kế đáp ứng đƣợc yêu cầu đặt ban đầu: nhƣ tăng tốc độ tính tốn cho vòng lặp; khả tái hình linh hoạt vòng lặp khác sử dụng cho số phép tốn thƣờng dùng xử lý đa phƣơng tiện truyền thơng Các module đƣợc tham số hóa, dễ dàng mở rộng thiết kế theo phƣơng án kết nối khác nhau, lõi RCA MUSRA đƣợc thiết kế với khả mở rộng kích thƣớc theo chiều MỞ ĐẦU Lý lựa chọn đề tài Xu hƣớng phát triển khoa học công nghệ năm qua thiết bị di động cầm tay ngày trở nên thông minh hơn, mật độ tích hợp ứng dụng chức ngày cao Các thiết bị nói chung yêu cầu khả xử lý chức tính tốn chun sâu nhƣ truyền thơng, chụp ảnh, quay phim, xem truyền hình, dịch vụ định vị tồn cầu,… theo thời gian thực Thực phần cứng cho thiết bị nhƣ thách thức nhà thiết kế yêu cầu khắt khe nhƣ giảm kích thƣớc cơng suất tiêu thụ chip, tăng hiệu xử lý, rút ngắn thời gian thiết kế triển khai sản phẩm, đơn giản hóa trình nâng cấp thiết bị sau bán hàng,… Thêm vào khả hỗ trợ đa chuẩn (truyền thơng mã hóa) thiết bị yêu cầu ngày phổ biến cho phép giảm giá thành tích hợp sản phẩm nhƣ cho phép khách hàng nhận đƣợc nhiều loại hình dịch vụ từ nhà cung cấp dịch vụ khác thiết bị Nói chung, hệ thống nhúng truyền thống có hai phƣơng pháp chủ yếu đƣợc sử dụng cho việc thực thi chức mong muốn Một phƣơng pháp sử dụng vi mạch tích hợp chuyên dụng ASIC (Application Specific Integrated Circuit) Phƣơng pháp thứ hai sử dụng vi xử lý (Processor) lập trình phần mềm Tuy nhiên, hai phƣơng pháp thỏa mãn đƣợc tất yêu cầu nhƣ việc thực thi ứng dụng đa phƣơng tiện hệ Một giải pháp hứa hẹn cho việc giải vấn đề nêu hệ thống tính tốn tái cấu hình (Reconfigurable Computing System)[1] Điểm khác biệt quan trọng hệ thống nhƣ với hệ thống xử lý thơng thƣờng sử dụng kết cấu phần cứng tái cấu hình (Reconfigurable Hardware) cho việc tăng tốc độ thực thi phần tiêu tốn nhiều thời gian tính tốn thuật tốn Phần cứng tái cấu hình thƣờng đƣợc tổ chức thành mảng đơn vị xử lý tái cấu hình RPU (Reconfigurable Processing Units)[2] Các chức tính tốn chun sâu thuật tốn đƣợc hoán chuyển vào khỏi mảng RPU thời gian chạy (tức cấu hình động) thời gian biên dịch (tức cấu hình tĩnh) Ƣu điểm lớn khả tái cấu hình động hệ thống cho phép tăng mật độ chức hiệu dụng ứng dụng đƣợc ánh xạ lên đơn vị tài nguyên phần cứng[3] Nói cách khác, kỹ thuật cho phép hệ thống xử lý thực số lƣợng ứng dụng với lƣợng tài nguyên phần cứng dùng mạch ASIC riêng biệt Việc tăng mật độ chức phần cứng đạt đƣợc việc lập lịch nhiệm vụ tính tốn để chia sẻ theo thời gian tài nguyên phần cứng giống nhƣ việc quản lý nhớ ảo máy tính Điều đặc biệt sau mảng RPU đƣợc cấu hình cho chức hoạt động giống nhƣ đơn vị phần cứng chuyên dụng cho chức Vì thế, hệ thống xử lý sử dụng kết cấu phần cứng tái cấu hình thƣờng đạt đƣợc dung hòa hiệu tính tốn tính mềm dẻo Điều phần cứng tái cấu hình kết hợp đƣợc khả lập trình lại sau chế tạo (post-fabrication programmability) vi xử lý với phong cách tính tốn song song hiệu cao vi mạch ASIC FPGA (Field-Programmable Gate Array) thiết bị hỗ trợ kết cấu phần cứng tái cấu hình mức lõi tinh (Fine-grained fabric) FPGA đƣợc cấu hình để thực hầu nhƣ chức phần cứng số Tuy nhiên nhƣợc điểm FPGA kích thƣớc, cơng suất tiêu thụ trễ lan truyền cao[4] Điều hạn chế khả ứng dụng FPGA cho thiết bị cầm tay Nhằm vƣợt qua giới hạn vi xử lý thiết bị tái cấu hình lõi tinh (cụ thể FPGA), cấu trúc phần cứng tái cấu hình động lõi thô CGRA (Coarsegrained Reconfigurable Architecteture) đƣợc nghiên cứu phát triển Các cấu trúc CGRA thƣờng đƣợc đề xuất cho miền ứng dụng cụ thể ([5], [6] [7]), chẳng hạn ứng dụng xử lý đa phƣơng tiện truyền thơng, thay hƣớng tới tới ứng dụng nhƣ FPGA CGRA đƣợc sử dụng để tăng tốc độ tính tốn cho nhiệm vụ tính tốn chun sâu thuật tốn việc khai thác nhiều mức chế song song nhƣ DLP (Data Level Parallelism), ILP (Instruction Level Parallelism), TLP (Task Level Parallelism) thuật toán [8] Cấu trúc CGRA cần hỗ trợ khả tái cấu hình động việc cho phép kết cấu phần cứng tái cấu hình lại để thực chức khác hệ thống làm việc Bằng việc cấu hình động lại phần cứng nhƣ vậy, nhiều chức khác đƣợc ánh xạ tới kết cấu phần cứng, dẫn đến giảm đƣợc kích thƣớc, giá thành nhƣ công suất tiêu thụ hệ thống 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 “Mô hình hóa mức RTL thực thi mảng phần cứng tái cấu hình cấu trúc thơ cho ứng dụng xử lý đa phƣơng tiện” Mục tiêu đề tài Mơ hình hố mức truyền ghi RTL (Register Transfer Level) thực thi cấu trúc phần cứng tái cấu hình động lõi thơ ứng dụng lĩnh vực xử lý đa phƣơng tiện, gọi tắt MUSRA (Multimedia Specific Reconfigurable architecture) MUSRA đƣợc sử dụng để tăng tốc độ tính tốn cho nhiệm vụ tính tốn chun sâu thuật tốn việc khai thác nhiều mức chế song song thuật tốn Các phần tử xử lý đƣợc cấu hình độc lập để thực chức tính tốn liệu có dấu không dấu 16 bit Cấu trúc MUSRA cần hỗ trợ khả tái cấu hình động việc cho phép kết cấu phần cứng tái cấu hình lại để thực chức khác hệ thống làm việc Phƣơng pháp nghiên cứu Để thực 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: Nghiên cứu tìm hiểu kỹ thuật mơ hình hóa chức phần cứng mức RTL ngơn ngữ mơ tả phần cứng VHDL từ nghiên cứu, hiểu rõ cấu trúc mảng MUSRA đƣợc đề xuất nhóm nghiên cứu PTN SIS, Trƣờng ĐHCN-ĐHQGHN - Phương pháp thiết kế: Phát triển mơ hình hố cấu trúc phần cứng tái cấu hình mức RTL Tổng hợp phần cứng với công nghệ FPGA; tiến hành đánh giá hiệu năng, giá thành phần cứng cấu trúc MUSRA - Phương pháp mô kiểm chứng: Mô thiết kế MUSRA với số ứng dụng benchmark phần mềm ModelSIM nhằm đánh giá khả tái cấu hình linh hoạt hiệu cao cấu trúc MUSRA - Phương pháp kiểm thực: Kiểm nghiệm thiết kế tảng vi mạch FPGA Kết cấu luận văn Nội dung luận văn đƣợc tổ chức thành phần sau: Chƣơng 1: Lý thuyết tổng quan: giới thiệu chung CGRA, đƣa phƣơng án tiếp cận thiết kế hệ thống CGRA ứng dụng xử lý đa phƣơng tiện Chƣơng 2: Thiết kế chi tiết MUSRA: trình bày thiết kết chi tiết cấu trúc phần cứng tái cáu hình MUSRA (bao gồm khối chức năng, giao diện ghép nối, mô tả chức hoạt động, …) Chƣơng 3: Kết mô thử nghiệm: trình bày phƣơng án mơ đánh giá MUSRA phần mềm ModelSIM Các kết mô số đánh giá đƣợc trình bày chƣơng Kết luận: Trình bày ƣu, nhƣợc điểm thiết kế, đƣa kết thu đƣợc từ việc thực đề tài phƣơng hƣớng phát triển 10 logic cho phép tính tốn đồng thời tất cờ nhớ giá thành phần cứng cao Mạch logic để thực cộng CLA n-bit đặc biệt phức tạp với giá trị n lớn Trên thực tế phƣơng pháp tính toán trƣớc cờ nhớ đƣợc dùng để thực mơ-đun cộng hai số 4-bit Do đó, để cân yêu cầu tốc độ thực phép cộng chi phí phần cứng, luận văn chọn phƣơng pháp thực lai ghép (HBD_ADDER) cộng CLA RCA Các số hạng lối vào A, B đƣợc tách thành nible 4-bit đƣợc thực tính tổng đồng thời module cộng CLA 4-bit Cờ nhớ từ khối CLA 4bit đƣợc lan truyền giống nhƣ cách thực cộng RCA đƣợc dùng để lựa chọn cờ nhớ để tính kết tổng A B cuối Sơ đồ khối cộng 16-bit lai ghép đƣợc Hình 2-13 Mỗi khối CLA_ADDER cộng hai số 4-bit theo phƣơng pháp CLA có cấu trúc nhƣ đƣợc Hình - 13 B[15:12] A[15:12] B[11:8] A[11:8] CSA_ADDER „1‟ B[7:4] A[7:4] CSA_ADDER „0‟ „1‟ C_IN B[3:0] A[3:0] CLA_ADDER CSA_ADDER „0‟ C_IN B[3:0] A[3:0] CLA_ADDER B[3:0] A[3:0] C_IN „1‟ C_IN B[3:0] A[3:0] CLA_ADDER „0‟ C_IN B[3:0] A[3:0] CLA_ADDER C_IN B[3:0] A[3:0] CLA_ADDER C_IN B[3:0] A[3:0] CLA_ADDER B[3:0] A[3:0] C_IN C_OUT S[3:0] C_OUT S[3:0] C_OUT S[3:0] C_OUT S[3:0] C_OUT S[3:0] C_OUT S[3:0] MUX MUX MUX CLA_ADDER C_OUT C_OUT MUX MUX MUX S[15:12] S[11:8] S[7:4] S[3:0] S[3:0] Hình - 13: Cấu trúc cộng lai ghép HBD_ADDER S[0] C_in P[0] C[0] S[1] C[1] A[3:0] B[3:0] P[1] P[3:0] A[3:0] P[3:0] HALF_ADDER B[3:0] G[3:0] S[2] C[2] P[2] G[3:0] S[3] C[3] P[3] CLA_BLOCK C_out C[4] Hình - 14: Bộ cộng CLA 4-bit (2) Khối MUL Khối MUL đƣợc thiết kế theo phƣơng pháp Baugh-Wooley [15] Cấu trúc phần cứng nhân Baugh-Wooley đƣợc mô tả nhƣ Hình - 15 34 Hình - 15: Sơ đồ cấu trúc phần cứng nhân Baugh-Wooley [15] Phƣơng pháp Baugh-Wooley áp dụng cho phép nhân có dấu khơng dấu Tốn tử có dấu đƣợc biểu diễn dƣới dạng số bù hai để đảm bảo chắn dấu tích riêng phần ln dấu dƣơng Các tích riêng phần đƣợc điều chỉnh cho dấu âm đƣợc chuyển đến bƣớc cuối Cấu trúc nhân bit BaughWooley đƣợc thể nhƣ Hình - 16 Về mặt tốn học mơ tả phƣơng pháp nhân Baugh-Wooley nhƣ sau: Giả sử có hai số bù hai bít X Y: X 2 x3  xi 2i 3 Y 2 y3   yi i0 i (2-1) i0 Tích X Y đƣợc thực nhƣ sau: 2 2 XY  x3 y3 26   xi y3 2i    x3 y j j  xi y j 2i  j i0 j0 (2-2) i  j 0 Đối với số bù hai ta có: 3   xi   xi 2i 1 i i0 (2-3) i0 Do tích trở thành: 35 XY  x3 y3   xi y3 i3 i0 i0 2  x3 y3   xi y3 i    x3 y j i0     x3 y j j3   xi y j 2i  j i  j 0 2 j   xi y j i  j   27 i0 i  j 0 2  x y  ( x y  x y )2  ( x y  x y  x 2y 1)24 3 3 (2-4)  ( x0 y3  x3 y0  x y  x y1 )2  (x y  x y1  x y )22  (x y1  x y )21  x y 20 Mơ hình thực nhƣ Hình - 16 dƣới Hình - 16 Bộ nhân MUL bít [15] (3) Khối ABS Đối với số nhị phân, ta ln có:  A  B if A  B  | A  B |  A  B  if A  B B  A if A  B A  B  if A  B (2-5)  Mạch logic thực khối nhƣ sau: ABS B B 1'b1 CARRY GENERATOR CARRY_OUT CARRY_IN CLA 16bit RESULT A A Hình - 17: Sơ đồ thực khối ABS 36 Bộ Carry generator phát giá trị nhỏ hai giá trị A, B Trong trƣờng hợp B nhỏ A, khơng có giá trị cờ nhớ đƣợc tạo ra, B bị đảo, ngƣợc lại A bị đảo Điều đƣợc thực mạch XOR phía sau Do đó, giá trị ( A, B) ( A, B) đƣợc truyền tới CLA E) Thanh ghi cục LOR Bảng 2-9: Mô tả tín hiệu ghi cục LOR Tín hiệu Hƣớng vào/ra Độ rộng (bits) Ý nghĩa LOR_IN IN 16 Cổng nhập liệu LOR_OUT OUT 16 Cổng xuất liệu CLK IN Tín hiệu xung nhịp đồng Reset_N IN Tín hiệu reset tích cực mức thấp, xóa lối Result_REG F) Bộ định tuyến Router Có loại định tuyến với số lƣợng cổng vào khác đƣợc sử dụng để lấy liệu từ nguồn khác vào RC - ROUTER_A: Bộ định tuyến cho cổng toán hạng A datapath lối vào ghi LOR (Local Register) nội RC ROUTER_A có nguồn liệu Input_FIFO PRE_LINE (hàng RC trên) - ROUTER_B: Bộ định tuyến cho cổng tốn hạng B datapath: Có nguồn liệu Input_FIFO, Tệp ghi toàn cục GRF PRE_LINE (hàng RC trên) Bảng 2-10: Mô tả tín hiệu Router_A Tín hiệu PRELINE_OUT Hƣớng vào/ra IN Độ rộng (bits) 16*16 = 256 Ý nghĩa Nguồn liệu từ hàng RC nó, liệu kết PE liệu lối ghi cục LOR FIFO_WIRE IN 32*8 Nguồn liệu INPUT FIFO ROUTER_CONFIG IN 10 Thơng tin cấu hình cho ROUTER BIT16_8_DATA Mức lõi liệu từ INPUT IN 37 FIFO bit hay 16 bit A_OUT OUT 16 Cổng lối ROUTER CLK IN Tín hiệu xung nhịp đồng ENABLE IN Tín hiệu cho phép xuất kết tính tốn từ Datapath tới lối Result_REG (qua ghi) Reset_N IN Tín hiệu reset tích cực mức thấp, xóa lối Result_REG Bảng 2-11: Mơ tả tín hiệu Router_B Tín hiệu Hƣớng vào/ra Độ rộng (bits) Ý nghĩa PRELINE_OUT IN 16*16 = 256 Nguồn liệu từ hàng RC nó, liệu kết PE liệu lối ghi cục LOR FIFO_WIRE IN 32*8 Nguồn liệu INPUT FIFO GRF IN 32*8 Tệp ghi tồn cục (Global Register File) ROUTER_CONFIG IN 10 Thơng tin cấu hình cho ROUTER BIT16_8_DATA IN Chọn mức lõi liệu từ INPUT FIFO bit hay 16 bit BIT16_8_GRF IN Chọn mức lõi của liệu từ GRF bit hay 16 bit B_OUT OUT 16 Cổng lối ROUTER CLK IN Tín hiệu xung nhịp đồng ENABLE IN Tín hiệu cho phép xuất kết tính tốn từ Datapath tới lối Result_REG (qua ghi) Reset_N IN Tín hiệu reset tích cực mức thấp, xóa lối Result_REG 38 CHƢƠNG : KẾT QUẢ MÔ PHỎNG VÀ THỬ NGHIỆM 3.1 Mơ hình mơ MUSRA Cấu trúc MUSRA đề xuất đƣợc mơ hình hóa mức RTL ngôn ngữ VHDL Ở mức hệ thống, mơ có độ xác mức chu kì đƣợc xây dựng nhằm đánh giá kiểm thực thực thi ứng dụng khác MUSRA Bên cạnh MUSRA, mô sử dụng xử lý LEON3 số lõi IP khác từ thƣ viện Gaisler [14] nhƣ Hình 3-1 Sự kết nối lõi IP đƣợc thực thi qua bus AMBA 32-bit ARM LEON3 đóng vai trò nhƣ đơn vị xử lý trung tâm quản lý lập lịch tất hoạt động hệ thống Bộ nhớ đƣợc sử dụng để giao tiếp liệu tác vụ CPU tác vụ RCA Sự đồng RCA, CPU DMA đƣợc thực thi theo chế ngắt Sau MUSRA hoàn tất tác vụ đƣợc ấn định, tạo ngắt qua khối IRQC để báo hiệu cho CPU trả lại quyền điều khiển bus cho CPU Các ngữ cảnh cấu hình cho ứng dụng benchmark phải đƣợc lƣu truớc nhớ cấu hình MUSRA Instruction Memory IRQC CPU Data Memory AMBA BUS AMBA/CGRA Interface CDMAC Context Context Memory Parser Input DMA IN_FIFOGRF DDMAC RCA Data Memory OUT_FIFO MUSRA Output DMA Hình 3- Mơ hình mơ MUSRA mơi trƣờng ModelSim 39 3.2 Kịch kiểm chứng Phần trình bày việc ánh xạ số ví dụ benchmark lên cấu trúc MUSRA đƣợc đề xuất Các ví dụ benchmark đƣợc sử dụng bao gồm phép tính tổng sai khác tuyệt đối (sum of absolute differences: SAD), phép tính tổng chuyển động (moving sum), phép nhân chập (convolution) nhân ma trận-vectơ thuật tốn xử lý tín hiệu số Mặc dù cấu trúc thực tế RCA 8×8, nhiên để đơn giản việc trình bày phần số hình vẽ minh họa mảng RCA với kích thƣớc 4×4 3.2.1 Phép tổng sai phân (chênh lệch) tuyệt đối (SAD) SAD đƣợc sử dụng rộng rãi xử lý số tín hiệu ảnh/video để đo lƣờng tƣơng quan khối điểm ảnh khối điểm ảnh tham chiếu[13] Trong Hình 3- 2(a) đƣa DFG cho tính tổng SAD khối 4×4 cấu trúc RCA Trong sơ đồ này, sai khác tuyệt đối hàng khối 4×4 đƣợc thực cách độc lập tầng đƣờng ống Tổ chức liệu cho tính tốn nhƣ Hình 3- 2(b), pixel khối mã hóa đƣợc sử dụng tất lần tính tốn đƣợc dùng để khởi tạo ghi số RCA lần tính tốn đầu tiên; pixel khối tham chiếu kích thƣớc 4(2p+3) đƣợc nạp vào mảng RCA thơng qua INPUT_FIFO, hàng pixel (ký hiệu Pi) lần Bằng cách sử dụng DFG tổ chức liệu nhƣ vậy, liệu trùng lặp hai ứng viên đƣợc khai thác để giảm số lần truy xuất nhớ, đồng thời đảm bảo tất RC đƣờng ống trạng thái hoạt động InputFIFO pixels CLK1 − CLK2 − + − Pn − − − − − 32 Bytes + + − − − − + + + − − − − + + + )p ix e ls + CLK3 (2*p CLK4 P CLK5 P3 P4 P3 P2 P2 P1 P1 P0 + + P4 P5 Not used P0 + A 4x(2*p +3)-pixel search band + pixels pixels C4 + C3 CLK6 C2 ConstReg0 CLK7 + C0 CLK8 A 4x4-pixel current block SAD4x4 (a) (b) Hình 3- 2: (a) DFG (b) Tổ chức liệu cho q trình tính tốn MUSRA 3.2.2 Tổng chuyển động (Moving Sum) Thuật toán đƣợc sử dụng phổ biến với chuỗi liệu biến đổi theo thời 40 gian để làm trơn thăng giáng đoạn ngắn Tổng chuyển động cửa sổ trƣợt độ dài N ngang qua thành phần lân cận chuỗi x(n) có cơng thức nhƣ sau[13]: N 1 SUMW (n)  x(n  k) (3-1) k 0 Hoặc: SUMW(n)  SUMW(n 1)  x(n) x(n  N) (3-2) Hình 3- việc ánh xạ công thức (2) lên MUSRA trƣờng hợp N =10 Công việc minh họa vai trò cách sử dụng ghi LOR nhƣ đơn vị trễ để tạo phần tử x(n-N) X(n) ACC D D D D SUB D D D D D D RCA 4x4 SUMW(n) Hình 3- Ánh xạ tổng chuyển động cửa sổ trƣợt với độ dài N=10 3.2.3 Nhân vơ hƣớng hai vector Hình 3- (a) DFG cho phép nhân vô hƣớng vector kích thƣớc 4×4 với vectơ 4×1 Ánh xạ DFG tới mảng RCA trình thực thi đƣờng ống hóa đƣợc Hình 3- 4(b-c) 41 y[1] x[i][1] InputFIFO X[4][4] x[3][4] X[2][4] x[1][4] X[4][1] X[4][2] X[4][3] x[3][1] X[2][1] x[1][1] Y[1] x[3][2] X[2][2] x[1][2] Y[2] x x[3][3] X[2][3] x[1][3] Y[3] x Stage1 PE Y[4] x + Stage2 x TD PE y[2] x[i][2] y[3] x[i][3] y[4] x[i][5]   PE  + PE + TD Stage3 PE PE TD TD TD TD PE PE TD TD + PE TD PE + +  Stage4 PE PE TD TD TD PE PE TD TD PE PE TD TD z[n] Z[n] (a) (b) Pipelined Execution (n-1)th iteration (n)th iteration Data load Calc stage1 Data load (n+1)th iteration Data load Calc stage2 Calc stage1 Calc stage3 Calc stage2 Calc stage1 Data store Calc stage3 Calc stage2 Data store Calc stage3 Data store Cycles (c) Hình 3- DFG (a), Ánh xạ DFG MUSRA (b), thực thi đƣợc đƣờng ống hóa (c) phép nhân vơ hƣớng hai vectơ Để ý phép nhân vô hƣớng hai vectơ, vectơ đầu vào đƣợc sử dụng lặp lại để tính giá trị vectơ lối ra, giá trị vectơ lối đƣợc nạp vào ghi GRF đƣợc định nghĩa RCA trƣớc bắt đầu trình tính tốn Bằng cách thực nhƣ giảm đáng kể lƣợng truy xuất nhớ 3.2.4 Tích chập Tích chập (Convolution) thực phép nhân hai hàm lối vào để tạo hàm lối theo công thức (3-3) [13]: N 1 y[n]  h[k] * x[n  k] (3-3) k 0 Trong đó, x k mẫu tín hiệu lối vào lọc (x[k]=0 k

Ngày đăng: 09/10/2019, 09:26

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan