51单片机 CPU原理和PC体系结构解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SP BP DI SI
CS DS SS ES
IP 暂存器
线
总 存 控 线 储
8086
16位内部总线
暂存器
制 逻 辑
器
接
口
ຫໍສະໝຸດ Baidu
ALU
标志寄存器
E 指令队列 U 控 8位队 1 2 3 4 5 6 制 列总线 8088 8086 器
总线接口部件BIU
执行部件EU
8086总线接口部件BIU(Bus Interface Unit)
《单片微机原理及应用》
第十章 8086CPU原理和PC体系 结构
PC的发展(Intel CPU)
1978年 8086/8088 (1981, IBM-PC) 1982年 80286 1985年 80386 1989年 80486 1993年 Pentium
1995年,P6 PentiumPro PentiumII PentiumIII
8086通用寄存器的特殊使用
寄存器 名 AX, AL AH AL BX CX CL DX SI DI BP SP 特殊用途 在输入输出指令中作数据寄存器用 在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商 在LAHF指令中,作目标寄存器用 在十进制运算指令中作累加器用 在XLAT指令中作累加器用 在间接寻址中作基址寄存器用 在XLAT指令中作基址寄存器用 在串操作指令和LOOP指令中作计数器用 在移位/循环移位指令中作移位次数计数器用 在字乘法/除法指令中存放乘积高位或被除数高位或余数 在间接寻址的输入输出指令中作地址寄存器用 在字符串运算指令中作源变址寄存器用 在间接寻址中作变址寄存器用 在字符串运算指令中作目标变址寄存器用 在间接寻址中作变址寄存器用 在间接寻址中作基址指针用 在堆栈操作中作堆栈指针用 隐含性质 不能隐含 隐 含 隐 含 隐 含 隐 含 不能隐含 隐 含 隐 含 不能隐含 隐 含 不能隐含 隐 含 不能隐含 隐 含 不能隐含 不能隐含 隐 含
由EU控制系统向各个相关部件发出与指令一致的控制 信号,完成指令的执行。具体的运算由ALU和相关寄存器 负责。 向BIU传送偏移地址信息 在指令执行过程中,如要从内存中取操作数,EU会向 BIU发总线请求,而EU自动算出偏移地址并送到BIU中的 内部暂存器,以便求出物理地址。
EU组成
算术逻辑单元ALU(Arithmetic and Logic Unit) 算术和逻辑运算 计算16位地址偏移量 EU控制器 指令译码 形成各种控制信号,控制EU各部件完成规定动作 通用寄存器,即AX、BX、CX、DX 参与运算;存放结果。 专用寄存器,即BP、SP、SI、DI 标志寄存器Flags 自动记录运算结果的状态。
8086CPU寄存器组
15 8 7 0 AX AH AL 累加器 BX CX DX 15 SP BP SI DI 15 IP PSW FLAGS 15 CS DS SS ES 0 代码段 数据段 段寄存器 堆栈段 附加数据段 0 指令指针 状态标志 控制寄存器 BH CH DH BL CL DL 0 堆栈指针 指针寄存器 基址指针 源变址 变址寄存器 目的变址 基址 计数 数据 数据寄存器 通 用 寄 存 器
BIU组成: 4个段寄存器、指令队列、指令指针寄 存器IP和地址加法器
BIU负责CPU内部与存储器和I/O接口的信息传递。 BIU包括以下几个主要任务: 1) 取指令
BIU从内存取出指令送到指令队列中。
2) 传送数据
BIU从内存中读取执行指令过程中所需的操作数,传送给EU 部分去执行,并把EU执行结果送回内存或I/O接口。
BIU负责取指、读写操作数 EU负责指令的执行 BIU和EU分开的意义:取指和执行重叠,提高 CPU的利用率。
8086指令的执行顺序(流水线技术)
BIU和EU分开,取指和执行可以重迭,大大减 少了等待取指所需的时间,提高CPU的利用率
BIU 取指1 取指2 取指3 取指4
取操作数
取指5 取指6
通用寄存器(8086)
8个16位通用寄存器AX、BX、CX、DX、SI、 DI、BP、SP
作逻辑和算术操作的操作数 用于各种存储器操作数的寻址方式中,作地址偏移 量的计算 用作串操作的地址指针
4个16位数据寄存器AX、BX、CX、DX
可拆分成8个8位寄存器AH、AL、BH、BL、CH、 CL、DH、DL 用作逻辑和算术操作的操作数,也可存放运算的结 果 用作数据的暂存寄存器,临时存放数据 在某些指令中,作隐含功能寄存器(参见后表) BX可在基址寄存器,用于操作数寻址
指针寄存器(SP、BP)
通用寄存器(8086)(续)
SP(堆栈指针)用于在堆栈操作时,存放16位栈 顶单元的偏移量 BP(基址指针),指向堆栈段内的某一存储单元 (该单元的16位偏移量) BP还可用作数据寄存器,存放参与运算的操作数 和运算结果
变址寄存器(SI、DI)
在多数指令中,可随意选择SI、DI作为源或目的变 址寄存器 在串操作指令中,SI固定作源变址指针,DI作目的 变址指针 SI、DI还可用作数据寄存器,存放参与运算的操作 数和运算结果
3) 生成20位的物理地址; 4)将执行部件的操作结果送到指定的内存单元或I/O端口。
8086的执行部件EU
执行部件(EU)的功能就是负责指令的执行。将指令译码并利用 内部的寄存器和ALU对数据进行所需的处理。 它主要完成以下任务: 指令译码 由EU控制系统将指令队列中的指令源代码翻译成EU可直 接执行的指令代码。 执行指令
2000-2005年 Pentium4 (32Bit~64Bit)
10.1
8086CPU
8086CPU的结构
8086CPU是INTER公司早期的16位结构 的微处理器
16位内部寄存器组、16位数据总线、20位地 址总线(1M存储单元的寻址能力)
8086CPU按照功能结构分成两个部分: 总线接口单元BIU和执行单元EU
EU
等待
执行1 执行2
执行3
执行4 执行5
8086的执行顺序
取指1 执行1 取指2 执行2 取指3
时间
取操作数3
执行3
早期的微处理器的执行顺序
通用寄存器
AX BX CX DX AH BH CH DH AL BL CL DL
地址加法器
20位地 址总线
16 位 数 据 总 线
总
8086
的 功 能 结 构