微机体系结构_第1页
微机体系结构_第2页
微机体系结构_第3页
微机体系结构_第4页
微机体系结构_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

第二章

微型计算机的体系结构主要内容微处理器内部结构;8086的内部寄存器和标志位;8086微处理器的引脚功能;8086的存储器组织;8086CPU时序80X86系列微处理器的结构特点。3微处理器的功能是计算机系统的核心根据指令实现各种相应的运算实现数据的暂存实现与存储器和接口的信息通信

…….微处理器的一般结构运算器算术逻辑运算,由加法器和(ALU)一些辅助逻辑电路组成指令流控制控制器时序控制,产生节拍定时信号指令译码和操作控制寄存器组存放临时数据、运算的中间结果、运算特征、操作数地址性能:8位→16位→32位→64位主要部件程序指令1指令2指令3指令4指令n……取指令指令译码取操作数执行指令存结果指令周期操作码操作数执行微型计算机的工作过程程序:具有一定功能的指令的有序集合指令:由人向计算机发出的、能够为计算机所识别的命令。指令执行过程取指令指令译码取操作数执行指令存结果问题:1.CPU如何知道从哪里取出程序的第一条指令?——操作系统2.CPU如何按程序控制流执行指令?——程序计数器3.CPU如何知道从哪里取操作数?——地址、寻址方式7指令流水线指令流水线有两种运作方式:串行方式:

取指令和执行指令在不同的时刻按顺序执行。并行方式:取指令和执行指令可同时执行,需要有能并行工作的硬件的支持。8串行工作方式8086以前的CPU采用串行工作方式取指令1执行1取指令2执行2CPUBUS忙碌忙碌取指令3执行3忙碌空闲空闲空闲t1t0t2t3t4t56个周期执行了3条指令9并行工作方式8086CPU采用并行工作方式取指令1取指令2取指令3取指令4执行1执行2执行3BUS忙碌执行4CPUt1t0t2t3t4t5取指令5执行5忙碌忙碌忙碌忙碌忙碌6个周期执行了5条指令108088/8086CPU的特点采用并行流水线工作方式

——通过设置指令预取队列实现对内存空间实行分段管理

——

将内存分为4个段并设置地址段寄存器,以实现对1MB空间的寻址支持多处理器系统CPU内部结构存储器寻址部分工作模式2.18086CPU的内部逻辑结构8086是Intel系列的16位微处理器,常用HMOS工艺制造,它有16位数据线和20根地址线,可寻址的地址空间达220即1MB。8088微处理器是准16位,其内部逻辑按16位设计,但外部数据总线只有8条。8086的内部逻辑结构由总线接口部件(BIU)和执行部件(EU)构成,两者可以并行工作。执行部件EU(ExecutionUnit)EU的功能是执行指令;EU从指令队列中取出指令代码,将其译码,发出相应的控制信息;控制数据在ALU中进行运算,运算结果的特征保留在FLAGS中。EU由以下各部分组成:算术逻辑单元ALU标志寄存器FLAGS(FR)通用寄存器组执行部件控制电路总线接口部件BIU(BusInterfaceUnit)BIU负责与存储器I/O端口传送信息。BIU从内存中取出指令送到指令队列;当EU需要数据时,BIU与EU配合,从指定的内存或I/O端口取出数据给EU;当运算结束时,BIU将运算结果送入指定的内存单元或外设。BIU的组成:专用寄存器组地址加法器指令队列(6字节)总线控制逻辑BIU与EU的动作管理当指令队列中有2个空字节时,BIU自动把指令取到指令队列中。当指令队列已满,而EU无总线访问请求时,BIU进入空闲状态。EU从指令队列的头部取出指令,并执行。在执行中,如需要访问内存或I/O设备,则EU请求BIU取操作数,并直等到需要的操作数到来后,EU才继续操作。若BIU处于空闲态,它立即响应请求,若BIU正在取指令到指令对列,它先完成取指令操作,再响应EU的请求。

