第2讲微型计算机系统的微处理器_第1页
第2讲微型计算机系统的微处理器_第2页
第2讲微型计算机系统的微处理器_第3页
第2讲微型计算机系统的微处理器_第4页
第2讲微型计算机系统的微处理器_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第2讲微型计算机系统的微处理器

苏放frossesu@北京邮电大学信息与通信工程学院8086/8088微处理器238086微处理器的结构8086CPU是Intel系列的16位微处理器,它采用HMOS工艺制造,双列直插,有40个引脚。8086CPU的电源为单一5V,主时钟频率为5MHz~10MHz。它的外部数据总线为16位,地址线为20根。因为可用20位地址,所以可寻址的地址空间达1MB。48086微处理器的结构8086CPU在内部采用了并行流水线结构,可以提高CPU的利用率和处理速度。8086CPU被设计为支持多处理器系统,因此能方便地与数值协处理器8087或其他协处理器相连,构成多处理器系统,从而提高系统的数据处理能力。8086CPU还具有一个功能相对完善的指令系统,能对多种类型的数据进行处理,使程序设计方便、灵活。58086的功能结构从功能上讲,8086分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。6总线接口部件BIUBIU是CPU与外部存储器及I/O的接口,负责与存储器和I/0系统进行数据交换。BIU由下列各部分组成:4个16位段地址寄存器代码段寄存器CS数据段寄存器DS附加段寄存器ES堆栈段寄存器SS716位指令指针IP:IP用于存放下一条要执行指令的有效地址EA(即偏移地址)。20位物理地址加法器:加法器用于将逻辑地址变换成读/写存储器所需的20位物理地址,即完成地址加法操作。6字节的指令队列:当执行单元EU正在执行指令中,且不需要占用总线时,BIU会自动进行预取下一条或几条指令的操作,并按先后次序存入指令队列中排队,由EU按顺序取来执行。总线控制逻辑:总线控制逻辑用于产生并发出总线控制信号,以实现对存储器和IO端口的读/写控制。8执行部件EU执行部件EU的功能就是负责指令的执行。EU包括下列几个部分:算术逻辑单元ALU:ALU完成16位或8位的二进制数的算术逻辑运算,绝大部分指令的执行都由ALU完成。标志寄存器FR:它用来反映CPU最近一次运算结果的状态特征或存放控制标志。通用寄存器组:它包括4个数据寄存器AX、BX、CX、DX,4个专用寄存器:基址指示器BP、堆栈指示器SP、源变址寄存器SI和目的变址寄存器DI。EU控制器:它接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,向EU内各功能部件发送相应的控制命令,以完成每条指令所规定的操作。9BIU和EU的动作管理在8086中,EU和BIU两部分是按流水线方式并行工作的取指 执行 取指 执行 取指 执行 取指 执行 取指 执行 (a)早期微处理器指令的执行过程 (b)8086微处理器指令的执行过程 108086的寄存器结构8086CPU内部有14个16位寄存器,可以分为三组:数据寄存器

AL

AH

BH

BL

CH

CL

DH

DL

SP

BP

DI

SI

IP

CS

DS

SS

ES

AX

BX

CX

DX

堆栈指针

基数指针

源变址

目的变址

指令指针

状态标志

代码段

数据段

堆栈段

附加段

指针寄存器

指针寄存器

控制寄存器

段寄存器

通用寄存器 FLAG

