微机系统与接口:第八章 80386微处理器_第1页
微机系统与接口:第八章 80386微处理器_第2页
微机系统与接口:第八章 80386微处理器_第3页
微机系统与接口:第八章 80386微处理器_第4页
微机系统与接口:第八章 80386微处理器_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

80386微处理器

(第5版教材第8章8.2)

(参考郁慧娣书第9章9.2、9.3、9.4)

第八章80386微处理器80386是一种与16位的80286相兼容的第一个高性能全32位微处理器,它代表了体系结构的重要进步——从16位体系结构过渡到32位体系结构。80386采用高速CHMOSⅢ1.5μm技术,132条引出线用网格阵列式封装在陶瓷片内,其耗散功率在1.5w到3.0w之间。

一、80386的特点

1.80386芯片在硬件结构上由6个逻辑单元组成。它们按流水线方式工作,运行速度可达到4MIPS。

2.80386有三种方式:实方式、保护方式、V86方式

。3.硬件支持分段管理和分页管理,易于实现虚拟存储系统。

4.硬件支持多任务,一条指令可以完成任务切换。

5.特权保护机制

4级特权级:0级最优先,其次为1,2和3级。二、80386的内部结构(简略)1.

总线接口部件(BIU:BusInterfaceUnit)。2.

指令预取部件(CPU:CodePrefetchUnit)。3.

指令译码部件(IDU:InstructionDecodeUnit)。4.

执行部件(EU:ExecutionUnit)。它可进一步分为控制部件(ControlUnit),保护测试部件(ProtectionTestUnit)和数据处理部件(DataUnit)3部分。5.

段管理部件(SU:SegmentUnit)。6.页管理部件(PU:PagingUnit)。三、80386的寄存器结构

80386有7类寄存器: 通用寄存器、段寄存器、指令指针和标志寄存器、控制寄存器、系统地址寄存器、调试寄存器以及测试寄存器。 (一)通用寄存器

80386有8个32位的通用寄存器,分别为EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。 80386中有一个32位的指令指针(EIP)和一个32位的标志寄存器(EFLAGS)。 80386工作在实模式时采用16位的指令指针IP。

EFLAGS的低12位与8086标志寄存器FLAGS完全相同。高20位中设置了5位新的标志。(二)指令指针和标志寄存器图8.10保护方式标志寄存器(P271)(三)段寄存器和段描述符高速缓存器

80386增加了FS和GS两个新的数据段寄存器。

段寄存器里存放的不再是段基址的高16位,而是选择字(Selector)(P285图8.19),用于查找段对应的描述符表,得到包含段基址、界限、属性等的段描述符。(三)段寄存器和段描述符高速缓存器

在第一次访问某段时,从描述符表中查找到段描述符,自动装入Catch中的段描述符高速缓存器(P270图8.9)。下次再访问该段时,无需再查表、装入。图8.980386的段寄存器和段描述符高速缓存器(P270)(四)系统地址寄存器和系统段寄存器

GDTR——

全局描述符表寄存器

IDTR——

中断描述符表寄存器

LDTR——

局部描述符表寄存器

TR——任务寄存器全局描述符表寄存器(GDTR)例1.

如果GDTR的内容为200000001FFFh,请给出GDT的起始地址、结束地址、表的长度。表中放了多少个描述符?最后一个描述符的地址范围?解:GDT的起始地址

=20000000h

GDT的结束地址

=20000000h+1FFFh=20001FFFh

GDT表长

=1FFFh+1=2000h

表中描述符个数

=2000h÷8=400h=1024 最后一个描述符的地址范围:20001FFFh-7=20001FF8h~20001FFFh

课堂练习1习题9.5:如果GDTR的内容为0021000001FFh,请给出GDT表的起始地址、结束地址、表的长度。表中放了多少个描述符?中断描述符表寄存器(IDTR)局部描述符表寄存器(LDTR)例2.假设GDT的基地址为01002000h,LDTR=2108h,问LDT描述符的地址范围?解:LDTR=0010000100001000

TI=0,LDT描述符在GDT中

索引

=0010000100001

LDT描述符的起始地址:GDT的基地址+索引×8=01002000h+0010000100001×8

=01002000h+2108H=01004108h

LDT描述符的地址范围(占8字节): 01004108h~0100410Fh任务寄存器(TR)例3.假设GDT的基地址为00011000h,TR=3208h,问TSS描述符的地址范围?解:TR=?(2进制)

TI=?,TSS描述符在?中

索引

=?(2进制)

TSS描述符的起始地址:GDT的基地址+索引×8=?+?×8

=?

TSS描述符的地址范围(占8字节):

?(起始地址)~?(结束地址)课堂练习2(五)控制寄存器

80386中有3个32位的控制寄存器CR0、CR2和CR3,用于保存机器的各种全局性状态,这些状态影响系统所有任务的运行。

