2012-05-03 26 views
9

Tôi đang cố gắng để thu thập thông tin hệ thống và chú ý sau đây trên một E5420 Intel Xeon:Tại sao Hyper-threading được báo cáo là được hỗ trợ trên các bộ xử lý không có nó?

Sau khi thực hiện CPUID(EAX=1), EDX [28] được thiết lập, cho thấy Hyper-Threading hỗ trợ, mặc dù thực tế rằng bộ vi xử lý được liệt kê trên trang web của Intel không hỗ trợ siêu phân luồng (ark.intel.com)

Có ai có giải thích cho điều này không?

+0

Đó là "siêu phân luồng" chỉ là trường hợp đặc biệt chỉ có một chuỗi. – Flexo

+0

Liên quan: http://msdn.microsoft.com/en-us/library/hskdteyh.aspx "Với chipset AMD, tất cả các CPU AMD đa lõi đặt bit 28 của bit thông tin tính năng để chỉ ra rằng chip có nhiều hơn một lõi. Đây là trường hợp mặc dù AMD không hỗ trợ siêu phân luồng. " Nhưng đó là đối với chip AMD. – Mysticial

+0

Biểu đồ trên MSDN cũng có nhãn bit 28 là "Đa luồng" ... – Mysticial

Trả lời

3

Đây là định nghĩa của bit đó theo hướng dẫn sử dụng các nhà phát triển của Intel:

Max APIC ID lĩnh vực dành riêng là hợp lệ. Giá trị 0 cho HTT cho biết chỉ có chỉ một bộ xử lý logic duy nhất trong gói và phần mềm giả định chỉ một ID APIC được đặt trước. Giá trị 1 cho HTT cho biết giá trị trong CPUID.1.EBX [23:16] (Số lượng tối đa các ID địa chỉ cho các bộ xử lý hợp lý trong gói này) là hợp lệ cho gói.

Trong chương 8 của tập 3A của hướng dẫn, nó mô tả cách phát hiện đúng phần cứng đa luồng.

Dưới đây là một liên kết:

http://download.intel.com/products/processor/manual/325462.pdf

+0

Có, điều này dường như cho thấy bit HTT có thời gian đến để chỉ ra nhiều hơn một chuỗi logic cho mỗi gói, cho dù vì HTT hoặc nhiều lõi vật lý. – andrewmu

4

Có một lời giải thích bán chính thức trong một Intel nói https://software.intel.com/en-us/articles/hyper-threading-technology-and-multi-core-processor-detection

Về cơ bản sau khi Intel giới thiệu SMT/hyperthreading trong các phiên bản cuối cùng của Pentium 4, họ đã tạo ra Pentium D, được coi là sự phát triển của mô hình siêu phân luồng vì lõi có độc lập hơn từ lõi khác so với các đơn vị SMT có liên quan với nhau, và do đó đa lõi hoạt động tốt hơn SMT với cùng một chuỗi . Vì vậy, họ sử dụng cùng một chút để chỉ ra SMT/siêu phân luồng hoặc đa lõi vì lý do đó, tức là đa lõi được xem như là một hình thức cải tiến siêu phân luồng. Intel Xeon E5420 mà bạn hỏi là một bộ xử lý đa lõi, vì vậy đó là lý do tại sao bit được đặt. Tất nhiên, một khi bạn có thể có cả siêu phân luồng và đa lõi trong cùng một gói, đôi khi cần phải phân biệt chúng, ví dụ vì bạn muốn lên lịch một luồng mới trên lõi chưa tải thay vì trên một lõi khác nửa luồng siêu của lõi đã được tải. Vì vậy, các bit cpuid mới (hoặc thay vì lá) cuối cùng đã được giới thiệu cho mục đích mô tả một cấu trúc liên kết SMT và đa lõi. Các tính năng cpuid mới nhất gần đây nhất để truy vấn cấu trúc liên kết bộ vi xử lý là lá EAX = 0xB. Ngoài ra, bạn không nên sử dụng thuật toán liệt kê topo được đưa ra trong cuộc nói chuyện cũ của Intel cho bộ vi xử lý được thực hiện trong năm 2010 và sau đó bởi vì nó sẽ cung cấp cho số lõi không chính xác/tăng cao. Sử dụng phương pháp được cập nhật được cung cấp tại https://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/ thay thế. Than ôi trang mới này khô hơn nhiều và không trả lời câu hỏi mà bạn đã hỏi, trong khi cuộc trò chuyện cũ ...

Các vấn đề liên quan