11通用寄存器组通用寄存器可以分为两组:数据寄存器和地址指针与变址寄存器。数据寄存器数据寄存器包括AX、BX、CX、DX等4个16位寄存器它们既可以作为16位寄存器使用,也可以将每个寄存器高字节和低字节分开作为两个独立的8位寄存器使用。12地址指针和变址寄存器地址指针和变址寄存器组包括SP、BP、SI和DI等4个16位寄存器。它们主要是用来存放或指示操作数的偏移地址。堆栈指针SP中存放的是当前堆栈段中栈顶的偏移地址。BP是访问堆栈时的基址寄存器。SP、BP通常和SS联用。SI和DI称为变址寄存器。它们通常与DS联用,为程序访问当前数据段提供操作数的段内偏移地址。SI和DI中的内容分别是当前数据段和当前附加段中某一存储单元的偏移地址。当SI、DI和BP不作指示器和变址寄存器使用时,也可将它们当作一般数据寄存器使用,存放操作数或运算结果。138086CPU中通用寄存器的特殊用途和隐含性质AX,AL在输入输出指令中作数据寄存器不能隐含乘法指令中存放被乘数和乘积,除法指令中存放被除数和商隐含AH在LAHF指令中,作目标寄存器用隐含在十进制运算指令中作累加器用隐含AL在XLAT指令中作累加器用隐含BX在间接寻址中作基址寄存器用不能隐含在XLAT中作基址寄存器用隐含CX在串操作指令和LOOP指令中作计数器用隐含CL在移位/循环移位指令中作移位次数计数器用不能隐含DX在字乘法/除法指令中存放乘积高位或被除数高位或余数隐含在间接寻址的输入输出指令中作地址寄存器用不能隐含SI在字符串运算指令中作源变址寄存器用隐含在间接寻址中作变址寄存器用不能隐含DI在字符串运算指令中作目的寄存器用隐含在间接寻址中作变址寄存器用不能隐含BP在间接寻址中作基址指针用不能隐含SP在堆栈操作中作堆栈指针用隐含14段寄存器组8086CPU可直接寻址lMB的内存空间。直接寻址时需要20位地址码,而所有的内部寄存器都是16位的,用它们作地址寄存器,只能直接寻址64KB单元。在8086CPU中采用了存储空间分段技术来解决这一矛盾。将lMB的存储空间分成若干个逻辑段,每段最大长度为64KB。15物理地址形成段寄存器中的16位数自动左移4位,然后与16位偏移量相加,形成20位物理地址。地址加法器 段基址左移4位

偏移地址

20位物理地址

段寄存器

有效地址EA

19

0

15

0

19

0

16段寄存器的选择在形成物理地址时,究竟是取哪一个段寄存器的内容做段基址,这取决于CPU做何操作:对于取指操作,是将当前CS中的内容左移4位(相当乘16)再加上IP的内容,形成20位指令地址;对于存取数据操作,是将当前数据段寄存器DS中的段基址左移4位,再与16位偏移地址EA相加,形成20位的物理地址;对于压栈和弹栈操作,是将当前堆栈段寄存器SS中的段基址左移4位,再与SP相加,形成20位的物理地址;在对目的串操作时,是以当前附加段寄存器ES中的段基址左移4位,再与DI相加以形成20位的物理地址。17段超越除了基本段约定之外,8086还允许部分改变基本段约定,如存取数据的基本段为数据段,但可以临时改变为代码段、或附加段、或堆栈段,这种情况称为段超越。CPU执行的操作基本段约定允许修改的段偏移地址取指令CS无IP压栈、弹栈SS无SP源串DSCS,ES,SSSI目的串ES无DI通用数据读写DSCS,ES,SS有效地址EABP作间址寄存器SSCS,DS,ES有效地址EA18控制寄存器指令指针IP用来存放将要执行的下一条指令在现行代码段中的偏移地址。程序运行中,IP的内容由BIU自动修改,使IP始终指向下一条将要执行的指令地址。正常情况下,程序是不能直接访问(修改)IP的内容的,但当需要改变程序执行顺序时,如遇到中断指令或调用指令时,IP中的内容将被自动修改。19控制寄存器标志寄存器FR标志寄存器FR用来存放指令执行结果特征。①状态标志:状态标志位有6个,由CPU在运算过程中自动置位或清零,用来表示运算结果的特征。除CF标志外,其余5个状态标志一般不能直接设置或改变。

1)、CF(CarryFlag)——进位标志。当算术运算结果使最高位(对字节操作是D7位,对字操作是D15位)产生进位或借位时,则CF=1;否则CF=0。循环移位指令执行时也会影响此标志。

2)、PF(ParityFlag)——奇偶标志。若本次运算结果中的低8位含有偶数个1,则PF=1;否则PF=0。

3)、AF(AuxiliaryCarryFlag)——辅助进位标志。本次运算过程中若D3位有进位或借位时,AF=1;否则AF=0。该标志用于BCD运算中的十进制调整。

4)、ZF(ZeroFlag)——零标志。若本次运算结果为0,则ZF=1;否则ZF=0。

5)、SF(SignFlag)——符号标志。它总是与运算结果的最高有效位相同,用来表示带符号数本次运算结果是正还是负。