EU在执行转移、调用、返回等指令时,指令队列中的指令被清除,BIU重新从存储器中取出指令送入指令队列,EU才继续执行指令。因为EU与BIU并行工作,在整个运行期间,BIU总是忙碌的,充分利用了总线,CPU效率很高。(动画)2.28086的寄存器结构存储器是计算机存储信息的地方。掌握数据存储格式,以及存储器的分段管理对以后的汇编程序设计非常重要存储器也就是平时所说的主存,也叫内存,可直接与CPU进行数据交换。主存利用地址区别寄存器是微处理器(CPU)内部暂存数据的存储单元,以名称表示,例如:AX,BX..….等外存主要指用来长久保存数据的外部存储介质,常见的有硬盘、光盘、磁带、U盘等。外存的数据只能通过主存间接地与CPU交换数据程序及其数据可以长久存放在外存,在运行需要时才进入主存你能区别寄存器、存储器(主存)、外存(包括硬盘、光盘、磁带等存储介质)吗?AX(Accumulator)累加器。用于算术、逻辑运算以及与外设传送信息等BX(BaseaddressRegister)基址寄存器。常用做存放存储器地址通用寄存器组CX(Count)计数寄存器。在循环和串操作时,常用作计数器。DX(Data)数据寄存器。常用来存放双字长数据的高16位,或存放外设端口地址AX:

AH

AL

BX:

BH

BLCX:

CH

CL

DX:

DH

DL例如上述4个寄存器皆为16位寄存器,但又可将高、低8位分别作为两个独立的8位寄存器使用。

SP(StackPointer)堆栈指针寄存器BP(BasePointer)基址指针寄存器SI(SourceIndex)源变址寄存器DI(DestinationIndex)目的变址寄存器以上4个寄存器只能作为16位的寄存器用。段寄存器CS(CodeSegment)— 代码段寄存器SS(StackSegment)— 堆栈段寄存器DS(DataSegment)— 数据段寄存器ES(ExtraSegment)— 附加段寄存器段寄存器都是16位的寄存器,用于存放段基值(16位的无符号数)控制寄存器IP(InstructionPointer)指令指针寄存器。指示主存储器指令的位置。存放预取指令的偏移地址;随着指令的执行,IP将自动加1,以指示下一条指令所在的存储器位置;IP寄存器与CS段寄存器联合使用以确定下一条指令的存储单元地址FLAGS(FlagsRegister)标志寄存器Flags是16位寄存器,但只用其中的9位。这9位包括6个状态标志位和3个控制标志位。15OFDF1011IFTF89SFZF67AF45PF23CF016个状态标志位:CF(CarryFlag):进位标志CF=1表示本次运算中,最高位(D7位或D15位)发生进位(加法运算)或借位(减法运算)。CF=0表示没发生进位(或借位)PF(ParityFlag):奇偶标志PF=1 运算结果的低8位中有偶数个“1”PF=0 运算结果的低8位中有奇数个“1”AF(AuxiliaryCarryFlag):辅助进位标志。(又称半进位标志)AF=1表示本次运算D3位向D4位有进位(加法运算)或借位(减法运算)。AF=0表示无半进位ZF(ZeroFlag):零标志。ZF=1表示本次运算结果为0;否则ZF=0。SF(SignFlag):符号标志。SF=1表示本次运算结果的最高位(D7或D15位)为“1”,否则,SF=0。OF(OverflowFlag):溢出标志。OF=1表示本次运算结果超出了带符号数范围,即溢出,否则OF=08位补码的整数范围是:-128~+12716位补码的整数范围是:-32768~+327672个n位的无符号二进制数相加,结果大于2n-1,称为进位。应用CF标志位作判断。2个n位的带符号二进制数相加,结果大于2n-1-1或小于-2n-1,称为溢出,应用OF标志位作判断。上述的n为字长,8086的n为8或16。关于进位与溢出三个控制标志位为:DF(DirectionFlag):方向标志。DF=1,使串操作按减地址方式进行;DF=0,使串操作按增地址方式进行。IF(InterruptFlag):中断标志。IF=1,允许CPU响应可屏蔽中断;IF=0,禁止CPU响应可屏蔽中断。TF(TrapFlag):单步标志。TF=1,CPU进入单步工作方式;TF=0,CPU正常执行。例如:二进制数无符号数带符号数加数1000001004+4加数20000101111+11和0000111115+15CFOFZFSFPFAF000010二进制数无符号数带符号数加数1000001117+7加数211111011251-5和000000102+2CFOFZFSFPFAF100001二进制数无符号数带符号数加数1000010019+9加数201111100124+124和10000101133-123CFOFZFSFPFAF0101018086CPU的两种工作模式8086可工作于两种模式下,即:最小模式和最大模式。最小模式不支持8087。存储器和I/O控制信号全部由CPU产生。最大模式支持8087。CPU的部分信号线被用作8087的控制,因此需要由8288总线控制器来产生这些控制信号。注:80286以后的CPU不再区分这两种工作模式。最小模式下的连接示意图8086CPU••控制总线数据总线地址总线地址锁存器数据总线缓冲器ALE时钟发生器8284A地址/数据82868282Vcc

