ch2 微处理器与总线_第1页
ch2 微处理器与总线_第2页
ch2 微处理器与总线_第3页
ch2 微处理器与总线_第4页
ch2 微处理器与总线_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机原理

与接口技术授课教师:王磊齐鲁工业大学电气学院办公室:机电楼C320E-mail:wanglei@回顾微机系统的硬件组成ROMCPURAMI/O接口外部设备电源时钟脉冲电路ABDBCB本章学习部分第二章微处理器与总线本章主要内容总线的一般概念8088/8086微处理器工作原理外部引脚内部结构存储器组织工作时序总线总线的由来在计算机中,CPU与其他功能部件之间存在大量的信息交流,其间就需要使用通信线路连接起来,通信线的设置和连接可采用两种方式。专线式:将各个功能部件分别设置与其它部件通信的线路总线式:在多个功能部件之间设置公共的通信线即总线。ABCA'B'C'

总线示意图内部总线外部总线

由于采用了分时传送的总线结构从而大大减少了机器中信息传送线的数目。a.分时传送:多个部件并联在总线上,某一时刻,只允许一路信息在总线上传送。b.控制复杂:

总线的发送端及接收端均有三态门电路。打开三态门信息经总线传送到目的端。若不传送信息,则使三态门处于高阻状态,相当于此部件在逻辑上与总线脱离联系。c.系统结构简单,便于扩展。总线总线的分类总线按信息传送的方向可分为单向总线和双向总线。总线按所传信息的类别,通常分为数据总线、地址总线和控制总线。数据总线:是微处理器与存储器和I/O电路间数据交换的通道,可双向传送。数据总线的宽度一般与微处器处理数据的字长相同,三状态。地址总线:是微处理器输出地址用的总线,它将地址送到存储器或I/O电路,用来确定存储器中信息存放的地址或I/O电路的地址,AB一般为单向、三状态。控制总线:是用来传送控制信号,使各功能部件动作同步。2.1微处理器概述微处理器简称CPU,是计算机的核心主要包括:

运算器控制器寄存器组人们常说的16位机,32位机指的是内部总线的宽度2.28088/8086微处理器8088、8086属于第三代CPU本节主要内容:8088/8086CPU外部引线及功能8088/8086CPU的内部结构和特点各内部寄存器的功能8088/8086的工作时序

2.28088/8086微处理器概述:16位微处理器内部数据总线均为16位外部数据总线8088为8位、8086内部数据总线为16位20根地址线,可寻址内存范围220=1MB内存空间(00000H~FFFFFH)时钟频率为5MHz外部特性:40个引脚,+5V电源供电最大/最小两种工作模式

2.28088/8086微处理器8086CPU的特点程序的一般执行过程:取指令→指令译码→读取操作数→执行指令→存放结果程序:具有一定功能的指令的有序集合指令:由人向计算机发出的、能够为计算机所识别的命令。2.28088/8086微处理器8086CPU的特点8086的指令流水线采用并行流水线工作方式:通过设置指令预取队列实现串行工作方式:控制器和运算器交替工作,按顺序完成上述指令执行过程。并行工作方式:

运算器和控制器可同时工作指令执行和取指同时进行串行工作方式:8088以前的CPU采用串行工作方式取指令1执行1存结果1取指令2取操作数执行2CPUBUS忙碌忙碌忙碌忙碌并行工作方式:8088CPU采用并行工作方式取指令2取操作数BIU存结果取指令3取操作数取指令4执行1执行2执行3

EUBUS忙碌忙碌忙碌忙碌忙碌忙碌2.28088/8086微处理器8086CPU的特点8086的内存分段管理将内存分为4个段,并设置地址段寄存器,以实现对1MB(00000H~FFFFFH)空间的寻址为什么引入分段机制?(课本P39)8088寄存器是16位的,无法装载20位的物理地址,因此采用将地址空间分段的方法,即把220(1M)的地址空间分为216(64K)的段,并为每个段设置段地址和段内地址(也叫偏移地址),实际物理地址由二者通过地址加法器计算得到。

