Giả định rằng các thuật toán bắt đầu ở góc trên bên trái tay của các flowchart. Nhưmiễn là mỗi hướng dẫn có điều kiện chi nhánh thành công là gặp phải được thực hiện, quá trình quyết định dự đoán rằng các chi nhánh tiếp theo sẽ được thực hiện. Nếu một dự đoán đơn là sai, các thuật toán tiếp tục dự đoán rằng các chi nhánh tiếp theo được thực hiện. ChỉNếu hai nhánh liên tiếp không ký hiện các thuật toán chuyển sang các bên phảibên của các flowchart. Sau đó, các thuật toán sẽ tiên đoán rằng chi nhánh khôngthực hiện cho đến khi các chi nhánh hai trong một hàng được thực hiện. Vì vậy, các thuật toán yêu cầu hai liên tiếp dự đoán sai để thay đổi quyết định dự đoán.Quá trình quyết định có thể được biểu diễn hơn compactly bởi một máy hữu hạn trạng thái, Hiển thị trong hình 12.19. Đại diện hữu hạn-nhà nước máy là phổ biếnđược sử dụng trong các tài liệu.Sử dụng lịch sử bit, như chỉ mô tả, có một nhược điểm: nếu quyết định làthực hiện để có các chi nhánh, các hướng dẫn mục tiêu không thể được tải về cho đến khi địa chỉ mục tiêu, là một operand trong giảng dạy có điều kiện chi nhánh, được giải mã. Lớn hơnhiệu quả có thể đạt được nếu lấy hướng dẫn có thể được bắt đầu ngay sau khi cácchi nhánh quyết định được thực hiện. Cho mục đích này, thông tin phải được lưu ra, trong những gìđược biết đến như một bộ đệm nhắm mục tiêu chi nhánh, hoặc một bảng lịch sử chi nhánh.Bảng lịch sử chi nhánh là một bộ nhớ cache nhỏ liên quan đến instruction lấy giai đoạn của đường ống. Mỗi mục trong bảng bao gồm ba yếu tố:địa chỉ của một hướng dẫn chi nhánh, một số số lịch sử bit rằng bản ghi cácnhà nước sử dụng hướng dẫn, và các thông tin về các mục tiêu chỉ dẫn. Trong hầu hết các đề xuất và hiện thực, này trường thứ ba có chứa địa chỉ của tarnhận được chỉ dẫn. Một khả năng là cho lĩnh vực thứ ba để thực sự chứa tarnhận được chỉ dẫn. Cái giá là rõ ràng: lưu trữ địa chỉ mục tiêu sản lượng một nhỏ hơnbảng nhưng một chỉ dẫn lớn lấy thời gian so với lưu trữ mục tiêu instruction [RECH98].Con số 12,20 tương sơ đồ này với một chiến lược predict-không bao giờ-thực hiện. Vớichiến lược cũ, giai đoạn lấy chỉ dẫn luôn fetches quảng cáo tiếp theo tuần tựăn. Nếu một chi nhánh được thực hiện, một số logic trong xử lý phát hiện này và chỉ thị màCác hướng dẫn tiếp theo được tải về từ địa chỉ mục tiêu (ngoài việc xả nước cácđường ống). Bảng lịch sử chi nhánh được coi là một bộ nhớ cache. Mỗi yếu tố prefetch mộttra cứu trong bảng lịch sử chi nhánh. Nếu không phù hợp được tìm thấy, địa chỉ tiếp theo tuần tựđược sử dụng để tìm nạp. Nếu kết hợp được tìm thấy, một dự báo được thực hiện dựa trên bangchỉ dẫn: hoặc là tiếp theo tuần tự địa chỉ hay địa chỉ chi nhánh mục tiêu làcung cấp cho logic chọn.Khi các hướng dẫn chi nhánh được thực thi, giai đoạn thực hiện tín hiệu các chi nhánhlịch sử bảng logic với kết quả. Nhà nước của các hướng dẫn được Cập Nhật để phản ánh mộtdự đoán chính xác hoặc không chính xác. Nếu dự báo là không chính xác, chọn logic là redirected đến địa chỉ chính xác cho lấy tiếp theo. Khi có điều kiện một chi nhánh instruction là gặp phải mà không có trong bảng, nó được thêm vào bảng và là một trong cáchiện có mục được bỏ đi, bằng cách sử dụng một trong bộ nhớ cache thay thế thuật toán discussed trong chương 4.Một tinh tế của phương pháp tiếp cận lịch sử chi nhánh được gọi là hai cấp hoặc tương quanDựa trên lịch sử chi nhánh [YEH91]. Cách tiếp cận này dựa trên giả định rằngtrong khi trong vòng lặp đóng cửa các chi nhánh, lịch sử quá khứ của một chỉ dẫn cụ thể chi nhánhlà một dự báo tốt của hành vi trong tương lai, với cấu trúc phức tạp hơn kiểm soát dòng chảy,sự chỉ đạo của một chi nhánh thường xuyên được tương quan với sự hướng dẫn của liên quanchi nhánh. Một ví dụ là một cấu trúc nếu-sau đó-khác hoặc trường hợp. Có là một sốchiến lược có thể. Thông thường, tại chi nhánh toàn cầu lịch sử (tức là, lịch sử của các chi nhánh đặt tại không chỉ của hướng dẫn chi nhánh này) được sử dụng để bổ sung cáclịch sử của các hướng dẫn chi nhánh hiện tại. Cấu trúc tổng quát được định nghĩa là mộtcorrelator (m, n), sử dụng hành vi của các chi nhánh m cuối để lựa chọn n-bit chi nhánh các dự đoán để được hướng dẫn chi nhánh hiện tại. Nói cách khác, một n-bitlịch sử được giữ cho một chi nhánh cho cho từng kết hợp có thể thực hiện bởi chi nhánhmbranches đặt.Chậm TRỄ BRANCHIt có thể cải thiện hiệu suất của đường ống dẫn bởi tự độngsắp xếp lại các hướng dẫn trong một chương trình, để hướng dẫn chi nhánh xảy ra sau đóhơn thực sự mong muốn. Cách tiếp cận hấp dẫn này được kiểm tra trong chương 13.
đang được dịch, vui lòng đợi..