6)、OF(OverflowFlag)——溢出标志。当带符号数的补码运算时,结果超出了机器所能表达的范围时,就会产生溢出,这时溢出标志位OF=1。OFDFIFTFSFZFAFPFCF

20标志寄存器FR②控制标志:控制标志是用来控制CPU的工作方式或工作状态的标志。用户可以使用指令设置或清除。

1)、IF(InterruptFlag)——中断允许标志。它是控制可屏蔽中断的标志,如IF=1时,允许CPU响应可屏蔽中断;当IF=0时,即使外设有中断申请,CPU也不响应,即禁止中断。

2)、DF(DirectionFlag)——方向标志。该标志用来控制串操作指令中地址指针的变化方向。在串操作指令中,若DF=0,地址指针为自动增量,即由低地址向高地址进行串操作;若DF=1,地址指针自动减量,即由高地址向低地址进行串操作。

3)TF(TrapFlag)——单步标志。TF=1时,CPU为单步方式,即每执行完一条指令就自动产生一个内部中断,使用户可逐条跟踪程序进行调试。若TF=0时,CPU正常执行程序。21例将二进制数(0101010000111001)与(0100010101101010)相加,分析其对标志位的影响。解:0101010000111001

+01000101011010101001100110100011对状态标志的影响:SF=1;ZF=0;PF=1;CF=0;AF=1;OF=1。22例将二进制数(0010001101000101)与(0011001000011001)相加,分析其对标志位的影响。解:

0010001101000101

+00110010000110010101010101011110对标志位的影响如下:

SF=0;

ZF=0;

PF=0;

CF=0;

AF=0;

OF=0。238086的引脚信号及工作模式为了尽可能适应各种应用场合,8086/8088CPU设置有两种工作模式:最大工作模式和最小工作模式。最小工作模式,指系统中只有8086/8088一个微处理器,在最小模式系统中,所有的总线控制信号都直接由8086/8088CPU产生,系统的总线控制逻辑部件最少,因此,称为最小工作模式。最大工作模式,指系统中包含有两个或两个以上的微处理。其中,一个为主处理器,就是8086/8088CPU;其它的称为协处理器,它们协助主处理器工作。248086CPU8086CPU采用40个引脚的双列直插式封装形式。8086/8088CPU采用了引脚复用技术:采用了分时复用的地址/数据总线。根据不同的工作模式定义不同的引脚功能。8086的引脚图

258086的引脚及其功能GND,Vcc(输入)GND为接地端,Vcc为电源端。8086CPU采用的电源为5V±10%。ADl5~AD0(Address/DataBus)地址/数据复用总线(双向、三态)CPU访问一次存储器或I/O端口称完成一次总线操作,或执行一次总线周期。一个总线周期通常包括T1、T2、T3、T4四个T状态。在每个状态CPU将发出不同的信号。ADl5~AD0作为复用引脚,在总线周期的T1状态,CPU在这些引脚上输出要访问的存储器或I/0端口的地址。在T2~T3状态,如果是读周期,则处于浮空(高阻)状态,如果是写周期,则为传送数据。在中断响应及系统总线处于“保持响应”周期时,ADl5~AD0都被浮置为高阻抗状态。268086的引脚及其功能A19/S6~A16/S3(Address/Status)地址/状态复用线(输出、三态)在总线周期的T1状态,用来输出地址的最高4位,在总线周期的其他状态(T2,T3和T4状态),用来输出状态信息。S6总是为0,表示8086CPU当前与总线相连。S5表明中断允许标志的当前设置。S4和S3状态的组合指出当前正使用哪个段寄存器。当系统总线处于“保持响应”周期时,A19/S6~Al6/S3被置为高阻状态。S4S3含义00当前正在使用ES01当前正在使用ES10当前正在使用CS,或者未用任何段寄存器11当前正在使用DS278086CPU引脚及其功能BHE/S7:允许高字节传送/状态输出在T1状态,BHE在高8位数据总线D15

~D8上传送一个字节数据;BHE与A0把存储器分为两组(高组与低组):BHEA0状态0016位数据01高8位(D15

~D8

)10低8位(D7

~D0

)11保留不用288086CPU引脚及其功能RD读信号,输出读MEM或I/O操作,由M/IO引脚决定是读M还是I/O口:M/IO=1,读MEM;

M/IO=0,读I/O口。READY:(输入)外部器件发回的准备就绪信号由MEM或I/O口发回的应答信号,CPU在T3的上升沿检测该信号,若为高,则准备就绪,不插入Tw

