TAILIEUCHUNG - Tutorials Vbook v0.1-Thủ Thuật UDS part 50

Tham khảo tài liệu 'tutorials vbook thuật uds part 50', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | 3. Cấu trúc pipeline dài khi xử lý những lệnh độc lập thì ưu việt hơn cấu trúc pipeline ngắn do số lệnh được xử lý đồng thời nhiều hơn. Tuy nhiên không phải toàn bộ lệnh được xử lý đều là những lệnh độc lập mà còn một phần khá lớn những lệnh phụ thuộc. Đơn giản nhất là những lệnh trong thuật toán xoay vòng phép tính sau phải chờ kết quả của phép tính ngay trước mới có thể thực hiện. Đây chính là điểm yếu của kiến trúc pipeline dài. Khi lệnh trước vd lệnh 1 được thực hiện ở bậc n 1 của pipeline lệnh kế sau nó vd lệnh 2 đã được nạp vào và thực hiện ở bậc n nhưng nếu lệnh 2 là phụ thuộc kết quả của lệnh 1 thì mặc dù lệnh 2 này vẫn được nạp vào pipeline nhưng nó vẫn không hề được xử lý. Sau khi lệnh 1 xử lý xong ra kết quả toàn bộ lệnh trong pipeline hiện thời dù đang được xử lý ở bậc nào đều phải tống ra ngoài để nạp lệnh 2 lại từ bậc đầu tiên. Quá trình thải -nạp - xử lý lại này mất rất nhiều thời gian có 10bậc thì chỉ phải thải nạp và xử lý lại 10 lệnh còn có 30 bậc thì. nên đây chính là nhược điểm lớn của cấu trúc pipeline dài tuỳ vào từng soft nhược điểm này sẽ cân bằng lớn hơn hoặc nhở hơn so với ưu điểm nói trên. Chính do trong một tập lệnh có sự tồn tại của cả những lệnh độc lập và phụ thuộc nên trong CPU mới cần bộ tiên đoán nhánh BPU. BPU làm nhiệm vụ tiên đoán xem lệnh nào là phụ thuộc độc lập và xếp thứ tự chúng sao cho việc xử lý có lợi nhất. VD pipeline có 20 bậc thì 2 lệnh phụ thuộc nhau sẽ được xếp cách nhau 19 lệnh khác. lúc đó khi lệnh trước vừa xử lý xong ở bậc thứ 20 thì kết quả của nó sẽ được chuyển ngay đến lệnh phụ thuộc kế sau nó vừa được nạp vào bậc 1 và 19 lệnh xen giữa 2 lệnh này vẫn được xử lý bình thường. về BPU thì AMD K8 hơn hẳn P4 Thực ra cũng có một giải pháp được đưa ra để khắc phục nhược điểm khi xử lý các lệnh phụ thuộc trong cấu trúc pipeline dài đó là sử dụng vùng đệm đích rẽ nhánh BTB. Khi phát hiện ra 2 lệnh phụ thuộc nhau lại được xử lý kế tiếp nhau trong pipeline trong quá trình tống các lệnh khác ra khỏi pipeline như đã nói ở

TÀI LIỆU HOT