CPU đa nhân sẽ sử dụng các nhân của nó như thế nào? Đây là câu trả lời cho bạn.
Con người không thể làm đa nhiệm (multi-tasking) được, nhưng chúng ta biết CPU thì lại có thể làm như thế. Tuy nhiên, điều đó chưa chắc đã đúng hoàn toàn đâu nhé. Thực chất, CPU sử dụng một “chiến thuật” gọi là scheduling. Hệ điều hành sẽ quyết định xem tập lệnh nào (hoặc luồng nào) sẽ được chuyển vào CPU trước tiên, xong rồi đến luồng nào tiếp theo, vân vân và vân vân. Vì thế nên việc hiểu quá trình scheduling diễn ra như thế nào sẽ vô cùng quan trọng khi bàn về cách mà CPU đa nhân ngày nay hoạt động. Mời các bạn cùng GVN 360 đi sâu vào chi tiết nhé.
Luồng dữ liệu đi vào CPU cũng có thứ tự ưu tiên hẳn hoi đấy nhé
Mỗi luồng dữ liệu mà PC của bạn đang xử lý sẽ được gán cho 1 giá trị gọi là “priority”. Luồng nào có con số “priority” càng cao thì nó sẽ càng được xếp về phía sau, ưu tiên cho những luồng có số “priority” thấp hơn lên phía trên để CPU xử lý trước. Các nhà phát triển CPU có thể gán các giá trị “priority” này khi họ viết 1 chương trình nào đó, và Windows có thể thay đổi “priority” của 1 luồng tùy theo lượng tài nguyên hệ thống mà nó cần và bản chất của tập lệnh đó.
Chẳng hạn, nếu có 1 luồng đang xử lý những tín hiệu đầu vào từ bàn phím và chuột (cuộn chuột khi duyệt web, lia tâm theo kẻ địch khi chơi game,…), khả năng cao là nó sẽ có giá trị “priority” thấp để được ưu tiên xử lý trước. Ngược lại, những tác vụ chạy nền không cần thiết phải xử lý liền sẽ được gán giá trị “priority” thấp hơn để xử lý sau.
Song song với “priority” còn có “Quality of Service”
Nhà phát triển còn có thể gán một giá trị khác gọi là “Quality of Service” (QoS) cho mỗi luồng. “QoS” là một cách để các nhà phát triển báo cho Windows biết là luồng đó có thể cần bao nhiêu tài nguyên hệ thống để xử lý. Đúng là Windows sẽ không xem nó quan trọng bằng “priority”, “QoS” vẫn là 1 yếu tố mà hệ điều hành sẽ phải xem xét khi thực hiện việc scheduling.
“QoS” là một yếu tố quan trọng khi xét về mặt quản lý điện năng tiêu thụ, do hệ điều hành có thể dùng “QoS” để yêu cầu CPU chạy ở 1 mức xung nhịp nhất định, và phần cứng bên trong CPU có thể quyết định xem nó có thể tăng tốc để đạt xung nhịp đó hay không, trong khi vẫn giữ mức tiêu hao điện năng ở giới hạn cho phép. Điều này vô cùng hữu dụng khi áp dụng trên laptop.
Mà “priority” với “QoS” liên quan đến chuyện CPU chọn cái nào để xử lý, chứ không liên quan nhiều đến chuyện CPU xử lý chúng như thế nào. Vậy thì chúng ta cùng soi kỹ hơn về khía cạnh này nhé.
Sự xuất hiện của CPU với kiến trúc lai đã làm thay đổi cách con chip sử dụng các nhân của nó
Hồi trước, các luồng của CPU sẽ được xử lý lần lượt, nhưng đối với những con chip đa nhân bây giờ thì không các bạn ạ, nhất là khi mấy vi xử lý bây giờ còn có nhiều loại nhân cùng nằm trong 1 con chip. Một trong những mục tiêu của việc scheduling trên con chip đa nhân là để 1 luồng dữ liệu phải được xử lý xong trên cùng 1 nhân, không để nó nhảy lung tung giữa các nhân, và đồng thời là để chia các luồng xử lý đồng đều giữa các nhân nhằm giúp nhân không bị quá tải.
Qua nhiều năm, các kỹ sư đã thử rất nhiều phương pháp tinh chỉnh để tìm ra cách scheduling vừa dễ dàng vừa hiệu quả. Chẳng hạn, họ có thể dùng library – nguồn tài nguyên phần mềm nằm giữa chương trình và hệ điều hành nhằm cho phép CPU chạy đa luồng mà không phải khiến nhà phát triển làm quá nhiều thứ.
Trên những con chip thế hệ mới, việc chạy đa luồng giữa các nhân sẽ càng quan trọng hơn nữa, do những con chip lai như Intel Core thế hệ 12 và 13 có đến 2 loại nhân khác nhau. Những vi xử lý này có các nhân hiệu năng cao (P-Core) và nhân tiết kiệm điện (E-Core), và do E-Core khá nhỏ nên thường trong con chip sẽ có nhiều nhân E-Core hơn, giúp tăng đáng kể hiệu năng đa luồng – miễn là trình scheduler có thể phân chia các luồng một cách hợp lý.
Theo mặc định, scheduler của Windows vẫn sẽ dùng P-Core trước tiên (nếu nó không bận xử lý các tác vụ quan trọng khác), nhưng sau đó nó có thể dùng E-Core cho luồng thứ nhì, xong rồi mới tới việc phân chia đa luồng cho nhân P-Core. Mặc dù Windows vẫn là bên đưa ra quyết định cuối cùng cho việc scheduling, bây giờ đã có một số tính năng được tích hợp thẳng lên trên phần cứng của mấy con chip thế hệ mới để nó có thể đưa ra lời khuyên cho Windows; nghĩa là CPU giờ có khả năng phân tích các tác vụ sắp được xử lý để đưa ra lời khuyên nhằm giúp hệ điều hành chọn nhân phù hợp cho luồng tác vụ đó, tùy theo Windows muốn ưu tiên hiệu năng hay là tiết kiệm điện.
Bởi mới nói trước khi luồng dữ liệu được nạp vào CPU là nó phải trải qua nhiều công đoạn xem xét kỹ lưỡng. Hi vọng bài viết này sẽ giúp bạn hiểu thêm về CPU, cũng như là cách nó hoạt động. Nếu các bạn có góp ý hoặc bổ sung thì hãy chia sẻ với mình bên dưới phần bình luận nhé. Cảm ơn các bạn đã quan tâm.
Để quẹo lựa các mẫu vi xử lý hiện có trên thị trường với mức giá hấp dẫn, các bạn có thể xem thêm tại cửa hàng GearVN nhé.
Mời các bạn tham khảo thêm một số thông tin liên quan tại GVN 360 như:
- Undervolt giúp CPU giữ nguyên hiệu năng mà lại chạy mát và sống thọ hơn, tưởng khó nhưng hoá ra cũng dễ
- Tìm hiểu về ASIC và FPGA – Những con chip còn “xịn” hơn cả CPU
- Nhiệt độ PC thế nào là nóng? Đây là câu trả lời cho bạn
- Top 5 thủ thuật giúp PC mát mẻ quanh năm
- Tự tay tối ưu chiếc laptop gaming của bạn ngay tại nhà
- Hướng dẫn tạo báo động đỏ mỗi khi CPU bị quá nhiệt
Nguồn: Techquickie
Mời các bạn theo dõi fanpage của chúng mình theo đường link dưới đây để cập nhật những tin tức về game, công nghệ và nhiều thông tin thú vị khác nữa nhé!