80x86微处理器
1.微处理器各项指标意义
- 主频:是指芯片所使用的主时钟频率,它直接影响计算机的运行速度
- 数据总线:是计算机中各个组成部件间进行数据传送时的公共通道;总之,数据总线位数越多,数据交换的速度就越快
- 地址总线:在对存储器或I/O端口进行访问时,传送由CPU提供的要访问的存储单元或I/O端口地址信息的总线. 其宽度决定了处理器能直接访问的主存容量大小
2.三级存储器组织结构
为了满足计算机对存储器系统高速度,大容量,低成本的要求,微型计算机采用三级存储器组织结构,由 高速缓冲存储器Cache,主存和外存组成
外存:容量大,但速度慢.当前没有使用的程序可以存在外存中
主存:数据必须从外存读到主存才能被CPU读取并执行,容量较小,但速度快
高速缓冲存储器:存储速度很快,但容量很小,CPU在取指令或读取操作数时,同时对Cache和主存进行访问,如果Cache命中,则终止对主存的访问.Cache的使用大大提高了CPU读取指令或数据的速度
3.8086处理器的内部结构
从功能上讲可以分为两部分:总线接口单元BIU和执行单元EU
总线接口单元BIU:
1> 功能:
- 读指令, 指令队列出现空字节(8086出现两个空字节)时,从内存取出后续指令. BIU取指令时,EU同时也在工作,两者并行工作,大大提高CPU的执行速度
- 读操作数, 根据EU给出的地址,从内存或外设端口读取数据供EU使用
- 写操作数, EU的执行结果由BIU送往指定的内存单元或外设端口
2> 总成部分:
-
段寄存器: 分为代码段寄存器CS.数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES.
-
指令指针寄存器IP: 存放下一条要读取的指令在代码段中的偏移地址
-
20位地址加法器,8086的地址引脚有20根,能提供20位的地址信息,但CPU内部可以提供地址信息的寄存器都是16位的,那如何用16位寄存器实现20位地址的寻址呢? 8086采用了段结构的内存管理方法. CPU提供的用来对存储单元进行访问的20位地址是由BIU中的地址加法器产生的.
存储器中每个存储单元的地址可以有一下两种表示方式:
(1)逻辑地址,表达形式为: 段地址:段内偏移地址,段内偏移地址又称"有效地址". 在读取指令时,段地址由代码段寄存器CS提供,偏移地址由指令指针寄存器IP提供; 在读取或存储操作数时, 根据具体操作,段地址由DS,SS,ES提供,段内偏移地址由指令给出
(2)物理地址,CPU与存储器进行数据交换时在地址总线上提供的20位地址信息称为物理地址 ,由逻辑地址求物理地址的公式为: 物理地址=段地址*10H+段内偏移地址
-
指令队列缓冲器: 采用"先进先出"的原则,按顺序存放,并按顺序取到EU中去执行,当EU执行跳转,子程序调用或返回指令时,BIU就使指令队列复位,并从指令给出的新地址开始取指令.
执行单元EU:
1> 功能:
- 从指令队列缓冲器中读指令,并执行指令
- 给BIU发送指令,指令中存储存储器中要取操作数的偏移地址
2> 组成部分:
- 16位算数逻辑单元:用于进行算数和逻辑运算
- 16位标志寄存器FLAGS:用来存放CPU运行结果的状态特征和控制标志
- 数据暂存寄存器:协助ALU完成运算,暂存参加运算的数据
- 通用寄存器: 包括四个16位数据寄存器AX,BX,CX,DX,和四个指针与变址寄存器SP,BP,SI,DI
- EU控制电路: 控制,定时与状态逻辑电路
3.总线周期的概念
8086CPU在与存储器或I/O端口交换数据时需要启动一个总线周期.按照数据的传送方向来分, 总线周期可分为"读"总线周期(CPU从存储器或I/O端口读取数据)和"写"总线周期(CPU将数据写入存储器或I/O端口)
时钟周期是CPU的基本时间计量单位,由CPU主频决定。一个时钟周期又称一个T状态,因此基本总线周期可用T1,T2,T3,T4表示。 在T1状态CPU把要读、写的存储单元的地址或I/O端口的地址放到地址总线上。若为 ”读“总线周期,CPU从T3-T4从总线上接收数据。在T2状态时浮空,允许CPU有一个缓冲时间可以把输出地址的写方式转换成输入数据的读方式。若是"写"总线周期,T2-T4状态把数据送到总线上,并写入存储器单元或I/O端口
4.8086CPU引脚
8086CPU按引脚功能可分为三大类: 电源线和地线, 地址/数据引脚以及控制引脚.
-
1>电源线和地线
电源线Vcc:输入,接入单一5V电源
地线GND:输入,两条地线均应接地
-
2>地址/数据(状态)引脚
地址/数据分时复用引脚AD15~AD0(Adress Data) : 传送地址时单向输出, 传送数据时双向输入或输出
地址/状态分时复用引脚A19/S6A16/S3(Adress/Status):引脚35-38,输出,三态总线,采用分时输出,即在T1状态是做地址线用,T2T4输出状态信息.当访问存储器时,T1状态输出A19A16,与AD15AD0组成20位物理地址; CPU访问I/O端口时,不使用这四个引脚,A19~A16保持为0.
状态信息中 S6为0,用来表示8086CPU当前与总线相连,所以在T2-T4状态,S6为0; S5用来表示中断允许标志位IF的当前设置, IF=1时,S5为1, 否则为0; S4~S3用来指示当前正在使用的段寄存器
-
3>控制引脚
- NMI(Non-Maskable Interrupt):非屏蔽中断请求信号,输入,上升沿触发,此请求不受标志寄存器FLAGS中中断允许位IF状态的影响,只要此信号一出现,在当前指令执行结束后立即进行中断处理
- INTR(Interrupt Request):可屏蔽中断信号,输入,高电平有效,CPU在每个指令周期的最后一个时钟周期检测该信号是否有效,若此信号有效,表明有外设提出了中断请求,若这时IF=1,则当前指令执行完后立即响应中断;若IF=0,则中断被屏蔽
- CLK:系统时钟,输入
- RESAET: 复位信号,输入,高电平有效,使处理器马上结束现行操作,对处理器内部寄存器进行初始化
- READY:数据"准备好"信号线,输入,实际上是所寻址的存储器或I/O端口发来的数据准备就绪信号,高电平有效
- TEST非:等待测试信号,输入,当CPU执行WAIT指令时,每隔五个时钟周期对TEST非引脚进行一次测试,若为高电平,CPU就仍处于空转状态进行等待,直到TEST非引脚变为低点评,CPU结束等待状态,执行下一条指令
- RD非:读控制信号,输出,当值等于0时,表示将要执行一个对存储器或I/O端口的读操作
- BHE非/S7(BUS HIGH ENABLE/Status): 高八位数据总线允许/状态复用引脚,输出
- MN/MX非:最小/最大方式控制信号,输入