2016-08-10 21 views
5

Như đã biết, Intel đã phải tắt TSX trong bộ vi xử lý Haswell thông qua một bản cập nhật microcode. Điều này là do một lỗi trong việc thực hiện TSX có thể cho kết quả sai nếu các hướng dẫn này được sử dụng.Trạng thái của Skylake errata SKL-105 liên quan đến TSX là gì?

Điều gì dường như ít nổi tiếng hơn là có vẻ như cũng là một lỗi ảnh hưởng đến TSX trên kiến ​​trúc mới hơn, Skylake. Cụ thể các errata "SKL-105" được đề cập ở đây:

http://www.intel.com/content/www/us/en/processors/core/desktop-6th-gen-core-family-spec-update.html

Nó đặc biệt khẳng định rằng việc sử dụng TSX có thể dẫn đến hành vi hệ thống không thể đoán trước. Tuy nhiên, nó cũng lưu ý rằng BIOS có thể thực hiện sửa chữa. Tuy nhiên, câu hỏi là sau đó những gì sửa chữa này đòi hỏi. Liệu nó có vô hiệu hóa TSX hoàn toàn giống như vi xử lý Haswell "sửa chữa" không? Googling "SKL105" không có kết quả nào nên có vẻ như cộng đồng thường không biết về nó?

Một số người dùng đã nhận thấy tính năng TSX nhận được "steathily" khuyết tật (nhưng dường như là không nhận thức được errata trên):

https://www.reddit.com/r/hardware/comments/44k218/intel_disables_tsx_transactional_memory_again_in/

Thật là lạ nếu chỉ biến thể nhất định của CPU bị ảnh hưởng, kể từ người ta sẽ cho rằng họ sẽ chia sẻ cùng một kiến ​​trúc vi mô và do đó bị ảnh hưởng bởi lỗi này. Bằng cách này, một cách khắc phục vi mã "sửa chữa" có thể hoạt động và điều này có thể còn lén lút hơn: Tôi cho rằng có thể thực hiện cập nhật microcode mà vẫn làm lộ sự hiện diện của TSX (làm cho nó có vẻ là tính năng vẫn được kích hoạt) nhưng sẽ ghi đè lên việc thực hiện các lệnh TSX mới với "triển khai giả" mà thực sự sẽ không bao giờ bỏ khóa và về cơ bản chỉ thực thi mã theo cách cũ, do đó tránh được lỗi đó. phục vụ. Cách duy nhất để xác định xem điều này có xảy ra không thông qua các phép đo hiệu suất.

Bất kỳ ai có thêm thông tin về trạng thái của TSX trong Skylake? Trong mọi trường hợp, điều lạ lùng là không có thêm thông tin nào được phát hành và người ta phải đoán xem cái gì bị ảnh hưởng và cái gì không. Và thực sự nếu tính năng này an toàn để sử dụng.

Tôi có 6700K và tính năng vẫn ở đó. Nhưng điều này cũng phụ thuộc vào việc nhà sản xuất BIOS có thực hiện các cập nhật microcode hay không và tôi cũng chưa thực sự đo lường hiệu suất vì vậy tôi không thể loại trừ nó có thể vẫn bị vô hiệu hóa đoạn trước.

+1

Nhân tiện, hãy lưu ý rằng SKL-054 (trong cùng một tờ dữ liệu errata) cũng liên quan đến TSX. Cùng trạng thái/nhận xét/câu hỏi trong bài đăng của tôi cho SKL-105 cũng áp dụng cho SKL-054. – Morty

Trả lời

5

Theo như tôi biết, nó được cho là đã được sửa trên gói cập nhật vi công khai mới nhất từ ​​2016-07-14. Đối với Skylake, điều này sẽ được sửa đổi 0x9d/0x9e của mã vi cơ sở Skylake (ký hiệu xử lý 0x406e3 và 0x506e3).

TSX lỗi mới này dường như cũng có trên Broadwell. Tôi cho rằng nó cũng đã được khắc phục thông qua các bản cập nhật mới của Broadwell- * microcode được xuất bản cùng với các bản cập nhật vi mã Skylake mới.

Đối với Linux, cập nhật microcode thông qua dữ liệu được gửi bởi bộ nạp khởi động, nó không quan trọng để áp dụng bản cập nhật và nó đã có sẵn trong hầu hết các bản phân phối (nghiêm túc). Đối với Windows, bạn cần pester nhà cung cấp hệ thống của bạn để cập nhật EFI/BIOS.

Xin lỗi, tôi không có phương tiện để kiểm tra TSX trong mã vi mạch Skylake/Broadwell mới nhất để kiểm tra xem đó có phải là khóa mở khóa hay "luôn thất bại". Đối với việc vô hiệu hóa TSX, bạn phải hiểu rằng nó có tác động thực sự đến hiệu quả L3 (nó không được cung cấp miễn phí!) và tiêu thụ điện năng, nó sẽ làm cho rất nhiều ý nghĩa để có TSX vô hiệu hóa bởi BIOS trên bất cứ điều gì với một L3 nhỏ hơn.

Điều thú vị là, thông tin về TSX "bit gà" không được công khai, chúng tôi không có ý tưởng về cách vô hiệu hóa (hoặc bật lại) nó.

+1

Bạn có bất kỳ tham chiếu nào cho TSX sử dụng nguồn khi được bật, ngay cả khi không thực sự được sử dụng? Và cũng để giảm hiệu quả L3? Tôi muốn đọc thêm. –

+0

Các giấy tờ về cách TSX hoạt động làm cho nó rõ ràng nó phân vùng bộ nhớ cache để duy trì trạng thái giao dịch để làm rollback. Đây không phải là vấn đề mà bất cứ ai bên ngoài HPC háo hức nhất sẽ chú ý đến Xeon, nhưng các chip nhỏ hơn lại có ít bộ nhớ cache hơn. Việc sử dụng thêm nguồn điện bởi tính năng có thể quá nhỏ để làm phiền, nhưng trong quá trình giao dịch, không có chế độ công suất thấp nào xóa bộ nhớ cache có thể kích hoạt, do đó Intel phải hủy giao dịch hoặc chặn thay đổi chế độ. Tôi không có tài liệu tham khảo trong tay, hãy tìm các giấy tờ TSX và cũng là một giấy phân tích bảo mật SGX ... – anonymous

+2

Từ những gì tôi đã đọc, nó xảy ra bên trong L1 của lõi làm một giao dịch. Theo David Kanter [HSW writeup] (http://www.realworldtech.com/haswell-cpu/5/), thậm chí L2 không phải là giao dịch, hãy để một mình L3. Ông nói rằng suy đoán của ông về cách Haswell sẽ thực hiện nó là chính xác; nó sử dụng các bit phụ cho mỗi dòng bộ nhớ cache L1. (Xem các bài viết trước của anh ấy: http://www.realworldtech.com/haswell-tm/ và http://www.realworldtech.com/haswell-tm-alt/). Kanter nói rằng TM là một trong những sở thích chuyên nghiệp chính của anh ấy, vì vậy có thể không có lỗi lớn trong bất kỳ điều gì. –

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