版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.18086微处理器
2.280286微处理器 2.380386和80486微处理器
2.4本章小结
习题与思考题
80X86微处理器系列是美国Intel公司从20世纪70年代开始研制的微处理器系列的总称。8086是Intel系列微处理器中具有代表性的高性能16位微处理器,后续推出的各种微处理器均保持与其兼容。8086微处理器采用HMOS工艺技术制造,外型封装为双列直插式,有40个引脚。图2.1所示为一款8086处理器的实物图。80X86系列微处理器的主时钟频率有4.77MHz、5MHz、8MHz和10MHz几种。2.18086微处理器
8086微处理器内部采用16位数据通路和流水线结构,从而允许其在总线空闲时预取指令,使取指令与执行指令实现了并行操作。8086有20位地址线,可直接寻址的空间达1MB。格式灵活、功能完善的指令系统不仅为程序设计带来方便,而且可对多种数据类型进行处理。8086支持多处理器系统,可方便地与协处理器8087和I/O处理器8089相连,组成多处理器系统,大大提高了系统的数据处理能力。本节将对8086微处理器的内部结构、最小系统、外围电路等内容进行介绍。图2.18086微处理器2.1.18086微处理器的内部结构
Intel8086微处理器属于第三代微处理器,具有20条地址线和16条数据总线,内部总线和ALU(ArithmeticLogicUnit)均为16位,可进行8位和16位操作,除去逻辑上多出8位地址线外,与8088完全相同。8086微处理器采用不同于第二代微处理器(8080、Z80)的一种全新结构形式,由两个独立的单元组成,一个称为总线端口单元(BusInterfaceUnit,BIU),另一个称为执行单元(ExecutionUnit,EU),其功能框图如图2.2所示。图中,虚线右半部分是BIU,左半部分是EU。两者并行操作,提高了CPU的运行效率。图2.28086CPU的功能结构
1.执行单元(EU)
EU的功能是执行指令,即负责全部指令的译码和执行,同时管理CPU内部的有关寄存器。EU由一个16位的算术逻辑运算单元(ALU)、16位的标志寄存器(实际仅用9位)、八个16位的寄存器以及数据暂存器和EU控制器等组成。
1)算术逻辑运算单元
ALU是一个16位的运算器,可用于8位或16位二进制算术运算或逻辑运算,运算结果可通过片内总线送到通用寄存器或标志寄存器,还可经BIU写入存储器。16位的暂存器用来暂存参加运算的操作数。
2)标志寄存器
标志寄存器也叫程序状态字(PSW)寄存器,简称状态寄存器。标志寄存器的作用是存放ALU运算后的结果特征或机器运行状态,长16位,实际使用了9位。
3)通用寄存器组
通用寄存器包含八个16位的寄存器,按功能分为两组。一组包括AX、BX、CX和DX四个寄存器,称为通用数据寄存器,用来存放操作数或地址。其中,AX又称为累加器。另一组包括DI、SI、SP和BP四个寄存器,每个寄存器分别有各自的专门用途,故称为专用寄存器。其中,SI称为源变址寄存器;DI称为目的变址寄存器;SP称为堆栈指示器,即堆栈指针;BP为对堆栈操作的基址指示器,BP中存放的是堆栈段中某一存储单元的偏移地址。
4) EU控制器
EU控制器的作用是从BIU的指令队列中取指令,并对指令进行译码,根据指令要求向EU内部各部件发出相应的控制命令,以完成每条指令所规定的功能。因此,它相当于传统计算机CPU中的控制器。EU的工作就是执行指令,并不直接与外部发生联系,而是从BIU的指令队列中源源不断地获取指令并执行,省去了访问存储器取指令的时间,提高了CPU的利用率和整个系统的运行速度。如果在指令执行过程中需要访问存储器或需要从I/O端口取操作数,则EU向BIU发出操作请求,并将访问地址(有效地址EA)送给BIU,由BIU从外部取回操作数送给EU。当遇到转移指令、调用指令和返回指令时,EU要等待BIU将指令队列中预取的指令清除,并按目标地址从存储器取出指令送入指令队列后,EU才能继续执行指令。这时,EU和BIU的并行操作显然要受到一定的影响,这是采用并行操作方式不可避免的,但只要转移指令、调用指令出现的概率不是很高,EU和BIU间既相互配合又相互独立工作的工作方式仍将大大提高CPU的工作效率。
2.总线端口单元(BIU)
BIU是8086微处理器在存储器和I/O设备之间的端口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU完成的。所有对外部总线的操作都必须有正确的地址和适当的控制信号,BIU中的各部件主要是围绕这个目标设计的。BIU提供了16位双向数据总线、20位地址总线和若干条控制总线,其具体任务是:负责从内存单元中预取指令,并将其送到指令队列缓冲器暂存。
CPU执行指令时,BIU根据指令的寻址方式通过地址加法器形成指令在存储器中的物理地址,然后访问该物理地址所对应的存储单元,从中取出指令代码,送到指令队列缓冲器中等待执行。指令队列一共有六个字节,一旦指令队列中空出两个字节,BIU就自动进入读指令操作,以填满指令队列;遇到转移类指令时,BIU将指令队列中的已有指令作废,从新的目标地址中取指令送到指令队列中;EU读/写数据时,BIU将根据EU送来的操作数地址形成操作数的物理地址,从内存单元或外设端口中读取操作数或者将指令的执行结果传送到该物理地址所指定的内存单元或外设端口中。
BIU主要由四个段寄存器、一个指令寄存器、一个与EU通信的内部寄存器、先入先出的指令队列、总线控制逻辑和计算20位物理地址的地址加法器组成。四个段寄存器分别称为代码段寄存器(CS)、数据段寄存器(DS)、堆栈段寄存器(SS)和附加数据段寄存器(ES)。
1)地址加法器和段寄存器
8086微处理器的20位物理地址可直接寻址1MB存储空间,但CPU内部寄存器均为16位寄存器。20位的物理地址是由专门的地址加法器将有关段寄存器内容(段的起始地址)左移4位后,与16位的偏移地址相加得到的。如在取指令时,由16位指令寄存器(InstructionPointer,IP)提供一个偏移地址(逻辑地址),在地址加法器中与代码段寄存器(CS)内容相加,形成20位物理地址,送到总线上。
2) 16位指令寄存器
指令寄存器用来存放下一条要执行指令的偏移地址EA(也叫有效地址)。IP只有和CS相结合,才能形成指向指令存放单元的物理地址。在程序执行过程中,IP的内容由BIU自动修改,通常是进行+1修改,当EU执行转移指令或调用指令时,BIU装入IP的则是目标地址。
3)指令队列缓冲器
指令队列缓冲器的作用是预存BIU从存储器中取出的指令代码。当EU正在执行指令,且不需要占用总线时,BIU会自动地进行预取指令操作。8086的指令队列大小为6个字节,可按先后次序依次预存6个字节的指令代码。该队列缓冲器按“先进先出”的方式工作,并按顺序取到EU执行。其操作遵循以下原则:
(1)每当指令队列缓冲器中存满一条指令后,EU就立即开始执行。
(2)每当BIU发现队列中空了两个字节时,就会自动地寻找空闲的总线周期进行预取指令的操作,直至填满为止。
(3)每当EU执行一条转移、调用或返回指令后,BIU就会清除指令队列缓冲器,并从新地址开始预取指令,实现程序段的转移。
BIU和EU是各自独立工作的,在EU执行指令的同时,BIU可预取下一条或几条指令。因此,在一般情况下,CPU执行完一条指令后,就可立即执行存放在指令队列中的下一条指令,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。另外,也降低了对存储器存取速度的要求。
4)总线控制逻辑电路
总线控制逻辑电路将8086微处理器的内部总线和外部总线相连,是8086微处理器与内存单元或I/O端口进行数据交换的必经之路。它包括16条数据总线、20条地址总线和若干条控制总线,CPU通过这些总线与外部取得联系,从而构成各种规模的微型计算机系统。2.1.28086微处理器的最小系统
8086有两种工作模式:最小工作模式和最大工作模式。最小工作模式是指系统中只有一个中央处理器,所有的控制信号都由其产生,CPU直接控制外围部件工作,此时系统中的控制逻辑电路最小,结构最为简单明晰。而当系统规模较大时,CPU的驱动能力和系统资源产生瓶颈,此时就需要有相应的协处理器来协助CPU完成特定功能,以降低CPU的负担。因此最大工作模式时,系统中必然包含一个以上的处理器,是多微处理器系统,其中必须有一个主处理器,如8086,其他的处理器称为协处理器,如8087(数值协处理器)。在IBMPC/XT机中,CPU工作于最大组态,系统总线由CPU和8288共同管理形成,可选用协处理器8087负责数值运算。
1. 8086处理器的外部结构
微处理器作为系统的核心部件,通过引脚与整个系统构成联系,因此其外部特性主要表现在引脚上。当CPU工作于不同模式时,其部分外部引脚的定义也有所不同。如图2.3所示,8086的40个引脚中,第24~31引脚在不同工作模式下的功能定义会发生改变,其余引脚功能不变。不同的工作模式有不同的总线形成方法,差异主要表现在控制总线的形成上。
8086微处理器采用40引脚双列直插式封装,引脚结构如图2.3所示。图2.38086的引脚图在最小模式下,CPU本身提供系统所需的全部基本控制信号,其功能结构简单,易于理解,因此我们选择最小系统的实现作为学习重点。
8086处理器在最小模式下的引脚定义如下所述。
1)数据和地址功能引脚
(1) AD15~AD0(AddressDataBus):地址/数据总线,双向,三态。
地址/数据分时复用。由时钟周期决定当前总线是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高阻态。
(2) A19/S6~A16/S3(Address/Status):地址/状态信号,输出,三态。
地址/状态信号分时复用。其中,A19~A16为20位地址总线的高4位地址;S6~S3是状态信号。S6表示CPU与总线连接的情况;S5指示当前中断允许标志IF的状态;S4与S3的代码组合用来指明当前正在使用的段寄存器。S4、S3的代码组合及对应段寄存器的情况如表2.1所示。表2.1S4、S3信号组合意义
2)读写控制引脚
(1) ALE(AddressLockEnable):地址锁存允许信号,输出,高电平有效。
CPU利用ALE信号可以把AD15~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存到地址锁存器中。
(2) M/
(MemoryI/OSelect):存储器、I/O端口选择控制信号。
信号指明当前CPU是访问存储器还是访问I/O端口。为高电平时,访问存储器,表示当前要进行CPU与存储器之间的数据传送;为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。注意,8088处理器的该引脚信号与8086反相,为/IO。
(3)
(Write):写信号,输出,低电平有效。
信号低电平有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。
(4)
(Read):读信号,输出,三态,低电平有效。
信号低电平有效时,表示CPU正在进行读存储器或读I/O端口的操作。
(5) READY(Ready):准备就绪信号,输入,高电平有效。
READY信号用来实现CPU与存储器或I/O端口之间的时序匹配。当READY信号高电平有效时,表示CPU要访问的存储器或I/O端口已经做好了输入/输出数据的准备工作,CPU可以进行读/写操作;当READY信号为低电平时,表示存储器或I/O端口还未准备就绪,CPU需要插入若干个“TW状态”进行等待。
(6) DT/
(DataTransmitorReceive):数据发送/接收信号,输出,三态。
DT/信号用来控制数据传送的方向。信号为高电平时,CPU发送数据到存储器或I/O端口;信号为低电平时,CPU接收来自存储器或I/O端口的数据。
(7)
(DataEnable):数据允许控制信号,输出,三态,低电平有效。
总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。
(8)
/S7(BusHighEnable/Status):允许总线高8位数据传送/状态信号,输出,三态。
总线高8位数据允许信号。当低电平有效时,表明在高8位数据总线D15~D8上传送一个字节的数据。S7为设备的状态信号。
3)中断请求和响应引脚
(1) INTR(InterruptRequest):可屏蔽中断请求信号,输入,高电平有效。
8086CPU在每条指令执行到最后一个时钟周期时,都要检测INTR引脚信号。INTR为高电平时,表明有I/O设备向CPU申请中断,若IF = 1,则CPU会响应中断,停止当前的操作,为申请中断的I/O设备服务。
(2)
(InterruptAcknowledge):可屏蔽中断响应信号,输出,低电平有效。
CPU通过信号对外设提出的可屏蔽中断请求做出响应。为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。
4) DMA总线请求和响应引脚
(1) HOLD(BusHoldRequest):总线保持请求信号,输入,高电平有效。
在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。
(2) HLDA(HoldAcknowledge):总线保持响应信号,输出,高电平有效。
HLDA是与HOLD配合使用的联络信号。在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A控制器使用;总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。
5)电源引脚
(1) VCC:电源输入引脚。
8086采用+5V电源供电。
(2) GND:接地引脚。
6)系统引脚
(1) RESET(Reset):复位信号,输入,高电平有效。
RESET信号有效时,CPU立即结束现行操作,处于复位状态,初始化所有的内部寄存器。当RESET信号由高电平变为低电平时,CPU从0FFFF0H地址开始重新启动并执行
程序。
(2) CLK(Clock):时钟信号,输入。
CLK为CPU提供基本的定时脉冲信号。8086CPU一般使用时钟发生器8284A来产生时钟信号,时钟频率为5~8MHz,占空比为1∶3。
(3) MN/:最小/最大模式选择控制信号。
当此引脚信号为高电平(接+5V)时,CPU工作在最小模式;当为低电平(接地)时,CPU工作在最大模式。
(4)
(Test):等待测试控制信号,输入,低电平有效。
此信号用来支持构成多处理器系统,实现8086CPU与协处理器之间同步协调的功能,与WAIT指令配合使用。当CPU执行WAIT指令时,将在每个时钟周期对该引脚进行测试,如果无效则程序踏步并继续测试,当有效时,程序恢复执行。
2. 8086最小系统的构建
最小系统形成的关键在于总线系统的形成。
1)地址总线
8086的地址总线共20位:AD0~AD15,A16~A19。这20个引脚均为分时复用引脚,即这些引脚兼具多个用途,在不产生冲突的情况下,这些引脚在CPU运行过程中的不同时段承担不同的任务,这种设计可以节省引脚,简化CPU结构。如在存取过程中,CPU首先输出地址信号,然后才能对选中地址单元进行存取,这两个过程在时间上是分开的,因此可以整合到一组引脚实现。但为了保证输出地址在存取周期内的有效性,必须利用锁存器将CPU输出的地址信号及时锁存,直至该存取周期结束;在CPU锁存后,这些引脚即可释放地址,在以后的时钟周期中进行数据存取。在IBMPC/XT机中采用三片Intel8282实现20位地址总线的锁存,如图2.4所示。CPU的ALE引脚连接8282的选通控制端STB引脚,用来控制地址信号的锁存;8282的输出端
接地,恒定输出已锁存的地址信号。图2.48086最小系统的地址总线、数据总线的形成
2)数据总线
8086有16位数据总线,对应引脚AD0~AD15,与地址总线的低16位分时复用,一般通过两片8286数据收发器实现,见图2.4。数据总线的形成原理和地址总线相似,所不同的是,地址总线为单向锁存,数据总线为双向收发总线,因此在设计时稍有差异。8286的引脚与CPU的引脚相连接,用来控制CPU向总线的数据输出,有效则允许输出,无效则禁止输出;8286的T端与CPU的DT/端相连接,用于控制8286的数据收与发,高电平时,由CPU向总线发送数据,低电平时由总线向CPU发送数据。
3)控制总线
在最小系统中,控制信号由CPU直接产生,控制总线也由CPU的控制引脚直接引出。
至此,8086最小系统的总线系统已基本形成,图2.4即为最小系统的总线形成电路。图2.4所示电路是8086计算机设计的基础电路,以后的设计都将由此出发,围绕三总线结构进行设计,因此需要熟练掌握。8086最小系统的典型配置如图2.5所示。在2.1.3节中,还将对该电路用到的各类芯片和设计方法进行详细讲解。图2.58086最小系统的典型配置与IBMPC/XT机相比,8086最小系统做了一些简化,主要包括:
(1)简化处理器子系统,去掉了8087协处理器。在实际应用中,8087协助8088微处理器进行部分数学运算,从而减轻其负担。在本书的学习中,出于降低学习者负担的考虑,去除了8087协处理器,以简化电路。
(2)简化了总线控制子系统,去掉了译码逻辑。在实际应用中,考虑到控制总线的扩展和驱动能力,一般采用译码逻辑对CPU直接控制信号进行译码。控制信号的转换往往使初学者感到迷茫,因此在本书的学习中,将采用CPU控制信号(控制总线)直接驱动被控设备,以简化理解。2.1.38086微处理器的外围电路
由图2.5可以看出,8086微处理器最小系统的外围电路主要由三部分组成,分别是时钟发生器8284、地址锁存器8282和数据收发器8286。其中,由于8086有20条地址线、16位数据线,因此需要三片8位锁存器8282进行地址锁存,两片8位8286进行总线数据收发。
1.时钟发生器8284
8086/8088CPU的内部没有时钟发生器,因而其内部和外部的时间基准信号是由外部从其时钟输入端CLK提供的,而CLK时钟信号由外部的时钟发生器8284产生并驱动。
在8284中,除具有时钟信号发生电路外,还有RESET复位信号和准备就绪READY信号控制电路。这些电路分别向8086/8088CPU提供时钟信号CLK以及与CLK同步的复位信号RESET和准备就绪信号READY。此外,还可向外提供晶振时钟OSC以及外部设备或外围芯片的时钟信号PCLK。
图2.6所示为8284时钟发生器的外部引脚和它与CPU间的连接图。图2.68284及其与8086/8088的连接图(a)8284引脚;(b)8248与8086的连接
(1)时钟信号发生电路:8284内的时钟信号发生电路由晶体振荡器和分频电路组成。供给8284的振荡源有两种选择。一种是选择外部脉冲信号发生器作为振荡源。这时只要将外接的脉冲信号发生器的输出端和8284的EFI(外加频率输入)相连,F/接高电平即可,外加脉冲源经内部分频产生响应的时钟信号(CLK、PCLK、OSC)。另一种选择是利用其内部晶体振荡器作为振荡源,这时晶体振荡器要求在X1、X2端外接一个晶体,其频率应是CPU时钟频率的三倍,以控制(决定)振荡器的时钟频率。这时要求F/为低电平。由晶体振荡器产生的脉冲信号经内部分频电路三分频后成为占空比为33%的时钟信号CLK。微机中通常采用后一种方法。无论采用哪一些方法选择振荡源,8284最后输出的时钟频率均为振荡源频率的1/3。
(2) READY信号:准备就绪信号,输出,高电平有效。外界的准备好信号RDY输入8284,经CLK的后沿同步后,从8284输出并送入CPU的READY引脚。
(3) RESET信号:复位信号,输出,高电平有效。由外界的复位信号输入8284,在内部经CLK后沿同步后,从8284输出并送入CPU的RESET引脚,作为CPU的复位信号。
由READY和RESET两信号可知,从外部来说,可以在任何时候发出这两个信号,但经8284的CLK时钟的后沿同步后才输出,即送入CPU的READY和RESET信号是经过同步的、具有一定定时关系的信号。
(4) CLK:时钟信号,输出。CLK是8284供给CPU或与系统总线相连的其他设备的时钟信号,CLK的频率为晶体频率或EFI外加输入频率的1/3,其占空比为1/3(33%),输出电平与MOS电路电平兼容。
(5) PCLK:供外设或外部电路用的时钟,输出。PCLK的输出频率为CLK的1/2,占空比为50%,输出为TTL电平。
2.地址锁存器8282/8283图2.78282的引脚图
8086/8088CPU的地址/数据总线(AD15~AD0)是分时复用总线,即CPU在与存储器或I/O端口进行数据交换时,总是在T1状态首先送出访问存储器或I/O端口的地址信息,随后又用这些引脚来传送数据和状态信号,而在对存储器或I/O端口进行读/写操作时,要求在这个读/写总线内保持地址稳定。因而,必须在总线周期的T1状态先将地址锁存起来,以便在读/写总线周期内保持地址稳定。8086/8088CPU利用T1状态中的ALE信号的下降沿将地址锁入地址锁存器中。
8282/8283是带有三态缓冲器的8位数据锁存器,两者的区别仅仅是输出极性不同,8282的输出与输入极性相同,而8283的输出与输入极性相反。图2.7所示是8282的引脚图。
图中,DI7~DI0为8282的数据输入端;DO7~DO0是8282的数据输出端;STB为数据锁存端或数据选通信号;是数据输出允许端。当数据选通信号STB为高电平时,DI7~DI0上的输入数据送入锁存器中(此间D触发器的输出端Q随输入信号DI7~DI0的变化而变化,尚未锁住),输出信号DO7~DO0处于高阻态;当STB由高变低出现下降沿时,输入数据真正锁入D点触发器中。在STB为低电平期间,触发器状态不会受DI7~DI0变化的影响。当输出允许信号为低电平(有效)时,三态缓冲器允许锁存器中的信息输出,锁存的数据(地址信息)即放在8282的输出引脚DO7~DO0上。图2.78282的引脚图在8086/8088微机系统中,用地址锁存信号ALE作为8282/8283的数据选通STB的输入,在总线周期的T1状态中锁存地址信息,从而保证在整个总线周期内向存储器或I/O端口提供稳定的地址信息。此外,锁存器8282/8283具有三态输出缓冲器,能驱动系统地址总线并有三态隔离的作用。
由于8086/8088系统中需要锁存的地址信号为20位,加上
信号(它在整个总线周期也应该保持有效),因此共需三片8282/8283芯片。这三个芯片的STB端并连,并与CPU的ALE引脚相连。在不带DMA控制器的最小模式系统中,接地。8位锁存器74LS373的功能与8282/8283相同,也可实现上述地址锁存功能,IBMPC/XT机中用的就是74LS373。
3.数据收发器8286/8287图2.88286的引脚图
当数据总线上连接的设备(存储器及I/O设备)较多时,为使系统能够稳定地工作,应提高系统数据总线的电流驱动能力和承受容性负载的能力。这时,数据总线和CPU之间应接入双向数据缓冲器/驱动器。为了提高8086/8088CPU数据总线(AD0~AD15)的驱动能力和承受容性负载的能力,在CPU与系统数据总线之间接入了8位双向数据收发器8286/8287。
8286/8287是一种具有三态输出的8位双向数据收发器/驱动器,具有很强的数据驱动能力。图2.8所示为8286数据收发器的外部引脚图。
8286内部具有一个8位双向缓冲电路,每一路双向缓冲电路都由两个三态缓冲器反向并联组成,以便实现8位数据的双向传送。8287的内部连接与8286基本相同,所不同的只是它内部的每一个三态缓冲器都具有反相功能,因此8287的输入和输出是相反的,其他与8286完全一样。由于8086为16位数据总线而8088为8位数据总线,因此,8086系统中用两片8286/8287,8088系统中用一片8286/8287。图2.8中,A0~A7和B0~B7为8286的8位双向输入/输出数据线。
8286有两个控制信号:数据传送方向控制信号T和输出允许信号(低电平有效)。它们经过两个或非门产生对正向和反向缓冲电路的控制信号。
和T的控制作用:当为高电平时,缓冲器呈高阻抗状态,8286在两个方向上都不能传送数据。当为低电平,T为高电平时,A7~A0为输入端,B7~B0为输出端,即实现A→B;当为低电平,T为低电平时,A7~A0为输出端,B7~B0为输入端,即实现B→A。图2.88286的引脚图在8086/8088微处理系统中,8286/8287用作数据总线驱动器时,其T端应与8086/8088的数据收发信号DT/相连,用于控制数据传送方向;端应与8086/8088的数据允许信号相连,以保证只有在CPU需要访问存储器或I/O端口时才允许数据通过8286/8287。在8086/8088最小模式系统中,除CPU外,还允许接入其他共享总线的设备,如DMA控制器8237。这时,DMA控制器称为除CPU以外的其他总线主模块。当它需要使用总线与存储器直接交换数据时,可以通过HOLD引脚向CPU发出总线请求信号,CPU检查到HOLD信号有效后,在当前总线周期结束后便通过HLDA引脚向DMA控制器发响应信号,让出总线(使CPU与总线有关的信号均变为无效),由DMA控制器控制总线进行数据传送。DMA操作结束,DMA控制器会释放总线(HOLD无效,变为低电平),CPU又重新获得总线控制权。2.1.48086微处理器的最大系统
8086最大系统与最小系统相比,结构上更为复杂,它可以构建更大规模的计算机应用系统。8086最大系统与最小系统的区别主要表现在:总线信号将由8086微处理器和8288总线控制器共同形成,部分系统还需要使用8289总线仲裁器参与总线管理,可以选择使用协处理器8087等。本节将以IBMPC/XT机结构为基础对8086处理器的最大系统进行讲解。
1. 8086处理器最大模式下的部分引脚定义
在最大系统中,CPU部分引脚不再直接参与总线,而是通过控制总线控制器对这些信号进行扩充和重新驱动,其具体功能和名称都有所改变。我们可以对照图2.3来学习,括号内的信号名称为最大模式时的信号名称。
最大系统中部分改变的信号的功能如下:
(1) QS1、QS0(QueueStatus):指令队列状态信号,输出。
QS1和QS0信号的组合可以指示总线接口部件BIU中指令队列的状态,以便协处理器监视、跟踪指令队列的状态,保持同步。其编码含义如表2.2所示。表2.2QS1QS0的编码含义
(2)~(StatusSignals):状态信号,输出,三态。
~组合编码输出CPU在最大模式下的8种工作状态,如表2.3所示。
(3):总线封锁信号,输出,低电平有效。
此信号用于在中断响应周期和LOCK指令操作中禁止其他设备的总线请求。
(4)
/、/
(Request/Grant):总线请求允许输入信号输入/总线请求允许(输出)信号,双向,低电平有效。表2.3CPU工作状态对照表该信号用以取代最小模式时的HOLD/HLDA两个信号的功能,是特意为多处理器系统而设计的。当系统中某一部件要求获得总线控制权时,就通过此信号线向8086CPU发出总线请求信号。若CPU响应总线请求,就通过同一引脚发回响应信号,则允许总线请求。表明8086CPU已放弃对总线的控制权,将总线控制权交给提出总线请求的部件使用。
2. 8086最大系统的构建
以IBMPC/XT为例构建8086最大系统。在系统构建中,为简化考虑,不再选用协处理器,故部分信号不再涉及,如QS1、QS0等。
1)地址总线
8086最大系统和最小系统的地址总线和数据总线差异不大,区别仅仅在于部分控制信号不再由CPU直接发出,而是由控制逻辑电路发出。
系统采用三片8282进行地址锁存。其与最小系统差别在于,地址锁存信号ALE由控制逻辑8288提供,地址输出端不再恒有效,而是由/S7提供控制信号。
2)数据总线
16位地址总线由两片8286三态缓冲器驱动,控制端信号由8288产生。DT/控制数据驱动方向,控制数据输出。
3)控制总线
控制总线是最大系统和最小系统中变化最大的总线,控制总线的大部分信号由8288提供,只有少部分信号由CPU直接提供,如NMI、INTR等。我们知道,在最小系统中,24~29引脚产生的控制信号、ALE、、DT/、信号用以完成最小系统的一些基本读/写控制操作,在最大系统中,这些信号都已失去了其原有的意义和功能,那么这些信号控制的基本操作该怎样处理呢?在8086最大系统中,处理器通过~引脚组合向8288总线控制器发出组合信号,这些信号经过8288译码后产生8种控制信号,见表2.3和图2.9。这些经译码产生的信号代替了最小系统中的那部分信号的功能。图2.98086最大系统原理框图
3.总线控制器8288
在最大系统中,出于扩展功能和节省CPU引脚的目的,系统采用总线控制器8288对CPU的~信号进行译码,以产生因系统扩展而缺失的控制信号。8288内部由状态译码器、控制逻辑、命令信号发生器和控制信号发生器组成,其外部引脚如图2.10所示。图2.108288的引脚图
1)状态译码器
状态译码器用于将输入信号~的8种组合码翻译成、ALE、、DT/、等信号,其具体功能参见表2.3。
2)控制逻辑
控制逻辑是根据输入信号CLK、、CEN和IOB,统一协调8288内部各功能部件正常工作的部件。其中,各个信号的功能含义如下:
(1) CLK:时钟脉冲信号,来源于时钟发生器8284,是8288内部工作的节拍信号。
(2):地址使能信号,输入,低电平有效。该信号有效时表示8288和其他挂接在总线上的芯片均可使用总线;当为高电平(无效)时,8288从总线断开。当跳变为0后,在115ns内,8288不发出任何命令,以便总线设备完成总线切换。
(3) CEN:命令输入允许信号,高电平有效。该信号有效时,8288正常工作,所有输入信号有效;无效时,禁止命令输入8288,输入信号无效。
(4) IOB:总线工作方式选择信号,高电平有效。该信号用于总线仲裁控制,有效时,8288工作于系统总线方式,在信号有效后115ns内,允许总线切换;当信号无效时,8288工作于总线方式,信号无效,存储器访问无效,其他总线操作有效。
3)命令信号发生器
命令信号发生器的功能是在状态译码的作用下产生存储器、I/O端口的读/写信号和中断信号。
(1) :存储器读信号,低电平有效。有效时将选中地址单元的数据传送到总线。
(2):存储器写信号,低电平有效。有效时将总线数据传送到选中地址单元。
(3):I/O读信号,低电平有效。有效时将选中端口数据传送到总线。
(4):I/O写信号,低电平有效。有效时将总线数据传送到选中端口。
(5):存储器超前写信号,低电平有效。提前给存储器发写命令。
(6):I/O端口超前写信号,低电平有效。提前给I/O端口发写命令。
(7):中断响应信号,低电平有效。有效时表示CPU已响应中断请求,要求中断源发送终端类型码至数据总线。
4)控制信号发生器
控制信号发生器用于根据条件产生DT/、DEN、MCE/
和ALE信号。
(1)DT/:数据发送/接收允许信号。
(2)DEN:数据允许信号,高电平有效。
(3)MCE/:主设备使能/外设数据允许信号。2.1.58086微处理器的存储器和I/O组织
1.存储空间的分配
8086处理器有20条地址线,可直接寻址1MB的存储空间,地址范围为00000H~0FFFFFH。计算机系统内存储器可分为随机存取存储器RAM和只读存储器ROM。在PC/XT机中,这两种类型的存储器采用统一编址,分区共享1MB的寻址空间。其中,RAM区占用地位640KB + 128KB地址空间,ROM区占用高256KB地址空间,其地址空间详细功能划分如图2.11所示。图2.11IBMPC/XT地址空间分配内存储器各分区的功能可简单描述如表2.4所示。
Intel公司为了保证与未来产品的兼容性,规定在存储区的部分最低地址区和部分最高地址区保留一些单元,供CPU的某些特殊功能专用。其中主要有:
(1) 00000H~0007FH(共128B):用于中断,以存放中断向量,这一区域又称为中断向量表。表2.4IBMPC/XT地址空间分配及其功能
(2) FFFF0H~FFFFFH(共16B):用于系统复位启动。
在计算机内部,数据通常都是以字节的方式存储的,每一个地址对应一个字节,因此1MB的地址空间可以寻址1MB的存储空间。在完全的16位机中有16条数据线,数据会以16位的形式出现,称为“字”。对“字”数据处理过程中,一般将其分为高、低两个字节,按高低地址进行存储。由于8086数据总线为16位,因此为了能够同时进行字操作和字节操作,在8086硬件设计时,1MB的存储空间实际上被分成两个512KB的存储体,分别叫高位库和低位库。低位库固定与8086CPU的低位字节数据线D7~D0相连,又称它为低字节存储体,该存储体中的每个地址均为偶地址。高位库与8086CPU的高位字节数据线D15~D8相连,又称它为高字节存储体,该存储体中的每个地址均为奇地址。
存储空间的三总线连接方法如图2.12所示。地址线A0和CPU控制线分别作为低位库和高位库的片选信号,地址线的高19位寻址512KB的地址空间,总共可以寻址1MB。当信号有效时,表示高位库参与数据传送,为字操作;当无效时,高位库不参与数据传送,为字节操作。图2.128086存储器的分体结构
2. I/O端口的编址
I/O端口通常有两种编址方式,它们互有优缺点,其具体情况如下:
(1)统一编址方式,又称“存储器映射方式”。在这种编址方式下,I/O端口地址置于1MB的存储器空间中,在整个存储空间中划出一部分空间给外设端口,端口和存储单元统一编址。
●优点:无需专门的I/O指令,对端口操作的指令类型多,从而简化了指令系统的设计。
●缺点:端口占用存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。
(2)独立编址方式,又称“I/O映射方式”。这种方式的端口单独编址构成一个I/O空间,不占用存储器地址空间。
●优点:端口所需的地址线较少,地址译码器较简单,采用专用的I/O指令,端口操作指令执行时间少,指令长度短。
●缺点:输入/输出指令类别少,一般只能进行传送操作。
PC/XT机采用独立编址方式,寻址时只用低16位地址线A0~A15,但在实际应用中,只用到低10位地址线A0~A9,因此寻址空间为1KB,即从000H~3FFH。部分端口地址分配如表2.5所示。表2.5端口地址分配表2.1.68086微处理器的时序
计算机的工作是在时钟脉冲CLK的统一控制下按时钟实现的。在本系统中,时钟发生器8284通过分频产生的系统时钟信号CLK被作为系统统一的时钟节拍。
时序是指计算机在工作时以系统时钟信号为参考的各信号脉冲间协同配合并随时间变化的关系。具体到本节,总线时序描述了CPU各引脚信号如何实现协同工作和完成总线操作。
CPU的各种对外操作都要通过总线,称为总线操作,主要包括:存储器和I/O设备读/写操作、中断请求和响应操作等。CPU通过总线操作与外界进行一次数据通信的过程,称为总线周期,也叫机器周期。CPU的各项操作都是通过执行指令实现的,一条指令可分为取指、译码、读/写操作数等阶段,这个过程被称为指令周期,而指令周期又分为一个个总线周期。
在冯·诺依曼计算机系统中,存储器和I/O读/写是最常使用的总线周期,这将成为本节讨论的重点。其他总线周期将在以后的各章中结合具体芯片详细讲解。以常用的MOVreg,Memory指令为例,指令经译码后进入执行阶段,CPU通过总线从Memory读取操作数,这是一个典型的存储器读周期。事实上,任何一条以存储单元为源操作数的指令都会引起存储器读周期,任何一条以存储单元为目的操作数的指令都将引起存储器写周期。IN指令则会引起I/O读总线周期,OUT指令会引起I/O写总线周期。当CPU响应可屏蔽中断时还会产生中断响应总线周期。需要指出的是,总线时序反映的是CPU如何通过其引脚信号控制总线,并通过总线控制目标设备,实现数据存取的过程。因此,学习时序就是学习计算机硬件的动态原理,学习过程中必须结合硬件结构分析理解;同时,学习时序也有利于加深对硬件设计的理解。
CPU针对不同的设备进行总线操作,其需要控制的信号及信号内容各有不同,时序只有具体到要操作的硬件才有意义。但总线操作的基本原理差异不大,通常每个总线周期包含四个T状态(T-State),即T1、T2、T3和T4,必要时可在T3和T4间插入若干个TW状态,每个T状态是8086中处理动作的最小单位,称为时钟周期。下面我们就以8086最小系统的总线读/写周期为例,按照这四个状态顺序进行时序分析。
1. 8086最小模式下的写总线周期
了解总线周期首先要了解系统硬件结构和完成操作所需的各种控制信号及其基本工作原理。写总线周期用来完成对存储器或I/O端口的一次写操作,参与写总线操作的信号有:
(1)系统时钟:CLK,为系统提供标准的时钟节拍。
(2)地址总线:A0~A19,用于完成地址传送。
(3)数据总线:D0~D15,用于完成数据传送。数据总线与地址总线低16位分时复用信号线AD0~AD15。
(4)存储器/I/O选择:/IO,用于选择读/写存储器还是I/O端口。当为低电平时,访问存储器;为高电平时,访问I/O端口。
(5)高字节允许信号:/S7,在T1时刻低电平有效时,表示数据总线高8位参与传送数据。T2~T4状态时输出状态信号S7。
(6) CPU状态信号:S3~S6,输出CPU状态信息。S3~S6与地址总线高四位A16~A19分时复用信号线A16/S3~A19/S6。
(7)地址锁存信号:ALE,用于锁存地址信息,低电平有效,接数据锁存器的STB端。
(8)写控制信号:,用于控制存储器或I/O端口写操作,低电平有效,通常接存储器或I/O设备的写入使能端。
(9)存储器/I/O就绪信号:READY,用于表示存储器或I/O端口准备就绪,高电平有效。
(10)数据允许信号:,数据传输使能,低电平有效,接数据收发器8286的端。信号与DT/信号组合控制数据收发器三态,当有效时,DT/信号才有效。
(11)数据发送/接收信号:DT/,接数据收发器的T端。高电平时,数据从CPU输出;低电平时,数据从总线输入。
针对这些总线信号的写总线时序如图2.13所示。
1) T1状态——
输出地址
在T1状态开始时,/IO信号线输出写操作对象信号,高电平为I/O端口,低电平为存储器,并将此状态保持至本周期结束;ALE输出有效高电平,地址锁存器地址写入使能,准备接收地址信息;同时,由于CPU地址和数据引脚复用,在输出地址信息时应使数据收发器处于高阻状态,禁止读/写,因此此时信号保持高电平;DT/也开始输出高电平,将数据收发器调整到输出状态,准备在下一个状态输出总线数据;信号保持高电平,禁止存储器或I/O设备写入;此时地址总线输出20位地址信息。图2.138086最小系统写总线时序图在地址信息输出后,ALE信号将在T1状态CLK脉冲下降沿到来之前转为低电平并保持至本周期结束,此时地址锁存器写入禁止,地址信息锁存持续输出至地址总线。
需要指出的是,在存储器和I/O读/写操作中,除地址位数和/IO信号不同外,并没有本质上的区别。
2) T2状态——
输出数据
T2状态开始时,信号转为低电平,数据收发器收发使能,并保持至本周期结束;CPU地址/数据复用引脚AD0~AD15转为输出数据信息,并保持至本周期结束;CPU地址/数据复用引脚A16/S3~A19/S6上出现CPU输出状态;转为有效低电平,存储器或I/O设备写入使能,存储器或I/O设备开始接收数据总线上的数据。
3) T3和TW状态——
数据传输检验和延迟
由于CPU和存储器或I/O设备的收发速率不同,为了保证数据收发的有效性,必须保证传输时间足以使数据正确写入对象设备。在T3状态,系统将保持T2状态时形成的信号,以便存储器或I/O设备有足够时间接收总线数据。
如果在此时间内,目标设备仍不能完成接收任务,则可控制READY信号,使之转为低电平无效。CPU将在T3时钟下降沿检测READY引脚信号,如果为高电平,则转入T4状态;如果为低电平,则转入TW状态。
TW状态将延续T3状态的一切信号和任务不变,以延长数据收发时间。CPU仍将在该TW状态的下降沿检测READY信号,如无效则继续插入TW状态,有效则转入T4状态。实际上在写总线周期中,可以将TW状态简单理解为T3状态的重复过程,这种重复过程为目标设备的有效读/写争取了时间延迟。
4) T4状态——
完成数据传送
T4状态是本周期的收尾状态,CPU已经在上个周期末检测到传输任务正确完成,因此将控制信号和转为无效,已禁止存储器或I/O设备的数据写入,数据收发器停止驱动,数据将在数据总线上消失,为下一个周期的到来做好准备。
2. 8086最小模式下的读总线周期
读总线周期用来完成对存储器或I/O端口的一次读操作,参与读总线操作的信号与写总线周期信号基本相同,唯一区别在于信号代替信号参与总线操作。
信号为存储器或I/O设备读使能信号,低电平有效。
8086最小系统的读总线时序如图2.14所示。
图2.148086最小系统读总线时序图
8086最小系统的读总线周期和写总线周期的时序相差不大,所以这里仅就其区别做相应说明。
在T1状态中,DT/信号转换为低电平,使数据收发器进入读状态,驱动数据总线由存储器或I/O设备向CPU发送数据;由于在T1状态下,CPU地址/数据引脚进行的是地址传送,因此信号保持高电平无效;其余信号状态和写周期完全一样。在T2状态中,使能数据收发器,此时数据收发器处于接收状态;信号转为低电平,存储器或I/O设备读取使能,此时数据总线上的数据经由数据收发器驱动传送到CPU的AD0~AD15端。
在读总线操作中,系统总线由外部数据决定,CPU将沿T4的前沿对数据进行采样。如果存储器无法及时正确提供数据,则可向READY端发送无效请求信号请求等待,CPU将在T3与T4周期之间插入若干个TW周期。
8086最小系统读总线周期的其余情况与写总线周期相同。
80286是Intel公司继8086之后,于1982年1月推出的一种高性能微处理器芯片,并在IBMPC/AT中得以推广应用。该芯片上共集成了13.5万只晶体管,采用68个引脚的4列直插式封装,地址线和数据线不再分时复用,分开设置16条独立的数据线和24条独立的地址线。80286具有8086的全部功能,8086CPU的汇编语言程序可不加修改地在80286上运行。2.280286微处理器与8086相比,80286微处理器主要有以下四个显著的改进:
(1)由于地址线的增加,使其内存容量提高。8086有20条地址线,只能寻址1MB的内存空间,而80286增加到24条地址线,可寻址16MB(224B)内存。
(2)时钟频率提高,使得处理速度加快。80286的时钟频率最高可达20MHz,并将8086的2级流水线体系结构增加到4级。
(3)可同时运行多个任务。多任务是通过多任务硬件机构使处理器在各种任务之间快速而方便地切换。
(4) 80286增加了一种工作方式。8086只有实地址方式(简称实模式),而80286有实地址模式和保护虚拟地址模式(简称保护模式)。在实模式下,80286和8086一样在1MB内存空间执行程序,只是速度提高了,相当于是一个快速的8086。在保护模式下,80286提供24位地址线访问物理地址空间,并首次应用了“虚拟存储器”和“虚拟内存”的概念。所谓“虚拟存储器”,就是系统中有一个速度较快、容量较小的内存,还有一个速度较慢但容量很大的外存,通过存储器管理机制,利用外存来模拟内存,这样从程序员角度看,系统中似乎有一个容量非常大的、速度也相当快的主存储器,但它并不是真正的物理内存,故称为虚拟存储器。80286可模拟1GB(230字节)虚拟内存。
1. 80286的功能结构
80286微处理器内部有四个独立的可并行操作的功能部件,包括总线接口部件(BusInterfaceUnit,BIU)、指令部件(InstructionUnit,IU)、地址部件(AddressUnit,AU)和执行部件(ExecuteUnit,EU),见图2.15。80286与8086相比,多了两个主要部件,即将8086中的BIU分成BU和IU,而将AU从EU中分离出来。实质上是增强了这些部件的并行操作能力,加快了微处理器的运行速度。图2.1580286微处理器的内部结构框图
1)总线接口部件(BIU)
BIU负责处理CPU和系统总线之间的所有通信和数据传输,当数据存取请求与预取指令请求同时发生时,BIU将优先处理数据存取操作。BIU包括地址锁存和驱动器、预取器、协处理器接口、总线控制器、数据收发器和6字节的预取队列。地址锁存和驱动器用来锁存和驱动24位的地址线;预取器负责从存储器中取指令代码并存放到6字节的指令队列中,只要预取队列中至少有两个字节为空,便开始预取操作;协处理器接口负责80286与80287浮点运算协处理器的接口;总线控制器将有关的外部控制信号送到8288外部总线控制器以组合产生存储器或I/O的读/写控制信号;数据收发器可以根据指令要求负责控制数据的传输方向;6字节的预取队列用来存放由预取器送来的未译码的指令。
2)指令部件(IU)
IU包括指令译码器和已译码指令队列,负责从预取队列中取代码并送入译码器中,译码器将每个指令字节译码变成69位的内部码形式,然后存入已译码指令队列中。已译码指令队列可存放三条被译码指令的内部码,共占69 × 3位,可以立即执行。
3)执行部件(EU)
EU负责指令的执行,即从指令部件IU中取出已译码的指令并直接执行。它包括算术逻辑部件(ALU)及标志寄存器、通用寄存器阵列和控制电路等。控制电路接收已译码的指令中的69位内部码,根据指令的要求产生执行指令所需的控制电位序列后送入其他部件,以便完成指令执行并以操作结果影响标志位;ALU及标志寄存器用来进行算术与逻辑运算,并保存控制和状态标志;通用寄存器阵列用来暂存操作数和运算结果。
4)地址部件(AU)
AU负责物理地址的生成,包括物理地址发生器、段寄存器、段描述符高速缓冲寄存器等。
当80286CPU运行在实模式下时,其物理地址的形成与8086一样。而当80286CPU运行在保护模式下时,段地址并不直接存放在四个段寄存器中,而存放在所谓的段描述符中,通过描述符提供24位的段基值,再与16位的偏移地址相加得到实际的物理地址。段描述符高速缓冲寄存器用来加速地址的转换,并在性能不受影响的情况下检查是否违反了保护条件,还可以实现任务的隔离和代码段与数据段重定位。上述四个独立部件的并行工作过程为:只要6字节指令队列中至少有两个为空时,BU便根据AU提供的要访问的地址开始预取操作,以填充指令队列;IU从BU中取出预取的指令并译码后存入已译码的指令队列;EU不断地从IU中取出已译码指令进行执行,若在执行指令的过程中要传送数据,则EU发送寻址信息给AU;AU计算出物理地址并送给BU,由BU与存储器或I/O进行数据传送。这四个部件即相互配合又相互独立,构成一个四级流水线体系结构,大大提高了工作效率。
2. 80286的内部寄存器
80286内部的通用寄存器(包括四个数据寄存器和四个基址变址寄存器)、四个段寄存器和指令指针寄存器与8086的完全相同,不同之处在于标志寄存器新增了两个标志(占3位)以及增加了一个机器状态字MSW。下面分别介绍在8086基础上新增的标志位和MSW。
1)标志寄存器(FLAGS)
标志寄存器除了8086中的9个标志(低12位)以外,增加的两个标志主要用于保护模式下,如图2.16所示。其含义如下:
(1) NT:嵌套标志,此标志作为状态标志,用于指出当前执行的任务是否嵌套于另一个任务中。若NT=1,则表示当前执行的任务嵌套于另一个任务中,从而指示CPU执行完该任务后,要返回到原来的任务中去;若NT = 0,则表示没有任务嵌套。
(2) IOPL:I/O特权标志,此标志作为控制标志,用于指示指定的I/O操作处于特权级的哪一级。IOPL占两位,可表示0~3共四个特权级,其中0级最高,3级最低。0级一般为操作系统的核心程序使用。只有当现行任务的特权级高于或等于此时IOPL的级别时,CPU对此设备的I/O操作才可以执行。图2.16标志寄存器(FLAGS)的格式
2)机器状态字(MSW)
机器状态字含有控制或指示整个系统(不是单个任务)的条件标志,见图2.17。各位含义如下:
(1) PE:保护允许。PE = 1,允许保护,除了RESET外,保护方式不能被撤销;PE = 0,禁止保护,只能通过硬件复位,但80386以后的微处理器可以通过指令来设置。
(2) MP:协处理器监控允许。当MP = 1时,可用WAIT指令来判断80287的存在性,此时若产生类型号为7的异常,则表示协处理器不存在;当MP = 0时,禁止监控。
(3) EM:模拟协处理器允许。当EM = 1时,使用ESC指令,将引起协处理器不存在的异常,可用该中断处理程序进行仿真操作,模拟协处理器工作;当EM = 0时,禁止模拟,协处理器指令只能在实际协处理器80287中执行。
(4) TS:任务切换。在任务切换时,系统硬件总使TS = 1,此时微处理器在执行一条协处理器指令时,会产生协处理器不存在的异常中断。图2.17机器状态字(MSW)的格式虽然80286有上述的改进和特点,但只有在保护模式下才能运行。在DOS环境下,它只能工作在实模式,而多任务的切换、虚拟存储器的管理和多种特权级的保护只有在保护模式下才能运行。这样,在大多数场合,80286仅是一个快速的8086微处理器。另外,由于Intel公司在1985年又推出了性价比更高的32位80386微处理器,从而很快便取代了80286。但80286在结构中采用的流水线技术、虚拟存储器概念及多任务切换的理念得到了进一步的发挥和完善。2.3.180386处理器
1985年10月,Intel公司推出与8086、80286相兼容的高性能32位微处理器80386(见图2.18)。80386针对多用户和多任务的应用而设计,是具有片内集成的存储管理部件和保护机构的全32位微处理器。该芯片上共集成了27.5万只晶体管,具有132个引脚,并以网格阵列方式封装,采用32位地址线和32位数据线,内部寄存器也扩充至32位。80386最初的时钟频率为16MHz,不久,Intel公司又推出25MHz、33MHz等机型。在16MHz主频下,CPU的运算速度可达3~4MIPs(每秒百万条指令),其速度可与10年前的大型机相比。80386是在16位微处理器基础上发展的,所以在Intel8086、80286系统上运行的目标程序可在80386系统上运行。2.380386和80486微处理器图2.1880386微处理器的内部结构框图
1. 80386的主要特性
80386的主要特性如下:
(1)灵活的32位微处理器,提供32位的指令。
(2)提供32位外部总线接口,最大数据传输速率为32
Mb/s。
(3)具有片内集成的存储器管理部件MMU,可支持虚拟存储和特权保护。
(4)具有实地址模式、保护模式和虚拟8086模式。
(5)具有极大的寻址空间。
(6)通过配用数值协处理器可支持高速数值处理。
(7)在目标码一级与8086、80286芯片完全兼容。
2. 80386的寄存器结构
80386中共有7类32个寄存器,它们是通用寄存器、段寄存器、指令指针和标志寄存器、控制寄存器、系统地址寄存器、排错寄存器和测试寄存器。
3. 80386的工作模式
80386的工作模式有三类:
(1)实地址模式:系统启动后,80386自动进入实地址模式。此模式下,采用类似于8086的体系结构
(2)保护模式:是指在执行多任务操作时,对不同任务使用的虚拟存储器空间进行完全的隔离,保护每个任务顺利执行。
(3)虚拟8086模式:是指一个多任务的环境,即模拟多个8086的工作模式。2.3.280486处理器
1989年,Intel公司推出了80486微处理器(80486DX)。80486是在80386的基础上设计的32位微处理器,是对80386的改进和发展。该芯片集成度更高,共集成了120万只晶体管,是80386的四倍以上,具有168个引脚,PGA封装,采用32位地址线和32位数据线。80486最初的时钟频率为25MHz,以后又推出了33MHz、50MHz、66MHz、80MHz和100MHz等机型。1992年,Intel公司推出80486DX2,它采用倍频技术,使CPU能以两倍于芯片外部的处理器速度工作。同样,80486也保持着与前辈86系列CPU在目标程序上的兼容性。
1. 80486的主要特性
80486的主要特性如下:
(1)首次增加RISC技术。
(2)芯片上集成部件多,如数据高速缓存、浮点运算部件、分页虚拟存储管理和80387数值协处理器等多个部件。
(3)高性能的设计。
(4)完全的32位体系结构。
(5)支持多处理器。
(6)具有机内自测试功能,可以广泛地测试片上逻辑电路、超高速缓存和片上分页转换高速缓存。
2. 80486的寄存器结构
80486微处理器的内部功能结构如图2.19所示。与80386的6个独立部件相比,80486增加到9个,即总线接口部件(BIU)、指令预取部件(IPU)、指令译码部件(IDU)、控制部件(CU)、整数部件(IU)、分段部件(SU)、分页部件(PU)、高速缓冲存储部件(Cache)和浮点运算部件(FPU)。这9个部件可以并行地工作,构成一个9级流水线体系结构。80486与80386在内部结构上类似,区别在于将80386的执行部件(EU)分离成两个独立的部件,即控制部件(CU)和整数部件(IU)。另外80486的后两个部件是在80386基础上为提高性能而增加的。图2.1980486微处理器的内部结构框图
3. 80486的工作模式
80486有三种工作模式,即实地址模式、保护模式和虚拟模式,不同工作模式间可以相互切换,如图2.20所示。图2.2080486的工作模式图2.3.3Pentium微处理器
随着人们对图形图像处理、实时视频处理、语音识别、CAD/CAM/CAI、大流量客户机/服务器应用等的需求日益迫切,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业机器人运维维修服务供应链管理
- 2025年工业机器人运动控制技术应用能源管理策略
- 护理安全制度要点解读
- 护理高级职称评审的职业道德培养
- 护理礼仪的未来趋势
- 护理人文关怀:患者的隐私与保密
- 侍酒师岗前安全素养考核试卷含答案
- 2026年新科教版高中高一生物上册第一单元细胞的分子组成卷含答案
- 2026年新科教版高中高一地理上册第一单元自然地理核心原理卷含答案
- 2026年新科教版高中高二物理下册第三单元气体实验定律应用卷含答案
- GB/Z 177.7-2026人工智能终端智能化分级第7部分:汽车座舱
- 成都湔江投资集团有限公司2026年春季第一批次招聘考试参考题库及答案解析
- 2026四川泸州金桂投资有限公司第一批次招聘26人备考题库附答案详解(完整版)
- 2026浙江宁波市北仑区残疾人联合会招聘编外用工1人笔试备考试题及答案详解
- 天津奥林匹克中心体育场招商简介课件
- 聆听心声,音乐审美心理分析 期末考试答案
- 六年级上册数学课件-2.1 分数与整数相乘丨苏教版 共17张PPT
- 99S203 消防水泵接合器安装图集
- 职业健康安全事务代表任命书
- 血液透析血管通路并发症
- 路面施工技术全套课件
评论
0/150
提交评论