当前位置:文档之家› 微处理器内部结构

微处理器内部结构


1.1 BIU (Bus Interface Unit)
组成
① 4个段寄存器
代码段Reg:CS 堆栈段Reg:SS 数据段Reg:DS
附加段Reg:ES
② 指令指针寄存器IP(下一条要取的指令在当前
③ 指令队列Queue
代码段内的偏移量)
④ 20位地址加法器Σ
⑤ 总线控制逻辑
⑥ 内部通信寄存器
1.2 EU(Execution Unit)
2 8086/8088 CPU 主要性能
字长:16位 / 准16位。
时钟频率:8086/8088标准主频为5MHz,8086/8088-2主频为8MHz。
数据、地址总线复用。
最大内存容量:1MB。
基本寻址方式:8种。
指令系统:99条基本汇编指令。
可以对位、字节、字、字节串、字串、压缩和非压缩BCD
用途: a. 缩短指令代码的长度; b.建立可变的地址; c.寄存偏移量,与段寄存器的内容相加以获得物理地址。
例:SP中通常存放的偏移量被认为是在堆栈段中(堆栈访问时)。 DI、SI中的偏移量,通常被认为是在数据段中。 BP通常用于存放当前堆栈段的一个偏移量。 (通过堆栈传送数据或地址时,BP为偏移地址,SS中为段地址。) BP也可用于通用Reg.。
(2)特殊用法: i )BX —— 计算地址用作基址Reg. ii)CX —— 计数器,循环或移位时用。 ⅲ)DX—— 在某些 I/O 操作时,用来保存I/O端口地址, 或字的乘除法运算。
2. 指示器和变址Reg.(SP,BP,SI,DI,仅能用于字)
指针寄存器 变址寄存器
SP—— 堆栈指针 BP—— 基地址指针 SI ——源变址寄存器 DI —— 目的变址寄存器
进位标志CF(Carry Flag):当结果的最高位(D15 或D7)产生一个进位
或借位,则CF=1,否则CF=0。
溢出标志OF(Overflow Flag):当带符号数的运算结果超出-2n-1~ 2n-1-1

时,溢出,OF=1,否则OF=0。
态 符号标志SF(Sign Flag): 结果的最高位(D15 或D7)为1,则SF=1,否
DS
数据段寄存器
SS
堆栈段寄存器
ES
附加段寄存器
寄存器组(Register Set)
通用寄存器
控制寄存器 段寄存器
4.1 通用Reg
1. 数据Reg.(AX,BX,CX,DX)
(1)用途:存放8位或16位操作数或中间结果, 以提高CPU 的运算速度(减少存取MEM的时间) 其中,AX是CPU使用最多的一个寄存器,功能最强。 AX的作用: i )ALU之前保存一个操作数,ALU之后保存结果 。 ii)CPU与 I/O、MEM交换数据所用到的最多的寄存器。 (前者对算术运算,后者对 I/O 操作)
当指令队列已满,而且EU对BIU又无总线访问 请求时,BIU便进入空闲状态。
在执行转移、调用和返回指令时,指令队列中 的原有内容被自动清除。
“流水线”结构
在8086/8088中,EU和BIU这种并行的工作 方式不仅有力地提高了工作效率,而且这 也是它们的一大特点。EU和BIU之间是通过 指令队列相互联系的。指令队列可以被看 成一个RAM区,EU对其执行读操作,BIU对 其执行写操作。
② 算术逻辑运算部件ALU
16 位加法器,用于对寄存器和指令操作数进行算术或逻辑运算.
③ 标志寄存器PSW
9个标志位,其中6个条件标志位用于存放结果状态.
④ 运算寄存器 接收从BIU的指令队列中取来的指令代码, ⑤ EU控制系统 译码并向 EU 内各有关部分发出时序命令信号,
协调执行指令规定的操作。
( iii )存储单元的逻辑地址和物理地址
逻辑地址 段地址 0000H~FFFFH(由段寄存器提供 ) 偏移地址 段内某个单元到段基地址的距离
(0000H~FFFFH,由指令提供 )
CPU访问存储器时,送出00000H~FFFFFH间的一个20位的物理地址。
物理地址=段址×10H+偏址
+
段址 段寄存器 CS、DS、ES、SS 16
4.4 标志寄存器FR
控 方向标志DF(Direction Flag): DF=1 ,串操作时地址自动减量;

