当前位置:文档之家› (06)Intel 80486微处理器体系结构 2.2.2

(06)Intel 80486微处理器体系结构 2.2.2


实: 固定为64K 保: 1B~4GB
第9页
电气工程学院
是否已经建立起这样一个概念? 采用存储器分段技术后,必须用段寄存器来指明使用存储器的区域。 486中有6个段寄存器
用CS 来指明当前的代码段; 用SS 来指明当前的堆栈段; 用DS、ES、FS、GS来指明当前的4个数据段
P34 图2.5
486可以同时使用四个数据段。对于不同类型的数据(如:当前数据模块的数据, 来自更高级别的数据模块的数据,动态生成的数据和与其它程序生成的数据)分门别 类地生成各自独立的数据结构(数据段),从而实现安全有效的存取操作。 486的段寄存器由两部分组成:
第2页
电气工程学院
(2)指令预取部件: 完成译码前期工作——指令取入、排队分析、分解 总线接口单元对片外存储器的代码段发出地址信号,从中取出代码,经数据总 线进入指令预取单元。486有32字节的代码队列,平均可存放10条指令(486的指 令平均长度是3.2字节)
(3)指令译码部件: 完成指令译码 对指令预取队列的指令代码流进行预译码,然后送入已译码的指令队列等候执行。 预译码的好处?在8086中,没有这一环节,译码时发现是转移或调用子程序指令,则 清空指令队列,重新提取指令和装入指令,再译码和执行,花费CPU时间。而486是在 执行指令的同时完成这些动作。
第7页
电气工程学院
*TF Trap Flag 自陷标志 =1,表明CPU将进入单步执行方式, 即:一条一条地执行指令,以便于调试程序。 **IF Interrupt enable Flag 中断允许标志 =1表明CPU接受外部可屏蔽中断。 *DF Direction Flag 方向标志 控制串操作指令的地址改变方向。 =1表示在串操作过程中,地址指针EDI,ESI的地址值会不断减少,减址; =0,增址。 **OF Overflow Flag 溢出标志 =1表明结果超出了给定字节所能表示的数的范围。 #IOPL Input/Output Priority Level flag I/O特权级标志 486 CPU确定了4个I/O特权级,0是最高级,3是最低级。 D12,D13:00,0级;01,1级;10,2级;11,3级。 #NT Nested Task 任务嵌套标志。 指出当前执行的任务是否嵌套在另一任务中。=1,表示已嵌套。 # RF Restoration Flag 恢复标志 它用于调试失败后,强迫程序恢复执行。 该标志与调试寄存器的代码断点结合使用,以保证不重复处理断点。 # VM Virtual 86 Mode 虚拟86模式标志, =1,表示工作在虚拟86模式。只有两种方式可以设置该标志: 在保护模式下,由最高特权级(0级)的代码段的IRET指令 来设置;或由任务转换来设置。 # AC Alignment Check 对准检查标志。
总线 接口 部件
高速缓 存部件
指令预 取部件
内部控制线
指令译 码部件
内部数据 总线
物理地址
物理地址 逻辑地址 执行
页管理 线性地址 段管理 部 件 部 件 (1)总线接口部件:
部件
浮点数 部 件
完成CPU与外部总线上各种信号的交换,管理486CPU的168条引脚。
通过地址驱动器输出地址信号,以选择外部的存储单元或者I/O口; 通过数据总线收/发器,完成内部数据外送,把外部的数据或指令代码取回。 通过总线接口单元的相关部件,实现对各种控制信号、状态信号的管理
电气工程学院
2.2 Intel 80486微处理器体系结构
表2.1给出了Intel的CPU,从4004到PⅢ, 486是主流机种中代表则: 宜粗不宜细
不讲实际结构,只能讲编程结构,即:站在程序员和用户的角度来看结构,这样得到 了与实际布局有差异的,但简单得多的框图;只了解编程结构不会影响我们使用计算机, 否则这样的结构是无意义的。 2.2.1 结构特点 80486是32位高性能处理器,它以提高性能和面向多处理器系统结构为主要目标,它具有 如下的特点:(P33) ① 80486采用的是单倍的时钟频率,即在80486CPU的CLK端输入的外部时钟频率就是其内部 处理器的工作时钟频率。 ② 内部包含有8K字节的指令/数据合用型高速缓存器。 ③ 内部包含了相当于增强型80387功能的浮点协处理器。 ④ 对使用频率较高的基本指令,由原来的微代码控制改为硬件逻辑直接控制,并在指令执行 单元采用了RISC(Reduced Instruction Set Computing 精简指令集计算,整体提高CPU性能) 技术和流水线技术。 ⑤ 采用了突发式总线传输方式(有效地解决CPU与存储器之间的数据交换问题)。 ⑥ 内部数据总线的宽度有32位、64位等多种,并分别用于不同单元之间的数据通路 ⑦ 对某些内部寄存器中部分位的内容进行了变动和增加。 ⑧ 面向多处理器结构,在总线接口部件上增加了总线监视功能,增加了支持多机操作的指令。
虚拟空间 通过描述符来访问存储器
实空间
第11页
电气工程学院
⑴ 系统级寄存器(略) 包括四个位的控制寄存器和四个系统地址寄存器,只有在特权0级上运行的程序 (操作系统)才能访问它们。 ①控制寄存器:它们的作用是存放全局特性的机器状态,控制片上的Cache、FPU (浮点运算单元)和分段、分页单元的工作。 ②系统地址寄存器:只有在保护方式下使用。把保护方式下常用的数据基地址、界 限和其它属性保存起来,以确保其快速性。 ⑵ 调试和测试寄存器(略) 用来支持调试功能
物 理 地 址
(1)
b15
索引值
b3 b2 b1 b0
TI RPL
63
描述符高速缓存器
0
段寄存器提供选择符
16位代码段寄存器值 16位堆栈段寄存器值 16位数据段寄存器值 16位ES寄存器值 16位FS寄存器值 16位GS寄存器值
描 述 符 表
代码段
堆栈段 数据段 附加段 附加段 附加段
486的段寄存器
第8页
电气工程学院
什么是对准检查?
N+0 数据1低字节
数据1高字节
设N是偶地址
字操作数
n
双字
n
四字
N+2 数据2低字节
数据2高字节
字操作数
Intel Convention: 字操作,必须从偶地址开始; 双字操作,n/4必须是整数; 四字操作,n/8必须是整数 存取都按这个原则
对准检查 的含义
所谓对准检查,就是检查是否符合上述规定,如果不符合,则产生异常中断。 ④ 段寄存器 8086与80486在段的定义上有不同 8086:1B~64KB 80486
DS ES
FS
GS 选择器 描述符高速缓存器
第5页
电气工程学院
基本寄存器包括:通用寄存器;指令指针寄存器;标志寄存器;段寄存器;共计16个。 ① 通用寄存器 8个32位通用寄存器 8086/8088: (8个16位) AX,BX,CX,DX,SI,DI,BP,SP。 80486:(8个32位) EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP。 其中,AX,BX,CX,DX仍可保留在8086/8088中的工作方式:每一寄存器仍可进 一步分为2个独立的8位寄存器,并拥有原来的名称(在硬件上保持了对8086的兼容): AH,AL,BH,BL,CH,CL,DH,DL。高16位不能再分。 ② 指令指针寄存器EIP(EIP Extended Instruction Pointer register) 假想机 PC:直接存放指令地址 8086/8088 IP:与CS配合,按一定规则,合成20位存放指令物理地址 80486 EIP
与CS配合,形成32位存放指令物理地址
31
16 15 IP
0
在实模式下,IP与CS配合,合成 20位物理地址,如同8086 ③ 标志寄存器(EFLAGS) 算术逻辑操作有两个结果,一个是数据,一个是特征。 8086/8088:把特征存放在一个16位的标志寄存器中;
第6页
电气工程学院
80486:32位标志寄存器,包含三种标志: 状态标志(S Status):算术逻辑操作后的状态(学习重点) 控制标志(C Control):控制串操作指令的地址改变方向 系统标志(X):控制I/O、屏蔽中断、调试、任务转换、 控制保护方式和虚拟8086方式之间的转换。 对《P35图2.6 标志寄存器》 作如下说明: 32位的EFLAGS寄存器中,15位有定义。 CF,PF,AF,ZF,SF,TF,IF,DF,OF属于8086/8088的标志; 其它是新增加的。 “**”重中之重;“*”重点;“#”了解即可 各位的定义: ** CF Carry Flag =1表明有进位,有借位。 用于多字节加、减法,也用于移位和循环指令 * PF Parity Flag 奇偶标志 =1 表明运算结果中,“1”的个数是偶数;=0,为奇。 多用于串行通信中的奇偶校验,以检查是否存在传输错误。 *AF Auxiliary Flag 辅助寄存器 =1表明D3对D4有进位,BCD运算 **ZF Zero Flag 零标志 =1表示结果中,所有位都是0 **SF Sign Flag 符号标志 =1表示结果的最高位是1,对补码而言,表明结果是负数。
16位的选择符和64位的描述符高速缓存器。
确定描述符在描述 符 表 中 的 位 置 用途?
在286的相关内容的基础上,对486的段寄存器做如下简介
第10页
电气工程学院
全局描述符表 GDT 或 局部描述符表 LDT
首地址
(1)
GDTR LDTR
N+0 N+1 N+2 N+3 N+4 N+5 N+6 N+7
: 段边界(0-7位) 段边界(8-15位) 段基址(0-7位) 段基址(8-15位) 段基址(16-23位) 属性(8位) 段边界(16-19)属性(4位) 段基址(24-31位) :
全局/局部描述符表寄存器 GDTR/ LDTR
相关主题