요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
====================================
Arm Network-on Chip Interconnect PMU
====================================
NI-700 and friends implement a distinct PMU for each clock domain within the
interconnect. Correspondingly, the driver exposes multiple PMU devices named
arm_ni_<x>_cd_<y>, where <x> is an (arbitrary) instance identifier and <y> is
the clock domain ID within that particular instance. If multiple NI instances
exist within a system, the PMU devices can be correlated with the underlying
hardware instance via sysfs parentage.
Each PMU exposes base event aliases for the interface types present in its clock
domain. These require qualifying with the "eventid" and "nodeid" parameters
to specify the event code to count and the interface at which to count it
(per the configured hardware ID as reflected in the xxNI_NODE_INFO register).
The exception is the "cycles" alias for the PMU cycle counter, which is encoded
with the PMU node type and needs no further qualification.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Clock-domain별 PMU naming
1-10`Arm Network-on Chip Interconnect PMU`의 NI-700 계열은 interconnect의 clock domain마다 별도 PMU를 구현합니다.
Driver는 `arm_ni_<x>_cd_<y>` 이름으로 여러 PMU device를 노출합니다. `<x>`는 임의의 instance identifier이고 `<y>`는 해당 instance 안의 clock-domain ID입니다.
System에 NI instance가 여러 개면 sysfs parentage를 통해 PMU device를 underlying hardware instance와 연결할 수 있습니다.
Event alias와 qualifier
11-17각 PMU는 clock domain에 존재하는 interface type의 `base event aliases`를 노출합니다. Count할 event code와 interface를 지정하려면 `eventid`와 `nodeid` qualifier가 필요하며 hardware ID는 `xxNI_NODE_INFO` register에 반영된 configuration을 따릅니다.
| 항목 | 의미 |
|---|---|
| PMU name | `arm_ni_<x>_cd_<y>` |
| `<x>` | 임의의 interconnect instance identifier |
| `<y>` | 해당 instance 안의 clock-domain ID |
| Base alias | `eventid` event code + `nodeid` interface ID |
| `cycles` alias | PMU node type으로 encode하며 추가 qualifier 불필요 |
예외인 `cycles` alias는 PMU cycle counter용이며 PMU node type으로 encode돼 추가 qualifier가 필요 없습니다.
운영 핵심
arm-ni.rst:1-17PMU 이름에서 hardware instance와 clock domain을 구분하고 interface event에는 eventid와 nodeid를 함께 지정합니다.