现代微型计算机与接口教程-第08章微机_第1页
现代微型计算机与接口教程-第08章微机_第2页
现代微型计算机与接口教程-第08章微机_第3页
现代微型计算机与接口教程-第08章微机_第4页
现代微型计算机与接口教程-第08章微机_第5页
免费预览已结束,剩余103页可下载查看

下载本文档

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

文档简介

第8章现代微型计算机80x86系列微处理器微型计算机体系结构管理技术多任务管理与I/O管理现代微型计算机中断系统8.1

80x86系列微处理器16位80X86微处理器8088微处理器In

公司在推出8086之后,推出了介于16位与8位之间的准16位微处理器8088。8088与8086之间的区别主要在于8088对外只有8根数据线引脚,

16位的操作数需要二个总线周期。8088的这一特点使它能够十分方便地与8位接口相连接。1980年,IBM公司使用8088成功地开发了16位微型计算机——IBM-PC。In

公司把大型计算机的技术融合到微处理器中,首先研制的80186在技术上并不十分成熟,没有获得广泛的应用。1982年In

推出了增强型16微处理器80286,集成度达13万管/片,时钟频率提高到5MHz~25MHz,它的16条数据线和24条地址线相互独立,不再分时使用,可以寻址16M的地址空间。80286CPU增加了运行多任务所需要的任务切换、管理和多种保护功能。2.

微处理器80286CPU基本工作方式:实地址方式:和8086一样,使用20根地址线寻址1M的内存空间,DOS应用程序占用全部系统资源。保护方式:80286CPU具有虚拟内存管理和多任务处理功能,通过硬件控制可以在多任务之间进行快速切换。80286CPU的

组成:总线接口部件BIU:地址单元AU、指令单元IU、总线单元BU。执行部件EU:IBM公司以80286为CPU生产了著名的IBM-PC/AT微型计算机,它的许多技术被沿用至今。图8-1In80286CPU结构物理地址加法器地址锁存器和驱动器协处理器接口预取器总线控制数据收发器6字节预取队列总线单元(BU)段

址段容量段限检查ALU控制器寄存器地址单元(AU)3条已被译码

指令的指令队列译指令单元(IU)执行单元(EU)偏移量加法器NMIERRORINTR

BUSYA

~A

23

0

BHE

M/IOPEACKPEREQREADY

HOLDS1,S0,COD/INTALOCK

HLDAD15~D0RESETCLKVssVccCAP1.80386微处理器1985年,In

公司推出了第四代微处理器,32位的微处理器80386。片内集成27.5万个晶体管,时钟频率为16MHz~33MHz。具有32位数据线和32位地址线,32位通用寄存器。80386

处理器CPU、

器管理部件MMU、总线接口部件BIU组成。80386有3种工作模式:实地址模式、虚地址保护模式和虚拟8086模式。8.1.2

32位80X86微处理器图8-2移位地址器乘/除寄存器集ALU译码和顺序控制ROM控制指令译码两个已译码的指令队列指令预译码预取限制检测16字节代码队列指令预取地址驱动流水线/总线容量控制多路发送控制器三输入地址描述符寄存器界限和特性PLA段单元保护检测单元请求优先权总线控制地址页高速缓冲器控制和特性PLA页单元有效地址总线323232状态标志ALU控制3232物理地址总线控制3232线性地址总线ALU总线控制 偏移量总线 总线HOLD,INTR,NMIERROR,BUSYRESET,HLDABE0#~BE3#A2~A31M/IO#,D/C#,W/R#LOCK,ADS#,NA#BSIC#,READY#D0~D31In80386CPU结构2.80486微处理器

In

公司推出了集成120万个晶体管的32位微处理器80486。80486中集成了:一个80386体系结构的主处理器;一个与80387兼容的数字协处理器;一个8KB的高速缓冲

器(Cache)。80486首次采用了时钟倍频技术(在80486DX中使用),使

部件可以以输入时钟的倍频运行。80486还支持外部的二级Cache,支持多处理器系统。Pentium微处理器1993年,In

公司推出了新一代的32位微处理器Pentium(奔腾,以P5代称),

集成了320万个晶体管,具有64条数据线和32条地址线。Pentium共有3个执行部件:两个整数执行部件U、V和一个浮点执行部件。每个整数部件由五级流水线组成:浮点流水线由8级组成:通过上述流水线,微处理器可以在一个时钟周期内同时执行两条整数指令,或者一条浮点指令,这种结构被称为“ 量结构”。8.1.3

Pentium系列微处理器Pentium处理器

16KB的一级Cache分为独立的8KB指令Cache和8KB数据Cache,使取指令和取数据可以同时进行。Pentium采用了分支

技术(也称为转移

技术),处理器效率得到提高。除了实地址模式、虚地址保护模式和虚拟8086模式以外,又增加了一个系统管理模式。1996年,In

公司推出了改进型32位微处理器PentiumMMX(多能奔腾),它增加了57条MMX(多

扩展指令集)指令,采用了SIMD(单指令流多数据流)技术,提高了对多

数据的处理能力。同一时期推出的第五代微处理器还有IBM,Apple和Motorola三家

的PowerPC(这是一款RISC微处理器)以及AMD公司的K5和Cyrix公司的M1。2.第六代微处理器1996年In

公司推出第六代微处理器PentiumPro(高能奔腾)。片内集成了550万个晶体管具有64位数据线和36位地址线,物理地址空间64GB(236),虚拟 空间64TB。1997年5月In

公司发布了PentiumII(奔腾2代),采用P6

结构,属于32位微处理器。PentiumII集成750万个晶体管;加强了MMX技术,能同时处理两条MMX指令;L1

Cache增加到32KB,并配备了512KB的L2

