활성 상태 전원 관리(ASPM)란?



활성 상태 전원 관리(ASPM)

활성 상태 전원 관리(ASPM)이란?

활성 상태 전원 관리(ASPM, Active-State Power Management)는 PCIe 서브시스템의 전원 소비를 PCIe 연결로 접속된 장치가 사용중이 아닐 때 저전력 상태로 변경해서 절약하는 정책입니다. ASPM은 연결된 디바이스들의 전원 상태를 제어합니다.

만약, 하나의 장치는 전원 소비를 낮추려고 하고, 연결의 한쪽 끝에 있는 장치가 완전히 전원이 켜져있는 상태라고 하더라도, ASPM은 전력 소비를 줄여줍니다. (하나의 장치가 빠르게 전송하고 다른 장치는 빠르게 전송하지 않으면, 느린 장치의 속도에 맞춰서 전송하기 때문에 그런 것으로 보여집니다.) 따라서, 서로 다른 전원 상태에 있는 연결 양 끝단의 장치들이 상태를 변경해야 하기 때문에, 지연 시간이 발생합니다.

연결된 디바이스는 항상 최고의 성능을 내는 전원 상태를 유지하지 않습니다. 예를 들어, 다양한 기기들은 배터리를 사용하기 때문에, 전원 소비를 적절하게 낮춰야합니다. 항상 전원을 많이 쓰는 것은 성능에는 더 도움을 줄 수도 있지만, 항상 최고 성능을 사용하지 않는 곳에서는 많은 전기를 필요로 하기 때문에 좋은 정책은 아닙니다. 필요한 시점에서 적절한 성능을 내면서 적당한 전기를 써야 좋은 전원 정책이라고 할 수 있을 것입니다. 이런 관점에서 ASPM가 필요합니다.

ASPM의 전원 정책

ASPM 아래의 3가지 정책을 사용합니다

정책 역할
default PCIe 연결의 전원 상태를 시스템의 펌웨어(예: BIOS)에 지정된 디폴트 상태로 설정합니다. 이는 ASPM의 디폴트 상태입니다.
powersave ASPM을 성능 감소를 감수하고라도 가능한 한 전력을 덜 소비하도록 설정합니다.
performance ASPM을 비활성화해서 PCIe 연결이 최대 성능을 발휘하도록 합니다.

ASPM 설정 방법

  • 리눅스에서는 ASPM 정책은 /sys/module/pcie_aspm/parameters/policy에 설정되어 있습니다.
  • 시스템 부팅시 pcie_aspm 커널 매개변수를 사용해 설정할 수도 있습니다.
    • pcie_aspm=off 는 ASPM 비활성
    • pcie_aspm=force 는 ASPM 활성

참고

  • https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/6/html/power_management_guide/aspm