ASPM là gì - Chế độ tiết kiệm điện của khe PCIe có làm chậm SSD không?

ASPM là gì - Chế độ tiết kiệm điện của khe PCIe có làm chậm SSD không?

ASPM là chế độ hạ điện của khe PCIe, cho liên kết tới SSD NVMe, card Wi-Fi vào nấc nghỉ L0s, L1, L1.2. Độ trễ chỉ phát sinh ở lệnh đầu sau quãng nghỉ, từ 1 µs đến hơn 64 µs khi thoát L1.

Chia sẻ:

Khi laptop chạy pin và bạn chỉ đọc tài liệu, ổ SSD NVMe và card Wi-Fi vẫn nối với bộ xử lý qua các đường PCIe, mà đường nào luôn ở tư thế sẵn sàng cũng tốn điện. ASPM (Active State Power Management) là chế độ tiết kiệm điện của khe PCIe: nói đơn giản, lúc không có dữ liệu chạy qua, đường truyền tự chuyển sang nấc nghỉ rồi bật lại khi cần. Mình sẽ giải thích từng nấc nghỉ, cách chỉnh trong Windows và cái giá về độ trễ mà bạn nên biết trước khi đụng vào thiết lập này.

ASPM là gì và vì sao liên kết PCIe trên laptop cần nghỉ

PCIe là đường truyền nối bộ xử lý hoặc chipset với ổ SSD, card Wi-Fi hay GPU rời. Mỗi đường gồm một hoặc nhiều làn, mỗi làn có mạch phát và mạch thu chạy ở tốc độ cao, nên chỉ riêng việc duy trì liên kết sẵn sàng đã tiêu tốn điện năng. Theo bài phân tích kỹ thuật của Synopsys năm 2012, ở nấc chờ L1 truyền thống, mỗi làn vẫn có thể tiêu thụ khoảng 10 đến 25 mW, trong khi mục tiêu cho thiết bị di động là kéo mức nhàn rỗi xuống cỡ vài chục microwatt.

Sơ đồ ASPM cho liên kết PCIe giữa bộ xử lý và SSD trên laptop chuyển sang nấc nghỉ

Cơ chế này giải quyết đúng chỗ tốn điện đó. Tài liệu quản lý nguồn của Red Hat mô tả ASPM hạ trạng thái điện của liên kết PCIe khi thiết bị ở hai đầu không trao đổi dữ liệu, đồng thời điều khiển cả hai đầu cùng lúc. Bản chất khác biệt là thiết bị vẫn duy trì trạng thái hoạt động đầy đủ, chỉ có đường truyền giữa chúng được cho nghỉ. Mình hay ví nó giống thang cuốn ở trung tâm thương mại: vắng khách thì dừng, có người bước lên thì chạy lại ngay.

Với laptop, lợi ích nằm ở những khoảng nhàn rỗi rất ngắn nhưng lặp lại liên tục, chẳng hạn giữa hai lần gõ phím hay giữa hai gói tin Wi-Fi. Cộng dồn hàng nghìn khoảng nghỉ như vậy trong một buổi làm việc, cơ chế này góp phần kéo dài thời lượng pin mà bạn không cần thao tác gì. Cái giá phải trả là độ trễ: Red Hat ghi rõ khi bật tính năng, độ trễ của thiết bị tăng lên vì liên kết cần thời gian chuyển qua lại giữa các trạng thái điện.

Các trạng thái L0s, L1, L1.1 và L1.2 khác nhau ở điểm nào

Trạng thái làm việc bình thường của liên kết gọi là L0, khi dữ liệu chạy qua với đầy đủ băng thông. Nấc nghỉ nông nhất là L0s, cho phép từng hướng truyền nghỉ riêng, còn nấc sâu hơn là trạng thái L1, khi cả hai đầu liên kết cùng ngừng truyền. Mỗi thiết bị tự khai báo thời gian cần để thoát khỏi từng nấc, và mã nguồn quản lý nguồn liên kết trong nhân Linux quy đổi các mã khai báo này ra nano giây, micro giây theo bảng dưới đây.