Cache,在CPU一半的频率下工作;PentiumII采用了双独立总线结构,前端总线FSB负责主器的 ,后端总线与L2

Cache连接;采用动态执行和寄存器重命名等RISC技术来执行x86指令。动态执行技术主要包括:多路分支:对程序的流向进行分析,以便程序的几个分支可以同时在处理器执行。数据流分析:对译码后的指令进行数据相关性和资源可用性分析,判断该指令能否与其他指令同时执行。推测执行:将多个程序流向的指令序列优化后送往处理器的执行部件执行,充分发挥各部件的效能。多个分支的运行结果作为“结果”保留,将最终确定为“预测正确”的分支结果作为最终结果加以保存。为了减少不同分支指令争用同一个寄存器的情况,PentiumII增设了40个可以“重新命名”的“

寄存器”,在指令流运行结束后写回“通用寄存器”,从而解决了多分支运行时争用寄存器的问题。1999年2月,In

公司推出Pentium

III微处理器。集成了950万到2800万个晶体管;它的前端总线频率(FSB)提高到133MHz;256KB的L2Cache集成到 内,和CPU以相同的频率工作;与运算部件的数据通路从64位扩展到256位;增加了新的70条SSE指令,使得多 信息的处理能力得到进一步提高;PentiumIII微处理器内置了一个引起争议的产品序列号(PSN),能惟一标识一个微处理器;为了适应不同需求,In

公司还推出了面向低档微机的Celeron(赛扬型)、面向服务器和工作站的Xeron(至强型)和面向可移动领域的移动型PentiumII、PentiumIII。类似的微处理器有AMD公司的Athon(K7)。图8-3L2

Cache总线接口单元BIUL1数据Cache

16KBL1指令Cache(16KB)指令预取单元IFU分支目标缓冲器BTBx86指令译译码 译码 译码器0

器1

器2寄存器别名表指令重排缓冲器微指令序列器保留站MMX

ALUMMX乘法器复杂整数单元复杂浮点单元简单浮点单元简单整数单元MMX

ALUMMX

移位器转移执行单元加载地址单元地址单元数据单元端口4端口3端口2端口1端口0器排序缓冲器主存前端总线

后端总线结果总线Pentium

III微处理器结构3.现代微处理器1999年,AMD公司首先提出了X86系列微处理器的64位扩展架构AMD64,并在随后应用到它的Opteron及Athlon64微处理器之中。此后In

公司也提出了IA-32e(In

Achicture-32

Extend,In 32位体系结构扩展),后来又改名为EM64T(InExtended

Memory

64

Technology,In 64位内存扩展技

术),出现在Prescott

的Pentium

4处理器上。原32位x86处理器的32位寄存器被扩展为64位,命名为RAX,RBX,……,增加了8个64bit的通用寄存器R8~R15,一个64bit的指令指针RIP。整数部件扩展为64位,可以进

行64位的整数运算。EM64T的运行模式分为“传统的IA-32模式”和“IA-32e扩展模式”两大类。在传统的IA-32模式下,64位架构的处理器仍然像以前那样,工作在“保护模式”,“实地址模式”,“虚拟8086模式”下。在IA-32e扩展模式下,它可以工作在“32位兼容模式”下,以“64位处理器”的“身份”兼容运行32位处理器的程序,或者工作在真正的“64位模式”下,运行64位程序。为了进一步提升处理器的性能,AMD公司、In

公司先后推出了在一个微处理器中集成两个64位处理器的新结构,两个处理器有各自的L1

Cache,共享L2。In

公司在2006年推出了称为“Core”的新内核。新一代

“Core”内核将流水线从Prescott

的31级降低为14级,通过优化整体结构提高性能。Core内核使用了一种“指令融合”的新技术,通过“指令器”将功能相关的两条连续指令“融合”为一条“内部指令”。例如将比较指令和条件转移指令融合为一条“比较并转移”指令,用一条指令的执行时间完成这两条指令的功能。Core内核因此在一个时钟周期内可以完成

4+1条指令,其中的+1即为被融合的指令。内核的许多单元在空闲时可以进入“深度睡眠”状态,以降低功耗。Core

还包含了新的指令集SSE4。目前使用

Core

内核的处理器产品称为“

Core

2

Duo(酷睿2)”。64位微处理器•,In

公司推出了64位微处理器Itanium(安腾),数据通道宽度128位。Itanium处理器采用了全新的设计,采用称为IA-64的体系结构,不再兼容之前的80X86系列微处理器,是真正的64位处理器。该处理器目前主要用于服务器。8.1.4

32位微处理器的寄存器AHALBHBLCHCLDHDLAXBXCXDXEAXEBXECXEDX16位80X86处理器原有的4个通用数据寄存器扩展为32位,命名为EAX、EBX、ECX和EDX。仍然可以使用原有的16位和8位寄存器,如AX、BX、CX、DX、AH、AL、BH、BL......。31

16

15

8

7

080X86微处理器由16位升级为32位后,它的寄存器也对应升级为32位。管理的需要,增加了一些用于控制为了新的工作方式和的寄存器。1.

数据寄存器2.

地址寄存器原有的4个主要用于内存寻址的通用寄存器同样扩展为32位,命名为ESI、EDI、EBP、ESP。在实地址模式下仍然可以使用原有的16位寄存器SI、DI、BP和SP。指令指针寄存器扩展为32位,更名为EIP,实地址下仍然可以使用它的低16位IP。31

16

15ESPE

PESIEDI16

