xref: /OK3568_Linux_fs/kernel/Documentation/translations/zh_CN/arm64/legacy_instructions.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunChinese translated version of Documentation/arm64/legacy_instructions.rst
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunIf you have any comment or update to the content, please contact the
4*4882a593Smuzhiyunoriginal document maintainer directly.  However, if you have a problem
5*4882a593Smuzhiyuncommunicating in English you can also ask the Chinese maintainer for
6*4882a593Smuzhiyunhelp.  Contact the Chinese maintainer if this translation is outdated
7*4882a593Smuzhiyunor if there is a problem with the translation.
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunMaintainer: Punit Agrawal <punit.agrawal@arm.com>
10*4882a593Smuzhiyun            Suzuki K. Poulose <suzuki.poulose@arm.com>
11*4882a593SmuzhiyunChinese maintainer: Fu Wei <wefu@redhat.com>
12*4882a593Smuzhiyun---------------------------------------------------------------------
13*4882a593SmuzhiyunDocumentation/arm64/legacy_instructions.rst 的中文翻译
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
16*4882a593Smuzhiyun交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
17*4882a593Smuzhiyun译存在问题,请联系中文版维护者。
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun本文翻译提交时的 Git 检出点为: bc465aa9d045feb0e13b4a8f32cc33c1943f62d6
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun英文版维护者: Punit Agrawal <punit.agrawal@arm.com>
22*4882a593Smuzhiyun            Suzuki K. Poulose <suzuki.poulose@arm.com>
23*4882a593Smuzhiyun中文版维护者: 傅炜  Fu Wei <wefu@redhat.com>
24*4882a593Smuzhiyun中文版翻译者: 傅炜  Fu Wei <wefu@redhat.com>
25*4882a593Smuzhiyun中文版校译者: 傅炜  Fu Wei <wefu@redhat.com>
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun以下为正文
28*4882a593Smuzhiyun---------------------------------------------------------------------
29*4882a593SmuzhiyunLinux 内核在 arm64 上的移植提供了一个基础框架,以支持构架中正在被淘汰或已废弃指令的模拟执行。
30*4882a593Smuzhiyun这个基础框架的代码使用未定义指令钩子(hooks)来支持模拟。如果指令存在,它也允许在硬件中启用该指令。
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun模拟模式可通过写 sysctl 节点(/proc/sys/abi)来控制。
33*4882a593Smuzhiyun不同的执行方式及 sysctl 节点的相应值,解释如下:
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun* Undef(未定义)
36*4882a593Smuzhiyun  值: 0
37*4882a593Smuzhiyun  产生未定义指令终止异常。它是那些构架中已废弃的指令,如 SWP,的默认处理方式。
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun* Emulate(模拟)
40*4882a593Smuzhiyun  值: 1
41*4882a593Smuzhiyun  使用软件模拟方式。为解决软件迁移问题,这种模拟指令模式的使用是被跟踪的,并会发出速率限制警告。
42*4882a593Smuzhiyun  它是那些构架中正在被淘汰的指令,如 CP15 barriers(隔离指令),的默认处理方式。
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun* Hardware Execution(硬件执行)
45*4882a593Smuzhiyun  值: 2
46*4882a593Smuzhiyun  虽然标记为正在被淘汰,但一些实现可能提供硬件执行这些指令的使能/禁用操作。
47*4882a593Smuzhiyun  使用硬件执行一般会有更好的性能,但将无法收集运行时对正被淘汰指令的使用统计数据。
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun默认执行模式依赖于指令在构架中状态。正在被淘汰的指令应该以模拟(Emulate)作为默认模式,
50*4882a593Smuzhiyun而已废弃的指令必须默认使用未定义(Undef)模式
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun注意:指令模拟可能无法应对所有情况。更多详情请参考单独的指令注释。
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun受支持的遗留指令
55*4882a593Smuzhiyun-------------
56*4882a593Smuzhiyun* SWP{B}
57*4882a593Smuzhiyun节点: /proc/sys/abi/swp
58*4882a593Smuzhiyun状态: 已废弃
59*4882a593Smuzhiyun默认执行方式: Undef (0)
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun* CP15 Barriers
62*4882a593Smuzhiyun节点: /proc/sys/abi/cp15_barrier
63*4882a593Smuzhiyun状态: 正被淘汰,不推荐使用
64*4882a593Smuzhiyun默认执行方式: Emulate (1)
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun* SETEND
67*4882a593Smuzhiyun节点: /proc/sys/abi/setend
68*4882a593Smuzhiyun状态: 正被淘汰,不推荐使用
69*4882a593Smuzhiyun默认执行方式: Emulate (1)*
70*4882a593Smuzhiyun注:为了使能这个特性,系统中的所有 CPU 必须在 EL0 支持混合字节序。
71*4882a593Smuzhiyun如果一个新的 CPU (不支持混合字节序) 在使能这个特性后被热插入系统,
72*4882a593Smuzhiyun在应用中可能会出现不可预期的结果。
73