目录

一、时序

1.时钟周期

(1)等待状态

(2)空闲状态

2.总线周期

3.指令周期

二、总线操作

1.8088系统存储器读总线周期

2.8088系统存储器写总线周期

3.8088系统I/O端口读总线周期

4.8088系统I/O写总线周期

5.8086系统读和写总线周期

 6.其他

(1)启动/复位

三、存储结构

1.数据的存储格式

(1)计算机中信息的单位

(2)88、86系统存储器的容量及格式

(3)多字节数据的存放方式

2.88、86CPU存储器的分段管理

(1)概念

(2)逻辑地址的组成及转换

(3)如何分配各个逻辑段

3.8086系统中存储器的分体结构

(1)为什么采用分体结构?

(2)如何划分奇偶体

(3)两个字的概念


一、时序

是指信号高低电平(有效或无效)变化及相互间的时间顺序关系,微型计算机的时序一般分为3级:时钟周期、总线周期和指令周期。

1.时钟周期

时钟频率的倒数,用“T状态”表示,总线周期中的时钟周期默认为T1、T2、T3、T4

(1)等待状态

基本总线周期需要4个时钟周期,当ready=0时,需要延长总线周期,此时ready会在T3~T4之间插入若干个等待周期TW。

(2)空闲状态

CPU进行内部操作,没有对外使用总线的操作,引脚会处于空闲状态。

2.总线周期

CPU通过总线操作与外部存储器或I/O端口进行一次数据交换的时间,88/86的读或写总线周期至少需要4个时钟周期也就是需要800ns的时间(一个时钟周期为200ns)

3.指令周期

从取指到执行完成一条指令的时间,一个指令周期由若干个总线周期组成。


二、总线操作

是指CPU通过总线对外设的各种操作。

1.8088系统存储器读总线周期

 以此图为例,在8088系统存储器读总线周期时,CLK脚运行

(1)IO/杠M:全局低电平无效,因为此操作是在读存储器。

(2)A19/S6~A16/S3:T1~T2是A19~A16,T2~T4是S3~S6

(3)A15~A8:T1~T4有效

(4)AD7~AD0:A7~A0在T1有效,随后被ALE引脚锁存,缓冲后T3~T4装载D7~D0有效。

(5)ALE:锁入地址线时有效,其他时间无效。

(6)杠RD读:T2~T4前有效

(7)READY:因为没有插入等待周期,所以READY没有被触发。

2.8088系统存储器写总线周期

 以此图为例,在8088系统存储器写总线周期时,CLK脚运行

(1)IO/杠M:全局低电平无效,因为此操作是在读存储器。

(2)A19/S6~A16/S3:T1~T2是A19~A16,T2~T4是S3~S6

(3)A15~A8:T1~T4有效

(4)AD7~AD0:A7~A0在T1有效,随后被ALE引脚锁存,缓冲后T3~T4装载D7~D0有效。

(5)ALE:锁入地址线时有效,其他时间无效。

(6)杠WR写:T2~T4前有效

(7)READY:因为没有插入等待周期,所以READY没有被触发。

3.8088系统I/O端口读总线周期

 以此图为例,在8088系统I/O读总线周期时,CLK脚运行

(1)IO/斜杠M在T1~T4持有效状态,因为此操作是I/O读(高电平有效)

(2)A19~A16高四位地址线无效,T2~T4控制线S6~S3有效

(3)A8~A15在T1~T4全局有效

(4)地址线有效(A0~A7)T1有效

(5)在T2开始前,将地址线(A0~A7)锁入地址锁存器ALE,缓冲后更换数据线(D0~D7)

(6)ALE:锁入地址线时有效,其他时间无效。

(7)杠RD读:T2~T4前有效

(8)READY:因为没有插入等待周期,所以READY没有被触发。

4.8088系统I/O写总线周期

 以此图为例,在8088系统I/O写总线周期时,CLK脚运行

(1)IO/斜杠M在T1~T4持有效状态,因为此操作是I/O读(高电平有效)

(2)A19~A16高四位地址线无效,T2~T4控制线S6~S3有效

(3)A8~A15在T1~T4全局有效

(4)地址线有效(A0~A7)T1有效

(5)在T2开始前,将地址线(A0~A7)锁入地址锁存器ALE,缓冲后更换数据线(D0~D7)

(6)ALE:锁入地址线时有效,其他时间无效。

(7)杠WR读:T2~T4前有效

(8)READY:因为没有插入等待周期,所以READY没有被触发。

5.8086系统读和写总线周期

 6.其他

(1)启动/复位

86、88CPU的reset引脚用来使CPU复位和启动,被复位后,PSW、DS、ES、SS和其他寄存器被清零,指令队列也被清零,段寄存器CS和指令指针IP分别被初始化为0FFFFH和0000H。


三、存储结构

1.数据的存储格式

(1)计算机中信息的单位

位bit

字节Byte:8位=1B

字Word:16位=2B=1字

双字DWord:32位=4B=2字

(2)88、86系统存储器的容量及格式

它们有20条地址线,最大可寻址空间为2^2^0=1MB,物理地址范围从00000H~FFFFFH,一个字节的存储单元为8个存储单元即D0~D7。

(3)多字节数据的存放方式

在存储器中占连续的多个存储单元,存放时,采用低对低、高对高的存储形式,被称为“小端方式”,在表达时,用它的低地址表示多字节数据占据的地址空间。



2.88、86CPU存储器的分段管理

 有20条地址线、将1MB空间分为4个逻辑段、一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址。

(1)概念

物理地址:是CPU访问内存的实际地址,是20位即A0~A19,地址范围为00000H~FFFFFH也就是实际地址,转换为物理地址需要段地址*16+偏移地址。

逻辑地址:是用户在程序中使用的地址,是16位,逻辑地址是由段地址(DS、ES、CS、SS)和偏移地址(BX、SI、DI、BP、IP)组成

(2)逻辑地址的组成及转换

由段地址和偏移地址组成,段地址是4个逻辑段在主存中的起始位置,段地址用16位段寄存器保存段地址。偏移地址是主存单元距段起始位置的偏移量,每段不超过64KB,偏移地址用16位数据表示,物理地址转换的公式为:物理地址=段地址*16+偏移地址(在BIU的物理地址加法器中形成)。一个物理地址可以具有多个逻辑地址。

(3)如何分配各个逻辑段

程序的指令序列必须安排在代码段:CS:IP

程序使用的堆栈一定在堆栈段:SS:SP/BP

程序中的数据默认是安排在数据段:DS:EA

串操作的目的区必须是在附加段:ES:EA

3.8086系统中存储器的分体结构

(1)为什么采用分体结构?

存储体是以8位(1个字节)为基本存储单位,访问一个字节时,8086只用16位数据线中的8位,访问一个字时,16位数据线的高8位和低8位同时访问两个存储单元,提高了CPU的工作效率。

(2)如何划分奇偶体

在8086系统中,将总容量为1MB的存储器分为奇地址存储体和偶地址存储体,各为512KB。

奇体与高8位(D15~D8)相连;偶体与低8位(D7~D0)相连,选择奇体还是偶体由信号杠BHE、A0决定。

杠BHE=0,A0=1选择奇体。

杠BHE=1,A0=0选择偶体。

(3)两个字的概念

对准好的字也就是规则字,是从偶地址开始的字,高对高,低对低。经历一个总线周期。

未对准好的字也就是非规则字,是从奇地址开始的字,高对低,低对高。此时会经历两个总线周期。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