微型计算机原理第3章.ppt
《微型计算机原理第3章.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理第3章.ppt(235页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 80 x86微处理器 第3章 80 x86微处理器 3.180 x86微处理器简介微处理器简介3.28086/8088微处理器微处理器3.38086/8088存储器和存储器和I/O组织组织3.4从从80286到到Pentium系列的技术发展系列的技术发展第3章 80 x86微处理器 3.180 x86微处理器简介80 x86微处理器是美国Intel公司生产的系列微处理器。该公司成立于1968年,1969年就设计了4位的4004芯片,1973年开发出8位的8080芯片,1978年正式推出16位的8086微处理器芯片,由此开始了Intel公司的80 x86系列微处理器的生产历史。本节简要介
2、绍Intel公司80 x86系列微处理器的发展过程及其特性。表3.1给出了80 x86系列微处理器概况。下面通过对表中有关技术数据的分析来说明Intel80 x86系列微处理器的发展情况。第3章 80 x86微处理器 表中“集成度”是指CPU芯片中所包含的晶体管数。“主频”是指芯片所使用的主时钟频率,它直接影响计算机的运行速度。“数据总线”是计算机中各个组成部件间进行数据传送时的公共通道,“内数据总线宽度”是指CPU芯片内部数据传送的宽度(位数),“外数据总线宽度”是指CPU与外部交换数据时的数据宽度,显然,数据总线位数越多,数据交换的速度就越快。第3章 80 x86微处理器“地址总线”是在对
3、存储器或I/O端口进行访问时,传送由CPU提供的要访问的存储单元或I/O端口的地址信息的总线,其宽度决定了处理器能直接访问的主存容量大小。如8086有20根地址线,使用这20根地址线上不同地址信息的组合,可直接对220=1M个存储单元进行访问;PentiumII有36根地址线,因此它可直接寻址的最大地址范围为236=64G。第3章 80 x86微处理器 高速缓冲存储器Cache的使用,大大减少了CPU读取指令和操作数所需的时间,使CPU的执行速度显著提高。为了满足微型计算机对存储器系统高速度、大容量、低成本的要求,目前,微型计算机系统采用如图3.1所示的三级存储器组织结构,即由高速缓冲存储器C
4、ache、主存和外存组成。第3章 80 x86微处理器 表表3.180 x86系列微处理器概况系列微处理器概况第3章 80 x86微处理器 当前正在执行的程序或要使用的数据必须从外存调入主存后才能被CPU读取并执行,主存容量通常为MB级(理论上可达GB级,如PentiumII可配置的内存最大容量可达236=64G,但事实上,基于成本和必要性考虑,目前,微型计算机内存配置一般都不会达到其理论允许值);当前没有使用的程序可存入外存,如硬盘、软盘、光盘等,外存的容量通常很大,可达GB甚至TB级;而高速缓冲存储器的最大特点是存取速度快,但容量较小,通常为KB级,将当前使用频率较高的程序和数据通过一定的
5、替换机制从主存放入Cache,CPU在取指令或读取操作数时,同时对Cache和主存进行访问,如果Cache命中,则终止对主存的访问,直接从Cache中将指令或数据送CPU处理,由于Cache的速度比主存快得多,因此,Cache的使用大大提高了CPU读取指令或数据的速度。第3章 80 x86微处理器 高速缓冲存储器(Cache)微处理器CPU主存储器(主存)外存储器(外存)图3.1存储器三级结构第3章 80 x86微处理器 80386之前的CPU都没有Cache。80386CPU内无Cache,而由与之配套使用的Intel82385Cache控制器实现CPU之外的Cache管理。80486之后的
6、CPU芯片内部都集成了一至多个Cache。需要说明的是,80 x86CPU在发展过程中,存储器的管理机制发生了较大变化。8086/8088CPU对存储器的管理采用的是分段的实方式;80286CPU除了可在实方式下工作外,还可以在保护方式下工作;而80386CPU之后的处理器则具有三种工作方式:实方式、保护方式和虚拟8086方式。第3章 80 x86微处理器 在保护方式下,机器可提供虚拟存储管理和多任务管理机制。虚拟存储的实现,为用户提供了一个比实际主存空间大得多的程序地址空间,从而可使用户程序的大小不受主存空间的限制。多任务管理机制的实现,可允许多个用户或一个用户的多个任务同时在机器上运行。从
7、80386开始,微处理器除支持实方式和保护方式外,又增加了一种虚拟8086方式。在这种方式下,一台机器可以同时模拟多个8086处理器的工作。有关存储器管理机制的详细介绍,请参阅3.4.2“80 x86存储器管理”一节。第3章 80 x86微处理器 3.28086/8088微处理器微处理器8086是Intel系列的16位微处理器。使用HMOS工艺制造,芯片上集成了2.9万个晶体管,用单一的+5V电源供电,封装在标准的40引脚双列直插式管壳内,时钟频率5MHz10MHz。8086有16条数据总线,可以处理8位或16位数据。有20条地址总线,可以直接寻址1M(220)字节的存储单元和64K个I/O端
8、口。在8086推出后不久,为方便原8位机用户,Intel公司很快推出了8088微处理器,其指令系统与8086完全兼容,CPU内部结构仍为16位,但外部数据总线是8位的,这样设计的目的主要是为了与原有的8位外围接口芯片兼容。并以8088为CPU组成了IBMPC、PC/XT等准16位微型计算机,由于其性能价格比高,很快占领了市场。第3章 80 x86微处理器 3.2.18086/8088内部结构内部结构一总线接口单元一总线接口单元BIU总线接口单元BIU的功能是负责完成CPU与存储器或I/O设备之间的数据传送。具体任务是:指令队列出现空字节(8088CPU1个空字节,8086CPU2个空字节)时,
9、从内存取出后续指令。BIU取指令时,并不影响EU的执行,两者并行工作,大大提高了CPU的执行速度。EU需要从内存或外设端口读取操作数时,根据EU给出的地址从内存或外设端口读取数据供EU使用第3章 80 x86微处理器 EU的运算结果、数据或控制命令等由BIU送往指定的内存单元或外设端口。总线接口单元内有4个16位段寄存器:代码段寄存器CS(CodeSegment)、数据段寄存器DS(DataSegment)、堆栈段寄存器SS(StackSegment)和附加数据段寄存器ES(ExtraSegment),一个16位的指令指针寄存器IP(InstructionPointer),一个20位地址加法器
10、,6字节指令队列缓冲器,一个与EU通讯的内部寄存器以及总线控制电路等。第3章 80 x86微处理器 图图3.28086CPU内部结构框图内部结构框图第3章 80 x86微处理器 1段寄存器段寄存器8086CPU的地址引脚有20根,能提供20位的地址信息,可直接对1M个存储单元进行访问,但CPU内部可用来提供地址信息的寄存器都是16位的,那么如何用16位寄存器实现20位地址的寻址呢?8086/8088采用了段结构的内存管理的方法。将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段中,这些段的段地址分别由段寄存器CS、DS、SS、ES提供,而代码或数据在段内的偏移地址则由有关寄存器或立即
11、数给出。第3章 80 x86微处理器 代码段寄存器CS存储程序当前使用的代码段的段地址。代码段用来存放程序的指令代码。下一条要读取指令在代码段中的偏移地址由指令指针寄存器IP提供;数据段寄存器DS用来存放程序当前使用的数据段的段地址。一般来说,程序中所用到的原始数据、中间结果以及最终结果都存放在数据段中,如果程序中使用了字符串处理指令,则源字符串也存放在数据段中;堆栈段寄存器SS用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域,详见3.3.4“堆栈操作”一节。附加数据段寄存器ES用来存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。
12、程序员在编写汇编语言源程序时,应该按照上述规定将程序的各个部分放在规定的段内。每个源程序必须至少有一个代码段,而数据段、堆栈段和附加数据段则根据程序的需要决定是否设置。第3章 80 x86微处理器 2指令指针寄存器指令指针寄存器指令指针寄存器IP用来存放下一条要读取的指令在代码段中的偏移地址。IP在程序运行中能自动加1修正,从而使其始终存放的是下一条要读取的指令在代码段的偏移地址。由于CS和IP的内容决定了程序的执行顺序,因此程序员不能直接用赋值指令对其内容进行修改。有些指令能使IP和CS的值改变(如跳转指令)或使其值压入堆栈或从堆栈中弹出恢复原值(如子程序调用指令和返回指令)。第3章 80
13、x86微处理器 320位地址加法器位地址加法器8086/8088CPU在对存储单元进行访问以读取指令或读/写操作数时,必须在地址总线上提供20位的地址信息,以便选中对应的存储单元。那么,CPU是如何产生20位地址的呢?CPU提供的用来对存储单元进行访问的20位地址是由BIU中的地址加法器产生的。第3章 80 x86微处理器 存储器中每个存储单元的地址可有以下两种表示方式:逻辑地址逻辑地址:其表达形式为“段地址:段内偏移地址”。段内偏移地址又称为“有效地址EA(EffectiveAddress)。在读指令时,段地址由代码段寄存器CS提供,当前要读取指令在代码段中的偏移地址由指令指针寄存器IP提供
14、;在读取或存储操作数时,根据具体操作,段地址由DS、ES或SS提供,段内偏移地址由指令给出。第3章 80 x86微处理器 物物理理地地址址:CPU与存储器进行数据交换时在地址总线上提供的20位地址信息称为物理地址。物理地址的形成过程如图3.3所示。当由IP提供或由EU根据指令所提供寻址方式计算出寻址单元的16位段内偏移地址后,把该偏移地址和段寄存器内容左移四位后(相当于乘以10H)得到的段基址(段内第一个存储单元的物理地址)同时送到BIU中的地址加法器,形成一个20位的物理地址,从而实现对存储单元的访问。由逻辑地址求物理地址的公式为:物理地址=段地址10H+段内偏移地址如假设当前(CS)=20
15、A8H,(IP)=2008H,那么,下一条从内存中读取的指令所在存储单元的物理地址为:20A8H10H+2008H=22A88H。第3章 80 x86微处理器 图3.3物理地址的形成第3章 80 x86微处理器 4.指令队列缓冲器指令队列缓冲器8086的指令队列有6个字节,8088的指令队列有4个字节。对8086而言,当指令队列出现2个空字节,对8088而言,指令队列出现1个空字节时,BIU就自动执行一次取指令周期,将下一条要执行的指令从内存单元读入指令队列。它们采用“先进先出”原则,按顺序存放,并按顺序取到EU中去执行。当EU执行一条需要到存储器或I/O端口读取操作数的指令时,BIU将在执行
16、完现行取指令的存储器周期后的下一个存储周期,对指令所指定的存储单元或I/O端口进行访问,读取的操作数经BIU送EU进行处理。当EU执行跳转、子程序调用或返回指令时,BIU就使指令队列复位,并从指令给出的新地址开始取指令,新取的第1条指令直接经指令队列送EU执行,随后取来的指令将填入指令队列缓冲器。第3章 80 x86微处理器 指令队列的引入使得EU和BIU可并行工作,即BIU在读指令时,并不影响EU单元执行指令,EU单元可以连续不断地直接从指令队列中取到要执行的指令代码,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。第3章 80 x86微处理器 二执行单元二
17、执行单元EU执行单元EU不与系统外部直接相连,它的功能只是负责执行指令。执行的指令从BIU的指令队列缓冲器中直接得到,执行指令时若需要从存储器或I/O端口读取操作数时,由EU向BIU发出请求,再由BIU对存储器或I/O端口进行访问。EU由下列部件组成:1.16位算术逻辑单元(ALU):用于进行算术和逻辑运算。2.16位标志寄存器FLAGS:用来存放CPU运算的状态特征和控制标志。3.数据暂存寄存器:协助ALU完成运算,暂存参加运算的数据。第3章 80 x86微处理器 4.通用寄存器:包括4个16位数据寄存器AX、BX、CX、DX和4个16位指针与变址寄存器SP、BP与SI、DI。5.EU控制电
18、路:它是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。8088CPU内部结构与8086基本相似,两者的执行单元EU完全相同,其指令系统,寻址方式及程序设计方法都相同,所以两种CPU完全兼容。区别仅在于总线接口单元BIU,归纳起来主要有以下几个方面的差异:第3章 80 x86微处理器 1外部数据总线位数不同。8086外部数据总线16位,在一个总线周期内可以输入/输出一个字(16位数据),而8088外部数据总线8位,在一个总线周期内只能输入/输出一个字节(8位数据)。2指令队列缓冲器大小不同。8086指令队列可容纳
19、6个字节,且在每一个总线周期中从存储器取出2个字节的指令代码填入指令队列;而8088指令队列只能容纳4个字节,在一个机器周期中取出一个字节的指令代码送指令队列。3.部分引脚的功能定义有所区别。第3章 80 x86微处理器 3.2.28086/8088寄存器结构寄存器结构图3.48086/8088CPU内部寄存器结构第3章 80 x86微处理器 一通用寄存器一通用寄存器通用寄存器包括四个数据寄存器,两个地址指针寄存器和两个变址寄存器。1数据寄存器数据寄存器AX、BX、CX、DX数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,但又可将高、低8位分别作为两个独立的8位寄
20、存器来用。高8位分别记作AH、BH、CH、DH,低8位分别记作AL,BL,CL,DL。例如AX可当作两个8位寄存器AH、AL使用。注意,8086/8088CPU的14个寄存器除了这4个16位寄存器能分别当作两个8位寄存器来用之外,其它寄存器都不能如此使用。第3章 80 x86微处理器 上述4个寄存器一般用来存放数据,但它们各自都有自己的特定用途:AX(Accumulator)称为累加器。用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息。BX(Base)称为基址寄存器。8086/8088CPU中有两个基址寄存器BX和BP。BX用来存放
21、操作数在内存中数据段内的偏移地址,BP用来存放操作数在堆栈段内的偏移地址。第3章 80 x86微处理器 CX(Counter)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。DX(Data)称为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。第3章 80 x86微处理器 2.地址指针寄存器地址指针寄存器SP、BPSP(StackPointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统
22、会自动将SP的内容减2或加2,以使其始终指向栈顶。BP(BasePointer)称为基址寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。第3章 80 x86微处理器 3.变址寄存器变址寄存器SI、DISI(SourceIndex)称为源变址寄存器。DI(DestinationIndex)称为目的变址寄存器。这两个寄存器通常用在字符串操作时存放操作数的偏移地址,其中SI存放源串在数据段内的偏移地址,DI存放目的串在附加数据段内的偏移地址。第3章 80 x86微处理器 二二.段寄存器段寄存器为了对1M个存储单元进行管理,8086/8088对存储器进
23、行分段管理,即将程序代码或数据分别放在代码段、数据段、堆栈段或附加数据段中,每个段最多可达64K个存储单元。段地址分别放在对应的段寄存器中,代码或数据在段内的偏移地址由有关寄存器或立即数给出。8086/8088的四个段寄存器分别为:CS(CodeSegment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。CS的内容左移四位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。第3章 80 x86微处理器 DS(DataSegment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。DS的内容左移四位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段
24、指定单元进行读写的物理地址。SS(StackSegment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按先进后出原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。ES(ExtraSegment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。附加数据段用来存放字符串操作时的目的字符串。第3章 80 x86微处理器 表表3.28086/8088段寄存器与提供段内移地址的寄存器之间的默认组合段寄存器提供段内偏移地址的寄存器CSIPDSBX、SI、DI或一个16位数SSSP或BPESDI(用于字符串操作指令)第3章 8
25、0 x86微处理器 三三.控制寄存器控制寄存器IP(InstructionPointer)称为指令指针寄存器,用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP。FLAGS称为标志寄存器,它是一个16位的寄存器,但只用了其中9位,这9位包括6个状态标志位,3个控制标志位,如图3.5所示。第3章 80 x86微处理器 图3.58086/8088的标志寄存器第3章 80 x86微处理器 1.状态标志位状态标志位状态标志位用来反映算术和逻辑运算结果的一些特征。如结果是否为“0”,是否有进位、借位、溢出等。不同指令对状态标志位的影响是不同的。下面分别介绍这6个状态标志位的功能。C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理
限制150内