微机原理与接口技术(课堂笔记) 第一章 微型计算机的一般工作过程、8080CPU 主要引线以及机构

    科技2022-08-05  136

    目录

    1.2 微型计算机系统

    1.3 微型计算机的一般工作过程

    2.1 8088 微处理器

    2.2 8088 CPU 主要引线及机构

    8088的内部结构:

    #执行单元

    #总线接口单元 BIU

    #8088 的内部寄存器

    ## 段寄存器


    1.2 微型计算机系统

    外部设备:可以与CPU进行信息交换,但是不能直接与CPU进行信息交换

    即必须通过输入输出接口 同计算机进行信息交换

    脱机外存:离开计算机后还可以存储数据的设备 ,例如U盘

     为什么需要IO接口?

    这是因为CPU是一个高速设备,外设是一个低速设备。高速设备和低速设备之间

    直接相联速度不匹配。 因为往往一个外设配备一个IO接口,所以IO接口 和 外设

    之间传输多长时间没关系,当IO接口接收完数据后,通知下CPU将数据取走即可。

    当CPU需要向外设写入数据时,CPU一个周期将数据写入接口中,之后IO接口和

    外设之间传输数据画多长时间CPU可以不管了,转身做自己的加减乘除了。

    1.3 微型计算机的一般工作过程

    2.1 8088 微处理器

    8088/8086 CPU相对于早期CPU的特点:

    1.可以实现指令并行流水线工作方式:通过设置指令预取队列

    2.对内存空间进行分段管理:将内存分为4个段并设置地址寄存器,以实现对1MB空间

    的寻址(实模式存储器寻址)

    3.支持协处理器:协处理器主要用于浮点运算,是否支持协处理器取决于 CPU的工作模式

    8088/8086 的两种工作模式:

    最小模式:单处理器工作模式,所有控制信号 由微处理器自己来产生

    最大模式:主处理器 和 协处理器 协同工作模式,由 总线控制器 将 主处理器的 一部分控制

    信号分解 来控制协处理器。

    ALE 地址锁存信号 ,当ALE 有效的时候,CPU 发出的 内存地址 就进入了 地址锁存器中,被锁

    进去的内存地址 就会呈现 在 地址锁存器的输出端,这个输出端就连接着 外部总线的 地址总线

    为什么需要 地址锁存?

    一般使用地址锁存都是因为 发出地址信息 的通道 和 发出数据信息 的 通道 其实 是同一个通道

    (多路复用)

    所以为了 数据信息 不会覆盖掉 之前传输的地址信息 ,将地址信息锁存到了地址锁存器中

    最大模式下 添加了总线控制器:

    两种工作模式的选择:

    注意:MN/MX 是一个引脚,MX上横杠 表示低电平有效 ,也就是说 MN/MX 这个引脚为 低电平

    的时候工作 在最大模式下。

    2.2 8088 CPU 主要引线及机构

    最小模式下,地址总线 一共有20位

    其中低八位 称为 AD0-AD7(A:adress,D:data),这些八位 地址信号 和数据信号 是分时复用的,一般

    先传送地址信号  后 传送数据信号。这八根线既是地址总线 又是 数据总线。

    其中高四位,地址信号 和  状态信号 是分时复用的

    注意:8088CPU 的机器字长是16位,也就是说 CPU内部是可以16位数据同时处理的。

    但是8088的数据总线只有8位,也就是说16位的数据需要分两次才能从CPU内部传输出去

    #号 表示 上横线的意思,即低电平有效。

    8088CPU 读和写 可能 针对的是内存 也可能针对的是 IO接口

    所以除了读信号 和 写信号,还必须得有一个信号 指明 访问内存 还是 访问 IO接口

    10/#M (是一个引脚)M表示Memory #表示当 该引脚为低电平时,CPU访问的是内存

    当该引脚 加 高电平的时候,CPU读写的是 IO接口

    8088CPU 并不是直接将数据发送给了 数据总线 ,而是先发给了数据收发器

    #DEN 是数据收发器的工作信号,低电平时数据收发器开始工作

    DT/#R 是 方向控制信号, DT:Direction R:Read

    当该引脚为低电平时,数据读入 数据收发器 ,高电平时, 数据收发器 发出数据

    READY信号:外部同步控制信号,

    正常情况下,CPU访问一次内存 或者IO 接口 需要4个时钟周期(8088一个时钟周期大约0.2个微秒)

    这四个时钟周期称为一个总线周期。

    因为内存 和IO接口的速度 比 CPU慢很多,所以4个时钟周期内不一定能完成一次 内存 或者接口访问

    当不能完成的时候,就需要 向4个时钟周期中增加 时钟周期。

    当CPU访问内存或者接口时,CPU就会发出一个访问信号,当达到4个时钟周期中的第三个时钟周期时

    CPU就会检查自己的Ready端引脚,如果发现Ready端是高电平,那么它就会送上第四个时钟周期,一次

    访存结束。

    如果发现Ready端是低电平,CPU就会在第三个时钟周期后面插入若干个时钟周期,让CPU等待

    P18

    8088的内部结构:

    #执行单元

    FLAGS 标志寄存器,保存运算结果特征

    ALU:指令执行

    8个通用寄存器:暂存中间运算结果

    #总线接口单元 BIU

    主要功能:总而言之,就是访问接口 或者内存用的

    1.总线接口单元负责从内存中取指令 到 指令预取队列 队列中,直到指令与取队列填满。

    这是BIU 就处于空闲状态了

    而执行单元EU 则是不断从 指令预取队列中 取指令进行译码

    指令预取队列实现了 EU 和 BIU 的并行流水线

    但是因为我们只是预取了指令 而没有 预取数据,所以可能导致 并行流水线断流

    2.负责访问内存 或者 访问IO接口

    3.如果我们执行的指令是一个跳转指令,很有可能导致指令预取队列中取的指令白取了

    进而导致流水线断流。

    所以在执行转义程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给

    EU执行

    #8088 的内部寄存器

    一共14个16位的寄存器,可以分为三类:

    8个通用寄存器

    4个段寄存器

    2个控制器寄存器

    ## 8个通用寄存器:

    通用寄存器不论叫什么名字, 不论有什么特殊用法,这些通用寄存器的一级作用都是暂存中间运算结果

    数据寄存器(AX BX CX DX):一个数据寄存器可以分为两个8位寄存器地址指针寄存器 (SP BP)变址寄存器(SI DI)

    ### 数据寄存器

    数据寄存器的特殊用法:

    AX:累加器

    所有IO指令 都通过AX 与接口 传送信息;

    中间运算结果也多放在AX中

    BX:基址寄存器

    BX 使用时是非常灵活的,其中可能存放数据 也可能 存放数据在内存中 的地址

    CX:计数寄存器

    循环次数 一定要 放在CX中;

    串操作指令的 计数值 也必须放在CX中

    DX:数据寄存器

    在输入输出指令(IO指令)中,DX的值一定代表的是IO端口地址

    ### 地址指针寄存器

    SP:

    栈指针寄存器,存栈顶的偏移地址

    BP:

    基址指针寄存器,常用于存 栈中内存单元的偏移地址

    BP 和 BX 的区别:

    1.作为通用寄存器,两者都可以存数据

    2.作为基址寄存器,BX 表示所寻找的数据一定在 数据段 ,而BP则表示所寻找的数据一定在 栈段

    ### 变址寄存器

    SI: 源变址寄存器

    DI: 目标变址寄存器

    变址寄存器常用来存放数据在内存中的地址

    ## 控制寄存器

    IP 指令指针寄存器 ,其内容为下一条要取的指令的偏移地址

    Flags 标志寄存器 ,存放运算结果的特征

    6个状态标志位,3个控制标志位

    ### 状态标志位

    注意 最低位为第0位

    例题:

    ### 控制标志位

    ## 段寄存器

    Processed: 0.013, SQL: 9