第二章 微处理器与系统结构-1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章微处理器与系统结构本章主要内容•微处理器与系统结构–第一节微处理器的基本结构–第二节Intel8086微处理器–第三节8086中的标志寄存器和堆栈–第四节8086系统的组成–第五节8086系统时钟和总线周期第一节微处理器的基本结构•算术逻辑单元(ALU)•寄存器阵列(RG)•控制单元•总线缓冲器•高性能微处理器–指令预取部件–地址形成部件–指令译码部件–存储器管理部件2.1.1算术逻辑单元ALU•进行二进制的算术运算和逻辑运算•基本运算:加法,移位•减法、乘法、除法:转换成加法和移位操作PSW标志寄存器运算器标志寄存器运算器被加数加数和进位十进制调整2.1.2控制器发布操作命令的机构,是微机的指挥中心P30图2.2控制器程序计数器PC指令寄存器IR指令译码器ID操作控制器时序发生器外部命令内部命令地址总线数据总线取指令执行指令分析指令指令部件时序部件•时钟系统–脉冲源:–时钟启停逻辑•时钟周期T机器周期M指令周期ICT1T2T3T1T2T3T4T2T3T1M1M2Mn指令周期2.5G主频的CPU,时钟周期是多少?微操作控制部件•功能:根据指令产生计算机各部件所需要的控制信号方式特点优点缺点组合逻辑控制用硬件电路实现速度快改动困难微程序控制ROM中的微指令便于修改速度较慢可编程序逻辑阵列PLA通过程序来设计组合逻辑兼顾以上两种的优点2.1.3总线•总线是计算机各部件间传递信息的公共通路。•片内总线–在微处理器内部各单元间传递信息的总线–单总线/双总线/多总线运算器运算器被加数加数和进位寄存器组控制器CPU存储器输入输出运算器运算器加数寄存器组被加数和片外总线•片外总线:在CPU和各外部部件之间传送信息的总线,系统总线,三总线结构–数据总线:DB(DataBus)–地址总线:AB(AdressBus)–控制总线:CB(ControlBus)•单总线结构,分时使用–发送:同一时刻只允许一个部件发送数据–接收:不限存储器I/O接口输入设备I/O接口输入设备CPU数据总线地址总线控制总线数据总线的宽度决定数据传输的速度地址总线的宽度决定寻址能力(范围大小)三态缓冲器三态缓冲器部件1系统总线三态缓冲器部件2三态缓冲器部件3总线缓冲/锁存器CPU存储器输出/输出设备运算器运算器加数寄存器组被加数和数据总线地址总线片内总线数据总线缓冲/锁存器地址总线缓冲/锁存器控制器2.1.4寄存器阵列•功能:临时存放数据和地址•一、存放待处理数据的寄存器(程序员使用)–累加器–通用寄存器组•二、存放地址码的寄存器(由CPU自动维护,不允许程序员修改)–程序计数器–堆栈指示器•三、存放控制信息的寄存器–指令寄存器(由CPU自动维护,不允许程序员修改)–标志寄存器(由CPU自动维护,但程序员可以修改)•四、起缓冲作用的寄存器(由CPU自动维护,不允许程序员修改)–数据总线缓冲寄存器DBUF–地址总线缓冲寄存器ABUF第二节Intel8086微处理器•特点–双列直插式–16位:内部总线、寄存器、运算部件–5MHz–20条地址线:1M寻址空间Intel80868086:对外有16根数据线,20根地址线可寻址的内存单元数220=1M内存地址范围00000~FFFFFH8088:内部寄存器、运算部件及内部操作均按16位设计,除对外数据线为8根外,其余与8086基本相同。为与当时已有的8位外设接口芯片兼容。IBMPC、IBMPC/XT采用8088CPU808680881.总线接口部件BIU(BusInterfaceUnit)→运输部门2.执行部件EU(ExecuteUnit)→加工部门3.工作方式串行:图2.6并行:图2.7DSESSSCSIP数据暂存器执行部件控制电路指令译码器总线接口控制电路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组BIUABDBCB地址加法器指令队列PSW标志寄存器EU运算器8086的功能结构DSESSSCSIP数据暂存器执行部件控制电路指令译码器总线接口控制电路AXBXCXDXAHBHDIBPSPBLCLDL寄存器组BIUABDBCB地址加法器指令队列PSW标志寄存器EU运算器8086的功能结构:负责取指令,读、写负责指令的执行CHDHALSI总线接口部件BIU主要功能负责与存储器、I/O设备之间传递信息(指令和数据)具体完成:(1)从内存取指令,送到指令队列,并管理指令队列;(2)读数据:配合执行部件从指定的内存单元或I/O端口取数据;(3)写数据:将执行部件的运算结果送到指定的内存单元或I/O端口。BIU的构成•4个16位段寄存器:–CS,DS,ES,SS•16位IP指令指针寄存器•20位地址加法器•指令队列–(8088为4字节/8086的指令队列为6字节)•总线控制电路(包括三组总线):–处理器与外界总线联系的转接电路。DSESSSCSIP数据暂存器PSW标志寄存器执行部件控制电路指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组指令队列总线接口控制电路运算器地址加法器8086结构BIUEUBIU-指令操作•指令队列:先进先出队列FIFO•读指令:–当BIU有2个或2个以上的字节空间,而且EU没有向BIU请求读或写数据时,预取后续指令,填入指令队列–每次利用一个存储器的读周期,读取2个字节的指令(偶地址开始)–既不取指令,也不读写数据时,BIU处于空闲状态•指令队列管理–队列输出端指针–队列输入端指针读取指令的过程输出指针输入指针123456输出指针输入指针123456输出指针输入指针123456输出指针输入指针123456取走一字节的指令填充2字节的指令取走3字节的指令由于有指令队列的存在,在EU执行指令的同时,BIU可取指令,即BIU和EU可处于并行工作状态。取指取指取指取指取数取指等待执行执行执行等待执行时间8086的工作原理:BIUEU执行单元EU•主要功能•指令的译码和指令的执行(包括算术、逻辑运算,控制命令等)。•构成部分:•8个16位寄存器:AX、BX、CX、DXSP、BP、DI、SI•标志寄存器PSW•算术逻辑运算部件ALU•指令译码器•控制部件DSESSSCSIP数据暂存器PSW标志寄存器执行部件控制电路指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组指令队列总线接口控制电路运算器地址加法器8086结构BIUEUDestinationIndex目的变址寄存器SIDIBPSPAX累加器AccumulatorBX基数寄存器BaseCX计数寄存器CountDX数据寄存器DataAHBHCHDHALBLCLDLIPPSWDSESSSCS数据段寄存器DataSegment附加段寄存器ExtraSegment堆栈段寄存器StackSegment代码段寄存器CodeSegmentProcessorStatusWord状态标志寄存器InstructionPointer指令指针寄存器变址寄存器段寄存器控制寄存器SourceIndex源变址寄存器BasePoint基址指针寄存器StackPoint堆栈指针寄存器指针寄存器通用寄存器8086的寄存器组地址和节•内存大小:1M字节•00000-FFFFF•节:16个字节第0节16个单元第1节16个单元第65535节16个单元第2节16个单元...00000H00001H0000FH00010H00011H0001FH00020H00021H0002FHFFFF0HFFFF1HFFFFFH...段•段:64K字节•从节开始...00000H00001H0FFFFH23450H3344FH33450H4344FHF0000HFFFFFH.........23460H.........•34567•3:4567•34:567•345:67•3456:7...34567H段地址和偏移量•段地址:只取段起始地址高16位值。•偏移地址:指在段内某内存单元的物理地址,相对段起始地址的距离(差值)。…段起始地址:33450h偏移量:1117h物理地址:34567h段起始地址:34560h偏移量:7h地址加法器20位物理地址的形成段寄存器0000偏移量20位物理地址物理地址=段地址X16(10H)+偏移量1、段寄存器段寄存器:4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。CS——CodeSegmentRegister代码段寄存器用来识别当前代码段(程序一般放在代码段)。DS——DataSegmentRegister数据段寄存器用来识别当前数据段寄存器。SS——StackSegmentRegister堆栈段寄存器,用来识别当前堆栈段。ES——ExtraSegmentRegister附加段寄存器,用来识别当前附加段。段寄存器的初始值代码段:64K数据段:64K堆栈段:64KCSDSSSCSDSSS64K2、通用寄存器AX、BX、CX、DX作为通用寄存器。用来暂存计算过程中所用到的操作数,结果或其它信息。访问形式:可以用16位的访问;或者可以用字节(8位)形式访问,它们的高8位记作:AH、BH、CH、DH。它们的低8位记作:AL、BL、CL、DL。AX——(Accumulator)作为累加器。它是算术运算的主要寄存器,所有I/O指令都使用这一寄存器与外部设备交换数据。例:INAL,20HOUT30H,AXBX——Base用作基址寄存器使用。在计算内存储器地址时,经常用来存放基址。例:MOVAX,[BX+03H]CX——Count可以作计数寄存器使用。在循环LOOP指令和串处理指令中用作隐含计数器。例:MOVCX,200HAGAIN:…………LOOPAGAIN;(CX)-1(CX),结果0转AGAINDX——Data可以作为数据寄存器使用。一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;对某些I/O操作DX可用来存放I/O的端口地址(端口地址256)。例:MULBX;(AX)(BX)(DX)(AX)例:INAL,DX2.地址指针与变址寄存器:SP、BP、SI、DI四个16位寄存器。以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。地址指针寄存器(SP、BP)SP(stackpointer)——堆栈指针寄存器用来指示栈顶的偏移地址,必须与SS段寄存器联合使用确定实际地址。堆栈和指针如下页图所示。BP(basepointer)——基址指针寄存器可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。8086系统存储器与总线连接堆栈和指针设:(SS)=3F00H,(SP)=0100H堆栈和指针如下图:堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,严格按照后进先出的工作原则。数据总线地址总线D7~D01MX8位存储体A19~A000000HFFFFFHA19~10............a1a0栈底3F100H3F060H(SP)=60H3F000H(SS)=3F00H(SP)=100H(SP)=0FEH(SP)=0FCH•变址寄存器(SI、DI)SI——SourceIndexRegister源变址寄存器DI——DestinationIndex目的变址寄存器使用场合:常用于变址寻址。•一般与DS联用,用来确定数据段中某一存储单元的地址,SI,DI具有自动增量和自动减量功能.例:MOVAX,[SI]•在串处理指令中,SI、DI作为隐含的源变址和目的变址寄存器分别达到在数据段和附加段中寻址的目的。执行示意图如右图。例:……MOVSI,2000HMOVDI,3000HMOVCX,100HCLD......MOVSB……...................3000H:2000H3000H:2100H5000H:3000H5000H:3100HDS:2000H~DS:20FFHES:3000H~ES:30FFH(DS)(SI)(ES)(DI)存储器串处理指令执行示意图4、控制寄存器控制寄存器

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功