;若为低,则未准备好,插入Tw

;系统规定可插入不超过10个Tw

。298086CPU引脚及其功能INTR:(Interrupt)可屏蔽中断请求信号(IN),高电平有效触发的输入信号,由外部设备发来;该信号是在每一指令周期的最后一个T状态被采样,以决定是否进入中断响应周期。可用软件屏蔽(CLI指令使IF=0)。7.NMI:非屏蔽中断请求信号(IN)边沿触发信号,若有NMI请求,则现行指令结束后立即引起中断。该信号不能用指令屏蔽,其检测时间与INTR一样。308086CPU引脚及其功能TEST:检测信号(IN)该信号由8087发来,在WAIT指令执行期间,CPU监视TEST信号。若TEST为低电平,8086继续执行WAIT的下一条指令,否则CPU处于等待(空闲)状态,且重复测试TEST信号;TEST为高时,处于WAIT状态,TEST低电平时退出WAIT状态。

8086CPU8087TESTBUSY318086CPU引脚及其功能RESET:复位信号(IN),高有效该信号使CPU结束现行操作,初始化内部REG,CPU复位后:CS=FFFFHIP=0000HDS=0000HES=0000HSS=0000HFR=0000(禁止中断)指令队列空,复位后执行的第一条指令在内存的FFFF0H(引导程序的入口地址),用JMP可转到实际开始处。

CLK:时钟,Vcc与GND:电源与地(IN)328086CPU引脚及其功能MN/MX:最小最大组态控制信号(IN)当MN/MX=0,为最大组态,构成多处理器系统;在最大组态时,控制信号由S2~S0经总线译码器8288译码产生。当MN/MX=1,为最小组态,构成单处理器系统,CPU提供所有的总线控制信号。

MN/MX的接法决定了8个引脚(24~31)之功能。338086CPU引脚及其功能★当MN/MX=Vcc(最小组态)时,各引脚功能:INTA:中断响应信号(OUT)是INTR的应答信号,在中断响应时发两个INTA周期。ALE:地址锁存允许信号(OUT)(AddressLatchEnable)把地址/数据、地址/状态线上的地址信号锁存到地址锁存器中,ALE在T1状态有效。348086CPU引脚及其功能M/IO:MEM与I/O控制信号(OUT)决定访问的是MEM或者是I/O:

M/IO=1,访问MEM;

M/IO=0,访问I/O口。WR:写信号(OUT)用来表示CPU处于写MEM或者I/O口(与M/IO配合使用)。358086CPU引脚及其功能DT/R:数据收发信号(双向,三态)增加数据总线的驱动能力,采用外加总线驱动器(收发器8286/8287)。当DT/R=1,发送;

DT/R=0,接收。DEN:数据允许信号(DataEnable)(OUT)作为总线驱动器8286/8287芯片的输出允许信号(OE)。在DMA方式时,被置为高阻抗状态。368086CPU引脚及其功能HOLD(IN)与HLDA(OUT):总线请求保持与总线响应保持信号总线请求HOLD是由其它主设备发送给CPU;

CPU检测HOLD的时间:在每一个总线周期的最后一个T状态。总线响应HLDA作为CPU对HOLD之应答,并让出总线控制权。378088CPU的最小模式只有8位数据总线,不需要信号。因此,34引脚定义为。和及信号组合起来,决定了当前总线周期的操作。388086/8088最小模式系统的基本配置最小模式系统:应用于单一的微机处理系统,3片8282锁存20位地址信息和BHE,2片8286作为16位数据收发器MN/MXRDWRCLKREADYM/IORESETALE

A19-A16

BHEAD15-AD08086CPU

DT/R

DENSTB8282或82838286或8287TOE8284RES时钟

发生器存储器

DATAI/O外设DATA数据总线地址总线地址总线地址/数据VCCVCCBHE39锁存器8282/82838282/8283用于锁存CPU地址,形成独立的数据和地址总线8282/8283是带有三态缓冲器的8位数据锁存器,两者输出极性不同:8282的输出/输入极性相同8283的输出/输入极性相反8位锁存器74LS373的功能与8282/8283相同,也可实现锁存功能。408286/8287总线收发器8086/8088CPU输出或接收数据的能力是有限的。当总线上连接的设备较多时,为使系统稳定工作,需要使用数据功率放大器,提高8086/8088CPU数据总线的驱动能力。8286/8287是一种具有三态输出的8位双向总线收发器/驱动器41时钟发生器8284A时钟发生器:

