微机原理与接口技术-第2章cpu体系结构2
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)当队列已满,执行部件又不使用总线时,总线接 口部件进入空闲状态。
(5)执行转移指令、调用指令、返回指令时,先清空 队列内容,再将要执行的指令放入队列中。
二、存储器的组织和堆栈
1、8086存储器的分体结构
8086 系统中,1MB的存储空间分成两个存储体: 偶地址存储体和奇地址存储体,各为512KB。它们的访 问由/BHE、A0组合决定:
布。
2.1 CPU的发展
• 1989年,80486(32位)芯片由Intel推 出。
• 1993年,586 CPU问世,Intel公司把自 己的新一代产品命名为Pentium。
• 1996年底发布Pentium MMX。
MMX技术是在CPU中加入了特地为视 频信号(Video Signal),音频信号 (Audio Signal)以及图像处理 (Graphical Manipulation)而设计的 57条指令,因此,MMX CPU极大地 提高了电脑的多媒体(如立体声、视 频、三维动画等)处理功能
0-低4位向高4位无进、借位
例:将5394H与-777FH相加,并说明其标志位的状态。 【解】先求-777FH的补码:
原码:1111 0111 0111 1111 反码:1000 1000 1000 0000 补码:1000 1000 1000 0001 再做加法运算: 0101 0011 1001 0100
堆栈段 存储器
8086 CPU中有四个段寄存器:CS,DS,SS和ES,这 四个段寄存器存放了CPU当前可以寻址的四个段的基 值,即可以从这四个段寄存器规定的逻辑段中存取 指令代码和数据。一旦这四个段寄存器的内容被设 定,就规定了CPU当前可寻址的段,如图2-8所示。
8086存储器的逻辑地址与物理地址
2、执行部件 作用:
(1)从指令队列中取出指令。
(2)对指令进行译码,发出相应的 控制信号。
(3)接收由总线接口送来的数据或 发送数据至接口。
(4)进行算术运算。
执行部件的组成:
(1)4个通用寄存器AX、BX、CX、 DX。四个通用寄存器都是16位 或作两个8位来使用。
(2)4个专用寄存器
SP------堆栈指针寄存器 BP------基址指针寄存器 DI-------目的变址寄存器 SI------- 源变址寄存器 (3)算术逻辑单元ALU 完成8位或者16位二进制算术和逻辑运算,计算偏移量。 (4)数据暂存寄存器 协助ALU完成运算,暂存参加运算的数据。 (5)执行部件的控制电路 从总线接口的指令队列取出指令操作码,通过译码电路分析, 发出相应的控制命令,控制ALU数据流向。
+ 1000 1000 1000 0001 1101 1100 0001 0101
结果标志位为:CF=0、PF=0、AF=0 ZF=0、SF=1、OF=0
3.“流水线”结构
总 线 接 口 部 件 BIU 和 执 行部件EU并不是同步工作的, 两者的动作管理遵循如下原 则:
每当8086的指令队列中 有2个空字节,BIU就会自动 把指令取到指令队列中。而 同时EU从指令队列取出一条 指令,并用几个时钟周期去 分析、执行指令。
2.1 CPU的发展
• 1971年,Intel公司推出了世界上第一款 CPU4004(4位)。 • 1978年,Intel公司生产的8086是第一个16位的 CPU。 • 1979年,Intel公司又开发出了8088。 • 1981年,美国IBM公司将8088芯片用于其研制的PC机中,
从而开创了全新的微机时代。 • 1982年,Intel研制出了80286 CPU。 • 1985年,新一代的32位核心的CPU——80386DX正式发
(6)标志寄存器
16位寄存器,其中有7位未用。 D15
OF DF IF TF SF ZF
1-低8位有偶数个1 0-低8位有奇数个1
D0
AF PF CF
方
单符零
半
奇
进
向
步号标
进
偶
借
标
中标志
借
标
位
志 断志
位志标
溢中 出断 标允 志许
1-结果为0
标 志
0-结果不为0
志
1-有进、借位 0-无进、借位
1-低4位向高4位有进、借位
段地址:偏移地址 物理地址
1000: 0000 1000: 0001 1000: 0002
10000H 10001H 10002H
66H 8FH 7CH
代码段(≤64 KB)
2A0F: 0000 2A0F: 0001 2A0F: 0002
2A0F0H 2A0F1H 2A0F2H
90H 65H 5FH
8086CPU结构图
20位
AH AL
通 BH BL 用 CH CL
寄 DH DL
存
SP
器
BP
地址加 法器
CS DS SS ES
16位 I/O
DI
IP
控制
SI
内部寄 存器
电路 外 总
线
运算寄存器 ALU 标志
执行部分 控制电路
EU
执行部件
12 3 4 56 8位 指令队列缓冲器
BIU
总线接口部件
1、总线接口部件(BIU) 功能:
§2.2 8086/8088CPU
一、 8086的功能结构
• 8086CPU是Intel系列的16位 CPU,具有16根数据总线和 20根地址总线,直接寻址空间为220,即1MB。
• 8088CPU内部结构与8086基本相同,但是,对外数据总线 只有8根,称为准16位 CPU。
• 8086从功能上分为两部分:总线接口部分(BIU),执行部 分(EU)。
奇地址
00000H 00002H
偶地址
地址交叉 排列
…. ….
D8 ~ D15
FFFFFH D0 ~ D7
FFFFEH
D0 ~ D15
•规则字(对准字)存放 : 偶地址作为字的地址 •非规则字(非对准字)存放 : 奇地址作为字的地址 •规则字的读/写只需访问一次存储器;非规则字的读/写需二次 访问存储器。第一次访问奇地址,第二次访问偶地址。
2、存储器编址
在内存里以字节为单位存取信息,系统为每个字 节编一个地址(二进制数表示,书写格式为十六进 制),称为存储器地址,存储的内容即为数据。
地址 00000H 00001H 00002H
FFFFFH
内容 00000001 00100011 01000101
……
存储器中的数据及表示形式
2301H(规则字) 4523H(非规则字)
13800H + F00H
14700H
8086存储器20位物理地址的形成
15
0
段内偏移地址
19
430
段 寄 存 器 0000段 地 址 左 移 4位
∑
19
0
20位 物 理 地 址
物理地址为:段地址(左移四位)+段内偏移量
• 一个存储单元可以有一个或多个逻辑地址,但只 能有一个物理地址。 例如物理地址21000H可以有以下几个逻辑地址: 2100:0000H 2000:0100H
8086可将内存最多可分为64K个段,最少可分为 16个段。每个段的最大范围是64KB,最小的段是16B。 段与段之间可连续分布,也可重叠。
在所有的段中,8086当前可以访问的段只有4个, 它们分别由CS、DS、ES和SS所指定。
(1) 逻辑地址和物理地址 物理地址:也称实际地址,是用唯一的20位二进制数 所表示的地址,规定了1M字节存储体中某个具体单元 的地址 。如00002H。 逻辑地址在程序中使用,即段地址:偏移地址 。
16位
4位
段寄存器值
0000
16位
+
偏移量
20位 物理地址
物理地址和逻辑地址的转换
• 将逻辑地址中的段地址左移4位,加上偏移地址就得到 20位物理地址 • 一个物理地址可以有多个逻辑地址
逻辑地址 1460:0100、1380:0F00
物理地址 14700H
14700H
14600H + 100H
14700H
(1)从内存取指令送到指令队列。 (2)CPU执行指令时,到指定的
位置取操作数,并将其送至 要求的位置单元中。 总线接口部件的组成: (1)四个段地址寄存器
CS,16位代码段寄存器; DS,16位数据段寄存器; ES,16位附加段寄存器; SS,16位堆栈段寄存器。
(2)16位指令指针寄存器IP(PC)。
在t0~t4时间间隔中,理想情况下 ,8086可执行3 条指令。
4、CPU执行程序的操作过程
(1)20位地址形成,并将从该地址指定的单元中取出 指令字节,依次放入指令队列中。
(2)当指令队列中有2个空字节时,总线接口部件就 会自动取指令至队列中。
(3)执行部件从指令队列队首取出指令代码,执行该 指令。
2.1 CPU的发展
• 1997年5月发布PentiumⅡ。 • 1998-1999年间,Intel公司推出了Xeon(至强 CPU) • 1999年,Intel公司就发布了PentiumⅢ。 • 2000年,Intel Pentium 4处理器诞生。 • 2006年,Core 2 处理器发布。
总结:在CPU的发展历史中,具有典型代 表的是16位的8086CPU、32位 80486CPU和Pentium4 (奔腾)CPU、 64位的core2
• 段基址一般由系统自动分配,也可以编程改变; 而偏移地址则由用户编程时提供。
DATA SEGMENT
X DB 12H
Y DW 34H
DATA ENDS 则DS段中,Y的地址为0001H,非规则存放。
CS
0000
IP
代码段
DS或ES
0000
SI、DI或BX
数据段
SS
0000
SP或BP
段寄存器和偏移地址寄存器组合关系
(3)20位的地址加法器。
(4)六字节的指令队列缓冲器。
说明:
(1)指令队列缓冲器:在执行指令的同时,将取下一 条指令,并放入指令队列缓冲器中。CPU执行完一条 指令后,可以执行下一条指令(流水线技术)。提高 CPU效率。
(2)地址加法器:产生20位地址。CPU内无论是段地 址寄存器还是偏移量都是16位的,通过地址加法器产 生20位地址。
数据段(≤64 KB)
A000: 0000 A000: 0001 A000: 0002
A0000H A0001H A0002H
1FH 2BH 8FH
堆栈段段(≤64 KB)
BC00: 0000 BC00: 0001 BC00: 0002
当指令队列已满,而且 EU 对 BIU 又 无 总 线 访 问 请 求 时,BIU便进入空闲状态。在 执行转移、调用和返回指令 时,指令队列中的原有内容 被自动清除。
8086流水操作示意图
取指令1 执行指令1
取指令2
执行指令2 取指令3 执行指令3
t0
t1
t2
t3
图 8086流水操作示意图
t t4
• 字节数01H的地址为00000H、字节23H的地址 为00001H、字节45H的地址为00002H。
• 字2301H的地址为00000H、字4523H的地址 为00001H。
• 地址00000H的内容既是01H,又是2301H
地址
内容
00000H 00001H 00002H
00000001 00100011
第二章
CPU体系结构
主要内容
• 2.1 CPU的发展 • 2.2 8086/8088 CPU • 2.3 80486 CPU • 2.4 Pentium CPU • 2.5 Itanium CPU • 2.6 80486的工作模式 • 2.7 80486的外部引脚介绍 • 2.8 当前 CPU所使用的先进技术
/BHE A0
总线使用情况
0
0 从偶地址单元开始,在16位数据总线上进行字传送
0
1 从奇地址单元开始,在高8位数据总线上进行字节传送
1
0 从偶地址单元开始,在低8位数据总线上进行字节传送
1
1 无效
•8086用两个存储体来组织实际存储空间
8086
A0 ~ A19 BHE
BHE
A0
00001H 00003H
01000101
01H 4523H
2301H 45H
…… FFFFFH
• 顺序存放,低字节低地址(字数据)
3、 存储器的分段结构
由于8086有20条地址线,可以寻址多达220(1M) 字节,所以把1M字节的存储器分为一定数量的段, 其中每一段最多可达寻址216(64K)字节。
8086CPU把1M字节的存储器空间划分为任意的 一些存储段,每个段的起始地址必须能16整除(该地 址的最低四位为0000)。
如 2000H:0003H
2000H:0000H 12H 0001H 34H 0002H 56H 0003H 78H
(2)物理地址的形成 物理地址=段基址 * 16(左移4位)+偏移地址。 段基址:CS、DS、ES、SS。 偏移地址:IP、DI、SI、BX、BP、SP等。 物理地址的形成如下:(由20位地址全加器实现)
(5)执行转移指令、调用指令、返回指令时,先清空 队列内容,再将要执行的指令放入队列中。
二、存储器的组织和堆栈
1、8086存储器的分体结构
8086 系统中,1MB的存储空间分成两个存储体: 偶地址存储体和奇地址存储体,各为512KB。它们的访 问由/BHE、A0组合决定:
布。
2.1 CPU的发展
• 1989年,80486(32位)芯片由Intel推 出。
• 1993年,586 CPU问世,Intel公司把自 己的新一代产品命名为Pentium。
• 1996年底发布Pentium MMX。
MMX技术是在CPU中加入了特地为视 频信号(Video Signal),音频信号 (Audio Signal)以及图像处理 (Graphical Manipulation)而设计的 57条指令,因此,MMX CPU极大地 提高了电脑的多媒体(如立体声、视 频、三维动画等)处理功能
0-低4位向高4位无进、借位
例:将5394H与-777FH相加,并说明其标志位的状态。 【解】先求-777FH的补码:
原码:1111 0111 0111 1111 反码:1000 1000 1000 0000 补码:1000 1000 1000 0001 再做加法运算: 0101 0011 1001 0100
堆栈段 存储器
8086 CPU中有四个段寄存器:CS,DS,SS和ES,这 四个段寄存器存放了CPU当前可以寻址的四个段的基 值,即可以从这四个段寄存器规定的逻辑段中存取 指令代码和数据。一旦这四个段寄存器的内容被设 定,就规定了CPU当前可寻址的段,如图2-8所示。
8086存储器的逻辑地址与物理地址
2、执行部件 作用:
(1)从指令队列中取出指令。
(2)对指令进行译码,发出相应的 控制信号。
(3)接收由总线接口送来的数据或 发送数据至接口。
(4)进行算术运算。
执行部件的组成:
(1)4个通用寄存器AX、BX、CX、 DX。四个通用寄存器都是16位 或作两个8位来使用。
(2)4个专用寄存器
SP------堆栈指针寄存器 BP------基址指针寄存器 DI-------目的变址寄存器 SI------- 源变址寄存器 (3)算术逻辑单元ALU 完成8位或者16位二进制算术和逻辑运算,计算偏移量。 (4)数据暂存寄存器 协助ALU完成运算,暂存参加运算的数据。 (5)执行部件的控制电路 从总线接口的指令队列取出指令操作码,通过译码电路分析, 发出相应的控制命令,控制ALU数据流向。
+ 1000 1000 1000 0001 1101 1100 0001 0101
结果标志位为:CF=0、PF=0、AF=0 ZF=0、SF=1、OF=0
3.“流水线”结构
总 线 接 口 部 件 BIU 和 执 行部件EU并不是同步工作的, 两者的动作管理遵循如下原 则:
每当8086的指令队列中 有2个空字节,BIU就会自动 把指令取到指令队列中。而 同时EU从指令队列取出一条 指令,并用几个时钟周期去 分析、执行指令。
2.1 CPU的发展
• 1971年,Intel公司推出了世界上第一款 CPU4004(4位)。 • 1978年,Intel公司生产的8086是第一个16位的 CPU。 • 1979年,Intel公司又开发出了8088。 • 1981年,美国IBM公司将8088芯片用于其研制的PC机中,
从而开创了全新的微机时代。 • 1982年,Intel研制出了80286 CPU。 • 1985年,新一代的32位核心的CPU——80386DX正式发
(6)标志寄存器
16位寄存器,其中有7位未用。 D15
OF DF IF TF SF ZF
1-低8位有偶数个1 0-低8位有奇数个1
D0
AF PF CF
方
单符零
半
奇
进
向
步号标
进
偶
借
标
中标志
借
标
位
志 断志
位志标
溢中 出断 标允 志许
1-结果为0
标 志
0-结果不为0
志
1-有进、借位 0-无进、借位
1-低4位向高4位有进、借位
段地址:偏移地址 物理地址
1000: 0000 1000: 0001 1000: 0002
10000H 10001H 10002H
66H 8FH 7CH
代码段(≤64 KB)
2A0F: 0000 2A0F: 0001 2A0F: 0002
2A0F0H 2A0F1H 2A0F2H
90H 65H 5FH
8086CPU结构图
20位
AH AL
通 BH BL 用 CH CL
寄 DH DL
存
SP
器
BP
地址加 法器
CS DS SS ES
16位 I/O
DI
IP
控制
SI
内部寄 存器
电路 外 总
线
运算寄存器 ALU 标志
执行部分 控制电路
EU
执行部件
12 3 4 56 8位 指令队列缓冲器
BIU
总线接口部件
1、总线接口部件(BIU) 功能:
§2.2 8086/8088CPU
一、 8086的功能结构
• 8086CPU是Intel系列的16位 CPU,具有16根数据总线和 20根地址总线,直接寻址空间为220,即1MB。
• 8088CPU内部结构与8086基本相同,但是,对外数据总线 只有8根,称为准16位 CPU。
• 8086从功能上分为两部分:总线接口部分(BIU),执行部 分(EU)。
奇地址
00000H 00002H
偶地址
地址交叉 排列
…. ….
D8 ~ D15
FFFFFH D0 ~ D7
FFFFEH
D0 ~ D15
•规则字(对准字)存放 : 偶地址作为字的地址 •非规则字(非对准字)存放 : 奇地址作为字的地址 •规则字的读/写只需访问一次存储器;非规则字的读/写需二次 访问存储器。第一次访问奇地址,第二次访问偶地址。
2、存储器编址
在内存里以字节为单位存取信息,系统为每个字 节编一个地址(二进制数表示,书写格式为十六进 制),称为存储器地址,存储的内容即为数据。
地址 00000H 00001H 00002H
FFFFFH
内容 00000001 00100011 01000101
……
存储器中的数据及表示形式
2301H(规则字) 4523H(非规则字)
13800H + F00H
14700H
8086存储器20位物理地址的形成
15
0
段内偏移地址
19
430
段 寄 存 器 0000段 地 址 左 移 4位
∑
19
0
20位 物 理 地 址
物理地址为:段地址(左移四位)+段内偏移量
• 一个存储单元可以有一个或多个逻辑地址,但只 能有一个物理地址。 例如物理地址21000H可以有以下几个逻辑地址: 2100:0000H 2000:0100H
8086可将内存最多可分为64K个段,最少可分为 16个段。每个段的最大范围是64KB,最小的段是16B。 段与段之间可连续分布,也可重叠。
在所有的段中,8086当前可以访问的段只有4个, 它们分别由CS、DS、ES和SS所指定。
(1) 逻辑地址和物理地址 物理地址:也称实际地址,是用唯一的20位二进制数 所表示的地址,规定了1M字节存储体中某个具体单元 的地址 。如00002H。 逻辑地址在程序中使用,即段地址:偏移地址 。
16位
4位
段寄存器值
0000
16位
+
偏移量
20位 物理地址
物理地址和逻辑地址的转换
• 将逻辑地址中的段地址左移4位,加上偏移地址就得到 20位物理地址 • 一个物理地址可以有多个逻辑地址
逻辑地址 1460:0100、1380:0F00
物理地址 14700H
14700H
14600H + 100H
14700H
(1)从内存取指令送到指令队列。 (2)CPU执行指令时,到指定的
位置取操作数,并将其送至 要求的位置单元中。 总线接口部件的组成: (1)四个段地址寄存器
CS,16位代码段寄存器; DS,16位数据段寄存器; ES,16位附加段寄存器; SS,16位堆栈段寄存器。
(2)16位指令指针寄存器IP(PC)。
在t0~t4时间间隔中,理想情况下 ,8086可执行3 条指令。
4、CPU执行程序的操作过程
(1)20位地址形成,并将从该地址指定的单元中取出 指令字节,依次放入指令队列中。
(2)当指令队列中有2个空字节时,总线接口部件就 会自动取指令至队列中。
(3)执行部件从指令队列队首取出指令代码,执行该 指令。
2.1 CPU的发展
• 1997年5月发布PentiumⅡ。 • 1998-1999年间,Intel公司推出了Xeon(至强 CPU) • 1999年,Intel公司就发布了PentiumⅢ。 • 2000年,Intel Pentium 4处理器诞生。 • 2006年,Core 2 处理器发布。
总结:在CPU的发展历史中,具有典型代 表的是16位的8086CPU、32位 80486CPU和Pentium4 (奔腾)CPU、 64位的core2
• 段基址一般由系统自动分配,也可以编程改变; 而偏移地址则由用户编程时提供。
DATA SEGMENT
X DB 12H
Y DW 34H
DATA ENDS 则DS段中,Y的地址为0001H,非规则存放。
CS
0000
IP
代码段
DS或ES
0000
SI、DI或BX
数据段
SS
0000
SP或BP
段寄存器和偏移地址寄存器组合关系
(3)20位的地址加法器。
(4)六字节的指令队列缓冲器。
说明:
(1)指令队列缓冲器:在执行指令的同时,将取下一 条指令,并放入指令队列缓冲器中。CPU执行完一条 指令后,可以执行下一条指令(流水线技术)。提高 CPU效率。
(2)地址加法器:产生20位地址。CPU内无论是段地 址寄存器还是偏移量都是16位的,通过地址加法器产 生20位地址。
数据段(≤64 KB)
A000: 0000 A000: 0001 A000: 0002
A0000H A0001H A0002H
1FH 2BH 8FH
堆栈段段(≤64 KB)
BC00: 0000 BC00: 0001 BC00: 0002
当指令队列已满,而且 EU 对 BIU 又 无 总 线 访 问 请 求 时,BIU便进入空闲状态。在 执行转移、调用和返回指令 时,指令队列中的原有内容 被自动清除。
8086流水操作示意图
取指令1 执行指令1
取指令2
执行指令2 取指令3 执行指令3
t0
t1
t2
t3
图 8086流水操作示意图
t t4
• 字节数01H的地址为00000H、字节23H的地址 为00001H、字节45H的地址为00002H。
• 字2301H的地址为00000H、字4523H的地址 为00001H。
• 地址00000H的内容既是01H,又是2301H
地址
内容
00000H 00001H 00002H
00000001 00100011
第二章
CPU体系结构
主要内容
• 2.1 CPU的发展 • 2.2 8086/8088 CPU • 2.3 80486 CPU • 2.4 Pentium CPU • 2.5 Itanium CPU • 2.6 80486的工作模式 • 2.7 80486的外部引脚介绍 • 2.8 当前 CPU所使用的先进技术
/BHE A0
总线使用情况
0
0 从偶地址单元开始,在16位数据总线上进行字传送
0
1 从奇地址单元开始,在高8位数据总线上进行字节传送
1
0 从偶地址单元开始,在低8位数据总线上进行字节传送
1
1 无效
•8086用两个存储体来组织实际存储空间
8086
A0 ~ A19 BHE
BHE
A0
00001H 00003H
01000101
01H 4523H
2301H 45H
…… FFFFFH
• 顺序存放,低字节低地址(字数据)
3、 存储器的分段结构
由于8086有20条地址线,可以寻址多达220(1M) 字节,所以把1M字节的存储器分为一定数量的段, 其中每一段最多可达寻址216(64K)字节。
8086CPU把1M字节的存储器空间划分为任意的 一些存储段,每个段的起始地址必须能16整除(该地 址的最低四位为0000)。
如 2000H:0003H
2000H:0000H 12H 0001H 34H 0002H 56H 0003H 78H
(2)物理地址的形成 物理地址=段基址 * 16(左移4位)+偏移地址。 段基址:CS、DS、ES、SS。 偏移地址:IP、DI、SI、BX、BP、SP等。 物理地址的形成如下:(由20位地址全加器实现)