《南京邮电大学微型计算机原理与接口技术 chap2 孙力娟.ppt》由会员分享,可在线阅读,更多相关《南京邮电大学微型计算机原理与接口技术 chap2 孙力娟.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2 2章章 80X8680X86微处理器微处理器 教材教材:第第2 2章章 80X8680X86微处理器微处理器1.位和字节位和字节 位(位(bit)是计算机所能表示的最小最基本的数据单位,它指的是计算机所能表示的最小最基本的数据单位,它指的 是取值只能为是取值只能为0或或1的一个二进制数值位。位作为单位时记作的一个二进制数值位。位作为单位时记作b 字节(字节(byte)由由8个位二进制位组成,通常用作计算存储容量的个位二进制位组成,通常用作计算存储容量的 单位。字节作为单位时记作单位。字节作为单位时记作B K是是kelo的缩写,的缩写,1K=1024=210;M是是mega的缩写,的缩写
2、,1M=1024K=220;G是是Giga的缩写,的缩写,1G=1024M=230;T是是tera的缩写,的缩写,1T=1024G=240。微型计算机的常用术语微型计算机的常用术语100001012.字长字长(数据宽度数据宽度)字长是微处理器一次可以直接处理的二进制数码的位数,它通常取字长是微处理器一次可以直接处理的二进制数码的位数,它通常取 决于微处理器内部通用寄存器的位数和数据总线的宽度。微处理决于微处理器内部通用寄存器的位数和数据总线的宽度。微处理 器的字长有器的字长有4位、位、8位、位、16位、位、32位和位和64位等等。位等等。微型计算机的常用术语微型计算机的常用术语3.寻址能力寻址
3、能力 指指CPU能直接存取数据的内存地址的范围,它由能直接存取数据的内存地址的范围,它由CPU的地址总线的数的地址总线的数 目决定。目决定。4.主频主频 主频主频也叫也叫时钟频率时钟频率,用来表示微处理器的运行速度,主频越高,用来表示微处理器的运行速度,主频越高 表明微处理器运行越快,主频的单位是表明微处理器运行越快,主频的单位是MHz。微型计算机的常用术语微型计算机的常用术语5.MIPS MIPS是是Millions of Instruction Per Second的缩写,用来表示微处的缩写,用来表示微处理器的性能理器的性能-运算速度运算速度,每秒钟能执行多少百万条指令每秒钟能执行多少百万
4、条指令.6.6.微处理器的集成度微处理器的集成度 指微处理器芯片上集成的晶体管的密度。指微处理器芯片上集成的晶体管的密度。最早最早Intel 4004的集成度为的集成度为2250个晶体管,个晶体管,Pentium III的集成度已的集成度已 经达到经达到750万个晶体管以上,集成度提高了万个晶体管以上,集成度提高了3000多倍。多倍。型号型号发布发布年分年分字长字长(位位)晶体管晶体管(万个万个)数据总数据总线宽度线宽度外部总外部总线宽度线宽度主频主频寻址寻址空间空间高速高速缓存缓存80861978162.916164.771M无无80881979162.91684.771M无无2861982
5、1613.4161662016M无无38619863227.5323212334G有有4861989321203232251004G8K奔腾奔腾1993323106464601664G8K奔腾奔腾Pro199532550646415020064G8K256K奔奔2199732750646423333364G32K512KItanium2000642.2亿亿64641G以上以上64G6M集集成三级成三级酷睿酷睿2 2006642.91亿亿 64643.60G64G6M集集成三级成三级80X86 CPU80X86 CPU介绍介绍微处理器的基本功能模块微处理器的基本功能模块:总线接口单元总线接口单元
6、 BIU(寄存器组)(寄存器组)执行单元执行单元 EU(运算器和控制器、寄存器组)(运算器和控制器、寄存器组)微处理器内部结构微处理器内部结构存储管理存储管理(分段和分页部件分段和分页部件)指令和数据流水线指令和数据流水线指令和数据指令和数据CACHE指令预取指令预取浮点处理浮点处理分支预测分支预测并行计算并行计算微处理器的功能扩展模块微处理器的功能扩展模块:PentiumPentium 采用了多项先进技术:采用了多项先进技术:CISCCISC和和RISCRISC相相结合的技术结合的技术 超标量流水线技术超标量流水线技术 分支预测技术分支预测技术 RISC和和CISC:RISC(Reduced
7、 Instruction Set Computer),),精简指精简指令系统的计算机令系统的计算机 提供数目较少、格式与功能简单、运行高效的指令提供数目较少、格式与功能简单、运行高效的指令 追求的是计算机控制器实现简单,运行高速,更容易追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来在单块超大规模集成电路的芯片内制做出来CISC(Complex Instruction Set Computer),),复杂指复杂指令系统的计算机令系统的计算机 相对于相对于RISC一词而提出来的一种说法一词而提出来的一种说法 特点:指令条数多,格式多样,寻址方式复杂,每条特点:
8、指令条数多,格式多样,寻址方式复杂,每条指令的功能强。汇编程序设计容易些,但计算机控制指令的功能强。汇编程序设计容易些,但计算机控制器的实现困难多,很多指令被使用的机会并不多器的实现困难多,很多指令被使用的机会并不多超标量流水线:超标量流水线:标量指单个量,一般的标量指单个量,一般的流水计算机流水计算机因只有一条指令流水线,所以因只有一条指令流水线,所以 称为标量流水计算机,所谓称为标量流水计算机,所谓超标量超标量是指其具有两条以上的指令流水线是指其具有两条以上的指令流水线.Pentium Pentium 有有有有U U、V V两条整型流水线,一条浮点流水线。两条整型流水线,一条浮点流水线。两
9、条整型流水线,一条浮点流水线。两条整型流水线,一条浮点流水线。流水线:流水线:是一种使多条指令重叠操作的技术是一种使多条指令重叠操作的技术,是当代微处理器设计中的关键技术之一。是当代微处理器设计中的关键技术之一。把一条指令分解成若干个步骤来完成,在流水线上称为级,每级把一条指令分解成若干个步骤来完成,在流水线上称为级,每级 都在一个时钟周期内完成各自的操作。这样每个时钟周期都可以启动都在一个时钟周期内完成各自的操作。这样每个时钟周期都可以启动 一条指令,一条指令,m级的流水线上就会有级的流水线上就会有m条指令在同时执行。条指令在同时执行。流水线的性能比非流水线作业几乎提高了流水线的性能比非流水
10、线作业几乎提高了m倍。倍。分支预测:分支预测:所谓分支预测是指当遇到转移指令、所谓分支预测是指当遇到转移指令、CALL调用指令、调用指令、RET返回指返回指 令、令、INT n中断指令等跳转指令时,指令预取单元能够较准确地判中断指令等跳转指令时,指令预取单元能够较准确地判 定定 是否转移取指。是否转移取指。2.1 32位微处理器内部结构位微处理器内部结构预取缓冲存储器指令译码256控制ROM控制部件地址生成(U流水线)地址生成(V流水线)整数寄存器组ALU(U 流水线)ALU(V 流水线)筒型移位器8KB 数据Cache浮点部件控制寄存器组加法器除法器乘法器80808KB 代码Cache分支目
11、标缓冲器预取地址指令指针转移校验和目标地址分页部件323232323232总线部件6464 位读总线64 位数据总线32 位地址总线控制TLBTLB32 位地址总线基本结构寄存器:基本结构寄存器:486486内部寄存器分为内部寄存器分为4 4类类:H基本结构寄存器基本结构寄存器H浮点寄存器浮点寄存器H系统级寄存器系统级寄存器H调试测试寄存器调试测试寄存器应用程序只能访问基本结构寄存器和浮点寄存器。应用程序只能访问基本结构寄存器和浮点寄存器。(我们我们只介绍基本结构寄存器只介绍基本结构寄存器)AH AX ALBH BX BLCH CX CLDH DX DLSPBPDISIIPFLAGSCSDSE
12、SSSFSGS32位名称位名称EAXEBXECXEDXESPEBPEDIESI8位名称位名称16位名称位名称EIPEFLAGS 名称名称累加器累加器基址变址基址变址计数计数数据数据堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址指令指针指令指针标志标志代码代码数据数据附加附加堆栈堆栈32位位16位位注意:注意:286以以下下绿绿色色区区域域不不可可用用;FS、GS 无专用名称;无专用名称;AX(accumulater)-累加器累加器 BX(Base)-基址寄存器基址寄存器 CX(Count)-计数器计数器 DX(Data)-数据寄存器数据寄存器AH AX ALBH BX BLCH
13、CX CLDH DX DLSPBPDISI32位名称位名称EAXEBXECXEDXESPEBPEDIESI16位名称位名称 名称名称累加器累加器基址变址基址变址计数计数数据数据堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址8位名称位名称1.通用寄存器通用寄存器AX、BX、CX、DX 共同特点共同特点:既可作为既可作为16位寄存器来用又可作为两个位寄存器来用又可作为两个8位寄存器(高、低位)来用;位寄存器(高、低位)来用;都是用于暂存操作数,或是运算的中间结果或其它一些信息。都是用于暂存操作数,或是运算的中间结果或其它一些信息。指令操作码操作数指令操作码操作数AH AX ALBH
14、BX BLCH CX CLDH DX DLSPBPDISI32位名称位名称EAXEBXECXEDXESPEBPEDIESI16位名称位名称 名称名称累加器累加器基址变址基址变址计数计数数据数据堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址8位名称位名称 IP、SP、BP、SI、DI:为寻址存贮单元提供偏移地址。其中:为寻址存贮单元提供偏移地址。其中:IP(Instruction Pointer)-指令指令指针指针AH AX ALBH BX BLCH CX CLDH DX DLSPBPDISI32位名称位名称EAXEBXECXEDXESPEBPEDIESI16位名称位名称 名称名称
15、累加器累加器基址变址基址变址计数计数数据数据堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址8位名称位名称IPSP(Stack Pointer)-堆栈堆栈指针指针BP(Base Pointer)-基址基址指针指针SI(Source Index)-源变址寄存器源变址寄存器DI(Destination Index)-目的变址寄存器目的变址寄存器 CS、DS、ES、SS-4个段寄存器,和偏移地址个段寄存器,和偏移地址寄存器一起形成寄存器一起形成20位存储器物理地址,对存储器中位存储器物理地址,对存储器中存放的程序、数据、堆栈区域加以区别、寻址。存放的程序、数据、堆栈区域加以区别、寻址。寻
16、址程序寻址程序(指令指令):CSIP;寻址数据:寻址数据:(DS或或ES)(SI或或DI、BX、BP);寻址堆栈:寻址堆栈:SS(SP或或BP)具体用法在寻址方式中介绍具体用法在寻址方式中介绍CSDSESSSFSGS代码代码数据数据附加附加堆栈堆栈 标志寄存器标志寄存器FLAGS又称为程序状态字又称为程序状态字PSW,为,为16位寄存位寄存器,该寄存器主要有器,该寄存器主要有两个作用两个作用:记录记录CPU运行结果状态标志;运行结果状态标志;提供控制标志。提供控制标志。FLAGS各位含义如下:各位含义如下:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF
17、IF TF SF ZF AF PF CFFLAGSEFLAGS标志寄存器标志寄存器 根据功能,根据功能,8086的标志可以分为两类:的标志可以分为两类:状态标志:状态标志:表示前面的操作执行后,算术逻辑部件表示前面的操作执行后,算术逻辑部件处在怎样一种状态,这种状态会像某种先决条件一样处在怎样一种状态,这种状态会像某种先决条件一样影响后面的操作。有影响后面的操作。有SF、ZF、PF、CF、AF和和OF 控制标志:控制标志:每个控制标志都对某一种特定的功能起每个控制标志都对某一种特定的功能起控制作用。指令系统中有专门的指令用于控制标志的控制作用。指令系统中有专门的指令用于控制标志的设置和清除。有
18、设置和清除。有DF、IF、TF。一一.32位微处理器工作模式位微处理器工作模式 1.1.实模式的特点实模式的特点加电、复位之后,加电、复位之后,486486自动工作在实模式,系统在自动工作在实模式,系统在DOSDOS管理下管理下在实模式下,在实模式下,486486只能访问第一个只能访问第一个1M1M内存内存(00000H(00000HFFFFFH)FFFFFH)H 实地址模式实地址模式(实模式实模式)H 保护虚拟地址模式保护虚拟地址模式(保护模式保护模式)H 虚拟虚拟86模式模式2.2 2.2 32位微处理器的工作模式和地址空间位微处理器的工作模式和地址空间 存存储储管管理理部部件件对对存存储
19、储器器只只进进行行分分段段管管理理,没没有有分分页页功功能能,每一逻辑段的最大容量为每一逻辑段的最大容量为64K64K。在实模式下,段寄存器中存放段基址在实模式下,段寄存器中存放段基址。2.2.保护模式的特点保护模式的特点:(:(仅作了解)仅作了解)486486工作在保护模式下,才能真正发挥它的设计能力。工作在保护模式下,才能真正发挥它的设计能力。在保护模式下,在保护模式下,486486支持多任务操作系统支持多任务操作系统在保护模式下,在保护模式下,486486可以访问可以访问4G4G物理存储空间物理存储空间存储管理部件中,对存储器采用分段和分页管理存储管理部件中,对存储器采用分段和分页管理操
20、作系统核心操作系统核心系统服务及接口系统服务及接口应用程序应用程序0级级1级级2级级3级级H关于保护机制:关于保护机制:高级别的程序可以访问同级或低级的数据段,反之则不行高级别的程序可以访问同级或低级的数据段,反之则不行3.3.虚拟虚拟8686模式模式(仅作了解)(仅作了解):虚拟虚拟8686模式是保护模式下的一种特殊工作模式模式是保护模式下的一种特殊工作模式,可运行可运行实模式程序。实模式程序。在操作系统管理下在操作系统管理下,486,486可以分时地运行多个实模式程可以分时地运行多个实模式程序。序。例如:例如:有有3 3个任务个任务,操作系统为每一个任务分配操作系统为每一个任务分配1ms,
21、1ms,每每通过通过1ms1ms就发生一次任务切换就发生一次任务切换,从宏观上看系统是在执行多从宏观上看系统是在执行多个任务。个任务。1.1.存储空间:存储空间:H 物理空间物理空间(物理存储器地址空间):物理存储器地址空间):程序的运行空间程序的运行空间,即主存空间即主存空间 2 23232=4G=4G 物理物理 地址:地址:物物 理理 空空 间间 486486有有3232条地址线,内存最大容条地址线,内存最大容量量4G4G。这这4G4G字节称为物理存储字节称为物理存储器,每一单元的地址称为器,每一单元的地址称为物理物理地址地址,其地址范围:,其地址范围:0000,0000H0000,000
22、0HFFFF,FFFFHFFFF,FFFFH为物理为物理存储空间。存储空间。二二.32位微处理器的地址空间位微处理器的地址空间 H 虚拟空间虚拟空间(虚拟存储器地址空间虚拟存储器地址空间):):编程空间编程空间 虚拟存储器是一项硬件和软件结合的技术。虚拟存储器是一项硬件和软件结合的技术。存存储储管管理理部部件件把把主主存存(物物理理存存储储器器)和和辅辅存存(磁磁盘盘)看看作作是是一一个个整整体体,即即虚虚拟拟存存储储器器。允允许许编编程程空空间间为为2 24646=64T=64T,程程序序员员可可在在此此地地址址范范围围内内编编程程,程程序序可可大大大大超超过过物物理理空空间间。该该空空间间
23、对对应应的的地地址址称称为为虚虚拟拟地地址址或或逻逻辑辑地地址址。运运行行时时,操操作作系系统统从从虚虚拟拟空空间间取取一一部部分分程程序序载载入入物物理理存存储储器器运运行行。当当程程序序运运行行需需要要调调用用的的程程序序和和要要访访问问的的数数据据不不在在物物理理存存储储器器时时,操操作作系系统统再再把把那那一一部部分分调调入入物物理理存存储储器器.数据的交换极快,程序察觉不到。数据的交换极快,程序察觉不到。线性地址线性地址实模式:存储空间仅分段,而不分页;实模式:存储空间仅分段,而不分页;保护模式:存储空间先分段,再分页。保护模式:存储空间先分段,再分页。分页部件分页部件H 线性空间:
24、线性空间:当程序从虚拟空间调入物理空间时,要进行地址转换。当程序从虚拟空间调入物理空间时,要进行地址转换。分段部件首先把虚拟地址分段部件首先把虚拟地址(编程地址编程地址)转换为转换为线性地址线性地址,如果不分页的话,线性地址就是物理地址;如果不分页的话,线性地址就是物理地址;如果分页的话,则由分页部件把线性地址转换为如果分页的话,则由分页部件把线性地址转换为物理地址。物理地址。虚拟地址虚拟地址不分页不分页物理地址物理地址分段部件分段部件HI/OI/O地址空间与存储空间不重叠地址空间与存储空间不重叠 CPUCPU有有一一条条控控制制线线M/IOM/IO,在在硬硬件件设设计计上上用用M/IO=1M
25、/IO=1,参参与与存存储器寻址,用储器寻址,用M/IO=0M/IO=0参与参与I/OI/O寻址寻址。H 从从PC/XTPC/XTPentiumPentium,基于基于IntelIntel微处理器的系统机,实际上微处理器的系统机,实际上只使用低只使用低1010位地址线,寻址位地址线,寻址2 21010=1024=1024个个I/OI/O端口。端口。2.I/O2.I/O空间空间:486 486利用低利用低1616位地址线访问位地址线访问I/OI/O端口,所以端口,所以I/OI/O端口最多端口最多有有2 21616=64K=64K,I/OI/O地址空间为地址空间为0000H0000HFFFFHFF
26、FFH。注意:注意:HI/OI/O地址空间不分段地址空间不分段三三.实模式下实模式下,物理地址的形成(重要)物理地址的形成(重要)1.1.存储器的分段管理存储器的分段管理:我们把我们把1M字节的存储器字节的存储器分为任意数量的段,其中分为任意数量的段,其中每一段长度每一段长度64K(216)字字节。段的起始地址的高节。段的起始地址的高16位地址称为位地址称为该段的段基址。该段的段基址。段内再由段内再由16位二进制数寻位二进制数寻址,段内寻址的址,段内寻址的16位二进位二进制数地址是存贮单元到段制数地址是存贮单元到段起始地址的距离,称为起始地址的距离,称为偏偏移地址。移地址。一一个个逻逻辑辑段段
27、 1FFFFH1FFFFH 10000H10000H12345H2345H(64KB)段基址:段基址:偏移量偏移量(1000H:2345H)16位段地址位段地址 16位段内偏移量位段内偏移量16位段地址位段地址 0000 20位物理地址位物理地址地址加法器地址加法器段寄存器段寄存器偏移地址寄存器偏移地址寄存器左移左移4位位15 016位段寄存器位段寄存器000020位物理地址位物理地址19 0+15 016位偏移地址位偏移地址实模式下实模式下20位物理地址的形成位物理地址的形成例:设某存贮单元例:设某存贮单元 段基址段基址=1000H,偏移量偏移量=2345H=2345H则物理地址为:则物理地
28、址为:10000H10000H 2345H2345H 12345H单元物理地址为单元物理地址为12345H,12345H,逻辑地址为逻辑地址为 1000H:2345H1000H:2345H H 在一个逻辑段中在一个逻辑段中,各单元的各单元的段基址段基址是相同的是相同的H 偏移地址偏移地址是该单元相对于段首的地址偏移量是该单元相对于段首的地址偏移量一一个个逻逻辑辑段段 10000H10000H12345H12345H 存贮器中的每个存贮单元都可以用两个形式的地址来表存贮器中的每个存贮单元都可以用两个形式的地址来表示:示:物理地址和物理地址和逻辑地址地址。物理地址是指。物理地址是指1MB1MB存贮
29、区域中的某存贮区域中的某一单元地址,地址信息是一单元地址,地址信息是2020位的二进制代码位的二进制代码,以,以1616进制表示进制表示是是00000HFFFFFH00000HFFFFFH中的一个单元,中的一个单元,CPUCPU访问存贮器时,地址总访问存贮器时,地址总线上送出的是物理地址。编制程序,则采用线上送出的是物理地址。编制程序,则采用逻辑地址逻辑地址。逻辑。逻辑地址由段基址和偏移量组成。地址由段基址和偏移量组成。H 所有段都是起始于所有段都是起始于16字节的边界。字节的边界。逻辑地址需由程序员在编程时给出逻辑地址需由程序员在编程时给出段段 基基 址:指明由哪个段寄存器给出即可址:指明由
30、哪个段寄存器给出即可偏移地址:由程序员在程序中给出具体值偏移地址:由程序员在程序中给出具体值注意:注意:物理地址是唯一的,不同的逻辑地址可得到相同的物理地址是唯一的,不同的逻辑地址可得到相同的物理地址。物理地址。如:如:2000H:0200H 20200H 2010H:0100H 20200H实模式下实模式下20位物理地址的形成位物理地址的形成 逻辑段逻辑段 段基址存放在段基址存放在 偏移地址存放在偏移地址存放在 代码段代码段 CS IPCS IP 堆栈段堆栈段 SS SPSS SP 数据段数据段 DS DS 根据不同的寻址方式根据不同的寻址方式 附加段附加段 ES/FS/GS ES/FS/G
31、S 选择选择BXBX、SISI、DIDI2.2.各逻辑段物理地址的形成各逻辑段物理地址的形成(以以1616位寻址为例位寻址为例):):在实模式下在实模式下,段寄存器存放相应逻辑段的段基址段寄存器存放相应逻辑段的段基址 代码段代码段:CS*2CS*24 4+IP=+IP=指令单元的物理地址指令单元的物理地址一条指令的一个字节取出后,一条指令的一个字节取出后,IPIP自动加自动加1 1,指向下一字节。,指向下一字节。堆栈段:堆栈段:SS*2SS*24 4+SP=+SP=栈顶单元的物理地址栈顶单元的物理地址数据段:数据段:DS*2DS*24 4+偏移地址偏移地址 =数据单元的物理地址数据单元的物理地
32、址实模式下实模式下20位物理地址的形成位物理地址的形成实模式下实模式下20位物理地址的形成位物理地址的形成3 3段寄存器和指针寄存器的初值段寄存器和指针寄存器的初值CSCS、IPIP的初值:由操作系统赋值的初值:由操作系统赋值DS/ES/FS/GSDS/ES/FS/GS的初值:由程序员赋值。的初值:由程序员赋值。SSSS、SPSP的初值:的初值:由程序员赋值由程序员赋值 由操作系统自动赋值由操作系统自动赋值BX/SI/DI/BPBX/SI/DI/BP的初值:由程序员赋值。的初值:由程序员赋值。第第2 2章章 学习重点学习重点1.1.了解了解X86X86内部主要功能块的简单作用内部主要功能块的简单作用2.2.掌握基本结构寄存器中的通用寄存器、段寄存器、掌握基本结构寄存器中的通用寄存器、段寄存器、指针寄存器的结构、名称、汇编助记符指针寄存器的结构、名称、汇编助记符3.3.掌握掌握3232位微处理器工作模式中的实模式的特点,位微处理器工作模式中的实模式的特点,了解保护模式的工作特点了解保护模式的工作特点4.4.掌握实模式下存储器各个逻辑段的物理地址的形掌握实模式下存储器各个逻辑段的物理地址的形成方法,以及成方法,以及CSCS、IPIP,SSSS、SPSP,DSDS、ESES各寄存器初各寄存器初值的赋值原则及特点值的赋值原则及特点