Bài giảng Thiết kế mạch số dùng HDL - Chương 9: Giải thuật và kiến trúc cho các bộ xử lý số có nội dung trình bày về giải thuật, chương trình lặp lồng nhau (NestedLoop) và đồ thị dòng dữ liệu (Data Flow Graph); bộ lọc số và bộ xử lý tín hiệu số; khối cơ bản cho các bộ xử lý tín hiệu; kiến trúc pipeline; bộ đệm vòng; FIFO và sự đồng bộ hóa giữa các mạch đồng bộ;... Mời các bạn cùng tham khảo!
Trang 2Trade-off in system implementation
• General purpose, high performance processor
(GHP)
Có thể không đạt được hiệu suất cao trong những
ứng dụng cá biệt (particular applications)
Có thể được sử dụng không đúng mức
(underutilized) trong ứng dụng nào đó
Có thể không cân bằng giữa tốc độ bộ xử lý và thiết
bị ngoại vi
• So sánh với ASIC :
GHP tiêu thụ năng lượng nhiều hơn, tốn nhiều diện
tích hơn và chi phí cao hơn (tùy thuộc vào số lượng bán ra)
Bộ xử lý chuyên dụng (dedicated processors) sẽ có
tập lệnh và các vi lệnh (microcode) đơn giản hơn
Trang 3What about ASICs
• ASICs được thiết kế để tối ưu sự thực thi của các giải
thuật cá biệt cho ứng dụng chuyên biệt nào đó
• Kiến trúc mạch của ASICs được đặc chế (customize)
trade-off giữa hiệu suất và giá thành
• ASIS Chips hy sinh tính uyển chuyển để đạt được hiệu suất cao
• Đặc biệt thích hợp cho các ứng dụng có đường dữ liệu song song và yêu cầu xử lý đồng thời (DSP, Data
communication,…)
• ASIC vs FPGA: bottom-line unit cost, tuy nhiên đôi khi
cũng dựa trên giải thuật
Trang 4Thiết kế một bộ xử lý như thế nào?
• 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
Trang 5• Giải thuật, chương trình lặp lồng nhau
(Nested-Loop) và đồ thị dòng dữ liệu (Data Flow Graph)
Trang 6Algorithms, Nested-loop program & DFG
• Một giải thuật tuần tự có thể được mô tả bằng 1 chương trình lặp lồng nhau (NLP) được viết
bằng ngôn ngữ lập trình/đặc tả (C/Verilog)
• NLP luôn luôn khả tính toán
• NLP cung cấp một đặc tả không nhập nhằn và
khả thực thi
Trang 7(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 e ij E có hướng biễu diễn dữ liệu sinh ra từ
node v i và đi vào v j
• Phụ thuộc dữ liệu giữa 2 cặp đỉnh v i và v j trên cạnh
e ij nếu và chỉ nếu v j sử dụng kết quả của v i và v j sẽ
Trang 8• 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
Trang 9 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
Trang 11• 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
Trang 12 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
Trang 14i e w j
i e w j
i e w j
i e w av
E _ ( 1 * [ 1 , ] 2 * [ 1 , 1 ] 3 * [ , 1 ] 4 * [ 1 , 1 ]) /
av E
j i PV CPV [ , ] _
1 : 0
? _
_ round CPV CPV thresh
Trang 15• 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:
Trang 16Baseline 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
Trang 31Kiế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
động kiến trúc cho mạch => Không cần hiện
thực bộ điều khiển (image_converter_1)
Trang 32Kiến trúc máy tuần tự cho HPIC
Kiến trúc dãy pixel 2 chiều MxN
Trang 33Chuẩ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