Core và Thread là gì? Ảnh hưởng thế nào đến sức mạnh CPU?

Core và thread là gì?

Hiểu đơn giản, core là nhân CPU. Mỗi vi xử lý được cấu trúc từ nhiều nhân (hai, bốn, sáu hoặc tám) và mỗi nhân là một đơn vị xử lý. Từng nhân này còn có khả năng xử lý độc lập một dãy các hướng dẫn của mạng lưới hệ thống. Do đó, CPU càng nhiều nhân thì hiệu năng xử lý càng tuyệt vời.

Thread (luồng) là một đơn vị cơ bản khác của cục vi xử lý CPU. Một luồng sẽ san sớt thông tin data, tài liệu với những luồng khác trong cùng process. Thao tác tạo ra thread giúp cho những Khóa học để thực thi song song nhiều công việc trong cùng thời khắc.

Core và Thread là gì? Những yếu tố này ảnh hưởng thế nào đến sức mạnh CPU? 1

Hyperthreading là gì?

Hyperthreading hay còn gọi là công nghệ siêu phân luồng, đây là khái niệm kỹ thuật được Intel sáng tạo ra nhằm tương trợ mỗi nhân CPU (physical core) có thể đảm nhận công việc của hai nhân ảo (logical core).

Ở khía cạnh này, một doanh nghiệp sinh sản chip nổi tiếng khác là AMD cũng có thể có khái niệm riêng của mình là CMT – Cluster-based Multithreading. Nhưng trong thực tế, cách gọi Hyperthreading vẫn nổi tiếng và được sử dụng rộng rãi hơn.

Core và Thread là gì? Những yếu tố này ảnh hưởng thế nào đến sức mạnh CPU? 2

Sự khác nhau giữa single-threaded và multithreaded

Multithreaded (đa luồng) là dạng mà hồ hết phần mềm sử dụng trên các máy tính xách tay và bộ PC ngày này đều được xây dựng để vận hành tương thích. Ví dụ đơn giản như khi chúng ta truy cập vào trong 1 website nào đó, một thread sẽ phụ trách chạy âm thanh, hình ảnh và nội dung bài viết, còn một thread khác sẽ sở hữu được trọng trách nhận thêm tài liệu vào web trong cùng thời khắc.

Các phần mềm có thể được xây dựng nhằm vận dụng khả năng xử lý trên những mạng lưới hệ thống multicore, tương trợ thực hiện nhiều tác vụ CPU cùng lúc.

Core và Thread là gì? Những yếu tố này ảnh hưởng thế nào đến sức mạnh CPU? 3

Trong lúc đó, single-threaded (đơn luồng) chỉ có thể xử lý một nhu cầu trong một thời khắc, gây ra sự phiền toái tiêu tốn nhiều thời kì. Multithreaded được tạo ra nhằm xử lý các vấn đề tồn kho của single-threaded.

Ví dụ đơn giản cho bạn dễ hiểu là một website khi được người truy cập click vào sẽ phản hồi theo nhiều tác vụ cùng lúc như hiện hình ảnh, font chữ, âm thanh. Trong lúc đó, mỗi thời khắc lại sở hữu hàng ngàn thậm chí còn hàng triệu lượt truy cập. Multithreaded ra đời để xử lý vấn đề này, trong lúc single-threaded thì không.

Multithreaded sẽ giúp tiết kiệm ngân sách và chi phí rất nhiều thời kì và nguồn lực. Khi một server sever của website nhận được một yêu cầu tác vụ từ người truy cập, server sẽ tạo ra một luồng khác để xử lý yêu cầu này, sau đó quay trở lại để tiếp tục xử lý các yêu cầu tiếp theo.

Core và Thread là gì? Những yếu tố này ảnh hưởng thế nào đến sức mạnh CPU? 65

Các mô hình trong multithreading

Việc phân luồng (thread) sẽ tiến hành thực hiện qua hai cách là thông qua nhân máy tính để xây dựng kernel thread và thông qua người dùng để làm tạo nên user thread. Nếu như user thread được tương trợ trên kernel và được quản lý mà không cần tới sự tương trợ của kernel thì kernel thread quản lý trực tiếp bởi hệ điều hành.

Sự liên kết giữa kernel thread và user thread là vô cùng chặt chẽ, được thể hiện qua ba mô hình sau đây.

Many-to-one

Đây là mô hình triển khai kết nối nhiều user thread với một kernel thread. Thao tác quản lý các luồng sẽ dựa trên thư viện luồng trong không gian người dùng. Trong trường hợp một luồng bất kỳ xẩy ra blocking system call thì cả mạng lưới hệ thống sẽ bị chặn.

Ngoài ra, do chỉ một thread được phép tiếp cận kernel trong một lần nên các luồng sót lại sẽ không còn được tương trợ để chạy cùng lúc trong mạng lưới hệ thống đa lõi.

Core và Thread là gì? Những yếu tố này ảnh hưởng thế nào đến sức mạnh CPU? 89

One-to-one

Chúng ta có thể liên tưởng đến mô hình một kernel thread kết nối với một user thread ngay từ tên gọi one-to-one. Điểm mạnh của one-to-one nằm ở việc đảm bảo độ thông suốt bởi giả sử một thread bị block thì thread khác vẫn sẽ kết nối được cùng kernel.

Tuy nhiên, mô hình này lại tồn tại thiếu sót là lúc một user thread vận hành thì một kernel thread khác sẽ kích hoạt song song. Trong trường hợp có quá nhiều kernel chạy thì ứng dụng sẽ bị quá tải.

Many-to-many

Mô hình many-to-many sẽ tiến hành chia các user-level thread để đạt được lượng nhỏ hơn hoặc bằng so với kernel thread. Tùy theo yêu cầu ứng dụng hoặc máy bộ vận hành mà lượng kernel thread sẽ sở hữu được sự dao động khác nhau

Many-to-many ra đời nhằm xử lý vấn đề từ hai mô hình là one-to-one và many-to-one. Số lượng user threads tạo ra là tùy thích và kernel thread tương ứng sẽ vận hành song song trong hệ đa xử lý. Ngoài ra, khi một thread đang thực hiện blocking system call thì kernel thread tương ứng sẽ tự chuyển sang kết nối với một user thread khác.

Core và Thread là gì? Những yếu tố này ảnh hưởng thế nào đến sức mạnh CPU? 90

You May Also Like

About the Author: v1000