1531EIP在原有的4个段寄存器基础上,增加了2个新的段寄存器FS和GS。段寄存器长度仍为16位,但是,它存放的不再是16位二进制表示的“段基址”,而是13位代表这个段的一个编号,称为“段选择子”。段的其他信息(起始地址、段的长度、段的属性...)组成64Bits的“段描述符”,存放在二张称为“段描述符表”的表格中。一张表格存放的是当前任务所使用的段的信息,称为

“局部段描述符表(Local

Descriptor

Table,

LDT)”。另一张表格存放了系统所使用的段的信息,称为“全局段描述符表(Global

Descriptor

Table,

GDT)”。13位二进制的“段选择子”就是这个段的“段描述符”在表中的顺序号。16位段寄存器的另一位称为“表指示器(TableIndicator,TI)”,用来在二张表中间进行选择。16位段寄存器的最低二位表示申请使用段的“

级(RPL)”,取值0~3。每个段寄存器还有一个配套的64bits“段描述符寄存器”。向段寄存器装入一个新的“段选择子”的同时,处理器会同时把它的描述符装入对应的“段描述符寄存器”。这些寄存器不能由指令来存取,对程序员是不可见的。150段寄存器CS13

12SSDS选择子

TIRPLESFSGS32位微处理器增加了4个系统地址寄存器:存放“全局段描述符表”首地址的GDTR;存放“中断描述符表”首地址的IDTR;存放“局部段描述符表”选择子的LDTR;存放“任务段”选择子的“任务寄存器”TR。线性地址界限线性地址界限LDTR047

16

15015GDTRIDTRTR3.

控制寄存器标志寄存器也扩展为32位,更名为EFLAGS。除了原有的状态、控制标志,增加了2位表示IO操作

级别的IOPL,表示进入虚拟8086方式的VM标志等。32位微处理器增加了5个32位的控制寄存器,命名为CR0~CR4。CR0寄存器的PE=1表示目前系统运行在“保护模式”,PG=1表示允许进行分页操作。CR3寄存器存放“页

表”的

址。此外,还有8个用于调试的寄存器DR0~DR7,2个用于测试的寄存器TR6~TR7。实地址方式32位微处理器刚加电或者复位时,就进入实地址方式。实地址方式使用16位80X86的寻址方式、

器管理和中断管理。实地址方式下使用20位地址寻址1MB空间,中断向量表安置在00000H开始的1KB内。可以使用32位寄存器(需要在指令前加上寄存器扩展前缀),使用

级0,可以执行大多数指令。实地址方式用于在开机后为进入保护模式做准备,也可以把32位处理器用作一片高速16位处理器使用。8.1.5

32位微处理器的工作方式2.

保护方式保护方式是32位微处理器的基本工作方式。保护方式下微处理器支持多任务运行环境,对任务进行

和保护,进行虚拟

管理。保护方式能够充分发挥32位处理器的优良性能。虚拟8086方式虚拟8086方式是保护模式下某个任务的工作方式,允许在保护模式下运行多个8086程序。虚拟8086方式使用8086的寻址方式,每个任务使用1MB的内存空间。虚拟8086方式的任务以最低

级运行,所以不能使用

指令。4.

系统管理方式系统管理模式(System

Management

Mode,SMM)主要用于电源管理SMM可以使处理器和

设备部件进入“休眠”状态,有键盘按下或鼠标移动时“唤醒”系统,使之继续工作。利用SMM可以实现

关机。8.2

微型计算机体系结构80X86微型计算机结构IBM-PC,PC/XT微型计算机结构IBM公司以8088为CPU构建了的第一代的PC机——IBM-PC,该计算机以盒式

机作为外

设备,使用不够方便。随后,IBM公司推出了它的增强型—IBM-PC/XT,它采用10~20MB的硬盘驱动器作为辅助设备,在一段时间内获得了广泛的认同。PC/XT机采用以CPU为中心的简单结构,通过若干缓冲

和锁存电路把8088CPU的信号连接到它的“系统板”上,构成了62线的“XT总线”。XT总线包括8位数据线,20根地址线,使用与CPU相同的4.77MHz的时钟信号。由于8088CPU传输一次数据需要4个以上的时钟周期,所以XT总线的数据传输率约为1.2MB/S。它的“系统板”上除了8088CPU及其

电路,还集成了ROM、RAM、定时/计数器、中断控制器、DMA控制器、键盘、扬声器接口以及8个62引脚的“XT总线”扩展插槽。它的显示器接口,

接口,串行通口都是以“接口卡”的形式通过62脚插槽与系统相连接的。主板上最多提供256K的DRAM

器,

器需要做成“接口卡”与系统相连。图8-5微处理器8088(4.77MHz)数值协处理器8087(可选择)(地址锁存、数据缓冲等)ROM(BIOS)DRAM控制器DRAM(64~256KB)8253定时/计数器8259中断控制器键盘/开关接口(8255)8237DMA控制器DMA页面寄存器62线扩展插座IBM-PC/XT微型计算机结构2.

PC/AT微型计算机结构为了适应新的CPU的推出,IBM公司推出了新一代的微型计算机——IBM

PC/AT;PC/AT对8位的“XT总线”进行了扩充,构成16位的“AT总线”;随后,In

和其他公司联合,推出了与AT总线兼容的,公开的总线标准——ISA(Industry

StandardArchitecture,工业标准体系结构)。ISA总线使用24位地址、16位数据、15级硬件中断和7个DMA通道,使用6~8MHz时钟信号,最高数据传输率为8MB/S。ISA总线与XT总线兼容,ISA插槽做成二段:第一段提供XT信号,可以继续使用XT总线的接口卡;第二段提供ISA所增加的信号,同时

二个插槽就得到完整的ISA信号。随着CPU主频的不断提高,要求内

器的速度也要相应提高。在这样的情况下,出现了“分级”总线的微型计算机结构:把CPU与内

