Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
1,41 MB
Nội dung
MỤC LỤC MỤC LỤC DANH MỤCCÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤCCÁC BẢNG DANH MỤCCÁCHÌNH VẼ, ĐỒ THỊ TÓM TẮT LUẬN VĂN MỞ ĐẦU Lý lựa chọn đề tàiMục tiêu đề tài Phƣơng pháp nghiên cứu Kết cấu luận văn CHƢƠNG : LÝ THUYẾT TỔNG QUAN 11 1.1 Giới thiệu chung 11 1.2 Cấutrú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ấutrúcmảngphầncứngtáicấuhình 21 2.2.1 Cấutrú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ìnhmơ 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ầncứng .43 3.3.2 Kết mô 44 KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 48 DANH MỤCCÁ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 Application-Specific Integrated Mạch tích hợp chuyên ASIC Circuit dụng CGRA Coarse Grain Reconfigurable Architectures Cấutrúctáicấuhì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 Xửlýđa lệnh đa liệu MIMD Multiple Instruction, Multiple Data Mảngphần tử xửlýtáicấuhình kiến Multimedia Specific Reconfigurable Architecture trúcthôứngdụngchoxử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ảngphần tử táicấuhì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ỤCCÁ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ẤUHÌ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 TỐ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ỰCTHICÁC VÒNG LẶP KERNEL TRÊN CÁC NỀN TẢNG TÍNH TỐN KHÁC NHAU .45 DANH MỤCCÁCHÌNH VẼ, ĐỒ THỊHÌNH 1- CẤUTRÚC CHUNG CỦA MỘT MẢNGPHẦNCỨNGTÁICẤUHÌNHCẤUTRÚCTHÔ .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ẤUHÌNHVÀTHỰCTHI CỦA MỘT VÒNG LẶP TRÊN MUSRA 17 HÌNH 2- 3: CẤUTRÚC CỦA MUSRA 21 HÌNH 2- 4: TỔ CHỨC CỦA FIFO 22 HÌNH 2- 5: CẤUTRÚC TOP-DOWN CỦA MẢNG RCA 23 HÌNH 2- 6: CẤUTRÚC CỦA MỘT PHẦN TỬ RC 26 HÌNH 2- 7: ĐỊNH DẠNG THƠNG TIN CẤUHÌNHCÁCPHẦN A, B, C 28 HÌNH 2- 8: CẤUTRÚ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ẤUTRÚ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ẤUTRÚCPHẦNCỨ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ÌNHMƠ 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ỰCTHI ĐƢỢ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ỤNGMƠHÌNHRTL CỦA MUSRA 45 TÓM TẮT LUẬN VĂN Luận văn mô tả thiết kế cấutrúctáicấuhìnhcấutrúcthơứngdụngchoxửlýđa phƣơng tiện gọi tắt MUSRA (Multimedia Specific Reconfigurable Architecture) Cấutrú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ấutrúc hỗ trợ khả táicấuhình động việc cho phép kết cấuphầncứngtáicấuhình lại để thực chức khác hệ thống làm việc Cấutrú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ấutrúc MUSRA để đánh giá độ linh hoạt hiệu cao hệ thống Thiết kế đƣợc mơhìnhhó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ứcthự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áihình linh hoạt vòng lặp khác sử dụngcho số phép toán thƣờng dùngxử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àiXu 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 ứngdụ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ị toàn cầu,… theo thời gian thựcThựcphầncứngcho 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 q 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ụngcho việc thựcthi 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ựcthiứngdụ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áicấuhì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ấuphầncứngtáicấuhình (Reconfigurable Hardware) cho việc tăng tốc độ thựcthiphần tiêu tốn nhiều thời gian tính tốn thuật tốn Phầncứngtáicấuhình thƣờng đƣợc tổ chức thành mảng đơn vị xửlýtáicấuhình RPU (Reconfigurable Processing Units)[2] Các chức tính tốn chun sâu thuật tốn đƣợc hốn chuyển vào khỏi mảng RPU thời gian chạy (tức cấuhình động) thời gian biên dịch (tức cấuhình tĩnh) Ƣu điểm lớn khả táicấuhình động hệ thống cho phép tăng mật độ chức hiệu dụngứngdụ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 ứngdụng với lƣợng tài nguyên phầncứngdùng mạch ASIC riêng biệt Việc tăng mật độ chức phầncứng đạt đƣợc việc lập lịch nhiệm vụ tính toán để chia sẻ theo thời gian tài nguyên phầncứ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ấuhìnhcho chức hoạt động giống nhƣ đơn vị phầncứng chun dụngcho chức Vì thế, hệ thống xửlý sử dụng kết cấuphầncứngtáicấuhình thƣờng đạt đƣợc dunghòa hiệu tính tốn tính mềm dẻo Điều phầncứngtáicấuhì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ấuphầncứngtáicấuhìnhmức lõi tinh (Fine-grained fabric) FPGA đƣợc cấuhình để thực hầu nhƣ chức phầncứ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ả ứngdụ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áicấuhình lõi tinh (cụ thể FPGA), cấutrúcphầncứngtáicấuhình động lõi thơ CGRA (Coarsegrained Reconfigurable Architecteture) đƣợc nghiên cứu phát triển Cáccấutrúc CGRA thƣờng đƣợc đề xuất cho miền ứngdụng cụ thể ([5], [6] [7]), chẳng hạn ứngdụngxửlýđa phƣơng tiện truyền thơng, thay hƣớng tới tới ứngdụ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 toá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ấutrúc CGRA cần hỗ trợ khả táicấuhình động việc cho phép kết cấuphầncứngtáicấuhình lại để thực chức khác hệ thống làm việc Bằng việc cấuhình động lại phầncứng nhƣ vậy, nhiều chức khác đƣợc ánh xạ tới kết cấuphầ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ìnhhóamứcRTLthựcthimảngphầncứngtáicấuhìnhcấutrúcthôchoứngdụngxửlýđa phƣơng tiện” Mục tiêu đề tàiMơhình hố mức truyền ghi RTL (Register Transfer Level) thựcthicấutrúcphầncứngtáicấuhình động lõi thôứngdụ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 toán việc khai thác nhiều mức chế song song thuật toán Cácphần tử xửlý đƣợc cấuhình độc lập để thực chức tính tốn liệu có dấu khơng dấu 16 bit Cấutrúc MUSRA cần hỗ trợ khả táicấuhình động việc cho phép kết cấuphầncứngtáicấuhì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ựcmụ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ìnhhóa chức phầncứngmứcRTL ngôn ngữ mô tả phầncứng VHDL từ nghiên cứu, hiểu rõ cấutrúcmả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ấutrúcphầncứngtáicấuhìnhmứcRTL Tổng hợp phầncứng với cơng nghệ FPGA; tiến hành đánh giá hiệu năng, giá thành phầncứngcấutrúc MUSRA - Phương pháp mô kiểm chứng: Mô thiết kế MUSRA với số ứngdụng benchmark phần mềm ModelSIM nhằm đánh giá khả táicấuhình linh hoạt hiệu cao cấutrú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 ứngdụngxử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ấutrúcphầncứngtáicáuhì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ầncứ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 tố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 4-bit đƣợ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ấutrúc nhƣ đƣợc Hình - 13 B[15:12] A[15:12] B[11:8] A[11:8] CSA_ADDER CSA_ADDER „0‟ „1‟ „0‟ „1‟ C_IN B[3:0] A[3:0] C_IN B[3:0] A[3:0] C_IN B[3:0] A[3:0] C_IN B[3:0] A[3:0] C_IN B[3:0] A[3:0] CLA_ADDER CLA_ADDER CLA_ADDER CLA_ADDER CLA_ADDER CLA_ADDER C_OUT S[3:0] C_OUT S[3:0] C_OUT S[3:0] C_OUT S[3:0] B[3:0] A[3:0] C_IN CLA_ADDER C_OUT MUX S[3:0] MUX C_OUT MUX S[3:0] B[3:0] A[3:0] C_IN CSA_ADDER „0‟ „1‟ C_IN B[3:0] A[3:0] C_OUT C_OUT B[7:4] A[7:4] MUX MUX MUX S[15:12] S[11:8] S[7:4] S[3:0] S[3:0] Hình - 13: Cấutrúc cộng lai ghép HBD_ADDER S[0] P[0] C_in C[0] S[1] C[1] P[1] A[3:0] A[3:0] P[3:0] P[3:0] HALF_ADDER B[3:0] B[3:0] G[3:0] S[2] C[2] P[2] G[3:0] S[3] C[3] P[3] CLA_BLOCK C[4] C_out 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ấutrúcphầncứng nhân Baugh-Wooley đƣợc mơ tả nhƣ Hình - 15 34 Hình - 15: Sơ đồ cấutrúcphầncứng nhân Baugh-Wooley [15] Phƣơng pháp Baugh-Wooley áp dụngcho 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ấutrú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 23 x3 xi 2i Y 23 y3 yi 2i i 0 (2-1) i 0 Tích X Y đƣợc thực nhƣ sau: 2 i 0 j 0 2 XY x3 y3 26 xi y3 2i 3 x3 y j j 3 xi y j 2i j (2-2) i 0 j 0 Đối với số bù hai ta ln có: 3 i 0 i 0 xi 2i 24 xi 2i (2-3) Do tích trở thành: 35 2 2 XY x3 y3 26 xi y3 2i 3 23 26 x3 y j j 3 23 26 xi y j 2i j i 0 i 0 2 i 0 j 0 x3 y3 26 xi y3 2i 3 x3 y j j 3 xi y j 2i j 24 27 i 0 i 0 i 0 j 0 2 x3 y3 ( x2 y3 x3 y2 )2 ( x1 y3 x3 y1 x y 1)2 (2-4) ( x0 y3 x3 y0 x1 y x y1 )2 (x y x1 y1 x y )2 (x y1 x1 y0 )21 x y 20 Môhìnhthự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 có: A B if A B A B if A B | 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 CARRY GENERATOR 1'b1 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 Hƣớng vào/ra Tín hiệu Độ 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 toá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ấuhìnhcho 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 toàn cục (Global Register File) ROUTER_CONFIG IN 10 Thơng tin cấuhìnhcho 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ìnhmơ MUSRA Cấutrúc MUSRA đề xuất đƣợc mơhìnhhóamứcRTL 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ựcthựcthiứngdụng khác MUSRA Bên cạnh MUSRA, mô sử dụngxử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ựcthi 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ựcthi 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ấuhìnhchoứngdụng benchmark phải đƣợc lƣu truớc nhớ cấuhình MUSRA Instruction Memory CPU IRQC Data Memory AMBA BUS AMBA/CGRA Interface Input DMA IN_FIFO CDMAC Context Memory Context Parser DDMAC GRF RCA Data Memory OUT_FIFO Output DMA MUSRA Hình 3- Mơhìnhmơ 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ấutrú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ấutrúcthực tế RCA 8×8, nhiên để đơn giản việc trình bày phần số hình vẽ minh họamả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ấutrú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(2p+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 CLK1 pixels InputFIFO Pn 32 Bytes − − − − CLK2 (2*p + 3) pixels − − − − + + CLK3 − − − − + + + CLK4 − − − − + + + P CLK5 P5 P4 P4 P3 P3 P2 P2 P1 P1 P0 Not used P0 + + + + A 4x(2*p +3)-pixel search band pixels CLK6 + pixels C4 + CLK7 C3 ConstReg0 C2 + C0 CLK8 A 4x4-pixel current block SAD4x4 (b) (a) Hình 3- 2: (a) DFG (b) Tổ chức liệu cho 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) D D D ACC D D D SUB 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ựcthi đƣờng ống hóa đƣợc Hình 3- 4(b-c) 41 y[1] x[i][1] InputFIFO X[4][1] x[3][1] X[2][1] x[1][1] Y[1] X[4][2] x[3][2] X[2][2] x[1][2] Y[2] x X[4][3] x[3][3] X[2][3] x[1][3] X[4][4] x[3][4] X[2][4] x[1][4] Y[3] x x + TD PE TD PE TD Stage2 PE TD + PE TD + PE Stage3 PE TD + PE TD Stage4 PE TD PE TD x + + y[3] x[i][3] PE Stage1 Y[4] y[2] x[i][2] y[4] x[i][5] PE TD TD PE TD PE TD PE TD PE TD PE TD z[n] Z[n] (a) (b) Pipelined Execution (n-1)th iteration Data load (n)th iteration Calc stage1 Data load Calc stage2 Calc stage1 Data load Calc stage3 Calc stage2 Calc stage1 Data store Calc stage3 Calc stage2 Data store Calc stage3 (n+1)th iteration Data store Cycles (c) Hình 3- DFG (a), Ánh xạ DFG MUSRA (b), thựcthi đƣợ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 q 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