第2章微型计算机和微处理器的结构.ppt_第1页
第2章微型计算机和微处理器的结构.ppt_第2页
第2章微型计算机和微处理器的结构.ppt_第3页
第2章微型计算机和微处理器的结构.ppt_第4页
第2章微型计算机和微处理器的结构.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机原理,- 8086/8088微型计算机和微处理器结构,第2章 微型计算机和微处理器功能结构(4h),2.1 微型计算机的组成及工作原理 2.2 8086/8088微处理器的功能结构 2.3 80286微处理器的功能结构 2.4 80386/80486 cpu的功能结构 2.5 pentium级cpu的功能结构,备注: 主要讲 8086/8088微型计算机和微处理器结构,80286/80386/80486不讲,微型计算机系统的构成,显示器(输出设备),主机箱,鼠标(输入设备),键盘(输入设备),电源,光驱,硬盘,内存,cpu,主板,扩展卡,微型计算机系统的构成主机箱,典型的微型计算机硬件组成示于图2.1,它由下列几种大规模集成电路通过总线连接而成。,图2.1 微型计算机的硬件组成,2.1 微型计算机的组成及工作原理,微型计算机包括: 微处理器cpu; 一定容量的内部存储器(包括rom、ram); 输入/输出接口电路组成; 各功能部件之间通过总线有机地连接在一起。 其中: 微处理器是整个微型计算机的核心部件。 内部存贮器按照读写方式的不同分为rom和ram; 输入/输出接口电路是外围设备与微型计算机之间的连接电路,在两者之间进行信息交换的过程中,起 暂存、缓冲、类型变换及时序匹配的作用; 总线是cpu与其它各功能部件之间进行信息传输的通道,按所传送信息的不同类型,总线可以分为数据总线db、地址总线ab 和 控制总线cb三种类型。,2.1.1 微处理器(微处理机) 微处理器:是微型计算机的中央处理部件,是由一片或几片大规模集成电路组成的中央处理器,一般也称cpu(center process unit)。其内部通常包括算术逻辑部件,累加器、通用寄存器组,程序计数器,时序和控制逻辑部件,内部总线等等。,2.1.2 存储器 存储器是指微型计算机的内存储器。它通常由cpu 之外的半导体存储器芯片组成,用来存放程序、原始操作数、运算的中间结果数据和最终结果数据。包括ram (random access memory)和rom(read only memory)。,2.1.3 输入/输出设备及其接口电路 输入/输出设备 输入/输出(input/output,i/o)设备统称为外部设备,简称i/o设备,是微型计算机的重要组成部分。 输入/输出设备的任务是将程序、原始数据及现场信息以计算机所能识别的形式送到计算机,经过计算机自动计算或处理并将其结果或回答信号以人能识别的形式表示出来。 常用的输入设备包括键盘、鼠标器、 数字化仪、扫描仪、a/d转换器、只读激光盘 (cd-rom )及其驱动器等;输出设备的任务是将微型机中常用的输出设备包括显示器、打印机、绘图仪、d/a转换器等。, i/o接口电路(i/o interface) 接口电路的作用:cpu只能处理数字量,而外部设备处理的有数字量、模拟量等。 因而,外部设备(简称外设)与cpu间的硬件连线和信息交换不能直接进行,必须经过接口电路进行协调和转换。 接口电路的主要职责是将微处理器和输入/输出设备之间的信息统一起来。 常用的i/o接口电路有:8255a可编程并行接口电路、8253可编程定时/计数电路、8251可编程串行接口电路、8237直接存储器存取电路(dma) 等。,2.1.4 总线 总线是连接多个功能部件或多个装置的一组公共信号线。按在系统中的不同位置,总线可以分为内部总线和外部总线。内部总线是cpu内部各功能部件和寄存器之间的连线;外部总线是连接系统的总线,即连接cpu、存储器和i/o接口的总线,又称为系统总线。 按所传送信息的不同类型,总线可以分为: 数据总线db (data bus)、 地址总线ab (address bus) 控制总线cb (control bus) 通常称微型计算机采用三总线结构。, 地址总线(address bus) 地址总线是微型计算机用来传送地址信息的信号线。地址总线的位数决定了cpu可以直接寻址的内存空间的大小。因为地址总是从cpu发出的,所以地址总线是单向的、三态总线。 单向指信息只能沿一个方向传送; 三态指除了输出高、低电平状态外和高阻抗状态(浮空状态)。 数据总线(data bus) 数据总线是cpu用来传送数据信息的信号线(双向、三态)。数据总线是双向三态总线,即数据既可以从cpu送到其它部件,也可以从其它部件传送给cpu,数据总线的位数和处理器的位数相对应。, 控制总线(control bus) 控制总线是用来传送控制信号的一组总线。这组信号线比较复杂,由它来实现cpu对外部功能部件(包括存储器和i/o接口)的控制及接收外部传送给cpu的状态信号,不同的微处理器采用不同的控制信号。 控制总线的信号线有:单向、双向、三态、非三态等,取决于具体的信号线。,8086/8088微处理器是intel公司推出的第三代cpu芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处理器均采用dip(40脚双列直插)封装。,2.2 8086/8088微处理器的功能结构,8086/8088以及80186、80286微处理器均属intel公司生产的第三代16位微处理器。 它们与第二代8位微处理器的区别不仅是数据总线的位数增加了1倍,更重要的是采取了流水线处理技术。具体来说,是将指令执行部件eu( execution unit)和总线接口部件biu (bus interface unit)分为两个独立的部分,可并行操作。图2.2示出串行处理和流水处理的情况。 一个简单的微处理器,如8位微处理器,它们在执行一条指令时,指令取出、指令译码、数据取出、指令执行和结果存储是串行进行的,见图2.2(a)。(p40),2.2.1 流水处理,时间,(a)串行处理,biu,eu,(b)流水处理,图2.2 串行处理和流水处理,如图: 8086/8088 cpu 由于指令执行部件eu和总线接口部件biu相互独立,可并行操作,进行流水线处理。若一条指令执行过程中不需要从存储器取操作数和向存储器存储结果,即不占cpu总线时间,总线接口部件便可对下一条要执行的指令预取。可见。采用流水线技术提高了指令执行速度。,biu,eu,(b)流水处理,intel公司同期推出的intel8088微处理器,其内部寄存器,内部操作等均按16位处理器设计,与intel 8086微处理器基本上相同,而外部数据为8位,故称为准16位微处理器。 8086为典型的16位cpu: 16位的内部数据总线,16位外部数据总线; 8088为准16位cpu: 16位的内部数据总线,8位外部数据总线; 20 位地址信号线,可寻址1m字节存储单元; 利用低16位的地址总线来进行i/o端口寻址,可寻址64k 个i/o端口; 较强的指令系统; 中断功能强,可处理内部软件中断和外部中断,中断源可达256个; 单一的5v电源,单相时钟 5mhz。,2.2.2 8086/8088微处理器的一般性能特点:,图2.3 8086/8088cpu内部功能结构图,2.2.3 8086/8088微处理器的功能结构,从功能上来看,8086/8088 cpu可分为两部分,即总线接口部件biu(bus interface unit)和执行部件eu(execution unit)。,(1) 执行部件(eu) 功能:负责指令的执行。(主要进行8位及16位的各种运算) 组成:alu(算术逻辑单元); 通用寄存器组; 标志寄存器( flags )。 通用寄存器(ax、bx、cx、dx) 8086 有4个16位的通用寄存器(ax、bx、cx、dx),可以存放16位的操作数,也可分为8个8位的寄存器(al、ah;bl、bh;cl、ch;dl、dh)来使用。其中ax称为累加器,bx称为基址寄存器,cx称为计数寄存器,dx称为数据寄存器。这些寄存器在具体使用上有一定的差别,如表2-1所示。,表2-1 内部寄存器主要用途,指针寄存器(sp和bp ) sp和bp位两个16位的指针寄存器。 sp是堆栈指针寄存器,用来存放现行堆栈段的段内偏移地址,并具有步进增量和减量的功能。由它和堆栈段寄存器ss一起来确定堆栈在内存中的位置; bp是基数指针寄存器,通常用于存放基地址。 当程序执行:调用子程序或响应中断时的主程序时,要保证程序执行完后正确的返回主程序,则需要保存断点地址以及其他寄存器的内容。,例如,进行子程序嵌套(见图2.5)时,不仅需要把许多信息(包括断点地址和寄存器内容等)逐一存入堆栈并保留下来,还必须能把堆栈所保留的信息逐一正确地取出来并返回原处。,图2.5 子程序的嵌套,堆栈是一组寄存器或一个存储区域,用来存放调用子程序或响应中断时的主程序断点地址及其他寄存器的内容。 堆栈组成的方法有两种:硬件堆栈和软件堆栈。微处理器内一组由寄存器构成的堆栈称为硬件堆栈。它的优点是访问的速度快;缺点是寄存器的数量即堆栈的深度有限。在存储器中开辟一个区域构成的堆栈称为软件堆栈。它的优点是堆栈的深度几乎没有限制;缺点是访问堆栈的速度较慢。80x86系列微处理器均采用软件堆栈。 下面以8086微处理器为例,简单叙述堆栈的工作原理。,当将信息存入堆栈或从堆栈中取出信息时,都必须严格的按照“后进先出”规则进行。 在8086中,堆栈被定义为由ss:sp寄存器对指出的存储区域。堆栈段的起始地址由ss段寄存器内容左移4位形成。堆栈段内的偏移地址由sp寄存器指出。如图2.6 (a)为8086堆栈的逻辑地址。,图2.6 (a) 8086堆栈的逻辑地址,sp,ss,由于sp为16位,在8086中堆栈的最大容量为64kb。图2.6(b)示出堆栈的形式和术语,其中栈底为初始堆栈指针值(即sp初值)。当前栈顶即为当前sp值,它指向最后压入字的两个单元。,图2.6 8086堆栈形式,向 下 生 成,ss:sp,高地址,低地址,堆栈操作有两种:一种叫压入 (push),另一种叫弹出(pop)。对8086/8088 cpu来说,每次压入或弹出一个字,最后压入堆栈的字总是最先弹出来,堆栈的这种后进先出的特点是由堆栈指示器sp来控制的。 sp必须具有自动步进增量和减量的功能。 在向下生成方式中,栈底占用较高地址,栈顶占用较低地址。 当需要把一个字压入(push)堆栈时,首先sp自动减2,指向新的栈顶两个空单元,然后将要压入堆栈的一个字送入栈顶两个单元中。当要将堆栈中栈顶两个单元的一个字弹出(pop)堆栈时,先将sp所指栈顶两个单元的内容弹出,然后再将sp加2指向新的栈顶。,xx,xx,54 xx ,36,高地址(栈底),低地址(栈顶),sp,sp,sp,向 下 生 成,80x86 cpu中堆栈采用向下生成的方式。与向下生成方式相对应,还有向上生成的堆栈编址方式,即栈底占用较低地址,栈顶占用较高地址。由于堆栈指示器的设置,在某种特定情况下,它就能自动跟踪栈顶地址,而不需要在编程中考虑这种跟踪。 例如,在执行调用指令时,能自动把断点地址压入sp所指的栈区存储单元。而执行返回指令时,又能自动按sp所指的栈存储单元将断点地址从栈区弹出,送到指令指针ip中去。 通常堆栈操作从不移动和擦除栈区存储单元内容,堆栈操作时仅是修改堆栈指针。但压入堆栈操作时,则是用新压入的数据取代栈区原存储单元内容。, 变址寄存器(si和di) 系统中有两个16位的变址寄存器si和di。 si是源变址寄存器,di是目的变址寄存器,都用于指令的变址寻址方式。 控制寄存器 ip、flags是系统中的两个16位控制寄存器。,图2-2 标志寄存器,flags 标志寄存器, 其内容被称为处理器状态字psw,用来存放8086 cpu在工作过程中的状态,可分成两类:一类为状态标志,一类为控制标志。,cf (carry fiag)-进位标志位,做加法时最高位出现进位或做减法时最高位出现借位,该位置1,反之为0。 pf (parity fiag)奇偶标志位,当运算结果的低8位中l的个数为偶数时,则该位置1,反之为0。 af (auxiliary carry flag)半进位标志位,做字节加法时,当低四位有向高四位的进位,或在做减法时,低四位有向高四位的借位时,该标志位就置1。通常用于对bcd算术运算结果的调整。,af1,cf1,例:,(1)状态标志,zf (zero flag)零标志位,运算结果为0时,该标志位置1,否则清0。 sf (sign flag)符号标志位,当运算结果的最高位为1,该标志位置1,否则清0。即与运算结果的最高位相同。 of (overflow flag)溢出标志位。 of溢出的判断方法如下:,带符号数的溢出判别采用1.2节中所叙述的双高位判别法。,双高位判别法。 当cs cp = 1时,产生溢出; cs cp = 0时,不产生溢出 其中: cs表示符号位的进位,cp表示数值部分最高位的进位)。 若要判断两个带符号数a与b的大小(a-b),必须采用如下规则进行判断: of sf = 1,表示ab; of sf = 0,表示ab。,cf0、af1、pf1、zf0、sf1、 of cs cp = 1 (两正数相加结果为负)。 微处理器选择这一组状态标志,可以只用一套指令便可方便地对无符号数、带符号数及bcd数进行运算,并判断其溢出情况和比较两数大小。,例:,(2)控制标志:3个 tf (trap flag)陷阱标志位(单步标志位、跟踪标志)。当该位置1时,将使8086/8088进入单步工作方式,通常用于程序的调试。当tf=1时,如果执行指令,则产生单步中断,即cpu每执行一条指令便自动产生一个内部中断,使cpu 转去执行一个中断服务子程序。 if (interrupt-enable flag)中断允许标志位,若if=1,则处理器可以响应可屏蔽中断,否则就不能响应可屏蔽中断。 df (directon flag)方向标志位,用于指定字符串处理命令的步进方向。若该位置1,则串操作指令的地址修改为自动减量方向,反之,为自动增量方向。,组成:段寄存器(ds、cs、es、ss); 16位指令指针寄存器ip(指向下一条要取出的指令代码); 20位地址加法器(用来产生20位地址) 6字节(8088为4字节)指令队列缓冲器组成。,功能:负责与存储器及i/o接口之间的数据传送操作。具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或i/o端口取操作数,或者将操作结果送内存单元或者i/o端口。,(2) 总线接口部件(biu), 段寄存器(ds、cs、es、ss); (1) cs:存放当前代码段的基地址,要执行的指令代码在当前代码段中。 (2) ds:存放当前数据段的基地址,指令中所需操作数常存放于当前数据段中。 (3) ss:存放当前堆栈段的基地址,堆栈操作所处理的数据均存放在当前堆栈段中。 (4) es:存放当前附加段的基地址,附加段通常也用来存放存储器操作数。, ip:指令指针寄存器,用来控制cpu的指令执行顺序,总是存放着下一条要取出指令在现行代码段内的偏移地址。 ip和代码段寄存器cs一起可以确定当前所要取的指令的内存地址。, ip的工作方式: 顺序执行程序时,cpu每取一个指令字节,ip自动加1,指向下一个要读取的字节; 当ip单独改变时,会发生段内的程序转移; 当cs和ip同时改变时,会产生段间的程序转移。, 8086的指令队列分别为6/4个字节,在执行指令的同时,可从内存中取出后续的指令代码,放在指令队列中,可以提高cpu的工作效率。 地址加法器用来产生20位物理地址。8086可用20位地址寻址1m字节的内存空间,而cpu内部的寄存器都是16 位,因此需要由一个附加的机构来计算出20位的物理地址,这个机构就是20位的地址加法器。,ah al bh bl ch cl dh dl,ax bx cx dx,sp bp si di,ip flag,cs ds ss es,(a) 累加器 基地址寄存器 计数器 数据寄存器,(sp) 堆栈指针寄存器 基地址寄存器 源变址寄存器 目的变址寄存器,(pc) 指令指针寄存器 (psw) 状态标志寄存器,代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器,通用寄存器,控制寄存器,段寄存器,8位寄存器,16位寄存器,(3) biu与eu的动作协调原则(p41) biu和eu按以下流水线技术原则协调工作,共同完成所要求的信息处理任务: 每当8086/8088的指令队列中有两个(一个)空字节,同时eu 也未要求biu进入存取操作数的总线周期,biu就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的前后顺序。,每当eu准备执行一条指令时,它会从biu部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者i/o端口,那么eu就会请求biu,进入总线周期,完成访问内存或者i/o端口的操作;如果此时biu正好处于空闲状态,会立即响应eu的总线请求。如biu正将某个指令字节取到指令队列中,eu等待biu将首先完成这个取指令的总线周期,然后再去响应eu发出的访问总线的请求。 当指令队列已满,且eu又没有总线访问请求时,biu便进入空闲状态。,在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,biu会接着往指令队列装入转向的另一程序段中的指令代码。 biu与eu的动作管理原则中,既相互独立又相互配合的关系,使得8086/8088可以在执行指令的同时,进行取指令代码的操作,也就是说biu与eu是一种并行工作方式,改变了以往计算机取指令译码执行指令的串行工作方式,大大提高了工作效率,这正是8086获得成功的原因之一。,2.2.4 8086/8088的存储器分段结构及物理地址形成,1. 存储容量 8086有20根地址总线,因此,可直接寻址的存储器单元数为220=1mbyte=1m b 2. 物理地址 8086可直接寻址1mbyte的存储空间,其地址区域为00000h0fffffh,与存储单元一一对应的20位地址称之为存储单元的物理地址。,3. 存储器的分段及段地址 由于cpu内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。 规定:在1 mb的存储空间中,系统的整个存储空间可分为16个互不重叠的逻辑段,存储器的一个段为64kb,由段寄存器来确定存储单元的段地址。 如图2-3所示;也可以有216个段地址,任意相邻的两个段地址最少只相距16个存储单元,存储器的每个段的容量为64kb,并允许在整个存储空间内浮动,即段与段之间可以部分重叠、完全重叠、连续排列,非常灵活,如图2-4所示。,图2-3 存储空间段结构 图2-4 分段逻辑结构,16存储单元,图2.10 分段的实例 (图中堆栈段和数据段在此例中是重叠的,这用在存储共享的情况下),5. 物理地址的形成 物理地址是由段地址与偏移地址共同决定的,段地址是16位地址,由段地址及偏移地址计算物理地址的表达式如下: 物理地址=段地址10h+偏移地址 段地址:代码段寄存器(code segment,cs)、堆栈段寄存器(stack segment,ss)、数据段寄存器(data segment,ds)和附加段寄存器(extra segment,es)。,4. 偏移地址 偏移地址是某存储单元相对其所在段起始位置的偏移字节数,或简称偏移量。它是一个16位的地址,根据指令的不同,它可以来自于cpu中不同的16位寄存器(ip、sp、bp、si、di、bx等)。,图2.9 20位物理地址的构成及寻址举例,例: cs0fe00h,ip0400h,则表示要取指令代码的物理地址为0fe400h。 若c018:fe7f表示段地址为c018h,偏移地址为fe7fh。则物理地址为cffffh。如图2.9所示。 系统启动后,指令的物理地址由cs的内容与ip的内容共同决定,由于系统启动的cs=0ffffh,ip=0000h,所以初始指令的物理地址为0ffff0h。 我们可以在0ffff0h单元开始的几个单元中,固化一条无条件转移指令的代码,即转移到系统初始化程序部分。,6. 存储器分段组织带来存储器管理的新特点: 首先,在程序代码量、数据量不是太大的情况下,可使它们处于同一段内,即使它们在64kbyte的范围内,这样可以减少指令的长度,提高指令运行的速度; 其次,内存分段为程序的浮动分配创造了条件; 第三,物理地址与形式地址并不是一一对应的。举例:由形式地址 6832h:1280h可以唯一确定物理地址为695a0h。反之,物理地址为695a0h,则其形式地址可以为: 6832h:1280h,也可以为: 6830h:12a0h。 第四,各个分段之间可以重叠。,7. 特殊的内存区域 8088/8086系统中,有些内存区域的作用是固定的,用户不能随便使用,如: 中断矢量区:00000h003ffh共1k字节,用以存放256种中断类型的中断矢量,每个中断矢量占用4个字节,共2564=1024=1k 显示缓冲区:b0000hb0f9fh约4000(25802)字节,是单色显示器的显示缓冲区,存放文本方式下,所显示字符的ascii码及属性码;b8000hbbf3fh约16k字节,是彩色显示器的显示缓冲区,存放图形方式下,屏幕显示象素的代码。 启动区:ffff0hfffffh共16个单元,用以存放一条无条件转移指令的代码,转移到系统的初始化部分。,3. 内部存贮器按照读写方式的不同分为?,单向的总线: ,双向的总线: 。,地址总线,数据总线和控制总线,4. 8086/8088与第二代8位微处理器的区别不仅是数据总线的位数增加了1倍,更重要的是采取了 技术,流水线处理,微处理器、内部存贮器、输入/输出接口电路 和 总线 。,2. 总线按所传送信息的不同类型可以分为?,数据总线db、地址总线ab和控制总线cb三种类型。,1. 微型计算机包括?,ram(random access memory)和rom(read only memory)。,5. 8086/8088 cpu 可分为两部分?,组成:alu(算术逻辑单元); 通用寄存器组; 标志寄存器(psw)。,执行部件eu,总线接口部件biu,6. 执行部件eu,sp和bp位两个16位的指针寄存器。 sp是存放现行堆栈段的段内偏移地址,并具有步进增量和减量的功能。堆栈段寄存器ss;,7. 指针寄存器(sp和bp ),堆栈存取数据的原则:,先进后出,向下生成堆栈区: push,sp减量修正,pop,sp增量修正,【例如】 mov ax, 5436h; (ax)=5436h push ax pop bx,;(sp )(sp)-2,(sp) 直接寻址单元中的内容 5436h,; sp指向中的内容 36h (bl), (sp )(sp)+1,; sp指向中的内容 54h (bh), (sp )(sp)+1,xx,xx,36,高地址(栈底

温馨提示

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

评论

0/150

提交评论