2.28088/8086微处理器8086/8088CPU的特点8086/8088支持多处理器

8088可工作于两种模式下,即:

最小模式和最大模式。最小模式:单处理机模式,控制信号较少,一般可不必接总线控制器。最大模式:多处理机模式,控制信号较多,须通过总线控制器与总线相连。2.28088/8086微处理器8088CPU的引线及功能

8086采用双列直插式封装,有40个引脚(如右图所示),但总线信号数量却大于40,故8086采用了分时复用技术,部分引脚传送两种总线信号。8086的引脚信号注:括号内为该引脚在最大模式下的名称12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/

S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU最小模式下主要引线:AD7~AD0:低8位地址和数据信号分时复用。传送地址信号时为单向,传送数据信号时为双向。A15~A8:输出8位地址信号。A19~A16/S3~S6:高4位地址信号,状态分时复用。12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/

S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPUS4S3意义00正在使用ES01正在使用SS10正在使用CS11正在使用DS表2-1S3、S4代码组合的意义S3~S6:段寄存器状态最小模式下主要引线:主要的控制和状态信号WR(Write):写信号RD(Read):读信号IO/M(IO/Memory):“0”表示访问内存“1”表示访问接口DEN(DataEnable):低电平有效时,允许进行读/写操作RESET:复位信号12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/

S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU[例]:当WR=1,RD=0,IO/M=0时,表示CPU当前正在进行

操作

读存储器最小模式下主要引线:ALE(AddressLatchEnable):地址锁存允许信号,在任一个总线周期的T1状态,ALE输出有效电平,表示地址/数据复用总线上输出的是地址信息,地址锁存器将ALE作为锁存信号,对地址进行锁存DT/R(DataTransmit/Receive):数据传输方向控制信号,高电平时CPU发送信号,低电平时接收12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/

S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU最小模式下主要引线:READY:

由CPU访问的内存或I/O设备发出,当其为高电平时,表示内存或I/O已准备好12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/

S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPUT1T2T3TwaitT4最小模式下主要引线:中断请求和响应信号INTR(InteruptRequest):可屏蔽中断请求输入端NMI(UnmaskedInterrupt):非屏蔽中断请求输入端INTA(InteruptAnswer):中断响应输出端12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/

S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU最小模式下主要引线:总线保持信号HOLD:总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求HLDA:总线保持响应信号输出端。CPU对HOLD信号的响应信号12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/

S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU2.28088/8086微处理器8086/8088CPU的内部结构8086从功能结构来讲,分为两大部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。(1)BIU部件由段寄存器、指令指针、地址加法器、指令队列缓冲器和控制电路等部分组成。(2)EU部件

由ALU、通用寄存器、标志寄存器和控制电路组成,负责指令的执行。ALU、寄存器和数据传输通路均是16bit的。执行部分控制电路ALU标志寄存器

AHAL

BHBLCHCL

DHDL

SP

BP

SI

DI通用寄存器16位1234内部暂存器

IP

ES

SS

DS

CS输入/输出控制电路外部总线∑地址加法器指令队列总线接口部件(BIU)20位8位8位执行部件(EU)BIU包括:段寄存器、指令指针、地址加法器、指令队列缓冲器和控制电路功能:1)地址加法器产生20位物理地址段寄存器存放段首地址,20位的物理地址的计算执行部分控制电路ALU标志寄存器

AHAL

BHBLCHCL

DHDL

SP

BP

SI

DI通用寄存器16位1234内部暂存器

IP

ES

SS

DS