CR1未定义,留作备用。1.CR0——控制寄存器0(P273图8.12) 定义了6个控制和状态标志。PE(位0)和PG(位31)——保护控制位。TS——任务切换位每当任务切换时,处理器将把TS置为1。MP——监控协处理器位MP为1时,表示有协处理器在工作。EM——模拟协处理器控制位EM为1时,表示用软件仿真协处理器。ET

——协处理器扩展类型

0:80287协处理器;1:80387协处理器;2.CR2——控制寄存器2CR2称为页面故障线性地址寄存器,用于发生页面访问异常时报告出错信息。3.CR3——控制寄存器3CR3称为页目录基址寄存器,用于存放页目录表的基地址。如下图所示(分页时用到)。四、80386的三种工作模式

80386有3种工作模式:

实地址模式(RealAddressMode),简称为实模式;

保护虚拟地址模式(ProtectedVirtualAddressMode),简称为保护模式;

虚拟地址8086模式(VirtualAddress8086Mode),简称为V86模式。(一)实地址模式

当80386在刚加电启动或复位时,便由操作系统自动控制进入实模式。

实模式主要是为80386进行初始化用的,为80386保护模式所需要的数据结构做好各种配置和准备。 在实模式下,80386类似于8086的体系结构,与8086兼容。(二)保护虚拟地址模式

保护模式是80386最常用的、也是最具特色的工作模式。通常在开机或复位后,先进入实模式完成初始化,然后就立即切换到保护模式。 保护模式提供了多任务环境中的各种复杂功能以及对复杂存储器组织的管理机制:

1)多用户、多任务,保护机制;

2)虚拟存储管理;

物理存储空间:4GB;

虚拟存储空间:64TB(???)

所谓虚拟存储空间是指程序所占有的存储空间。80386系统中,由于内存容量的限制,并不可能将所有的段都放在内存中的,而必须将大部分段放在海量的外部磁盘上,待执行到相关程序段时再调入内存,将暂时不执行的程序段调出内存。 程序员编写程序时,其程序存入磁盘。这样,从程序员的角度来看,系统中似乎有一个容量很大、速度也相当快的虚拟存储器;其实,它并不是真正物理上的内存。 3)保护机制; 特权保护机制、不同任务之间的隔离(不同的虚拟存储空间)(三)虚拟8086模式(1)使80386可以快速地执行多个8086的应用程序。(2)段寄存器的用法和实模式时相同。(3)存储器寻址空间为1MB,可以使用分页机制,支持多任务。在多任务系统中,80386可以使其中的一个或几个任务使用虚拟8086模式。此时,可以使一个任务所用的全部页面定位于某个物理地址空间,而另一个任务所用的页面定位于其他物理地址空间,这样,就把存储器虚拟化了,虚拟8086模式的名称即由此而来。(4)在虚拟8086模式中,程序是在最低特权级(3级)上运行的,因此,80386指令系统中的一些特权指令是不能使用的。五、80386的存储管理

80386利用片内的存储管理单元(MemoryManagementUnit,简称MMU

)来实现对存储器系统的两级管理:分段管理(逻辑地址→线性地址)和分页管理(线性地址→物理地址)

。 在两级存储管理中,段的大小可以选择(可以字节或页为单位),根据数据结构和代码模块的大小而定。 另外,对每个段还可以赋予访问权和保护信息,以有效防止在多任务环境下各个模块对存储器的越权访问。(一)实模式

80386的所有指令在实模式下都有效。其物理地址的形成与8086相同,可寻址的实地址空间只有1MB,所有的段最大容量为64KB。

中断向量表仍设置在00000H~003FFH共计1K字节的存储区内。 系统初始化区在FFFFFFF0H~FFFFFFFFH存储区内。

保护模式下采用段页式存储管理机制。 注意区分逻辑地址、线性地址和物理地址这3者之间的关系。(二)保护模式图8.1480386的地址转换示意图(P278)逻辑地址:编程时

16位段选择字+32位偏移地址线性地址

由存储器段式管理机构按下式来计算:

线性地址

=

32位段基地址

+32位偏移地址物理地址 不分页时,物理地址=线性地址;分页时,由存储器页式管理机构计算物理地址=F(线性地址)

分段管理

为了实现分段管理,80386把有关段的信息存放在一个称为段描述符(简称描述符)的8个字节长的数据结构中,并把系统中所有的描述符按类组成一张张描述符表,以便硬件查找和识别。 80386共设置了3种描述符表,即全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。

段描述符包括:

段基地址(BaseAddress),规定了线性地址空间中段的起始地址。也可以把基地址看成是段内偏移量为0的线性地址。

段的界限(Limit),表示在虚拟地址中,段内可使用的最大偏移量。

段的属性(Attributes),包括该段是否可读出、写入以及段的特权级等,也叫访问权字节。 有两种类型的段:非系统段、系统段

