Pentium微处理器的内部寄存器
PentiumIntel公司于19933月推出的第五代80X86系列微处理器,简称P580586,中文译名为“奔腾”。与其前辈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和回写WB5个步骤。图2.5给出了Pentium的指令流水线操作示意。
2.5  Pentium指令流水线操作示意图
当第一条指令完成指令预取,进入第二个操作步骤D1,执行指令译码操作时,流水线就可以开始预取第二条指令;当第一条指令进入第三个步骤D2,执行地址生成时,第二条指令
进入第二个步骤D1,开始指令译码,流水线又开始预取第三条指令;当第一条指令进入第四个步骤EX,执行指令规定的操作时,第二条指令进入第三个步骤D2,执行地址生成,第三条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第四条指令;当第一条指令进入第五个步骤WB,执行回写操作时,第二条指令进入第四个步骤EX,执行指令规定的操作,第三条指令进入第三个步骤D2,执行地址生成,第四条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第五条指令。
这种流水线操作并没有减少每条指令的执行步骤,5个步骤哪一步都不能跳越。但由于各指令的不同步骤之间并行执行,从而极大地提高了指令的执行速度。从第一个时钟开始,经过5个时钟后,每个时钟都有一条指令执行完毕从流水线输出。在这种理想情况下,Pentium的超标量体系结构每个时钟周期内可执行两条整数指令(每条流水线执行一条指令)
2) 重新设计的浮点运算部件
Pentium的浮点运算部件在极氪00980486的基础上作了重新设计,采用了超流水线技术,由8个独立执行部件进行流水线作业,使每个时钟周期能完成一个浮点操作(或两个浮点操作)。采
用快速算法可使诸如ADDMULLOAD等运算的速度最少提高3倍,在许多应用程序中利用指令调度和重叠(流水线)执行可使性能提高5倍以上。同时,这些指令用电路进行固化,用硬件来实现,使执行速度得到更大提高。
3) 独立的指令Cache和数据Cache
Pentium片内有两个8KB的超高速缓存器,一个是指令Cache,一个是数据Cache。转换后备缓冲器TLB(Translation Look-aside Buffer)的作用是将线性地址转换为物理地址。这两种Cache采用32×8线宽,是对Pentium64位总线的有力支持。指令和数据分别使用不同的Cache,使Pentium中数据和指令的存取减少了冲突,提高了性能。
Pentium的数据Cache有两种接口,分别与UV两条流水线相连,以便能在相同时刻向两个独立工作的流水线进行数据交换。当向已被占满的数据Cache中写数据时,将移走当前使用频率最低的数据,同时将其写回内存,这种技术称为Cache回写技术。由于CPUCache写数据和将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  总线接口信号
 
 
 
 
地址信号
A31A3
AP
APCHK
地址总线。用于指明某一8字节(64)单元地址
地址奇偶校验
地址奇偶校验出错
字节允许。用于指明访问8字节中的哪些字节
输出
输出
输出
输出
数据信号
D63D0
DP7DP0
数据总线。D63D56D7D0分别是最高和最低有效字节
数据奇偶校验引脚。分别对应数据的8个字节
数据奇偶校验允许
数据奇偶校验状态指示。低电平表示有奇偶校验错
总线检查
输入/输出
输入/输出
输出
输出
输入
总线周期
控制信号
SCYC
地址状态。它有效表明地址和总线定义信号是有效的
突发就绪。表明当前周期已完成
数据/控制周期指示。用来区分数据和控制周期
/读周期指示。用来区别读还是写周期
存储器/IO周期指示。用来区分存储器和IO周期
分离周期。表示未对齐操作锁定期间有2个以上的周期被锁定
Cache输出信号,指示当前Pentium周期可对数据进行缓存
总线锁定。它有效表明Pentium正在读修改写周期中运行,在读与写周期间不释放外部总线,即独占系统总线
输出
输出
输出
输出
输出
输出
输出
输出
Cache
控制信号
PWT
PCD
页面通写。PWT=1表明写操作命中时既要写Cache,也要写内存
页面Cache禁止。PCD=1时禁止以页为单位的Cache操作
Cache允许。用来确定当前周期所传送的数据是否能用于高速缓存
下一地址,用于形成流水线式总线周期
回写/通写
外部写缓冲器空
输出
输入
输入
输入
输出
输入
D63D0Pentium64位双向数据总线。A31A3构成32位地址总线,以提供存储器和I/O端口的物理地址。A31A3用于确定一个8字节单元地址,则用于指明在当前的操作中要访问8字节中的哪些字节。Pentium微处理器规定: 对应数据线D7D0对应数据线D15D8对应数据线D23D16对应数据线D31D24对应数据线D39D32对应数据线D47D40对应数据线D55D48对应数据线D63D56
Pentium微处理器的地址线没有设置A2A1A0引脚,但可由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
地址保持请求。该信号决定地址线A31A4是否接受地址输入
有效外部地址。该信号表示地址总线A31A4上的地址信号有效
Cache清洗。低电平有效时,强制Pentium清洗整个内部高速缓存
未命中
命中
无效请求
输入
输入
输入
输出
输出
输入
中断
INTR
NMI
可屏蔽中断请求。高电平表示有外部中断请求
不可屏蔽中断请求。上升沿表示该中断请求有效
输入
输入
执行跟踪
IU
IV
IBT
U流水线指令完成
V流水线指令完成
转移跟踪指令
输出
输出
输出
数字出错
浮点出错。用来报告PentiumPC类型的浮点出错
忽略数字出错
输出
输入
系统管理
怎样买汽车保险
系统管理中断。该信号有效,使Pentium进入到系统管理运行模式
系统管理中断激活。该信号有效,表明Pentium正工作在系统管理模式
输入
输出
其他
A20M
20位地址屏蔽。该信号有效时,将屏蔽A20及以上地址,使Pentium仿真80861MB存储空间
输入
3) 调试与测试引脚
调试与测试信号如表2.4所示。包括探针方式、断点/性能监测和边界扫描等引脚信号。
2.4  调试与测试信号
 
 
 
 
探针方式
R/S
PRDY
进入或退出探针方式
探针方式就绪
输入
输出
断点/
能监测
PM0/BP0
PM1/BP1
BP3BP2
性能监测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) 通用寄存器
832位通用寄存器EAXEBXECXEDXESIEDIEBP经营汽车修理店ESP是在8086/8088816位寄存器基础上扩展位数而来的。为了与8086/8088兼容,它们的低16位可以单独访问,并以同8086/8088中相同的名称命名: AXBXCXDXSIDIBPSP。其中AXBXCXDX还可进一步分成两个8位寄存器单独访问,且同样有自己独立的名称: AHALBHBLCHCLDHDL。上述寄存器中,(E)SP是指示栈顶的指针,称为堆栈寄存器。在32位寻址时,832位寄存器均可用作存储器访问的地址寄存器,但在16位寻址时,只能使用BXBPSPSIDI寄存器,其中BXBP称为基址寄存器,SIDI称为变址寄存器,(E)CX则常用于循环控制,又称为循环计数寄存器,(E)AX则称为累加器。