8284A提供系统时钟。

8284A组成:晶体震荡器,一个三分频器,起同步作用的READY信号及复位RESET信号。功能:提供时钟信号,与外设时钟;(外部晶体15MHz/24MHz÷3)提供系统复位控制逻辑;提供起同步作用的READY信号。输出:RESET,CLK(5MHz),PCLK(2.5MHz),OSC(15MHz),READY42

引脚信号功能CSYNC:使多个8284A时钟同步信号,=0,内部计数PCLK:外设时钟信号AEN1,AEN2:制约信号,与RDY配合READY:准备就绪RDY1,RDY2:总线准备就绪ASYNC:READY同步选择一、两级RES,RESET:复位入,复位出OSC:振荡器输出EFI:外部时钟频率F/C:频率/晶体选择438086CPU引脚及其功能★当MN/MX=0(最大组态)时,各引脚功能:S2、S1、S0

:总线周期状态信号(OUT)此三状态信号由总线控制器8288译码产生CPU所需的各种控制信号,产生8个控制信号。

448086CPU引脚及其功能

RQ/GT0,RQ/GT1:(Request/Grant)总线请求(IN)/总线允许(OUT)每一引脚都是双向的,既可作为总线请求,又可作为总线响应信号。外部主设备发来的请求信号为输入,CPU响应时为输出。

若有两个主设备同时请求时,RQ/GT0比

RQ/GT1级别高。458086CPU引脚及其功能LOCK:总线锁定信号(OUT)该信号由前缀指令“LOCK”使其生效,且一直保持到下一指令执行完,以使得外部总线主控设备不能获得对系统总线的控制权。在8086/8088CPU处于中断响应周期期间, 会自动变为有效,以防其他总线主控件在中断响应过程中占有总线而使一个完整的中断响应过程被间断。在DMA期间,被置为高阻抗状态。468086CPU引脚及其功能QS1,QS0:指令队列状态信号(OUT)让外部设备能监视CPU内部指令队列状况。编码如下:QS1QS0含义00无操作01来自队列中指令代码的第一个字节10队列空11来自队列的后续字节478086最大模式系统下的基本配置488086最大模式系统下的基本配置与最小模式系统的主要区别是增加了一个总线控制器8288和一个总线仲裁器8289。8086/8088CPU输出的状态信号S2、S1

、S0同时送给8288和8289,由8288输出CPU系统所需要的总线控制信号,包括对存储器和I/O端口进行读/写的信号、对地址锁存器8282和总线收发器8286的控制信号,以及中断控制器8259的控制信号。总线仲裁器8289对系统多个处理器间共享总线资源进行控制。49总线控制器828850总线控制器82888288提供超前写命令(AMWC、AIOWC):即在写周期开始之前就启动写过程,其时序与读命令相同,在一定程度上避免处理器进入没必要的等待状态。8288有两种工作方式,由IOB决定:当IOB=0,系统总线工作方式:8288工作在适合于单处理器工作的方式。此时,要求接地,CEN接+5V。当IOB=1,I/O总线工作方式:此时IOB接+5V时,并且CEN接+5V,端输出外部设备数据允许PDEN信号。在多处理器系统中,该信号作为数据总线收发器的开启信号。518088的引脚与8086的不同之处①

8088的地址/数据复用线为8条,即AD7~AD0,而A15~A8为单一的地址线。②8088中无/S7,该引脚为SS0——状态信号线。该引脚信号在最大方式下保持高电平,在最小方式下等效于最大方式下S0的作用,SS0与IO/、DT/组合,以确定当前的总线周期

③8088的M/IO控制信号为IO/M,即该信号为高电平时,是I/O端口访问;为低电平时,是存储器访问。这与8086的M/IO线刚好相反。528086/8088的存储器组织1、8086/8088系统存储器的组织8086/8088是16位的微处理器,在组成存储系统时,总是使偶地址单元的数据通过AD0~AD7传送,而奇地址单元的数据通过AD8~AD15传送,所有的操作可以是按字节为单位也可以是按字为单位来处理的。但8086/8088系统中的存储器是以8位(一个字节)为单位对数据进行处理的。因此每个字节用一个唯一的地址码表示,这称为存储器的标准结构。53存储器中的数据组织