CS输入/输出控制电路外部总线∑地址加法器指令队列总线接口部件(BIU)20位8位8位执行部件(EU)BIU功能:2)从内存取指令到指令预取队列在执行指令时,如要取操作数,则也由BIU从内存或I/O接口指定区域取出,送给EU部件去执行。在执行转移程序时,BIU使指令队列复位,从指定的新地址取指令,并立即传给执行单元执行。执行部分控制电路ALU标志寄存器

AHAL

BHBLCHCL

DHDL

SP

BP

SI

DI通用寄存器16位1234内部暂存器

IP

ES

SS

DS

CS输入/输出控制电路外部总线∑地址加法器指令队列总线接口部件(BIU)20位8位8位执行部件(EU)EU功能:指令的执行:→从指令队列中取指令代码→译码→在ALU中完成数据的运算

→运算结果的特征保存在标志寄存器FLAGS中。当指令要求将数据写到存储器和I/O电路,或需从存储器和I/O电路中读取数据时,EU向BIU发出请求,BIU自动完成这些操作。2.28088/8086微处理器8086/8088CPU的内部结构总线接口部件和执行部件的协调管理1)当指令队列中有2字节空闲时,总线接口部件就自动将指令从内存中预取到指令队列中。2)每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。2.28088/8086微处理器8086/8088CPU的内部结构总线接口部件和执行部件的协调管理3)当指令队列已满,EU又没有申请总线时,则总线空闲。4)遇到转移、调用及返回指令时,原先预取到指令队列中的指令已不再有用,BIU就自动清除指令队列中已有内容,从转移、调用或返回的新地址开始,重新从内存中预读取指令并填充指令队列。2.28088/8086微处理器8086/8088CPU的内部结构总线接口部件和执行部件的协调管理结论:指令预取队列的存在使EU和BIU两个部分可同时进行工作,从而

提高了CPU的效率降低了对存储器存取速度的要求8088的指令执行过程2.28088/8086微处理器8086/8088CPU的内部寄存器含14个16位寄存器,按功能可分为三类8个通用寄存器4个段寄存器2个控制寄存器深入理解:每个寄存器中数据的含义2.28088/8086微处理器8086/8088CPU的内部寄存器通用寄存器数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI)注意:寄存器的名字与用法有关2.28088/8086微处理器8086/8088CPU的内部寄存器通用寄存器数据寄存器(AX,BX,CX,DX)4个16位数据寄存器,它们又可分为8个8位寄存器,即:AXAH,ALBXBH,BLCXCH,CLDXDH,DL2.28088/8086微处理器8086/8088CPU的内部寄存器通用寄存器数据寄存器的通常用法AX:累加器。所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中BX:基址寄存器。在间接寻址中用于存放基地址;CX:计数寄存器。用于在循环或串操作指令中存放计数值DX:数据寄存器。在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放高16位数2.28088/8086微处理器8086/8088CPU的内部寄存器通用寄存器地址指针寄存器(SP,BP)

SP:堆栈指针寄存器,其内容为栈顶的偏移地址BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址BX与BP在应用上的区别:作为通用寄存器,二者均可用于存放数据作为基址寄存器,表示所寻找的数据所在段不一样;2.28088/8086微处理器8086/8088CPU的内部寄存器通用寄存器变址寄存器(SP,BP)

SI:源变址寄存器DI:目标变址寄存器变址寄存器常用于指令的间接寻址或变址寻址。特别是在串操作指令中,用SI存放源操作数的偏移地址,而用DI存放目标操作数的偏移地址。2.28088/8086微处理器8086/8088CPU的内部寄存器段寄存器用于存放相应逻辑段的段基地址CS:代码段寄存器。代码段存放指令代码

DS:数据段寄存器

ES:附加段寄存器

SS:堆栈段寄存器:指示堆栈区域的位置存放操作数2.28088/8086微处理器8086/8088CPU的内部寄存器控制寄存器IP:指令指针寄存器,其内容为下一条要执行指令的偏移地址FLAGS:标志寄存器,存放运算结果的特征

6个状态标志位(CF,SF,AF,PF,OF,ZF)