器直接相连,称为“CPU局部总线”;经过

(组)产生“系统总线”,与相对低速的其他I/O设备相连接。L2

Cache

和DRAM

及其控制器通过“CPU局部总线”与80486直接相连。在AT机型中还使用了独立的实时时钟/日历

,关机时用后备电池供电,可以连续计时。图8-6CPU(80486)PC/AT/ISA逻辑

组内含:总线缓冲器扩展总线控制15级中断7个DMA通道定时/计数器DRAM与L2Cache控制器L2CacheDRAM键盘/鼠标控制器实时时钟/日历CMOS

RAMROM

BIOS(64~128KB)ISA总线8个8位XT插槽6个16位ISA扩展插槽CPU局部总线IBM-PC/AT微型计算机结构自从1987年In

公司生产出8086CPU之后,每隔3-4年,微处理器就要“升级换代”一次。微处理器的快速更新带来了系统结构的“不稳定性”,给系统其他电路的研制、生产带来了巨大的压力。为了获得一个稳定、高性能的系统结构,In

于1991年底提出,1993年联合其他公司推出了PCI总线规范。它独立于CPU,完全兼容当时已有的ISA/EISA/微通道总线,具有高达133MB/S的数据传输速率,能够满足高性能图形接口和其他高速外设的需要。随着同年高性能微处理器Pentium的推出,Pentium+

PCI成为新一代微型机计算机的的代名词。8.2.2

Pentium系列微型计算机结构1.“南北桥”结构“南北桥”结构支持多级总线的系统组成。系统由处理器总线(Host

Bus),局部总线(PCI)和系统总线(ISA)三级组成(图8-7)。处理器总线连接高速缓存(Cache)和主

器;PCI总线连接显示适配器、网络适配器、硬盘驱动器等高速设备;ISA总线连接传统的并行口、串行口、软盘驱动器、键盘、鼠标等相对低速的外部设备。各“级”之间信号的速度缓冲、电平转换、控制协议转换由称为“桥”的电路实现。根据“桥”二端电路的不同,有“CPU/PCI桥”(Host

Bridge),“PCI/ISA桥”,“PCI/PCI桥”等。“CPU

/

PCI桥”处于上部,按照地图的

,被称为“北桥”。该

除了“CPU

/

PCI桥”电路之外,同时集成了AGP总线接口、主

器控制器、PCI仲裁器。“PCI

/

ISA桥”位于图的下方,被称为“南桥”,它同时还集成了IDE辅助

器接口,二个8259中断控制器,二个DMA控制器,8253/8254定时/计数器和实时时钟,还增添了通用串行总线(USB)接口,“I/O

APIC”等。传统的较低速的接口集成在称为“Super

I/O”的电路中许多公司研制和生产了组成“南-北桥”的

组,它们各自具有不同的性能和技术特征。In

公司生产的典型的“南-北桥”的组有440BX和440TX等。从Pentium

II开始的CPU还提供

的引脚,通过南桥的“I/O

APIC”接口连接多于一个的CPU,构成多CPU的系统。图8-7PentiumII系列处理器PentiumII系列处理器主处理器总线(60~66MHz)CPU/PCI桥主存L2

Cache图形设备AGP总线66/100MHzPCI总线(33MHz)PCI插槽PCI/ISA桥硬盘/CD-ROM驱动器USB接口ISA插槽系统BIOSISA总线I/OAPICAPIC总线SuperI/O串行口并行口软盘接口键盘接口鼠标接口“南北桥”结构的PentiumII微型计算机2.“两个中心”结构“南-北桥”结构存在一个明显的“数据传输瓶颈”:南桥 连接的高速外设都要通过PCI总线与处理器相连接。这增加了PCI总线 的拥挤程度。In

公司为此又推出了称为“中心结构”的新的结构体系。“ 控制中心”(MemoryControlHub,MCH)芯片的主要任务是建立处理器与系统其他设备的高速连接。它与处理器连接,通过 器总线连接主 器,通过“中心高速接口”与称为“I/O控制中心(I/OControl

Hub

,

ICH)”

的 连接,它还集成了高速AGP总线接口,电源管理部件和

管理部件。有的MCH

还同时集成了AGP图形接口,可以直接连接显示设备 称为“图形 控制中心(GMCH)”(ICH)负责建立I/O设备与系“I/O控制中心”统的连接。在它的集成了:2个IDE辅助器接口(Primary

IDE,SecondaryIDE);2个或4个USB接口;内置了PCI总线仲裁器和PCI总线接口;内置了AC'97控制器,提供音频编码和调制解调器编码接口;通过LPCI/F和Super

I/O

相连。该内置相关接口,连接软盘驱动器、键盘、鼠标等相对低速的外部设备,同时提供传统的并行、串行接口;称为“固件中心”(FWH)的显示的BIOS,它也连接到ICH主要用来 系统和上。In

公司生产的典型的“中心结构”的

组有810,815,820,850,860和845等系列。PC'99规范中取消了ISA总线,需要使用时可通过“PCI/ISA桥”

引出。“中心结构”进一步完善了多级总线结构,是目前普遍使用的微计算机系统结构.图8-8处理器处理器处理器总线(400MHz)控制中心(MCH)主存AGP图形接口AGP总线PCI总线(33MHz)PCI插槽I/O控制中心(ICH)硬盘/CD-ROM驱动器USB接口固件中心SuperI/OAC’97编码LAN串行口并行口软盘接口键盘接口鼠标接口中心高速接口“两个中心”结构的Pentium微型计算机系统器,接口,组的作用:连接构成系统的各个部件(处理器,主外设)提供各种基本信号,连接局部/系统总线,集成了时钟、定时/计数器、中断控制器、DMA控制器以及并行接口、串行接口等电路。系统

