Nếu sử dụng chip của Intel, chắc hẳn bạn đã từng nghe qua Công nghệ siêu phân luồng – Hyper Threading với nhiều ưu điểm vượt trội, tiết kiệm thời gian xử lý các tác vụ. Vậy Hyper Threading là gì? Nguyên lý hoạt động ra sao? Ưu nhược điểm của nó như thế nào và khác gì so với Multithreading, hãy cùng bài viết tìm hiểu nhé.
Công nghệ siêu phân luồng (Hyper Threading) là gì?
Hyper Threading là một công nghệ của Intel cho phép một bộ vi xử lý đơn lõi (single-core) có thể xử lý đa luồng (multithreading) như một bộ vi xử lý đa lõi (multi-core).
Cụ thể công nghệ này cho phép mỗi lõi vật lý của CPU có thể xử lý hai luồng dữ liệu đồng thời giúp tăng hiệu suất xử lý của CPU. Với Hyper Threading một bộ vi xử lý 4 lõi có thể xử lý 8 luồng dữ liệu cùng một lúc.
Tuy nhiên hiệu quả của Hyper-Threading phụ thuộc vào loại ứng dụng và công việc đang được thực hiện trên CPU.
Nguyên lý hoạt động của Hyper Threading
Hyper Threading sử dụng các tài nguyên của bộ vi xử lý hiệu quả hơn bằng cách tạo ra các luồng ảo (virtual threads) để xử lý các tác vụ.
Khi một bộ vi xử lý được trang bị công nghệ siêu phân luồng, nó sẽ tạo ra hai luồng ảo cho mỗi lõi vật lý (physical core) của nó. Với mỗi luồng ảo bộ vi xử lý sẽ cung cấp một bộ đăng ký (register set) và một bộ xử lý lệnh (instruction pipeline) riêng nhưng chúng sẽ chia sẻ các bộ nhớ cache, các tài nguyên khác của bộ vi xử lý.
Khi một tác vụ được gửi đến bộ vi xử lý nó sẽ được chia thành các phần nhỏ hơn được gọi là luồng (thread). Với Hyper Threading các luồng này sẽ được phân chia và giao cho các luồng ảo khác nhau để xử lý đồng thời. Khi một luồng ảo đang chờ đợi dữ liệu từ bộ nhớ, bộ vi xử lý có thể chuyển sang luồng ảo khác để tiếp tục xử lý các tác vụ khác.
Tuy nhiên việc sử dụng Hyper Threading không đảm bảo tăng hiệu suất đáng kể cho mọi ứng dụng. Các ứng dụng đơn luồng (single-threaded) sẽ không được hưởng lợi từ công nghệ này và các ứng dụng đa luồng (multi-threaded) cũng có thể không tận dụng được tối đa khả năng của Hyper Threading nếu chúng không được thiết kế để tận dụng các luồng ảo.
Ưu nhược điểm của Hyper Threading
Ưu điểm
- Tăng hiệu suất: Hyper-Threading giúp tăng hiệu suất của bộ vi xử lý bằng cách cho phép nhiều luồng xử lý chạy đồng thời trên một lõi vật lý. Điều này giúp tăng tốc độ xử lý và giảm thời gian chờ đợi.
- Tối ưu hóa tài nguyên: Hyper-Threading giúp tối ưu hóa sử dụng tài nguyên của bộ vi xử lý bằng cách sử dụng các tài nguyên không được sử dụng trong quá trình xử lý của một luồng để xử lý các luồng khác.
- Tăng khả năng đa nhiệm: Hyper-Threading giúp tăng khả năng đa nhiệm của bộ vi xử lý bằng cách cho phép nhiều luồng xử lý chạy đồng thời trên một lõi vật lý. Điều này giúp tăng khả năng xử lý các tác vụ đa nhiệm như chạy nhiều ứng dụng cùng một lúc.
- Tiết kiệm năng lượng: Hyper-Threading giúp tiết kiệm năng lượng bằng cách sử dụng các tài nguyên không được sử dụng trong quá trình xử lý của một luồng để xử lý các luồng khác. Điều này giúp giảm sự tiêu thụ năng lượng của bộ vi xử lý và giảm chi phí điện năng.
Nhược điểm
- Tăng nhiệt độ: Khi sử dụng Hyper-Threading bộ vi xử lý sẽ hoạt động với mức độ tải cao hơn dẫn đến tăng nhiệt độ của máy tính.
- Không phù hợp với một số ứng dụng: Một số ứng dụng không được tối ưu hóa để sử dụng Hyper-Threading do đó sẽ không có tác dụng tăng hiệu suất.
- Tăng độ trễ: Khi sử dụng Hyper-Threading bộ vi xử lý phải chia sẻ các tài nguyên dẫn đến tăng độ trễ trong quá trình xử lý.
- Giảm hiệu suất đơn nhân: Khi sử dụng Hyper-Threading hiệu suất của mỗi lõi xử lý đơn nhân sẽ giảm do phải chia sẻ tài nguyên với lõi khác.
Sự khác biệt giữa Hyper Threading và Multithreading
Hyper Threading và Multithreading đều là các kỹ thuật tăng tốc độ xử lý của CPU. Tuy nhiên chúng có những điểm khác nhau như sau:
- Hiệu suất: Hyper-Threading tăng hiệu suất bằng cách cho phép CPU xử lý hai luồng dữ liệu cùng một lúc tuy nhiên hiệu suất tăng không đáng kể. Trong khi đó Multithreading tăng hiệu suất bằng cách chia nhỏ công việc thành nhiều luồng và thực hiện chúng đồng thời trên nhiều lõi CPU.
- Ứng dụng: Hyper-Threading được sử dụng trong các ứng dụng đơn luồng trong khi Multithreading được sử dụng trong các ứng dụng đa luồng.
- Tính ổn định: Hyper-Threading có thể gây ra sự cố và giảm hiệu suất nếu không được cấu hình đúng. Trong khi đó Multithreading có thể tăng hiệu suất và tăng tính ổn định của ứng dụng nếu được lập trình đúng cách.
Cách bật/ tắt Hyper Threading
Không phải hệ thống nào cũng hỗ trợ công nghệ siêu phân luồng và một số hệ thống mặc định sẽ bật công nghệ này, bạn sẽ không cần phải bật nó một cách thủ công.
Việc kích hoạt HT sẽ giúp tăng hiệu suất máy tính. Tuy nhiên, nếu bạn không sử dụng bất kỳ chương trình nào đòi hỏi quá nhiều tài nguyên CPU thì sẽ không thấy sự khác biệt.
Để kích hoạt Hyper Threading, các bạn thực hiện các bước sau:
Khởi động máy, nhấn liên tục phím F2 hoặc Del (tùy thuộc vào nhà sản xuất bo mạch chủ) để vào màn hình BIOS.
Di chuyển đến tab Advanced, sau đó chọn CPU Configuration. Cuộn xuống và tìm mục Hyper-Threading. Nhấn vào ô select và chọn Enabled.
Các câu hỏi thường gặp
Công nghệ Hyper Threading được phát triển cho thiết bị nào?
Công nghệ Hyper-Threading được phát triển cho các CPU (Central Processing Unit) của Intel. Nó được giới thiệu lần đầu tiên vào năm 2002 và được tích hợp vào các dòng chip Intel Pentium 4 và Xeon. Hiện nay công nghệ Hyper Threading vẫn được sử dụng trong các dòng chip Intel Core i3 i5 i7 và i9.
Hyper Threading có cần thiết không?
Điều này phụ thuộc vào mục đích sử dụng của người dùng. Nếu làm việc với các ứng dụng đòi hỏi xử lý đa nhiệm đa luồng thì Hyper Threading sẽ giúp tăng hiệu suất và tốc độ xử lý. Tuy nhiên nếu người dùng chỉ sử dụng các ứng dụng đơn luồng không đòi hỏi xử lý đa nhiệm thì công nghệ này có thể không cần thiết và không mang lại hiệu quả cao.