MN/MXDENDT/R最大模式下的连接示意图8088CPU数据总线地址总线地址锁存器数据总线缓冲器时钟发生器总线控制器控制总线8284A8288ALECLK

MN/MX82828286GND2.38086CPU的外部引脚及功能8086CPU芯片是40条引脚的双列直插式封装;8086CPU有两种工作模式,即最大模式和最小模式引脚采用了分时复用方式,有8条引脚在两种工作模式中具有不同的功能。8086的各引脚功能:AD15~AD0(AddressDataBus)分时复用地址/数据线传送地址时三态输出;传送数据时可双向三态输入/输出。A19/S6~A16/S3(Address/Status)分时复用地址/状态线作地址用时,A19~A16与AD15~AD0一起构成访问内存的20位物理地址当CPU访问I/O端口时,A19~A16保持为“0”作状态用时,S6~S3输出状态信息。(见表2.1)表2.1S4S3状态编码S4S3段寄存器00ES01SS10CS(I/O,INT)11DSS5指示中断标志状态,当IF=1时,S5=1。S6恒为“0”。(BusHighEnable/Status)总线高位有效信号。三态输出,低电平有效。在读写存储器或I/O端口时,用作体选信号。(见表2.2)表2.2和AD0编码的含义AD0总线使用情况0016位数据总线上进行字传送01高8位数据总线上进行字节传送10低8位数据总线上进行字节传送11无效RD(Read)读信号。三态输出,低电平有效。指示CPU正在读内存或I/O端口。WR(Write)写信号。三态输出,低电平有效。指示CPU正在写内存或I/O端口。M/IO(Memory/IO)存储器或I/O端口访问信号。M/IO为高电平时,表示当前CPU正访问存储器;M/IO为低电平时,表示当前CPU正访问I/O端口。READY准备就绪信号。外部输入,高电平有效。它有效表示内存或I/O端口已准备好传送数据。无效时要求CPU插入等待周期Tw。INTR(InterruptRequest)中断请求信号。输入,高电平有效有效时,表示外部向CPU发出了中断请求。TEST测试信号。输入,低电平有效当CPU执行WAIT指令时,每隔5个时钟周期对TEST进行一次测试仅当TEST有效时,CPU才执行下一条指令。INTA(InterruptAcknowledge)中断响应信号。输出,低电平有效表示CPU响应了外部发来的INTR信号。RESET复位信号。输入,高电平有效。CPU接收到RESET信号后,停止当前操作,并将工作寄存器和指令队列复位到初试状态。ALE(AddressLatchEnable)地址锁存允许信号。输出,高电平有效。在最小模式系统中作地址锁存器的选通信号。DT/R(DataTransmit/Receive)数据发送/接收控制信号。用于数据收发器的传送方向。当DT/R为高电平时,表示CPU向外部输出数据当DT/R为低电平时,表示外部向CPU输入数据。DEN(DataEnable)数据允许信号,三态输出,低电平有效。在最小模式系统中作为数据收发器的选通信号。HOLD(HoldRequest)总线请求信号。HLDA(HoldAcknowledge)总线请求响应信号。以上两条信号线都是用于控制总线。MN/MX(Minimum/Maximum)工作模式选择信号,输入。MN/MX为高电平,表示CPU工作在最小模式系统中。CLK(Clock)主时钟信号,由时钟发生器输入8086CPU的时钟频率通常为8MHz。Vcc(电源)8086CPU使用单一的+5伏电源。由Vcc输入。2.3存储器的组织 8086CPU有20根地址线,它可直接对220=1M个内存单元编址;每个存储单元都有一个编号;被称为存储器地址,这1M内存单元按照 00000H~FFFFFH来编址每个存储单元存放一个字节的内容。2.3.18086系统中数据的存储格式二进制位Bit:存储一位二进制数:0或1字节Byte: 8个二进制位,D7~D0字Word: 16位,2个字节,D15~D0双字DWord:32位,4个字节,D31~D0计算机中信息的单位最低有效位LSB:数据的最低位,D0位最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、D15、D31位图示多字节数据在存储器中占连续的多个存储单元:存放时,低字节存入低地址,高字节存入高地址;表达时,用它的低地址表示多字节数据占据的地址空间。80x86处理器采用“低对低、高对高”的存储形式,被称为“小端方式LittleEndian”。相对应还存在“大端方式BigEndian”。例如:00002H”字节”单元存放有一个数据34H表达为 [00002H]=

