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