Cơ chế dự đoán rẽ nhánh trong PM

Một phần của tài liệu BÀI TIỂU LUẬN Đề tài số 3 TÌM HIỂU KIẾN TRÚC VI XỬ LÝ PENTIUM M Giảng Viên Hướng Dẫn,TS. PHẠM VĂN CƯỜNG của HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG (Trang 30)

II. KIẾN TRÚC CỦA VI XỬ LÝ INTEL PENTIU MM

4. Cơ chế dự đoán rẽ nhánh trong PM

 Một lệnh rẽ nhánh bao giờ cũng liên quan tới một điều kiện được kiểm tra. Nếu kết quả là đúng thì thực hiện một khối lệnh này, sai thì thực hiện khối lệnh kia. Điều không may là, đoạn lệnh được nạp vào trong cache lại không phải đoạn lệnh sẽ phải thực hiện gây ra phải thay thế cache

 Cơ chế dự đoán rẽ nhánh được phát triển gần đây cho phép dự báo rẽ nhánh với xác xuất đúng trên 90% cho phép giảm thiểu việc truy xuất từ bộ nhớ lên cache.

4.1, Mispredition penalty:

Missprediction penalty mất khoảng 13 chu kỳ clock đối với Pentium M và 15 chu lỳ đối với Core2, phụ thuộc vào độ dài pipeline. Những lệnh nhảy, gọi, và trả về xa thì không dự đoán được

4.2, Mô hình nhận biết điều kiện nhảy

Cơ chế của dự đoán rẽ nhánh tiến bộ hơn các bộ vi xử lý tước đây. Điều kiện nhảy được xử lý bới một bộ dự đoán kết hợp giữa một bộ đếm vòng lặp và dự đoán hai tầng. Thêm vào đó có một cơ chế cho dự đoán các lệnh nhảy và lời gọi gián tiếp. Một lệnh rẽ nhánh được nhận biết là có hành vi lặp lại nếu đi một đường n-1 lần và sau đó đi vào đường khác một lần. Một bộ đếm vòng lặp có thể dự đoán hành vi lặp lại một cách hoàn hảo nếu độ dài của n không lớn hơn 64. Bộ đếm vòng lặp được lưu trữ trong mỗi nhánh mà không cần sử dụng bảng lịch sử toàn cục. Thay vào đó bộ đếm có vùng đệm riêng của nó với 128 lối vào. Vì vậy những dự đoán cho một vòng lặp không phụ thuộc vào số các nhánh rẽ khác bên trong vòng lặp. Những vòng lặp liên quan đến nhau cũng được dự đoán một cách hoàn hảo.

Các nhánh không lặp được dự đoán bằng cách sử dụng dự đoán hai tầng với bộ đệm 8 bit và một mô hình history table không biết kích cỡ. Khả năng dự đoán một mô hình rẽ nhánh lặp đi lặp lại, hoặc mô hình lặp đơn, phụ thuộc vào số lượng nhánh rẽ trong một vòng lặp theo các quy tắc cho một dự đoán với một bảng lịch sử toàn cục.Một meta- predictor sẽ quyết định liệu một nhánh có lặp lại hay không và sử dụng cơ chế dự đoán theo nó.

TÌM HIỂU KIẾN TRÚC VI XỬ LÝ PENTIUM M II. Kiến trúc vi xử lý intel Pentium M

GROUP 3 – D11VT6 31

4.3, Nhận biết lệnh nhảy và lời gọi gián tiếp:

Lệnh nhảy và lời gọi gián tiếp (không phải trả về) được dự đoán sử dụng dự đoán hai tầng giống như lệnh rẽ nhánh. Các nhánh rẽ không lặp và lệnh nhảy,lời gọi gián tiếp cùng chia sẻ bộ đệm lịch sử và mô hình bảng lịch sử, nhưng rõ ràng là không cùng BTB. Một lệnh nhảy/lời gọi sẽ có một cổng vào BTB mới mỗi lần nó nhảy tới một đích mới, nó có thể có nhiều hơn 4 cổng BTB mặc dù BTB chỉ có 4 đường. Bộ đệm lịch sử lưu trữ nhiều hơn một bit cho mỗi cổng vào để phân biệt giữa hai đích trong một lệnh nhảy/lời gọi gián tiếp. Nhờ vậy có thể dự đoán một chu kỳ nhảy chuyển đi chuyển lại giữa một vài đích khác nhau. Số các đích khác nhau tối đa đã thấy là 36 nhưng con số có thể ấn tượng hơn nữa. một mô hình định kỳ có thể được dự đoán nếu tất cả độ dài của các mô hình con là khác nhau. Nó còn cải tiến dự đoán cho các điều kiện nhảy bới chúng dùng chung bộ đệm lịch sử. Một điều kiện nhảy có thế tạo ra một dự đoán dựa trên sự khác nhau giữa đích nhảy và lệnh nhảy gián tiếp trước đó.

Các quan sát trên chỉ ra bộ đệm lịch sử phải có ít nhất 8*6=48 bit, nhưng mô hình bảng lịch sử với 248 cổng vào là không thể về mặt vật lý. 48 bit hoặc hơn thế phải được nén lại hởi một số thuật toán chia nhỏ vào một khóa có x bit để đánh số cho 2x Cổng vào của bảng lịch sử. Giá trị x nằm trong khoảng 10 đến 16. Thuật toán chia nhỏ có thể chỉ là một phép XOR các bit từ bộ đệm lịch sử và địa chỉ BTB của câu lệnh rẽ nhánh.

Pentium M và Core 2 tạo ra nhiều dự đoán trật hơn mong đợi trong các chương trình có nhiều nhánh không lặp hoặc các lệnh nhảy/lời gọi gián tiếp ở cuối vòng lặp.

Thiết kế này gây ra 3 hậu quả cho việc dự đoán kém: thứ nhất cạnh tranh lối vào BTB. Thứ hai việc các khóa được sinh ra nối tiếp bởi thuật toán chia nhỏ gây ra cạnh tranh giữa các lối vào bảng. Hiện tượng này không chỉ xảy ra đối với lệnh nhảy/lời gọi gián tiếp mà còn đối với điều kiện nhảy được dự đoán bởi dự đoán hai tầng. Cái thứ 3 có thể xảy ra là hiệu năng của meta predictor giảm sút. Nguyên nhân chính gây ra việc khả năng dự đoán thấp hơn mong đợi này là do kích vỡ của mô hình bảng lịch sử không đáp ứng đủ.

Việc cải tiến dự đoán rẽ nhánh cho các nhánh rẽ trực tiếp và cho các vòng lặp động với sự bổ sung của bộ phận dò tìm vòng lặp đã mang giúp cho hiệu suất xử lý tăng cao.

TÌM HIỂU KIẾN TRÚC VI XỬ LÝ PENTIUM M III. Các đặc tính công nghệ mới

Một phần của tài liệu BÀI TIỂU LUẬN Đề tài số 3 TÌM HIỂU KIẾN TRÚC VI XỬ LÝ PENTIUM M Giảng Viên Hướng Dẫn,TS. PHẠM VĂN CƯỜNG của HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG (Trang 30)

Tải bản đầy đủ (PDF)

(39 trang)