问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

8086处理器存储器组织方式详解:奇偶分区与总线结构

创作时间:
作者:
@小白创作中心

8086处理器存储器组织方式详解:奇偶分区与总线结构

引用
CSDN
1.
https://m.blog.csdn.net/m0_67313306/article/details/143725348

本文主要讨论了8086处理器的存储器组织方式,特别是存储器的奇偶分区。文章从总线的概念入手,详细介绍了地址总线、数据总线和控制总线的功能,并进一步解释了字信息的存放规则、规则字与非规则字的区别,以及奇偶存储体的划分和选择机制。

相关总线的概念

总线是CPU与其他部件传输信息的线路。英文叫做BUS,可以类比公交车,不同公交车有规定的线路,作用是运输people,组成了一个大的交通线路。引脚与引脚之间也会有固定的路线,传输的是信息,这些线路形成了总线结构。

总线根据传送的信息,可以进行分类:

  • 地址总线(AB, address bus)
  • 数据总线(DB, data bus)
  • 控制总线(CB, control bus)

下面对它们做一个简要介绍。

地址线

地址线用于寻址。设条数为n,一般可存储2^nB的存储空间。地址是电脑中存储信息的位置编号,将这些位置用数字命名,也就是进行编号,形成了不同地址,编号就是地址码。

CPU与寄存器、存储器,外设的连接,需要判断连接的是哪个部件。如果要进行数据传输,需要知道是哪个区域,再对其进行操作,也就是要寻找到正确的单元。因而,会有一类线路,代表CPU到达各单元的走向,最终定位到要操作的信息的位置,这个过程,叫做寻址。这类线路,从用户角度看,进行着关于地址的操作,像是在传送地址码信息,故叫做地址总线。

数据线

数据线用于传送信息。地址线最终定位到的位置,就是某个存储单元,这个单元存放着0与1组成的信息。如果是一位存储单元,就只能存放0或1两种信息,如果是4位呢?自然就可以形成2^4种情况的信息。

既然寻着地址找到了单元,自然是要读取这些信息,或者送过来信息覆盖原来信息,换句话说,就是为了读写数据。有一类线路专门用于传输数据信息,这类线路就是数据线。当然,为了节省材料,可以考虑把数据线和地址线公用,前一时刻传送地址,下一刻再传送数据。

一个存储单元,有多少位,一次就可以传送多少位的信息,这每个位都是并行的。

控制线

有的时候,这块区域不允许读取、写入操作,或者说,寻址的时候,不在地址范围内,信号被屏蔽,CPU就会只去寻找那些没被隐藏的线路,从而找到最终的单元。

对于存储的控制信号,主要有:读信号、写信号、片选信号等。

字信息的存放

对于8086,虽然是16位处理器,但是其存储器却是按照字节组织的,即,最小存储单元为1Byte = 8位,因此,编址的时候,一个字节有唯一的一个地址。

8086又有20条地址线,所以可以寻址1MB(2^{20}B)的存储空间。

字节与字节的存放

一般而言,存放的8位信息,就按照地址递增的顺序存放即可,一个地址一个字节。而如果是字的存放,就要占据2个地址了,低8位字节放在低地址,高8位放在高地址中。

规则存放与规则字

对于存放的字(16位),低位字节的地址若是偶数,这种存放方式称为规则存放,而这种情况下,被存放的字信息也被叫做规则字。反之,可得出非规则存放与非规则字的概念。

对于,规则字的读取,我们可以一次就取完,非规则字却需要分两次,因为我们一次按字的读写,总是从偶地址开始的。

奇偶存储体

8086是按字节组织的存储器,但是8086本身却是16位的,所以我们只需要,将两个8位的并在一块,就可以形成16位的,这样,既满足按字节组织,又可以实现一次16位的读取。

所以8086的1MB的存储空间,实际上被分为了两个512KB的存储体,又称存储库。16位的8086就会低8位对应一个库,高8位对应一个库,如果是一个字(16位),就会对应两个库。

其中,低位库中的每一个地址都是偶数地址,高位库的每个地址是奇数。

这也不难理解,存储器按字节组织,地址的最低值一般为00H,那么下一个地址是01H,而8086是16位的,按道理,一次读写是两个字节,因此会将两个并排地址的字节形成一个字,而这个字的地址自然是以低字节地址为准,为表示出是字读取,地址前面补两个0即可,即0001H。

这样一来,为何规则字的读取只需一次,非规则字(低地址为奇数)却需要两次,也就显而易见了。

奇偶存储体的片选

什么时候读偶存储体,什么是时候读奇存储体,从指令上,我们可以很容易理解。背后的硬件又是什么机制?限于篇幅,不做深入的分析,不过,当我们学完存储器的相关专业知识,自然就会理解了。这里,只简单提及奇偶库的选择。

8086CPU是通过两个引脚输出信号,以控制奇偶存储库的选择的,这两个引脚为BHE与A0。其中,带上划线的表示低电平有效,低电平触发的意思,所以,BHE置0有效,A0置1有效。

但是存储器的片选端CE通常是低电平使能的,因而,存储器与CPU直连的设计下,CPU的输出信号,通常就以输出0为选择标准,除非不是直连,中间加了一些逻辑。

这样,下表的记忆也会更容易理解。两者组合会出现4种情形,8086对之进行了约定:

BHE
A0
选择
0
0
偶存储体
0
1
奇存储体
1
0
偶存储体
1
1
奇存储体
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号