计算机系统中,作为一个整体一次存放或取出内存储器的数据称为“存储字”例如8位机的存储字是8位字长(即一个字节);16位机的存储字是16位字长;32位机的存储字是32位字长……。在现代计算机系统中,特别是微机系统中,内存储器一般都以字节编址,即一个存储地址对应一个8位存储单元。在Intel80X86系统中,16位存储字或32位存储字的地址是2个或4个存储单元中最低端的存储单元的地址,而此最低端存储单元中存放的是32位字中最低8位。例如,32位存储字12345678H存放在内存中的情况548086/8088系统存储器的组织需要说明的是,在存储器中,任何连续存放的两个字节都可以称为一个字。存放时,其低位字节可从奇数地址开始,这种方式称为非规则方式,奇数地址的字称为非规则字。其高位字节可从偶数地址开始,这种方式称为规则方式,。将偶数地址的字称为规则字。552、8086存储器的分段结构

由于8086/8088有20条地址线,可以寻址多达220(1M)字节,所以把1M字节的存储器分为任意数量的段,其中每一段最多可达寻址64K字节。

8086CPU把1M字节的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称逻辑段,每个段的长度为64K字节。

8086CPU中有四段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基址,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段。563、8086存储器的逻辑地址和物理地址存储器中的每个存储单元都可以用两个形式的地址来表示:实际地址(或称物理地址)和逻辑地址。实际地址:也称物理地址,是用唯一的20位二进制数所表示的地址,规定了1M字节存储体中某个具体单元的地址。逻辑地址在程序中使用,即段地址:偏移地址

。(4)物理地址的形成物理地址有两部分组成:段基址和偏移地址。

578086存储器的逻辑地址和物理地址实际地址(物理地址PA:PhysicalAddress):

PA=(段地址16)+偏移地址对二进制数来说,乘2相当于左移1位(21),乘16相当于左移4位(24);所以:

PA=段地址左移4位+偏移地址实际操作:段地址(16进制数)添0,再加上偏移地址.588086存储器的逻辑地址和物理地址若地址用16进制数表示,则左移4位,就是在原来的16进制数的后面加一个0;所以:

PA=段地址添一个0+偏移地址如:段地址=2100H,偏移地址=1234H PA=21000H +1234H 22234H598086/8088CPU中有一个地址加法器,它将段寄存器提供的段地址自动乘以10H即左移4位,然后与16位的偏移地址相加,并锁存在物理地址锁存器中。如图所示。物理地址=段基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP等。段寄存器值偏移量+物理地址16位4位16位20位存储器物理地址的计算方法60CS0000IP代码段DS或ES0000SI、DI或BXSS0000SP或BP数据段堆栈段存储器段寄存器和偏移地址寄存器组合关系61存储器组织存放的信息是字节信息,则按字节顺序存放;存放的信息是字信息(16位),则应将字的高字节放在高地址,低字节放在低地址;若将字信息的低位数据放在偶数地址,高字节放在奇数地址,则为规则存放。规则存放的字可以在一个总线周期完成读写。62存储器组织存储器由两个512KB存储体组成,分别称为高位库和低位库;低位库为偶数地址,高位库为奇数地址;对16位数据的寻址,只要用19条地址;即A19~A1;用A0和BHE分别选择高位库或高位库;只要输出一次地址(偶地址),就可完成16位数据的读写。6364存储器组织注意在图中,CPU发出的地址是A19~A0,但直接控制存储器地址的是A19~A1,接到存储器的A18~A0;658086的存储器访问操作

(1)字节访问和字访问8088是准16位微处理器,其外部数据总线为8位,内部寄存器和运算器为16位,一个总线周期只能访问一个字节,要进行字操作,必须用两个总线周期,第一个总线周期访问低位字节、第二个总线周期访问高位字节。8086是标准的16位微处理器,其外部数据总线为16位,每个存储周期可以访问存储器中的8位或16位信息。当8086访问一个整字(16位)变量时,该变量的地址为偶地址(即字变量的低字节在偶地址单元,高字节在奇地址单元),则8086将用一个总线周期访问该字变量;如果该字变量的地址为奇地址(即字变量的低字节在奇地址单元,高字节在偶地址单元),则8086要用两个连续的总线周期才能访问该字变量,每个周期访问一个字节。668086的存储器访问操作(2)“对准的”字与“未对准的”字8086CPU能同时访问奇存储体和偶存储体中的一个字节,以组成一个存储字。要访问的1个字的低8位存放在偶存储体中,称为“对准的”字(aligned,又称为“对界的”),这是一种规则的存放字。对于“对准的”字,8086CPU只要一个总线周期就能完成对该字的访问;当要访问的16位字的低8位字节存放在奇存储体中,称该字为“未对准的”字(unaligned,又称为“未对界的”),这是一种非规则的存放字。必须用两个总线周期才能访问该字。

