6 / 24 · Khái niệm
Lập lịch tài nguyên dùng chung bằng FSM
Tích lũy bốn giá trị bằng một bộ cộng đồng thời xác định chuyển trạng thái và ghi nhận dữ liệu.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Trạng thái điều khiển biểu thị lịch phép toán
Tài nguyên dùng chung đòi hỏi lập lịch các phép toán theo thời gian. Xét việc tính tổng từ x0 đến x3 bằng một bộ cộng và bộ tích lũy mười bit. Ghi nhận cả bốn toán hạng khi yêu cầu được chấp nhận. Những thay đổi bên ngoài về sau không được ảnh hưởng đến yêu cầu đang chờ. Bộ điều khiển chọn toán hạng, cho phép tích lũy và quyết định khi nào kết quả trở nên hợp lệ.
Dùng các trạng thái IDLE, ADD0, ADD1, ADD2, ADD3 và DONE. Cạnh chấp nhận trong IDLE ghi nhận đầu vào và xóa acc. Bốn cạnh tiếp theo mỗi cạnh cộng một toán hạng đã lưu. Ngay sau cạnh ADD3, tổng cuối được lưu và trạng thái trở thành DONE. DONE giữ kết quả đến khi bên nhận chấp nhận nó. Phiên bản đơn giản này trở về IDLE tại cạnh đó và không đồng thời chấp nhận yêu cầu mới.
| Cạnh | Trạng thái cũ | Hành động | acc mới |
|---|---|---|---|
| 0 | IDLE | Ghi nhận 3,5,7,9 và xóa acc | 0 |
| 1 | ADD0 | Cộng 3 | 3 |
| 2 | ADD1 | Cộng 5 | 8 |
| 3 | ADD2 | Cộng 7 | 15 |
| 4 | ADD3 | Cộng 9, chuyển sang DONE | 24 |
| 5 | DONE | Bên nhận chấp nhận kết quả | 24 |
Phân biệt kết quả sẵn có sau cạnh 4 với việc truyền tại cạnh 5. Bên nhận dừng có thể kéo dài DONE vô hạn. Tái sử dụng tài nguyên giảm phần cứng số học, nhưng giới hạn thông lượng so với pipeline chấp nhận mỗi chu kỳ. Hỗ trợ hoàn thành đồng thời với yêu cầu mới cần ưu tiên rõ ràng giữa chuyển giao kết quả cũ và khởi tạo yêu cầu mới.
- IDLE: Chấp nhận và ghi nhận cả bốn giá trị
- ADD0..ADD3: Tái sử dụng một bộ cộng tại bốn cạnh
- DONE: Giữ kết quả đến khi được nhận
Suy ra điều khiển từ trạng thái: cho phép bộ tích lũy trong các trạng thái ADD, chọn toán hạng tương ứng với trạng thái và đặt valid kết quả trong DONE. Đặt mặc định cho đầu ra điều khiển tổ hợp. Xác định sự chấp nhận để yêu cầu được kích hoạt liên tục không vô tình lặp lại. Đặt lại đưa về IDLE và loại bỏ công việc đang chờ. Triển khai bằng bộ đếm có thể giảm mã hóa trạng thái, nhưng vẫn cần cùng lịch tại từng cạnh.
Tự thử
Các giá trị acc sau ADD0 đến ADD3 là gì với bốn đầu vào 255? Điều gì phải xảy ra khi ready đầu ra bằng 0 tại cạnh 5?
Đọc giải thích
Các giá trị là 255, 510, 765 và 1020, đều vừa mười bit. Với ready=0, không có chuyển giao; giữ DONE, acc=1020 và valid=1.