Trạng thái Phần mạch được cho nghỉ Độ trễ thoát được khai báo
L0 Không nghỉ, truyền dữ liệu với đầy đủ băng thông Không có
L0s Một hướng truyền nghỉ, hướng kia vẫn có thể hoạt động Từ 64 ns đến hơn 4 µs
L1 Cả hai đầu liên kết cùng nghỉ Từ 1 µs đến hơn 64 µs
L1.1 Như L1 nhưng sâu hơn, vẫn giữ mạch điện áp chế độ chung Cộng thêm vào độ trễ L1
L1.2 Tắt toàn bộ mạch tốc độ cao, cần hỗ trợ LTR Cộng thêm vào độ trễ L1

Hai nấc L1.1 và L1.2 thuộc nhóm L1 PM Substates, được bổ sung để hạ điện nghỉ xuống sâu hơn trạng thái L1 gốc. Theo Synopsys, L1.1 vẫn giữ mạch điện áp chế độ chung (common-mode), còn L1.2 tắt toàn bộ mạch tốc độ cao và yêu cầu thiết bị hỗ trợ LTR (Latency Tolerance Reporting, cơ chế báo mức trễ chịu được). Tín hiệu CLKREQ# giúp thiết bị bắt tay với bộ điều khiển xung nhịp tham chiếu của hệ thống khi cần bật lại, và phần tiết kiệm thêm này đổi lại bằng thời gian thoát khỏi trạng thái L1 dài hơn.

Điểm mấu chốt nằm ở cột độ trễ. Một liên kết ở trạng thái L1 có thể mất vài micro giây mới truyền lại được, con số rất nhỏ so với thao tác của bạn nhưng đáng kể với ổ SSD xử lý hàng trăm nghìn lệnh mỗi giây. Vì thế nhân Linux chỉ bật một nấc nghỉ khi tổng độ trễ của cả chuỗi thiết bị nằm trong ngưỡng mà thiết bị đầu cuối khai báo là chấp nhận được, thay vì bật mọi nấc cho mọi linh kiện.

Những linh kiện nào trên laptop dùng ASPM để giảm điện năng

Trên một chiếc laptop phổ thông, các thiết bị nối qua PCIe thường gồm ổ SSD NVMe, card Wi-Fi dạng M.2, đầu đọc thẻ nhớ và GPU rời nếu cấu hình có. Ổ SSD SATA không nằm trong nhóm này vì dùng giao tiếp SATA với cơ chế hạ điện riêng. Nếu bạn chưa rõ khe M.2 trên laptop của mình đang chạy chuẩn nào, bài Slot M.2 SSD Laptop của bạn hỗ trợ NVMe hay SATA? Cách tự kiểm tra trước khi nâng cấp SSD hướng dẫn cách nhận biết chỉ trong vài bước.

Ổ SSD NVMe và card Wi-Fi M.2 trên bo mạch laptop là các linh kiện dùng ASPM

Ổ SSD NVMe là nơi ASPM phát huy rõ nhất vì ổ có hai lớp hạ điện chồng lên nhau. Lớp thứ nhất là liên kết PCIe vào trạng thái L1 hoặc các nấc con của nó. Lớp thứ hai là trạng thái điện bên trong ổ: theo Microsoft, chuẩn NVMe cho phép ổ khai báo tối đa 32 trạng thái điện, mỗi trạng thái kèm công suất tối đa, độ trễ vào và độ trễ thoát. Tính năng APST (Autonomous Power State Transition) cho phép ổ tự chuyển giữa các trạng thái này, còn trình điều khiển StorNVMe của Windows không hỗ trợ ổ bật APST trên hệ thống Modern Standby.

Về số liệu cụ thể, Samsung công bố ổ 990 EVO Plus 2TB tiêu thụ 4,6 W khi đọc và 4,2 W khi ghi, còn mục Device Sleep (L1.2) ghi hai mức điển hình 60 mW và 5 mW. Khoảng cách từ đơn vị watt xuống mili watt giữa lúc làm việc và lúc ngủ sâu cho thấy vì sao một ổ không vào được trạng thái L1.2 có thể khiến laptop hao pin rõ rệt khi để yên. Card Wi-Fi và GPU rời cũng theo cùng nguyên tắc, chỉ khác ở ngưỡng độ trễ mà từng thiết bị đáp ứng được.

Chỉnh Link State Power Management trong Power Options của Windows

