当前位置:文档之家› 微处理器原理与应用(第三章)

微处理器原理与应用(第三章)


8086 CPU的工作模式
• 最小工作模式用于单机系统,系统中所有总线控制信号全 部由8086直接提供,因此系统中的总线控制电路可减到最 少;最大工作模式用于多处理机系统,8086 CPU作为主处 理器,其它的处理器为协处理器,协助主处理器工作。在 最大工作模式下,系统所需要的控制信号均由总线控制器 8288提供。 8086最小模式下的总线控制信号由CPU直接产 生,用于总线控制的信号是HOLD(总线请求信号,输入 )、HLDA(总线响应信号,输出)。 • 8086具体工作在最大模式还是最小模式,完全由硬件连接 决定。当将CPU的第33号引脚MN/ 接+5V时,8086工作 在最小模式,当MN/ 接地时,8086工作在最大模式。
8086 CPU引脚及功能
8086系统时钟与指令周期
• 每条指令的解释执行过程包括取指令和执行指令两个步骤, CPU取一条指令并执行这条指令,都要完成一系列的操作, 这一系列操作所需要的时间通常叫做一个指令周期。由于各 种指令的操作功能不同,因此各种指令的指令周期是不尽相 同的。对应指令执行的三个阶段,指令周期一般分为:取指 周期、取操作数周期和执行周期三个部分。 (1)取指周期 • 取指周期是取出某条指令所需的时间。在取指周期中CPU主 要完成两个操作:1)按程序计数器PC的内容取指令;2)形 成后继指令的地址。 取指周期 = (指令的长度 / 存储字的长度)× 主存的读/写周 期
8086寄存器结构
通用寄存器
• 数据寄存器 数据寄存器包括AX、BX、CX、DX等4个16位寄存器, 主要用来保存算术、逻辑运算的操作数、中间结果和地址 。它们既可以作为16位寄存器使用,也可以将每个寄存器 高字节和低字节分开作为两个独立的8位寄存器使用。而8 位寄存器(AL、BL、CL、DL、AH、BH、CH、DH)只 能用于存放数据。 • 地址指针和变址寄存器 地址指针和变址寄存器组包括堆栈指针 SP、堆栈基址寄 存器 指针BP以及变址寄存器 指针SI和DI等4个16位寄存器 。它们主要是用来存放或指示操作数的偏移地址。
时钟及时钟发生器
• 8086 CPU由外部的一片8284芯片提供主频为5MHZ的时钟信 号。8284A是Intel公司专为8086设计的时钟信号发生器,能 产生8086所需的系统时钟信号(主频),可采用石英晶体或 TTL脉冲发生器作振荡源。8284A除提供恒定时钟信号外, 还对外界输入的就绪信号RDY和复位信号RES进行同步。 • 根据不同的振荡源,8284A有两种不同的连接方法:一种是 用脉冲发生器作振荡源,此时,将脉冲发生器的输出端与 8284A的EFI端相连,并且8284A的 F / C 端接高电平;另一 种方法是用晶体振荡器作为振荡源,此时,将晶体振荡器 接在8284A的X1和X2两端,并且8284A的 F / C 接低电平( 地)。
BIU和EU的动作管理
• 取指令 BIU从内存取指令,并送到指令队列。取指令时的地址由 代码段寄存器CS中的16位段基址的最低位后补4个0,再与 指令指针IP中的16位偏移地址在地址加法器中相加得到20 位物理地址。然后通过总线控制逻辑发出存储器读命令, 从而启动存储器,从存储器中取出指令并送入指令队列供 EU执行。
BIU和EU的动作管理
• 取操作数或存结果 在EU执行指令过程中需要取操作数或存结果时,先向BIU 发出请求,并提供操作数的有效地址,BIU将根据EU的请 求和提供的有效地址,形成20位的物理地址并执行一个总 线周期去访问存储器或I/O端口,从指定存储单元或I/O端 口取出操作数送交EU使用或将结果存入指定的存储单元 或I/O端口。如果BIU已准备好取指令同时又收到EU的申 请,BIU先完成取指令的操作,然后进行操作数的读写。 当EU执行转移、调用和返回指令时,BIU先自动清除指令 队列,再按EU提供的新地址取指令。BIU新取得的第一条 指令将直接送到EU中去执行。然后,BIU将随后取得的指 令重新填入指令队列。
微处理器原理与应用
8086微处理器系统结构
主讲:王鹏伟 章节:1 ~ 4章 学时:21学时 Email:wangpw@
8086 CPU结构
• 8086 CPU是Intel系列的16位微处理器,它采用HMOS工艺 制造,双列直插,有40个引脚。8086 CPU的电源为单一的 5V,主时钟频率为5MHz~10MHz。它的外部数据总线为 16位,地址线为20根。因为可用20位地址,所以可寻址的 地址空间达1MB。 • 8086 CPU内部采用了并行流水线结构,可以提高CPU的利 用率和处理速度。8086 CPU被设计为支持多处理器系统, 因此能方便地与数值协处理器8087或其他协处理器相连, 构成多处理器系统,从而提高系统的数据处理能力
执行部件EU
• 算术逻辑单元ALU: ALU完成16位或8位的二进制数的算术逻 辑运算,绝大部分指令的执行都由ALU完成。在运算时数据 先传送至16位的暂存寄存器中,经ALU处理后,运算结果可 通过内部总线送入通用寄存器或由BIU存入存储器。 • 标志寄存器FR:它用来反映CPU最近一次运算结果的状态特 征或存放控制标志。FR为16位,其中7位未用。 • 通用寄存器组:它包括4个数据寄存器AX、BX、CX、DX, 其中AX又称累加器,4个专用寄存器,即基址指示器BP、堆 栈指示器SP、源变址寄存器SI和目的变址寄存器DI。 • EU控制器:它接收从BIU中指令队列取来的指令,经过指令 译码形成各种定时控制信号,向EU内各功能部件发送相应的 控制命令,以完成每条指令所规定的操作。
地址指针和变址寄存器
• 堆栈指针SP中存放的是当前堆栈段中栈顶的偏移地址。堆栈操作指令 PUSH和POP就是从SP中得到操作数的段内偏移地址的。 • BP是访问堆栈时的基址寄存器。BP中存放的是堆栈中某一存储单元 的偏移地址,SP、BP通常和SS联用。 • SI和DI称为变址寄存器。它们通常与DS联用,为程序访问当前数据段 提供操作数的段内偏移地址。SI和DI除作为一般的变址寄存器外,在 串操作指令中SI规定用作存放源操作数(即源串)的偏移地址,称为源 变址寄存器;DI规定用作存放目的操作数(目的串)的偏移地址,故称 之为目的变址寄存器,二者不能混用。由于串操作指令规定源字符串 必须位于当前数据段DS中,目的串必须位于附加段ES中,所以SI和 DI中的内容分别是当前数据段和当前附加段中某一存储单元的偏移地 址。 • 当SI、DI和BP不作指示器和变址寄存器使用时,也可将它们当作一般 数据寄存器使用,存放操作数或运算结果。
8086物理地址的形成
8086物理地址的形成
• 对于取指操作,是将当前CS中的内容左移4位(相当乘16) 再加上IP的内容,形成20位指令地址;存取数据操作,是 将当前数据段寄存器DS中的段基址左移4位,再与16位偏 移地址EA相加,形成20位的物理地址;对于压栈和弹栈 操作,是将当前堆栈段寄存器SS中的段基址左移4位,再 与SP相加,形成20位的物理地址;在对目的串操作时,是 以当前附加段寄存器ES中的段基址左移4位,再与DI相加 以形成20位的物理地址。 • 8086还允许部分改变基本段约定,如存取数据的基本段为 数据段,但可临时改变为代码段、或附加段、或堆栈段, 即数据不仅可在数据段,还可在代码段、附加段和堆栈段 中。这种情况称为段超越。
8086 CPU中通用寄存器的特殊用途和隐含性质
8086物理地址的形成
• 8086 CPU可直接寻址lMB的内存空间。直接寻址时需要20 位地址码,而所有的内部寄存器,包括段寄存器,都是16 位的,用它们作地址寄存器,只能直接寻址64KB单元。 因此,在8086 CPU中采用了存储空间分段技术来解决这一 矛盾。将lMB的存储空间分成若干个逻辑段,每段最大长 度为64KB。这些逻辑段可在整个lMB存储空间内浮动,但 是段的起始地址必须能被16整除。这样对于20位的段起始 地址,其低4位为0,可暂时先忽略,而只有高16位是有效 数字,可存放于16位的寄存器中。在形成20位物理地址时 ,段寄存器中的16位数会自动左移4位,然后与16位偏移 量相加 。
隐含寻址
• 8个16位通用寄存器在一般情况下都具有通用性。但是, 为了缩短指令代码的长度,某些通用寄存器又规定了专门 的用途。隐含寻址就是在指令中隐含地使用了一些通用寄 存器,而这些通用寄存器不直接在指令中表现出来 。 • 例如,在字符串处理指令中约定必须用CX作为计数器存 放串的长度。这样指令中就不必给出CX寄存器名,缩短 了指令长度,简化了指令的书写形式,这种使用方法称为 “隐含寻址”。
总线接口部件BIU
• 偏移地址表示离段起始地址之间的距离,用字节数表示。 如偏移地址=0064H,表示该地址距离段起始地址有100个字 节,偏移地址为0就表示该地址为段起始地址。 • 由段基址(段寄存器的内容)和偏移地址两部分构成了存 储器的逻辑地址,如CS:IP=3000:2000H, CS:IP=0200:1020H等,都是逻辑地址。 • 20位物理地址加法器:加法器用于将逻辑地址变换成读/ 写存储器所需的20位物理地址,即完成地址加法操作。方 法是将某一段寄存器的内容(代表段基址)左移4位(相 当乘16)再加上16位偏移地址以形成20位物理地址。 • 6字节的指令队列:当执行单元EU正在执行指令中,且不 需要占用总线时,BIU会自动进行预取下一条或几条指令 的操作,并按先后次序存入指令队列中排队,由EU按顺 序取来执行。 • 总线控制逻辑:总线控制逻辑用于产生并发出总线控制信 号,以实现对存储器和输入输出端口的读/写控制。
8086处理器的结构
• 控制器用来控制程序和数据的输入/输出,以及各部件之 间的协调运行,运算器用来进行算术运算和逻辑运算,并 保存中间运算结果,寄存器组则用来临时存放信息,其信 息或为要处理的数据,或为内存中获取某数据的地址。
Intel 8086的内部结构框图
总线接口部件BIU
• BIU是CPU与外部存储器及输入输出的接口,负责与存储 器和输入输出系统进行数据交换。 BIU由下列各部分组成: • 4个16位段地址寄存器,即代码段寄存器CS,数据段寄存 器DS,附加段寄存器ES和堆栈段寄存器SS,它们分别用 于存放当前代码段、数据段、附加段和堆栈段的段基址。 • 段基址表示20位段起始地址的高16位,段起始地址的低4 位固定是0。 • 16位指令指针IP:IP用于存放下一条要执行指令的有效地 址EA(即偏移地址),IP的内容由BIU自动修改,通常是进 行加1修改。当执行转移指令、调用指令时,BI若干个CPU周期数来表示,CPU周期也称为 机器周期。由于CPU内部的操作速度较快,而CPU访问一次 内存所花的时间较长,因此通常用内存中读取一个指令字的 最短时间来规定CPU周期。也就是说,一条指令的取出阶段 (通常称为取指)需要一个CPU周期时间。而一个CPU周期 时间又包含有若干个时钟周期(通常称为节拍脉冲或T周期, 它是处理操作的最基本单位)。时钟周期是CPU的时间基准 ,由计算机的主时钟脉冲决定,执行每条指令和每个总线周 期的一系列操作都是在时钟脉冲的同步下进行的。这些时钟 周期的总和则规定了一个CPU周期的时间宽度。 • 在执行指令的过程中,CPU要占用系统总线访问内存或外部 设备,以便从内存或外设接口中读取指令或指令所需的操作 数。CPU占用一次系统总线,进行信息的输入输出所需要的 时间称为总线周期。
相关主题