两种段描述符:非系统段描述符

系统段描述符非系统段描述符(P281图8.16)

非系统段指一般的代码段、数据段和堆栈段。(s=1)属性字节(访问权字节)(8位):B5基地址(32位):B7B4B3B2界限(20位):B6(低4位)B1B0

数据段堆栈段ED=0,数据段ED=1,堆栈段例请分析下面的描述符:

6420

80

00

B2

0A

000003FF解:属性字节:B2h=10110010数据段,可写,DPL=1,在内存,未访问过。段基址:800A0000h

界限:003FFh课堂练习3:

请分析下面的描述符:

6420

30

00

D7

00

000007FF解:属性字节:D7h=?(2进制)

?段,可否读/写?,DPL=?,是否在内存?,是否访问过?段基址:?

界限:?

系统段描述符(P283图8.17)

系统段描述符也称为特殊段描述符(S位为0)。 系统段包括任务状态段TSS和门,另外,局部描述符表LDT也作为一种系统段。属性字节(访问权字节)(8位):B5基地址(32位):B7B4B3B2界限(20位):B6(低4位)B1B0表8.180386系统段描述符类型(P283)例请分析下面的描述符:1、

642000

00

A2

10

000000FF解:属性字节:A2h=10100010LDT描述符,有效,DPL=1。

LDT基址:00100000h

界限:000FFh分段管理总结图8.19逻辑地址到线性地址的转换(P285)课堂练习4:访问代码段

分页管理

在80386中,存储器分段管理的基础上又增加了分页管理。在多任务系统中,有了分页管理功能,就只需把每个活动任务当前所需要的少量页面放在存储器中。 当CR0中的PG=1时,系统就启动分页机制; 当PG=0时,则禁止使用分页机制,把分段机制产生的线性地址直接当作物理地址使用。 80386分页管理的对象是固定大小为4KB的存储块,称之为页。段页式结构的寻址过程下×4×4CR3图8.22段页式结构的寻址过程(P287)页表结构、页目录描述符以及页描述符 80386采用了两级表结构:页目录表和页表。 当允许分页时,分页机制将实现两级地址转换:在较高一级,由页目录表中的一个页目录描述符映射页表;在低一级,由页描述符映射页帧。图8.21页目录描述符和页描述符的格式(P287)P—存在位,表示该页/页表是否在内存W—写允许位,表示该页/页表是可写U—用户位,表示该页/页表用户是否可用A—访问位,表示该页/页表是否访问过D—出错位AVL—

程序员可使用的位

当页目录项和页表项的U、W位不一致时,选取最小的值。例假设页目录项的UW位=11(用户可写),页表项的UW位=10(用户可用,但只可读,不可写)则,最终UW位=min(11,10)=10

(用户可用,但只可读,不可写)分页管理寻址过程举例假设线性地址=12345678H,CR3=10000000H,页目录描述符=20000005H,页描述符=30000007H

求:

1)页目录描述符的地址

2)页描述符的地址

3)操作数(32位)的地址

4)操作数用户是否可写?答:

1)页目录表起始地址:10000000H页目录描述符地址:10000120H~10000123H2)页表起始地址:20000000H页描述符地址:20000D14H~20000D17H3)页帧起始地址:30000000H操作数(32位)地址:30000678H~3000067BH操作数用户是否可写?页目录描述符:U=1,W=0,不可写页描述符:U=1,W=1,可写∴操作数用户不可写CR3×4×4×4课堂练习5

已知在80386系统中,CR3=00100000H,页目录项和页表项内容如下图中所示,假设分段转换得到的线性地址为19990118H,请回答下面问题。

线性地址:00011001100110010000000100011000B

操作数

80000005H

00300007HCR31、页目录表起始地址=

2、页目录项的地址范围=

3、页表起始地址=

4、页表项的地址范围=

5、页帧起始地址=

6、被访问操作数(32位)的地址范围=

7、根据页目录项和页表项的内容,该操作数用户是否能访问?

,是否可写?

课堂练习6

80386工作在保护方式下,GDTR=002000001FFFH,LDTR=3009H,CS=1007H,EIP=00000800H。1)GDT的起始地址为

GDT的结束地址为

。GDT的表长为

。2)LDT描述符的地址范围是

。3)若代码段描述符为:

6

4

2

0则代码段的属性为:特权级

,是否可读

,是否在内存

,是否访问过

。代码段的长度为

。00

00

FB

50

00000FFF4)若80386仅分段,不分页,则当前执行指令的物理地址是

;若既分段,又分页,则访问代码段时转换的线性地址为

;根据此线性地址进行分页转换,页目录描述符的偏移地址为

,页表描述符的偏移地址为

,被访问指令在页帧中的偏移地址为

温馨提示

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

最新文档

评论

0/150

提交评论