组在系统的构成上起着重要的作用,它使系统结构简洁而同时又保持了强大的功能。广泛使用的In

组有865,915,925,965等系列8.2.3

In

系列

组1.

In由心845

组控制中心 (如:82845P)和第四代IO控制中(ICH4,如:82801DB)组成。支持mPGA478封装的P4或CelronD处理器,处理器总线频率最高533MHz;支持SDR/DDR

SDRAM等不同种类的 器;提供1X/2X/4X

AGP图形总线;支持USB2.0。2.In

865

组由865系列的MCH

(如82865PE)与第五代IO控制芯片(ICH5/ICH5R,如82801EB)组成。支持mPGA478封装的P4

或Celeron

D处理器,支持超线程(HyperThreading,HT)技术,支持800MHz/533MHz/400MHz的处理器总线;支持双通道DDR400

器,带宽达到到6.4GB/s(64/8*400MHz*2),与处理器总线带宽相均衡;提供8X/4X

AGP图形总线;提供串行ATA硬盘驱动器接口和Gb级的以太网接口。Pentium

4RAID

技术用In

865组构建PC系统3.

In

965组In

965组配用第八代IO

控制(

ICH8,如82801HB)。以In

G965

Express

组(MCH

为In

82Q965)为例:支持多内核CPU(如Pentium

D,Core2

Duo),支持超线程技术,处理器总线频率为1066MHz或800MHz,使用LGA775封装;提供PCI

Express

x16高速图形总线,带宽达到8GB/s,是AGP

8X接口带宽的3.5倍;提供6组PCI

ExpressX1总线接口,供系统扩展;支持双通道DDR2-667

器,最多8GB;提供6组独立的串行ATA辅助

器接口和增强型SATA。用In

G965组构建系统InCore2

DuoProcessorG965MCHG965ICH8DDR2DDR2In

高解析度Audio8.5

GB/sBIOS/FirmwareIn

矩阵技术In

图形X300012.8GB/s2GB/s

DMI每路3Gb/sPCIExpressx16图形接口6端口SATAIn GbELAN接口10端口高速USB2.06路PCI-Express

x18GB/s60MB/s每路500MB/s12.8GB/s8.3

管理技术对于半导体器器件而言,低价格、大容量、高速度是一组永恒的

;用单一工艺制造的半导体

器难以同时满足上述面的要求。解决这个问题的有效方法就是发挥不同

器件各自的长处,采用多层次的

系统。8.3.1

高速缓存技术1.多级体系多级

体系就是把几种不同容量、速度的器合理地组织在一起,使它们能较好地同时满足大容量、高速度、低价格的要求。以增加技术复杂程度为代价。系统层次结构如下图,该系统由高速缓存(Chache)、主存、辅存三类 器组成。三类 器构成了二个层次的 系统。CPU高速缓存主存辅存(1)“高速缓存—主存”层次高速缓存(Chache)

器:器构成由小容量的高速静态速度很快,可以与处理器相匹配容量小(约32KB),不会显著提高系统成本一般将Cache集成在CPU的Cache

处理器当前使用的指令和数据和处理器之间以“字”为单位进行读写主

器:由大容量的动态 器组成单位成本低于Cache速度相对较慢Cache与主存之间以“页”为单位进行读写这一层次主要解决

系统的“速度”问题。(2)“主存—辅存”层次辅助

器:由大容量的磁表面具有很低的“位器或光 器构成价格”辅助 器上 着大量的程序和数据,处理器仅把目前使用的程序和数据装入主存辅存和主存之间以“块”为单位进行读写交换题这一层次主要解决

系统的“容量”和“成本”问以上二个层次的组合,本质上来说,是充分利用Cache的高速度,辅助

器的大容量和低成本,使系统较好地解决“容量—速度—价格”之间的矛盾。2.

方式设置高速缓冲器之后,处理器需要的指令和数据首先在Cache中寻找:如果找到,则从Cache中快速 ,这种情况称为“命中”如果未能在Cache中找到,则称为“失靶”,这时需要:从主存中

指令或数据所在“页”存入Cache同时将该指令或数据送入处理器为了确定所要的指令/数据是否在Cache中,Cache中不但要

指令/数据的信息,同时还要

该指令/数据在主存的地址信息。这项信息 在“相联 映像表”中。表”的容量,同时可以简化查找和匹配过程。缩短“主存地址信息”的长度,可以减少“相联

映像为此,对主存“页”进入Cache的位置作了种种限制,主存的“页”需要由某个“映像函数”确定它在Cache中的位置。(1)直接映像法假设:Cache:容量16KB,混合 指令和数据信息16个“字”(每个字为32bit=4Byte)为一“页”,共256“页”每个字节用8位“页地址”加上6位“页内位置”表示主存:使用32位主存地址,寻址4GB的主存空间每个字节用18位“组号”,8位“页地址”,6位“页内地址”表示直接映像法:主存中的一页只能进入与它页号相同的Cache页中。图8-11Cache为“空”时,处理器

物理地址12345678H的主存单元,该地址可以划分为:组号=048D1H,页地址=59H,页内地址=38H该内存页被读出,存入Cache中59H页。“相联映像表”中该页的“标记(Tag)”被置为“048D1H”。随后,处理器

地址为12345644H的主存单元,它的地址划分为:组号=048D1H,页地址=59H,页内地址=04H查找“相联表”中页面为59H的标记项,“命中”。

Cache第59H页面中页内地址为04H的“字”被读出,送往处理器。处理器

地址12341678H的主存单元,地址划分为:组号=048D0H,页地址=59H,页内地址=38H。再次查找表中页面59H的标记项,发出“失靶”信息。主存中

为048D0

