Pentium微处理器的内部寄存器
Pentium是Intel公司于1993年3月推出的第五代80X86系列微处理器,简称P5或80586,中文译名为“奔腾”。与其前辈80X86微处理器相比,Pentium采用了全新的设计,它有64位数据线和32位地址线,但依然保持了与其前辈80X86的兼容性,在相同的工作方式上可以执行所有的80X86程序。
Pentium的内部结构如图2.4所示。它主要由执行单元、指令Cache、数据Cache、指令预取单元、指令译码单元、地址转换与管理单元、总线单元以及控制器等部件组成。其中核心是执行单元(又叫运算器),它的任务是高速完成各种算术和逻辑运算,其内部包括两个整数算术逻辑运算单元(ALU)和一个浮点运算器,分别用来执行整数和实数的各种运算。为了提高效率,它们都集成了几十个数据寄存器用来临时存放一些中间结果。这些功能部件除地址转换和管理单元与80386/80486保持兼容外,其他都进行了重新设计。
1) 超标量体系结构和指令流水线
Pentium由“U”和“V”两条指令流水线构成超标量流水线结构,其中每条流水线都有自己的ALU
、地址生成逻辑和Cache接口。这种双流水线技术可以使两条指令在不同流水线中并行执行。
图2.4 Pentium微处理器的内部结构
每条流水线又分为指令预取PF、指令译码(一次译码)D1、地址生成(二次译码)D2、指令执行EX和回写WB共5个步骤。图2.5给出了Pentium的指令流水线操作示意。
图2.5 Pentium指令流水线操作示意图
当第一条指令完成指令预取,进入第二个操作步骤D1,执行指令译码操作时,流水线就可以开始预取第二条指令;当第一条指令进入第三个步骤D2,执行地址生成时,第二条指令
进入第二个步骤D1,开始指令译码,流水线又开始预取第三条指令;当第一条指令进入第四个步骤EX,执行指令规定的操作时,第二条指令进入第三个步骤D2,执行地址生成,第三条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第四条指令;当第一条指令进入第五个步骤WB,执行回写操作时,第二条指令进入第四个步骤EX,执行指令规定的操作,第三条指令进入第三个步骤D2,执行地址生成,第四条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第五条指令。
这种流水线操作并没有减少每条指令的执行步骤,5个步骤哪一步都不能跳越。但由于各指令的不同步骤之间并行执行,从而极大地提高了指令的执行速度。从第一个时钟开始,经过5个时钟后,每个时钟都有一条指令执行完毕从流水线输出。在这种理想情况下,Pentium的超标量体系结构每个时钟周期内可执行两条整数指令(每条流水线执行一条指令)。
2) 重新设计的浮点运算部件
Pentium的浮点运算部件在极氪00980486的基础上作了重新设计,采用了超流水线技术,由8个独立执行部件进行流水线作业,使每个时钟周期能完成一个浮点操作(或两个浮点操作)。采
用快速算法可使诸如ADD、MUL和LOAD等运算的速度最少提高3倍,在许多应用程序中利用指令调度和重叠(流水线)执行可使性能提高5倍以上。同时,这些指令用电路进行固化,用硬件来实现,使执行速度得到更大提高。
3) 独立的指令Cache和数据Cache
Pentium片内有两个8KB的超高速缓存器,一个是指令Cache,一个是数据Cache。转换后备缓冲器TLB(Translation Look-aside Buffer)的作用是将线性地址转换为物理地址。这两种Cache采用32×8线宽,是对Pentium的64位总线的有力支持。指令和数据分别使用不同的Cache,使Pentium中数据和指令的存取减少了冲突,提高了性能。
Pentium的数据Cache有两种接口,分别与U和V两条流水线相连,以便能在相同时刻向两个独立工作的流水线进行数据交换。当向已被占满的数据Cache中写数据时,将移走当前使用频率最低的数据,同时将其写回内存,这种技术称为Cache回写技术。由于CPU向Cache写数据和将Cache释放的数据写回内存是同时进行的,所以采用Cache回写技术将节省处理时间。
4) 分支指令预测。
Pentium提供了一个称为BTB(Branch Target Buffer)的小Cache来动态地预测程序的分支操作。当某条指令导致程序分支时,BTB记忆下该条指令和分支的目标地址,并用这些信息预测该条指令再次产生分支时的路径,预先从该处预取,保证流水线的指令预取步骤不会空置。这一机构的设置,可以减少在循环操作时对循环条件的判断所占用的CPU的时间。
5) 采用64位外部数据总线
Pentium芯片内部ALU和通用寄存器仍是32位,所以还是32位微处理器,但它同内存储器进行数据交换的外部数据总线为64位,使两者之间的数据传输速度可达528MB/s。此外Pentium还支持多种类型的总线周期,在突发方式下,可以在一个总线周期内读入256B的数据。
2. Pentium的外部引脚
Pentium芯片有168个引脚,这些引脚信号线也即Pentium CPU总线,分为三大类: 总线接口引脚、处理器控制引脚、调试与测试引脚。
1) 总线接口信号
汽车首付多少Pentium的总线接口信号如表2.1所示。这些引脚信号包括用于管理访问外部存储器和I/O端口必须的地址、数据和总线周期控制信号,以及Cache控制信号。
表2.1 总线接口信号
类 型 | 符 号 | 功 能 | 方 向 |
地址信号 | A31~A3 AP APCHK | 地址总线。用于指明某一8字节(64位)单元地址 地址奇偶校验 地址奇偶校验出错 字节允许。用于指明访问8字节中的哪些字节 | 输出 输出 输出 输出 |
数据信号 | D63~D0 DP7~DP0 | 数据总线。D63~D56、D7~D0分别是最高和最低有效字节 数据奇偶校验引脚。分别对应数据的8个字节 数据奇偶校验允许 数据奇偶校验状态指示。低电平表示有奇偶校验错 总线检查 | 输入/输出 输入/输出 输出 输出 输入 |
总线周期 控制信号 | SCYC | 地址状态。它有效表明地址和总线定义信号是有效的 突发就绪。表明当前周期已完成 数据/控制周期指示。用来区分数据和控制周期 写/读周期指示。用来区别读还是写周期 存储器/IO周期指示。用来区分存储器和IO周期 分离周期。表示未对齐操作锁定期间有2个以上的周期被锁定 Cache输出信号,指示当前Pentium周期可对数据进行缓存 总线锁定。它有效表明Pentium正在读—修改—写周期中运行,在读与写周期间不释放外部总线,即独占系统总线 | 输出 输出 输出 输出 输出 输出 输出 输出 |
Cache 控制信号 | PWT PCD | 页面通写。PWT=1表明写操作命中时既要写Cache,也要写内存 页面Cache禁止。PCD=1时禁止以页为单位的Cache操作 Cache允许。用来确定当前周期所传送的数据是否能用于高速缓存 下一地址,用于形成流水线式总线周期 回写/通写 外部写缓冲器空 | 输出 输入 输入 输入 输出 输入 |
D63~D0是Pentium的64位双向数据总线。A31~A3和构成32位地址总线,以提供存储器和I/O端口的物理地址。A31~A3用于确定一个8字节单元地址,则用于指明在当前的操作中要访问8字节中的哪些字节。Pentium微处理器规定: 对应数据线D7~D0;对应数据线D15~D8;对应数据线D23~D16;对应数据线D31~D24;对应数据线D39~D32;对应数据线D47~D40;对应数据线D55~D48;对应数据线D63~D56。
Pentium微处理器的地址线没有设置A2、A1和A0引脚,但可由这8个字节使能信号产生,为保持与前辈80X86的兼容性,还应产生信号。
(数据/控制)、(写/读)、(存储器/IO)是总线周期定义的基本信号,这3个信号的不同组合可以决定当前的总线周期所要完成的操作,如表2.2所示。这些操作的意义将在有关章节加以介绍。
表2.2 总线周期定义
启动的总线周期 | |||
0 | 0 | 0 | 中断响应周期 |
0 | 0 | 1 | 停机/暂停 |
0 | 1 | 0 | I/O读周期 |
0 | 1 | 1 | I/O写周期 |
1 | 0 | 0 | 微代码读周期 |
1 | 0 | 1 | Intel公司保留 |
1 | 1 | 0 | 存储器读周期 |
1 | 1 | 1 | 存储器写周期 |
2) 处理器控制信号
处理器控制信号如表2.3所示。包括时钟、处理器初始化、FRC、总线仲裁、Cache窥视、中断请求、执行跟踪、数字出错和系统管理等信号。
表2.3 处理器控制信号
类 型 | 符 号 | 功 能 | 方 向 |
时钟 | CLK | 时钟输入信号。为CPU提供内部工作频率 | 输入 |
初始化 | RESET INIT | 复位。高电平强制Pentium从已知的初始状态开始执行程序 初始化。INIT的作用类似于RESET信号,不同之处是它在进行处理器初始化时,将保持片内Cache、写缓冲器和浮点寄存器的内容不变 | 输入 输入 |
FRC | 10万左右suv车推荐功能冗余检查方式 内部出错 | 输出 输出 | |
总线仲裁 | HOLD HLDA BREG | 总线保持请求。它有效时,表示请求Pentium交出总线控制权 总线保持响应。它有效时,指明Pentium已经交出总线控制权 总线请求。该引脚有效时,表示Pentium需要使用系统总线 总线占用。它有效时,强制Pentium在下一时钟浮空其总线 | 输入 输出 输出 输入 |
Cache窥视 | AHOLD INV | 地址保持请求。该信号决定地址线A31~A4是否接受地址输入 有效外部地址。该信号表示地址总线A31~A4上的地址信号有效 Cache清洗。低电平有效时,强制Pentium清洗整个内部高速缓存 未命中 命中 无效请求 | 输入 输入 输入 输出 输出 输入 |
中断 | INTR NMI | 可屏蔽中断请求。高电平表示有外部中断请求 不可屏蔽中断请求。上升沿表示该中断请求有效 | 输入 输入 |
执行跟踪 | IU IV IBT | U流水线指令完成 V流水线指令完成 转移跟踪指令 | 输出 输出 输出 |
数字出错 | 浮点出错。用来报告Pentium中PC类型的浮点出错 忽略数字出错 | 输出 输入 | |
系统管理 | 怎样买汽车保险 | 系统管理中断。该信号有效,使Pentium进入到系统管理运行模式 系统管理中断激活。该信号有效,表明Pentium正工作在系统管理模式 | 输入 输出 |
其他 | A20M | 第20位地址屏蔽。该信号有效时,将屏蔽A20及以上地址,使Pentium仿真8086的1MB存储空间 | 输入 |
3) 调试与测试引脚
调试与测试信号如表2.4所示。包括探针方式、断点/性能监测和边界扫描等引脚信号。
表2.4 调试与测试信号
类 型 | 符 号 | 功 能 | 方 向 |
探针方式 | R/S PRDY | 进入或退出探针方式 探针方式就绪 | 输入 输出 |
断点/性 能监测 | PM0/BP0 PM1/BP1 BP3~BP2 | 性能监测0/断点0 性能监测1/断点1 断点3~断点2 | 输出 输出 输出 |
边界扫描 | TCK TDI TDO TMS | 测试时钟 测试数据输入 测试数据输出 测试方式选择 测试复位 | 输入 输入 输出sc60 输入 输入 |
2.3.2内部寄存器
Pentium的内部寄存器按功能分为四类: 基本寄存器、系统级寄存器、调试与模型专用寄存器、浮点寄存器。它们是在80486内部寄存器的基础上扩充而来,并与其前辈80X86保持了兼容。主要差别是Pentium用一组模型专用寄存器代替了80486的测试寄存器,并扩充了一个系统控制寄存器。
1. 基本寄存器
基本寄存器包括通用寄存器、指令指针寄存器、标志寄存器和段寄存器,这些寄存器都是在8086/8088基础上扩展而来的,如图2.6所示。
图2.6 基本寄存器
1) 通用寄存器
8个32位通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP经营汽车修理店、ESP是在8086/8088的8个16位寄存器基础上扩展位数而来的。为了与8086/8088兼容,它们的低16位可以单独访问,并以同8086/8088中相同的名称命名: AX、BX、CX、DX、SI、DI、BP、SP。其中AX、BX、CX、DX还可进一步分成两个8位寄存器单独访问,且同样有自己独立的名称: AH、AL,BH、BL,CH、CL,DH、DL。上述寄存器中,(E)SP是指示栈顶的指针,称为堆栈寄存器。在32位寻址时,8个32位寄存器均可用作存储器访问的地址寄存器,但在16位寻址时,只能使用BX、BP、SP、SI、DI寄存器,其中BX和BP称为基址寄存器,SI和DI称为变址寄存器,(E)CX则常用于循环控制,又称为循环计数寄存器,(E)AX则称为累加器。
发布评论