678086的存储器访问操作68字节传送69字传送70存储器组织存储器分段分段是任意的,可以重叠,也可以不重叠;出现重叠是因为实际上对一个具体的段,不要求有64K字节。同一个物理地址可以对应不同的偏移地址和段地址(逻辑地址)。71728086/8088总线结构和总线周期

总线周期时序

1、指令周期、总线周期和时钟周期概念l

指令周期:执行一条指令所需要的时间,有若干总线周期组成。l

总线周期(机器周期):CPU进行一次数据传输所需的时间。一个总线周期至少包括4个T状态。l

T状态(时钟周期):CPU处理动作的最小单位位时间。就是时钟信号CLK的周期。73各种周期的动态演示74总线周期752、8086的基本工作时序在指令译码器和外面时钟信号作用下产生的和各个命令控制下进行的,分内操作和外操作两种内操作:控制ALU进行算术运算,控制寄存器组进行REG选择以及送DB/AB,读/写操作等外部操作:是系统对CPU的控制或是CPU对系统的控制,用户必须了解这些控制信号以便正确使用。

8086的工作时序包括:存储器读操作存储器写操作中断响应操作输入输出周期系统复位空转周期768086/8088总线结构和总线周期

二、总线周期时序2、8086的基本工作时序:存储器读操作、

存储器写操作、

中断响应操作、

输入输出周期系统复位、图2-9CPU从存储器或I/O端口读取数据的时序T1\T2\T3\TW\T4(1)T1状态•M/IO信号:从存储器读还是从I/O设备中读数据。•AD15-AD0、A19/S7-A16/S3:确定20位地址。•BHE:选择奇地址存储体选择。•ALE:地址锁存信号,以使地址/数据线分开。(2)T2状态•A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU是否连在总线上。•AD15-AD0:高阻状态。•RD:由高电平变为低电平,开始进行读操作。•DEN:变低电平,启动收发器8268,做好接收数据的准备。(3)T3状态•若存储器或I/O端口已做好发送数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU从AD15-AD0上读取数据。(4)TW状态•在T3状态,存储器或外设没有准备好数据,不能在T3状态将数据放到总线上,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到数据准备好READY=1为止。•TW状态时总线的动作与T3时相同(5)T4状态CPU对数据总线进行采样,读出数据。

778086/8088总线结构和总线周期

二、总线周期时序2、8086的基本工作时序:

存储器写操作、

中断响应操作、

