Chuyển đến nội dung
AIOTAIOT
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
  • icon
    097 186 8316    |    0839 799 889
Đào tạo, Khóa đào tạo cơ bản, LabVIEW FPGA

Bài 15: Các Hàm Toán Học Thông Lượng Cao (High Throughput Math)

Đã đăng trên 01/10/202527/09/2025 bởi ThaoNguyen
01
Th10

Để xây dựng các hệ thống xử lý tín hiệu số (DSP) hiệu năng cao, việc thực hiện các phép toán phức tạp một cách nhanh chóng và liên tục là yêu cầu bắt buộc. Bài học này sẽ giới thiệu bộ thư viện “High Throughput Math”, được thiết kế đặc biệt để tối ưu hóa cho việc xử lý dòng dữ liệu liên tục trên FPGA.

 

1. Tại Sao Cần một Bộ Thư Viện Toán Học Riêng?

Bạn có thể thắc mắc tại sao chúng ta không dùng các hàm toán học cơ bản trong bảng Numeric. Câu trả lời nằm ở hai khái niệm hiệu năng quan trọng trong thiết kế phần cứng: **Thông lượng (Throughput)** và **Độ trễ (Latency)**.

  • Độ trễ (Latency): Là khoảng thời gian cần thiết để một mẫu dữ liệu đi qua một hàm và cho ra kết quả. Các hàm Numeric thông thường được tối ưu cho độ trễ thấp, nghĩa là chúng cố gắng trả về kết quả nhanh nhất có thể cho một phép tính đơn lẻ.
  • Thông lượng (Throughput): Là tốc độ mà một hàm có thể xử lý các mẫu dữ liệu một cách liên tục. Nó đo lường số lượng mẫu được xử lý trên một đơn vị thời gian.

Trong các ứng dụng DSP, chúng ta thường xử lý hàng ngàn, hàng triệu mẫu dữ liệu liên tiếp. Do đó, **thông lượng là yếu tố quan trọng hơn độ trễ**. Các hàm High Throughput Math được xây dựng dựa trên kiến trúc **Pipelining (đường ống)** để tối đa hóa thông lượng, cho phép chúng nhận một mẫu dữ liệu mới ở mỗi chu kỳ clock, ngay cả khi phép toán đó cần nhiều chu kỳ để hoàn thành.

2. So Sánh Hàm Numeric và High Throughput Math

Tiêu chí Hàm Numeric Cơ Bản Hàm High Throughput Math (HTM)
Mục tiêu tối ưu Độ trễ (Latency) thấp cho phép tính đơn lẻ. Thông lượng (Throughput) cao cho dòng dữ liệu.
Kiểu dữ liệu chính Hỗ trợ nhiều kiểu (Integer, Float, Fixed-Point). Tối ưu hóa chuyên sâu cho Fixed-Point.
Môi trường hoạt động Thường dùng ngoài SCTL. Nhiều hàm không thể đặt trong SCTL. Được thiết kế để hoạt động bên trong Single-Cycle Timed Loop (SCTL).
Kiến trúc Tuần tự, không có pipeline. Tích hợp Pipelining tự động, có thể cấu hình.
Quản lý luồng dữ liệu Dựa trên dataflow thông thường của LabVIEW. Sử dụng Giao thức Bắt tay (Handshaking Protocol) với các tín hiệu điều khiển rõ ràng.

3. Chìa Khóa Vận Hành: Pipelining và Giao Thức Handshaking

Để sử dụng hiệu quả các hàm HTM, bạn cần nắm vững hai khái niệm cốt lõi này, đặc biệt là khi làm việc trong SCTL.

A. Kiến trúc Pipelining (Đường ống)

Hãy tưởng tượng một phép toán phức tạp (ví dụ: tính sin) được chia thành nhiều giai đoạn nhỏ (ví dụ: 5 giai đoạn). Thay vì thực hiện hết 5 giai đoạn cho một mẫu rồi mới nhận mẫu tiếp theo, kiến trúc pipeline cho phép cả 5 giai đoạn hoạt động đồng thời trên 5 mẫu dữ liệu khác nhau.

  • Kết quả: Mặc dù một mẫu dữ liệu phải mất 5 chu kỳ clock để đi hết “đường ống” (đây là latency), nhưng ở mỗi chu kỳ clock, một kết quả mới sẽ ra khỏi đường ống và một mẫu mới sẽ được đưa vào. Điều này có nghĩa là thông lượng đạt mức tối đa: 1 mẫu/chu kỳ clock.
  • Trong LabVIEW: Các hàm HTM tự động triển khai kiến trúc này. Bạn có thể tinh chỉnh số lượng “giai đoạn” pipeline trong hộp thoại cấu hình để đáp ứng yêu cầu về timing của SCTL.

B. Giao thức Handshaking (Bắt tay 4 dây)

Vì dữ liệu không phải lúc nào cũng hợp lệ ở mọi chu kỳ clock (do latency), các hàm HTM cần một cơ chế để thông báo cho nhau khi nào dữ liệu sẵn sàng và khi nào chúng có thể nhận dữ liệu mới. Giao thức này sử dụng 4 tín hiệu boolean chính:

input valid (Đầu vào hợp lệ)

Tín hiệu từ hàm phía trước (upstream) gửi đến, báo rằng: “Dữ liệu tôi đang gửi cho bạn là hợp lệ.”

output valid (Đầu ra hợp lệ)

Tín hiệu hàm hiện tại gửi cho hàm phía sau (downstream), báo rằng: “Kết quả tôi vừa tính xong là hợp lệ, bạn có thể sử dụng.”

ready for input (Sẵn sàng nhận đầu vào)

