学习笔记——微机原理8086/88总线操作、时序、存储结构
微机原理学习笔记
目录
一、时序
是指信号高低电平(有效或无效)变化及相互间的时间顺序关系,微型计算机的时序一般分为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条地址线,最大可寻址空间为=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)两个字的概念
对准好的字也就是规则字,是从偶地址开始的字,高对高,低对低。经历一个总线周期。
未对准好的字也就是非规则字,是从奇地址开始的字,高对低,低对高。此时会经历两个总线周期。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)