第2章 微处理器 2.1 概述 2.2 8088/8086微处理器 2.3 80286微处理器 2.3 80X86/Pentium微处理器 第2章 微处理器 2.1 概述 2.2 8088/8086微处理器 2.3 80286微处理器 2.3 80X86/Pentium微处理器 2.4 本章小结 思考与练习题
2.1 微处理器的基本结构 微处理器(Microprocessor) ,是采用大规模或超大规模集成电路技术做成的半导体芯片,上面集成了计算机的主要部件:控制器、运算器和寄存器组。整个微型计算机硬件系统的核心就是微处理器,所以它又称为中央处理器(Central Processing Unit),即CPU。
图3-1是一个典型的8位微处理器的内部结构,它一般由算术逻辑运算单元、寄存器组和指令处理单元等几个部分组成。 2.1 微处理器的基本结构 若字长8位,即一次能处理8位数据,则称为8位CPU,如Z80的CPU;若字长为16位,则称为16位CPU,如8086/8088、80286的CPU等。 图3-1是一个典型的8位微处理器的内部结构,它一般由算术逻辑运算单元、寄存器组和指令处理单元等几个部分组成。
图3-1 8位微处理器内部结构
1. 算术逻辑运算单元(ALU,Arithmetic Logic Unit) 2.1 微处理器的基本结构 1. 算术逻辑运算单元(ALU,Arithmetic Logic Unit) 算术逻辑运算单元实际上就是计算机的运算器,负责CPU进行各种运算,包括算术运算和逻辑运算。
逻辑运算:指逻辑与、逻辑或、逻辑非、逻辑异或,以及移位、循环移位等运算和操作。 2.1 微处理器的基本结构 算术运算:指加、减、增量(加1)、减量(减1)、比较、求反、求补等运算,有些微处理器还可以进行乘、除运算。 逻辑运算:指逻辑与、逻辑或、逻辑非、逻辑异或,以及移位、循环移位等运算和操作。
2.1 微处理器的基本结构 ALU的基本组成是一个加法器。ALU所进行的运算中,多数操作需要两个操作数,比如“加”和“逻辑与”运算。但是,也有些运算只要一个操作数,比如“增量”和“逻辑非”运算。
2.1 微处理器的基本结构 对8位CPU来说,由累加器提供其中一个操作数,而另一个操作数通过暂存器来提供。运算后,运算结果被返回到累加器,而运算中状态的变化和运算结果的数字特征则被记录在标志寄存器中。程序根据运算后各个标志位的情况来决定下一步走向。
2.1 微处理器的基本结构 运算单元电路 寄存器 累加器
2. 寄存器组(Register Set) 寄存器是CPU内部的高速存储单元,不同的CPU配有不同数量、不同长度的一组寄存器。有些寄存器不面向用户,我们称为“透明”寄存器,对它们的工作,用户不需要了解;有些寄存器则面向用户,供编程时使用,这些寄存器在程序中频繁使用,被称为可编程寄存器。
2.1 微处理器的基本结构 由于访问寄存器比访问存储器快捷和方便,因此各种寄存器用来存放临时的数据或地址,具有数据准备、数据调度和数据缓冲作用。从指令角度看,一般含有两个操作数的指令中,必有一个为寄存器操作数,这样可以缩短指令长度和指令的执行时间。
2.1 微处理器的基本结构 从应用角度,可以将寄存器分成以下三类: (1) 通用寄存器 通用寄存器在CPU中数量最多,它们既可以存放数据,又可以存放地址,使用频度非常高,是调度数据的主要手段。其中,累加器的寻址手段最多,功能最强,使用最频繁。
2.1 微处理器的基本结构 (2) 地址寄存器 地址寄存器主要用来存放地址,用于存储器的寻址操作,因而也称为地址指针或专用寄存器,如编址寄存器、堆栈指针、指令指针等。地址寄存器的功能比较单一,在访问内存时,可以通过它形成各种寻址方式。
2.1 微处理器的基本结构 (3) 标志寄存器 标志寄存器用来保护程序的运行状态,也称为程序状态字寄存器(PSW)。标志寄存器中,有些标志位反映运算过程中发生的情况,如运算中有无进位或借位,有符号数运算有无溢出等;有些标志位反映运算结果的数字特征,如结果的最高位是否为1,结果是否为0等。
指令处理单元是计算机的控制器,负责对指令进行译码和处理,它一般包括: 2.1 微处理器的基本结构 3. 指令处理单元 指令处理单元是计算机的控制器,负责对指令进行译码和处理,它一般包括: (1) 指令寄存器:用来暂时存放从存储器中取出来的指令。 (2) 指令译码逻辑:负责对指令进行译码,通过译码产生能完成指令功能的各种操作命令。
2.1 微处理器的基本结构 (3) 时序和控制逻辑: 根据指令要求,按一定的时序发出、接收各种信号,控制、协调整个系统完成所要求的操作。这些信号包括:定时控制信号、CPU的状态和应答信号、外界的请求信号和联络信号等。
工作模式:单处理器工作模式、多处理器工作模式 流水线工作方式:取指令、执行指令并行进行 兼容性:与8080、8085兼容 2.2 8086/8088微处理器 3.2.1 8086微处理器的主要特征 数据总线:16位 端口地址线:16位 地址总线:20位 时钟频率: 5MHz 内存空间:CPU可直接寻址1MB内存空间 指令系统:90多条指令 寻址方式:7种基本寻址方式 中断功能:内部中断、外部中断,256级中断 工作模式:单处理器工作模式、多处理器工作模式 流水线工作方式:取指令、执行指令并行进行 兼容性:与8080、8085兼容
内部寄存器、内部运算部件以及内部操作都是按16位设计的。 但对外的数据总线只有8位。 2.2.1 8086微处理器的主要特征 8086与8088的区别 8088是一种准16位微处理器 内部寄存器、内部运算部件以及内部操作都是按16位设计的。 但对外的数据总线只有8位。
2.2.2 8086微处理的内部结构 1、BIU ① 总线控制逻辑 ② 指令指针寄存器IP ③ 段寄存器 ④ 地址加法器 ⑤ 指令队列缓冲器 执行单元(EU) 总线接口单元(BIU) ① 总线控制逻辑 ② 指令指针寄存器IP ③ 段寄存器 ④ 地址加法器 ⑤ 指令队列缓冲器 1、BIU
BIU的功能:是8086 CPU与存储器或I/O设备之间的接口部件,负责全部引脚的操作。 2.2.2 8086微处理的内部结构 总线接口单元BIU BIU的功能:是8086 CPU与存储器或I/O设备之间的接口部件,负责全部引脚的操作。 ①BIU负责产生指令地址,根据指令地址从存储器取出指令,送到指令队列中排队或直接送给EU去执行; ②BIU也负责从存储器的指定单元或外设端口中取出指令规定的操作数传送给EU,或者把EU的操作结果传送到指定的存储单元或外设端口中。
代码段寄存器CS (Code Segment) 数据段寄存器DS (Data Segment) 2.2.2 8086微处理的内部结构 总线接口单元BIU BIU内部设有4个16位的段寄存器: 代码段寄存器CS (Code Segment) 数据段寄存器DS (Data Segment) 堆栈段寄存器SS (Stake Segment) 附加段寄存器ES (Extra Segment)
一个16位的指令指针寄存器IP (Instruction Pointer) 6字节指令队列缓冲器 20位地址加法器 总线控制电路 2.2.2 8086微处理的内部结构 总线接口单元BIU BIU内部设有 一个16位的指令指针寄存器IP (Instruction Pointer) 6字节指令队列缓冲器 20位地址加法器 总线控制电路
2.EU 2.2.2 8086微处理的内部结构 ① 算术逻辑单元(ALU) ② EU控制电路 ③ 寄存器组 执行单元(EU) 总线接口单元(BIU) ① 算术逻辑单元(ALU) ② EU控制电路 ③ 寄存器组 2.EU
EU的功能:是从BIU的指令队列中取出指令代码,然后执行指令所规定的全部功能。 2.2.2 8086微处理的内部结构 2.执行单元EU EU的功能:是从BIU的指令队列中取出指令代码,然后执行指令所规定的全部功能。 在执行指令的过程中,如果需要向存储器或I/O传送数据,则EU向BIU发出访问存储器或I/O的命令,并提供访问的地址和数据。
2.2.2 8086微处理的内部结构 执行单元(EU) 总线接口单元(BIU) 存 储 器 DB CB AB CPU取指过程
2.2.2 8086微处理的内部结构 执行单元(EU) 总线接口单元(BIU) 存 储 器 DB CB AB CPU向内存写数过程
2.2.2 8086微处理的内部结构 执行单元(EU) 总线接口单元(BIU) 存 储 器 DB CB AB … EU取指、译码过程
指令的提取与执行分别由BIU和EU两部件完成,二者既独立又相互配合——并行工作。 2.2.2 8086微处理的内部结构 3、8086的内部结构特点: 指令的提取与执行分别由BIU和EU两部件完成,二者既独立又相互配合——并行工作。 8086 EU BIU BUS t 取指2 忙 执指1 取指3 忙 执指2 取指4 忙 执指3 取指5 忙 执指4 执指5 忙 取指1 忙
3、8086的内部结构特点: EU和BIU的流水线操作: 2.2.2 8086微处理的内部结构 EU与BIU可独立工作,BIU在保证EU与片外传送操作数的前提下,可进行指令预取,与EU可重叠操作,它们的操作具有并行性。
1、通用寄存器AX、BX、CX、DX (16位) 2.2.2 8086微处理的内部寄存器 1、通用寄存器AX、BX、CX、DX (16位) AX(累加器)用于完成各种运算和传送移位等操作,在乘法、除法指令中约定使用AX、AH、AL存放相关数据,在I/O指令中约定使用AX、AL存放I/O数据。 BX(基址寄存器)在存储器间接寻址时用于存放段内偏移地址
2.2.2 8086微处理的内部寄存器 1、 通用寄存器AX、BX、CX、DX (16位) CX(计数寄存器)在循环处理指令和串处理指令中约定使用CX存放循环次数,实现计数控制,在移位指令中约定使用CL存放移位次数 DX(数据寄存器)在间接寻址的I/O指令中用于存放端口地址,在字乘法、字除法指令中也约定使用DX存放双字数据的高位部分
1、 通用寄存器SP、BP、SI、DI (16位) 2.2.2 8086微处理的内部寄存器 1、 通用寄存器SP、BP、SI、DI (16位) 用来存放操作数或偏移地址 SP(堆栈指针寄存器)用来指示栈顶的偏移地址,一般用于访问堆栈的栈顶单元 BP(基址指针寄存器)用来指示堆栈段某一操作数所在单元的偏移地址,一般用于访问堆栈段内任意单元 SP、BP一般与SS寄存器联用以确定堆栈段中某一存储单元的地址
1、 通用寄存器SP、BP、SI、DI (16位) 2.2.2 8086微处理的内部寄存器 1、 通用寄存器SP、BP、SI、DI (16位) SI(源变址寄存器)用来存放源操作数偏移地址 DI(目的变址寄存器)用来存放目的操作数偏移地址 SI、DI一般与DS联用,用来确定数据段中某一存储单元的地址,在串操作指令中DI默认与ES联用
用来存放代码段(CS)、数据段(DS)、堆栈段(SS)、附加段(ES)的段基址. 2.2.2 8086微处理的内部寄存器 2、 段寄存器CS、DS、SS、ES(16位) 用来存放代码段(CS)、数据段(DS)、堆栈段(SS)、附加段(ES)的段基址.
3、 指令指针寄存器IP(16位) 2.2.2 8086微处理的内部寄存器 用来存放代码段中指令的偏移地址 用来存放代码段中指令的偏移地址 在程序运行的过程中,IP自动加“1” ,始终指向下一条指令首字节,它与CS寄存器联用确定下一条指令的物理地址,是用来控制指令序列的执行流程的寄存器
4、 标志寄存器FLAG (16位) 2.2.2 8086微处理的内部寄存器 TF IF DF CF PF AF ZF OF SF 6个状态位记录指令操作后结果的状态信息,由CPU根据结果自动设置 CF 进位标志 SF 符号标志 OF 溢出标志 PF 奇偶标志 ZF 零标志 AF 辅助进位标志
4、 标志寄存器FLAG (16位) 2.2.2 8086微处理的内部寄存器 TF IF DF CF PF AF ZF OF SF 3 个控制位控制处理器的操作,根据需要由程序用指令设置 DF 方向标志 IF 中断允许标志 TF 陷阱标志
CPU内部寄存器总结:
2.2.3 8086的引脚及工作方式 8086/8088微处理器引线,在逻辑上可分为3类: 地址总线信号、控制总线信号, 还有一些专业信号:电源、地、时钟。 8086/8088采用引线分时复用技术,一条引线不同时间代表不同信号,解决引线不够问题。
系统中控制信号较多,需要通过总线控制器与总线相连,控制总线驱动能力较强 2.2.3 8086的引脚及工作方式 一、工作模式 最小模式:单微处理器模式,系统中只有一个8086微处理器,所有的总线控制信号均由CPU直接产生,因此系统中的总线控制电路少,控制信号较少,一般不必接总线控制器 最大模式:多微处理器模式,系统中可包含2个或2个以上微处理器,其中一个8086为主处理器,其他的微处理器为协处理器(如8087、8089) 系统中控制信号较多,需要通过总线控制器与总线相连,控制总线驱动能力较强
2.2.3 8086的引脚及工作方式 二、引脚功能 8086
2.2.3 8086的引脚及工作方式 二、引脚功能 1. AD15~AD0(Address Data Bus) 地址/数据复用引脚 可作为输入或输出,具有三态 在总线周期的T1状态作为地址线,输出要访问的存储器或I/O端口的地址; 在总线周期的T2~T3状态作为数据线传输数据。
2.2.3 8086的引脚及工作方式 二、引脚功能 2. A19 /S6 ~A16/S3 地址/状态复用引脚 输出,具有三态 在总线周期的T1状态,用来输出地址的最高4位。 在总线周期的T2、T3、TW和T4状态时,用来输出状态信息。
2.2.3 8086的引脚及工作方式 3.(Bus High Enable/Status) 高8位数据总线允许/状态复用引脚 输出引脚,三态。
4. (Read) 读信号输出,三态 表示将要执行一个对存储器或I/O端口的读操作。 低电平有效
5. READY 准备好信号 输入,高电平有效 处理器与存储器及I/O接口速度同步的控制信号 6. 测试信号 输入,低电平有效 脱离等待状态
7. INTR (Interrupt Request) 可屏蔽中断请求信号 输入,高电平有效 CPU在执行每条指令的最后一个时钟周期时,会对INTR引脚的信号进行采样。若CPU的中断允许标志为1,且又接收到INTR信号,则CPU会在执行完当前指令后,响应中断请求,执行一个中断处理子程序。
8. NMI (Non-Maskable Interrupt) 非屏蔽中断请求信号 输入,高电平有效 NMI不受中断允许标志IF的影响,也不能用软件进行屏蔽。每当NMI端输入一个正沿触发信号时,CPU会在执行完当前指令后,执行对应的不可屏蔽中断处理程序。
9. RESET 复位信号 输入,高电平有效。 RESET将使8086 CPU立即结束当前操作。CPU内部进入原始状态。代码段CS全1 10. CLK (Clock) 系统时钟信号 输入,高电平有效
最小/最大方式信号 当 接 +5V电压时,CPU工作于最小方式;接地时,CPU工作于最大方式。
2.3.4 8086的存储器组织 1. 存储器的标准结构 线性地址 微型计算机的内存储器以字节为基本单位存储信息,每个字节占用一个存储单元,每个存储单元给定一个惟一的地址,这个地址称为物理地址,物理地址以二进制无符号整数形式从0开始编号,顺序增1 内存储器编址 00000H 00001H 00002H 00003H 00004H 00005H 00006H … 00007H
2.3.4 8086的存储器组织 2. 存储器的分段 8086系统把1MB的内存空间分为若干个段,要求: ①每段的容量不超过64KB ②段内起始地址必须能被16整除 各段的功能因具体用途而定,可分为代码段、数据段、堆栈段、附加段 段内起始单元地址的高16位(低4位为0)称为段基址,段内某单元距首单元的位移量称为偏移地址/有效地址 2. 存储器的分段 段内偏移地址 物理地址 …... 1234 H 0000 H 12340H 0000 H 12341H 0001 H 12342H 0002 H 偏移地址 段基址 …... …...
3. 物理地址和逻辑地址 分段技术 物理地址 是内存中信息存储的实际地址 逻辑地址(段基址:偏移地址)是允许在程序中编排的地址 在8086系统中,每个存储单元都可以用两种地址表示: 物理地址 是内存中信息存储的实际地址 逻辑地址(段基址:偏移地址)是允许在程序中编排的地址 CPU必须按照物理地址对对内存进行寻址,访存时首先把逻辑地址转换为物理地址,然后再对内存单元进行读/写 物理地址与逻辑地址: 3. 物理地址和逻辑地址 分段技术 16位段基址 16位偏移地址 16位段基址 0000 地址加法器 20位物理地址
例题:计算物理地址2000H:3114H 即2000H:3114H逻辑地址转换成物理地址是23114H。
2.3.4 8086的存储器组织 4、堆栈 定义:堆栈(Stack)是为保护数据、调度数据而 开辟的特殊数据区域。 特点: 栈底固定,栈顶浮动 在栈顶处进行信息的存取操作 按照“先进后出(First In Last Out或FILO)” 原则进行存取操作,即数据是由栈顶压入或弹出
2.3 80286微处理器 2.3 80286微处理器 1982年,Intel公司推出了高性能的16位微处理器80286,该芯片的内部集成了约13万个晶体管,以8 MHz的时钟进行工作,它有68条引脚。 与8086相比,80286具有以下特点:
2.3.1 80286微处理器特点 与8086相比,80286具有以下特点: (1) 有24根地址线,最多可寻址16 MB的实际存储空间和64 KB的I/O地址空间。 (2) 数据线和地址线完全分离。在一个总线周期中,当有效数据出现在数据总线上的时候,下一个总线周期的地址已经送到地址总线,形成总线周期的流水作业。其总线周期基本上由Ts(Send Status)和Tc(Perform Command)两个时钟周期组成,明显提高了数据访问的速度。
2.3.1 80286微处理器特点 (3) 具有“实地址方式(Real Address Mode)”和“虚地址保护方式(Protected Virtual Address Mode)”两种工作方式,这两种方式又简称为“实方式”和“保护方式”。 实方式用于向上兼容8086,此时80286的24根地址线中只有低20位地址有效,其寻址空间和寻址方法与8086完全相同,即8086的应用程序不需要修改就可以移到该方式下运行,但是速度要快。
2.3.1 80286微处理器特点 保护方式体现了80286的特色,主要是对存储器管理、虚拟存储和对地址空间的保护。在该方式下,它的24根地址线全部有效,可寻址16 MB的实存空间;通过存储管理和保护机构,可为每个任务提供多达1 GB的虚拟存储空间和保护机制,有力地支持了多用户、多任务的操作。
2.3.1 80286微处理器特点 (4) 在保护方式下,80286的存储管理仍然分段进行,每个逻辑段的最大长度为64 KB,但是增加了许多管理功能,其中最重要的功能就是虚拟存储。也就是说,80286的物理存储空间为16 MB,但每个任务可使用的逻辑空间却高达1 GB。在该方式下,那些内存装不下的逻辑段,将以文件形式存入外存储器中,当处理器需要对它们进行存取操作时就会发生中断,通过中断服务程序把有关的程序或数据从外存储器调入到内存,从而满足程序运行的需要。
① 对逻辑段的操作属性(可执行、可读、只读、可写)和长度界限(1~64 KB)进行检查,禁止错误的段操作。 2.3.1 80286微处理器特点 (5) 在保护方式下,80286提供了保护机制,它们由硬件提供支持,一般不会增加指令的执行时间,这些保护包括: ① 对逻辑段的操作属性(可执行、可读、只读、可写)和长度界限(1~64 KB)进行检查,禁止错误的段操作。
③ 提供任务间的保护。80286为每个任务提供多达0.5 GB的全局存储空间,防止错误的应用任务对其他任务进行不正常的干预。 2.3.1 80286微处理器特点 ② 为不同程序设置了4个特权级别(Privilege Level),提供若干特权级参数,可让不同程序在不同的特权级别上运行。8086系统程序和用户程序处于同一级别,并存放在同一存储空间,所以系统程序有可能遭到用户程序的破坏。而80286依靠这一机制,可支持系统程序和用户程序的分离,并可进一步分离不同级别的系统程序,大大提高了系统运行的可靠性。 ③ 提供任务间的保护。80286为每个任务提供多达0.5 GB的全局存储空间,防止错误的应用任务对其他任务进行不正常的干预。
2.3.2 80286微处理器的组成 2.3.2 80286微处理器的组成 下图是80286微处理器内部结构。由图中可以看出,80286处理器内部由四个独立的部件组成,分别为执行部件(EU)、总线接口部件(BIU)、指令部件(IU)和地址部件(AU)。这四个独立的部件都是通过内部总线进行连接的,它们相互配合完成一条指令的执行过程。
图2-12 80286微处理器内部结构
执行部件(EU)是由寄存器、控制器和算术逻辑运算单元(ALU)等部分组成的。它负责执行由指令部件(IU)译码后的指令。 2.3.2 80286微处理器的组成 下面分别讨论四个独立部件的功能。 执行部件(EU)是由寄存器、控制器和算术逻辑运算单元(ALU)等部分组成的。它负责执行由指令部件(IU)译码后的指令。
2.3.2 80286微处理器的组成 总线接口部件(BIU)由地址锁存器、地址驱动器、协处理器扩展接口、总线控制器、数据收发器、预取指器和6字节预取指令队列寄存器等组成。总线接口部件是微处理器与系统之间以及与局部总线之间的高速接口部件, 用来产生访问外部存储器和I/O端口所需要的地址、数据和命令信号;可以高速地完成取指令或对存储器的读/写。
2.3.2 80286微处理器的组成 其中,预取指器可利用局部总线空闲时间,控制数据收发器最多可从存储器中取出6字节指令,并将它们暂时存放在6字节预取指队列寄存器中,这样CPU便可高速读取指令。只有当预取指队列寄存器中至少空出2个字节时才进行预取指操作。
2.3.2 80286微处理器的组成 指令部件(IU)由指令译码器和三条已被译码的指令队列组成。指令部件的作用是不断地对来自总线部件和预取指令队列的指令进行译码,然后把它们存放到已被译码的指令队列中,准备接受执行部件的读取。这一部件可以使对一条指令的执行过程得以改善,从顺序执行即取出指令、指令译码、执行指令,变成为并行操作,从而缩短指令的执行时间,提高处理速度。这种操作被称为80286的流水操作。
地址部件(AU)由地址偏移量加法器、段界限检查器、段基址寄存器、段容量寄存器、物理地址加法器等组成。功能是根据执行部件的请求,从执行部件中的寄存器中取出寻址信息,并且按照寻址的规则产生物理地址,同时把产生的物理地址送到总线接口部件的地址锁存器和总线驱动器中,其物理地址可能为存储器的物理地址或I/O端口的地址。这一部件中还包括段寄存器和描述符表寄存器的高速缓冲存储器。
以上介绍了微处理器中四个独立部件的组成及作用,实际上微处理器在处理一条条指令的过程中,各部件是在并行地作总线操作,从而实现流水线化的作业的,这样极大地发挥了处理器的性能。
2. 寄存器的构成 80286微处理器的内部寄存器分为四组,分别为通用寄存器、段寄存器、状态和控制寄存器以及系统表寄存器,如图2-13所示。它们构成了80286的基本寄存器集。
图2-13 80286 基本寄存器集
(3) 机器状态字寄存器(MSW)。机器状态字寄存器用来表示当前处理器所处的状态。如图2-15所示,MSW是一个80286中新设计的16位机器状态字寄存器,仅用了其中的4位。这四位的含义及作用如下: 图2-15 机器状态字寄存器
监控协处理器MP:用于协处理器80287 NPX的接口,该位置位表示系统有80287。 保护方式允许PE:用于向虚地址保护方式转换,若PE为“1”,则80286被置于保护方式,若PE为“0”,则表示80286被置于实地址方式。只有通过硬件复位(RESET)才能从保护方式返回实地址方式。 监控协处理器MP:用于协处理器80287 NPX的接口,该位置位表示系统有80287。 模拟协处理器EM:若EM置“1”,则表示可用软件模拟80287指令仿真一个协处理器,若EM清“0”,将允许协处理器操作码在80287上执行。
任务转换TS:当80286完成任务转换,即80286从执行某一个任务转换到执行另一个任务时,TS被自动置“1”,当80286复位时,TS被清“0”。 对于机器状态字寄存器中的有效标志位,其中的PE位用来使CPU进入虚地址保护方式,其余3位则具有控制协处理器接口的作用。
2.4 80386微处理器 2.4 80386微处理器 1. 80386微处理器结构 80386的基本逻辑框图如图所示。
3.4 80386微处理器
80386由中央处理器(CPU)、存储器管理部件(MMU)和总线接口部件(BIU)三大模块组成。CPU包括指令预取、指令译码、指令执行部件;MMU包括分段部件和分页部件;加上BIU部件,这样,80386共有6个功能部件。6个功能部件可并行工作,构成6级流水线结构。
80386有三种工作方式:实地址方式、保护方式和虚拟8086方式(VM86方式)。在实地址方式下,80386的工作好似速度极快的8086。实地址方式主要用于建立处理机状态,以便进入保护工作方式。在保护工作方式下,用户可使用处理器的复杂存储管理、分页及特权功能。在保护工作方式下,通过软件可以实现任务切换,进入虚拟8086方式。虚拟8086任务可以被隔离和保护。
2. 80386的寄存器结构 80386含有通用寄存器、段寄存器、指令指针、标志寄存器、控制寄存器、系统地址寄存器、排错寄存器、测试寄存器等7类32个寄存器。它们包括了16位8086和80286的全部寄存器。通用寄存器、段寄存器以及指令指针和标志寄存器如图2-18所示。
图3-18 80386基本寄存器
2.4 80386微处理器 1) 通用寄存器 80386中有8个32位的通用寄存器,如图2-19所示。这些通用寄存器是8086、80286的16位通用寄存器的扩展,所以命名为EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。每一个寄存器都可以存放数据或地址,支持1、8、16、32和64位的数据操作及1~32位的位操作,也支持16位和32位的地址操作。
3.4 80386微处理器 图3-19 通用寄存器
80386中的标志寄存器是名为EFLAGS的32位寄存器,所定义的位如图2-20所示。 2.4 80386微处理器 2) 指令指针和标志寄存器 80386的地址线是32位,指令指针是32位寄存器,是IP的扩展,称为EIP。EIP中存放的总是下一条要取出指令的偏移量。EIP的低16位称为IP,它由16位的地址操作数使用。 80386中的标志寄存器是名为EFLAGS的32位寄存器,所定义的位如图2-20所示。
图3-20 80386标志寄存器
80386扩展的标志位是VM和RF,它们的功能是: VM(Virtual 8086 Mode,位17)是虚拟8086方式位。当VM置1时,80386转入8086方式。在保护方式下VM才置1,用IRET指令实现。
RF(Resume Flag,位16)是恢复标志位,用于调试寄存器断点处理。当RF置1时,对执行下一条指令而言,一切故障调试均被忽略,在每条指令(除IRET、POPF、JMP、CALL、INT等指令)成功地完成后RF自动清0。
3) 段寄存器和段描述符寄存器 80386中用6个16位的段寄存器存放段选择器值,指示可寻址的存储空间。在保护方式下,分段大小在1 B~4 GB之间变化。在实地址方式下,最大分段固定为64 KB。
在任何给定时刻,可寻址的6段是由段寄存器CS、SS、DS、ES、FS、GS的内容确定的。CS中的选择器指示当前代码;SS指示当前堆栈段;DS、ES、FS、GS指示当前数据段。 段寄存器如图2-21所示。图中右边是段描述符寄存器,每个描述符寄存器装有一个32位的段基地址,一个32位的段界限值,还有其他段属性。描述符寄存器与段寄存器一一对应。
图3-21 80386段寄存器和段描述符寄存器
每当访问存储器时,段描述符自动介入访问处理;32位的段基地址变成计算线性地址的一个分量;32位界限值用于界限检查操作,不必去查表而得到段基地址,从而加快了存储器访问速度。
4) 系统地址寄存器 系统地址寄存器GDTR中存放GDT(全局描述符表),IDTR中存放IDT(中断描述符表)。其中放置32位线性基地址和16位界限值,如图2-22所示。 TR寄存器中存放16位的TSS(任务状态段)描述符,LDTR中存放16位的LDT(局部描述符表)描述符。
图2-22 系统地址寄存器和系统段寄存器
80386中有3个32位控制寄存器CR0、CR2和CR3,如图2-23所示,用以放置机器的总体状态,对系统的全部任务都发生影响。 5) 控制寄存器 80386中有3个32位控制寄存器CR0、CR2和CR3,如图2-23所示,用以放置机器的总体状态,对系统的全部任务都发生影响。
图2-23 控制寄存器CR0、CR2、CR3
CR0为机器控制寄存器。其中位0~位4和位31作控制和状态用。CR0的低16位也叫做机器状态字(MSW),与80286保护方式兼容,LMSW和SMSW指令是CR0的送数和存储操作指令,只涉及CR0的低16位。
CR2为页面出错线性地址寄存器,放置检测到的最近一次页面出错的32位线性地址。错误码被推入页面出错处理器的堆栈。 CR1为Intel公司保留。 CR2为页面出错线性地址寄存器,放置检测到的最近一次页面出错的32位线性地址。错误码被推入页面出错处理器的堆栈。 CR3为页面目录基地址寄存器。CR3中含有页面目录表的基地址。80386的页面目录表总是按页面定位(以4 KB为单位)的,因此最低12位的写入是非法的,存储也是无意义的。这样,CR3的最低位(位12)每增减1意味着增减4096 B。
3. 80386的存储器组织结构 80386存储器的存储单元有三种:字节(8位)、字(16位)、双字(32位)。两个相连续的字节存放时,低位字节存放于低地址,高位字节存放于高地址。双字要存放于4个连续的字节,最低位字节存于最低位地址,最高位字节存于最高位地址。一个字或一个双字的地址就是低位字节的地址。
3. 80386的存储器组织结构 存储器可以划分为长度可变的若干段,还可以再进一步划分为页面,每页4 KB。分段和分页可以组合运用以得到最大的系统设计灵活性。分段对于按逻辑模块组织存储器是很有用的,而分页对于系统程序员或对于系统物理存储器的管理是很有用的。
1、80386的主要特点 (1)80386微处理器拥有32位数据总线和32位地址总线,可直接寻址4GB物理存储空间,具有虚拟存储能力,虚拟存储空间达64TB。存储器采用分段结构 (2)系统采用流水线和指令重叠技术、虚拟存储技术、片内存储器管理技术、存储器管理分段、分页保护技术等,系统实现了多用户多任务操作 (3)提供32位的指令,可支持8位、16位、32位的数 据类型,具有8个通用的32位寄存器 (4)首次在芯片内使用Cache,以使内存速度能更好地与运算器的速度相匹配,从而大大提高指令的执行速度和工作效率 (5)提供32位外部总线接口,最大数据传输速率为32Mbps。系统可同高速的DRAM芯片接口,支持动态总线宽度控制,能动态地切换32位/16位数据总线 (6)具有片内集成的存储器管理部件MMU,可支持虚拟存储和特权保护,片内具有多任务机构,能快速完成任务的切换 (7)通过配置浮点协处理器80387实现数据高速处理,加快了浮点运算速度 (8)80386系统能在12.5MHz或16MHz时钟频率下可靠工作,指令的执行速度可达3MIPS~4MIPS以上 2、80386的工作模式 实模式、保护模式、虚拟8086模式
2.5 80486微处理器 2.5 80486微处理器 1. 80486的结构框图 80486的基本逻辑框图 如图3-25所示。
2.5 80486微处理器
图2-26给出了80486的基本寄存器。对基本寄存器中的通用寄存器、指令指针和标志寄存器简述如下。 2.5 80486微处理器 2. 80486的寄存器结构 80486寄存器组包括:基本寄存器(通用寄存器、指令指针、标志寄存器和段寄存器)、系统寄存器(控制寄存器、系统地址寄存器)、浮点寄存器(数据寄存器、标志字、状态字、指令和数据指针、控制字)、调试和测试寄存器。 图2-26给出了80486的基本寄存器。对基本寄存器中的通用寄存器、指令指针和标志寄存器简述如下。
2.5 80486微处理器 1) 通用寄存器 8个32位通用寄存器如图2-26所示,这些寄存器可存放数据或地址,且能支持数据操作数1位、8位、16位或32位以及1~32位的位字段。地址操作数有16位或32位。32位寄存器的名字叫EAX、EBX、ECX、EDX、ESI、EDI、EBP及ESP。
图3-26 80486的基本寄存器
通用寄存器的低16位可分别用16位名为AX、BX、CX、DX、SI、DI、BP和SP的寄存器来访问。当分别访问低16位时,高16位内容不变。 8位操作可以单独访问通用寄存器AX、BX、CX、DX的低位字节(0~7位)或高位字节(8~15位)。低位字节分别叫AL、BL、CL、DL,高位字节分别叫AH、BH、CH、DH,单独的字节访问提供了数据操作的灵活性,但不用于有效地址的计算。
2) 指令指针 指令指针如图2-26所示,它是32位的寄存器,称为EIP。EIP中存放下一条要执行的指令的偏移值。偏移值是相对于代码段的基值而言的。 EIP的低16位包含有16位指令指针,称为IP,它是用于16位编址的。
3) 标志寄存器 标志寄存器是32位寄存器,称为EFLAGS。在EFLAGS中规定的位和位字段控制某些操作,指明486微处理器状态,其低16位(0~15位)包含有16位寄存器,称为FLAGS,它在8086和80286指令执行时是最有用的。EFLAGS如图3-27所示。
图3-27 标志寄存器
1、80486的主要特点 (1)在CISC(复杂指令集计算机)技术的基础上,首次采用了RISC(精简指令集计算机)技术,使得大多数常用指令可以在一个时钟周期内完成,从而大大加快了指令的执行速度 (2)将浮点运算部件、Cache及其控制器集成于80486微处理器芯片内,使得数据和指令的存取速度、数据的运算速度进一步提高。采用突发式总线技术,从而大大加快CPU与内存之间的数据交换速度 (3)微处理器内部为全32位结构,即寄存器、ALU和内部数据总线宽度都是32位,地址总线也为32位。而CPU与浮点运算部件之间的数据通道为64位,CPU与Cache、Cache与Cache控制器之间数据通道为128位 (4)增加了多处理器指令,增强了多重处理系统,片上硬件确保了超高速缓存一致性协议,并支持多级超高速缓存结构。80486可以模拟多个80286CPU来提供更多层次的多任务功能 (5)80486具有内装自测试功能,可以广泛地测试片上逻辑电路、超高速缓存和片上分页转换高速缓存;支持硬件测试、Intel软件和扩展的第三者软件;调试性能包括执行指令和存取数据时的断点设置功能 2、80486的工作模式 实模式、保护模式、虚拟8086模式
1、 Pentium系列微处理的主要特点 2.6 Pentium系列微处理器 (1)采用超标量流水线结构。它是Pentium微处理器的核心技术,它由U和V两条指令流水线构成,每一流水线都拥有自己的ALU、地址生成电路和数据Cache的接口,使微处理器的运行速度成倍提高 (2)采用双Cache结构,指令Cache和数据Cache同时分别预取指令和操作数,且数据Cache有两个接口,能同时与U、V两条流水线交换数据,数据Cache还采用回写方式,以适应共享内存储器多机系统的需要 (3)将常用指令进行固化。一些常用的指令(如MOV、DEC、PUSH等)改用硬件实现,不再使用微代码操作,使指令的执行速度进一步提高 (4)采用全新设计的增强型浮点运算器(FPU),FPU采用了超级流水线技术,其执行过程分为8级流水线,浮点运算部件对一些指令采用新的算法,并用电路进行固化,硬件实现,使浮点运算速度大大提高 (5)处理器内部采用指令预取和分支预测技术,保证流水线的指令预取步骤不会空置,从而大大提高了流水线的执行效率 (6)系统可工作于实模式、保护模式、虚拟8086模式以及具有特色的系统管理模式(SMM)。系统复位时自动进入实模式,并可以从一种模式切换到另一种模式 (7)系统使用64位的外部数据总线,提高了数据传输速度;采用PCI局部总线;系统内部还增强了错误检测与报告、支持多重处理等功能
2.6 Pentium系列微处理 2、 Pentium系列微处理的内部结构
本 章 小 结 本章从典型微处理器出发,介绍了微处理器的基本组成、基本部件以及工作原理。通过本章的学习,读者应掌握典型微处理器的内部结构;熟悉各个功能部件的基本功能及工作过程;掌握总线接口单元和执行单元的基本组成和工作过程;了解80X86微处理器的内部结构;熟悉微处理器内部寄存器的功能和使用。
填空 习题与思考 物理地址=______地址×16+_______地址 8086CPU是一个 _______ 位的微处理器,具有 _______位数据总线, _______位地址总线,可寻址空间为_______ 。 80286CPU是一个 _______ 位的微处理器,具有 _______ 位数据总线, _______ 位地址总线,可寻址空间为_______ 。 80286CPU在设计中提供了两种模式,即 _______ 模式和 _______模式,系统中_______ 模式才能正真发挥80286的特点。 基 偏移 16 16 20 1MB 16 16 24 16MB 实地址 虚地址 虚地址
思考与练习题 1. 简述微处理器的一般组成。 2. 8086/8088微处理器为什么要分为EU和BIU两个部分?每个部分由哪几个基本部件组成? 3. 在指令执行期间,EU能直接访问存储器吗?为什么? 4. 为什么要设置段寄存器?8086/8088有几个段寄存器? 5. 什么是逻辑地址?什么是物理地址?它们之间有什么关系? 6. 简述80286的基本寄存器的功能。