用于寄存程序运行的状态信息。不应人为设置

3个控制标志位(IF,TF,DF)

用于控制机器或程序的某些运行过程。人为设置D15D0

OF

DFIFTFSFZFAFPFCF符号标志单步中断中断允许方向标志溢出标志进借位标志1-有进、借位0-无进、借位半进借位标志1-低4位向高4位有进、借位0-低4位向高4位无进、借位奇偶标志1-低8位有偶数个10-低8位有奇数个11-结果为00-结果不为0零标志控制标志位8位二进制加法如下,给出各状态标志位的值:

10110101被加数8位

+10001111加数8位进位111111101000100和8位例最高位D7位产生进位:CF=1D3位产生进位:AF=1相加的结果为44H,不为0:ZF=0结果的最高位为0:SF=0两负数相加结果为正,溢出:OF=1结果中有2个1,偶数个1:PF=12.28088/8086微处理器8086/8088CPU的存储器组织8086/8088有20根地址线,可寻址1M的内存单元,编号:00000H~FFFFFH,称为物理地址。但8086/8088内部所有的寄存器都是16位的,0000H~FFFFH(64K)解决方案:内存分段物理地址:存储器中以字节为单位进行编址,即每个存储单元是一个字节,对每个单元分配一个编号,这就形成了存储单元的物理地址。物理地址从0开始编号,顺序加12.28088/8086微处理器8086/8088CPU的存储器组织1MB的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称逻辑段。然后用段基地址加上段内偏移地址来访问物理地址。逻辑地址:段基地址和偏移地址又称为逻辑地址。通常写作:XXXXH:YYYYH注意:段最大不超过216=64K,最小任意,段与段之间可以重叠、相连或分开段不能起始于任意地址,而必须起始于一个小段的首地址

小段:机器规定从0地址开始没16B构成一个小段

00000H,00001H,00002H,…,0000EH,0000FH;

00010H,00011H,00012H,…,0001EH,0001FH;

00020H,00021H,00022H,…,0002EH,0002FH;

……

第一列就是小段首地址,特征:16进制表示的地址中最后一位是0,即形如XXXX0H的形式。物理地址:存储器中每个存储单元(字节单元)的实际地址,20位逻辑地址:段基地址:每个逻辑段起始地址,每个段的起始地址必须是能被16整除的那些地址,即20位的起始地址的低四位应当是0000。用20位地址的高16位表示段的基址。偏移地址:相对段基地址的偏移量,无符号数,也称有效地址EA,是在段基址上的附加值。*每个存储单元只有唯一的物理地址,但可以有不同的逻辑地址。2.28088/8086微处理器8086/8088CPU的存储器组织20位物理地址的形成在BIU的地址加法器中形成20位的物理地址.

DSESSSCSIP地址总线AB地址加法器四个段寄存器CS:代码段寄存器DS:数据段寄存器SS:堆栈段寄存器ES:附加段寄存器可以存放偏移地址的寄存器很多2.28088/8086微处理器8086/8088CPU的存储器组织地址加法器的工作原理物理地址PA=段地址+偏移地址

=(段寄存器)×16+偏移地址

=(段寄存器)×10H+偏移地址即段寄存器的内容左移4位,加上偏移地址段基地址=6000H段首地址偏移地址物理地址代码段60009H00H12H60000H0009H例已知CS=1055H,DS=250AHES=2EF0HSS=8FF0H某操作数偏移地址=0204H画出各段在内存中的分布、段首地址及操作数的物理地址10550H250A0H2EF00H8FF00HDSESSS例CS例题解答设操作数在数据段,则操作数的物理地址为:

250AH×16+0204H=250A0H+0204H=252A4H

某内存单元的段地址由DS、偏移地址由BX给出。

若(DS)=2000H,(BX)=1000H,计算其物理地址。PA=(DS)×10H+(BX)

