Các hướng dẫn JUMP được lấy lúc 3. Lúc 4, hướng dẫn JUMP được
thực hiện tại cùng một thời điểm mà hướng dẫn 103 (ADD hướng dẫn) được lấy.
Bởi vì một JUMP xảy ra, trong đó cập nhật chương trình truy cập, các đường ống dẫn phải được
xóa giảng dạy 103; lúc 5, hướng 105, đó là mục tiêu của JUMP,
được tải. Hình 13.7b cho thấy cùng một đường dẫn xử lý bởi một tổ chức RISC điển hình.
Thời gian là như nhau. Tuy nhiên, do sự chèn của lệnh NOOP,
chúng ta không cần mạch đặc biệt để xóa các đường ống; các NOOP chỉ đơn giản là
thực hiện không có hiệu lực. Hình 13.7c cho thấy việc sử dụng các chi nhánh bị trì hoãn. Các
hướng dẫn JUMP được lấy vào thời điểm 2, trước lệnh ADD, mà được lấy
lúc 3. Lưu ý, tuy nhiên, các hướng dẫn Thanh được nạp trước khi thực hiện
của lệnh JUMP có một cơ hội để thay đổi chương trình truy cập. Do đó, trong
thời gian 4, hướng dẫn Thanh được thực hiện tại cùng một thời điểm đó hướng dẫn 105 là
cường điệu. Như vậy, ngữ nghĩa ban đầu của chương trình được giữ lại nhưng một đồng hồ ít
chu kỳ là cần thiết để thực hiện.
Trao đổi này hướng dẫn sẽ làm việc thành công cho vô điều kiện
các chi nhánh, các cuộc gọi, và trả về. Đối với chi nhánh có điều kiện, thủ tục này không thể được
áp dụng một cách mù quáng. Nếu các điều kiện được kiểm tra cho các chi nhánh có thể được thay đổi bởi các
lệnh ngay trước, sau đó trình biên dịch phải kiềm chế không làm các
trao đổi và thay vào đó chèn một NOOP. Nếu không, các trình biên dịch có thể tìm cách chèn một
hướng dẫn hữu ích sau khi các chi nhánh. Các kinh nghiệm với cả Berkeley RISC
801 hệ thống và IBM là phần lớn các lệnh rẽ nhánh có điều kiện có thể được
tối ưu hóa trong thời trang này ([PATT82a], [RADI83]).
đang được dịch, vui lòng đợi..