H

的1页被读出,存入Cache第59H页面中,对应的“标记”修改为“048D0

H”。一个新的主存页面进入Cache,原来的页面被覆盖。直接映像法特点:直接映像法采用简单的

关系,查找方便。每个主存页面只与Cache中惟一的一个页相

,增加了页面

的可能性,会增加不合理的页面更换,Cache的页面不能充分利用。(2)全相联映像法全相联映像法:主存一页可以进入Cache任何一页。例:32位主存地址,16KB

Cache,划分同上。由于没有页号的限制,主存地址仅划分为二部分:26位页地址,6位页内地址。处理器发出主存物理地址之后,Cache管理逻辑需要把主存的“页号”与所有的“标记”逐一进行比较,以确定是否“命中”。全相联映像法特点:“页面 ”的可能降到最小;查表,比较次数多,电路复杂;只适用于小容量的Cache图8-12(3)组相联映像法组相联映像法:Cache划分成大小相等的“组”,每个组由若干“页”组成允许主存的一个页与同一组内的多个页面进行例:32位主存地址,16KBCache,Cache每“组”由二个页面组成,共128个组。Cache内字节地址由7位“组号”,1位“页号”,6位“页内地址”组成。主存地址由19位“区号”,7位“页号”和6位“页内地址”组成。每个“区”包含128个“页”,等于Cache

“组”的数量。主存每个区的0#页面可以和Cache内0组二个页面中的任一个相

,1#页面可以和Cache内1组二个页面中的任一个相......主存时,需要将主存“区地址”部分与一个组内二个页面的“标记”同时进行比较,以确定是否“命中”。组相联映像法特点:减少了页面

的可能性比较次数等于Cache内每组的页面数目前的微处理器多采用这种方法图8-133.替换算法一个新的主存页面写入Cache,Cache中原有的页面就被覆盖或者说被替换。使用“全相联映像法”和“组相联映像法”时,主存页的进入位置有一个以上的选择,管理逻辑需要决定覆盖或者替换哪一个Cache页。确定被替换页面的算法主要取决于实现的难易和的高低。常用的方法有以下二种。先进先出法(FIFO)选择最早进入的页为被替换的页这种方法实现简单,但不够合理,最早进入的页仍然可能是现在频繁使用的页。“近期最少使用”算

RU)这种算法比较合理,实现起来稍微复杂一些。Cache和主存一致性问题使用高速缓存后,一项数据可能同时

在二个位置上处理器把数据写入Cache,尚未写入主存时,就产生了Cache—主存内容的不一致性解决这个问题可以采用二种方法。写回法(Write

Back)处理器执行写操作时,信息只写入Cache,该页被替换时,才将它写回主存。写直达法(Write

Through)信息在写入Cache的同时也写回主存。比较:使用写回法时,一个主存页面调入Cache后最多回写一次(内容未修改则不需要写回),节省了回写时间,但是一致性保持不如写直达法。5.突发总线周期(Brust

Bus

Cycle)主存和Cache之间以“页”为单位进行信息交换,每次传送都是对连续的若干字节进行新型主存器件都支持突发总线传输方式突发总线传输:向主

器发送起始地址之后,连续传送多个字的数据。例:Pentium的Cache每页64字节,与主存之间可以同时传输64Bits也就是8字节信息。主存页调入Cache时,向主存发出该页的起始地址,同时发出“突发总线请求”信号。主存收到上述信号,适当延时,在连续的多个周期内每次发送8字节(64Bits)信息,最终把一页内容写入Cache。现代微型计算机对内存数量要求的增加:采用多任务的操作系统,提高CPU利用率和性能多

技术的广泛使用,系统程序和应用程序使用的内存数量越来越大。由于成本的原因,主存容量配置难以满足上述要求。内存管理的“碎片”问题:任务运行时申请使用内存;任务撤销时内存。运行一段时间之后,主存空间将出现许多“碎片”。清理这些“碎片”需要移动正在使用的“内存片”,这会带来许多复杂的问题。8.3.2

虚拟

技术虚拟技术:将主器和辅助 器的一部分 编址,看作一个完整的“虚拟 空间”。从80386开始的微处理器都内置了“管理部件(MMU)”,完成“虚存”和“实存”之间的调度。使用虚拟

技术的好处:扩大了程序可用的 空间;有效地解决了任务之间,用户任务与操作系统之间空间的 和保护;虚拟有效解决“碎片”问题。管理使用的地址空间:逻辑地址:程序中使用的 空间线性地址:逻辑空间向物理空间转换中,线性排列的空间物理地址:实际的内

器空间1.

管理段 管理完成逻辑地址向线性地址的转换。程序员使用的地址空间里,每个单元可以表示为“段名:段内偏移地址”。这样的地址称为“逻辑地址”。8086CPU不支持虚拟管理,段寄存器直接记录了该段的起始地址信息。将段起始地址与偏移地址相加,就得到了该单元的物理地址。32位微处理器中,“段”的信息被在“段描述符”中,包含

32Bit段起始地址,20Bit段界限值(段长度),4Bit段类型,2Bit段描述符优先级,以及其他信息共64Bit。操作系统所使用段的“段描述符”顺序存放,组成“全局段描述符表(Global

Descriptor

Table,GDT)”。GDT表的首地址在的“全局段描述符表寄存器(GDTR)”中。每个用户所使用段的“段描述符”组成“局部段描述符表(LocalDescriptor

Table,

LDT)”。LDT本身构成一个段,这个段的“段选择子”放在寄存器(LDTR)中。使用“段选择子”和二张“段描述符表”可以把“逻辑地址”转换成“线性地址”(图8-15)。GDT和LDT二张表格在主器中。在保护状态下,每条指令的执行都伴随着逻辑地址向线性地址的转换过程。为了提高指令执行速度,在32位处理器内部除了在段寄存器中存有“段选择子”之外,还增设了与段寄存器对应的“段描述符寄存器”。在装载段选择子的同时,主存中对应的64Bit段描述符信息同时进入该寄存器。从理论上来说,16位段选择子可以选择二张表

