目录, 显示框架, 无框架

第 13 章
处理器


Linux 运行在多种处理器上;本章简要概述了每种处理器。

13.1  X86

待定

13.2  ARM

ARM 处理器实现了低功耗、高性能的 32 位 RISC 架构。它被广泛应用于嵌入式设备,如手机和 PDA(个人数字助理)。它有 31 个 32 位寄存器,其中 16 个在任何模式下都可见。它的指令是简单的加载和存储指令(从内存加载值,执行操作并将结果存储回内存)。它有一个有趣的特性,即每条指令都是有条件的。例如,您可以测试寄存器的值,并且在您下次测试相同条件之前,您可以根据需要有条件地执行指令。另一个有趣的特性是,您可以在加载值时对其执行算术和移位运算。它在多种模式下运行,包括可以通过 SWI(软件中断)从用户模式进入的系统模式。

它是一个可综合的内核,ARM(公司)本身不生产处理器。相反,ARM 的合作伙伴(例如英特尔或 LSI 等公司)在硅片上实现 ARM 架构。它允许其他处理器通过协处理器接口紧密耦合,并且有多种内存管理单元变体。这些变体范围从简单的内存保护方案到复杂的页分层结构。

13.3  Alpha AXP 处理器

Alpha AXP 架构是一种 64 位加载/存储 RISC 架构,其设计以速度为中心。所有寄存器均为 64 位长度;包括 32 个整数寄存器和 32 个浮点寄存器。整数寄存器 31 和浮点寄存器 31 用于空操作。从它们读取会生成零值,而写入它们则无效。所有指令均为 32 位长,内存操作要么是读取,要么是写入。该架构允许不同的实现方式,只要这些实现方式遵循该架构。

没有直接对存储在内存中的值进行操作的指令;所有数据操作都在寄存器之间完成。因此,如果您想递增内存中的计数器,您首先需要将其读取到寄存器中,然后修改它并写回。指令之间的交互仅限于一条指令写入寄存器或内存位置,而另一条指令读取该寄存器或内存位置。Alpha AXP 的一个有趣的特性是,它有一些指令可以生成标志,例如测试两个寄存器是否相等,结果不会存储在处理器状态寄存器中,而是存储在第三个寄存器中。乍一看这可能很奇怪,但从状态寄存器中移除这种依赖性意味着构建一个可以每个周期发出多条指令的 CPU 要容易得多。对不相关的寄存器执行的指令不必像只有一个状态寄存器那样等待彼此执行。缺少对内存的直接操作以及大量的寄存器也有助于发出多条指令。

Alpha AXP 架构使用一组子例程,称为特权架构库代码 (PALcode)。PALcode 特定于操作系统、Alpha AXP 架构的 CPU 实现以及系统硬件。这些子例程为上下文切换、中断、异常和内存管理提供操作系统原语。这些子例程可以通过硬件或 CALL_PAL 指令调用。PALcode 使用标准 Alpha AXP 汇编器编写,并带有一些特定于实现的扩展,以提供对底层硬件功能(例如内部处理器寄存器)的直接访问。PALcode 在 PAL 模式下执行,PAL 模式是一种特权模式,可阻止某些系统事件发生,并允许 PALcode 完全控制物理系统硬件。


文件由 TEX 通过 TTH 版本 1.0 翻译而来。
章节顶部, 目录, 显示框架, 无框架
© 1996-1999 David A Rusling 版权声明