Bonky Zhu
If someone is able to show me that what I think or do is not right, I will happily change, for I seek the truth, by which no one was ever truly harmed. It is the person who continues in his self-deception and ignorance who is harmed.

微机原理 – 微处理器与总线

微机系统

I/O 接口

接口是CPU与外部设备间的桥梁。主要功能有:

  • 数据缓冲,平滑 CPU 和外设的速度差别
  • 信号电平或类型的转换,比如模电转换
  • 实现主机与外设间的运行匹配

主机系统

  • 能够与CPU直接进行信息交换的部件属于主机系统
  • 不能够与CPU直接进行信息交换的部件属于外部设备

8088/8086 CPU

  • CPU内部结构:采用并行流水线工作方式,通过设置指令预取队列实现
  • 实模式存储器寻址:对内存空间实行分段管理,将内存分为4个段并设置地址段寄存器,以实现对1MB空间的寻址
  • 工作模式:支持协处理器

最大模式和最小模式

  • 最小模式为单处理器模式,所有控制信号由微处理器产生
  • 最大模式为多处理器模式,部分控制信号由外部总线控制器产生,用于包含协处理器的情况下

8088是工作在最小还是最大模式由 MN/MX 引线的状态决定。

  • MN/MX=0——工作于最大模式
  • MN/MX=1——工作于最小模式

最小模式下的总线连接示意图

最大模式下的总线连接示意图

8088 最小模式下的主要引脚信号

8088最小模式下的主要引脚信号主要包括四种:完成一次访问内存或接口所需要的主要信号,与外部同步控制信号,中断请求和响应信号,总线保持和响应信号。

8088 总线的宽度为20,其中传输地址信息使用所有的一共20位,传输数据时仅使用低八位,与传地址分时复用,传输状态信号使用高四位,与状态信号分时复用。

对于控制信号,主要包括:

  • #WR,#RD:写读信号;
  • IO/#M:为“0”表示访问内存,为“1”表示访问接口; 之所以要区分是因为 8088 是独立编址方式,和统一编制不同,同一个地址既可能是接口的地址,也可能是内存地址
  • #DEN: 低电平有效时,通过控制数据收发器的选通,允许进行读/写操作;
  • DT/#R: 数据收发器的传送方向控制;
  • ALE: 地址锁存信号; 地址锁存是由于数据和地址是复用同一些信号线或引脚的,一般来讲是由于工艺的要求,尽量节省成本和开支,那么在同一个引脚上就会出现两种信息:地址和数据,可处理器读的时候并不知道什么时候是地址,什么时候是数据,因此,需要一些专用的芯片把它们分开,用一些专用的信号联络线来区分这些信号,这就叫地址锁存。
  • RESET:复位信号。
  • READY:用于检测设备是否准备好了。一般来说,计算机进行依次读写操作需要四个时钟周期,但不过在进行到第三个时钟周期的时候会检测 READY 信号,如果为低电平的话,说明设备还没准备好,那么再插入一个等待的时钟周期,直到 READY 变为高电平。
  • 中断请求和响应信号:
    • INTR:可屏蔽中断请求输入端
    • NMI: 非屏蔽中断请求输入端 (Non Maskable Interrupt)
    • INTA:中断响应输出端(其中A代表Acknowledge)
  • 总线保持信号:
    • HOLD:总线保持请求信号的输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求。
    • HLDA:总线保持响应信号输出端。CPU对HOLD信号的响应信号。下面是DMA的机制,HRQ信号(Hold Request)其实就相当于HOLD信号。

8088 和 8086 引线区别

  • 数据总线宽度不同:8088的外部总线宽度是8位,8086为16位。
  • 访问存储器和 IO 控制信号含义不同:8088 中 0 代表访问内存,而8086中 1代表访问内存。

8088 内部结构

主要包括两个部分:

  • 执行单元(EU) :包括 ALU 和一些和算术相关的寄存器(通用寄存器,标志寄存器)
  • 总线接口单元(BIU):从内存中取指令到指令预取队列(并行流水线工作的基础),负责与内存或 IO 接口之间的数据传送。当我们预取的指令执行的时候发现是转移指令的时候,后面取出来的指令就没用了,此时 BIU 使指令预取队列复位,从指定的新地址取指令,并立即传给 EU 执行。

实地址存储器寻址

逻辑段与逻辑地址:内存的分段是逻辑分段,不是物理段。各个逻辑段在地址上可以不相连、可以重合。 每个内存单元具有惟一物理地址,但可能具有多个逻辑地址。

堆栈: 用于存放暂时不用或需要保护的数据。常用于响应中断或子程序调用。

寄存器

Intel 8088 含14个16位寄存器,按功能可分为三类:8个通用寄存器,4个段寄存器,2个控制寄存器。

寄存器

系统总线

总线时序

CPU工作时序:CPU 各引脚信号在时间上的关系。

总线周期:CPU 完成一次访问内存(或接口)操作所需要的时间。一个总线周期至少包括4个时钟周期(取决于 Ready 信号)。

分类

按层次结构分:CPU 总线(CPU内部的连线),系统总线(CPU 和拓展插槽的连线,比如 PCI 和 PCIe),外部总线(拓展插槽和外部设备的连线,主要是 USB)

性能指标

`总线带宽(Bps) = [位宽(bit)/8] * 工作频率(MHz)

Share

You may also like...

发表评论