Link PCI Express tidak perlu terus berada pada daya aktif penuh ketika tidak ada paket yang bergerak. Active State Power Management, atau ASPM, memungkinkan pasangan link yang kompatibel memasuki state link berdaya lebih rendah selama periode idle lalu kembali aktif ketika trafik berlanjut.
Trade-off-nya langsung: state idle yang lebih dalam dapat menghemat lebih banyak energi, tetapi membutuhkan waktu lebih lama untuk keluar. Sistem karena itu menyeimbangkan daya link dengan latensi tambahan pada transfer berikutnya.
ASPM bekerja pada link PCIe, bukan dengan menempatkan seluruh perangkat ke device power state. Perangkat dapat tetap tersedia secara logis sementara koneksinya memakai kondisi berdaya lebih rendah di antara burst trafik.
Link aktif memiliki biaya saat idle
Koneksi PCIe memiliki sirkuit transmit dan receive berkecepatan tinggi yang tetap mengonsumsi daya ketika trafik berguna jarang muncul. Menjaga seluruh sirkuit link selalu siap meminimalkan waktu respons, tetapi membuang energi selama interval idle yang panjang.
Biaya ini penting pada sistem berbaterai dan platform dengan banyak link PCIe. Storage controller, network adapter, Wi-Fi controller, atau endpoint lain dapat menghabiskan banyak waktu menunggu di antara burst singkat.
ASPM mengurangi biaya idle tersebut tanpa mengharuskan software mematikan perangkat pada setiap periode tenang.
L0 adalah state aktif normal
PCIe menyebut state operasional normal sebagai L0. Dalam L0, link siap membawa transaction-layer packet dan trafik lain yang diperlukan.
Bertahan di L0 memberi respons tercepat karena tidak ada urutan keluar dari low-power state. Kekurangannya, link fisik tetap berada dalam kondisi operasi aktif.
ASPM berguna ketika jeda trafik cukup panjang sehingga penghematan energi dapat menutup biaya energi dan waktu untuk masuk serta keluar dari state berdaya rendah. Jeda sangat pendek mungkin memberi sedikit manfaat, sedangkan jeda lebih panjang memberi peluang penghematan lebih besar.
L0s menyediakan state idle yang lebih ringan
L0s adalah low-power link state yang relatif dangkal. State ini dapat mengurangi daya pada satu arah link ketika arah tersebut tidak memiliki trafik untuk dikirim.
Latensi keluarnya relatif singkat karena lebih sedikit state link yang dimatikan. Karena itu L0s cocok untuk periode idle singkat ketika transisi yang lebih dalam akan menambah terlalu banyak delay.
Penghematannya juga lebih terbatas dibanding state yang lebih dalam. Dukungan dan penggunaan L0s berbeda antar-hardware dan konfigurasi platform; keberadaan state dalam spesifikasi PCIe tidak berarti sistem otomatis memakainya.
L1 lebih dalam dan lebih lama untuk keluar
L1 adalah link power state yang lebih dalam. Lebih banyak sirkuit link dapat mengurangi aktivitas sehingga penghematan idle umumnya lebih besar daripada L0s.
Konsekuensinya adalah jalur kembali ke L0 yang lebih panjang. Sebelum trafik normal dapat berjalan, link harus memulihkan kondisi fisik yang diperlukan dan menyelesaikan proses keluar yang ditentukan.
Delay ini dapat berarti bagi workload sensitif latensi atau perangkat yang berulang kali berganti antara idle singkat dan transfer kecil. Hasil praktis bergantung pada bentuk trafik, implementasi hardware, dan kebijakan platform, bukan hanya peak bandwidth.
L1 substates memperluas rentang penghematan daya
PCIe juga mendefinisikan L1 substates, termasuk L1.1 dan L1.2, untuk pengurangan daya idle tambahan pada hardware yang mendukungnya.
Substate ini dapat mematikan lebih banyak resource physical layer dibanding L1 dasar. L1.2 dapat menghasilkan daya link yang sangat rendah dengan menonaktifkan resource yang masih dipertahankan oleh L1 biasa.
Pengurangan yang lebih dalam membutuhkan pemulihan lebih banyak. Reference clock, common-mode signaling, atau kondisi listrik lain mungkin harus dipulihkan sebelum link kembali ke operasi normal.
Hal ini menyediakan pilihan daya dan latensi yang lebih luas. Kedua ujung link dan platform di sekitarnya harus mendukung perilaku yang relevan, sementara firmware dan kebijakan sistem operasi memengaruhi state mana yang diaktifkan.
ASPM berbeda dari device D-states
Manajemen daya perangkat PCIe dan ASPM bekerja pada lapisan yang berkaitan tetapi berbeda.
Device power state, yang umum disebut D0 hingga D-state berdaya lebih rendah, berkaitan dengan kondisi daya fungsional perangkat. Memindahkan perangkat ke D-state yang dalam dapat menonaktifkan banyak fungsi internal dan membutuhkan pemulihan lebih lama.
ASPM berkaitan dengan link antar-komponen. Endpoint dapat tetap berada dalam device state operasional sementara link memasuki low-power state ASPM saat tidak aktif.
Kedua mekanisme juga dapat bekerja bersama. Platform yang mengejar daya idle rendah dapat mengurangi daya perangkat sekaligus daya link ketika kondisi memungkinkan.
Pola trafik menentukan trade-off praktis
Utilisasi rata-rata saja tidak menjelaskan efektivitas ASPM. Dua workload dapat memindahkan jumlah data per detik yang sama tetapi memiliki peluang idle yang sangat berbeda.
Satu workload mungkin mengirim stream stabil dengan jeda sangat kecil. Workload lain mengirim total data yang sama dalam burst singkat yang dipisahkan periode tenang panjang. Pola burst memberi link lebih banyak waktu berada dalam low-power state setelah overhead transisi dibayar.
Ini juga persoalan latensi. Jika setiap burst tiba tepat setelah link memasuki state lebih dalam, wake delay dapat berulang sering. Jika burst dipisahkan jeda panjang, delay yang sama bisa kecil dibanding energi yang dihemat.
Kebijakan platform dapat membatasi state yang tersedia
ASPM dinegosiasikan dan dikendalikan sebagai bagian dari platform yang lebih besar. Kemampuan endpoint saja tidak menjamin semua low-power mode akan digunakan.
Root port, endpoint, konfigurasi firmware, sistem operasi, dan constraint khusus platform dapat memengaruhi kebijakan. Hardware errata juga dapat membuat platform menghindari state yang secara nominal didukung.
Sebagian sistem memprioritaskan penghematan daya agresif, sementara yang lain memprioritaskan latensi respons atau kompatibilitas. Karena itu dua komputer dengan perangkat PCIe serupa dapat menunjukkan perilaku daya link yang berbeda.
Menonaktifkan ASPM dapat menaikkan daya idle
Menonaktifkan ASPM mencegah link memakai transisi low-power active-state yang terkait. Hal ini dapat menghilangkan wake latency dari transisi tersebut, tetapi membuat lebih banyak sirkuit link tetap aktif saat idle.
Perbedaan daya mungkin kecil untuk satu link dan lebih besar jika dijumlahkan pada seluruh platform portabel. Dampaknya dapat terlihat pada runtime baterai dan beban termal meskipun benchmark throughput tidak berubah.
Karena itu, menonaktifkan ASPM bukan peningkatan performa universal. Perubahan tersebut menukar efisiensi idle dengan link yang lebih segera siap.
Peak bandwidth tetap merupakan properti terpisah
ASPM tidak menaikkan atau menurunkan generasi PCIe atau jumlah lane yang dinegosiasikan hanya karena mekanisme ini aktif. Setelah link kembali ke L0, kemampuan transfer aktif mengikuti konfigurasi link yang dinegosiasikan.
Efek performa yang terlihat terutama berasal dari latensi transisi ketika trafik kembali, ditambah efek sekunder dari perilaku platform. Transfer besar berkelanjutan menghabiskan sebagian besar waktunya dengan link aktif sehingga overhead transisi cenderung kurang penting. Pola request yang jarang dapat lebih jelas memperlihatkan biaya wake.
Metrik yang berguna adalah energi yang dihemat per interval idle
Low-power state bernilai ketika interval idle cukup panjang sehingga penghematannya melebihi biaya transisi dan exit delay masih sesuai target latensi workload.
State dangkal menargetkan jeda lebih pendek dengan pemulihan lebih cepat. State lebih dalam menargetkan jeda lebih panjang dengan daya idle lebih rendah dan waktu pemulihan lebih besar.
Itulah perilaku inti PCIe ASPM. Mekanisme ini tidak membuat link lebih cepat dan tidak mematikan seluruh perangkat. ASPM mengurangi energi untuk menjaga koneksi idle tetap siap, lalu membayar latensi terbatas ketika transfer berikutnya mengembalikan link ke aktivitas penuh.