第 2 章 IA-32结构微处理器
合集下载
第2章 IA-32结构微处理器与8086
2.从实模式至保护模式
ቤተ መጻሕፍቲ ባይዱ
从80286开始,在80386中真正完善保 护模式。
3.片内存储管理单元(MMU)
32位地址,可寻址4GB物理地址。 大多数PC的物理内存配置远小于4GB。 但应用程序却可能需要庞大的地址空 间。 因此,在操作系统中提供了虚拟存储 器管理机制,而这要求硬件支持。
4.浮点支持
① 方向标志(Direction Flag,DF) ② 中断允许标志(Interrupt-enable Flag,IF) ③ 追踪标志(Trace Flag,TF)
4.指令指针
指令指针(IP)寄存器包含下一条要执 行的指令在当前码段中的偏移。
2.3.3 存储器组织
图2-8
8086物理地址的形成
图2-9 8086的存储器结构
图2-4
8086微处理器基本执行环境
2.3.2 基本的程序执行寄存器
通用寄存器,这八个寄存器能用于存放操 作数和指针。 段寄存器,这些寄存器最多能保存四个段 选择子。
FLAGS(程序状态和控制)寄存器, FLAGS寄存器报告正在执行的程序的状态, 并允许有限地(应用程序级)控制处理器。 IP(指令指针)寄存器。IP寄存器包括下 一条要执行的指令的16位指针。
图2-1
8086(8088)的功能结构
图2-2
8位微处理器的执行顺序
图2-3
8086的执行顺序
2.3 8086微处理器的执行环境 2.3.1 基本执行环境概要
在8086微处理器上执行的程序或任务 都有一组执行指令的资源用于存储代码、 数据和状态信息。
地址空间 基本程序执行寄存器 堆栈(Stack) I/O端口
2.1.2 8086性能的提高
第2章 IA-32结构微处理器与8086
32位地址能寻址4GB物理地址。
2.1.1 8086功能的扩展
第二章 IA-32结构微 处理器与8086
2.从实模式至保护模式
从80286开始,在80386中真正完善保护模式。 3.片内存储管理单元(MMU)
32位地址,可寻址4GB物理地址。 大多数PC的物理内存配置远小于4GB。 但应用程序却可能需要庞大的地址空间。 因此,在操作系统中提供了虚拟存储器管理机 制,而这要求硬件支持。
图2-4 8086微处理器基本执 IA-32结构微 处理器与8086
通用寄存器:这八个寄存器能用于存放操作数和指 针。
段寄存器:这些寄存器最多能保存四个段选择子。
FLAGS(程序状态和控制)寄存器:FLAGS寄存 器报告正在执行的程序的状态,并允许有限地(应 用程序级)控制处理器。
普通高等学校计算机教育“十三五”
微机原理与接口技术(第3版)
周明德 张晓霞 兰方鹏 著式
内容导航
CONTENTS
2.1 IA-32微处理器是8086的延伸 2.2 8086的功能结构 2.3 8086微处理器的执行环境 1.4 微型计算机的结构
2.1 IA-32微处理器是8086的延伸第二章 IA-32结构微
2.引入片内缓存(Cache)
为了减少从存储器中取指令与数据的时间, 利用指令执行的局部性原理,把近期可能要用到 的指令与数据放在工作速度比主存储器更快(当 然,容量更小)的缓存中。
2.1 8086的功能结构
第二章 IA-32结构微 处理器与8086
8086 CPU从功能上来说分成两大部分:总线 接口单元(Bus Interface Unit,BIU)和执行单 元(Execution Unit,EU)。
2.1.1 8086功能的扩展
2.1.1 8086功能的扩展
第二章 IA-32结构微 处理器与8086
2.从实模式至保护模式
从80286开始,在80386中真正完善保护模式。 3.片内存储管理单元(MMU)
32位地址,可寻址4GB物理地址。 大多数PC的物理内存配置远小于4GB。 但应用程序却可能需要庞大的地址空间。 因此,在操作系统中提供了虚拟存储器管理机 制,而这要求硬件支持。
图2-4 8086微处理器基本执 IA-32结构微 处理器与8086
通用寄存器:这八个寄存器能用于存放操作数和指 针。
段寄存器:这些寄存器最多能保存四个段选择子。
FLAGS(程序状态和控制)寄存器:FLAGS寄存 器报告正在执行的程序的状态,并允许有限地(应 用程序级)控制处理器。
普通高等学校计算机教育“十三五”
微机原理与接口技术(第3版)
周明德 张晓霞 兰方鹏 著式
内容导航
CONTENTS
2.1 IA-32微处理器是8086的延伸 2.2 8086的功能结构 2.3 8086微处理器的执行环境 1.4 微型计算机的结构
2.1 IA-32微处理器是8086的延伸第二章 IA-32结构微
2.引入片内缓存(Cache)
为了减少从存储器中取指令与数据的时间, 利用指令执行的局部性原理,把近期可能要用到 的指令与数据放在工作速度比主存储器更快(当 然,容量更小)的缓存中。
2.1 8086的功能结构
第二章 IA-32结构微 处理器与8086
8086 CPU从功能上来说分成两大部分:总线 接口单元(Bus Interface Unit,BIU)和执行单 元(Execution Unit,EU)。
2.1.1 8086功能的扩展
chapter2IA-32处理器体系结构
第2章 IA-32体系结构 章 体系结构
要点: 要点:
1.基本概念 基本概念 2.IA-32处理器体系结构 处理器体系结构 3.IA-32的内存管理 的内存管理
计算机科学系- 计算机科学系-计算机导论课件
1
1.基本概念
微机的基本结构 指令执行周期 程序是如何运行的
计算机科学系- 计算机科学系-计算机导论课件
计算机科学系- 计算机科学系-计算机导论课件
16
P6处理器系列
奔腾Pro 奔腾
–提升了指令的执行速度
奔腾Ⅱ 奔腾Ⅱ
– MMX技术 MMX
奔腾Ⅲ 奔腾Ⅲ
– SIMD(流扩展),128位寄存器
奔腾Ⅳ 奔腾Ⅳ
– NetBurst结构 –面向高性能的多媒体应用程序
计算机科学系- 计算机科学系-计算机导论课件
10
2.2 基本执行环境
地址空间
– 保护模式:4GB(32位地址,0~232-1) – 实地址模式:1MB(20位地址,0~220-1)
基本寄存器
– 寄存器(Register)是CPU内部的高速储存单元, 访问速度比常规内存快得多。 – 由8个32位通用寄存器、6个16位段寄存器和一个 存放处理器标志的寄存器(EFLAGS)和一个指 令指针(EIP)组成。
2
1.1 微机的基本结构
数据总线
寄存器
中央处理器 (CPU) )
ALU CU 时钟
内存储器
I/O设备#1 设备# 设备
I/O设备#2 设备# 设备
控制总线
地址总线
计算机科学系- 计算机科学系-计算机导论课件
3
1.1 微机的基本结构 总线(bus):一组用于在计算机各部分之间传送 总线 数据的并行线。
要点: 要点:
1.基本概念 基本概念 2.IA-32处理器体系结构 处理器体系结构 3.IA-32的内存管理 的内存管理
计算机科学系- 计算机科学系-计算机导论课件
1
1.基本概念
微机的基本结构 指令执行周期 程序是如何运行的
计算机科学系- 计算机科学系-计算机导论课件
计算机科学系- 计算机科学系-计算机导论课件
16
P6处理器系列
奔腾Pro 奔腾
–提升了指令的执行速度
奔腾Ⅱ 奔腾Ⅱ
– MMX技术 MMX
奔腾Ⅲ 奔腾Ⅲ
– SIMD(流扩展),128位寄存器
奔腾Ⅳ 奔腾Ⅳ
– NetBurst结构 –面向高性能的多媒体应用程序
计算机科学系- 计算机科学系-计算机导论课件
10
2.2 基本执行环境
地址空间
– 保护模式:4GB(32位地址,0~232-1) – 实地址模式:1MB(20位地址,0~220-1)
基本寄存器
– 寄存器(Register)是CPU内部的高速储存单元, 访问速度比常规内存快得多。 – 由8个32位通用寄存器、6个16位段寄存器和一个 存放处理器标志的寄存器(EFLAGS)和一个指 令指针(EIP)组成。
2
1.1 微机的基本结构
数据总线
寄存器
中央处理器 (CPU) )
ALU CU 时钟
内存储器
I/O设备#1 设备# 设备
I/O设备#2 设备# 设备
控制总线
地址总线
计算机科学系- 计算机科学系-计算机导论课件
3
1.1 微机的基本结构 总线(bus):一组用于在计算机各部分之间传送 总线 数据的并行线。
微机原理第2章 IA32结构微处理器及其体系结构
出 版 社
用于控制CPU能否相应可屏蔽中断请求。
若置IF=1,则允许CPU去接收外部的可屏蔽的中断请求;(STI)
若使IF=0,则屏蔽上述的中断请求;对内部产生的中断不起作
用。(CLI)
微 计 算 机 机 原 理 · 第 2 版 电 子 工 业 出 版 社
③ 追踪标志TF(Trace Flag)/单步中断标志 置TF=1,程序执行当前指令后暂停。 置TF=0,程序执行当前指令后不暂停。 用于调试程序,每执行完一条指令都可以停 下来检查执行结果的状态。
② 辅助进位标志AF(Auxitiary Carry Flag)
字节操作时,低半字节(一个字节的D3)向高半字节有进位或 电 子 借位,则AF=1,否则为0。标志用于十进制算术运算指令中。 工 业 ③ 溢出标志OF(Overflow Flag) 出 版 社 在算术运算中,带符号数的运算结果超出了8位、16位带符号数
EU负责指令的执行。
由数据寄存器、指针寄存器与算术逻辑单元(ALU)组成。 取指部分与执行指令部分是分开的,二者可以重叠进行
微 计 算 机 机 原 理 · 第 2 版 电 子 工 业 出 版 社
在 8086 中,由于 BIU 和 EU 是分开的,所 以,取指和执行可以重叠进行。
8086指令执行顺序
SP:堆栈指针,与段寄存器SS配合确定堆栈在内存中的位置。
BP(Base Pointer Register):寻址堆栈操作数时,也是寻址堆栈段。 SI(Source Index Register)和DI(Destination Index Register)常用
于串操作。
微 计 算 机 机 原 理 · 第 2 版 电 子 工 业 出 版 社
用于控制CPU能否相应可屏蔽中断请求。
若置IF=1,则允许CPU去接收外部的可屏蔽的中断请求;(STI)
若使IF=0,则屏蔽上述的中断请求;对内部产生的中断不起作
用。(CLI)
微 计 算 机 机 原 理 · 第 2 版 电 子 工 业 出 版 社
③ 追踪标志TF(Trace Flag)/单步中断标志 置TF=1,程序执行当前指令后暂停。 置TF=0,程序执行当前指令后不暂停。 用于调试程序,每执行完一条指令都可以停 下来检查执行结果的状态。
② 辅助进位标志AF(Auxitiary Carry Flag)
字节操作时,低半字节(一个字节的D3)向高半字节有进位或 电 子 借位,则AF=1,否则为0。标志用于十进制算术运算指令中。 工 业 ③ 溢出标志OF(Overflow Flag) 出 版 社 在算术运算中,带符号数的运算结果超出了8位、16位带符号数
EU负责指令的执行。
由数据寄存器、指针寄存器与算术逻辑单元(ALU)组成。 取指部分与执行指令部分是分开的,二者可以重叠进行
微 计 算 机 机 原 理 · 第 2 版 电 子 工 业 出 版 社
在 8086 中,由于 BIU 和 EU 是分开的,所 以,取指和执行可以重叠进行。
8086指令执行顺序
SP:堆栈指针,与段寄存器SS配合确定堆栈在内存中的位置。
BP(Base Pointer Register):寻址堆栈操作数时,也是寻址堆栈段。 SI(Source Index Register)和DI(Destination Index Register)常用
于串操作。
微 计 算 机 机 原 理 · 第 2 版 电 子 工 业 出 版 社
第2章 Intel IA-32处理器结构与原理
(2)数据相关 某条指令的操作数依赖前一条或前几条指令的运行 结果,这就是所谓的数据相关。
① 写后读相关(RAW,Read After Write) A=B+C D=3*A // 在数据A上写后读 ② 读后写相关(WAR,Write After Read) A=B+C B=D*2 // 在数据B上读后写
1.指令间的相关性
(1)结构相关 所谓结构相关(也称为名相关)是指不同指令同时 存取相同的寄存器或存储器,但这些指令间不存在数 据流。
在冯· 诺依曼存储结构中,数据和程序放在同一存 储器,如果此时一条指令要读或写数据,而刚好取 指单元要取指令,就出现结构相关
5
1.指令间的相关性
现代微机原理与接口技术(第3版)
I1 I2 I3 I4 I5 I6 I7 I8 I9
IF
IF IF ID ID ID IF OF OF OF ID ID ID IF EX EX EX OF OF OF ID WB WB WB EX EX EX OF OF OF WB WB WB EX WB WB WB
思考:超标度为几?
IF
IF
IF
10
3. 动态执行技术的使用(P6架构开始)
推测执行
现代微机原理与接口技术(第3版)
在分支预测基础上,推测分支路径,并按推测执行。 一旦证实分支预测正确,已提前建立的“预测结果”立 即变成“最终结果”并及时修改机器的状态。
寄存器重命名
如果两条指令只是寄存器名字相重,实际数据并不相关 ,可以对其中一条指令的换寄存器来解决。 寄存器重命名技术是在指令被译码成微代码时将IA指令 使用的IA通用寄存器映射成微代码使用的内部寄存器。
时钟频率
第2章 IA-32架构
14
寄存器名
特
殊
用
途
SI
在字符串处理指令中作源变址寄存器用 在间接寻址中作变址寄存器用
DI
在字符串处理指令中作目标变址寄存器用 在间接寻址中作变址寄存器用
BP
在间接寻址中作基址指针用
SP
在堆栈操作中作堆栈指针用
15
2. 段寄存器组
8086CPU的BIU中设置4个16位段寄存器: •代码段寄存器CS(Code Segment) •数据段寄存器DS(Data Segment) •附加数据段寄存器ES(Extra Segment) •堆栈段寄存器SS(Stack Segment)
21
现将各标志位的定义说明如下: (1)CF(Carry Flag)进位标志位。如果做加法时最 高位(字节操作是D7位,字操作是D15位)产生进位或 做减法时最高位产生借位,则CF=1,否则CF=0。 (2)PF(Parity Flag)奇偶标志位。如果操作结果的 低八位中含有偶数个1,则PF=1,否则PF=0。 (3)AF(Auxiliary Carry Flag)辅助进位标志位。如 果做加法时D3 位有进位或做减法时 D3 位有借位 ,则 AF=1,否则AF=0。
第2章 IA-32结构微处理器及 其体系结构
1
主要内容:
微型机的基本结构; 8088(8086)微处理器的工作原理、
引线及结构;
总线的一般概念。
2
§2.1 微处理器的主要性能指标
2.1.1 字长 2.1.2 指令数 2.1.3 运算速度 2.1.4 访存空间 2.1.5 高速缓存大小 2.1.6 虚拟存储空间 2.1.7 是否能构成多处理器系统 2.1.8 工艺形式及其他
12
寄存器名
寄存器名
特
殊
用
途
SI
在字符串处理指令中作源变址寄存器用 在间接寻址中作变址寄存器用
DI
在字符串处理指令中作目标变址寄存器用 在间接寻址中作变址寄存器用
BP
在间接寻址中作基址指针用
SP
在堆栈操作中作堆栈指针用
15
2. 段寄存器组
8086CPU的BIU中设置4个16位段寄存器: •代码段寄存器CS(Code Segment) •数据段寄存器DS(Data Segment) •附加数据段寄存器ES(Extra Segment) •堆栈段寄存器SS(Stack Segment)
21
现将各标志位的定义说明如下: (1)CF(Carry Flag)进位标志位。如果做加法时最 高位(字节操作是D7位,字操作是D15位)产生进位或 做减法时最高位产生借位,则CF=1,否则CF=0。 (2)PF(Parity Flag)奇偶标志位。如果操作结果的 低八位中含有偶数个1,则PF=1,否则PF=0。 (3)AF(Auxiliary Carry Flag)辅助进位标志位。如 果做加法时D3 位有进位或做减法时 D3 位有借位 ,则 AF=1,否则AF=0。
第2章 IA-32结构微处理器及 其体系结构
1
主要内容:
微型机的基本结构; 8088(8086)微处理器的工作原理、
引线及结构;
总线的一般概念。
2
§2.1 微处理器的主要性能指标
2.1.1 字长 2.1.2 指令数 2.1.3 运算速度 2.1.4 访存空间 2.1.5 高速缓存大小 2.1.6 虚拟存储空间 2.1.7 是否能构成多处理器系统 2.1.8 工艺形式及其他
12
寄存器名
微机原理第2章-IA32微处理器的功能结构
3、EFLAGS寄存器 、 寄存器
(1)状态标志位 状态标志位
天 津 工 业 大 学 计 算 机 技 术 与 自 动 化 学 院
CF:进位标志位,当执行一个加法运算指令使最高位 产生进位时,或者执行一个减法运算指令使最高位引起 借位,则CF=1;否则CF=0。 PF:奇偶标志位,若运算结果的低8位中所含1的个数 为偶数,则PF=1;否则PF=0。 AF:辅助进位标志位。当加法运算时,如果第三位往 第四位有进位,或者当减法运算时,第三位从第四位有 借位,则AF=1;否则AF=0。 ZF:零标志位,当运算结果为0时,ZF=1;否则ZF=0。 SF:符号标志位,当运算结果的最高位为1时,SF=1; OF:溢出标志位,在算术运算中,带符号数的运算结 果超出了8位(+127~-128)或者16位(+32767~32768)数据所能表达的范围时,则OF=1。 IF:中断允许标志位。若IF=1,则CPU可以响应可屏 蔽中断请求;
天 津 工 业 大 学 计 算 机 技 术 与 自 动 化 学 院
2.3 IA-32结构微处理器 结构微处理器 的执行环境
天 津 工 业 大 学 计 算 机 技 术 与 自 动 化 学 院
2.3.2 基本执行环境
(1)存储器地址空间(8086) )存储器地址空间( ) 220=1MB, 地址由 , 地址由00000-FFFFF(H)编码 编码 若存放的信息是字节, 若存放的信息是字节,则按顺序存放 若存放的信息是字, 若存放的信息是字,则将字的低位字节 存放在低地址, 存放在低地址,高位字节存放在高地址 若存放的信息是双字, 若存放的信息是双字,则将双字的低位 字存放在低地址, 字存放在低地址,高位字存放在高地址
EDX 数据寄存器:I/O指针 数据寄存器: 指针
第二章 IA-32结构微处理器
15
AH BH CH DH
SP BP SI DI IP PSW CS DS SS ES
AL BL CL DL
数据寄存器
指针寄存器
变址寄存器
通 用 寄 存 器
控制寄存器
段寄存器
0
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 通用寄存器包含数据寄存器、地址指针寄存 器和变址寄存器
2.1.2 8086的内部寄存器结构 1、通用寄存器
变址寄存器SI和DI
SI:源变址寄存器;DI:目的变址寄存器; SI和DI一般与DS联合,可以确定源存储单元和目的 存储单元的物理地址; SI和DI具有自动增加或减小1的能力;
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 2、段寄存器
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 3、控制寄存器
位编号 15 14 13 12 11 10 9 名 称 8 7 6 5 4 AF 3 2 PF 1 0 CF OF DF IF TF SF ZF
条件码标志包含CF、PF、AF、ZF、SF、OF。
条件码标志的值一般由处理器根据运算结果自动设置, 其值与操作数有关;
AF,Auxiliary Carry Flag,辅助进位位
表征运算过程中第3位是否向第4位发生进位;
15 14 … 4 3 2 1 0
AF
PF,Parity Flag,奇偶效验位
当前累加器中所存放的数的奇偶效验情况; PF = 1,低8位中有偶数个‘1’; PF = 0,低8位中有奇数个‘1’;
1、总线接口单元
寄存器包括:CS、DS、SS、ES和IP; 20位地址加法器 6个字节的指令队列 总线控制接口 处理器与外部总线的接口电路 外部总线包括地址总线(20),数据总线(16)及 控制总线。
AH BH CH DH
SP BP SI DI IP PSW CS DS SS ES
AL BL CL DL
数据寄存器
指针寄存器
变址寄存器
通 用 寄 存 器
控制寄存器
段寄存器
0
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 通用寄存器包含数据寄存器、地址指针寄存 器和变址寄存器
2.1.2 8086的内部寄存器结构 1、通用寄存器
变址寄存器SI和DI
SI:源变址寄存器;DI:目的变址寄存器; SI和DI一般与DS联合,可以确定源存储单元和目的 存储单元的物理地址; SI和DI具有自动增加或减小1的能力;
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 2、段寄存器
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 3、控制寄存器
位编号 15 14 13 12 11 10 9 名 称 8 7 6 5 4 AF 3 2 PF 1 0 CF OF DF IF TF SF ZF
条件码标志包含CF、PF、AF、ZF、SF、OF。
条件码标志的值一般由处理器根据运算结果自动设置, 其值与操作数有关;
AF,Auxiliary Carry Flag,辅助进位位
表征运算过程中第3位是否向第4位发生进位;
15 14 … 4 3 2 1 0
AF
PF,Parity Flag,奇偶效验位
当前累加器中所存放的数的奇偶效验情况; PF = 1,低8位中有偶数个‘1’; PF = 0,低8位中有奇数个‘1’;
1、总线接口单元
寄存器包括:CS、DS、SS、ES和IP; 20位地址加法器 6个字节的指令队列 总线控制接口 处理器与外部总线的接口电路 外部总线包括地址总线(20),数据总线(16)及 控制总线。
数字电子技术 第2章 IA-32结构微处理器与8086
2.1 IA-32微处理器是8086的延伸
Intel 8086
功能扩展
性能提高
IA-32
6
物理与电子电气工程学院
2.1 IA-32微处理器是8086的延伸
16位扩展为32位 实模式到保护模式
浮点支持
功能扩展
MMX技术
流SIMD扩展(SSE)
MMU
7
物理与电子电气工程学院
2.1 IA-32微处理器是8086的延伸
器与外界设备传送数据.
BX(base):基址寄存器,常用于地址索引; CX(count):计数寄存器,常用于计数/保存计算值,如在移
位指令,循环(loop)和串处理指令中用作隐含的计数器. DX(data):数据寄存器,常用于数据传递。
15
物理与电子电气工程学院
1.通用寄存器
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目 前的堆栈位置; BP(Base Pointer):堆栈上的数据指针,可用作SS的一个
流水线技术
性能提高
片内缓存
8
物理与电子电气工程学院
2.2 8086的功能结构
通用 寄存 器
AH BH CH DH AL BL CL DL SP BP SI DI
16位
地址 位
16位
输入/输出 控制电路
存 储 器 接 口
ALU
标志寄存器
执行部分 控制电路
mov al,10000001B add al,1 结果: (al)=10000010B
24
物理与电子电气工程学院
3. FLAGS寄存器
(4) CF(Carry Flag)进位标志位
flag的第0位是CF。 一般情况下,在进行无符号数运算的时候,它记 录了运算结果的最高有效位向更高位的进位值, 或从更高位的借位值。
chapter2 IA-32处理器体系结构
计算机科学系-汇编语言程序设计
7
PC
I-1
存储器
OP1 OP2
程序
I-2
I-3
I-4
读
寄存器
寄存器
I-1
指令队列
解码 写 写 标志 (输出)
ALU
执行
图2.2 指令执行周期
如果指令的执行过程使用了内存操作数,那么需要5种基 本操作: –取指令:控制单元取得指令,将其从存储器拷贝到CPU中并
增加程序计数器PC的值。
u
v
S5 S6
现在假设在6级流水线中再引入 一条流水线,奇数指令进入u流 水线,偶数指令进入v流水线, 这样就消除周期的浪费。 那么对于k级的双流水线处理 器,执行n条指令只需要k+n
I-1 I-1 I-2 I-3 I-2 I-1 I-3 I-2 I-1 I-3 I-2 I-3
个时钟周期。
6级超标量流水线处理器的指令执行情况
计算机科学系-汇编语言程序设计
20
2. 多任务
操作系统运行的可以是一个进程或一个执行线程。一个 进程可能包含多个相互独立的任务,每个任务被称为一 个执行线程。当操作系统能够同时运行多个任务时,就 被认为是多任务的。 由于CPU一次只能执行一条指令,如何实现多任务呢? 通过OS的调度程序(scheduler)为每个任务分配一小 部分CPU时间(称为时间片),在时间片内,CPU将执行 一部分该任务的指令,并在时间片结束的时候停止执行 。 通过在多个任务之间的快速切换,给人以同时 运行多个任务的假象。
CPU通过插入CPU插槽的引脚同计算机的其余部分相连 接,大部分引脚与数据总线、控制总线和地址总线相 连接。
第02章 2_IA-32结构微处理器与8086
(4)复位/中断控制( RESET,INTR,NMI) RESET是复位信号输入,它为高电平时强制 8086微处理器从已知的初始状态开始执行程序。 复位后8086微处理器总是从地址为FFFF0H的存 储单元开始执行指令。 INTR是可屏蔽中断请求输入;高电平时表示有 外部中断请求。 NMI是非屏蔽中断请求输入 。
第2章 IA-32结构微处理器和8086
标志寄存器FLAGS
第2章 IA-32结构微处理器和8086
举例
思考题:以下的几个 位十六进制数相加 位十六进制数相加, 思考题:以下的几个4位十六进制数相加,会使得 8088状态寄存器的以下几位为什么值? 状态寄存器的以下几位为什么值? 状态寄存器的以下几位为什么值 C000H 4008H 8000H + 8000H + C000H + 4008H 0000H 8000H 8010H 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 0 1 1 0808H + C000H C808H 0 0 0 0 1 0
BUS
忙碌
忙碌
忙碌
忙碌
忙碌
忙碌
t0
t1
t2
t3
t4
t5
6个周期 执行了5条 指令
第2章 IA-32结构微处理器和8086
2.2 8086的功能结构 的功能结构
• 8086 CPU从功能上来说分成两大部 分:总线接口单元(Bus Interface Unit, BIU)和执行单元(Execution Unit, EU)。 • BIU负责8086 CPU与存储器之间的 信息传送。 • EU负责指令的执行。
ALU 标志 执行部件
总线接口部件
第2章 IA-32结构微处理器和8086
第二章 IA-32结构微处理器
控制总线
通用 寄存器组
地址 寄存器组
地址总线
内部数据总线
数据总线
暂存器
累加器
ALU
1.算术逻辑单元(运算器) 2.寄存器组 3.指令处理单元(控制器)
2.1.2 8088微处理器的功能结构
从程序员和使用者的角度看到的结构 ,又 称编程结构。 8088的内部结构从功能上分成两个单元
1. 总线接口单元BIU(Bus Interface Unit) 负责CPU对存储器和外设进行访问,即负责与 存储器及I/O接口之间的数据传送操作 2. 执行单元EU(Execution Unit) 负责指令的译码、执行和数据的运算
第二章
IA-32结构微处理器
第2章:IA-32结构微处理器教学重点
8088/8086微处理器结构
1.基本结构 2.功能结构 3.寄存器结构 4.存储器结构
2.1 8086/8088微处理器
8086/8088微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本 相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种 处理器都封装在相同的40脚双列直插组件(DIP)中。 8086微处理器的一般性能特点: 1、16位的内部结构,16位双向数据信号线; 2、20位地址信号线,可寻址1M字节存储单元; 3、较强的指令系统; 4、利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口; 5、中断功能强,可处理内部软件中断和外部中断,中断源可达256个; 6、单一的+5V电源,单相时钟5MHz。
控制标志--可由程序根据需要用指令设置, 用于控制处理器执行指令的方式
DF IF TF
标志寄存器FLAGS
15 12 11 10 9 8 7 6 5 4 3 2 1 0
第2章 Intel IA-32处理器结构与原理
18
现代微机原理与接口技术(第2版)
2.快速执行引擎
NetBurst微结构中配置了一种时钟缓冲器电路,可 以使该结构下2个执行简单指令的ALU和2个存储地址 AGU运行在两倍的CPU核心频率下
3.高级动态执行
• 一个高达126条指令的超大指令窗口,避免了处理器 为了等待配对指令而出现暂时的停顿,也减少了因 Cache没命中,到主存中获取数据而产生等待的次 数。 • 一个4KB的分支目标缓冲器BTB记录更多的过去分 支的历史细节,再配以改进的分支预测算法,使分 支预测失误率比Pentium III下降了33% 。
10
现代微机原理与接口技术(第2版) 2.1.2 Pentium处理器的内部结构与工作原理
分支目标 缓冲器
分 支 检 测 和 目 标 地 址 预取 地址
TLB 代码 Cache 8KB 256位 预取缓冲存储器 指令译码部件
①
控制 ROM
指令 指针
②
64位数 据总线 32位地 址总线 控制
总 线 接 口 部 件
19
现代微机原理与接口技术(第2版)
4. 执行跟踪Cache(execution trace Cache)
放弃L1 指令Cache的设计,采用执行跟踪Cache,它 在译码器的后面,按程序流顺序存放已经译码好的最 多12,000条微指令,
5. 高速系统总线
采用了一种 “四倍速”技术—quad pumping,使得 前端总线能很方便的工作再4倍于系统总线的频率上。
除法器
32位 32位 32位 乘法器 80位 80 位
11
现代微机原理与接口技术(第2版)
整数处理部件 浮点处理部件 分离型cahce 指令预取 指令配对
现代微机原理与接口技术(第2版)
2.快速执行引擎
NetBurst微结构中配置了一种时钟缓冲器电路,可 以使该结构下2个执行简单指令的ALU和2个存储地址 AGU运行在两倍的CPU核心频率下
3.高级动态执行
• 一个高达126条指令的超大指令窗口,避免了处理器 为了等待配对指令而出现暂时的停顿,也减少了因 Cache没命中,到主存中获取数据而产生等待的次 数。 • 一个4KB的分支目标缓冲器BTB记录更多的过去分 支的历史细节,再配以改进的分支预测算法,使分 支预测失误率比Pentium III下降了33% 。
10
现代微机原理与接口技术(第2版) 2.1.2 Pentium处理器的内部结构与工作原理
分支目标 缓冲器
分 支 检 测 和 目 标 地 址 预取 地址
TLB 代码 Cache 8KB 256位 预取缓冲存储器 指令译码部件
①
控制 ROM
指令 指针
②
64位数 据总线 32位地 址总线 控制
总 线 接 口 部 件
19
现代微机原理与接口技术(第2版)
4. 执行跟踪Cache(execution trace Cache)
放弃L1 指令Cache的设计,采用执行跟踪Cache,它 在译码器的后面,按程序流顺序存放已经译码好的最 多12,000条微指令,
5. 高速系统总线
采用了一种 “四倍速”技术—quad pumping,使得 前端总线能很方便的工作再4倍于系统总线的频率上。
除法器
32位 32位 32位 乘法器 80位 80 位
11
现代微机原理与接口技术(第2版)
整数处理部件 浮点处理部件 分离型cahce 指令预取 指令配对
第2章 IA-32结构微处理器
5-5
微处理器的发展趋势
复杂还是简单:另一个角度看问题
微处理器内部结构越来越复杂:不论是RISC还是CISC 通用微处理器在某些领域不能“通用”:如超级计算机 IBM BlueGene:使用PowerPC440(一个结构简单、性能并 不高的CPU Core),进行浮点SIMD扩展,采用双核结构 (只有700MHz),构成了世界上最快的计算机系统 由IBM、Sony和Toshiba三家联合开发的游戏机用CPU,包 括惊人的9个核心(一个Power核心+8个计算核心),工 作频率在3.2GHz以上,还可应用在其它领域 这两种微处理器(尽管一定程度上是专用的CPU),说明简 单也可以高效,取决于体系结构和应用目标 不是主流、但很重要的高性能微处理器发展趋势:更加简单 但数量更多的核心,面向一定范围的应用
2.4.2 Cache 将主存储器中急需执行或处理的很小一部分代码 或数据调入Cache中,然后,微处理器直接与这种高 速的Cache进行指令调入和数据交换,这样,就比访 问主存储器快得多,基本能够实现与微处理器的同步。 当微处理器要从主存储器中读取指令或数据时, 首先检查要访问的内容是否在Cache中,若在,则从
4.指令指针
指令指针(EIP)寄存器包含下一条要执行的指令在当前码 段中的偏移。通常,它是顺序增加的,从一条指令边界至下一条 指令,但在执行JMP、Jcc、CALL、RET和IRET等指令时,它 可以向前或向后移动若干条指令。 8086的指令指针IP是EIP的低16位。由于在8086中地址指针 是16位的,故指令指针也是16位的。其功能相同。
2.5.4 基本的程序执行寄存器
处理器为了通用系统和应用程序编程提供了16个
基本程序执行寄存器,如图2-20所示。
第 2 章 IA-32结构微处理器
2.1.1 Intel 8086微处理器
从历史的观点看,IA-32结构微处理器 同时包括16位微处理器和32位微处理器。 目前,对于许多操作系统和十分广泛的应用 程序,32位IA-32结构是最流行的计算机结 构。 IA-32结构的最重要的成就之一,是在 从1978年开始的那些处理器上建立的目标 程序仍然能够在IA-32结构系列的最新的处 理器上执行。
5. EU控制电路:它是控制、定时与状态逻辑电路,接收
从BIU中指令队列取来的指令,经过指令译码形成各种定时控
制信号,对EU的各个部件实现特定的定时操作。
8088CPU内部结构与8086基本相似,两者的执行单元EU完
全相同,其指令系统,寻址方式及程序设计方法都相同,所以
两种CPU完全兼容。区别仅在于总线接口单元BIU,归纳起来 主要有以下几个方面的差异:
3.20位地址加法器 8086/8088CPU在对存储单元进行访问以读取指令或读/写 操作数时,必须在地址总线上提供20位的地址信息,以便选中
对应的存储单元。那么,CPU是如何产生20位地址的呢?
CPU提供的用来对存储单元进行访问的20位地址是由BIU
中的地址加法器产生的。
存储器中每个存储单元的地址可有以下两种表示方式: 逻辑地址:其表达形式为“段地址:段内偏移地址”。段 内偏移地址又称为“有效地址EA(Effective Address)。在读指令
1. 8086/8088 CPU的内部结构
执行部件EU 16 寄存器阵列 ALU及 标志寄存器 控制电路 数据及操作数 地址加法器 总线控 制电路 指令流队列 指令码 多路复用 地址/数据总线 指令译码器 8086:16位 8088:8位 段寄存器及指 令指针 总线接口部件BIU
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
到了奔腾处理器增加了第二个执行流水线以达到 超标量性能(两个已知的流水线u和v,一起工作能实 现每个时钟执行两条指令)。 Intel Pentium 4处理器是第一个基于Intel NetBurst微结构的处理器。Intel NetBurst微结构是新 的32bit微结构,它允许处理器能在比以前的X86系列 处理器更高的时钟速度和性能等级上进行操作。Intel Pentium 4处理器有快速的执行引擎、Hyper流水线技 术与高级的动态执行。使指令执行的并行性进一步提 高,从而做到在一个时钟周期中可以执行多条指令。
第 2 章 80x86系列结构微 处理器与8086
本章讲述: 2.1 80x86系列微处理器是8086的延伸 2.2 8086的功能结构 2.3 8086微处理器的执行环境
2.1 x86系列 微处理器是8086的延伸
如上章所述,x86系列结构微处理器的增长 基本上按摩尔定律发展,已经经历许多代。但 从使用者(包括程序员)的角度来看,它是以 8086处理器为基础,是一个兼容的微处理器系 列,是8086在功能上和性能上的延伸。
8086CPU
CS DS SS ES
IP 暂存器
内部总线16位
暂存器
ALU
标志寄存器
E 指令队列 U 控 8位队 1 2 3 4 5 6 制 列总线 8088 8086 器
辑
8086CPU从功能上来说分成两大部分:总 线接口单元BIU(Bus Interface Unit)和执行 单元EU(Execution Unit)。 BIU负责8086CPU与存储器之间的信息传 送。具体地说,即BIU负责从内存的指定单元 取出指令,送至指令流队列中排队(8086的指 令流队列是6个字节);在执行指令时所需的 操作数,也由BIU从内存的指定区域取出,传 送给EU部分去执行。
2. 引入片内缓存(CACHE) 随着超大规模集成电路技术的发展,存储器的集 成度和工作速度都有了极大的提高。但是,相对于 CPU的工作速度仍然至少差一个数量级。为了减少从 存储器中取指令与数据的时间,利用指令执行的局部 性原理,把近期可能要用到的指令与数据放在工作速 度比主存储器更高(当然,容量更小)的缓存中。这 样的思想,进一步在处理器中实现,即在处理器芯片 中实现了缓存。目前,通常在处理器芯片上有指令和 数据分开的一级缓存与指令与数据混合的二级缓存。 且缓存的容量越来越大。从而进一步提高了处理器的 性能。
2.3 8086微处理器的执行环境
本节描述汇编语言程序员看到的8086处理 器的执行环境。它描述处理器如何执行指令及 如何存储和操作数据。执行环境包括内存(地 址空间)、通用数据寄存器、段寄存器、标志 寄存器(EFLAGES)和指令指针寄存器等。
2.3.1 基本执行环境概要
在8086处理器上执行的程序或任务都有一 组执行指令的资源用于存储代码、数据和状态 信息。这些资源构成了8086处理器的执行环境。 地址空间。8086处理器上运行的任一任 务或程序能寻址1MB(220)字节的线性地址 空间。
4. 浮点支持 工程应用、图形处理、科学计算等要求浮 点支持(实数运算)。因此,自80486芯片开 始,在x86系列微处理器中集成了x87(及其增 强)浮点单元。
5. MMX技术 为支持多媒体技术的应用,如音乐合成、 语音合成。语音识别、音频和视频压缩(编码) 和解压缩(译码)、2D 和 3D 图形(包括 3D 结构映像)和流视频等等。x86系列处理器中 增加MMX技术及相应的指令
Байду номын сангаас
这些通用寄存器中的前四个,即AX、BX、CX、 DX通常称为数据寄存器,用以存放操作数。后四个, 即SI、DI、BP、SP通常称为指针寄存器。虽然它们 也可以存放操作数,但主要用作地址指针。数据寄 存器AX、BX、CX和DX又可以分别作为AH、BH、 CH和DH(高字节)以及AL、BL、CL和DL(低字节) 8位寄存器引用,如图2-5所示。
1.通用寄存器 八个32位通用寄存器AX、BX、CX、DX、 SI、DI、BP和SP用于处理以下项: 逻辑和算术操作的操作数; 用于地址计算的操作数; 内存指针。
虽然所有这些寄存器都可用于存放操作数、结果和指针, 但在引用SP寄存器时要特别小心。SP寄存器保持堆栈指 针,通常不要用于其它目的。
3. 片内存储管理单元 - MMU 32位地址,可寻址4GB物理地址。但大多 数PC机的物理内存配置远小于4GB。但应用 程序却需要庞大的地址空间。因此,在操作系 统中提供了虚拟存储器管理机制,而这要求硬 件支持。因而,在80386中提供了片内的MMU。 提供了4K页、页表等支持。 以上三点是80386相对于8086的主要功能 扩展。
6. 流SIMD扩展(SSE) 自Pentium III处理器开始,在x86系列微处 理器中引进了流SIMD(单指令多数据)扩展 (SSE)技术。SSE扩展把由Intel MMX引进 的SIMD执行模式扩展为新的128位XMM寄存 器和能在包装的单精度浮点数上执行SIMD操 作。
奔腾4处理器又进一步扩展为流SIMD扩展2 (SSE2): — 用144条新指令扩展Intel MMX技术和 SSE扩展,它包括支持: • 128位SIMD整数算术操作。 • 128位SIMD双精度浮点操作。
2.3.2 基本的程序执行寄存器
处理器为了应用程序编程提供了如图2-4所示的14个基本程序 执行寄存器。 这些寄存器能分组如下: 通用寄存器。这八个寄存器能用于存放操作数和指针。 段寄存器。这些寄存器最多能保存四个段选择子。 FLAGS(程序状态和控制)寄存器。FLAGS寄存器报告正 在执行的程序的状态,并允许有限地(应用程序级)控制处理器。 IP(指令指针)寄存器。IP寄存器包合下一条要执行的指 令的16位指针。
随着PC机的大量普及,随着硬件性能的迅速提高。 要求有能保护操作系统核心软件的多任务操作系统。 为使这样的操作系统能在微型计算机系统中应用与普 及,要求微处理器本身为这样的操作系统提供支持。 于是,从80286开始,在80386中真正完善保护模式。 在保护模式下,程序运行于四个特权级。这样,可以 实现操作系统核心程序与应用程序的严格的隔离。保 护模式支持多任务机制,任务之间完全隔离。
EU部分负责指令的执行。其中主要由数据 寄存器、指针寄存器与算术逻辑单元(ALU) 组成。这样,取指部分与执行指令部分是分开 的,于是在一条指令的执行过程中,就可以取 出下一条(或多条)指令,在指令流队列中排 队。在一条指令执行完以后就可以立即执行下 一条指令,减少了CPU为取指令而等待的时间, 提高了CPU的利用率,提高了整个运行速度。
2. 从实模式至保护模式 当1981年,IBM公司刚推出IBM-PC时,主 频是5MHz,内存是64KB-128KB,没有硬盘, 只有单面单密度的软盘,到了PC/XT,才有 10MB硬盘。在这样的硬件资源下,采用的操 作系统是PC-DOS(MS-DOS)。这是单用户、 单任务的磁盘操作系统。操作系统本身没有程 序隔离、没有保护。这是DOS遭受病毒泛滥的 内因。
如前所述,在8080与8085以及标准的8位微处理 器中,程序的执行是由取指和执行指令的循环来完成 的。即执行的顺序为取第一条指令,执行第一条指令; 取第二条指令,执行第二条指令;……直至取最后一 条指令,执行最后一条指令。这样,在每一条指令执 行完以后,CPU必须等待到下一条指令取出来以后 才能执行。所以,它的工作顺序如图2-2所示。
2.1.1 8086功能的扩展
1. 从16位扩展为32位 8086是16位微处理器。它的内部寄存器的主 体是16位的。它的主要用于存放操作数的数据 寄存器是16位的。它的主要的用作为地址指针 的指针寄存器也是16位的。依赖分段机制,用 20位段基地址加上16位的偏移量形成了20位 的地址,以寻址1MB的物理地址。
基本程序执行寄存器。八个通用寄存器、四个段 寄存器、标志寄存器FLAGS和IP(指令指针)寄 存器组成了执行通用指令的基本执行环境。这些 指令执行字节、字整型数的基本整数算术运算, 处理程序流程控制,在字节串上操作并寻址存储 器。 堆栈(stack)。为支持过程或子程序调用并在过 程或子程序之间传递参数,堆栈和堆栈管理资源 包含在基本执行环境中。堆栈定位在内存中。 I/O端口。8086结构支持数据在处理器和输入输出 (I/O)端口之间的传送。 8086处理器的基本执行环境如图2-4所示。
总之,x86系列系列处理器芯片就是沿着这 样的思路发展的。因此,8086是x86系列系列 处理器的基础。而且,任一种x86系列处理器 芯片在上电后,就是处在8086的实模式。根据 需要,用指令进入各种操作模式。所以,学习 x86系列处理器必须学习掌握8086,也只能从 8086入手。
从指令,从编程来说,几乎没有用汇编语 言来使用浮点指令、MMX指令与XMM指令的, 都是通过高级语言来使用这些指令的。因而, 绝大部分程序员,除了编写操作系统代码的外, 面对x86系列处理器的指令,实际上是面对 8086指令。 因此,本书从8086入手来学习与掌握x86 系列处理器。
SP是堆栈指针,它与段寄存器SS一起确定 在堆栈操作时,堆栈在内存中的位置。用BP (Base Pointer Register)寻址堆栈操作数时, 也是寻址堆栈段。SI(Source Index Register) 和DI(Destination Index Register)常用于串 操作。
时间
但在8086中,由于BIU和EU是分开的,所以,取 指和执行可以重叠进行。它的执行顺序如图2-3所示。
于是就大大减少了等待对取指所需的时间,提高了CPU的 利用率。一方面可以提高整个程序的执行速度,另一方面又 降低了与之相配的存储器的存取速度的要求。这种重叠的操 作技术,过去只在大型机中才使用称为流水线,在X86系列 系列微处理器中得到了广泛的使用与提高。
2.2 8086的功能结构
8086的功能结构如图2-1所示。
功 能 结 构 图