首页 理论教育 微型计算机总线接口的作用和任务

微型计算机总线接口的作用和任务

时间:2023-11-03 理论教育 版权反馈
【摘要】:运算器实现了微处理器中的数据处理,寄存器提供数据暂存的能力,而微处理器和外界之间的数据联系则需要依赖于微处理器的总线接口。总线接口最重要的任务就是驱动和控制这些外部总线,从而实现数据的传送和对整个微型计算机系统的控制。总线接口部件对内经内部总线与EU相连接,完成片内数据与指令代码的传送。

微型计算机总线接口的作用和任务

运算器实现了微处理器中的数据处理,寄存器提供数据暂存的能力,而微处理器和外界之间的数据联系则需要依赖于微处理器的总线接口。总线接口负责提供微处理器与处理器总线(或者称为前端总线)之间的数据传输与控制接口,实现向处理器提供待处理的数据和将处理结果传送出来的功能。总线接口一般由输入/输出控制电路(或者称为总线控制电路)及相关寄存器、地址生成器与存储管理部件、指令指针寄存器、指令缓冲队列、高速缓存控制器等组成。

微处理器是整个微型计算机的核心,负责控制整个微型计算机系统的运转,所以微处理器必须将相关的信号传递到微型计算机的其他部分,从而控制数据在微型计算机系统中的传输与存储。这些信号可以分成三类:用于指定数据传输位置的地址信号,用于控制微型计算机系统其他部件运行的控制信号和实际承载数据的数据信号,即我们常说的地址总线、控制总线和数据总线。总线接口最重要的任务就是驱动和控制这些外部总线,从而实现数据的传送和对整个微型计算机系统的控制。

在8086微处理器中,BIU实际上就是总线接口部件,它对外负责与存储器、I/O接口电路连接,形成并驱动片外的地址总线和数据总线,实现数据的传送。总线接口部件对内经内部总线与EU相连接,完成片内数据与指令代码的传送。BIU由一组专用寄存器、指令队列缓冲器、地址加法器等功能部件组成。

●段寄存器:8086有四个16位的段寄存器,在寻址内存单元时提供段地址。

■代码段寄存器CS(Code Segment):用来存放当前将被执行的程序代码的段地址。

■数据段寄存器DS(Data Segment):用来存放当前被执行的程序所使用的操作数的段地址。

堆栈段寄存器SS(Stack Segment):用来存放当前被执行的程序所使用的堆栈的段地址。

■附加段寄存器ES(Extra Segment):用来存放当前被执行的程序所使用的操作数的段地址,和DS的功能类似。

●指令指针寄存器IP(Instruction Pointer):16位寄存器,用来存放将要执行的下一条指令地址的偏移量,和CS联合形成下一条指令的物理地址。(www.xing528.com)

●地址加法器:用于计算指令的物理地址。8086具有20位的地址码,而其寄存器的宽度只有16位,无法存放20位的地址码。为了解决这个矛盾,8086内部设置了一个20位的地址加法器,将16位的段地址左移四位(由CS、DS、SS或ES提供)并与16位的偏移地址相加,得到20位的物理地址。这就是8086的存储器分段管理。

●指令队列缓冲器:8086的指令队列缓冲器是一个6字节深度的先入先出缓冲器,用来实现8086的指令预取功能。只要执行部件不使用指令接口部件与片外进行数据传送,总线接口部件就可以从存储器中读取指令填充指令队列缓冲器。8088同样具有指令队列缓冲器,只是其深度只有4字节。

●输入/输出控制电路:输入/输出控制电路是处理器与外部总线之间的接口,它控制8086总线周期,首先将地址加法器生成的20位地址码经地址线送到片外,然后再通过数据总线进行操作数或指令代码的传输。

存储管理与地址生成是总线接口部件的一个重要功能,所有的存储器访问指令都必须通过总线接口部件根据一定的存储管理策略完成物理地址的生成,并驱动外部总线实现存储器的访问。不同的微处理器地址线的数量不同,也就具有不同的物理地址寻址范围。一般来讲,一个具有N条地址线的微处理器物理地址的寻址范围为2N字节。对于8086微处理器来讲,其地址线为20条,相应地其寻址范围为220=1M字节,而8086/8088微处理器内部的各寄存器的宽度都是16位,不足以表示寻址1MB所需要的20位的地址码。为了解决这一矛盾,8086/8088引入了分段的存储器管理方法。

8086/8088分段式存储器管理的具体做法是:把1MB的存储空间分成若干段(最多64K段),每段容量64 KB,段和段之间可以重叠,每段存储器的起始地址必须是一个能够被16整除的地址码,即20位二进制物理地址的低4位必须为0。由于每段的容量最大是64 KB,16位的地址码足以完成在段内偏移量的表示,而且还有利于保持和以前的8位处理器16位地址码表示的兼容。另外,存储器分段后,每一段要有一个段号,用16位二进制数表示。实际上,每段段首地址的高16位就是该段的段号(称段基地址,或简称段地址)。段号保存在8086/8088微处理器内部的CS、DS、SS和ES四个16位段寄存器中,可以对段寄存器设置不同的值来使微处理器的存储器访问指向不同的段。存储器各段之间可以是连续相接的,不连续相接的,也可以是段之间互相重叠的,但是,所有的段首地址必须是16的整数倍。

在8086/8088微处理器中,描述存储器地址时经常用到三个相关的术语:物理地址、偏移地址和逻辑地址。物理地址是8086/8088芯片通过地址引线送出的20位地址码,它用来参与存储器的地址译码,最终读写所访问的一个特定的存储单元。偏移地址指的是某段内的某个存储单元相对于该段段首地址的差值,用16位二进制数表示。逻辑地址是在程序中对存储器地址的一种表示方法,由某段的段地址和段内偏移地址(或称偏移量)两部分组成,写成“段地址:偏移地址”(如1234H:FEDCH)。在硬件上真正起作用的是物理地址,物理地址的形成可以用公式表示为:物理地址=段基地址×16+偏移地址。在实际运行过程中,8086/8088在20位地址加法器中形成物理地址,首先将16位段基地址送到加法器的高16位中(相当于将段基地址左移4位),再将偏移地址累加到20位地址加法器的低16位上去,得到20位的物理地址。(见图2-12)

978-7-111-46342-9-Chapter02-31.jpg

图2-12 8086物理地址的形成

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