微机接口技术
2004,3,10
2
第二章 微处理器原理与体系结构
1,微处理器概述
2,IA-32微处理器
3,IA-32流水线结构
4,IA-32存储器组织
5,IA-32CPU的时序
6.飞速发展的 CPU
3
1,微处理器概述
1.1 CPU的基本概念
1.2 CPU主要技术参数
IA-32,IA是 Intel Architecture的简称,IA-32
是 Intel 32位处理器架构的简称。
4
1.1 CPU的基本概念
微处理器 MPU( Micro Processing
Unit),即微型化的中央处理器。
早期微处理器以 MPU表示,以区别于大型主机的多芯片 CPU。 但现在已经不加区分,都用 CPU表示。
中央处理器 CPU的英文全称是
Central Processing Unit。
如果把计算机比作一个人,那么 CPU
就是大脑。
5
2,CPU外频
3.前端总线( FSB) 频率
4,CPU主频
5,L1和 L2 Cache的容量和速率位:采用二进制,代码只有
,0”和,1”。
字长,CPU在单位时间内 (同一时间 )能一次处理的二进制数的位数叫字长。对于不同的 CPU,字长的长度是不一样。 8
位的 CPU一次只能处理一个宇节,而 32
位的 CPU一次就能处理 4个宇节。也称为 CPU总线频率,
是由主板为 CPU提供的基准时钟频率前端总线也就是以前所说的 CPU
总线,也是 CPU
与内存以及 L2
Cache( 仅指
Socket 7主板)
之间交换数据的工作时钟
CPU主频也叫工作频率,是
CPU内核 (整数和浮点运算器 )电路的实际运行频率。
L1和 L2 Cache的容量和工作速率对提高电脑速度起关键作用,尤其是 L2 Cache
对提高运行 2 D图形处理较多的商业软件速度有显著作用。
1.2 CPU主要技术参数
1,位,字节和字长
6
2,IA-32微处理器
2.1 8086的编程结构
2.2 8086的工作模式和引脚
7
2.1 8086的编程结构
1,总线接口部件 (BIU)
2,执行部件 (EU)
3.通用寄存器
4,标志寄存器
8
图 2-1 8086的编程结构图
9
1,总线接口部件 (BIU)
总线接口部件由下列各部分组成:
( 1) 4个段地址寄存器;
CS—— 16位的代码段寄存器;
DS—— 16位的数据段寄存器;
ES—— 16位的扩展段寄存器;
SS—— 16位的堆栈段寄存器;
( 2) 16位的指令指针寄存器 IP;
( 3) 20位的地址加法器;
( 4) 6字节的指令队列缓冲器 。
10
执行部件的功能就是负责从指令队列取指令并执行 。 从编程结构图可见,执行部件由下列几个部分组成:
( 1) 4个通用寄存器,即 AX,BX,CX,DX;
( 2) 4个专用寄存器;
( 3) 标志寄存器 FR;
( 4) 算术逻辑单元 ALU。
2,执行部件 (EU)
11
表 2-1 寄存器的隐含用法
3,通用寄存器
12
图 2-2 标志寄存器结构图标志寄存器( Flag Register) 共有 16位,
其中 7位未用。标志寄存器内容如图 2-2所示:
( 1) 条件标志
( 2) 控制标志
4,标志寄存器
13
2.2 8086的工作模式和引脚
1.保护模式,所有的指令和结构特性都是可用的,
提供最高的功能和性能。对操作系统和新的应用程序采用此模式。
2.实地址模式,是实现处理器编程环境的工作模式,
可切换至保护模式或系统管理模式;在系统上电或复位后,
处理器所处的模式。
3.系统管理模式,处理器保存当前运行状态,并切换到一个独立的地址空间;该模式主要用于自动暂停、
睡眠等节电模式。
14
8086CPU的引脚信号
8086CPU采用双列直插式的封装形式,具有 40
条引脚,见图 2-5。 它采用分时复用的地址 /
数据总线,所以有一部分引脚具有双重功能,
即在不同时钟周期内,
引脚的作用不同 。
图 2-5 8086的引脚信号(括号中为最大模式下的名称)
15
3,IA-32流水线结构总线接口部件 BIU
执行部件 EU
图 2-6 8086微处理器执行过程取指 i1 取指 i2 取指 i3 取指 i4 取指 i5 取数 取指 i6
等待 执行 i1 执行 i2 执行 i3 执行 i4
16
总线接口部件 BIU和执行部件 EU并不是同步工作的,两者的动作管理遵循如下原则:
每当 8086的指令队列中有 2个空字节,BIU就会自动把指令取到指令队列中。而同时 EU从指令队列取出一条指令,并用几个时钟周期去分析、执行指令。当指令队列已满,而且 EU对 BIU又无总线访问请求时,
BIU便进入 空闲状态 。在执行转移、调用和返回指令时,指令队列中的原有内容被 自动清除 。
工作原则:
17
IA-32结构提高速度的措施有哪些?
参见书 P54,共 4点。
18
取指令 1 执行指令 1 取指令 2 执行指令 2
取指令 1 执行指令 1
取指令 2 执行指令 2
取指令 3 执行指令 3
t0 t1 t2 t3 t4
t
非流水线操作
8085
流水线操作
8086
在 t0~ t4时间间隔中,8085执行了 2条指令。
在 t0~ t4时间间隔中,理想情况下,8086可执行 3条指令。
流水线结构
19
思考题
若 CPU的 BIU取指令的时间为 1us,EU执行指令的时间为 2us 。若有一段 3条指令的程序,采用以上
8085非流水线操所和 8086流水线操作分别需要多少时间?
非流水线操作,(1+2)*3=9us
流水线操作,1+2*3=7us
20
8 0 8 0 - 8 0 8 5 M P
C P U
B U S
8 0 8 6 M P
E U
B I U
B U S
E X E C U T
E
F E T C H
E X E C U T
E
R E A D
E X E C U T
E
W R I T E F E T C H
B U S Y B U S Y
B U S Y B U S U
E X E C U
T E
B U S Y
B U S Y B U S Y
F E T C H
B U S Y
F E T C H
B U S Y
I 1
I 1
I 2 I 2 I 3 I 3 I 3
E X E C U T
E
I 1
E X E C U T
E
E X E C U T
E
I 3I 2
F E T C H
I 2
F E T C H
I 3
W R I T E
I 1
I 4
R E A D
I 3 I 5
B U S Y
8 0 8 6 内 部 操 作 的 并 行 性
21
4,IA-32存储器组织
4.1 8086存储器的分段结构
4.2 8086存储器的逻辑地址与物理地址
4.3 8086存储器 20位物理地址的形成
22
8086/8088主存地址的形成先给大家学习以下计算机科学中的量词:
210=1024=1K
220=1024K=1M
230=1024M=1G
我们学习的 8088/8086有 20根地址线,可以将主存储器编上 220个内存单元,即 1M内存,即使有多于 1M的内存,对于 8088/8086来说,也是浪费。
———— 8086/8088CPU
23
现在有一个问题,20根地址线需要一次提供
20个信号,但是我们的计算机是 16位宽度,16
位的 CPU宽度如何由 CPU提供 20位的地址信号呢?
16位? 20位
24
其实答案很简单,一个寄存器的宽度是 16
位,两个寄存器不就是 32位宽度了吗?
我们没有用两位寄存器并在一起来提供 32
位的信号,而让一个 20位的寄存器和一个 16为寄存器进行加法来得到一个 20位的地址信号。
25
4.1 8086存储器的分段结构
8086 CPU中有四个段寄存器,CS,DS,SS
和 ES,这四个段寄存器存放了 CPU当前可以寻址的四个段的基值,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据 。 一旦这四个段寄存器的内容被设定,就规定了 CPU当前可寻址的段,如图 2-
7所示 。
图 2-7 当前可寻址的存储器段(堆栈段和附加段重叠)
26
4.2 8086存储器的逻辑地址与物理地址
8086 CPU中的每个存储元在存储体中的位置都可以使用实际地址和逻辑地址来表示 。
CPU访问存储器时,
要形成 20位的物理地址,即先找到某段,再找到该段内的偏移量 。 换句话说,CPU是以物理地址访问存储器的,
如图 2-8所示 。
图 2-8 逻辑地址与物理地址的关系
27
4.3 8086存储器 20位物理地址的形成在存储段划分时,段内地址是连续的,
段与段之间是相互独立的 。 每个段的起始地址称段的基址,段基址必须是能被 16整除的那些地址,即 20位的段基址的低四位应当是
0000。 由于段起始地址的低四位为 0,所以可用 20位地址的高 16位表示段的基址,存放在段基址寄存器中 。 段基址寄存器共四个,CS、
DS,ES,SS。
28
29
30
5,8086的总线时序
5.1 读周期的时序
5.2 写周期的时序
31
5.1 读周期的时序(图 2-10)
图 2-10 8086读总线周期
32
5.2 写周期的时序(图 2-11)
图 2-11 8086写总线周期
33
6.飞速发展的 CPU
6.1 主要的新技术
6.2 奔腾 4的时代
6.3 走近 64位 CPU
34
1,流水线技术
2,超流水线和超标量技术
3,乱序执行技术
4,分支预测和推测执行技术
5,指令特殊扩展技术流水线 (pipeline):在 CPU中由 5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条 X86指令分成 5~6步后再由这些电路单元分别执行,这样就能实现在一个 CPU时钟周期完成一条指令,
因此提高 CPU的运算速度。
超流水线是指某些 CPU内部的流水线超过通常的 5~6
步以上超标量 (supe rscalar)
是指在 CPU中有一条以上的流水线乱序执行 (out-of-
orderexecution)是指 CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术目的是为了使 CPU内部电路满负荷运转并相应提高了 CP U的运行程序的速度分支预测 (branch prediction)和推测执行 (speculatlon
execution) 是 CPU动态执行技术中的主要内容,目的是为了提高 CPU的运算速度对 X86指令集进行指令扩展,
比如,InteI公司自己的,MMX”、
Pentium III中的,SSE” 和 AMD
公司的,3D Now!”等。
6.1 主要的新技术
35
6.2 奔腾 4的时代
2000年下半年,Intel推出了代号 Willamette的处理器,它是英特尔 IA-32 CPU家族中最新的成员,也是英特尔 P6系列的终结者。这就是 Pentium IV( P4)。 P4
CPU基于新的 32位微结构,在许多方面超过了奔腾 Ⅱ /Ⅲ
等上两代的 IA-32 CPU。
NetBurst微架构是 Pentinum 4处理器的基石。这里解释一下处理器的架构与微架构:处理机的架构指的是指令集、寄存器和程序员公用的内存驻留的数据结构,
它们在处理器的发展进程中得到继承和增强。处理机的微架构指的是处理机架构在硅片上的实现。
36
NetBurst微架构特点细节:
超流水线技术
执行追踪 Cache
快速执行引擎 REE
400MHz 系统总线
先进的动态执行
流式 SIMD扩充 2( SSE2)
37
图 2-23 Pentium IV 处理器及搭配的 RDRAM内存条
38
6.3 走近 64位 CPU
64位处理器针对的主要对象是目前对 32位系统感觉受限制的用户。一些用来设计汽车、卫星以及一些其他的非常复杂的产品的 MCAD软件(机械计算机辅助设计软件)将通过 64位系统得到不少的性能提升。另外,超大规模的数据库软件也由于 64位的大内存寻址区域而获得不少优势。可见其企业级应用是相当广泛的。
Intel的 64位结构叫做 IA-64。 目前,Intel同时推出了 Pentium 4以及 Intel第一个从 IA-32到 IA-64架构转换的产品 Itanium。
39
图 2-24 Intel的 64位 CPU- Itanium
40
IA-64架构的特点
1) 更改现有工业标准体系,建立 IA-64架构后将采用并行运算方式的体系;
2) 单指令简化,即每条指令执行的功能减少,但执行效率变高;
3) 由于运行指令并行化,并且采用了程序控制指令,
使分支预测更加准确,提高运算的利用效率;
4) 增加程序运行时的并行运算预测能力,使内存中需要的数据更容易在 Cache中命中;
41
5) 增加内存的总容量,扩展到 2的 64次方,由原先的
4GB内存扩展到惊人的 180亿 GB容量,并支持 64位浮点数和 32位浮点数,高精度的数字计算,提供高达 82位的数据宽度 。
6) 利用 GR Stack来降低 save/restore需要的调用,减少寄存器使用数量,使用的是 Register Stacker Engine
( RSE),使用全新的寄存器,总共 128个 64位寄存器,
其中 32个是静态的,96个是动态的 。
7) 现有流水线采用的是顺序结构,一条运行结束后进行下一条,IA-64采用并行流水线结构,提高了工作效率 。
8) 高速运算功能,在平行运算时,提供了 2倍于运算频率的运算速度 。