34H00002H“字”单元的内容为:1234H表达为 [00002H]=1234H00002H“双字”单元的内容为:78561234H表达为 [00002H]=78561234H图示2.3.2存储器的分段管理8086系统将的1MB空间分成多个逻辑段(Segment)每个逻辑段的容量≤64KB8086系统中,把16字节的存储空间称作一节(Paragraph)要求各逻辑段从节的整数边界开始,即段首地址的最低4位地址码总是为0000B。物理地址与逻辑地址物理地址识别任一存储单元唯一的20位地址。段基址段首地址的高16位地址码,它存放于相应的段寄存器中偏移地址内存单元相对于段首址的偏移量,它是16位无符号数“段地址”、“偏移地址”也称作逻辑地址段地址说明逻辑段在主存中的起始位置偏移地址说明主存单元距离段起始位置的偏移量“段地址”、“偏移地址”也称作逻辑地址段基地址:段内偏移地址分段后在用户编程时,采用逻辑地址,形式为分隔符物理地址14700H逻辑地址1460H:100H物理地址的形成物理地址=段基址×16+偏移地址将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址逻辑地址

1460:100、1380:F00物理地址 14700H14700H14600H+100H14700H13800H+F00H14700H段地址左移4位加上偏移地址得到物理地址例如:段基址:偏移地址=1200H:0345H物理地址=12345H例如:段基址:偏移地址=1220H:0145H物理地址=12345H一个存储单元只有一个物理地址,却可以有多个不同的逻辑地址;不同的段地址表明它处在不同的逻辑段段基址由段寄存器提供,偏移地址由操作数的寻址方式确定,它们的组合取决于操作类型和存储器的寻址方式。系统对逻辑地址的来源有约定,在编程时不能违反这个约定。说明各逻辑段的功能代码段用来存放程序的指令序列代码段寄存器CS存放代码段的段地址指令指针寄存器IP指示下条指令的偏移地址处理器利用CS:IP取得下一条要执行的指令堆栈段确定堆栈所在的主存区域堆栈段寄存器SS存放堆栈段的段地址堆栈指针寄存器SP指示堆栈栈顶的偏移地址处理器利用SS:SP操作堆栈顶的数据数据段存放运行程序所用的数据数据段寄存器DS存放数据段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用DS:EA存取数据段中的数据附加段是附加的数据段,也保存数据附加段寄存器ES存放附加段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用ES:EA存取附加段中的数据串操作指令将附加段作为其目的操作数的存放区域程序的指令序列必须安排在代码段程序使用的堆栈一定在堆栈段程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段数据的存放比较灵活,实际上可以存放在任何一种逻辑段中演示表2.4逻辑地址的来源操作类型段基址偏移地址正常来源其它来源取指令CS无IP堆栈操作SS无SP存/取变量DSCS、ES、SS有效地址EA取源串DSCS、ES、SSSI存/取目的串ES无DIBP作基址寄存器SSCS、ES、DS有效地址EA2.4CPU的操作时序8086CPU主要操作为:系统复位和启动操作暂停操作总线操作中断操作最小模式下的总线保持最大模式下的总线请求/允许2.4.1基本概念时钟周期CPU的时钟信号(CLK)周期。如8086-1的主频为10MHz,一个时钟周期为100ns。总线周期BIU完成一次访问存储器所需的时间为一个总线周期。一个基本的总线由4个时钟周期组成,也称为4个状态,即T1、T2、T3和T4状态。有时,CPU需要在T3之后加入一个或几个附加的时钟周期Tw,称为等待状态。指令周期

温馨提示

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

评论

0/150

提交评论