a. Tăng tốc độ Xung nhịp (Increasing the Clock Rate)
Đây là phương pháp trực tiếp nhất và hấp dẫn nhất. Nếu bạn có thể tăng gấp đôi tần số xung nhịp của SCTL (ví dụ từ 40 MHz lên 80 MHz) mà không thay đổi các yếu tố khác, thông lượng sẽ tăng gấp đôi. Tuy nhiên, việc này sẽ làm giảm một nửa thời gian cho phép của mỗi chu kỳ (từ 25ns xuống 12.5ns), khiến cho đường dẫn tới hạn (critical path) dễ bị vi phạm hơn.
Thách thức chính:
Làm thế nào để tái cấu trúc logic để nó có thể chạy nhanh hơn? Giải pháp chính cho vấn đề này là kỹ thuật Pipelining, sẽ được trình bày chi tiết trong Bài 8.
b. Tăng số lượng Mẫu xử lý mỗi lần gọi (Parallelism)
Phương pháp này tận dụng thế mạnh song song của FPGA. Thay vì xử lý một mẫu dữ liệu trong mỗi chu kỳ, ta có thể nhân bản logic để xử lý N mẫu dữ liệu đồng thời. Điều này làm tăng thông lượng lên N lần mà không cần thay đổi xung nhịp.
Đánh đổi:
Việc nhân bản logic sẽ làm tăng mức sử dụng tài nguyên FPGA (LUTs, DSPs) lên gần N lần. Kỹ thuật này chỉ khả thi khi bạn có đủ tài nguyên và thuật toán cho phép xử lý các mẫu một cách độc lập. Đây là một sự đánh đổi trực tiếp giữa **thông lượng và tài nguyên**.
c. Giảm Khoảng thời gian Khởi tạo (Decreasing Initiation Interval – II)
Initiation Interval (II) là một khái niệm quan trọng. Một II bằng 1 có nghĩa là khối xử lý có thể nhận dữ liệu mới ở mỗi chu kỳ xung nhịp. Một II bằng 4 có nghĩa là nó chỉ có thể nhận dữ liệu mới sau mỗi 4 chu kỳ. Nếu bạn có một khối xử lý với II=4, nó đang hoạt động dưới 25% công suất thiết kế. Giảm II từ 4 xuống 1 sẽ làm tăng thông lượng của riêng khối đó lên 4 lần.
Nguyên nhân gây ra II > 1:
Thường là do các thuật toán có các bước phụ thuộc vào nhau hoặc sử dụng tài nguyên chung mà không thể được pipeline hóa hoàn toàn. Kỹ thuật để giải quyết vấn đề này sẽ được thảo luận sâu hơn trong Bài 9.