ScholarGate
Trợ lý

Thực thi ngoài thứ tự

Thực thi ngoài thứ tự cho phép bộ xử lý thực hiện các lệnh ngay khi toán hạng của chúng sẵn sàng thay vì tuân thủ nghiêm ngặt thứ tự chương trình, sử dụng việc đổi tên thanh ghi và bộ đệm để phơi bày tính song song trong khi vẫn tạo ra kết quả theo thứ tự.

Tìm chủ đề với PaperMindSắp ra mắtFind papers & topics
Tools & resources
Tải xuống bản trình chiếu
Learn & explore
VideoSắp ra mắt

Definition

Thực thi ngoài thứ tự là một kỹ thuật vi kiến trúc trong đó bộ xử lý tự động sắp xếp lại việc thực thi lệnh để chạy các lệnh độc lập bất cứ khi nào toán hạng của chúng có sẵn, đồng thời sử dụng bộ đệm và đổi tên để duy trì vẻ ngoài hoàn thành tuần tự, theo thứ tự.

Scope

Chủ đề này bao gồm lập lịch động: các trạm dự trữ, đổi tên thanh ghi để loại bỏ các phụ thuộc giả, bộ đệm sắp xếp lại để đảm bảo cam kết theo thứ tự, và phục hồi thực thi suy đoán. Nó được xây dựng trực tiếp dựa trên thuật toán của Tomasulo. Nó không bao gồm việc dự đoán hướng rẽ nhánh (dự đoán rẽ nhánh) và khái niệm rộng hơn về mức độ song song tồn tại (tính song song cấp lệnh), mà tập trung vào chính cơ chế sắp xếp lại.

Core questions

  • Làm thế nào một bộ xử lý có thể thực thi các lệnh ngoài thứ tự chương trình nhưng vẫn tạo ra kết quả chính xác, theo thứ tự?
  • Việc đổi tên thanh ghi loại bỏ các phụ thuộc ghi sau đọc và ghi sau ghi như thế nào?
  • Các trạm dự trữ và bộ đệm sắp xếp lại đóng góp gì?
  • Làm thế nào các ngoại lệ và dự đoán sai được phục hồi chính xác trong một lõi thực thi ngoài thứ tự?

Key concepts

  • lập lịch động
  • trạm dự trữ
  • đổi tên thanh ghi
  • bus dữ liệu chung
  • bộ đệm sắp xếp lại
  • cam kết theo thứ tự
  • ngoại lệ chính xác
  • phục hồi thực thi suy đoán

Key theories

Thuật toán của Tomasulo
Sơ đồ của Tomasulo sử dụng các trạm dự trữ và một bus dữ liệu chung để đổi tên các thanh ghi và gửi các lệnh đến các đơn vị chức năng khi toán hạng của chúng có sẵn, cho phép thực thi ngoài thứ tự chỉ tuân thủ các phụ thuộc dữ liệu thực sự.
Các ngoại lệ chính xác thông qua cam kết theo thứ tự
Một bộ đệm sắp xếp lại giữ các kết quả của các lệnh ngoài thứ tự và cam kết chúng theo thứ tự chương trình, để các ngoại lệ và dự đoán sai có thể được xử lý chính xác như thể việc thực thi đã hoàn toàn tuần tự.

Mechanisms

Các lệnh đã được giải mã được đổi tên thành các thanh ghi vật lý và đặt vào các trạm dự trữ hoặc hàng đợi phát lệnh, nơi chúng chờ toán hạng được truyền trên bus kết quả. Khi sẵn sàng, chúng thực thi trên các đơn vị chức năng có sẵn theo bất kỳ thứ tự nào. Một bộ đệm sắp xếp lại theo dõi thứ tự chương trình gốc và cam kết kết quả tuần tự, loại bỏ các kết quả suy đoán khi có dự đoán sai hoặc ngoại lệ để trạng thái kiến trúc luôn chính xác.

Clinical relevance

Thực thi ngoài thứ tự là động cơ cốt lõi của các CPU hiệu năng cao, che giấu độ trễ bộ nhớ và thực thi bằng cách tìm kiếm công việc độc lập để thực hiện. Nó cũng có ý nghĩa về bảo mật: vì công việc suy đoán, ngoài thứ tự có thể truy cập dữ liệu tạm thời trước khi bị hủy bỏ, nó đã tạo điều kiện cho các lớp tấn công kênh bên vi kiến trúc Spectre và Meltdown.

History

Tomasulo đã giới thiệu lập lịch động trong IBM System/360 Model 91 vào năm 1967. Sự kết hợp với bộ đệm sắp xếp lại cho các ngoại lệ chính xác, được phát triển vào những năm 1980, đã làm cho việc thực thi ngoài thứ tự trở nên khả thi cho các bộ xử lý đa năng, và nó trở thành tiêu chuẩn trong các thiết kế hiệu năng cao từ giữa những năm 1990 trở đi.

Debates

Hiệu suất so với độ phức tạp, năng lượng và bảo mật
Thực thi ngoài thứ tự mang lại hiệu suất đơn luồng mạnh mẽ nhưng với chi phí đáng kể về độ phức tạp phần cứng và năng lượng, và sự suy đoán của nó đã được chứng minh là có thể bị khai thác; điều này thúc đẩy tranh luận về mức độ tích cực suy đoán so với việc ưu tiên các thiết kế đơn giản hơn, hiệu quả hơn hoặc an toàn hơn.

Key figures

  • Robert Tomasulo
  • Yale Patt
  • James E. Smith
  • John L. Hennessy

Related topics

Seminal works

  • tomasulo1967
  • hennessy2019

Frequently asked questions

Nếu các lệnh thực thi ngoài thứ tự, làm thế nào chương trình vẫn đúng?
Bộ xử lý chỉ sắp xếp lại việc thực thi, không phải kết quả. Việc đổi tên thanh ghi đảm bảo nó tuân thủ các phụ thuộc dữ liệu thực sự, và một bộ đệm sắp xếp lại cam kết kết quả theo thứ tự chương trình gốc, do đó trạng thái kiến trúc hiển thị chính xác là những gì việc thực thi tuần tự sẽ tạo ra.
Đổi tên thanh ghi là gì?
Đổi tên thanh ghi ánh xạ các thanh ghi kiến trúc được đặt tên trong các lệnh vào một nhóm lớn hơn các thanh ghi vật lý. Điều này loại bỏ các phụ thuộc giả (tên) phát sinh từ việc tái sử dụng tên thanh ghi, cho phép nhiều lệnh độc lập thực thi song song mà không xung đột về lưu trữ thanh ghi.

Methods for this concept

Related concepts