马洪兵
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
× 2t
μ×?·éú 3é
( U á÷ )
μ×?·éú 3é
( U á÷ )
êy ′÷×é
ALU
(U á÷ )
ALU
(U á÷ )
í2 Dí ò÷
8 KB êy?Y
Cache
·? μ? 2t
×
′÷×é
ó ·¨?÷
3y ·¨?÷
3? ·¨?÷
80
80
8 KB ′ú
Cache
·§ ±ê
o 3÷
¤è?
μ×?·
· á·
×a ò? D£?é

±ê μ×?·
·? ò3
2t
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