输入输出周期系统复位、存储器读操作、T1\T2\T3\TW\T4(1)T1状态•M/信号:对存储器写还是对I/O设备中写数据。•AD15-AD0、A19/S7-A16/S3:确定20位地址。•BHE:选择奇地址存储体选择。•ALE:地址锁存信号,以使地址/数据线分开。•DT/R:为高电平,指示收发器8286发送数据,写操作。(2)T2状态•A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU是否连在总线上。•AD15-AD0:发16位数据。•WR:由高电平变为低电平,开始进行写操作。•DEN:变低电平,启动收发器8268,做好发送数据的准备(3)T3状态•存储器或I/O端口做好接收准备,则在T3期间将数据放DB上,在T3结束时,CPU将AD15-AD0上数据写入到存储器或I/O设备中(4)TW状态•在T3状态,存储器或外设没有准备好接收数据,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到设备准备好READY=1为止。(5)T4状态数据从DB上被撤除,各种控制信号和状态信号进入无效状态,CPU完成了对存储器或I/O设备的写操作图2-10CPU往存储器或I/O端口写数据的时序78例8086CPU工作于最小模式,试指出当CPU完成将AH的内容送到物理地址为91001H的存储单元操作时,以下哪些信号应为低电平:、、、、。若CPU完成的是将物理地址91000H单元的内容送到AL中,则上述哪些信号应为低电平。ARM处理器79ARMLtd成立于1990年11月前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内核给生产和销售半导体的合作伙伴ARM公司不生产芯片另外也提供基于ARM架构的开发设计技术软件工具,评估板,调试工具,应用软件,总线架构,外围设备单元,等等ARMOfficesWorldwide700+employeesworldwideEnglandCambridge,Maidenhead,Sheffield,BlackburnGermanyMunich FranceParis,SophiaAntipolisKoreaSeoulUSSeattle,LosGatos,WalnutCreek,Austin,Boston,SanDiegoAsiaShanghaiBeijingTaiwanJapanShin-Yokohama(Tokyo)ARMPartnershipModel数据和指令类型ARM采用的是32位架构.ARM约定:Byte: 8bitsHalfword:16bits(2byte)Word: 32bits(4byte)大部分ARMcore提供:ARM指令集(32-bit)Thumb指令集(16-bit)Jazellecores支持Javabytecode处理器工作模式ARM有7个基本工作模式:User:非特权模式,大部分任务执行在这种模式FIQ:当一个高优先级(fast)中断产生时将会进入这种模式IRQ:当一个低优先级(normal)中断产生时将会进入这种模式Supervisor:当复位或软中断指令执行时将会进入这种模式Abort:当存取异常时将会进入这种模式Undef:当执行未定义指令时会进入这种模式System:使用和User模式相同寄存器集的特权模式r0r1r2r3r4r5r6r7r8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrFIQIRQSVCUndefAbortUserModer0r1r2r3r4r5r6r7r8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersFIQIRQSVCUndefAbortr0r1r2r3r4r5r6r7r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserIRQSVCUndefAbortr8r9r10r11r12r13(sp)r14(lr)FIQModeIRQModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserFIQSVCUndefAbortr13(sp)r14(lr)UndefModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserFIQIRQSVCAbortr13(sp)r14(lr)SVCModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserFIQIRQUndefAbortr13(sp)r14(lr)AbortModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsr当前可见寄存器备用寄存器UserFIQIRQSVCUndefr13(sp)r14(lr)ARM寄存器寄存器组织概要User

mode

r0-r7,

r15,

and

cpsrr8r9r10r11r12r13(sp)r14(lr)spsrFIQr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7Userr13(sp)r14(lr)spsrIRQUser

mode

r0-r12,

r15,

and

cpsrr13(sp)r14(lr)spsrUndefUser

mode

r0-r12,

r15,

and

cpsrr13(sp)r14(lr)spsrSVCUser

mode

r0-r12,

r15,

and

cpsrr13(sp)r14(lr)spsrAbortUser

mode

r0-r12,

r15,

and

cpsrThumbstateLowregistersThumbstateHighregistersNote:System模式使用user模式寄存器集ARM寄存器ARM有37个32-Bits长的寄存器.1个用作PC(programcounter)1个用作CPSR(currentprogramstatusregister)5个用作SPSR(savedprogramstatusregisters)30个通用寄存器当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取:相应的r0-r12子集相应的r13(thestackpointer,sp)andr14(thelinkregister,lr)相应的r15

(

theprogramcounter,pc)相应的CPSR(currentprogramstatusregister,cpsr)特权模式(除system模式)还可以存取;相应的spsr(savedprogramstatusregister)程序状态寄存器条件位:N=

NegativeresultfromALUZ=ZeroresultfromALUC=ALUoperationCarriedoutV=ALUoperationoVerflowedQ位:仅ARM5TE/J架构支持指示饱和状态J位仅ARM5TE/J架构支持J=1:处理器处于Jazelle状态中断禁止位:I=1:禁止IRQ.F=1:禁止FIQ.TBit仅ARMxT架构支持T=0:处理器处于ARM状态T=1:处理器处于Thumb状态Mode位:处理器模式位2731NZCVQ2867IFTmode1623

815

54024fsxc

UndefinedJ当处理器执行在ARM状态:所有指令32bits宽所有指令必须word对齐所以pc值由bits[31:2]决定,bits[1:0]未定义(所以指令不能halfword/byte对齐).当处理器执行在Thumb状态:所有指令16bits宽所有指令必须halfword对齐所以pc值由bits[31:1]决定,bits[0]未定义(所以指令不能byte对齐).程序指针PC(r15)VectorTable异常处理当异常产生时,ARMcore:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论