Kỹ thuật xử lý lệnh kiểu đường ống (Pipeline)

Một phần của tài liệu GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH (Trang 41 - 42)

Kỹ thuật xử lý lệnh kiểu đường ống được sử dụng trong các đơn vị xử lý trung tâm từđời đơn vị xử lý trung tâm Intel 8086.

Đường ống tương tự như dây chuyền sản xuất nhiều công đoạn. ở dây chuyền sản xuất, mỗi công đoạn thực hiện một thao tác sản xuất. Sản phẩm được chuyển và hình thành dần sau mỗi công đoạn sản xuất, cho đến khi được hoàn thành ở công đoạn cuối cùng.

Trong kỹ thuật xử lý lệnh theo kiểu đường ống, việc thực hiện lệnh cũng được thực hiện qua 5 giai đoạn, giai đoạn nọ tiếp sau giai đoạn kia, cho đến khi thực hiện xong lệnh. Với một đường ống 5-giai đoạn, tại mỗi chu kỳ máy có 5 bộ dữ liệu thuộc 5 giai đoạn xử lý được gửi vào đường ống và 5 thao tác được thực hiện đồng thời, nhờ vậy nếu tính từ khi thực thi xong lệnh đầu tiên thì cứ sau mỗi chu kỳ máy lại có một lệnh được hoàn thành và một lệnh mới được nhập.

Kỹ thuật đường ống cho phép tăng tốc độ thực hiện lệnh lên gấp nhiều lần: So sánh với kiểu xử lý tuần tự thông thường, 5 lệnh được thực hiện trong 25 chu kỳ xung nhịp, thì xử lý lệnh theo kỹ thuật ống dẫn thực hiện 5 lậnh chỉ trong 9 chu kỳ xung nhịp.

Nhược đim: Ta thấy rằng toàn bộ lệnh được xử lý không phải 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. Khi lệnh trước (vd lệnh 1) được thực hiện ở giai đoạn n+1 của pipeline, lệnh kế sau nó (vd lệnh 2) đã được nạp vào và thực hiện ở giai đoạn 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ừ giai đoạn đầ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ó 10 giai đoạn thì chỉ phải thải, nạp và xử lý lại 10 giai đoạn, còn có 30 giai đoạn 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 giai đoạn 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 ở giai đoạn thứ 20 thì kết quả của nó sẽ được chuyển ngay đến lệnh phụ thuộc kế

42 sau nó vừa được nạp vào giai đoạn 1, và 19 lệnh xen giữa 2 lệnh này vẫn được xử lý bình thường.

Một phần của tài liệu GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH (Trang 41 - 42)