马洪兵
hoganma@263.net
62785531(O),62775255(H)
答疑时间:星期一下午
答疑地点:东主楼 9区 314
第二章 Pentium微处理器的体系结构
2.1 计算机体系结构的含义
2.2 Pentium微处理器的内部结构
2.3 实模式软件体系结构
2.4 保护模式软件体系结构
2.5 浮点部件软件体系结构
2.1 计算机体系结构的含义
计算机体系结构 = computer architecture
(计算机系统结构 )
计算机体系结构是程序员所看到的系统的一些属性:
概念性的结构和功能上的表现,这些属性既不同于数
据流和控制的组织,也不同于逻辑设计和物理实现。
Amdahl,1964
计算机体系结构是连接硬件和软件的一门学科,它研
究的内容不但涉及计算机硬件,也涉及计算机软件。
计算机体系结构与计算机组成
区别在于关心的问题不同:
?计算机体系结构关心的是怎样合理地进行软硬
件功能分配,为软件人员提供适用的计算机
?计算机组成关心的是怎样合理地实现分配给硬
件的功能和指标,提高性能价格比
兼容性
针对系列计算机
要求所有机种间能够保持向上兼容和向后兼容
向上兼容:为某个档次机种编制的软件能够不加修
改地运行在比它高档的机种上
向后兼容:为某个时期生产的机种编制的软件能够
不加修改地运行在它之后生产的机种上
兼容性 针对(软件)体系结构,非硬件实现
Pentium微处理器的运行模式:实模式、保护模式
2.2 Pentium微处理器的内部结构
1,Pentium微处理器的外形和封装
1993年开始推出,共生产三代:
?P5(Pentium 60/66) 0.8?m,5V电压
?P54C(Pentium 75/90/100/120/133/150/166/200),
0.6?m,3.8V电压
?P55C(Pentium MMX 166/200/233),0.35?m,
2.8V电压
集成度,310万晶体管 /片
采用 296引脚的引脚栅格阵列( PGA)陶瓷封装技术
2,Pentium微处理器的功能结构
?¤è? ?o 3? ′? ′¢ ?÷
?· á? ò? ??
256
?× ??
ROM
?× ?? 2? ?t
μ× ?·éú 3é
( U á÷?? ?? )
μ× ?·éú 3é
( U á÷?? ?? )
?? êy ?? ′? ?÷×é
ALU
(U á÷?? ?? )
ALU
(U á÷?? ?? )
í2 Dí ò? ?? ?÷
8 KB êy ?Y
Cache
·? μ? 2? ?t
?× ??
?? ′? ?÷×é
?ó ·¨?÷
3y ·¨?÷
3? ·¨?÷
80
80
8 KB ′ú ??
Cache
·? ?§?? ±ê
?o 3? ?÷
?¤è?
μ× ?·
?· á? ?· ??
×a ò? D£ ?é

