Việc Intel chuyển sang thiết kế CPU lai đã tạo ra một bài toán phức tạp cho các nhà phát triển hệ điều hành. Kể từ khi giới thiệu bộ xử lý Alder Lake , Intel đã khiến việc mua một chip tiêu dùng mà không có cả nhân Hiệu suất (P) và nhân Tiết kiệm (E) trở nên gần như bất khả thi. Mặc dù kiến trúc này hứa hẹn hiệu suất và hiệu quả năng lượng tốt hơn, nhưng nó đã đưa ra những thách thức đáng kể cho việc lập lịch tác vụ mà các hệ điều hành vẫn đang nỗ lực giải quyết.
Dòng thời gian CPU Hybrid của Intel
- 2011: ARM giới thiệu kiến trúc big.LITTLE
- 2020: Intel phát hành Lakefield (khả năng cung cấp hạn chế)
- 2021: Intel ra mắt Alder Lake với việc áp dụng rộng rãi lõi P+E
- 2023: Intel giới thiệu Meteor Lake với lõi LP-E (Low Power Efficiency - Hiệu suất Tiết kiệm Điện năng Thấp)
Sự phức tạp trong việc chọn nhân phù hợp
Thách thức cơ bản nằm ở việc quyết định nhân nào nên xử lý tác vụ nào. Không giống như CPU truyền thống nơi tất cả các nhân về cơ bản đều bằng nhau, kiến trúc lai buộc bộ lập lịch phải đưa ra những quyết định phức tạp. Một tác vụ có thời gian sống ngắn nên được giao cho P-core để hoàn thành nhanh chóng, hay E-core đã đủ? Câu trả lời không đơn giản, vì các cuộc thảo luận cộng đồng cho thấy bản chất tinh tế của những quyết định này.
Ngay cả khi laptop chạy bằng pin, việc mặc định sử dụng E-core cũng không phải lúc nào cũng tối ưu. Một số tác vụ nhạy cảm với độ trễ và yêu cầu phản hồi tức thì mà chỉ P-core mới có thể cung cấp. Trong khi đó, các tác vụ chạy lâu dài có vẻ hoàn hảo cho E-core thực ra có thể hưởng lợi từ việc tăng tốc P-core để hoàn thành nhanh hơn và tiết kiệm năng lượng tổng thể.
Quản lý năng lượng trở nên phức tạp hơn
Cách tiếp cận truyền thống sử dụng mức độ nice của CPU - một tính năng Unix cho phép người dùng đặt mức độ ưu tiên tác vụ - không dễ dàng áp dụng cho kiến trúc lai. Mặc dù một số người đề xuất sử dụng mức độ nice để xác định việc phân bổ nhân, cách tiếp cận này có những hạn chế. Nó sẽ ngăn cản các tình huống như chạy trên nhân Hiệu suất, nhưng nhường chỗ cho các tiến trình khác một cách nhanh chóng, điều mà có thể chính xác là những gì một số ứng dụng cần.
Các ràng buộc nhiệt độ thêm một lớp phức tạp khác. Ngay cả khi cắm vào nguồn điện AC, P-core có thể nhanh chóng tiêu thụ hết ngân sách năng lượng có sẵn và tạo ra nhiệt độ quá cao. Điều này có nghĩa là ngay cả các tác vụ có mức độ ưu tiên cao cũng có thể hưởng lợi từ việc sử dụng E-core một cách chiến lược để duy trì hiệu suất bền vững mà không bị giảm tốc độ do nhiệt.
Phương pháp phát hiện loại lõi
- Lõi P và E: Lệnh CPUID leaf (0x1a)
- Lõi LP-E: Không có phương pháp phát hiện tương thích ngược
- Thread Director: Thành phần phần cứng cung cấp phản hồi hiệu suất theo thời gian thực
Vấn đề công bằng
Một trong những khía cạnh thách thức nhất liên quan đến việc duy trì sự công bằng giữa các tác vụ. Các bộ lập lịch truyền thống đảm bảo quyền truy cập bình đẳng vào tài nguyên CPU bằng cách cung cấp cho tất cả các tác vụ cùng một khoảng thời gian. Tuy nhiên, trên kiến trúc lai, thời gian bằng nhau không có nghĩa là sức mạnh tính toán bằng nhau. Một tác vụ chạy trên P-core sẽ hoàn thành nhiều công việc hơn trong cùng khoảng thời gian so với một tác vụ chạy trên E-core.
Điều này tạo ra một vấn đề cơ bản: làm thế nào để đảm bảo phân bổ tài nguyên công bằng khi bản thân các tài nguyên vốn dĩ không bình đẳng? Giải pháp được đề xuất của FreeBSD bao gồm việc tính toán thời gian chạy ảo có tính đến sự khác biệt hiệu suất giữa các loại nhân, nhưng điều này đại diện cho một sự khác biệt đáng kể so với các cách tiếp cận lập lịch hiện tại.
Kiểm soát của người dùng so với quản lý tự động
Cuộc tranh luận mở rộng đến mức độ kiểm soát mà người dùng nên có đối với việc phân bổ nhân. Một số người dùng muốn kiểm soát trực tiếp nhân nào xử lý các tác vụ quan trọng của họ, đặc biệt trong các tình huống mà tuổi thọ pin hoặc yêu cầu hiệu suất là tối quan trọng. Tuy nhiên, hệ thống thường đưa ra hàng nghìn quyết định lập lịch mỗi giây, khiến việc can thiệp thủ công trở nên không thực tế trong hầu hết các tình huống.
Máy tính không thể biết về những trường hợp này.
Điều này làm nổi bật sự căng thẳng giữa tối ưu hóa tự động và ý định của người dùng. Mặc dù các hệ điều hành có thể đưa ra những dự đoán có căn cứ về yêu cầu tác vụ, chúng thiếu bối cảnh mà người dùng có về nhu cầu và ưu tiên tức thì của họ.
Các Chính Sách Lập Lịch Được Đề Xuất
- Hiệu Suất Tối Đa (0): Ưu tiên P-cores, giữ tất cả các lõi hoạt động khi có thể
- Thang Đo Hiệu Quả (0-100): Tỷ lệ có thể cấu hình giữa hiệu suất và hiệu quả
- Hiệu Quả Tối Đa (100): Chỉ chạy các luồng trên E-cores hoặc các lõi hiệu quả nhất có sẵn
Nhìn về tương lai
Khi FreeBSD và các hệ điều hành khác nỗ lực giải quyết những thách thức này, các giải pháp có thể sẽ bao gồm sự kết hợp của việc cải thiện phát hiện tự động, các chính sách có thể cấu hình bởi người dùng, và các gợi ý ở cấp độ ứng dụng. Công nghệ Thread Director của Intel , cung cấp phản hồi thời gian thực về đặc điểm tác vụ và hiệu suất nhân, mang lại một con đường tiến về phía trước.
Kiến trúc CPU lai đại diện cho một sự thay đổi đáng kể trong máy tính, nhưng hệ sinh thái phần mềm vẫn đang bắt kịp. Cho đến khi các hệ điều hành hoàn toàn thích ứng với những thực tế mới này, người dùng có thể tiếp tục trải nghiệm hiệu suất không nhất quán đã khiến một số nhà phát triển hoài nghi về cách tiếp cận lai. Sự thành công của kiến trúc này cuối cùng sẽ phụ thuộc vào việc phần mềm có thể khai thác tốt tiềm năng của việc có các loại nhân khác nhau làm việc cùng nhau một cách hiệu quả.
Tham khảo: Scheduling on Hybrid CPUs