Chương 2 khối xử lý trung tâm

CPU là thông số đầu tiên mà bạn quan tâm khi mua bộ chiếc laptop hay một chiếc PC mới.Vậy bạn đã bao giờ tự hỏi, CPU là gì chưa? Chắc hẳn không có mấy ai biết được định nghĩa của CPU là gì. Vì vậy, hãy cùng Siêu thị Điện Máy – Nội Thất Chợ Lớn tìm hiểu chi tiết về bộ xử lý trung tâm CPU trong bài viết dưới đây nhé!

Bộ xử lý trung tâm CPU là gì?

Bộ xử lý trung tâm CPU

Bộ xử lý trung tâm CPU (viết tắt của chữ Central Processing Unit) được xem là não bộ của máy tính với nhiệm vụ chính là xử lý các chương trình vi tính, dữ kiện đầu vào của máy tính và xử lý tất cả các lệnh mà CPU nhận được từ phần cứng và phần mềm chạy trên laptop hay máy tính. 

Cấu tạo của bộ xử lý trung tâm CPU

Bộ xử lý trung tâm CPU là gì?

Cấu tạo của bộ xử lý trung tâm CPU

Bộ xử lý trung tâm CPU gồm có 3 bộ phận chính: 

- Bộ điều khiển (CU – Control Unit): Có nhiệm vụ xử lý và thông dịch các lệnh của chương trình và điều khiển hoạt động xử lý, được điều tiết chính xác bởi xung nhịp đồng hồ hệ thống. 

- Khối tính toán ALU (Arithmetic Logic Unit): Có chức năng thực hiện các lệnh của đơn vị điều khiển và xử lý tín hiệu. 

- Các thanh ghi (Registers): ó nhiệm vụ ghi mã lệnh trước khi xử lý và ghi kết quả sau khi xử lý.

Các loại CPU 

CPU hiện nay có nhiều kiến trúc khác nhau, nhưng phổ biến và chuẩn mực vẫn là 32-bit và 64-bit. Có 2 loại CPU phổ biến đó chính là AMD và Intel. 

Bộ xử lý trung tâm CPU là gì?

Có 2 loại CPU phổ biến đó chính là AMD và Intel

Dòng sản phẩm AMD Opteron, Intel Itanium và Xeon là các CPU được sử dụng trong các máy chủ và máy tính trạm cao cấp. CPU ARM được tích hợp một số các thiết bị di động như điện thoại thông minh và máy tính bảng sử dụng 

Tốc độ xử lý CPU

Tốc độ xử lý CPU là tần số tính toán và làm việc của CPU được đo bằng đơn vị GHz hoăc MHz. Ví dụ như dòng chíp Intel Core i3 thì xung nhịp cao hơn, tốc độ xử lý nhanh hơn và khả năng làm việc cũng tốt hơn. Nhưng nếu giữa 2 dòng chíp khác nhau đó là Core i3 hai nhân xung nhịp 2.2 Ghz và Intl Pentium Dual Core 2.3 Ghz thì không thể so sanh ngay được bởi vì tốc độ xử lý của laptop hay PC phụ thuộc rất nhiều vào bộ nhớ đệm Cache, RAM, chíp độ họa, ổ cứng. 

Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Kiến trúc máy tính và hệ điều hành - Chương 2: Khối xử lý trung tâm - Nguyễn Thị Ngọc Vinh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên

