You are on page 1of 2

HLLs có thể được hỗ trợ tốt nhất bằng cách tối ưu hóa hiệu suất của các tính

năng
tiêu tốn nhiều thời gian nhất của các chương trình HLL điển hình.
Đầu tiên, sử dụng số lượng lớn thanh ghi hoặc sử dụng trình biên dịch để tối ưu hóa
việc sử dụng thanh ghi. Điều này nhằm tối ưu hóa việc tham chiếu toán hạng.

Thứ hai, cần phải chú ý cẩn thận đến việc thiết kế các đường dẫn hướng dẫn. Do tỷ lệ
lệnh gọi thủ tục và nhánh có điều kiện cao nên một đường dẫn lệnh đơn giản sẽ
không hiệu quả.

Các hướng dẫn phải có chi phí có thể dự đoán được (được đo bằng thời gian thực
hiện và kích thước mã và ngày càng tăng theo mức tiêu hao năng lượng) và nhất
quán với việc triển khai hiệu suất cao.

Có hai cách tiếp cận cơ bản, một dựa trên phần mềm và một dựa trên phần cứng.

Cách tiếp cận phần mềm là dựa vào trình biên dịch để tối đa hóa việc sử dụng thanh
ghi. Trình biên dịch sẽ cố gắng gán các thanh ghi cho các biến sẽ được sử dụng nhiều
nhất trong một khoảng thời gian nhất định. Cách tiếp cận này yêu cầu sử dụng các
thuật toán phân tích chương trình phức tạp.

Phương pháp phần cứng chỉ đơn giản là sử dụng nhiều thanh ghi hơn để có thể giữ
nhiều biến hơn trong các thanh ghi trong thời gian dài hơn. Trong phần này, chúng ta
sẽ thảo luận về phương pháp phần cứng.

Cửa sổ được chia thành ba khu vực có kích thước cố định. Các thanh ghi tham số giữ
các tham số được truyền xuống từ thủ tục được gọi là thủ tục hiện tại và giữ các kết
quả được truyền ngược lại. Các thanh ghi cục bộ được sử dụng cho các biến cục bộ,
do trình biên dịch gán. Các thanh ghi tạm thời được sử dụng để trao đổi các tham số
và kết quả với cấp độ thấp hơn tiếp theo (thủ tục được gọi theo thủ tục hiện tại). Các
thanh ghi tạm thời ở một cấp về mặt vật lý giống như các thanh ghi tham số ở cấp
thấp hơn tiếp theo. Sự chồng chéo này cho phép các tham số được truyền mà không
cần chuyển động thực sự của dữ liệu. Ngoại trừ sự chồng chéo, các thanh ghi ở hai
cấp độ khác nhau đều khác biệt về mặt vật lý. Nghĩa là, các thanh ghi tham số và cục
bộ ở cấp J tách rời khỏi các thanh ghi cục bộ và tạm thời ở cấp J+1. Để xử lý mọi kiểu
gọi và trả về có thể có, số lượng cửa sổ thanh ghi sẽ phải không bị giới hạn. Thay vào
đó, các cửa sổ đăng ký có thể được sử dụng để lưu giữ một số hoạt động kích hoạt
thủ tục gần đây nhất.

Tổ chức hình tròn được thể hiện trong Hình 15.2, mô tả một vùng đệm hình tròn
gồm sáu cửa sổ. Bộ đệm được lấp đầy đến độ sâu 4 với quy trình D được kích hoạt.
Con trỏ cửa sổ hiện tại (CWP) trỏ tới cửa sổ của thủ tục hiện đang hoạt động. Tham
chiếu thanh ghi theo lệnh máy được bù bằng con trỏ này để xác định thanh ghi vật lý
thực tế. Con trỏ cửa sổ đã lưu (SWP) xác định cửa sổ được lưu gần đây nhất trong bộ
nhớ. Nếu thủ tục D bây giờ gọi thủ tục E, các đối số cho E được đặt trong các thanh
ghi tạm thời của D và CWP được nâng cao bởi một cửa sổ. Nếu thủ tục E thực hiện
cuộc gọi đến thủ tục F, cuộc gọi không thể thực hiện được với trạng thái hiện tại của
bộ đệm. Điều này là do cửa sổ của F chồng lên cửa sổ của A. Nếu F bắt đầu tải các
thanh ghi tạm thời của nó để chuẩn bị cho cuộc gọi, nó sẽ ghi đè lên các thanh ghi
tham số của A (A.in). Do đó, khi CWP tăng (modulo 6) để nó bằng SWP, thì xảy ra
ngắt và cửa sổ của A được lưu. Chỉ cần lưu hai phần đầu tiên (A.in và A.loc). Sau đó,
SWP được tăng

You might also like