当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux 核心--14.处理器

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 Linux 核心--14.处理器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 38 ::
收藏到网摘: n/a

  第十三章 处理器


Linux可以运行在许多类型的处理器上,本章将给出对它们的简单描叙。 


13.1  X86
省略 


13.2  ARM
ARM处理器是一种低功耗高性能的32位RISC处理器。它在嵌入式设备如移动电话和PDA中广泛使用。共有31个 32位寄存器而其中16个可以在任何模式下看到。它的指令为简单的加载与存储指令(从内存中加载某个值, 执行完操作后再将其放回内存)。ARM一个有趣的特点是它所有的指令都带有条件。例如你可以测试某个 寄存器的值但是直到下次你使用同一条件时进行测试时,你才能有条件的执行这些指令。另一个特征是可以 在加载数值的同时进行算术和移位操作。它可以在几种模式下操作,包括通过使用SWI(软件中断)指令从 用户模式进入的系统模式。 

ARM处理器是一个综合体,ARM公司自身并不制造微处理器。它们是有ARM的合作伙伴(Intel或LSI)制造。 ARM还允许将其他处理器通过协处理器接口进行紧耦合。它还包括几种内存管理单元的变种,包括简单的 内存保护到复杂的页面层次。 


13.3  Alpha AXP处理器
Alpha AXP是一种64位的load/store类型的RISC处理器,其设计目标就是高速度。它所有的寄存器都是64位; 还拥有32个整数寄存器和32个浮点数寄存器。第31个整数与浮点数寄存器被用来进行空操作。对它们读将 得到0,对它们的写没有什么影响。所有的指令都是32位并且内存操作不是写就是读。这种结构允许不同的 实现。 

不能对内存中数值的操作,所有的数据操作都是在寄存器中完成。所以如果你试图递增一个内存中的计数器 则必须先读入寄存器,修改后再写回。指令之间的相互操作仅仅通过其中一个对寄存器和内存位置的写入而 另一个从寄存器或内存位置读出而进行。Alpha AXP处理器的一个有趣的特征是包含可产生标志位的指令。 如测试两个寄存器中的值是否相等,其结果没有存放在处理器状态寄存器中而是放在第3个寄存器里。初 看起来好象很奇怪,但是删除对状态寄存器的依赖关系将更加容易构造一个超标量多发射CPU体系结构。在 不相关寄存器中的指令将不必为从单一状态寄存器等待而浪费执行时间。缺少对内存的直接操作以及大量 寄存器对多发射结构也有帮助。 

Alpha AXP结构使用叫做特权体系库代码(PALcode)的一组子程序。此PALcode依赖于特定的操作系统、 Alpha AXP体系的CPU实现以及系统硬件。这些子程序为操作系统提供了上下文切换、中断、异常和内存 管理原语。它们可以由硬件或者通过CALL_PAL指令来调用。PALcode使用标准的Alpha AXP汇编代码写成并 做了一些扩展以提供对底层硬件指令的直接访问,如内部处理器寄存器。PALcode在一种叫PALmode的特权 模式下执行,此时它将停止一些系统事件的发生并允许PALcode对物理系统硬件进行完全的控制。