Title Image

Blog Logo

Kỹ thuật Pipeline - Ống dẫn

🌱 Kỹ thuật Pipeline - Ống dẫn

    Đây là một kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc.
    Tức là bắt đầu thực hiện một lệnh khác trong quá trình thực hiện một lệnh. Điều này làm cho rút ngắn thời gian thực thi lệnh của bộ xử lý.

    🌱 Kỹ thuật tuần tự

    Các giai đoạn thực hiện một lệnh là:

  • Lấy lệnh (IF: Instruction Fetch),
  • Giải mã (ID: Instruction Decode),
  • Thực thi (EX: Execute),
  • Truy cập bộ nhớ (MEM: Memory Access),
  • Lưu trữ kết quả (RS: Result Storing).

    Giả sử mỗi giai đoạn thực hiện trong 1 chu kỳ xung nhịp thì theo cơ chế tuần tự thông thường - tức là thực hiện từng giai đoạn và từng lệnh một:

        👉 Mỗi lệnh hết 5 chu kỳ xung nhịp.

        👉 5 lệnh phải mất 25 chu kỳ xung nhịp.

    🌱 Pipeline nhanh hơn tuần tự

    Với kỹ thuật tuần tự, các lệnh giống như đi trong 1 đường ống, phải nối đuôi nhau, vì vậy, đi rất chậm.

    Còn pipeline là đi trong nhiều đường ống thông nhau, tức là trong quá trình thực hiện 1 lệnh, 1 lệnh khác có thể bắt đầu mà không cần phải chờ lệnh trước thực hiện xong.

    👉 Tốc độ thực thi lệnh của pipeline nhanh hơn khá nhiều so với tuần tự. <Các chip vi xử lý của ARM đều dùng pipeline>

    👉 Với ví dụ thực hiện 5 lệnh ở trên:

  • Tuần tự mất 25 chu kỳ cho 5 lệnh.
  • Pipeline chỉ mất 9 chu kỳ cho 5 lệnh

    🌱 Một số ràng buộc của Pipeline

    Do kỹ thuật này mang lại tốc độ nhanh hơn, nên nó cũng yêu cầu phức tạp hơn về mặt thiết kế.

  • Cần có một mạch điện để thực thi mỗi giai đoạn của lệnh (ở đây là 5)
  • Phải có nhiều thanh ghi khác nhau để xử lý các tác vụ đọc/ghi
  • Cần có nhiều thanh ghi lệnh để lưu giữ lệnh cho mỗi giai đoạn
  • Một khó khăn nữa là nếu kết quả của lệnh trước được dùng cho lệnh sau thì sao???
  • ....

Đăng nhận xét

0 Nhận xét