Tín hiệu hàm hiện tại gửi ngược lại cho hàm phía trước, báo rằng: “Tôi đã sẵn sàng để nhận một mẫu dữ liệu hợp lệ mới ở chu kỳ clock tiếp theo.”

ready for output (Sẵn sàng cho đầu ra)

Tín hiệu từ hàm phía sau gửi ngược lại, báo rằng: “Tôi đã sẵn sàng để nhận kết quả từ bạn.”

Việc kết nối chính xác các tín hiệu này giữa các hàm HTM trong một SCTL là bắt buộc để đảm bảo chuỗi xử lý hoạt động đúng đắn, không bị mất mát hay xử lý sai dữ liệu.

4. Hướng Dẫn Cấu Hình và Sử Dụng

Khi bạn đặt một hàm HTM vào SCTL và nhấp đúp vào nó, một hộp thoại cấu hình sẽ xuất hiện. Đây là trung tâm điều khiển của hàm.

  • Cấu hình Fixed-Point: Bạn có thể định nghĩa chính xác kiểu dữ liệu Fixed-Point cho các đầu vào và đầu ra, bao gồm cả các chế độ Overflow và Rounding.
  • Cấu hình Hiệu năng:
    • Throughput: Cho phép bạn chỉ định số chu kỳ clock tối thiểu giữa hai lần nhận dữ liệu hợp lệ. Giá trị này càng nhỏ, thông lượng càng cao.
    • Latency: Hộp thoại sẽ hiển thị độ trễ (số chu kỳ clock) của hàm với cấu hình hiện tại.
    • Registers: Cho phép bạn thêm các thanh ghi (registers) vào đầu vào hoặc đầu ra của hàm. Đây là một kỹ thuật quan trọng để chia nhỏ các đường logic dài (combinatorial path), giúp SCTL của bạn có thể biên dịch ở tần số clock cao hơn.
  • Hiển thị Terminal: Bạn có thể chọn hiển thị hoặc ẩn các terminal Handshaking để giữ cho sơ đồ khối gọn gàng khi không cần đến chúng.

Kết luận

Các hàm Toán học Thông lượng cao là bộ công cụ chuyên dụng và cực kỳ mạnh mẽ để triển khai các thuật toán DSP trên FPGA. Chúng đại diện cho một sự thay đổi trong tư duy thiết kế: từ tập trung vào tốc độ của một phép tính đơn lẻ sang tối ưu hóa tốc độ của cả một dòng chảy dữ liệu. Việc nắm vững kiến trúc Pipelining và giao thức Handshaking sẽ cho phép bạn xây dựng các hệ thống xử lý tín hiệu phức tạp, hiệu quả và có khả năng mở rộng.

 

 

Mục nhập này đã được đăng trong Đào tạo, Khóa đào tạo cơ bản, LabVIEW FPGA và được gắn thẻ LabVIEW FPGA.
ThaoNguyen

Bài 14: Làm Việc với Kiểu Dữ Liệu Fixed-Point
Bài 16: Khai Thác Phần Cứng Chuyên Dụng – Khối DSP Slices

1 những suy nghĩ trên “Bài 15: Các Hàm Toán Học Thông Lượng Cao (High Throughput Math)”

  1. Pingback: Bắt Đầu với LabVIEW FPGA - AIOT

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết mới
  • [Embedded Series – Bài 3] Làm Chủ Biến, Toán Tử Và Cấu Trúc Điều Khiển Trong Lập Trình C
  • [Embedded Series – Bài 2] Lập trình C cơ bản: Ngôn ngữ C, Kiểu dữ liệu và Biến
  • [Embedded Series – Bài 1] Tổng Quan Chương Trình Đào Tạo Lập Trình Nhúng Tại AIoT Systems
  • TỔNG KẾT WORKSHOP: AIOT, INTEL VÀ ASROCK ĐỒNG HÀNH PHÁT TRIỂN HỆ SINH THÁI KIOSK TẠI VIỆT NAM
  • DỰ ÁN THỰC HÀNH – BỘ ĐIỀU KHIỂN LED ĐA NĂNG (SMART LED CONTROLLER)
Danh mục
  • Đào tạo
  • FPGA cơ bản
  • Giải pháp
  • Hệ thống nhúng
  • IoT trong giáo dục
  • IoT trong y tế
  • Khóa đào tạo cơ bản
  • Khóa đào tạo nâng cao
  • LabVIEW FPGA
  • LabVIEW FPGA High Performance
  • Phần cứng máy tính & Truyền thông công nghiệp
  • Sản xuất công nghiệp
  • Thiết bị dịch vụ thông minh
  • Thiết bị đọc căn cước
  • Tin tức

CÔNG TY CỔ PHẦN HỆ THỐNG AIOT

VPGD: Số A21-TT9 Đường Foresa 1 KĐT Xuân Phương, Phường Xuân Phương, Hà Nội.

Địa chỉ kinh doanh: Đường Phú Diễn, Tổ dân phố 18, phường Phú Diễn, Thành phố Hà Nội, Việt Nam

Hotline/Zalo: 097 186 8316 | 0839 799 889

Email: aiot@aiots.vn

VỀ CHÚNG TÔI

Giới thiệu

Sản phẩm

Giải pháp

Đào tạo

Tin tức

QUY ĐỊNH & CHÍNH SÁCH

Chính sách thanh toán

Chính sách vận chuyển

Chính sách bảo hành

Chính sách đổi trả

Chính sách bảo mật

ĐỊA CHỈ VĂN PHÒNG GIAO DỊCH

Copyright 2024 © Bản quyền thuộc về AIOT. Thiết kế bởi Jamina JSC
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
Zalo
Phone

Đăng nhập

Quên mật khẩu?