213×2=214个不同的段。每个段最大可达232字节。因此,通过段

管理最多可管理232×214=246=64TB的虚拟地址空间。图8-142.

管理线性地址空间是一个虚拟的地址空间,物理地址空间是实际的

空间,它们都划分成若干大小相等的“页”。页管理部件负责完成线性地址向物理地址的转换。线性地址空间一般远大于实际的物理地址空间,页管理部件需要决定“虚存”的哪些页调入“实存”,其余的则保存在辅助器中。以80386为例,页面固定为4KB,每个线性地址页面的信息在一个32Bits的“页表项”中,包括32位物理地址的高20位(低12位与线性地址的低12位相同),目前是否在

“实存”中,以及该页的使用情况等相关信息。每1024个页面组成一个“页组”,它们对应的页表项构成一张“页表”,4KB大小的“页表”本身构成了一个特殊的“页”。系统用一张“页组表”所有页组的信息。“页组表”由1024个“页组项”组成,32Bits的“页组 项”具有与“页表项”类似的格式,只不过它记录的是1024个特殊的“页”—“页组表”的相关信息。于是,32位线性地址可以划分为:10位页组

项索引——记录该线性地址单元所在的页组;10位页表项索引——记录该线性地址单元在该页组的哪一个页中;12位页内偏移地址——记录该线性地址单元在该页内的相对位置。图8-15线性地址向物理地址的转换通过查二次表实现(图8-16):用高10位查“页组

项表”,得到该页组的“页组表”的首地址;用次10位在刚得到的“页组表”中查到该页的起始物理地址;页的起始物理地址加上低12位的“页内偏移地址”,得到完整的32位物理地址。“页组

项表”的首地址存放在处理器的“CR3”寄

存器中。由于页表和页组

项表每一项占用4个字节,所以二个10位的索引值都要乘以4与表的

址相加,找到该

项。系统中应有一张页组项表,最多1024张页表,这些表存放在主器中。实际使用时,把目前经常使用的表项转储在处理器称为“转换检测缓冲器(TLB)”的小型的高速缓存中,以提高查表速度。在PentiumII开始的第六代微处理器中,可以使用“页 指针表(PDPT)”。如果仍然以4KB为一页,32位线性地址被划分为4部分:2位PDPT项号,用来查PDPT表,得到页

表的首地址;9位页

项号,用来查页

表;9位页面号,用来查页表,获得24位的“页 址”;12位页内偏移地址,与24位“页

址”组合,得到36位物理地址。可以看出,它的基本方法与上面所述是一样的。3.

80X86微机的虚拟

管理32位X86微处理器用CR0寄存器的PE位控制它的工作方式。PE=0,处理器工作在实地址方式下,处理器仍然使用

16位80X86处理器的地址生成方式,用20位地址1M字节的地址空间。PE=1,处理器工作在保护方式下,自动启用段

管理机制。如果CR0寄存器的PG位为1,同时启动页存储管理机制,实现段/页二级虚拟

管理。如果PG=0,则

使用页

管理机制,由段

管理产生的“线性地址”就是

器要求的“物理地址”。8.4

多任务管理与I/O管理虚拟 管理提供了运行多任务所必需的存储空间 和保护机制。现代32位微处理器的 还集成了其他面向多任务运行所需要的管理逻辑。8.4.1

多任务管理1.保护机制保护模式下,处理器实施对任务和资源的保护机制。有4个(0-3)不同的“级”,用二位二进制表示。0级最高,可以系统的一切资源,供操作系统内核使用。有些特殊的指令只能在0级执行,称为“指令”。1级次之,大多数的操作系统任务运行在这一层。3级最低,供一般用户程序使用,它不能使用具有0~2级的资源。级出现在以下三个地方:级DPL,表级RPL。段描述符每个段描述符内包括2bit的描述符示这个段(资源)的级别。选择子每个段选择子最低2位是它的请求当前执行程序每个当前执行程序有一个当前 级CPL,存放在段寄存器CS和SS的最低2位。CPL表示该任务所拥有的 级。一个段时,要求CPL和RPL同时具有高于或等于DPL的

级,否则将出现保护异常。为了使得一般用户程序能够得到具有较高

级的操作系统的服务,处理器特别提供了一种称为“调用门”的机制。“调用门”设在较低的的

级上,通过它可以得到较高

级的操作系统的服务。类似的还有任务门、中断门和自陷门。2.任务结构一个任务由两部分组成:一个任务的执行空间;一个任务状态段TSS(Task

StatusSegment)任务执行空间由该任务的代码段、堆栈段和若干个数据段组成。任务状态段TSS是

器内一个特殊的“段”,它储存了该任务的运行状态(包括各寄存器内容),使用的

空间,允许使用的I/O端口等信息,如图8-17所示。当前任务的TSS段的选择子装载在处理器的任务寄存器TR中。图8-163.任务的转换和连接作为一个“段”,任务状态段也有它的段描述符,存放在“全局描述符表(GDT)”中。该描述符的“类型”字段包含一个“忙”标志位B,B=1表示该任务正在执

行。处理器内16位的任务寄存器TR存放了当前正在执行任务的TSS的选择子。TR还包括一个不可见的64位描述符寄存器,那里存放了TSS段描述符,它是GDT中对应描述符的拷贝,它使寻找该段的操作更加快速和简便。指令LTR和STR用于装载和保存任务寄存器TR的16位可见部分,其中LTR是一条