ột truy cập thanh ghi  Xung đột/ tranh chấp dữ liệu (data hazard) . Hầu hết là RAW hay Read After Write Hazard  Các lệnh rẽ nhánh (Branch Instruction) . Không điều kiện . Có điều kiện . Gọi thực hiện và trở về từ chương trình con GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 65 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 XUNG ĐỘT TÀI NGUYÊN  Tài nguyên không đủ  Ví dụ: nếu bộ nhớ chỉ hỗ trợ một thao tác đọc/ ghi tại một thời điểm, pipeline yêu cầu 2 truy cập bộ nhớ 1 lúc (đọc lệnh tại giai đoạn IF và đọc dữ liệu tại ID) -> nảy sinh xung đột GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 66 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 33 6/25/2014 XUNG ĐỘT TÀI NGUYÊN  Giải pháp: . Nâng cao khả năng tài nguyên . Memory/ cache: hỗ trợ nhiều thao tác đọc/ ghi cùng lúc . Chia cache thành cache lệnh và cache dữ liệu để cải thiện truy nhập GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 67 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 XUNG ĐỘT DỮ LIỆU  Xét 2 lệnh sau: ADD R1, R1, R3; R1  R1 + R3 SUB R4, R1, R2; R4  R1 -R2  SUB sử dụng kết quả lệnh ADD: có phụ thuộc dữ liệu giữa 2 lệnh này  SUB đọc R1 tại giai đoạn 2 (ID); trong khi đó ADD lưu kết quả tại giai đoạn 5 (WB) . SUB đọc giá trị cũ của R1 trước khi ADD lưu trữ giá trị mới vào R1  Dữ liệu chưa sẵn sàng cho các lệnh phụ thuộc tiếp theo GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 68 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 34 6/25/2014 XUNG ĐỘT DỮ LIỆU ADD R1, R1, R3; R1  R1 + R3 SUB R4, R1, R2; R4  R1 + R2 GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 69 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 HƯỚNG KHẮC PHỤC XUNG ĐỘT DỮ LIỆU  Nhận biết nó xảy ra  Ngưng pipeline (stall): phải làm trễ hoặc ngưng pipeline bằng cách sử dụng một vài phương pháp tới khi có dữ liệu chính xác  Sử dụng complier để nhận biết RAW và: . Chèn các lệnh NO-OP vào giữa các lệnh có RAW . Thay đổi trình tự các lệnh trong chương trình và chèn các lệnh độc lập dữ liệu vào vị trí giữa 2 lệnh có RAW  Sử dụng phần cứng để xác định RAW (có trong các CPUs hiện đại) và dự đoán trước giá trị dữ liệu phụ thuộc GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 70 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 35 6/25/2014 HƯỚNG KHẮC PHỤC XUNG ĐỘT DỮ LIỆU  Làm trễ quá trình thực hiện lệnh SUB bằng cách chèn 3 NO- OP GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 71 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 HƯỚNG KHẮC PHỤC XUNG ĐỘT DỮ LIỆU  Chèn 3 lệnh độc lập dữ liệu vào giữa ADD và SUB GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 72 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 36 6/25/2014 QUẢN LÝ CÁC LỆNH RẼ NHÁNH TRONG PIPELINE  Tỷ lệ các lệnh rẽ nhánh chiếm khoảng 10 - 30%. Các lệnh rẽ nhánh có thể gây ra: . Gián đoạn trong quá trình chạy bình thường của chương trình . Làm cho Pipeline rỗng nếu không có biện pháp ngăn chặn hiệu quả  Với các CPU mà pipeline dài (P4 với 31 giai đoạn) và nhiều pipeline chạy song song, vấn đề rẽ nhánh càng trở nên phức tạp hơn vì: . Phải đẩy mọi lệnh đang thực hiện ra ngoài pipeline khi gặp lệnh rẽ nhánh . Tải mới các lệnh từ địa chỉ rẽ nhánh vào pipeline. Tiêu tốn nhiều thời gian để điền đầy pipeline GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 73 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 QUẢN LÝ CÁC LỆNH RẼ NHÁNH  Khi 1 lệnh rẽ nhánh được thực hiện, các lệnh tiếp theo bị đẩy ra khỏi pipeline và các lệnh mới được tải GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 74 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 37 6/25/2014 GIẢI PHÁP QUẢN LÝ CÁC LỆNH RẼ NHÁNH  Đích rẽ nhánh (branch target)  Rẽ nhánh có điều kiện (conditional branches) . Làm chậm rẽ nhánh (delayed branching) . Dự báo rẽ nhánh (branch prediction) GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 75 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 ĐÍCH RẼ NHÁNH  Khi một lệnh rẽ nhánh được thực hiện, lệnh tiếp theo được lấy là lệnh ở địa chỉ đích rẽ nhánh (target) chứ không phải lệnh tại vị trí tiếp theo lệnh nhảy JUMP ADD R1, R2 Address: SUB R3, R4 GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 76 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 38 6/25/2014 ĐÍCH RẼ NHÁNH  Các lênh rẽ nhánh được xác định tại giai đoạn ID, vậy có thể biết trước chúng bằng cách giải mã trước  Sử dụng đệm đích rẽ nhánh (BTB: branch target buffer) để lưu vết của các lệnh rẽ nhánh đã được thực thi: . Địa chỉ đích của các lệnh rẽ nhánh được thực hiện . Lệnh đích của các lệnh rẽ nhánh được thực hiện  Nếu các lệnh rẽ nhánh được sử dụng lại (trong vòng lặp): . Các địa chỉ đích của chúng lưu trong BTB có thể được dùng mà không cần tính lại . Các lệnh đích có thể dùng trực tiếp không cần load lại từ bộ nhớ  Điều này có thể vì địa chỉ và lệnh đích thường không thay đổi GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 77 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 ĐÍCH RẼ NHÁNH CỦA PIII GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 78 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 39 6/25/2014 LỆNH RẼ NHÁNH CÓ ĐIỀU KIỆN  Khó quản lý các lệnh rẽ nhánh ko có điều kiện hơn vì: . Có 2 lệnh đích để lựa chọn . Không thể xác định được lệnh đích tới khi lệnh rẽ nhánh được thực hiện xong . Sử dụng BTB không hiệu quả vì phải đợi tới khi có thể xác định được lệnh đích GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 79 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 LỆNH RẼ NHÁNH CÓ ĐIỀU KIỆN – CÁC CHIẾN LƯỢC  Làm chậm rẽ nhánh  Dự đoán rẽ nhánh GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 80 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 40 6/25/2014 LÀM CHẬM RẼ NHÁNH  Dựa trên ý tưởng: . Lệnh rẽ nhánh không làm rẽ nhánh ngay lập tức . Mà nó sẽ bị làm chậm một vài chu kỳ đồng hồ phụ thuộc vào độ dài của pipeline  Các đăc điểm của làm chậm rẽ nhánh: . Hoạt động tốt trên các vi xử lý RISC trong đó các lệnh có thời gian xử lý bằng nhau . Pipeline ngắn (thông thường là 2 giai đoạn) . Lệnh sau lệnh nhảy luôn được thực hiện, không phụ thuộc vào kết quả lệnh rẽ nhánh GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 81 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 LÀM CHẬM RẼ NHÁNH  Cài đặt: . Sử dụng complier để chèn NO-OP vào vị trí ngay sau lệnh rẽ nhánh, hoặc . Chuyển một lệnh độc lập từ trước tới ngay sau lệnh rẽ nhánh GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 82 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 41 6/25/2014 LÀM CHẬM RẼ NHÁNH  Xét các lệnh: ADD R2, R3, R4 CMP R1,0 JNE somewhere  Chèn NO-OP vào vị trí ngay sau lệnh rẽ nhánh ADD R2, R3, R4 CMP R1,0 JNE somewhere NO-OP  Chuyển một lệnh độc lập từ trước tới ngay sau lệnh rẽ nhánh CMP R1,0 JNE somewhere ADD R2, R3, R4 GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 83 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 LÀM CHẬM RẼ NHÁNH GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 84 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 42 6/25/2014 LÀM CHẬM RẼ NHÁNH – CÁC NHẬN XÉT  Dễ cài đặt nhờ tối ưu trình biên dịch (complier)  Không cần phần cứng đặc biệt  Nếu chỉ chèn NO-OP làm giảm hiệu năng khi pipeline dài  Thay các lệnh NO-OP bằng các lệnh độc lập có thể làm giảm số lượng NO-OP cần thiết tới 70% GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 85 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 LÀM CHẬM RẼ NHÁNH – CÁC NHẬN XÉT  Làm tăng độ phức tạp mã chương trình (code)  Cần lập trình viên và người xây dựng trình biên dịch có mức độ hiểu biết sâu về pipeline vi xử lý => hạn chế lớn  Giảm tính khả chuyển (portable) của mã chương trình vì các chương trình phải được viết hoặc biên dịch lại trên các nền VXL mới GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 86 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 43 6/25/2014 DỰ ĐOÁN RẼ NHÁNH  Có thể dự đoán lệnh đích của lệnh rẽ nhánh: . Dự đoán đúng: nâng cao hiệu năng . Dự đoán sai: đẩy các lệnh tiếp theo đã load và phải load lại các lệnh tại đích rẽ nhánh . Trường hợp xấu của dự đoán là 50% đúng và 50% sai GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 87 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 DỰ ĐOÁN RẼ NHÁNH  Các cơ sở để dự đoán: . Đối với các lệnh nhảy ngược (backward): • Thường là một phần của vòng lặp • Các vòng lặp thường được thực hiện nhiều lần . Đối với các lệnh nhảy xuôi (forward), khó dự đoán hơn: • Có thể là kết thúc lệnh loop • Có thể là nhảy có điều kiện GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 88 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 44 6/25/2014 AMD K6-2 pipeline GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 89 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Branch Prediction – Intel PIII GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 90 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 45 6/25/2014 Pipeline –Pen III, M GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 91 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Intel Pen 4 Pipeline GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 92 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 46 6/25/2014 Intel Core 2 Duo pipeline GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 93 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Intel Atom 16-stage pipeline GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 94 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 47 6/25/2014 SIÊU PIPELINE (superpipelining)  Siêu pipeline là 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 từng giai đoạn thực hiện lệnh  Ví dụ: nếu giai đoạn thực hiện lệnh bởi ALU kéo dài -> chia thành một số giai đoạn nhỏ -> giảm thời gian chờ cho các giai đoạn ngắn  Pentium 4 siêu ống với 20 giai đoạn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH 95 www.ptit.edu.vn Trang 95 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 PENTIUM 4 SIÊU ỐNG VỚI 20 GIAI ĐOẠN GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 96 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 48 6/25/2014 Branch Prediction – Intel P4 GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 97 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Intel Core 2 Duo – Super Pipeline GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH www.ptit.edu.vn Trang 98 BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Gfdsfd 49