2. Giải Pháp: Arbitration – “Trọng Tài” Điều Phối Truy Cập
Để giải quyết vấn đề tranh chấp, LabVIEW FPGA cung cấp một cơ chế tích hợp sẵn gọi là **Arbitration**. Hãy coi nó như một người “trọng tài” hay một bộ điều khiển giao thông thông minh được tự động thêm vào mạch của bạn.
Khi nhiều đoạn mã (gọi là **Requestors** – bên yêu cầu) cùng gửi yêu cầu truy cập một tài nguyên, bộ phận “trọng tài” (gọi là **Arbiter**) sẽ can thiệp. Nó sẽ chọn ra một Requestor, cho phép nó truy cập tài nguyên và trở thành **Accessor** (bên truy cập). Các Requestor khác sẽ phải đợi đến lượt.
Cái giá của sự an toàn
Arbitration đảm bảo dữ liệu không bị hỏng, nhưng nó cũng mang lại hai hệ quả bạn cần biết:
- Tốn tài nguyên FPGA: Mạch logic của Arbiter chiếm một phần tài nguyên (LUTs, Flip-flops) trên chip.
- Gây ra độ trễ (Latency) và Jitter: Vì các Requestor có thể phải chờ đợi, thời gian thực thi của một vòng lặp sẽ không còn hoàn toàn cố định. Sự dao động về thời gian này được gọi là “Jitter”, một yếu tố rất quan trọng trong các hệ thống điều khiển thời gian thực.