Altifigence Academy

19 / 24 · Khái niệm

Duy trì đối soát giao dịch qua xóa luồng và đặt lại

Tách hủy khỏi chuyển giao và đồng bộ trạng thái valid với hàng đợi kỳ vọng.

Hủy là sự kiện thiết kế rõ ràng

Đặt lại đưa điều khiển về trạng thái biết trước; xóa luồng hủy công việc đang chờ được chỉ định. Chỉ xóa dữ liệu là chưa đủ. Nếu valid vẫn cao, 0 có thể trở thành giao dịch giả. Bit dữ liệu cũ với valid bằng 0 không gây hại. Xóa trạng thái sở hữu phù hợp: full trong bộ đệm một ô, count và con trỏ trong FIFO, hoặc trạng thái FSM và valid kết quả.

Quy ước đồng bộ một xung nhịp của chúng ta loại trừ chấp nhận và chuyển giao tại cạnh đặt lại ở cả hai đầu, và hủy toàn bộ công việc đang chờ tại đó. Chỉ đặt lại một đầu trong khi đầu kia đếm valid cũ là chuyển giao sẽ vi phạm thỏa thuận. Ghi rõ phạm vi đặt lại và chính sách ready. Đầu vào mới sau đặt lại thuộc khoảng giao dịch mới.

Sự kiệnaccepteddeliveredcanceledoutstanding
Chấp nhận A,B,C3003
Chuyển giao A3102
Xóa luồng B,C3120
Chấp nhận D4121
Chuyển giao D4220

Khi có hủy, dùng accepted-delivered-canceled=outstanding. Hủy mỗi giao dịch chưa chuyển giao đúng một lần. Hàng đợi tham chiếu cũng phải loại công việc bị hủy, đồng thời kiểm tra không có kết quả cũ vào khoảng mới.

Yêu cầu bộ nhớ bên ngoài có thể tồn tại sau xóa luồng nội bộ. Phân biệt phản hồi muộn bằng định danh thế hệ, hoặc chờ yêu cầu cũ kết thúc trước khi khởi động lại. Tái sử dụng trường thế hệ nhỏ quá sớm có thể nhầm phản hồi cũ với hiện tại. Dự án tổng kết của chúng ta không có phản hồi trễ bên ngoài và chỉ hủy bộ đệm nội bộ.

Xóa luồng có chọn lọc có thể giữ công việc cũ hơn lệnh rẽ nhánh và loại phép toán trẻ hơn trên đường sai. Việc đó cần quy tắc thứ tự và ghi nhận kết quả xác định. Công việc không hợp lệ không được cập nhật lưu trữ hay tham gia chuyển tiếp. Kiểm tra đặt lại khi trống, dừng, đầy và lúc có thể truyền đồng thời. Chỉ đặt lại lúc khởi động chưa thử hủy công việc đang chờ.

Tự thử

Chấp nhận năm, chuyển giao hai, rồi xóa luồng ba phần tử còn lại. Sau đó chấp nhận hai và chuyển giao một. Tìm tổng tích lũy accepted, delivered, canceled và outstanding.

Đọc giải thích

Accepted=7, delivered=3, canceled=3, outstanding=1. Phép đối soát là 7-3-3=1. Phần tử bị hủy không phải lần chuyển giao thành công.

Lựa chọn áp dụng cho trình duyệt này. Có thể đổi ở chân trang bất cứ lúc nào.