Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
673,68 KB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THÔNG BÁO CÁO TIỂU LUẬN MÔN : KIẾN TRÚC MÁY TÍNH Giảng viên : Nguyễn Thu Hiên Nhóm học-Nhóm con: 02-16 Thành Viên Nhóm : Nguyễn Hữu Đức - B20DCVT119 Phạm Tiến Kiên - B20DCVT207 Đỗ Thành An - B20DCVT007 Đỗ Hoàng Phong -B20DCVT287 HÀ NỘI 8/11/2022 MỤC LỤC Pipeline: Basic/Intermediate Concepts and Implementatio I Đặt vấn đề Các vấn đề đời sống II Ống dẫn pipeline khái niệm Khái niệm ví dụ III Ống dẫn pipeline khái niệm trung cấp Thiết kế đường ống Các khái niệm Khó khăn .6 Xung đột cấu trúc Xung đột liệu Xung đột điều khiển 10 IV Hyper Pipeline ( siêu ống dẫn ) 12 Khái niệm ví dụ 12 V Đặc điểm Pipeline 13 Hiệu suất pipeline 13 Hiệu suất xử lý pipelined 14 VI SUPERSCALAR 15 Các khái niệm 15 Ví dụ so sánh superscalar pineline .15 Tài liệu tham khảo 16 Pipeline: Basic/Intermediate Concepts and Implementatio I Đặt vấn đề Các vấn đề đời sống Các kiến trúc sư máy tính không ngừng nỗ lực để cải thiện hiệu suất máy tính (CPU) mà họ thiết kế: 2tuỳ chọn: Cách 1: Cải thiện phần cứng, làm cho chip chạy nhanh cách tăng tốc độ xung nhịp chúng Cách 2: Sắp xếp phần cứng cho thực nhiều thao tác(nhiều cơng việc) lúc: chế song song, cách để cóđược hiệu suất cao tốc độ xung nhịp định Vì có giới hạn tốc độ phần cứng chi phí mạch nhanh cao, tùy chọn thứ Cơ chế song song có hai dạng chung: Song song mức lệnh Song song mức lệnh Tính song song khai thác lệnh để có thêm nhiều lệnh/giây thực Có phương thức tiếp cận: Cơ chế ống lệnh (Pipelining) Các kiến trúc Superscalar Pipelining trình xếp thành phần phần cứng CPU cho hiệu suất tổng thể tăng lên Việc thực thi đồng thời nhiều lệnh diễn xử lý ống lệnh II Ống dẫn pipeline khái niệm Khái niệm ví dụ Pipeline kỹ thuật mà lệnh thực thi theo kiểu chồng lấn lên (overlap) Ví dụ minh họa hoạt động không pipeline hay pipeline: Giả sử phịng có nhiều người, người cần giặt quần áo bẩn Quá trình giặt quần áo boa gồm công đoạn: Đặt quần áo bẩn vào máy giặt để giặt Khi máy giặt hoàn thành, đưa quần áo ướt vào máy sấy Khi máy sấy hồn thành, đặt quần áo khơ lên bàn ủi Khi ủi hoàn tất, xếp quần áo vào tủ Nếu người hoàn tất tất công đoạn giặt quần áo (xong công đoạn ủi, xếp quần áo vào tủ) người khác bắt đầu (bắt đầu đặt quần áo bẩn vào máy giặt), q trình thực gọi khơng pipeline Tuy nhiên, rõ ràng người trước hoàn thành cơng đoạn 1, sang cơng đoạn máy giặt trống, lúc người đưa quần áo bẩn vào giặt Như vậy, người không cần phải chờ người trước xong công đoạn thứ bắt đầu, mà người trước đến cơng đoạn thứ người bắt đầu cơng đoạn thứ tiếp tục Quá trình thực chồng lấn gọi pipeline III Ống dẫn pipeline khái niệm trung cấp Thiết kế đường ống Trong xử lý pipelined, đường ống có hai đầu, đầu vào đầu ra. Giữa đầu này, có nhiều giai đoạn / phân đoạn cho đầu giai đoạn kết nối với đầu vào giai đoạn giai đoạn thực hoạt động cụ thể Thanh ghi giao diện sử dụng để giữ đầu trung gian hai giai đoạn. Các ghi giao diện gọi chốt đệm Tất giai đoạn đường ống với ghi giao diện điều khiển đồng hồ chung Các khái niệm Các giai đoạn thực lệnh là: Lấy lệnh (IF:Instruction Fetch) Giải mã (ID: Instruction Decode) Thi hành (EX: Execute) Truy nhập nhớ (MEM: Memory Access) Lưu trữ kết (RS: Result Storing) Kiểu xử lý thong thường, lệnh thực 25 chu kỳ xung nhịp Khi xử ly lệnh theo kỹ thuật ống dẫn thực lệnh chu kỳ xung nhịp Kỹ thuật ống dẫn làm tăng tốc độ thực lệnh Tuy nhiên kỹ thuật ống dẫn có số ràng buộc: Cần phải có mạch điện để thi hành giai đoạn lệnh tất giai đoạn lệnh thi hành lúc Trong xử lý không dùng kỹ thuật ống dẫn, ta dùng làm tốn ALU để cập nhật ghi PC, cập nhật địa tốn hạng nhớ, địa nhớ mà chương trình cần nhảy tới, làm phép tính tốn hạng phép tính xảy nhiều giai đoạn khác Phải có nhiều ghi khác dùng cho tác vụ đọc viết (trong ví dụ chu kỳ xung nhịp, ta thấy lúc có tác vụ đọc (ID, MEM) tác vụ viết (RS) Trong máy có kỹ thuật ống dẫn, có kết tác vụ trước đó, tốn hạng nguồn tác vụ khác Như có thêm khó khăn mà ta đề cập mục tới Cần phải giải mã lệnh cách đơn giản để giải mã đọc toán hạng chu kỳ xung nhịp Cần phải có làm tính ALU hữu hiệu để thi hành lệnh số học dài nhất, có số giữ, khoảng thời gian chu kỳ xung nhịp Cần phải có nhiều ghi lệnh để lưu giữ lệnh mà phải xem xét cho giai đoạn thi hành lệnh Cuối phải có nhiều ghi đếm chương trình PC để tái tục lệnh trường hợp có ngắt quãng Khó khăn Khó khăn kỹ thuật ống dẫn: Khó khăn cấu trúc: Đây khó khăn thiếu phận chức năng, ví dụ máy tính dùng kỹ thuật ống dẫn phải có nhiều ALU, nhiều PC, nhiều ghi lệnh IR Do cần thêm phận chức cần thiết hữu hiệu Khó khăn số liệu: Toán tử kết lệnh trước có thể dùng cho lệnh sau sau giai đoạn MEM nó, tốn tử dùng cho lệnh sau vào giai đoạn EX lệnh trước Để khắc phục khó khăn này, phận phần cứng dùng để đưa kết từ ngã ALU trực tiếp vô ghi ngã vào Khó khăn điều khiển: Các lệnh làm thay đổi tính thi hành lệnh cách (nghĩa PC tăng đặn sau lệnh), gây khó khăn điều khiển Các lệnh lệnh nhảy đến địa tuyệt đối chứa ghi, hay lệnh nhảy đến địa xác định cách tương đối so với địa đếm chương trình PC Các lệnh nhảy có khơng điều kiện Xung đột cấu trúc Ví dụ xung đột cấu trúc: Giả sử có nhớ đơn thay hai nhớ lệnh liệu rời rạc Nếu pipeline ví dụ hình có thêm lệnh thứ tư chu kỳ pipeline từ 600 tới 800 lệnh thứ thực truy xuất nhớ lấy liệu lệnh thứ tư thực truy xuất nhớ lấy lệnh Do khơng có nhớ lệnh liệu riêng lẻ, trường hợp có xung đột cấu trúc xảy Xung đột liệu Ví dụ cho đoạn lệnh sau: add $s0, $t0, $t1 sub $t2, $s0, $t3 Trong ví dụ trên, áp dụng pipeline bình thường cơng đoạn ID lệnh sub thực lúc với cộng đoạn EX lệnh add Trong công đoạn ID, lệnh sub cần đọc giá trị ghi $s0, giá trị ghi $s0 phải tới công đoạn WB lệnh add sẵn sàng Vì vậy, thực pipeline thơng thường, trường hợp xảy xung đột liệu Ví dụ cho đoạn lệnh sau:add $s0, $t0, $t1 sub $t2, $s0, $t3 Một cách giải trường hợp chờ thêm hai chu kỳ xung xung clock lệnh sub nạp vào Thay chờ số chu kỳ đến liệu cần sẵn sàng, kỹ thuật áp dụng để rút ngắn số chu kỳ rỗi, gọi kỹ thuật nhìn trước (forwarding hay bypassing) Như ví dụ trước, thay chờ sau hai chu kỳ rỗi nạp lệnh sub vào, ALU hồn thành tính tốn tổng cho lệnh add tổng cung cấp cho công đoạn EX lệnh sub (thông qua đệm liệu gắn thêm bên trong) để ALU tính tốn kết cho sub nhanh Kỹ thuật nhìn trước: phương pháp giải xung đột liệu đưa thêm vào đệm phụ bên trong, liệu cần truy xuất từ đệm chờ đợi đến sẵn sàng nhớ hay ghi Lưu ý, với lệnh lw lệnh có chức tương tự, thơng thường kết cuối khơng phải hồn tất cơng đoạn EX mà hồn tất cơng đoạn MEM Xét ví dụ sau : lw $s0, 20($t1) Sub $t2,$s0,$t3 Với lệnh lw, liệu mong muốn sẵn sàng sau chu kỳ pipeline (tức sau công đoạn MEM hồn tất) Vì vậy, giả sử liệu đầu công đoạn MEM lệnh lw truyền tới đầu vào công đoạn EX lệnh sub theo sau, lệnh sub phải chờ sau chu kỳ rỗi nạp vào Kỹ thuật forwarding hỗ trợ giải xung đột liệu hiệu nhiên khơng thể ngăn chặn tất trường hợp chu kỳ rỗi Tóm lại, với kỹ thuật forwarding có: ALU-ALU forwarding hay EX-EX forwarding (hình 1) MEM-ALUforwarding hay MEM-EX forwarding (hình 2) Hình Hình quả, Xung đột điều khiển Một số lệnh nhảy có điều kiện khơng điều kiện MIPS (branches, jumps) tạo xung đột điều kiển Ví dụ xét đoạn chương trình sau: add $4 ,$5,$6 Beq $1,$2,lable Lw $3 ,300($s0) Nếu áp dụng pipeline thông thường, chu kỳ thứ ba pipeline, beq thực thi cơng đoạn ID lệnh lw nạp vào Nhưng điều kiện lệnh beq xảy lệnh thực hiệp tiếp sau khơng phải lw mà lệnh gán nhãn ‘label’, lúc xảy xung đột điều khiển Các giải pháp giải xung đột điều khiển cho lệnh nhảy có điều kiện, ví dụ với beq: Cơ chờ điều kiện tính tốn lệnh nạp vào Ln lãng phí chu kỳ xung clock để chờ điều kiện xảy Cải tiến hơn, dùng phương pháp dự đốn Có hai cách dự đốn: dự đốn điều kiện xảy (tức nhánh nhảy tới lấy); dự đoán điều kiện không xảy (tức nhánh nhảy tới không lấy) Nếu dự đốn đúng, chương trình khơng lãng phí chu kỳ xung clock nào; cịn dự đốn sai, lệnh nạp lại lãng phí chu kỳ xung clock Các giải pháp giải xung đột điều khiển (tham khảo thêm mục 4.8, sách tham khảo chính) Ví dụ giải xung đột điều khiển theo kiểu dự đốn điều kiện khơng xảy ra, tức nhánh nhảy tới không lấy (Predict Not Taken): 10 Dự đoán Dự đoán sai Công nghệ pipelining tăng tốc độ thực thi lệnh Nhưng pipelining có số hạn chế: Cần phải có mạch điện để thi hành giai đoạn lệnh tất giai đoạn lệnh thi hành lúc Trong xử lý khơng dùng kỹ thuật ống dẫn , ta dùng làm toán ALU để cập nhật ghi PC, cập nhật địa toán hạng nhớ, địa nhớ mà chương trình cần nhảy tới, làm phép tính tốn hạng phép tính có tể xảy nhiều giai đoạn khác Phải có nhiều ghi khác dùng cho tác vụ đọc viết (trong ví dụ chu kì xung nhịp, ta thấy lúc có tác vụ đọc(ID,MEM) tác vụ viết (RS) Trong máy có kỹ thuật ống dẫn, có kết tác vụ trước đó, tốn hạng nguồn tác vụ khác.Như có thêm khó khăn mà ta đề cập tới Cần phải giải mã lệnh đơn giản để giải mã đọc tốn hạng chi kì xung nhịp Cần phải có làm tính ALU hữu hiệu để thi hành lệnh số học dài 11 , có số giữ , khoảng thời gian chu kỳ xung nhịp Cần phải có nhiều ghi lưu trữ lệnh mà phải xem xét cho giai đoạn thi hành lệnh Cuối phải có nhiều ghi đếm chương trình PC để tái tục lệnh trường hợp có ngắt quãng IV Hyper Pipeline ( siêu ống dẫn ) Khái niệm ví dụ Máy tính có kỹ thuật siêu ống dẫn bậc n: Chia giai đoạn kỹ thuật ống dẫn đơn giản, giai đoạn thực khoản thời gian Tc , thành n giai đoạn thực khoản thời gian Tc/n Độ hữu hiệu kỹ thuật tương đương với việc thi hành n lệnh chu kỳ Tc VD siêu ống dẫn bậc 2: Trong khoảng thời gian Tc , máy có siêu ống dẫn làm lệnh thay lệnh máy có kỹ thuật ống dẫn đơn giản Giải thích: - Ta thấy chu kỳ Tc, máy dùng kỹ thuật siêu ống dẫn làm lệnh thay làm1 lệnh máy dùng kỹ thuật ống dẫn bình thường - Trong máy tính siêu ống dẫn, tốc độ thực lệnh tương đương với việc thực lệnh khoảng thời gian Tc/n Các bất lợi siêu ống dẫn thời gian thực 12 V giai đoạn ngắn Tc/n việc trì hỗn thi hành lệnh nhảy lớn - Nếu lệnh thứ i lệnh nhảy tương đối lệnh giải mã giai đoạn ID, địa nhảy đến tính vào giai đoạn EX, lệnh phải nhảy tới lệnh thứ i+4, có trì trệ lệnh thay lệnh kỹ thuật ống dẫn bình thường Đặc điểm Pipeline Pipeline kỹ thuật song song mức lệnh(ILP) Một pipeline trọn vẹn ln nhận lệnh chu kỳ đồng hồ Một pipeline khơng trọn vẹn có nhiều giai đoạn trễ trình xử lý Số lượng giai đoạn pipeline phụ thuộc vào thiết kế CPU: Giai đoạn: Pipeline đơn giản Giai đoạn (Tím nạp lệnh): Trong giai đoạn này, CPU đọc lệnh từ địa nhớ có giá trị diện đếm chương trình Giai đoạn (Giải mã lệnh): Trong giai đoạn này, lệnh giải mã tệp ghi truy cập để lấy giá trị từ ghi sử dụng lệnh Giai đoạn 3(Thực thi lệnh): Trong giai đoạn này, hoạt động ALU thực Giai đoạn (Truy cập nhớ): Trong giai đoạn này, toán hạng nhớ đọc ghi từ / vào nhớ có lệnh Giai đoạn (Ghi lại): Trong giai đoạn này, giá trị tính tốn / tìm nạp ghi trở lại ghi có hướng dẫn 10 –15 giai đoạn: Pen III, M, Core Duo 20 giai đoạn: Pen IV (except Prescott) 31 giai đoạn: Pen IV Prescott Hiệu suất pipeline Pipelining làm tăng thông lượng, không làm giảm thời gian thực lệnh riêng lẻ Mặt khác, tăng nhẹ thời gian thực (một lệnh) chi phí kiểm soát đường ống Độ sâu thực tế đường ống bị giới hạn thời gian thực ngày tăng Pipeline overhead Giai đoạn pipeline không cân Rẽ nhánh: chu kỳ; lưu trữ: chu kỳ khác: chu kỳ Pippeline giai đoạn cao 13 Độ trễ ghi Pipeline Clock skew: Cùng tín hiệu đồng hồ có nguồn gốc đến thành phần khác thời điểm khác Hiệu suất xử lý pipelined Hãy xem xét đường ống phân đoạn 'k' với thời gian chu kỳ đồng hồ 'Tp'. Để có 'n' nhiệm vụ hồn thành xử lý pipelined. Bây giờ, lệnh chu kỳ 'k' để khỏi đường ống lệnh 'n - 1' khác thực '1' chu kỳ, tức tổng số 'n - 1' chu kỳ. Vì vậy, thời gian cần thiết để thực lệnh 'n' xử lý pipelined: Trong trường hợp tương tự, xử lý không pipelined, thời gian thực lệnh 'n' là: Vì vậy, việc tăng tốc độ (S) xử lý pipelined so với xử lý không pipelined, tác vụ 'n' thực thi xử lý là: Vì hiệu suất xử lý tỷ lệ nghịch với thời gian thực thi, chúng tơi có: Khi số nhiệm vụ 'n' lớn k đáng kể, nghĩa n >> k 'k' số giai đoạn đường ống. Ngoài ra, Hiệu quả = Tăng tốc cho trước / Tăng tốc tối đa = S / S tối đa Chúng ta biết Smax = k Vậy, Hiệu quả = S / 14 k Thông lượng = Số lệnh / Tổng thời gian để hồn thành lệnh Vì vậy, Thơng lượng = n / (k + n - 1) VI SUPERSCALAR Các khái niệm Siêu vơ hướng: Máy tính siêu vơ hướng thực đồng thời nhiều lệnh lệnh chu kỳ xung nhịp Trong máy tính siêu vơ hướng phần cứng phải quản lý việc đọc thi hành đồng thời nhiều lệnh => phải có khả quản lý quan hệ số liệu với Cần phải chọn lệnh có khả thi hành lúc Năm 1992 người ta thấy xuất xử lý có nhiều thực tác vụ độc lập với (nhiều ALU, tính tốn số lẻ, nạp liệu, lưu liệu, nhảy), thực song song nhiều lệnh (lệnh tính số nguyên, số lẻ, lệnh nhớ, lệnh nhảy ) Số lệnh thi hành song song nhiều phần cứng thực việc phức tạp Những xử lý đưa thị trường dùng kỹ thuật xử lý Intel i860 IBM RS/6000 Các xử lý có khả thực song song nhiều tác vụ số nguyên số lẻ Ví dụ so sánh superscalar pineline So sánh superscalar pipeline: chu kì xung nhịp pipeline lệnh superscalar lệnh Trong kiến trúc siêu vô hướng, việc xử lý lệnh cắt nhỏ nhiều lệnh xử lý đồng thời miễn không gây tranh chấp liệu Hai lệnh có tranh chấp liệu lệnh có sử dụng kết lệnh tạo Trong trường hợp bắt buộc phải tơn trọng thứ tự Sau xử lý liên kết kết xử lý thành phần 15 Điều phức tạp xử lý dãy lệnh liên quan tới việc “gọi nhầm” dãy lệnh từ nhớ lên cache theo thứ tự bình thường tượng rẽ nhánh Tài liệu tham khảo: [1] https://passlab.github.io/CSCE513/notes/lecture05-06_Pipeline.pdf [2] Slide giảng_KTMT_SV Học viện Công Nghệ Bưu Chính Viễn Thơng [3] Ts.Phạm Cơng Thắng, Kỹ thuật ống dẫn kiến trúc nâng cao BẢNG PHÂN CÔNG CÔNG VIỆC Nguyễn Hữu Đức – B20DCVT119 Phạm Tiến Kiên – B20DCVT207 Đỗ Hoàng Phong – B20DCVT287 Đỗ Thành An – B20DCVT007 Phần II (ví dụ), III (khái niệm, khó khăn) Phần II (khái niệm), III ( xung đột cấu trúc, liệu, điều khiển) Phần I, IV,V(khái niệm), VI Phần III (thiết kế đường ống ), V(hiệu suất) Trong có bạn: Đỗ Hồng Phong (nhóm trưởng), Đỗ Thành An bạn hoạt động nổ nhóm 16 ... 16 Pipeline: Basic/Intermediate Concepts and Implementatio I Đặt vấn đề Các vấn đề đời sống Các kiến trúc sư máy tính khơng ngừng nỗ lực để cải thiện hiệu suất máy tính (CPU) mà...MỤC LỤC Pipeline: Basic/Intermediate Concepts and Implementatio I Đặt vấn đề Các vấn đề đời sống II Ống dẫn pipeline khái niệm Khái niệm... 10 IV Hyper Pipeline ( siêu ống dẫn ) 12 Khái niệm ví dụ 12 V Đặc điểm Pipeline 13 Hiệu suất pipeline 13 Hiệu suất xử lý pipelined 14