*Psphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/arch/arm64/amumodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/zh_TW/arch/arm64/amumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/it_IT/arch/arm64/amumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ja_JP/arch/arm64/amumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ko_KR/arch/arm64/amumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/sp_SP/arch/arm64/amumodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh]hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhO/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/arch/arm64/amu.rsthKubh field_body)}(h4:ref:`Documentation/arch/arm64/amu.rst ` h]h)}(h3:ref:`Documentation/arch/arm64/amu.rst `h]h)}(hhh]hinline)}(hhh]h Documentation/arch/arm64/amu.rst}(hhhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&]refdoc!translations/zh_CN/arch/arm64/amu refdomainhreftyperef refexplicitrefwarn reftarget amu_indexuh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(h*Translator: Bailu Lin h](hTranslator: Bailu Lin <}(hjhhhNhNubh reference)}(hbailu.lin@vivo.comh]hbailu.lin@vivo.com}(hj)hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:bailu.lin@vivo.comuh1j'hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhsection)}(hhh](htitle)}(h,AArch64 Linux 中扩展的活动监控单元h]h,AArch64 Linux 中扩展的活动监控单元}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjEhhhhhK ubh)}(h1作者: Ionela Voinescu h](h作者: Ionela Voinescu <}(hjXhhhNhNubj()}(hionela.voinescu@arm.comh]hionela.voinescu@arm.com}(hj`hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:ionela.voinescu@arm.comuh1j'hjXubh>}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjEhhubh)}(h日期: 2019-09-10h]h日期: 2019-09-10}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjEhhubh)}(hN本文档简要描述了 AArch64 Linux 支持的活动监控单元的规范。h]hN本文档简要描述了 AArch64 Linux 支持的活动监控单元的规范。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjEhhubjD)}(hhh](jI)}(h 架构总述h]h 架构总述}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjhhhhhKubh)}(hF活动监控是 ARMv8.4 CPU 架构引入的一个可选扩展特性。h]hF活动监控是 ARMv8.4 CPU 架构引入的一个可选扩展特性。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h活动监控单元(在每个 CPU 中实现)为系统管理提供了性能计数器。既可以通 过系统寄存器的方式访问计数器,同时也支持外部内存映射的方式访问计数器。h]h活动监控单元(在每个 CPU 中实现)为系统管理提供了性能计数器。既可以通 过系统寄存器的方式访问计数器,同时也支持外部内存映射的方式访问计数器。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hWAMUv1 架构实现了一个由4个固定的64位事件计数器组成的计数器组。h]hWAMUv1 架构实现了一个由4个固定的64位事件计数器组成的计数器组。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh block_quote)}(hX(- CPU 周期计数器:同 CPU 的频率增长 - 常量计数器:同固定的系统时钟频率增长 - 淘汰指令计数器: 同每次架构指令执行增长 - 内存停顿周期计数器:计算由在时钟域内的最后一级缓存中未命中而引起 的指令调度停顿周期数 h]h bullet_list)}(hhh](h list_item)}(h-CPU 周期计数器:同 CPU 的频率增长h]h)}(hjh]h-CPU 周期计数器:同 CPU 的频率增长}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h6常量计数器:同固定的系统时钟频率增长h]h)}(hjh]h6常量计数器:同固定的系统时钟频率增长}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h8淘汰指令计数器: 同每次架构指令执行增长h]h)}(hjh]h8淘汰指令计数器: 同每次架构指令执行增长}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h内存停顿周期计数器:计算由在时钟域内的最后一级缓存中未命中而引起 的指令调度停顿周期数 h]h)}(h内存停顿周期计数器:计算由在时钟域内的最后一级缓存中未命中而引起 的指令调度停顿周期数h]h内存停顿周期计数器:计算由在时钟域内的最后一级缓存中未命中而引起 的指令调度停顿周期数}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubh)}(h=当处于 WFI 或者 WFE 状态时,计数器不会增长。h]h=当处于 WFI 或者 WFE 状态时,计数器不会增长。}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjhhubh)}(hAMU 架构提供了一个高达16位的事件计数器空间,未来新的 AMU 版本中可能 用它来实现新增的事件计数器。h]hAMU 架构提供了一个高达16位的事件计数器空间,未来新的 AMU 版本中可能 用它来实现新增的事件计数器。}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjhhubh)}(hU另外,AMUv1 实现了一个多达16个64位辅助事件计数器的计数器组。h]hU另外,AMUv1 实现了一个多达16个64位辅助事件计数器的计数器组。}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjhhubh)}(h*冷复位时所有的计数器会清零。h]h*冷复位时所有的计数器会清零。}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjhhubeh}(h]id1ah ]h"] 架构总述ah$]h&]uh1jChjEhhhhhKubjD)}(hhh](jI)}(h 基本支持h]h 基本支持}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjhhhhhK-ubh)}(h内核可以安全地运行在支持 AMU 和不支持 AMU 的 CPU 组合中。 因此,当配置 CONFIG_ARM64_AMU_EXTN 后我们无条件使能后续 (secondary or hotplugged) CPU 检测和使用这个特性。h]h内核可以安全地运行在支持 AMU 和不支持 AMU 的 CPU 组合中。 因此,当配置 CONFIG_ARM64_AMU_EXTN 后我们无条件使能后续 (secondary or hotplugged) CPU 检测和使用这个特性。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjhhubh)}(h当在 CPU 上检测到该特性时,我们会标记为特性可用但是不能保证计数器的功能, 仅表明有扩展属性。h]h当在 CPU 上检测到该特性时,我们会标记为特性可用但是不能保证计数器的功能, 仅表明有扩展属性。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjhhubh)}(hO固件(代码运行在高异常级别,例如 arm-tf )需支持以下功能:h]hO固件(代码运行在高异常级别,例如 arm-tf )需支持以下功能:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjhhubj)}(h- 提供低异常级别(EL2 和 EL1)访问 AMU 寄存器的能力。 - 使能计数器。如果未使能,它的值应为 0。 - 在从电源关闭状态启动 CPU 前或后保存或者恢复计数器。 h]j)}(hhh](j)}(hB提供低异常级别(EL2 和 EL1)访问 AMU 寄存器的能力。h]h)}(hjh]hB提供低异常级别(EL2 和 EL1)访问 AMU 寄存器的能力。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h8使能计数器。如果未使能,它的值应为 0。h]h)}(hjh]h8使能计数器。如果未使能,它的值应为 0。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hK在从电源关闭状态启动 CPU 前或后保存或者恢复计数器。 h]h)}(hJ在从电源关闭状态启动 CPU 前或后保存或者恢复计数器。h]hJ在从电源关闭状态启动 CPU 前或后保存或者恢复计数器。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jAjBuh1jhhhK8hjubah}(h]h ]h"]h$]h&]uh1jhhhK8hjhhubh)}(hX!当使用使能了该特性的内核启动但固件损坏时,访问计数器寄存器可能会遭遇 panic 或者死锁。即使未发现这些症状,计数器寄存器返回的数据结果并不一 定能反映真实情况。通常,计数器会返回 0,表明他们未被使能。h]hX!当使用使能了该特性的内核启动但固件损坏时,访问计数器寄存器可能会遭遇 panic 或者死锁。即使未发现这些症状,计数器寄存器返回的数据结果并不一 定能反映真实情况。通常,计数器会返回 0,表明他们未被使能。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK