Sự khác biệt giữa siêu phân luồng và nhiều lõi là gì?


42

Trong một cuộc trò chuyện với nhà quản trị mạng, tôi đã đề cập rằng máy của tôi là lõi kép. Anh ấy nói với tôi rằng nó không phải là. Tôi đã đưa lên trình quản lý tác vụ, chuyển đến tab perfomance và cho anh ta thấy rằng có hai biểu đồ sử dụng CPU riêng biệt. Tôi có một máy lõi tứ ở nhà và nó có bốn biểu đồ. Ông nói có hai biểu đồ trên chiếc máy đặc biệt này vì siêu phân luồng. Tôi đã từng có một bộ xử lý pentium 4 siêu luồng trở lại vào ban ngày, nhưng tôi chưa bao giờ hiểu đầy đủ ý nghĩa của nó. Vì vậy, sự khác biệt giữa siêu phân luồng và lõi kép là gì? Và làm thế nào để bạn biết bạn có cái nào?

Câu trả lời:


20

Siêu phân luồng cho thấy nhiều lõi logic cho một lõi CPU vật lý . Nói một cách đơn giản, siêu phân luồng giúp chuyển đổi ngữ cảnh hiệu quả hơn cho từng lõi CPU.

Mặt khác, chip lõi kép thực sự có hai lõi CPU vật lý có thể thực thi các tiến trình khác nhau cùng một lúc.

Ngoài ra còn có các chip đa lõi khác có nhiều hơn hai lõi và - như Svish đã đề cập - các sản phẩm đa lõi mới nhất của Intel cũng hỗ trợ siêu phân luồng trên tất cả các lõi.

Bạn có thể sử dụng tiện ích nhận dạng CPU như CPU-Z để xác định số lượng lõi bạn có. Như bạn có thể thấy ở gần dưới cùng của ảnh chụp màn hình, CPU trong trường hợp này có 2 lõi vật lý. Nếu số lượng luồng cao hơn số lõi, siêu phân luồng được bật. Đến nay, tất cả các CPU hướng đến người tiêu dùng có siêu phân luồng đều có 2 luồng trên mỗi lõi, vì vậy nếu HT được bật, số lượng luồng sẽ gấp đôi số lõi.

nhập mô tả hình ảnh ở đây

Nếu bạn có CPU Intel, bạn có thể tải xuống tiện ích ID CPU của Intel thay thế.


Và chip đa lõi hỗ trợ siêu phân luồng để bạn có được số lượng lõi logic gấp đôi.
Svish

Cảm tạ! Làm thế nào để tôi biết (từ bên trong HĐH) tôi có loại CPU nào?
Josh Stodola

3
UltraSparc T2 + có 8 lõi, mỗi lõi hỗ trợ 8 luồng làm cho nó trở thành 64 CPU ảo trên một chip duy nhất: en.wikipedia.org/wiki/UltraSPARC_T2
jlliagre

Cách để biết CPU bạn có phụ thuộc vào HĐH bạn đang chạy.
jlliagre

@jilliagre: tốt đẹp!
cướp

16

Siêu phân luồng là nơi bộ xử lý của bạn giả vờ có 2 lõi bộ xử lý vật lý, nhưng chỉ có 1 và một số rác bổ sung.

Điểm của siêu phân luồng là nhiều khi bạn đang thực thi mã trong bộ xử lý, có những phần của bộ xử lý không hoạt động. Bằng cách bao gồm một bộ thanh ghi CPU bổ sung, bộ xử lý có thể hoạt động như nó có hai lõi và do đó sử dụng song song tất cả các bộ phận của bộ xử lý. Khi cả hai lõi cần sử dụng một thành phần của bộ xử lý, thì dĩ nhiên một lõi sẽ chờ. Đây là lý do tại sao nó không thể thay thế bộ xử lý lõi kép và bộ xử lý như vậy.

Xem thêm: Câu hỏi này


6

Hyperthreading là một sự thay thế rẻ hơn và chậm hơn để có lõi kép

Các Intel Manual Tập 3 Hệ thống lập trình Hướng dẫn - 325384-056US tháng 9 năm 2015 8,7 "Intel Hyper-Threading CÔNG NGHỆ KIẾN TRÚC" mô tả HT một thời gian ngắn. Nó chứa sơ đồ sau:

nhập mô tả hình ảnh ở đây

TODO nó chậm hơn bao nhiêu phần trăm trung bình trong các ứng dụng thực tế?

Có thể siêu phân luồng vì các lõi CPU hiện đại đã thực hiện nhiều lệnh cùng một lúc với đường dẫn lệnh https://en.wikipedia.org/wiki/In cản_pipelining

Đường dẫn lệnh là sự phân tách các chức năng bên trong một lõi đơn để đảm bảo rằng mỗi phần của mạch được sử dụng tại bất kỳ thời điểm nào: đọc bộ nhớ, hướng dẫn giải mã, thực hiện các hướng dẫn, v.v.

Siêu phân tách tách các chức năng hơn nữa bằng cách sử dụng:

  • một phụ trợ duy nhất, thực sự chạy các hướng dẫn với đường ống dẫn của nó.

    Lõi kép có hai phần phụ trợ, giải thích chi phí và hiệu suất cao hơn.

  • hai giao diện người dùng, có hai luồng hướng dẫn và sắp xếp chúng theo cách để tối đa hóa việc sử dụng đường ống của phụ trợ đơn bằng cách tránh các mối nguy hiểm .

    Lõi kép cũng sẽ có 2 mặt trước, một cho mỗi phụ trợ.

    Có những trường hợp cạnh mà việc sắp xếp lại lệnh không tạo ra lợi ích, làm cho siêu phân luồng trở nên vô dụng. Nhưng nó tạo ra một sự cải thiện đáng kể ở mức trung bình.

Hai siêu phân luồng trong một lõi chia sẻ thêm các mức bộ đệm (TODO có bao nhiêu? L1?) So với hai lõi khác nhau, chỉ chia sẻ L3, xem:

Giao diện mà mỗi siêu phân luồng tiếp xúc với hệ điều hành tương tự như lõi thực tế và cả hai có thể được điều khiển riêng. Do đó cat /proc/cpuinfocho tôi thấy 4 bộ xử lý, mặc dù tôi chỉ có 2 lõi với 2 siêu phân luồng mỗi cái.

Tuy nhiên, các hệ điều hành có thể tận dụng lợi thế của việc siêu phân luồng nào trên cùng một lõi để chạy nhiều luồng của một chương trình nhất định trên một lõi, điều này có thể cải thiện việc sử dụng bộ đệm.

Video LinusTechTips này chứa một lời giải thích phi kỹ thuật nhẹ nhàng: https://www.youtube.com/watch?v=wnS50lJicXc


1
Bạn sẽ trả lời câu hỏi "TODO" của bạn?
pacoverflow

1
@pacoverflow nếu tôi một ngày nào đó tìm hiểu những câu trả lời, hoặc nếu ai đó sẽ sửa câu trả lời cho tôi :-)
Ciro Santilli新疆改造中心法轮功六四事件
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.