1.09k likes | 1.2k Views
2.1 微处理器概述. 2.1.1 CPU 的基本概念和组成 2.1.2 CPU 主要技术参数 2.1.3 CPU 主流技术术语浅析. 返回本章首页. 2.1.1 CPU 的基本概念和组成. 微处理器即微型化的中央处理器又称为中央处理器。 微处理器的职能是执行算术 / 逻辑运算,并负责控制整个计算机系统,使之能自动协调地完成各种操作。. 返回本节. CPU 的内部结构与工作原理.
E N D
2.1 微处理器概述 • 2.1.1 CPU的基本概念和组成 • 2.1.2 CPU主要技术参数 • 2.1.3 CPU主流技术术语浅析 返回本章首页
2.1.1 CPU的基本概念和组成 • 微处理器即微型化的中央处理器又称为中央处理器。 • 微处理器的职能是执行算术/逻辑运算,并负责控制整个计算机系统,使之能自动协调地完成各种操作。 返回本节
CPU的内部结构与工作原理 • CPU0由运算器和控制器组成,CPU的内部结构可分为控制单元,逻辑单元和存储单元三大部分。CPU的工作原理就象一个工厂对产品的加工过程:进入工厂的原料(指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储器)中,最后等着拿到市场上去卖(交由应用程序使用)。
2.1.2 CPU主要技术参数 • 1.位、字节和字长 • 2.CPU外频 • 3.CPU主频 • 4.前端总线(FSB)频率 • 5.L1和L2 Cache的容量和速率 返回本节
1.位、字节和字长 • 位:电脑技术中采用二进制“0”和“1”,其中无论是 “0”或是“1”在CPU中都是一“位”。 • 字长:电脑技术中对CPU能一次处理的二进制数的位数叫字长。 • 字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。对于不同的CPU字节的长度是不固定的,字长的长度也不一样。8位的CPU一次只能处理一个宇节,而32位的CPU一次就能处理4个宇节,同理字长为64位的CPU一次可以处理8个字节。
2.CPU外频 • CPU外频是由主板为CPU提供的基准时钟频率。 • 正常情况下CPU总线频率和内存总线频率相同, • 所以当CPU外频提高后,与内存之间的交换速度也相应得到了提高,对提高电脑整体运行速度影响较大。
3.CPU主频 • 主频也叫工作频率,用来表示CPU的运算速度。 • CPU的主频=外频×倍频系数。 • CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运行能力是没有直接关系的。
4。 前端总线(FSB)频率 • 前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。 • 外频与前端总线频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。
5。缓存 • 缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速度很快。 • L1Cache(一级缓存) • L2Cache(二级缓存)
2.1.3 CPU主流技术术语浅析 • 1.流水线技术 • 2.超流水线和超标量技术 • 3.乱序执行技术 • 4.分支预测和推测执行技术 • 5.指令特殊扩展技术 返回本节
1.流水线技术 • 流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。
2.超流水线和超标量技术 • 超流水线是指某些CPU内部的流水线超过通常的5~6步以上,例如Pentiumpro的流水线就长达14步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。 • 超标量是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。
3.乱序执行技术 • 乱序执行是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。
4.分支预测和推测执行技术 • 分枝预测和推测执行是CPU动态执行技术中的主要内容,动态执行是目前CPU主要采用的先进技术之一。采用分枝预测和动 态执行的主要目的是为了提高CPU的运算速度。 • 由于程序中的条件分枝是根据程序指令在流水线处理后结果再执行的,所以当CPU等待指令结果时,流水线的前级电路也处于空闲状态等待分枝指令,这样必然出现时钟周期的浪费。 • 如果CPU能在前条指令结果出来之前就能预测到分枝是否转移,那么就可以提前执行相应的指令,这样就避免了流水线的空闲等待,相应也就提高了CPU的运算速度。但另一方面一旦前指令结果出来后证明分枝预测错误,那么就必须将已经装入流水线执行的指令和结果全部清除,然后再装入正确指令重新处理,这样就比不进行分枝预测等待结果后再执行新指令还慢了
5.指令特殊扩展技术 • 在介绍CPU性能中还经常提到"扩展指令"或"特殊扩展"一说,这都是指该CPU是否具有对X86指令集进行指令扩展而言。扩展指令中最早出现的是Intel公司自己的"MMX",其次是AMD公司的"3DNow!",最后是Pentium Ⅲ中的"SSE"
2.2 8086/8088微处理器 • 2.2.1 8086的编程结构 • 2.2.2 8086的工作模式和引脚功能 • 2.2.3 8086的系统组成 • 2.2.4 8086的总线时序 返回本章首页
2、8086/8088微处理器的结构 8086:Intel系列的16位微处理器,16条数据线、20条地址线,可寻址地址范围220=1MB,8086工作时,只要一个 5V 电源和一个时钟,时钟频率为5MHz。 8088:内部与8086兼容,也是一个16位微处理器,只是外部数据总线为8位,所以称为准16位微处理器。它具有包括乘法和除法的16位运算指令,所以能处理16位数据,还能处理8位数据。8088有20根地址线,所以可寻址的地址空间达220即1M字节。
1.总线接口单元 (BIU) • 总线接口部件由下列各部分组成: • (1)4个段地址寄存器; • CS——16位的代码段寄存器; • DS——16位的数据段寄存器; • ES——16位的扩展段寄存器; • SS——16位的堆栈段寄存器; • (2)16位的指令指针寄存器IP; • (3)20位的地址加法器; • (4)6字节的指令队列缓冲器。
2.执行单元EU • 执行部件由下列几个部分组成: • (1)4个通用寄存器,即AX、BX、CX、DX; • (2)4个专用寄存器:BP, SP, SI, DI • (3)标志寄存器FR; • (4)算术逻辑单元ALU。
功能:从BIU的指令队列中取出指令代码,经指令译码器译码后执行指令所规定的全部功能。执行指令所得结果或执行指令所需的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读/写操作。 功能:根据执行部件EU的请求,负责完成CPU与存储器或I/O设备之间的数据传送。
3、BIU和EU的管理 • (1)BIU和EU可以并行工作,提高CPU效率。 BIU监视着指令队列。当指令队列中有2个空字 节时,就自动把指令取到队列中。 • (2) EU执行指令时,从指令队列头部取指令,然后 • 执行。如需访问存储器,则EU向BIU发出请求, • 由BIU访问存储器。 • (3) 在执行转移、调用、返回指令时,需改变队列 • 中的指令,要等新指令装入队列中后,EU才继 • 续执行指令。 • -------“流水线”结构
8086CPU中可供编程使用的有14个16位寄存器,按其用8086CPU中可供编程使用的有14个16位寄存器,按其用 • 途可分为3类:通用寄存器、段寄存器、指针和标志寄存器, • 如图所示: AH AL 累加器 BH BL 基址寄存器 数据寄存器 CH CL 计数寄存器 DH DL 数据寄存器 通用寄存器 SP 堆栈指针寄存器 BP 地址指针和 基址指针寄存器 变址寄存器 SI 源变址寄存器 DI 目的变址寄存器 IP 指令指针寄存器 控制寄存器 FR 标志寄存器 CS 代码段寄存器 DS 数据段寄存器 段寄存器 SS 堆栈段寄存器 ES 附加段寄存器 8086CPU内部寄存器结构
数据寄存器 AH AL 累加器 BH BL 基址寄存器 数据寄存器 CH CL 计数寄存器 DH DL 数据寄存器 • 数据寄存器包括4个16位的寄存器AX、BX、CX和DX, • 一般用来存放16位数据,故称为数据寄存器。其中的每一个又可根据需要将高8位和低8位分成独立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8位数据,它们均可独立寻址、独立使用。
SP 堆栈指针寄存器 BP 地址指针和 基址指针寄存器 变址寄存器 SI 源变址寄存器 DI 目的变址寄存器 • 指针和变址寄存器包括指针寄存器SP、BP和变址寄存器SI、DI,都是16位寄存器,一般用来存放地址的偏移量。
CS 代码段寄存器 DS 数据段寄存器 段寄存器 SS 堆栈段寄存器 ES 附加段寄存器 • 8086CPU共有4个16位的段寄存器,用来存放每一个逻辑段的段起始地址。
IP 指令指针寄存器 控制寄存器 FR 标志寄存器 • 指令指针寄存器IP :是一个16位的寄存器,存放EU要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪 。 • 标志寄存器F R:是一个16位的寄存器,共9个标志,其中6个用作状态标志,3个用作控制标志。
(6)、标志寄存器 16位寄存器,其中有7位未用。 1-低8位有偶数个1 0-低8位有奇数个1 D15 D0 OF DF IF TF SF ZF AF PF CF 方向标志 单步中断 符号标志 零标志 半进借位标志 奇偶标志 进借位标志 溢出标志 中断允许 1-结果为0 0-结果不为0 1-有进、借位 0-无进、借位 1-低4位向高4位有进、借位 0-低4位向高4位无进、借位
寄存器的隐含用法 • 但在某些指令中规定了某些通用寄存器的专门用法, 这样可以缩短指令代码长度;或使这些寄存器的使用具有隐含的性质, 以简化指令的书写形式(即在指令中不必写出使用的寄存器名称)。 通用寄存器的隐含用法如下表所示。
2.2.2 8086的工作模式和引脚功能 • 1.最小工作模式 • 2.最大工作模式 • 3.8086CPU的引脚信号
1.最小工作模式 • 由图可知,在8086的最小模式中,硬件连接上有如下几个特点: • (1)MN/ 引脚接+5V,决定了8086工作在最小模式。 • (2)有一片8234A,作为时钟发生器。 • (3)有三片8282或74LS373,用来作为地址锁存器。 • (4)当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,可选用两片8286或74LS245作为总线收发器。
2.最大工作模式 • 由图2-4可知,最大模式配置和最小模式配置有一个主要的差别: 最大模式下多了8288总线控制器。 图2-4 8086CPU最大工作模式下的典型配置
3.8086CPU的引脚信号 • 8086CPU采用双列直插式的封装形式,具有40条引脚,见图2-5。它采用分时复用的地址/数据总线,所以有一部分引脚具有双重功能,即在不同时钟周期内,引脚的作用不同。 图2-5 8086的引脚信号(括号中为最大模式下的名称) 返回本节
1、地址/数据总线 • AD15-AD0:地址/数据复用引脚,双向,三态。 • (8086/8088)AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。 • (8086)AD15-AD0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。 • (8088)AD7-AD0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。 • 地址/数据总线复用,分时工作。
2、A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。2、A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。 • A19/S6-A16/S3:输出访问存储器的20位地址的高4位地址A19-A16。 • A19/S6-A16/S3:输出CPU的工作状态。
S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。 • S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。 • S4、S3:指出当前使用段寄存器的情况。 • S4、S3组合所对应的段寄存器情况 • S4 S3 段寄存器 • 0 0 当前正在使用ES • 0 1 当前正在使用SS • 1 0 当前正在使用CS • 1 1 当前正在使用DS
3、控制总线 • (1)、/BHE/S7:高8位数据总线允许/状态复用引脚。 • S7:8086中无定义。 • 8088中,在最大模式中,为高电平;在最小模式中,输出SS0信号,此信号与其它信号合作将总线周期的读/写动作。
(2)、/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(2)、/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。 • (3)、/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。 • (4)、M//IO:存储器或IO端口访问信号,三态输出。M//IO=1,表示CPU正在访问存储器;M//IO=0,表示CPU正在访问IO端口。 • (5)、READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。
(6)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(6)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。 • (7)、/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。 • (8)、NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。 • (9)、/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。
(10)、RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始 执行。 • (11)、ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。 • (12)、DT//R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT//R=1,发送数据----写操作;DT//R=0,接收数据--读操作。 • (13)、/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。
(14)、HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(14)、HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。 • (15)、HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。 • (16)、MN//MX:工作模式选择信号,输入。MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。 • (17)、CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。
4、电源线和地线 • 8086/8088采用单+5V, • 1、20引脚为地线。
5、最大模式下的有关引脚 • (1)、QS1、QS2:指令队列状态信号,输出。 • QS1 QS2 含义 • 0 0 无操作 • 0 1 将指令首字节 • 送入指令队列 • 1 0 队列为空 • 1 1 将指令其余字节 • 送指令队列
(2)、S2、S1、S0:总线周期状态信号,三态输出。(2)、S2、S1、S0:总线周期状态信号,三态输出。 • (3)、/RQ//GT1、/RQ//GT0:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。 • (4)、/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。
2.2.3 8086的系统组成 • 1.8086的存储体结构 • 2.8086存储器的分段结构 • 3.8086存储器的逻辑地址与物理 • 4.8086存储器20位物理地址的形成 • 5. 堆栈