Windows có sẵn một tùy chọn điều khiển ASPM ngay trong Power Options. Bạn mở Control Panel, vào Power Options, chọn Change plan settings rồi Change advanced power settings, sau đó mở nhóm PCI Express để thấy dòng Link State Power Management. Mỗi gói nguồn có hai giá trị riêng cho lúc chạy pin (On battery) và lúc cắm sạc (Plugged in), nên bạn cần kiểm tra cả hai cột thay vì chỉ nhìn một bên.

Mục Link State Power Management trong Power Options của Windows dùng để chỉnh ASPM

Theo tài liệu quản lý nguồn cho ổ NVMe trên Microsoft Learn, Link State Power Management có ba giá trị: Off (0), Moderate power savings (1) và Maximum power savings (2). Trang mô tả riêng thiết lập này ghi Moderate cho hệ thống thử dùng nấc nghỉ nông khi liên kết rảnh, còn Maximum cho phép dùng trạng thái L1. Microsoft cũng lưu ý một số nền tảng chỉ kích hoạt L1 Substates cho ổ NVMe khi chạy pin, nên muốn ổ ngủ sâu cả lúc cắm sạc thì cần đặt Maximum power savings cho cột cắm sạc.

Nếu dòng Link State Power Management không hiện, bạn có thể dùng lệnh powercfg với bí danh SUB_PCIEXPRESS mà Microsoft công bố. Lệnh powercfg -setacvalueindex SCHEME_CURRENT SUB_PCIEXPRESS ASPM 2 đặt mức Maximum power savings khi cắm sạc, đổi setacvalueindex thành setdcvalueindex để áp cho lúc chạy pin, rồi chạy powercfg -setactive SCHEME_CURRENT để thiết lập có hiệu lực. Nếu đã chỉnh nhiều mục và muốn quay về cấu hình gốc, bài Cách Reset Power Plan về mặc định trong Windows hướng dẫn đưa gói nguồn về trạng thái ban đầu.

Độ trễ đánh thức ASPM ảnh hưởng SSD và pin ra sao

Câu hỏi nhiều bạn quan tâm là ASPM có làm chậm SSD hay không. Câu trả lời ngắn là có phát sinh độ trễ, nhưng chủ yếu ở lệnh đầu tiên sau một quãng nghỉ, vì khi ổ đang truyền dữ liệu liên tục thì liên kết vẫn ở L0 với đầy đủ băng thông. Windows điều phối việc hạ điện của ổ NVMe bằng các ngưỡng thời gian chờ và mức trễ cho phép, thay đổi theo gói nguồn, như bảng tổng hợp từ Microsoft Learn dưới đây.

Gói nguồn hoặc trạng thái Thời gian chờ khi cắm sạc (ms) Thời gian chờ khi chạy pin (ms) Độ trễ cho phép khi cắm sạc (ms) Độ trễ cho phép khi chạy pin (ms)
High performance 200 200 0 10
Balanced 200 100 15 50
Power saver 100 100 100 200
Modern Standby 50 50 500 500

Bảng trên cho thấy ở gói Balanced khi chạy pin, ổ được đưa vào trạng thái nghỉ sau 100 ms không có lệnh và chấp nhận độ trễ chuyển trạng thái tới 50 ms, gấp hơn ba lần mức 15 ms lúc cắm sạc. Các ngưỡng này áp cho trạng thái điện bên trong ổ, vận hành song song với nấc nghỉ của liên kết. Gói Balanced ở đây là gói nguồn của Windows, khác với các chế độ Silent hay Turbo do hãng cài thêm, điểm mà bài Chế độ hiệu năng trên laptop - Silent, Balanced, Turbo khác nhau thế nào? phân tích kỹ hơn.

Về pin, mình không đưa ra con số giờ cụ thể vì mức chênh lệch phụ thuộc linh kiện, firmware và thói quen sử dụng, và mình chưa thấy tài liệu chính thức nào công bố phép thử riêng cho tính năng này. Điều có thể khẳng định là ở Modern Standby, Microsoft đặt yêu cầu hệ thống thức dậy trong 1 giây và khuyến nghị ổ NVMe khai báo độ trễ phục hồi từ D3cold không quá 100 ms. Lệnh powercfg /sleepstudy tạo báo cáo chất lượng Modern Standby trong ba ngày gần nhất để bạn tự xác minh.

Lỗi thường gặp khi bật ASPM và lúc nào nên tắt