指令,只能由0级的程序执行。用JMP或CALL指令启动一个新的任务:指令目标地址“段选择子:偏移地址”中,“段选择子”指向GDT中新任务的TSS段处理器执行这条JMP或CALL指令时,会进行一系列的正确性检查检查无误后,将当前任务的所有通用寄存器、所有段寄存器中的选择子、EFLAGS、EIP存入该任务自身的

TSS将新任务的选择子、描述符装入TR寄存器(可见的和不可见的)将对应TSS段中所保存的通用寄存器、段寄存器(段选择子)、EFLAGS、EIP副本装入处理器对应的寄存器中在CS:EIP的控制下,一个新的任务开始执行。除了上述JMP和CALL指令,IRET指令、INT-n指令、中断和异常也会导致任务的转换。32位处理器的任务转移比起16位处理器的程序转移要复杂得多,它对任务的保护功能也强得多。由于这一系列的过程由处理器硬件完成,所以仍然能够实现快速的任务转换。用CALL指令调用一个新任务时,处理器还将当前任务的TSS的选择子

到新任务TSS中的“先前连接域”中,并将EFLAGS寄存器的NT(Nesting

Task,嵌套任务)位置1。新任务执行返回指令时,从TSS中找到保存的原TSS选择子并返回。用JMP、CALL指令调用同一个任务中其他程序段指令目标地址中,“段选择子”是目标段的选择子进行权限检查之后,该“段选择子”及其描述符被存入CS寄存器,“偏移地址”进入EIP,于是,目标程序被执行。对于CALL指令,原来程序的返回信息“CS:EIP”被压入堆栈,在返回时恢复到CS和EIP中,以便顺序执行后续的指令。在同一个任务中CALL和JMP指令的执行和16位微处理器中十分相似。8.4.2

I/O管理在多任务的运行环境中,如果多个任务都要对同一个I/O端口进行

,势必造成

,为此,必须对I/O操作进行必要的管理。有二项措施来避免

的发生:处理器标志寄存器EFLAGS中IOPL(2bits)规定了执行I/O操作所需要的

级;任务状态段TSS中有一个最多64Kbits组成的“I/O允许位图(IOM)”,它的每一位对应一个对应位置的I/O端口,为0表示该端口允许这个用户进行I/O操作。对于运行在虚拟8086方式的任务,用IOM来控制对I/O端口进行,对位图对应位为1的端口进行

将产生保护异常。在保护方式下,处理器首先检查当前任务的CPL,如果CPL的级高于或等于EFLAGS中由IOPL规定的级,I/O操作不会受限制,否则将进一步检查IOM,对IOM为1的端口进行操作将产生保护异常。常用的一种办法是:在IOM中

对端口的

,当前任务一旦执行I/O指令,立即产生保护异常,进入由操作系统设置的“异常处理程序”,在操作系统的控制下进行间接的“I/O操作”。8.5

现代微型计算机中断系统保护方式下的中断管理中断描述符表(IDT)保护方式下用“中断描述符表(IDT)”来

各中断处理程序的

地址。每一个中断类型对应一个64Bits的“中断门”描述符,包括16位的“段选择子”,32位的偏移地址,它的类型代码以及

级等信息。如果是由某种“异常”引起的中断,例如处理器的除法溢出,处理器外部的页面故障(

器需要的页面不在物理

器中),则对应一个“陷阱门”。它和“中断门”描述符形式上的区别仅仅是类型代码不同。一个中断类型还可以对应于一个“任务门”。64Bits的任务门包含了一个任务状态段的选择子(16位),但不含有偏移地址的信息。三种“门”的格式如图8-18。图中,P是存在位,=1表示该段已经在物理内存中,DPL是“描述符

级”。与DOS方式下的中断向量表(IVT)不同,IDT可以放在内存的任何位置,它的首地址(线性地址)存放在

IDTR寄存器中。图8-172.中断响应过程一次中断发生后:将EFLAGS、CS、EIP先后压入堆栈清除EFLAGS中的IF和TF标志将中断门中的段选择子装入CS依照CS内容,从GDT或LDT表中找到中断服务程序的段描述符,装入CS寄存器对应的描述符寄存器,中断门中的偏移地址装入EIP寄存器进入由CS:EIP所的中断服务程序。如果中断类型对应一个陷阱门,除了不清除IF标志位外,其他过程与上述相同。由于不清除IF,在中断处理过程能够被新的外部中断打断,这意味着它的中断优先级较低。出于保护的需要,不同级的任务不能使用同一个堆栈。如果中断服务程序与被中断程序有不同的级,还需要在将EFLAGS、CS、EIP压入堆栈后进行堆栈的切换,新的堆栈指针(SS:ESP)存放在当前任务的TSS段中。为了保证正确的返回,需要把原来的堆栈指针也压入堆栈保护。如果中断类型对应一个任务门段选择符被装入TR寄存器依照段选择符的内容,从GDT中取出TSS描述符装入TR对应的描述符寄存器将当前任务的所有通用寄存器、所有段寄存器中的选择子、EFLAGS、EIP存入该任务的TSS将对应TSS段中所保存的通用寄存器、段寄存器(段选择子)、EFLAGS、EIP副本装入处理器对应的寄存器中在CS:EIP的控制下,一个新的任务开始执行类似于用JMP和CALL指令连接一个新任务在新的“两个中心”微计算机结构中,处理器以外的中断管理功能是由“I/O控制中心”

完成的。图8-10列出了它的中断接口信号。8.5.2 I/O控制中心(ICH)的中断管理功能1.串行中断在以前的

温馨提示

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

评论

0/150

提交评论