- 2.1.1 功能特性
- 2.1.2 体系结构
- 2.1.3 寄存器、主存、io结构
- 寄存器结构
- 主存结构:双体结构
- 主存结构:分段结构
- 2.1.4 8086芯片引脚
- 共用引脚
- 最小模式下的引脚
- 最小模式下的总线构成
- 标准的总线读写时序
- 8088电路图
- 最大模式的引脚
- 2.2-2.3 Intel多核处理器(酷睿处理器)
2.1.1 功能特性
概念区分:
冯诺依曼结构 | 指令和数据统一编址 |
---|---|
哈佛结构 | 指令和数据不统一编制 |
RISC | io和主存统一编制 |
SISC | io和主存不统一编址 |
分段方式
段寄存器<<4 + 偏移寄存器:寻址范围是 \(2^{20}\)=1MB
为什么接口不分段:因为没有那么多接口需要寻址,所以 \(2^{16}\)=64KB 已经够用了
2.1.2 体系结构
BIU负责io:取址,读写内存
EU负责执行
二者相互独立,由于有指令队列作为缓冲,可以并行
2.1.3 寄存器、主存、io结构
寄存器结构
PSW各个bit的含义
DF:决定批量数据传输的方向
IF:中断允许标志位,用来开关中断
TF:单步中断标志位,用于单步调试
上述标志位在图中标为绿色,是需要手动置位的,起控制作用
其他标红的标志位,是计算之后自动置位的,可以看做是计算结果的一种反馈
例子:
细节: 0B5H
表示十六进制的B5,加0视为了不让编译器把B5看成变量名(变量名不能以数字开头)
主存结构:双体结构
8086的双体存储结构和80386的多体存储结构,本质都是是位拓展
为什么要设计双体结构:希望让8086既支持16位的读写,也支持8位读写
如果只有一个存储体,由于地址线是16位,那么传送16位数据时,必然会读写16位,这在读的时候没有问题,舍弃不要的位就可以了;但是在写的时候,必然会写入8位不该写入的数据
如果将存储体分成两个8位的奇偶存储体,再加上片选信号,读写8位地址时,只选择其中的一片存储体;读写16位地址时两个全选,就可以同时支持8位地址和16位地址的读写
根据左图不难发现,区分奇偶存储体后,字节地址的最后一位就可以作为片选地址
片选信号低电平有效:
读写8位信号 | 非BHE = A0的非,偶地址就取偶存储体,奇地址就去奇存储体 | 1个时钟周期 |
---|---|---|
读写16位偶信号 | 非BHE = A0,两个存储体同时选中 | 1个时钟周期 |
读写16位奇信号 | 非BHE = A0的非,第一次先取奇存储体的8位,第二次BHE和A0取反,取偶存储体的8位 | 2个时钟周期 |
主存结构:分段结构
-
显示缓冲区:演示见ppt视频
2.1.4 8086芯片引脚
共用引脚
地址线20根(1MB寻址),数据线16根:
地址线的低16位与数据线复用,高四位与状态线复用
最小模式/最大模式:当8086有搭配其他协处理器【数值运算协处理器8087,输入/输出协处理器8089.】时,工作在最大模式,否则最小模式
NMI:中断控制引脚,用来表明不可拒绝的中断
INTR:中断控制引脚,标志位IF=1,才会响应
但INTR这一个引脚怎么控制多个外设的中断呢?外接中断控制器
- 外设来中断后,中断控制器进行中断判优,然后通过INTR告诉8086
- 8086如果开中断,就响应,发出应答信号INTA【INTA是两个负脉冲,第一个表示8086已经准备就绪,第二个脉冲发出后】
- 中断控制器把对应的中断向量码通过D0~D7发给8086
- 8086响应,把结果通过D0~D7返回
BHE:片选信号【见双体结构】
TEST:和数学协处理器8087交互计算数据的引脚
READY:见后文【需要结合时序来讲】
最小模式下的引脚
8088由于外部总线是8位,所以低八位地址线与数据线复用,高八位地址线与状态线复用,相比于8086,中间的8位没有使用
- RD、WR + M/IO :控制内存/io的读/写
- ALE:地址锁存信号
- DT/R、DEN:驱动控制信号
为什么需要地址锁存:地址线和数据线复用
SARM【内存】在读写的时候要地址线要始终保持,但是数据线和地址线又是复用的,所以需要把地址锁存起来,ALE就是表明外部输入的现在是要锁存的地址,还是要存入的数据
常用锁存器:74LS373、74LS374、74LS273
-
图
OE:使能
LE:输入一个高电平则锁存LE变成上升沿有效,其他同373
没有高阻状态,即没有LE,左边的数据直接锁存到右边,多出来的引脚用作清零端CLR
为什么输入输出需要驱动:保证负载可用
交流负载:小电容越并越大,变成一个对地的大电容,相当于接入了一个低通滤波器
驱动既可以带动直流负载也可以带动交流负载
驱动器和缓冲器一般是同一种器件:只是描述的侧重点不同,驱动器重在强调驱动作用;缓冲器重在强调保护隔离作用(即使带负载能力不够把元件烧了,烧的也是缓冲器而不是CPU)
常用驱动:LS244【单向】,LS245【双向】
74LS244
74LS245
-
图片
DIR=1:数据由A到B,否则反之
OE:使能
最小模式下的总线构成
地址(21条线,BHE也算)需要锁存【373】,数据(16条线)需要双向驱动【245】,控制信号(不超过8条线)只需要单向驱动【244】
标准的总线读写时序
为了简单起见,以8088为例
-
T1:地址锁存
ALE变为高电平,地址锁存。IO/M为低,表明是对主存进行操作,DT/R为低,表明是要读主存
-
T2:读取主存
RD为低,此时读主存的动作才真正开始,DEN为低,进行主存向cpu的数据传输
-
T3:检查Ready信号,如果为0,说明不“ready”,继续等待,否则开始T4
-
T4:各个线电平复位,RD变为高电平的同时,cpu取走从主存中读到的数据
当一些外设的读取速度较慢的时候,就可能不“ready”,此时cpu要继续等待
8088电路图
8088中间8位地址线没有使用,所以只需要2片373锁存
图中数据线和控制线的驱动没有画上,画上的话需要1片245,一片244
详情图片见ppt64页
最大模式的引脚
最大模式由于要和其他写出来配合,最需要解决什么问题?io口不够的问题
引出总线读写控制接口(S2~S0)外接总线控制器8288,实现io口的扩展
2.2-2.3 Intel多核处理器(酷睿处理器)
不考
详情见ppt95页