=2000H×10H+1000H=21000HA19A16A12A8A4A020根地址线:例物理地址信号在地址总线上传送:

地址21000H=00100001000000000000BDSESSSCSIP数据暂存器PSW标志寄存器执行部件控制电路指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组指令队列总线接口控制电路运算器地址加法器、、、指令1指令2指令3指令4、、、数据1数据2数据3、、、地址总线AB数据总线DB控制总线CB地址译码器用()表示内存单元的内容:(21000H)=0FH(2000:1000H)

=0FH(DS:BX)

=0FH

内存单元物理地址的几种表示方法:

PA=21000H=2000:1000H=DS:BX…...0FhFFh56h…...21000H内存DS:BX2000:1000H指令的地址固定由CS和IP两个寄存器决定。

(代码段寄存器和指令指针寄存器)

开机或RESET复位后,(CS)=FFFFH,(IP)=0故8086/8088执行的第一条指令所在内存的地址为:

PA=(CS)×10H+(IP)=FFFFH×10H+0=FFFF0H例操作类型正常使用(隐含)段基址可替换段地址偏移地址物理地址计算取指令CS无IP(CS)16d+(IP)堆栈操作SS无SP(SS)16d+(SP)BP间址SSCS,DS,ES有效地址EA(SS)16d+EA存取变量DSCS,ES,SS有效地址EA(DS)16d+EA源字符串DSCS,ES,SSSI(DS)16d+(SI)目标字符串ES无DI(ES)16d+(DI)逻辑地址来源:堆栈及堆栈段的使用堆栈:内存中一个特殊区域,用于存放暂时不用或需要保护的数据常用于响应中断或子程序调用[例]:若已知(SS)=1000H(SP)=2000H则堆栈段的段首地址=?栈顶地址=?若该段最后一个单元地址为10100H,则栈底=?段首栈底栈顶堆栈区8086系统内存地址的一些专用区域●

0000~003FFH1KB空间用于存放中断向量表,可存放256个中断服务程序的入口地址,每个地址占4字节。●

B0000~B0FFFH4KB为单色显示器显示缓冲区,存放屏幕当前显示字符的ASCII码。●

B8000~BBFFFH16KB为彩色显示器显示缓冲区,存放屏幕当前像素代码。●

FFFF0H启动地址。一般用来存放一条无条件转移指令,转到系统初始化程序。2.28088/8086微处理器8086/8088CPU的工作时序时序:微处理器各引脚在时间上的工作关系,有两种:时钟周期和总线周期了解CPU的工作时序有利于我们在编程时适当选用指令以缩短指令的存贮空间和指令执行时间,CPU与存贮器或I/O端口连接时,要考虑如何实现时序上的配合;用于实时控制时,必须估计或计算CPU完成操作所需时间,以便与控制过程配合。2.28088/8086微处理器8086/8088CPU的工作时序时钟周期:微处理器内部操作的最基本时钟单元,宽度为时钟信号相邻两上升沿之间的时钟间隔。T1T2T3T42.28088/8086微处理器8086/8088CPU的工作时序总线周期:CPU完成一次访问内存(或接口)操作所需要的时间。一个总线周期至少包括4个时钟周期T1T2T3T4TIT1T2T3T4总线周期总线周期地址数据地址ADCLK数据2.28088/8086微处理器8086/8088CPU的工作时序指令周期:执行一条指令的时间,一般由若干总线周期组成T1T2T3T4TIT1T2T3T4总线周期总线周期地址数据地址ADCLK数据T1T2T3TwT4T1T1典型的总线周期时序T1状态-----CPU向多路复用总线上发送地址信息,指出要寻址的内存单元地址或I/O端口地址。T2状态:-----CPU从总线上撤消地址,使总线低16位呈现高阻状态,为数据传输作准备。T3状态:-----总线低16位上出现CPU

温馨提示

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

评论

0/150

提交评论