Vì ASPM đòi hai đầu liên kết phối hợp đúng, một linh kiện có lỗi phần cứng hoặc firmware chưa chuẩn có thể không thức dậy kịp. Triệu chứng hay gặp là Wi-Fi rớt mạng sau một lúc để yên, ổ SSD biến mất hoặc khựng vài giây, laptop đứng hình khi thoát khỏi chế độ ngủ. Chuỗi bản vá nhân Linux năm 2023 của kỹ sư Intel Ilpo Järvinen cho thấy trình điều khiển của một số chip Wi-Fi (mt76, ath10k, ath11k, ath12k) và card mạng e1000e từng phải tự khóa một phần nấc nghỉ, có trường hợp ghi rõ là do lỗi phần cứng.

Laptop gặp lỗi Wi-Fi rớt mạng do ASPM và thao tác tắt thiết lập để kiểm tra

Trên Windows, cách kiểm tra an toàn là đặt Link State Power Management về Off cho cột cắm sạc, dùng thử vài ngày và xem lỗi còn lặp lại không. Nếu lỗi biến mất, bạn nên cập nhật BIOS, driver chipset và driver Wi-Fi từ trang hỗ trợ của hãng laptop rồi bật lại, thay vì tắt vĩnh viễn và chịu suy giảm thời lượng pin. Lệnh powercfg /energy theo dõi hệ thống trong 60 giây và xuất báo cáo HTML liệt kê các vấn đề về hiệu suất năng lượng, giúp bạn thấy thiết bị nào đang cản trở việc hạ điện.

Với Linux, tài liệu tham số khởi động trên kernel.org ghi pcie_aspm=off nghĩa là nhân không chạm vào cấu hình liên kết và giữ nguyên thiết lập do firmware đặt, còn pcie_aspm=force bật tính năng cả trên thiết bị khai báo không hỗ trợ, kèm cảnh báo có thể làm hệ thống treo. Tài liệu của Red Hat lại mô tả tham số off là tắt hẳn tính năng, nên bạn cần đọc đúng tài liệu của phiên bản nhân đang dùng. Mình chỉ tắt hẳn khi lỗi đã được xác định chắc do liên kết, không tắt chỉ vì nghi ngờ.

Câu hỏi thường gặp (FAQ)

Nên để Link State Power Management ở mức nào cho laptop văn phòng?

Với laptop dùng cho văn phòng và học tập, mình ưu tiên để Maximum power savings ở cả hai cột chạy pin và cắm sạc nếu laptop không gặp lỗi kết nối. Mức này cho phép liên kết vào trạng thái L1 khi rảnh, đúng như mô tả của Microsoft, và độ trễ phát sinh ở mức micro giây khó nhận ra khi soạn thảo hay duyệt web. Chỉ khi Wi-Fi rớt hoặc SSD khựng lặp lại, bạn mới hạ về Moderate hoặc Off để khoanh vùng nguyên nhân.

ASPM có làm giảm tốc độ đọc ghi của SSD NVMe khi chép file lớn không?

Khi chép file lớn, ổ nhận lệnh liên tục nên liên kết gần như luôn ở L0 và tốc độ tuần tự không bị cắt. Độ trễ chỉ xuất hiện ở lệnh đầu tiên sau quãng nghỉ, khi liên kết phải thoát khỏi trạng thái L1 hoặc nấc sâu hơn, với mức từ 1 µs đến hơn 64 µs tùy mã khai báo của thiết bị. Red Hat cũng xác nhận độ trễ thiết bị tăng khi bật cơ chế này, nên các phép đo độ trễ ngắn sẽ thấy chênh lệch rõ hơn thao tác hằng ngày.

Laptop không có dòng Link State Power Management trong Power Options thì làm sao?

Một số laptop không hiện dòng Link State Power Management trong giao diện. Bạn có thể xem giá trị hiện tại bằng lệnh powercfg /query SCHEME_CURRENT SUB_PCIEXPRESS rồi chỉnh bằng setacvalueindex và setdcvalueindex như hướng dẫn ở trên. Nếu đổi giá trị mà hành vi của laptop vẫn không thay đổi, firmware có thể đang giữ quyền cấu hình liên kết, khi đó bạn kiểm tra phiên bản BIOS mới trên trang hỗ trợ của hãng.

← Bài trước

0 phản hồi cho “ASPM là gì - Chế độ tiết kiệm điện của khe PCIe có làm chậm SSD không?”

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *