Bài giảng Thiết kế vi mạch số với HDL - Chương 9: Giải thuật và kiến trúc cho các bộ xử lý số
High-level design: hiện thực kiến trúc sẽ thực hiện
một giải thuật cái mà có thể hoàn thành bằng bộ xử
lý thông thường (general processor)
• High-level design hoàn thành 2 công việc
Xây dựng 1 giải thuật hiện thực một đặc tả hành vi (ví dụ:
thiết kế bộ lọc thông thấp thỏa yêu cầu hiệu suất)
Ánh xạ giải thuật vào kiến trúc sẽ hiện thực hành vi bằng
phần cứng
• Bắt đầu với một giải thuật tính toán sẽ được hiện
thực bằng phần cứng
• Tập trung vào:
Phá triển 1 bộ xử lý giải thuật
Chọn lựa tradeoff các kiến trúc
Đặc tả Verilog
Tổng hợp
m p u te r E n g in e e ri n g 2 0 0 9 Data-Flow graph • DFG: đồ thị có hướng và không có vòng G(V,E) V là tập hợp các đỉnh và E là tập hợp các cạnh • Mỗi node viV biễu diễn cho một đơn vị chức năng (Functional Unit - FU), nó xử lý đầu vào và sinh ra dữ liệu ngõ ra • 1 FU có thể thực hiện 1 hành động đơn hay 1 chuỗi hành đồng • 1 cạnh eijE có hướng biễu diễn dữ liệu sinh ra từ node vi và đi vào vj • Phụ thuộc dữ liệu giữa 2 cặp đỉnh vi và vj trên cạnh eij nếu và chỉ nếu vj sử dụng kết quả của vi và vj sẽ không thể hoàn thành cho đến khi vi hoàn thành (c) 2009 Department of Computer Engineering 7Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Cần phải làm gì? • Chuyển đổi từ DFG cho 1 giải thuật thành cấu trúc phần cứng Một sự phân chia giữa đơn vị điều khiển và dòng dữ liệu (ASMD) • Chỉ rõ 1 cấu trúc cho dòng dữ liệu • Thiết kế bộ điều khiển cho dòng dữ liệu của giải thuật (c) 2009 Department of Computer Engineering 8Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Từ NLP-algorithms đến HW-architecture • Nguyên tắc: Baseline architecture cho 1 processor và datapath hiện thực cho 1 DFG 1 tập hợp các FU kết nối theo cấu trúc của DFG (c) 2009 Department of Computer Engineering 9Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Design flow (c) 2009 Department of Computer Engineering 10Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Cải tiến baseline design • Re-composition: cắt các FU thành 1 chuỗi các chức năng thực thi có thứ tự tiết kiệm hardware • Pipelining: thêm các thanh ghi vào trong các đường dữ liệ để thu ngắn đường tính toán • Replication: sử dụng nhiều bộ xử lý để tăng performance (c) 2009 Department of Computer Engineering 11Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Ví dụ halftone image converter • Floyd-Steinberg algorithm Chuyển đổi một ảnh N-dòng M-cột pixels, mỗi pixel có n-bit, thành ảnh đen trắng Phân phối giá trị lỗi do làm tròn khi chuyển đổi từ n-bit về 1 bit cho một tập con các pixel lân cận Dựa vào trọng số trung bình (c) 2009 Department of Computer Engineering 12Thiết kế vi mạch số với HDL Phân phối lỗi Nhận giá trị lỗi C o m p u te r E n g in e e ri n g 2 0 0 9 Dataflow graph (c) 2009 Department of Computer Engineering 13Thiết kế vi mạch số với HDL Node giả (dùng để tính cho các pixel ở bìa) C o m p u te r E n g in e e ri n g 2 0 0 9 Giải thuật • Tại mỗi pixel (i,j), giá trị lỗi trung bình (E-av) được tính bằng Với wi là các trọng số không âm wT = w1 + w2 + w3 + w4 • Giá trị pixel được tính bằng • CPV sẽ được làm tròn thành 0 hoặc 1 bằng Với trường hợp n = 8 bit, CPV_max = 255, CPV_thresh = 128 • HTPV = CPV_round và e[i,j] = CPV - HTPV (c) 2009 Department of Computer Engineering 14Thiết kế vi mạch số với HDL TwjiewjiewjiewjiewavE /])1,1[*4]1,[*3]1,1[*2],1[*1(_ avEjiPVCPV _],[ 1:0?__ threshCPVCPVroundCPV C o m p u te r E n g in e e ri n g 2 0 0 9 Giải thuật (tt) • Dãy các node trong DFG đồng dạng với dãy các pixel • Thêm vào cột bên trái, bên phải và hàng trên cùng với các giá trị Error là 0 • NLP in C: (c) 2009 Department of Computer Engineering 15Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Baseline design cho HPIC • Kiến trúc đơn giản nhất • Mô hình tập trung vào phần cứng và cấu trúc Cần 1 dãy 48 processor Thời gian xử lý phụ thuộc vào đường dài nhất • Thiết kế khả tổng hợp thành mạch tổ hợp và không cần bộ điều khiển (c) 2009 Department of Computer Engineering 16Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Testbench – sharp image constract (c) 2009 Department of Computer Engineering 17Thiết kế vi mạch số với HDL (w1, w2, w3, w4) = (2, 8, 4, 2) C o m p u te r E n g in e e ri n g 2 0 0 9 Testbench – graduated image constract (c) 2009 Department of Computer Engineering 18Thiết kế vi mạch số với HDL (w1, w2, w3, w4) = (2, 8, 4, 2) C o m p u te r E n g in e e ri n g 2 0 0 9 Baseline Design (c) 2009 Department of Computer Engineering 19Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Baseline Design (tt) (c) 2009 Department of Computer Engineering 20Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Baseline Design (tt) (c) 2009 Department of Computer Engineering 21Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Baseline Design (tt) (c) 2009 Department of Computer Engineering 22Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (c) 2009 Department of Computer Engineering 23Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (tt) (c) 2009 Department of Computer Engineering 24Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (tt) (c) 2009 Department of Computer Engineering 25Thiết kế vi mạch số với HDL Level sensitive C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (tt) (c) 2009 Department of Computer Engineering 26Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (tt) (c) 2009 Department of Computer Engineering 27Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (tt) (c) 2009 Department of Computer Engineering 28Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (tt) (c) 2009 Department of Computer Engineering 29Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc NLP-Based cho HPIC (tt) (c) 2009 Department of Computer Engineering 30Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc máy tuần tự cho HPIC • Cần bộ nhớ nhưng giải phóng bus hệ thống khi bộ xử lý đang thực thi • Có thể thiết kế chỉ sử dụng 1 FU với bộ nhớ và bộ điều khiển để chuyển đổi ảnh trong 48 chu kỳ (Ảnh 6x8) • Viết một hành vi vòng biểu diễn giải thuật các vòng lặp lồng nhau và để bộ tổng hợp tạo tự động kiến trúc cho mạch => Không cần hiện thực bộ điều khiển (image_converter_1) (c) 2009 Department of Computer Engineering 31Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiến trúc máy tuần tự cho HPIC (c) 2009 Department of Computer Engineering 32Thiết kế vi mạch số với HDL Kiến trúc dãy pixel 2 chiều MxN C o m p u te r E n g in e e ri n g 2 0 0 9 Chuẩn bị cho image_converter_1 • Khai báo 1 dãy các word cho các hàng pixel • Đặt tuần tự các hàng trong các vòng lặp for bên trong một hành vi vòng • Thực hiện phép gán thủ tục (=) • Viết các lệnh (statement) biểu diễn sự phụ thuộc dữ liệu sẽ được thực thi bởi FU • Thực hiện chuyển đổi ảnh trong 1 chu kỳ • Dùng tín hiệu Go để điều khiển thực thi chuyển đổi ảnh • Dùng tín hiệu Done để thông báo việc chuyển đổi hoàn tất • Dùng tín hiệu reset để đưa hệ thống về trạng thái ban đầu (c) 2009 Department of Computer Engineering 33Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Hiện thực image_converter_1 (c) 2009 Department of Computer Engineering 34Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Hiện thực image_converter_1 (tt) (c) 2009 Department of Computer Engineering 35Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Hiện thực image_converter_1 (tt) (c) 2009 Department of Computer Engineering 36Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Hiện thực image_converter_1 (tt) (c) 2009 Department of Computer Engineering 37Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Hiện thực image_converter_1 (tt) (c) 2009 Department of Computer Engineering 38Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Hiện thực image_converter_1 (tt) (c) 2009 Department of Computer Engineering 39Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Hiện thực image_converter_1 (tt) (c) 2009 Department of Computer Engineering 40Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiểm tra image_converter_1 (c) 2009 Department of Computer Engineering 41Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiểm tra image_converter_1 (tt) (c) 2009 Department of Computer Engineering 42Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiểm tra image_converter_1 (tt) (c) 2009 Department of Computer Engineering 43Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiểm tra image_converter_1 (tt) (c) 2009 Department of Computer Engineering 44Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kiểm tra image_converter_1 (tt) (c) 2009 Department of Computer Engineering 45Thiết kế vi mạch số với HDL C o m p u te r E n g in e e ri n g 2 0 0 9 Kết quả mô phỏng (c) 2009 Department of Computer Engineering 46Thiết kế vi mạch số với HDL (w1, w2, w3, w4) = (2, 8, 4, 2) Kết quả mô phỏng cho các bộ image_convert là giống nhau
File đính kèm:
- Bài giảng Thiết kế vi mạch số với HDL - Chương 9 Giải thuật và kiến trúc cho các bộ xử lý số.pdf