DF=0,串操作时地址自动增量。
1.2 EU(Execution Unit)
EU的工作过程
从BIU指令队列中取指译码电路分析相应 控制命令 控制数据经过“ALU数据总线”的 流向:
(1)若是运算操作:操作数 暂存器 ALU; 运算结果 经“ALU总线”相应Reg、并置
PSW 。 (2)若从外设取数:EU BIU访问MEM 或
为了能寻址1MB空间,
将存储器分成4种段,存放三类信息: 代码、数据、中间结果和断点地址。
8086对存储器进行逻辑
分段,每个段最大为 64KB,最小为16B(
此时最多64K个段)。
( ii )4个段寄存器CS、 DS 、SS 、ES
分别指示存储区的段地址(段起始地址的高16可寻址的四个段,不可互换使用。
I/O 内部通信寄存器 向“ALU数据总线” 传送数据。
“流水线”结构
总线接口部件BIU和执行部件EU并不是同步 工作的, 两者的动作管理遵循如下原则:
每当8086的指令队列中有2个空字节,BIU就会 自动把指令取到指令队列中。
而同时EU从指令队列取出一条指令,并用几个 时钟周期去分析、执行指令。

则 SF=0。
志 零标志ZF(Zero Flag): 若运算的结果为0,则ZF=1,否则ZF=0。
奇偶标志PF(Parity Flag):若运算结果的低8位中‘1’的个数为偶数,则
PF=1,否则,PF=0。
辅助进位标志AF(Auxiliary Flag):在进行8位或16位数运算时,由低4位向
高4位(D3向D4)有进位或借位,则AF=1,否则AF=0。
流水线操作
取指 取指 取指 取指 得到数据
等待 执行 执行 执行 执行
1.1 BIU (Bus Interface Unit)
功能
完成所有外部总线的操作,提供总线控制信号。 具体地说,完成:取指、指令排队、读写操作
数、地址转换(将两个16位地址相加 20位 物理地址),总线控制。 BIU使用指令队列实现流水线操作:当指令队 列中有2个或2个(8088为1个)以上的字节空间, 且EU未申请读写存储器,则BIU顺序预取后续 指令代码 Queue。
1 8086CPU内部结构
1. 算术逻辑单元(运 算器)
2. 寄存器组 3. 指令处理单元(控
制器)
8088的内部结构
AH AL
BH BL
通用 寄存器
CH CL DH DL
SP
BP
SI
DI
16位
地址
加法 ∑
20位

8位
CS
DS
SS
输入/输出
ES
控制电路
IP

内部暂存器


线
ALU
执行部分 控制电路
8位寄存器 16位寄存器
4. 寄存器的配置
AX AH AL BX BH BL CX CH CL DX DH DL
累加器 基地址寄存器 计数器
数据寄存器
SP
堆栈指针寄存器
BP
基地址寄存器
SI
源变址寄存器
DI
目的变址寄存器
IP FLAG
(PC) 指令指针寄存器 (PSW) 状态标志寄存器
CS
代码段寄存器
搭配规则:段寄存器和寄存器(指针、变址)有较固定的配用 关系;
替换(超越)规则:在指令之前可加上 “CS”,”DS”,”SS”等前缀,以指定的段寄存器替代隐含的 段寄存器。
CS IP
DS SI,DI或BX
SS SP或BP
代码段 数据段 堆栈段
段寄存器和其他寄存器组合指向存储单元示意图
(iv)存储器分段的一般规律: a. 可独立分开(最大不重叠16个段) b. 连续 c. 重叠(部分重叠或完全重叠) 如:数据段和附加段完全重叠,堆栈段和附加段 部分重叠。因此对一个具体的存储单元,可以属 于一个逻辑段,也可以同时属于几个逻辑段。
偏址
16
指令地址 数据地址 堆栈地址 附加段地址
(CS)×10H +(IP) (DS)×10H + EA(偏移地址也称为有效地址EA,出现在指令中) (SS)×10H +(SP) (ES)×10H + EA
物理地址与逻辑地址的关系如下图:
15
0 3210
段基址
0000
15
0
偏移地址




基址加法器
IP的内容由8086/8088的总线接口部件BIU修 改(编程序时不能直接访问IP,但指令可引起它 的改变、或将它的内容压入堆栈、或从堆栈恢 复)。
物理地址=CS × 16+IP
4.4 标志寄存器FR
作用:存放ALU的操作结果的特征标志,这种标志可作为条 件,用于判断是否控制程序转移; 或对某一特定的功能起控制 作用。
码等多种数据类型进行处理。
端口地址:16位I/O端口地址可寻址64K端口地址。
每一个地址对应一个字节宽的I/O端口。
中断功能:可处理内部软件中断和外部硬件中断源达256个。
支持单片CPU或多片CPU系统工作。
3 存储器分段与段寄存器
8086/8088率先打破微处理器只能访问64KB存储空间的限 制,可寻址1MB。
通用寄存器的特殊用法(默认用法)
寄存器
特殊用法
AX,AL 乘法/除法指令,作累加器;I/O操作时,作数据寄存器
相关主题