2012-06-30 16 views
9

Tôi muốn biết dự đoán nhánh của bộ xử lý Intel i7 hoạt động như thế nào?Giới thiệu về Chi nhánh Dự đoán của i7

Thẳng thắn, tôi biết người dự đoán được gọi là "dự đoán nhánh động".

Đối với dự đoán 1 bit: Phần cứng luôn dự đoán lệnh chi nhánh sẽ thực hiện cùng hướng mà nó đã thực hiện lần cuối cùng.

Phiên bản tinh tế hoạt động tốt hơn trong thực tế là trình dự đoán 2 bit. Theo thứ tự để cải thiện hơn nữa độ chính xác dự đoán, đề án dự đoán 2 bit đã được giới thiệu. Trong các đề án này, dự đoán phải sai hai lần trước khi thay đổi.

i7 có cùng dự đoán như trên không?

+4

Tôi gần như có thể đảm bảo với bạn rằng các chi tiết đầy đủ là bí mật độc quyền của công ty. – Mysticial

Trả lời

9

Hầu hết những gì chúng ta biết về dự đoán chi nhánh đến từ thử nghiệm. Intel đã không phát hành nhiều trong cách chi tiết. Hình phạt giả định là khoảng 18 chu kỳ đồng hồ, vì vậy dự đoán chi nhánh chính xác là quan trọng.

Intel sử dụng bộ dự đoán nhánh cấp hai. Mức bên trong được cho là không thay đổi so với CPU Core 2.

Mức bên ngoài tinh vi hơn và thậm chí có thể dự đoán chính xác các vòng lặp với số lượng cố định lên đến 64. Hai bộ đệm lịch sử toàn cầu 18 bit được sử dụng. Một chứa tất cả các bước nhảy đã được thực hiện ít nhất một lần. Khác chứa các bước nhảy quan trọng nhất. (Số lượng mục nhập trong các bộ đệm này không xác định.)

Lưu ý rằng các bước nhảy và cuộc gọi gián tiếp có dự đoán riêng của chúng.

6

Câu trả lời ngắn gọn là không.

Tôi chắc chắn rằng không có CPU Intel nào đã sử dụng bộ dự đoán một bit mà bạn mô tả.

Pentium gốc sử dụng bộ mô tả hai bit, giống như bạn mô tả. Bốn giá trị mà nó được sử dụng thường được mô tả là "không được lấy mạnh", "yếu không được lấy", "yếu", và "lấy đi". Bất cứ lúc nào một chi nhánh được thực hiện, bộ đếm được di chuyển một điểm về phía "mạnh mẽ". Bất cứ lúc nào một chi nhánh không được thực hiện, nó di chuyển một điểm về phía "mạnh mẽ không được thực hiện". Đó là một bộ đếm bão hòa, vì vậy nếu (ví dụ) một chi nhánh được thực hiện khi bộ đếm đã được "lấy mạnh", bộ đếm đơn giản không thay đổi. [Tôi nên thêm: đây là cách Intel ghi lại nó, và dường như dự định nó hoạt động - nếu bộ nhớ phục vụ, Agner Fog và Terje Mathiesen thấy rằng nó thực sự hoạt động hơi khác một chút - và, nói chung cũng không như thế này).

Kể từ Pentium/MMX và Pentium Pro, họ đã thiết kế một bộ dự đoán chi nhánh hai cấp phức tạp hơn. Nó đã thêm một lịch sử chi nhánh 4 bit, nó được sử dụng để chọn một trong 16 bộ đếm 2 bit. Điều này có nghĩa là nếu bạn có một mẫu (ví dụ) chụp, lấy, không lấy, chụp, (sau đó lặp lại) nó sẽ nhanh chóng điều chỉnh theo đó, và dự đoán tất cả các nhánh một cách chính xác.

Tôi không phải là chắc chắn về chi tiết dự đoán nhánh trong i7, nhưng tôi cho rằng an toàn là ít nhất là tinh vi như của Pentium Pro, không phải là một sự trở lại của Pentium gốc.

+0

Xin lưu ý rằng các yếu tố dự đoán hai bit có thể bão hòa (tức là từ trạng thái này sang trạng thái tiếp theo, có ranh giới ở mức mạnh hoặc không lấy), HOẶC chúng có thể có bộ đếm trễ, cho phép chúng đi từ yếu đến mạnh mẽ lấy và từ yếu được đưa đến mạnh mẽ không được thực hiện trực tiếp. –

Các vấn đề liên quan