Professional Documents
Culture Documents
Quan điểm lịch sử
Quan điểm lịch sử
Công nghệ biên dịch và phần cứng hỗ trợ lập lịch trình
Phân tích sự phụ thuộc và song song mức vòng lặp được phát triển chủ yếu bởi
D. Kuck và các đồng nghiệp của ông tại Đại học Illinois vào những năm 1970. Họ
cũng đặt ra thuật ngữ thường được sử dụng làchống phụ thuộcvàphụ thuộc đầu ravà
phát triển một số bài kiểm tra phụ thuộc tiêu chuẩn, bao gồm các bài kiểm tra GCD và
Banerjee. Thử nghiệm thứ hai được đặt theo tên của Uptal Banerjee và có nhiều
hương vị khác nhau. Công việc gần đây về phân tích sự phụ thuộc đã tập trung vào
việc sử dụng nhiều phép thử chính xác kết thúc bằng một thuật toán gọi là Fourier-
Motzkin, là một thuật toán lập trình tuyến tính. D. Maydan và W. Pugh đều chỉ ra rằng
trình tự của các thử nghiệm chính xác là một giải pháp thực tế.
Trong lĩnh vực khám phá và lập lịch ILP, phần lớn công việc ban đầu được kết
nối với sự phát triển của các bộ xử lý VLIW, được mô tả trước đó. Lam [1988] đã
phát triển các thuật toán cho phần mềm và đánh giá việc sử dụng chúng trên Warp,
một bộ xử lý văn bản hướng dẫn rộng được thiết kế cho các ứng dụng có mục đích đặc
biệt. Weiss và JE Smith [1987] so sánh phần mềm pipelining với việc giải nén vòng
lặp như là các kỹ thuật lập lịch trình mã trên một bộ xử lý pipelined. Rau [1994] đã
phát triển lập lịch modulo để giải quyết các vấn đề của vòng lặp đường ống phần mềm
và đồng thời xử lý việc cấp phát thanh ghi.
Hỗ trợ lập lịch mã đầu cơ đã được khám phá trong nhiều ngữ cảnh khác nhau,
bao gồm một số bộ xử lý cung cấp một chế độ trong đó các ngoại lệ bị bỏ qua, cho
phép lập lịch tải tích cực hơn (ví dụ: bộ xử lý MIPS TFP, xem [Hsu 1994].). Một số
nhóm đã khám phá các ý tưởng để hỗ trợ phần cứng tích cực hơn cho việc lập lịch mã
đầu cơ. Ví dụ, Smith, Horowitz và Lam [1992] đã tạo ra một khái niệm gọi là tăng
cường chứa một cơ sở phần cứng để hỗ trợ đầu cơ nhưng cung cấp một cơ chế kiểm
tra và phục hồi, tương tự như trong IA-64 và Crusoe. Ý tưởng lập lịch trình cho lính
canh, cũng tương tự như phương pháp suy đoán và kiểm tra được sử dụng trong cả
kiến trúc Crusoe và IA-64, được phát triển bởi các nhà nghiên cứu tại Phòng thí
nghiệm U. of Illinois và HP (xem [Mahlke et al. 1992] ).
Vào đầu những năm 1990, Wen-Mei Hwu và các đồng nghiệp của ông tại Đại
học Illinois đã phát triển một khung trình biên dịch, được gọi là IMPACT ( [Chang, et
al. 1991]), để khám phá sự tương tác giữa kiến trúc nhiều vấn đề và công nghệ trình
biên dịch. Dự án này đã dẫn đến một số ý tưởng quan trọng, bao gồm: lập lịch siêu
khối (xem [Hwu và cộng sự 1993]), sử dụng rộng rãi cấu hình để hướng dẫn nhiều
cách tối ưu hóa khác nhau (ví dụ: nội tuyến thủ tục) và sử dụng một bộ đệm đặc biệt
(tương tự vào ALAT hoặc bộ đệm lưu trữ được chương trình kiểm soát) để phát hiện
xung đột bộ nhớ hỗ trợ biên dịch (xem [Gallagher, et. 1994]). Họ cũng khám phá sự
cân bằng hiệu suất giữa hỗ trợ một phần và hỗ trợ toàn bộ cho dự đoán trong [Mahlke,
et. al. 1995].
Các bộ xử lý RISC ban đầu đều có các nhánh bị trễ, một sơ đồ lấy cảm hứng từ
lập trình vi mô và một số nghiên cứu về dự đoán nhánh theo thời gian biên dịch được
lấy cảm hứng từ các cơ chế nhánh bị trễ. McFarling và Hennessy [1986] đã thực hiện
một so sánh định lượng của một loạt các sơ đồ dự đoán nhánh thời gian biên dịch và
thời gian chạy. Fisher và Freudenberger [1992] đã đánh giá một loạt các sơ đồ dự
đoán nhánh thời gian biên dịch bằng cách sử dụng thước đo khoảng cách giữa các lần
xác định sai.