Bài giảng Kiến trúc máy tính - Chương 3a: CPU pipeline cung cấp cho người học các kiến thức: Giới thiệu về CPU pipeline, các vấn đề của pipeline, giải quyết vấn đề xung đột tài nguyên, giải quyết vấn đề xung đột dữ liệu,.... Mời các bạn cùng tham khảo.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE Giảng viên: TS Hoàng Xuân Dậu Điện thoại/E-mail: dau@ekabiz.vn Bộ mơn: Khoa học máy tính - Khoa CNTT1 Học kỳ/Năm biên soạn: Học kỳ năm học 2009-2010 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE NỘI DUNG www.ptit.edu.vn Giới thiệu CPU pipeline Các vấn đề pipeline Giải vấn đề xung đột tài nguyên Giải vấn đề xung đột liệu Quản lý rẽ nhánh pipeline Giới thiệu pipeline số CPU Siêu pipeline Câu hỏi ơn tập GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.1 Giới thiệu CPU pipeline – Dây chuyền lắp ráp ơtơ • Mỗi dây chuyền lắp ráp chia thành nhiều cơng đoạn; • Nhiều ôtô lắp ráp dây chuyền; • Tại cơng đoạn, phần việc hồn thành; • Sau nhịp thời gian ơtơ hồn thiện cuối dây chuyền ơtơ bắt đầu hình thành đầu dây chuyền www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.1 Giới thiệu CPU pipeline – Ngun lý Khơng pipeline Có pipeline www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.1 Giới thiệu CPU pipeline – Nguyên lý Việc thực lệnh chia nhỏ thành giai đoạn giai đoạn hệ thống load-store: Instruction Fetch - IF: Đọc lệnh từ nhớ (hoặc cache) Instruction Decode - ID: giải mã lệnh đọc toán hạng Execute - EX: thực lệnh; lệnh truy nhập nhớ: tính tốn địa nhớ Memory Access - MEM: Đọc/ghi nhớ; no-op không truy nhập nhớ Write Back - WB: Ghi kết vào ghi www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.1 Giới thiệu CPU pipeline – Nguyên lý www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.1 Giới thiệu CPU pipeline – Đặc điểm Là dạng xử lý song song mức lệnh (instruction level parallelism (ILP)); Một pipeline đầy đủ (fully pipelined) ln tiếp nhận lệnh chu kỳ đồng hồ; Ngược lại, pipeline không đầy đủ có số chu kỳ trễ tiến trình thực hiện; Số lượng giai đoạn (stages) pipeline phụ thuộc vào thiết kế vi xử lý: 2,3, giai đoạn (pipeline đơn giản) 14 giai đoạn (PII, PIII) 20-31 giai đoạn (P4) 12-15 giai đoạn (Core) www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.1 Giới thiệu CPU pipeline – P6 (PIII, M) www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.1 Giới thiệu CPU pipeline – Số lượng stages Thời gian thực giai đoạn Các stages nên có thời gian t/h Các stages chậm cần tách nhỏ Các vấn đề liên quan đến tài nguyên Điều xảy hai giai đoạn đọc lệnh đọc toán hạng truy nhập nhớ? Điều xảy hai giai đoạn đọc lệnh thực lệnh (tính địa nhớ) truy nhập PC? Pipeline dài tốt? Về nguyên tắc: nhiều stages, hiệu cao Pipeline dài bị trống rỗng lý tốn nhiều thời gian để điền đầy www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.2 Các vấn đề pipeline – Logic gate hazard Logic Gate Hazard Giá trị mong đợi (theo thiết kế) (false) Tuy nhiên, số thời điểm giá trị (true) Hazard (khơng theo thiết kế) www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 10 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.5 Quản lý rẽ nhánh – Rẽ nhánh có điều kiện Việc quản lý lệnh rẽ nhánh có điều kiện (conditional branches) phức tạp do: Có lệnh rẽ nhánh đích phải lựa chọn; Khơng thể xác định xác lệnh đích rẽ nhánh lệnh rẽ nhánh thực Branch Target Buffer hạn chế trễ ta phải chờ biết đích lệnh rẽ nhánh Giải pháp: Delayed branching: làm chậm rẽ nhánh Branch prediction: dự đốn rẽ nhánh www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 26 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.5.1 Rẽ nhánh có điều kiện - Delayed branching Ý tưởng chính: lệnh rẽ nhánh khơng gây rẽ nhánh tức mà làm “trễ” số chu kỳ, phụ thuộc vào chiều dài pipeline Đặc điểm Delayed branching: Làm việc tốt VXL RISC – lệnh có thời gian thực ngang nhau; Pipeline ngắn (thường stages) Lệnh sau lệnh rẽ nhánh thực hiện, không phụ thuộc vào kết lệnh rẽ nhánh Cách thực hiện: Sử dụng compiler để chèn thêm lệnh NO-OP vào sau lệnh rẽ nhánh, hoặc; Chuyển lệnh độc lập từ trước sau lệnh rẽ nhánh www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 27 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.5.1 Rẽ nhánh có điều kiện - Delayed branching Cho dãy lệnh: ADD R2, R3, R4 CMP R1,0 JNE somewhere Thêm NO-OP sau lệnh rẽ nhánh ADD R2, R3, R4 CMP R1,0 JNE somewhere NO-OP Chuyển lệnh độc lập phía trước sau lệnh rẽ nhánh: CMP R1,0 JNE somewhere ADD R2, R3, R4 www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 28 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.5.1 Rẽ nhánh có điều kiện - Delayed branching www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 29 BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.5.1 Rẽ nhánh có điều kiện - Delayed branching Dễ thực thơng qua tối ưu hố trình biên dịch, khơng đòi hỏi phần cứng đặc biệt; Giảm hiệu pipeline dài chèn thêm NO-OP Ví dụ pipeline có stages -> địi hỏi lệnh NO-OP Thay NO-OP lệnh độc lập giảm ~70% NO-OP Tăng độ phức tạp mã chương trình Địi hỏi người lập trình người viết trình biên dịch phải có hiểu biết sâu kiến trúc pipeline VXL -> hạn chế lớn Giảm tính khả chuyển mã chương trình, kiến trúc VXL thay đổi -> viết lại dịch lại www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 30 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.5.1 Rẽ nhánh có điều kiện - Branch prediction Ý tưởng: dự đốn lệnh đích lệnh rẽ nhánh có điều kiện Đoán đúng: giúp tăng hiệu Đoán sai: đẩy lệnh nạp phía sau lệnh rẽ nhánh, nạp lệnh đích rẽ nhánh Trường hợp xấu nhất: 50% đoán 50% đoán sai Kết khơng xấu khơng dự đốn www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 31 BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.5.1 Rẽ nhánh có điều kiện - Branch prediction Các sở để dự đoán rẽ nhánh: Các lệnh nhảy ngược: • Thường phần vòng lặp; • Các vịng lặp thường thực nhiều lần • Lần lặp cuối sai Các lệnh nhảy xi khó dự đốn hơn: • Có thể lệnh kết thúc vịng lặp • Có thể lệnh nhảy dựa điều kiện www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 32 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.6 AMD K6-2 pipeline www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 33 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.6 Intel P6 (PIII, M) pipeline www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 34 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.6 Intel P4 pipeline www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 35 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.6 Intel Core Duo pipeline www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 36 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.6 Intel Atom 16-stage pipeline www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 37 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a Siêu pipeline Siêu pipeline (Superpipelining) kỹ thuật cho phép: Tăng độ sâu ống lệnh Tăng tốc độ đồng hồ Giảm thời gian trễ cho giai đoạn thực lệnh VD: giai đoạn thực lệnh ALU kéo dài chia thành số giai đoạn nhỏ giảm thời gian chờ cho giai đoạn ngắn Pentium siêu ống với 20 giai đoạn: www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 38 BÀI GIẢNG MÔN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a Siêu pipeline Pentium siêu ống với 20 giai đoạn www.ptit.edu.vn GIẢNG VIÊN: TS HỒNG XN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 39 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a.8 Câu hỏi ơn tập CPU pipeline đặc điểm? Các vấn đề pipeline Vấn đề xung đột liệu pipeline giải pháp khắc phục Vấn đề rẽ nhánh pipeline giải pháp khắc phục www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 40 ... MÔN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a. 6 Intel Atom 16-stage pipeline www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 37 BÀI GIẢNG MƠN KIẾN... chèn thêm lệnh NO-OP www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 17 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a. 4 Xung đột liệu... www.ptit.edu.vn GIẢNG VIÊN: TS HOÀNG XUÂN DẬU BỘ MƠN: KHOA HỌC MÁY TÍNH - KHOA CNTT1 Trang 18 BÀI GIẢNG MƠN KIẾN TRÚC MÁY TÍNH CHƯƠNG 3a – CPU PIPELINE 3a. 5 Quản lý rẽ nhánh pipeline Tỷ lệ lệnh rẽ nhánh chương