?? ±ê μ× ?·
·? ò3
2? ?t
32
32
32
32
32
32
×ü
??
2?
?t
64
64 ?? ?á ×ü ??
64 ??
êy ?Y ×ü ??
36 ??
μ× ?·×ü ??
?× ??
TLB
TLB
32 ?? μ× ?·×ü ??
3,超标量与流水线
① 超标量和流水线的概念
超标量:配置多个执行部件和指令译码电路,能同
时执行多条指令。
Pentium由三个执行单元组织而成,一个执行浮点指
令,另两个执行整型指令( U流水线和 V流水线),
这意味着 Pentium同时可以执三条指令
超标量
流水线:在 CPU中把一条指令分解成多个可单独处
理的操作,使每个操作在一个专门的硬件站( stage)
上执行,这样一条指令需要顺序地经过流水线中多
个站的处理才能完成,但是前后相连的几条指令可
以依次流入流水线中,在多个站间重叠执行,因此
可以实现指令的并行处理。
80486的指令分 PF,D1,D2,EX,WB五个操作步骤
0 1 2 3 4 5 6 87 时间
i1 PF D1 D2 EX WB
PF D1 D2 EX WB
PF D1 D2 EX WB
PF D1 D2 EX WB
i2
i3
i4
② 整数流水线
五个阶段的整数流水线:
?PF(预取 ):处理器从代码 cache中预取指令
?D1(译码阶段 1):处理器对指令译码确定操作码
和寻址信息。在这个阶段还进行指令的成对性检
查和分支预测
?D2(译码阶段 2):产生访问存储器的地址
?EX(执行 ):处理器或者访问数据 cache,或者利
用 ALU、筒型移位器或其他功能单元计算结果
?WB(写回 ):利用指令运行结果更新寄存器和标
志寄存器
时间
i1 PF D1 D2 EX WB
PF D1 D2 EX WB
PF D1 D2 EX WB
PF D1 D2 EX WB
i2
i3
i4
0 1 2 3 4 5 6 87
PF D1 D2 EX WB
PF D1 D2 EX WB
PF D1 D2 EX WB
PF D1 D2 EX WB
i5
i6
i7
i8
U
V
U
V
U
V
U
V
Pentium的超标量流水线
?指令配对
U,V两条流水线并行执行的要满足一些前提条件,
Pentium数据手册定义了配对规则:
1,两条指令都是简单指令
2,没有写后读和写后写的依赖关系
3,一条指令不能同时既包含位移量又包含立即数
4,带前缀的指令只能出现在 U流水线中
此外,条件分支转移指令和非条件分支转移指令和,
只有当它们作为配对中的第二条指令出现时才可以配
对。
简单指令:完全由硬件执行而无需任何微码控制,
在一个时钟周期内执行的指令
?mov reg,reg/mem/imm
?mov mem,reg/imm
?alu reg,reg/mem/imm
?alu mem,reg/imm
?inc reg/mem
?dec reg/mem
?push reg/mem
?pop reg
?lea reg,mem
?jmp/call/jcc near
?nop
例:
MOV AX,5
INC BX
MOV AX,5
INC AX
?分支预测
P,310
③ 浮点流水线
八个阶段的浮点流水线:
?PF 预取
?D1 译码阶段 1
?D2 译码阶段 2
?EX 取操作数
?X1 浮点执行步骤 1
?X2 浮点执行步骤 2
?WT 写浮点数
?ER 出错报告
浮点流水线中的前五个步骤与整数流水线中的五个
步骤是同步执行的,只是多出三个步骤
4,Cache
P,309
2.3 实模式软件体系结构
1,寄存器结构
0151631
015
0151631 78
AL
BL
CL
DL
AX
BX
CX
DX
AH
BH
CH
DH
EAX
EBX
ECX
EDX
IP
CS
DS
SS
ES
FS
GS
SP
BP
SI
DI
ESP
EBP
ESI
EDI
FLAGS
CR
0
指令指针 IP
段寄存器 CS,DS,SS,ES,FS,GS
通用寄存器 EAX,EBX,ECX,EDX
变址寄存器 ESI,EDI
指针寄存器 EBP,ESP
标志寄存器 FLAGS
控制寄存器 0(CR0)
CR0的第 0位叫保护允许位 (PE),
PE用于对实模式和保护模式进行
切换,PE置 0时选择实模式运行
2,存储器地址空间和数据组织
220=1MB,地址由 00000-FFFFF(H)编码
若存放的信息是字节,则按顺序存放
若存放的信息是字,则将字的低位字节存放在低地址,
高位字节存放在高地址
若存放的信息是双字,则将双字的低位字存放在低地
址,高位字存放在高地址
对准双字界域:对应地址是 4的倍数
例 1,双字 A00055FF如何存储在地址为 0210C的存储器中
例 2,双字 0123ABCD如何存储在地址为 02102的存储器中
1MB存储空间分通用和专用两个区域
00000-003FF 专用,存放中断向量表
00400-FFFFF通用
中断向量表表内指针用来指出相应的中断服务程序
的起始点,表内每个指针占 2个字,占据较高地址的
是段基址,占据较低地址的是偏移量
?中断向量表可以包含 个中断指针
3,段寄存器和存储器分段
1MB的存储空间被分成段,每段 64KB
段是可独立寻址的存储器部分
6个段寄存器:保存 16位段基址
CS 代码段
SS 堆栈段
DS 数据段
ES 附加段
FS 数据段 F
GS数据段 G
4,通用寄存器
在程序执行时暂时保存中间结果。
在进行算术运算和逻辑运算时,通用寄存器任何一个
都可以作为源操作数或目的操作数
A 累加器寄存器
B 基址寄存器
C 计数寄存器
D 数据寄存器
0151631 78
AL
BL
CL
DL
AX
BX
CX
DX
AH
BH
CH
DH
EAX
EBX
ECX
EDX
5,指针和变址寄存器 ESP,EBP,ESI,EDI
作通用数据寄存器用
SP
BP
SI
DI
ESP
EBP
ESI
EDI
0151631作指针和变址寄存器用时为 16位,
SP,BP,SI,DI
P.52
6,堆栈
P,65
7,标志寄存器
P.53
8,实际地址和逻辑地址
P.64
例 3,假设段寄存器内容为 002A,
偏移量为 0023,求构成的物理地

9,I/O地址空间
Pentium存储器和 I/O地址空间是分离的。
I/O地址空间安放 I/O接口,如打印机、终端接口
PentiumI/O地址空间为 64KB,地址范围 0000-FFFF
每一个地址对应一个字节宽的 I/O端口
习题
1,什么是计算机体系结构?
2,Pentium微处理器的整数流水线是怎样工作的?
3,Pentium微处理器的配对规则是什么
4,分支转移预测功能的意义是什么?
5,实模式下 Pentium微处理器的堆栈操作是怎样进行
的,试举例说明
6,字 ABCD(H)存放地址为 0A002 (H)的存储器中,如何
存放,是对准字还是非对准字?
7,计算下列物理地址:
1000,1234
0100,ABCD