1、第2章 微处理器结构第2章 微处理器结构2.1 微处理器的发展概况微处理器的发展概况 2.2 微处理器的功能结构微处理器的功能结构习题习题2 第2章 微处理器结构2.1 微处理器的发展概况微处理器的发展概况2.1.1 微处理器的发展微处理器的发展 由于集成电路工艺和计算机技术的发展,20世纪60年代末和70年代初,袖珍计算机得到了普遍的应用。为了研制灵活的计算机芯片,1971年10月,美国Intel公司首先推出Intel 4004微处理器。这是实现4位并行运算的单片处理器,构成运算器和控制器的所有元件都集成在一片大规模集成电路芯片上,是第一片微处理器。第一片微处理器。第2章 微处理器结构1.微
2、处理器的发展历史:微处理器的发展历史:微处理器经历了四代的发展:微处理器经历了四代的发展:第一代:第一代:1971年开始,是4位微处理器和低档8位微处理器的时期。典型产品有典型产品有:1971年10月,Intel 4004(4位微处理器);1972年03月,Intel 8008(8位微处理器),集成度为2000管/片,采用PMOS工艺,10 m光刻技术。第二代:第二代:1973年开始,是8位微处理器的时期。典型产品有典型产品有:1973年,Intel 8080(8位微处理器);1974年3月,Motorola的MC6800;19751976年,Zilog公司的Z80;1976年,Intel 8
3、085。其中Intel 8080的集成度为5400管/片,采用NMOS工艺,6 m光刻技术。第2章 微处理器结构 第三代:第三代:1978年开始,是16位微处理器的时期。典型产品有典型产品有:1978年,Intel 8086;1979年,Zilog公司的Z8000;1979年,Motorola的MC68000,集成度为68 000管/片,采用HMOS工艺,3 m光刻技术。第四代第四代:1981年开始,是32位微处理器的时期。典型产品有:典型产品有:1983年,Zilog公司的Z80000;1984年,Motorola的MC68020,集成度为17万管/片,采用CHMOS工艺,2 m光刻技术;1
4、985年,Intel 80386,集成度为27.5万管/片,采用CHMOS工艺,1.2 m光刻技术。第2章 微处理器结构 2.微处理器的发展趋势微处理器的发展趋势 沿着两个方向发展:一是微型化,生产性能更好的单片机及(48位)微型计算机,面向要求低成本的家电、传统工业改造及普及教育等,其特点是专用化、多功能、可靠性好;二是发展16位、32位、64位微型计算机,面向更加复杂的数据处理、OA、DA科学计算等,其特点是大量采用最新技术成果,在IC技术、体系结构等方面,向高性能、多功能的方向发展。1)多级流水线结构多级流水线结构 在一般的微处理器中,在一个总线周期(或一个机器周期)未执行完以前,地址总
5、线上的地址是不能更新的。在流水线结构情况下,如80286以上的总线周期中,当前一个指令周期正执行命令时,下一条指令的地址已被送到地址线,这样从宏观来看两条指令执行在时间上是重叠的。这种流水线结构可大大提高微处理器的处理速度。第2章 微处理器结构 2)芯片上存储管理技术 该技术是把存储器管理部件与微处理器集成在一个芯片上。目前把数据高速缓存、指令高速缓存与MMU(存储器管理单元)结合在一起的趋势已十分明显,这样可以减少CPU的访问时间,减轻总线的负担。例如,摩托罗拉的MC68030将256个字节的指令高速缓存、256个字节的数据高速缓存与MMU做在一起构成Cache/Memory Unit。3)
6、虚拟存储管理技术 该技术已成为当前微处理器存储器管理中的一个重要技术,它允许用户将外存看成是主存储器的扩充,即模拟一个比实际主存储器大得多的存储系统,而且它的操作过程是完全透明的。第2章 微处理器结构 4)并行处理的哈佛(HarVard)结构 为了克服MPU数据总线宽度的限制,尤其是在单处理器情况下,进一步提高微处理器的处理速度,采用高度并行处理技术HarVard结构已成为引人注目的趋势。哈佛结构的基本特性是:采用多个内部数据/地址总线;将数据和指令缓存的存取分开;使MMU和转换后援缓冲存储器(TLB)与CPU实现并行操作。该结构是一种非冯诺依曼结构。第2章 微处理器结构 5)RISC结构 所
7、谓RISC结构就是简化指令集的微处理器结构。其指导思想是在微处理器芯片中,将那些不常用的由硬件实现的复杂指令改由软件来实现,而硬件只支持常用的简单指令。这种方法可以大大减少硬件的复杂程度,并显著地减少了处理器芯片的逻辑门个数,从而提高了处理器的总性能。这种结构更适合于当前微处理器芯片新半导体材料的开发和应用,例如,用砷化镓(GaAs)取代硅半导体材料制成的微处理器,具有抗幅射、对温度不敏感、功耗低等优点。在恶劣环境下,性能良好,并且可以获得非常高的运算速度。但是,这种材料与硅相比,其加工技术难于掌握,技术还不成熟,芯片的集成度还远远满足不了传统的复杂指令系统计算机(CISC)的要求。第2章 微
8、处理器结构 6)整片集成技术(Wafer scale Integration)目前高档微处理器已基本转向CMOS VLS工艺,集成度已突破千万晶体管大关。一个令人瞩目的动向是新一代的微处理器芯片已将更多的功能部件集成在一起,并做在一个芯片上。目前在一个MPU的芯片上已实现了芯片上的存储管理、高速缓存、浮点协处理器部件、通信I/O接口、时钟定时器等。同时,单芯片多处理器并行处理技术也已由不少厂家研制出来。另外,从微型计算机系统角度来看,采用多机系统结构、增强图形处理能力、提高网络通信性能等方面都是当前微型计算机系统所追求的目标。第2章 微处理器结构2.1.2 微处理器简介微处理器简介 1.Int
9、el 8086微处理器微处理器 8086微处理器是美国Intel公司1978年推出的一种高性能的16位微处理器,它采用硅栅HMOS工艺制造,在1.45 cm2单个硅片上集成了29 000个晶体管。以8086为核心组成的微机系统,一问世其性能已达到中、高档小型计算机的水平。它具有丰富的指令系统,采用多级中断技术、多重寻址方式、多重数据处理形式、段式存储器结构和硬件乘除法运算电路,增加了预取指令的队列寄存器等,使其性能大为增强。8086的内部结构规模较小,仍采用40引脚的双列直插式封装。8086的一个突出特点是多重处理能力,用8086 CPU与8087协处理器以及8089I/O处理器组成的多处理器
10、系统,可大大提高其数据处理和输入/输出能力。另外,与8086配套的各种外围接口芯片非常丰富,方便用户开发各种系统。第2章 微处理器结构2.Intel 80386微处理器微处理器3.Intel 80486微处理器微处理器4.Intel 奔腾奔腾(Pentium)微处理器微处理器5.Intel Pentium微处理器微处理器6.Intel Pentium微处理器微处理器7.Intel Pentium 4微处理微处理简略介绍:第2章 微处理器结构2.2 微处理器的功能结构微处理器的功能结构2.2.1 微处理器的典型结构微处理器的典型结构微处理器的典型结构如图2.1所示,主要由三部分组成,它们是:(1
11、)运算器(2)控制器(3)寄存器阵列 第2章 微处理器结构图图2.1 微处理器的典型结构微处理器的典型结构累加器(16位)锁存器(16位)暂 存寄存器标 志寄存器算术逻辑单元(ALU)十进制调整指 令寄存器指 令译码器中断请求INT写WR读RD请求IORQ请求MREQ等待WAIT时钟定时与控制寄存器选择通用寄存器阵列堆线指针SP(16)指令指针IP(16)加1减1地址锁存器地址缓冲器A19A0地址总线多路转换开关内部数据总线数据总线缓冲器/锁存器D15D0双向数据总线RESET运算器控制器寄存器阵列第2章 微处理器结构(1)运算器)运算器:ALU(arithmetic logic unit)包
12、括算术逻辑单元,用来对数据进行算术和逻辑运算,运算结果的一些特征由标志寄存器储存。(2)控制器)控制器:control unit包括指令寄存器、指令译码器以及定时与控制电路。根据指令译码的结果,以一定时序发出相应的控制信号,用来控制指令的执行。第2章 微处理器结构 (3)寄存器阵列:寄存器阵列:register包括一组通用寄存器和专用寄存器。通用寄存器用来临时存放参与运算的数据,专用寄存器通常有指令指针IP(或程序计数器PC)和堆栈指针SP等。在微处理器内部,这三部分之间的信息交换是采用总线结构来实现的,总线是各组件之间信息传输的公共通路,这里的总线称为“内部总线”(或称“片内总线”),用户无
13、法直接控制内部总线的工作,因此内部总线是透明的。第2章 微处理器结构2.2.2 Intel 8086微处理器功能结构微处理器功能结构 1.8086 CPU的内部结构的内部结构 8086 CPU内部结构如图2.2所示。按功能可以分为:总线接口单元(BIU,Bus Interface Unit)执行单元(EU,Execution Unit)第2章 微处理器结构图图2.2 8086 CPU内部结构示意图内部结构示意图AHALBHBLCHCLDHDLSIDISPBPAXBXCXDX运算暂存器ALU标志寄存器执行单元(EU)16位内部总线EU控制电路123456指令队列缓冲器内部暂存器ESSSDSCSI
14、P16位总线20位地址总线总线控制逻辑电路8位8086总线总线接口单元(BIU)通用寄存器组第2章 微处理器结构 1)总线接口单元总线接口单元(BIU:(BIU:Bus Interface Unit)BIU是8086 CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU完成的。所有对外部总线的操作都必须有正确的地址和适当的控制信号,BIU中的各部件主要是围绕这个目标设计的。BIU提供了16位双向数据总线、20位地址总线和若干条控制总线,其具体任务具体任务是:负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。CPU执行指令时
15、,总线接口单元要配合执行单元,从指定的内存单元或I/O端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或I/O端口中。BIU的构成:由20位地址加法器、4个段寄存器、16位指令指针、指令队列缓冲器和总线控制逻辑电路等组成。第2章 微处理器结构 (1)地址加法器和段寄存器地址加法器和段寄存器8086 CPU的20位地址线可直接寻址1 MB存储器物理空间,但CPU内部寄存器均为16位的寄存器。那么,16位的寄存器如何实现20位地址寻址呢?它是由专它是由专门地址加法器将有关段寄存器内容门地址加法器将有关段寄存器内容(段的起始地址段的起始地址)左移左移4位后,位后,与与16位
16、偏移地址相加,形成了位偏移地址相加,形成了20位的物理地址,以对存储单元位的物理地址,以对存储单元寻址寻址。例如,在取指令时,由16位指令指针(IP)提供一个偏移地址(逻辑地址),在地址加法器中与代码段寄存器(CS)内容相加,形成实际的20位物理地址,送到总线上实现取指令的寻址。图2.3就表现了这一物理地址的形成过程。第2章 微处理器结构图图2.3 物理地址形成过程物理地址形成过程逻辑地址150偏移地址段寄存器0000加法器15020位物理地址190段地址第2章 微处理器结构 (2)16位指令指针位指令指针IP(Instruction Pointer)指令指针IP用来存放下一条要执行指令在代码
17、段中的偏移地址,它只有和CS相结合,才能形成指向指令存放单元的物理地址。在程序运行中,IP的内容由BIU自动修改,使它总是指向下一条要取的指令在现行代码段中的偏移地址。程序没有直接访问IP的指令,但通过某些指令可以修改它的内容。例如,转移指令可将转移目标的偏移地址送入IP,来实现程序的转移。第2章 微处理器结构 (3)指令队列缓冲器指令队列缓冲器当EU正在执行指令,且不需占用总线时,BIU会自动地进行预取指令操作,将所取得的指令按先后次序存入一个6字节的指令队列寄存器,该队列寄存器按“先进先出”的方式工作,并按顺序取到EU中执行。其操作遵循下列原则:其操作遵循下列原则:每当指令队列缓冲器中存满
18、一条指令后,EU就立即开始执行。每当BIU发现队列中空了两个字节时,就会自动地寻找空闲的总线周期进行预取指令操作,直到填满为止。第2章 微处理器结构 每当EU执行一条转移、调用或返回指令后,则要清除指令队列缓冲器,并要求BIU从新的地址开始取指令,新取的第一条指令将直接经指令队列缓冲器送到EU去执行,并在新地址基础上再作预取指令操作,实现程序段的转移。注意:注意:由于BIU和EU是各自独立工作的,在EU执行指令的同时,BIU可预取下面一条或几条指令。因此,在一般情况下,CPU执行完一条指令后,就可立即执行存放在指令队列中的下一条指令,而不需要像以往的8位CPU那样,采取先取指令,后执行指令的串
19、行操作方式。第2章 微处理器结构 (4)总线控制逻辑电路总线控制逻辑电路总线控制逻辑电路将8086 CPU的内部总线和外部总线相连,是8086 CPU与内存单元或I/O端口进行数据交换的必经之路。它包括16位数据总线、20位地址总线和若干条控制总线,CPU通过这些总线与外部取得联系,从而构成各种规模的8086微型计算机系统。第2章 微处理器结构 2)执行单元(执行单元(EU:Execution Unit)执行单元中包含包含一个16位的运算器ALU、八个16位的寄存器、一个16位标志寄存器FLAGS、一个数据暂存寄存器和执行单元的控制电路,这个单元进行所有指令的解释和执行,同时管理有关的寄存器。
20、(1)算术逻辑运算单元算术逻辑运算单元(ALU)它是一个16位的运算器,可用于8位、16位二进制算术和逻辑运算,也可按指令的寻址方式计算寻址存储器所需的16位偏移量。(2)标志寄存器标志寄存器(FLAGS/PSW)它是1个16位的寄存器,用来反映CPU运算的状态特征和存放某些控制标志。第2章 微处理器结构 (3)运算暂存器运算暂存器它协助ALU完成运算,暂存参加运算的数据。(4)通用寄存器组通用寄存器组它包括四个16位的数据寄存器AX、BX、CX、DX和4个16位指针与变址寄存器SP、BP与SI、DI。(5)EU控制电路控制电路它负责从BIU的指令队列缓冲器中取指令,并对指令译码,根据指令要求
21、向EU内部各部件发出控制命令,以完成各条指令规定的功能。第2章 微处理器结构 执行单元中的各部件通过16位的ALU总线连接在一起,在内部实现快速数据传输。值得注意的是,这个内部总线与CPU外接的总线之间是隔离的,即这两个总线可以同时工作而互不干扰。EU对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。如果指令队列缓冲器中是空的,那么EU就要等待BIU通过外部总线从存储器中取得指令并送到EU,通过译码电路分析,发出相应控制命令,控制ALU数据总线中数据的流向。如果是运算操作,操作数据经过运算暂存器送入ALU,运算结果经过ALU数据总线送到相应寄存器,同时标志寄
22、存器FLAGS根据运算结果改变状态。在指令执行过程中常会发生从存储器中读或写数据的事件,这时就由EU单元提供寻址用的16位有效地址,在BIU单元中经运算形成一个20位的物理地址,送到外部总线进行寻址。第2章 微处理器结构单项选择题单项选择题18086CPU从功能结构上看,是由()组成的。A控制器和运算器B控制器、运算器和寄存器C控制器和20位物理地址加法器 D执行单元和总线接口单元38086CPU中,存储器物理地址形成算法是()。A段地址偏移地址 B段地址左移4位偏移地址C段地址16H偏移地址D段地址10偏移地址第2章 微处理器结构单项选择题单项选择题18086CPU从功能结构上看,是由(D)
23、组成的。A控制器和运算器B控制器、运算器和寄存器C控制器和20位物理地址加法器 D执行单元和总线接口单元38086CPU中,存储器物理地址形成算法是(B)。A段地址偏移地址 B段地址左移4位偏移地址C段地址16H偏移地址D段地址10偏移地址参考答案第2章 微处理器结构2.8086 CPU的内部寄存器的内部寄存器图图2.4 8086 CPU内部寄存器内部寄存器 数据寄存器 指针与变址寄存器AXAHALSP BXBHBLBP CXCHCLSI DXDHDLDI 段寄存器 指令指针与标志寄存器CS IP DS FLAGS ES SS 第2章 微处理器结构对照图:第2章 微处理器结构 1)通用寄存器通
24、用寄存器 通用寄存器又称数据寄存器,既可作为16位数据寄存器使用,也可作为两个8位数据寄存器使用。当用作16位时,称为AX、BX、CX、DX。当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,并且可独立寻址。这样,4个16位寄存器就可当作8个8位寄存器来使用。第2章 微处理器结构 2)段寄存器段寄存器 8086 CPU有20位地址总线,它可寻址的存储空间为1MB。而8086指令给出的地址编码只有16位,指令指针和变址寄存器也都是16位的,所以CPU不能直接寻址1 MB空间。为此采用分段管理,即8086用一组段寄存器将这1 MB存储空间分成若干个逻辑段,每个逻辑段
25、长度小于等于64 KB,用4个16位的段寄存器分别存放各个段的起始地址(又称段基址),8086的指令能直接访问这4个段寄存器。不管是指令还是数据的寻址,都只能在划定的64 KB范围内进行。寻址时还必须给出一个相对于分段寄存器值所指定的起始地址的偏移值(也称为有效地址),以确定段内的具体地址。对物理地址的计算是在BIU中进行的,它先将段地址左移4位,然后与16位的偏移值相加。第2章 微处理器结构 段寄存器共有段寄存器共有4个个CS、DS、SS、ES 代码段寄存器CS(code segment):表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移值则由IP提供;堆栈段寄存器SS
26、(stack segment):指定当前堆栈的起始地址;数据段寄存器DS(data segment):指示当前程序使用的数据所存放段的起始地址;附加段寄存器ES(extra segment):指出当前程序使用附加段地址的起始位置,该段一般用来存放原始数据或运算结果。第2章 微处理器结构 3)指针与变址寄存器指针与变址寄存器 参与地址运算的主要是指针与变址寄存器组中的4个寄存器,指针与变址寄存器都是16位寄存器,一般用来存放地址的偏移量(即相对于段起始地址的距离)。在BIU的地址器中,与左移4位后的段寄存器内容相加产生20位的物理地址。堆栈指针堆栈指针SP用以指出在堆栈段中当前栈顶的地址。入栈(
27、PUSH)和出栈(POP)指令由SP给出栈顶的偏移地址。基址指针基址指针BP指出要处理的数据在堆栈段中的基地址,故称为基址指针寄存器。变址寄存器变址寄存器SI和和DI用来存放当前数据段中某个单元的偏移量。第2章 微处理器结构 4)指令指针与标志寄存器指令指针与标志寄存器 指令指针指令指针IP的功能跟Z80 CPU中的程序计数器PC的功能类似。正常运行时,IP中存放的是BIU要取的下一条指令的偏移地址。它具有自动加1功能,每当执行一次取指令操作时,它将自动加1,使它指向要取的下一内存单元,每取一个字节后IP内容加1,而取一个字后IP内容则加2。某些指令可使IP值改变,某些指令还可使IP值压入堆栈
28、或从堆栈中弹出。第2章 微处理器结构 标志寄存器标志寄存器FLAGS/PSW:是16位的寄存器,8086共使用了9个有效位,标志寄存器格式如图2.5所示。其中的6位是状态标志位,3位为控制标志位。状态标志位状态标志位是当一些指令执行后,表征所产生数据的一些特征。而控制标志位控制标志位则可以由程序写入,以达到控制处理机状态或程序执行方式的表征。图图2.5 标志寄存器格式标志寄存器格式D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0 OFDFIFTFSFZF AF PF CF第2章 微处理器结构 (1)6个状态标志位的功能分别叙述如下:个状态标志位的功能分别叙述如下:C
29、F(Carry Flag)进位标志位。当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF为1;否则为0。主要用于多字节或多字节数的加减运算指令。对应的指令有:STC将CF位置1;CLC将CF位清0;CMC将CF位取反。PF(Parity Flag)奇偶标志位。该标志位反映运算结果中1的个数是偶数还是奇数。当指令执行结果的低8位中含有偶数个1时,PF=1;否则PF=0。用于数据在传送过程中是否有错。AF(Auxiliary carry Flag)辅助进位标志位。当执行一个加法(或减法)运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0。用于BCD数的算术运算(调
30、整)指令。第2章 微处理器结构 ZF(Zero Flag)零标志位。若当前的运算结果为零,ZF=1;否则ZF=0。常有的指令有:JZ,JNZ SF(Sign Flag)符号标志位。它和运算结果的最高位相同。常有的指令有:JS,JNS OF(Overflow Flag)溢出标志位。当补码运算有溢出时,OF=1;否则OF=0。常有的指令有:JO,JNOZF、SF、OF常用于条件转移指令。第2章 微处理器结构 (2)3个控制标志位个控制标志位 用来控制CPU的操作,由指令进行置位和复位。DF(Direction Flag)方向标志位。它用以指定字符串处理时的方向,当该位置“1”时,字符串以递减顺序处
31、理,即地址以从高到低顺序递减。反之,则以递增顺序处理。常用在标志设置指令:CLD:将DF置0;STD:将DF置1。IF(Interrupt enable Flag)中断允许标志位。它用来控制8086是否允许接收外部中断请求。若IF=1,8086能响应外部中断,反之则不响应外部中断。常用在标志设置指令:CLI:将IF置0;STI:将IF置1。第2章 微处理器结构 注意:IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请求。TF(Trap Flag)跟踪标志位。它是为调试程序而设定的陷阱控制位。当该位置“1”时,8086 CPU处于单步状态,此时CPU每执行完一条指令就自动产生一次内部中断
32、。当该位复位后,CPU恢复正常工作。第2章 微处理器结构单项选择题单项选择题 28086CPU内部16位寄存器的数量是()个;内部8位寄存器的数量是()个;状态标志位有()个;控制标志位有()个;有()个16位的通用寄存器;有()个8位的通用寄存器;有()个16位的段寄存器;指令队列缓冲器由()组成。A4B8C14D20 A4B8C14D20A1B3C6 D9A1B3C6 D9A2B4C8 D16A2B4C8 D16A2B4C8 D16A1字节移位寄存器B4字节移位寄存器C6字节移位寄存器D8字节移位寄存器第2章 微处理器结构参考答案单项选择题单项选择题 28086CPU内部16位寄存器的数量
33、是(14)个;内部8位寄存器的数量是(8)个;状态标志位有(6)个;控制标志位有(3)个;有(8)个16位的通用寄存器;有(8)个8位的通用寄存器;有(4)个16位的段寄存器;指令队列缓冲器由(6)组成。A4B8C14D20 A4B8C14D20A1B3C6 D9A1B3C6 D9A2B4C8 D16A2B4C8 D16A2B4C8 D16A1字节移位寄存器B4字节移位寄存器C6字节移位寄存器D8字节移位寄存器第2章 微处理器结构三、多项选择题三、多项选择题18086CPU中,是段寄存器的有()。ACSBSICSPDSSEBP28086CPU中,仅作16位寄存器使用的是()。AAXBSICBP
34、DDX EIP58086CPU一次可并行传送()位二进制信息。A8 B16C20D32 E64第2章 微处理器结构三、多项选择题三、多项选择题18086CPU中,是段寄存器的有(A、D)。ACSBSICSPDSSEBP28086CPU中,仅作16位寄存器使用的是(B、C、E)。AAXBSICBPDDX EIP58086CPU一次可并行传送(A、B)位二进制信息。A8 B16C20D32 E64参考答案第2章 微处理器结构 3.8086 CPU的存储器和的存储器和I/O端口端口 1)8086的存储器组织及其寻址的存储器组织及其寻址 8086 CPU能寻址1 MB的存储单元,每个存储单元中存放一个
35、8位的二进制信息(一个字节)。每一存储单元用惟一的一个地址码标识,地址码是一个不带符号的整数,其地址范围为02201,但习惯用十六进制数表示,即00000HFFFFFH。将存储器空间按字节地址号顺序排列的方式称“字节编址”。第2章 微处理器结构 字数据是将连续存放的两个字节数据构成一个16位的字数据。规定字的高8位字节存放在高地址单元,字的低8位字节存放在低地址单元。同时规定将低位字节的地址作为这个字的地址。通常,一个字数据总是位于偶地址,即偶地址对应低位字节,奇地址对应高位字节,符合这种规则存放的字数据称为“规则字”。双字数据要占用4个字节,用以存放连续的两个字。在存放低位字或高位字时,高位
36、字节位于高地址,低位字节位于低地址,以最低位字节地址作为它的地址。第2章 微处理器结构图图2.6 8086系统的存储器结构系统的存储器结构CSA19A1奇地址(高字节)存储体512K8D7D0A19A1地址总线8D15D8高8位数据线CSA19A1偶地址(低字节)存储体512K8D7D08D7D0低8位数据线BHEA0第2章 微处理器结构 图2.6所示为8086系统的存储器结构。1 MB存储器分为两个库,每个库的容量都是512 KB。其中和数据总线D15D8相连的库全部由奇地址单元组成,称为高位字节库或奇地址库,利用BHE信号低电平作为此库的选择信号;另一个库和数据总线D7D0相连,由偶地址单
37、元组成,称为低位字节库或偶地址库,利用地址线A00(低电平)作为此库的选择信号。所以只有A19A1 共19个地址线用来作为两个库内的存储单元的寻址信号。表2-1给出BHE与A0相配合可能进行的操作。第2章 微处理器结构BHEA0操 作数据引脚00从偶地址开始读/写一个字(规则字)AD15AD010从偶地址开始读/写一个字节AD7AD001从奇地址开始读/写一个字节AD15AD80110从奇地址开始读写一个字(非规则字),第一总线周期高8位数据有效,第二总线周期低8位数据有效AD15AD8AD7AD0表表2-1 和和A0的代码组合对应的存取操作的代码组合对应的存取操作BHE第2章 微处理器结构
38、当在偶数地址中存取一个数据字节时,CPU从低位库中经数据线AD7AD0存取数据。由于被寻址的是偶数地址,所以地址位A0=0,由于A0是低电平所以才能在低位库中实现数据的存取。而指令中给出的是在偶地址中存取一个字节,BHE信号应为高电平,故不能从高位库中读出数据。相反,当在奇数地址中存取一个字节数据时,应经数据线的高8位(AD15AD8)传送。此时,指令应指出是从高位地址(奇数地址)寻址,BHE信号为低电平有效状态,故高位库能被选中,即能对高位库中的存储单元进行存取操作。由于是高位地址寻址,故A0=1低位库存储单元不会被选中。如表2-1所示,8086 CPU也可以一次在两个库中同时各存取一个字节
39、,完成一个字的存取操作。第2章 微处理器结构 规则字的存取操作可以在一个总线周期中完成。由于地址线A19A1是同时连接在两个库上的,只要BHE和A0信号同时有效,就可以一次实现在两个库中对一个字(高低两字节)完成存取操作。对字的存取操作所需的BHE及A0信号是由字操作指令给出的。对非规则字的存取操作就需要两个总线周期才能完成:在第一个总线周期中,CPU是在高位库中存取数据(低位字节),此时A0=1,BHE=0。然后再将存储器地址加1,使A0=0,选中低位库;在第二个总线周期中,是在低位库中存取数据(高位字节),此时A0=0,BHE=1。第2章 微处理器结构 2)存储器的分段结构和物理地址的形成
40、存储器的分段结构和物理地址的形成 (1)存储器的分段结构存储器的分段结构 8086 CPU为了寻址1 MB的存储空间,采用了分段的形式,即将1 MB的存储空间分成若干个逻辑段,而4个当前逻辑段的基地址设置在CPU内的4个段寄存器中,即:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES。逻辑段之间可以是连续的、分开的、部分重叠或完全重叠的。一个程序可使用一个逻辑段或多个逻辑段。第2章 微处理器结构 (2)物理地址的形成物理地址的形成 物理地址是指CPU和存储器进行数据交换时实际所使用的地址,而逻辑地址是程序使用的地址。物理地址由两部分组成:段基址(段起始地址高16位)和偏移
41、地址。前者由段寄存器给出,后者是指存储单元所在的位置离段起始地址的偏移距离。当当CPUCPU寻址某个存储单元时,先将段寄寻址某个存储单元时,先将段寄存器的内容左移存器的内容左移4 4位,然后加上指令中提供的位,然后加上指令中提供的1616位偏移地址而形位偏移地址而形成成2020位物理地址位物理地址。在取指令时在取指令时,CPU自动选择代码段寄存器CS,左移4位后,加上指令提供的16位偏移地址,计算出要取指令的物理地址。堆栈操作时堆栈操作时,CPU自动选择堆栈段寄存器SS,将其内容左移4位后,加上指令提供的16位偏移地址,计算出栈顶单元的物理地址。每当存取操作数时每当存取操作数时,CPU会自动选
42、择数据段寄存器(或附加段寄存器ES),将段基值左移4位后加上16位偏移地址,得到操作数在内存的物理地址。第2章 微处理器结构 3)8086的的I/O端口端口 8086系统和外部设备之间都是由I/O接口电路来联系的,每个I/O接口都有一个端口或几个端口。在微机系统中给每个端口分配一个地址,称为端口地址端口地址。一个端口通常为I/O接口电路内部的一个寄存器或一组寄存器。8086 CPU利用地址总线的低16位作为对8位I/O端口的寻址线,8086系统访问的8位I/O端口最多有65 536(64 KB)个。两个编号相邻的8位端口可以组合成一个16位的端口。一个8位的I/O设备既可以连接在数据总线的高8
43、位上,也可以连接在数据总线的低8位上,为便于数据总线的负载相平衡,接在高8位和低8位上的设备数目最好相等。第2章 微处理器结构 当一个I/O设备接在数据地址总线低8位(AD7AD0)上时,这个I/O设备所包括的所有端口地址都将是偶数地址(即A0=0);若一个I/O设备是接在数据地址总线的高8位(AD15AD8),那么此设备包含的所有端口地址都是奇数地址(即A0=1)。如果某种特殊I/O设备既可使用偶地址又可使用奇地址,那么A0就不能作为这个I/O设备内部端口的地址选择线使用。此时A0和BHE这两个信号必须结合起来作为I/O设备选择线,用以防止对I/O设备的错误操作。IBM-PC系统只使用了A9
44、A0 10条地址线作为I/O端口的寻址线,故最多可寻址210(1024)个端口地址。第2章 微处理器结构一、单项选择题一、单项选择题48086CPU中,确定下一条指令的物理地址的算术表达式为()。ACS16IPBDS16SI CSS16SP DES16DI5若某存储单元的物理地址为ABCDE,与之不相同的逻辑地址是()。AABCDH:000EHBABC0H:00DEH CAB00H:0CDEH DA000H:0CDEH第2章 微处理器结构一、单项选择题一、单项选择题48086CPU中,确定下一条指令的物理地址的算术表达式为(A)。ACS16IPBDS16SI CSS16SP DES16DI5若
45、某存储单元的物理地址为ABCDE,与之不相同的逻辑地址是(D)。AABCDH:000EHBABC0H:00DEH CAB00H:0CDEH DA000H:0CDEH参考答案第2章 微处理器结构二、填空题二、填空题18086CPU的内部由两个工作部件组成,即和。28086CPU的寄存器SS用作段的段寄存器,寄存器SP用作指针,寄存器BP用作指针。38086CPU在数据的串操作时,寄存器DS用作的段寄存器,寄存器ES用作的段寄存器,寄存器SI用作变址指针,寄存器DI用作变址指针。48086CPU物理地址又称为地址,用位二进制或位十六进制表示。物理地址包括地址和地址,用位二进制或位十六进制表示。5若
46、某存储器单元的实际地址位2BC60H,且该存储器单元所在的段首地址为2AF0H,则存储器单元的段内偏移地址为。第2章 微处理器结构二、填空题二、填空题18086CPU的内部由两个工作部件组成,即执行单元EU和总线接口单元BIU。28086CPU的寄存器SS用作堆栈段的段寄存器,寄存器SP用作堆栈栈顶指针,寄存器BP用作堆栈基址指针。38086CPU在数据的串操作时,寄存器DS用作源操作数的段寄存器,寄存器ES用作目的操作数的段寄存器,寄存器SI用作源操作数变址指针,寄存器DI用作目的操作数变址指针。48086CPU物理地址又称为实际地址,用20位二进制或5位十六进制表示。物理地址包括段首地址和段内偏移地址,用16位二进制或4位十六进制表示。5若某存储器单元的实际地址位2BC60H,且该存储器单元所在的段首地址为2AF0H,则存储器单元的段内偏移地址为0D60H。参考答案第2章 微处理器结构2.2.3Intel 80486 微处理器功能结构微处理器功能结构2.2.4 Pentium 微处理器功能结构微处理器功能结构该部分内容引导性学生自学。该部分内容引导性学生自学。第2章 微处理器结构习习 题题 2 视情况布置习题。