1、控制寄存器中的标志位的存取方法文献综述前 言控制寄存器(CR0CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性,CR0 中含有控制处理器操作模式和状态的系统控制标志;CR1 保留不用;CR2含有导致页错误的线性地址;CR3 中含有页目录表物理内存基地址,因此该寄存器也被称为页目录基地址寄存器 PDBR控制寄存器 1CR0 中协处理器控制位 CR0 的 4 个位:扩展类型位 ET、任务切换位 TS、仿真位 EM 和数学存在位 MP 用于控制 80x86 浮点(数学)协处理器的操作。有关协处理器的详细说明请参见第 11 章内容。CR0 的 ET 位(标志)用于选择与协处理器进行通信所使
2、用的协议,即指明系统中使用的是 80387 还是 80287 协处理器。TS、MP 和 EM 位用于确定浮点指令或 WAIT 指令是否应该产生一个设备不存在(Device Not Available,DNA)异常。这个异常可用来仅为使用浮点运算的任务保存和恢复浮点寄存器。对于没有使用浮点运算的任务,这样做可以加快它们之间的切换操作。 (1)ET:CR0 的位 4 是扩展类型( Extension Type)标志。当该标志为 1 时,表示指明系统中有 80387 协处理器,并使用 32 位协处理器协议。ET=0 指明使用 80287 协处理器。如果仿真位 EM=1,则该位将被忽略。在处理器复位操
3、作时,ET 位会被初始化指明系统中使用的协处理器类型。如果系统中有 80387,则 ET 被设置成 1,否则若有一个 80287 或者没有协处理器,则 ET 被设置成 0。 (2)TS:CR0 的位 3 是任务已切换( Task Switched)标志。该标志用于推迟保存任务切换时的协处理器内容,直到新任务开始实际执行协处理器指令。处理器在每次任务切换时都会设置该标志,并且在执行协处理器指令时测试该标志。 如果设置了 TS 标志并且 CR0 的 EM 标志为 0,那么在执行任何协处理器指令之前会产生一个设备不存在异常。如果设置了 TS 标志但没有设置 CR0 的 MP 和 EM 标志,那么在执
4、行协处理器指令WAIT/FWAIT 之前不会产生设备不存在异常。如果设置了 EM 标志,那么 TS 标志对协处理器指令的执行无影响, 在任务切换时,处理器并不自动保存协处理器的上下文,而是会设置 TS 标志。这个标志会使得处理器在执行新任务指令流的任何时候遇到一条协处理器指令时产生设备不存在异常。 (3)EM:CR0 的位 2 是仿真(EMulation)标志。当该位设置时,表示处理器没有内部或外部协处理器,执行协处理器指令时会引起设备不存在异常;当清除时,表示系统有协处理器。设置这个标志可以迫使所有浮点指令使用软件来模拟。 (4)MP:CR0 的位 1 是监控协处理器(Monitor coP
5、rocessor 或 Math Present)标志。用于控制 WAIT/FWAIT 指令与 TS 标志的交互作用。如果 MP=1、TS=1,那么执行 WAIT 指令将产生一个设备不存在异常;如果 MP=0,则 TS 标志不会影响 WAIT 的执行。 2CR0 中保护控制位 (1)PE:CR0 的位 0 是启用保护( Protection Enable)标志。当设置该位时即开启了保护模式;当复位时即进入实地址模式。这个标志仅开启段级保护,而并没有启用分页机制。若要启用分页机制,那么 PE 和 PG 标志都要置位。 (2)PG:CR0 的位 31 是分页(Paging)标志。当设置该位时即开启了
6、分页机制;当复位时则禁止分页机制,此时所有线性地址等同于物理地址。在开启这个标志之前必须已经或者同时开启 PE 标志。即若要启用分页机制,那么 PE 和 PG 标志都要置位。 (3)WP:对于 Intel 80486 或以上的CPU,CR0 的位 16 是写保护(Write Proctect)标志。当设置该标志时,处理器会禁止超级用户程序(例如特权级 0 的程序)向用户级只读页面执行写操作;当该位复位时则反之。该标志有利于 UNIX 类操作系统在创建进程时实现写时复制(Copy on Write)技术。 (4)NE:对于 Intel 80486 或以上的 CPU,CR0 的位 5 是协处理器错
7、误(Numeric Error)标志。当设置该标志时,就启用了 x87 协处理器错误的内部报告机制;若复位该标志,那么就使用 PC 形式的 x87 协处理器错误报告机制。当 NE 为复位状态并且 CPU 的 IGNNE输入引脚有信号时,那么数学协处理器 x87 错误将被忽略。当 NE 为复位状态并且 CPU 的IGNNE 输入引脚无信号时,那么非屏蔽的数学协处理器 x87 错误将导致处理器通过 FERR引脚在外部产生一个中断,并且在执行下一个等待形式浮点指令或 WAIT/FWAIT 指令之前立刻停止指令执行。CPU 的 FERR 引脚用于仿真外部协处理器 80387 的 ERROR 引脚,因此
8、通常连接到中断控制器输入请求引脚上。NE 标志、IGNNE 引脚和 FERR 引脚用于利用外部逻辑来实现 PC 形式的外部错误报告机制。 启用保护模式 PE(Protected Enable)位(位 0)和开启分页 PG(Paging)位(位31)分别用于控制分段和分页机制。PE 用于控制分段机制。如果 PE=1,处理器就工作在开启分段机制环境下,即运行在保护模式下。如果 PE=0,则处理器关闭了分段机制,并如同 8086 工作于实地址模式下。PG 用于控制分页机制。如果 PG=1,则开启了分页机制。如果 PG=0,分页机制被禁止,此时线性地址被直接作为物理地址使用。 如果PE=0、PG=0
9、,处理器工作在实地址模式下;如果 PG=0、PE=1,处理器工作在没有开启分页机制的保护模式下;如果 PG=1、PE=0,此时由于不在保护模式下不能启用分页机制,因此处理器会产生一个一般保护异常,即这种标志组合无效;如果 PG=1、PE=1 ,则处理器工作在开启了分页机制的保护模式下。 当改变 PE 和 PG 位时,必须小心。只有当执行程序至少有部分代码和数据在线性地址空间和物理地址空间中具有相同地址时,我们才能改变 PG 位的设置。此时这部分具有相同地址的代码在分页和未分页世界之间起着桥梁的作用。无论是否开启分页机制,这部分代码都具有相同的地址。另外,在开启分页(PG=1)之前必须先刷新页高
10、速缓冲 TLB。 在修改该了 PE 位之后程序必须立刻使用一条跳转指令,以刷新处理器执行管道中已经获取的不同模式下的任何指令。在设置 PE 位之前,程序必须初始化几个系统段和控制寄存器。在系统刚上电时,处理器被复位成 PE=0 和 PG=0(即实模式状态) ,以允许引导代码在启用分段和分页机制之前能够初始化这些寄存器和数据结构。 3CR2 和 CR3 CR2 和 CR3 用于分页机制。CR3 含有存放页目录表页面的物理地址,因此 CR3 也被称为 PDBR。因为页目录表页面是页对齐的,所以该寄存器只有高 20 位是有效的。而低 12位保留供更高级处理器使用,因此在往 CR3 中加载一个新值时低
11、 12 位必须设置为 0。 使用 MOV 指令加载 CR3 时具有让页高速缓冲无效的副作用。为了减少地址转换所要求的总线周期数量,最近访问的页目录和页表会被存放在处理器的页高速缓冲器件中,该缓冲器件被称为转换查找缓冲区(Translation Lookaside Buffer,TLB) 。只有当 TLB 中不包含要求的页表项时才会使用额外的总线周期从内存中读取页表项。 即使 CR0 中的 PG 位处于复位状态(PG=0) ,我们也能先加载 CR3。以允许对分页机制进行初始化。当切换任务时,CR3 的内容也会随之改变。但是如果新任务的 CR3 值与原任务的一样,处理器就无需刷新页高速缓冲。这样共
12、享页表的任务可以执行得更快。 CR2 用于出现页异常时报告出错信息。在报告页异常时,处理器会把引起异常的线性地址存放在 CR2 中。因此操作系统中的页异常处理程序可以通过检查 CR2 的内容来确定线性地址空间中哪一个页面引发了异常。主 体从目前搜集到的资料来看,关于寄存器的研究主要有如下观点:张延军在他的RFCC-VLIM :一种适用于超长指令字节处理器的寄存器结构 解决了指令字处理器中功能单元的增加会带来寄存器堆代价的急剧增长的问题, 他们提出了提出了一种新的寄存器堆结构。该结构采用分簇的方式将传统的单一寄存器堆化分成多个本地寄存器堆, 每个寄存器堆对应一个功能单元簇, 每个功能单元簇可以自
13、由访问它对应的本地寄存器堆。同时该结构采用一个全局寄存器堆将所有功能单元簇互连以方便各个功能单元簇之间互相访问数据。寄存器堆的划分减少了寄存器堆的端口数量, 有效降低了处理器中寄存器堆在面积、功耗、访问延时等方面的代价。全局寄存器堆的使用减少了分簇结构带来的数据复制操作, 降低了分簇结构带来的处理器性能损失。试验结果证明, 在降低寄存器堆代价的同时, 该结构将处理器的平均性能损失降低到 13%张来在他的基于ARM软核的AHB-PC Card 主扎端IP核控制寄存器有关键模块设计本论文以科研项目PCMCIA Host IP核设计课题为依托,完成从 AHB总线到PC Card接口的IP 核设计,可
14、为基于ARM 的SoC系统扩展PC卡热插拔接口本IP核在开发过程,依照先进的设计方法学以及其流程规范,并借助先进的EDA 工具,保证质量提高效率目前本IP 核已经过较充分的功能仿真验证,符合规格要求,达到了较为理想的代码覆盖率,在基于ARM 处理器的Linux 操作系统下开发了本IP核驱动,并在FPGA平台上进行原型测试 本论文首先对SoC系统的国内外发展现状作了概述,并对基于 ARM处理器的嵌入式系统的应用情况作了简述,而后对本IP核涉及到的AMBA总线协议架构、PC Card接口协议进行了介绍,在此基础上对IP核的规格、总体设计以及模块划分进行了描述,并对其中的控制寄存器模块设计进行了详细
15、描述,叙述了控制寄存器部分设计过程中可重用的考虑而后,对本IP核的功能仿真验证环境进行了描述,分析了控制寄存器部分的验证结果指出了控制寄存器实现了规格所要求的功能,使软件能通过该接口对口核的运行参数进行配置、对中断进行使能以及屏蔽、控制口核对地址空间进行映射,并能访问CardBus卡配置空间,以及对CardBus接口进行复位。,并对该模块代码覆盖率情况进行了讨论,最后对本IP核在FPGA平台上的原型测试环境,以及软件环境进行了描述 黄振,杨士中在他们的可编程数字扩频系统的控制寄存器初始化中说到通信系统要具有很强的通用性,因此 CPU 对寄存器初始化时,能够对其工作方式进行选择,必须先弄清楚每一
16、种工作方式与相关的寄存器类型,设置方法。在此基础上在进行调整方式的选择,连续。猝发传送模式的选择等等。WC莫耶 ;MD辛德;GL惠森亨特在他们的用于数据处理系统的调试指令中阐述了可以包括调试指令提供调试程序字段的方法,如果调试控制寄存器字段有第一值,或者有第二值 则执行不同的操作任务,一种数据处理包括用于接收调试指令的取指令电路,调试控制寄存器字段和调试控制电路。在这种方法中有很多步骤都是牵扯到调试控制寄存器字段的第一值或者第二值 ,可以明显看出没有控制寄存器其他的都所谓调试 存取数据都不太容易。正如文中所说软件开发过程使用调试指令,开发完了就去除这些指令,可是这些指令的去除可能改变系统的执行
17、特性,导致可预测性差的执行,这是实际中有尤其该注意的问题。何虎,孙义和在他们的面向寄存器的流水线处理器建模及验证方法中也有说到这种新的流水线处理器的功能验证方法主要思想是通过验证流水线处理器中所以寄存器的功能来验证处理器的功能,流水线处理器大部分是由同步电路组成的,然而同步电路则完全有寄存器决定,因此哟啊保证每个寄存器功能正确就差不多了,面向寄存器的验证方法最大特点是验证寄存器为对象,二不需要验证对象为某种特定的系统。随着程序对地址空间的需求,日益提高,李三立在新型体系结构概念虚拟寄存器与并行的指令处理部件中阐述虚拟寄存器概念是程序访问的地址空间免受物理存储器的限制。为此引入将大大提高数据处理
18、部件内执行指令的并行性,虚拟寄存器有它的管理机构,可通过与外存的交换扩大用户的寄存器空间,VR 的管理机构是通过与cache 交换,扩大用户的寄存器堆空间,采用虚拟寄存器则分配是动态的,这实际相当于寄存器窗口的大小时可适用性的变化的。从而使效率更高。有利于指令调度和寄存器重新命名的技术,提高指令级并行性 ILP。吾鸣在他的灵活编程属性控制寄存器中提到通过模式寄存器和色彩选择寄存器来选择不同的色彩组来得到增选 16 色的目的。模式寄存器主要用于为属性控制寄存器选择模式特性,而色彩选择寄存器是用来增加色彩选择的灵活性,它增加两个比特到调色板寄存器的,一提供完整的调色选择随着处理器并行度的提高,现代
19、的并行处理器没周期可以并行执行多条指令,同时有多条对寄存器的访问请求,对可用寄存器数目的要求越来越高,对编译码分配调度寄存器的要求也更高,为了提高汇编程序的效率,处理器需要大量的寄存器,但是目前普遍存在的可以寄存器数量受到指令长度的限制,为此何虎,白无在专利一种交替访问寄存器的装置与其方法中谈到为了克服现有的技术不足,他们提供了此种方法,在有限的处理指令中寄存器寻址长度下可以增加处理器指令寄存器寻址字段实际的可用寄存器数目,从而提高程序的并行度和效率。集体访问寄存器的装置特征在于:所述的寄存器堆重叠区域子啊单线程程序中,能在处理器设置下减少所需要的寄存器堆重叠区域的寄存器的数量。图为交替访问寄
20、存器的装置的原理图 内外层交错流水给寄存器分配带来了特殊的问题,主要是同层次和跨层次的寄存器命名问题,以及断流问他。容红波,汤志忠在他们的一种支持多重循环软件流水的寄存器结构对这些问题进行了深入分析,提出来具有普遍的寄存器结构和分配方法。从工程的实际结果看,半共享跳跃式流水寄存器堆有效地解决多重循环软件的特殊问他,有效得消除外层循环的体间读写相关,提高程序的指令级并行度。在工程实践中是十分有效的。 总 结综上所述的内容,形形色色,控制寄存器在应用实践中,我们的各种技术,生活中都有着有广泛的应用,在我们所学习专业可以稍微了解到的有中断控制寄存器、串行口控制寄存器,等等,总的来说学习寄 存 器 的
21、 功 能 十 分 重 要 , CPU对 存 储 器 中 的 数 据进 行 处 理 时 , 往 往 先 把 数 据 取 到 内 部 寄 存 器 中 , 而 后 再 作 处 理 。 外 部 寄 存 器 是 计算 机 中 其 它 一 些 部 件 上 用 于 暂 存 数 据 的 寄 存 器 , 它 与 CPU之 间 通 过 “端 口 ”交 换 数据 , 外 部 寄 存 器 具 有 寄 存 器 和 内 存 储 器 双 重 特 点 。 它 可 将 寄 存 器 内 的 数 据 执 行 算术 及 逻 辑 运 算 , 也 可 以 存 于 寄 存 器 内 的 地 址 可 用 来 指 向 内 存 的 某 个 位 置
22、 , 即 寻 址 以及 可 以 用 来 读 写 数 据 到 电 脑 的 周 边 设 备 。 相 信 大 家 都 知 道 电 脑 已 经 在 我 们 生 活 中无 处 不 在 了 , 它 大 大 方 便 了 我 们 的 工 作 生 活 , 而 作 为 组 成 电 脑 核 心 CPU中 的 控 制寄 存 器 更 是 不 可 缺 少 。 随 着 时 代 的 进 步 , 科 技 的 发 展 , 生 活 需 求 也 越 来 越 高 , 相信 寄 存 器 在 我 们 身 边 的 角 色 扮 演 越 来 越 丰 富 , 内 容 越 来 越 多 样 化 , 这 就 要 求 我 们 有必 要 了 解 学 习 这
23、 方 面 的 知 识 , 让 我 们 头 脑 的 知 识 更 加 完 善 , 不 仅 如 此 , 为 我 们 后 来的 技 术 之 路 打 好 基 础参考文献1 张延军,何虎,周志雄,孙义和RFCC-VLIM :一种适用于超长指令字节处理器的寄存器结构 , 清华大学学报 ,年第期2张来 基于 ARM 软核的 AHB-PC Card 主扎端 IP 核控制寄存器有关键模块设计,电子科技大学 硕士学位论文3黄振,杨士中 可编程数字扩频系统的控制寄存器初始化无线电工程2001年 06 期4何虎 孙义和 面向寄存器的流水线处理器建模及验证方法 半导体学报,年月5李三立 廖恒 新型体系结构概念虚拟寄存器与并行的指令处理部件小型微型计算机系统,1995 年 06 期6 吾鸣灵活编程属性控制寄存器中国计算机用户1994 年 12 期7何虎 白无 一种交替访问寄存器的装置与其方法专利 申请人清华大学8 容红波,汤志忠一种支持多重循环软件流水的寄存器结构软件学报,2000 年 03 期9 WC莫耶;MD 辛德;GL惠森亨特用于数据处理系统的调试指令专利号200880111282.5申请人:飞思卡尔半导体公司