版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章现代微机的存储系统14.1.1半导体存储器技术1.只读存储器ROM(ReadOnlyMemory)ROM在正常工作的时候只能读出其中存放的数据,而不能改变其内容。因此ROM经常被用来存放哪些固定不变,无需修改的数据与程序。ROM的最大特点是掉电以后,数据不会丢失,通电后可以继续使用。4.1现代微机存储器系统概述2ROM
将已定型的程序和数据固化在其中,之后就不再更改。PROM
称为可编程ROM。允许用户向其中写入一次数据或程序,之后其中的数据就不可再更改。EPROM
称为可擦除的PROM。其中的数据可以通过紫外线照射而被擦除,之后可以再次写入新的数据。EEPROM
称为电可擦除可编程ROM(又写为E2PROM)。其擦除和改写无需紫外线,只需特定的电信号即可。这种存储器的存取速度较慢。FlashMemory
称为闪烁存储器(闪存)。也是电可擦除和更改型的ROM存储器,采用块擦除阵列结构,具有存储容量大、读取速度快、信息非易失、功耗低、可在线读写,抗干扰能力强、掉电信息不丢失等特点,目前被广泛应用。32.随机存取存储器RAM(RandomAccessMemory)在正常工作时就能随时对其数据进行读写操作的存储器,其对数据的修改是在正常工作状态,而无需特别的写入环境。RAM的读写速度一般都比ROM快,而且存取任一单元所需的时间相同。RAM在掉电的时候会将其存储的数据丢失。4SRAM
称为静态RAM(staticRAM)。只要电源不掉电,内部存放的数据就不会丢失。SRAM的最大特点就是速度快。DRAM
称为动态RAM(dynamicRAM)。它用MOS管的栅极对其衬底间的分部电容来保存信息。需要定期刷新。DRAM的最大特点就是集成度高。NVRAM
称为非易失RAM(NonVolatileRAM)。它是SRAM和EEPROM的共同体,正常工作时是SRAM存储数据,一旦掉电,就会自动的将数据转存到EEPROM中,重新上电后,数据又会自动的从EEPROM恢复到SRAM中。5常用的DRAM类型SDRAM(SynchronousDRAM,同步动态随机存储器)。将RAM与CPU以相同的时钟频率进行控制,彻底取消等待时间。DDRSDRAM(DoubleDataRateSDRAM,双倍速率SDRAM)。DDRSDRAM能够在时钟的上升期和下降期各传输一次数据,因此一个时钟周期内可传输两次数据。DDR2SDRAM。DDR2拥有两倍于DDR的预读取能力(4bit数据读预取)。即DDR2每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。673芯片平台架构中,主存储器接口在北桥芯片中2芯片平台结构里,主存储器接口集成在处理器中。2代酷睿处理器中集成的存储控制器:支持2个独立的具有64位宽通道的无缓冲DDR3存储器每个通道可有1个到2个无缓冲双列直插存储模块或小型双列直插存储模块具有长度为8的数据猝发传输DDR3内存每通道都是64位的,数据传速率达到1066MT/s和1333MT/s2代酷睿处理器集成的主存储器接口:支持1Gb,2Gb和4Gb的DDR3DRAM技术
现代微机存储器系统概述74.1.2内存的主要性能指标(1)存储容量内存所能容纳的二进制的总位数,一个有K位地址线,L位数据线的存储芯片所拥有的容量为2K×L位。(2)存取速度指从内存单元将数据读到存储数据寄存器或从存储数据寄存器将数据写到内存单元所需的时间,前者为读取时间,后者为写入时间。(3)可靠性内存可靠性用平均无故障时间(MTBF)来衡量。也可以看作是两次故障之间的时间间隔。MTBF越长,可靠性越高。(4)性能/价格比性能主要是指上面三项,对不同的用途,侧重点会有所不同。84.1.3现代微机的存储结构CPU内的寄存器L1数据CacheL1代码CacheL2CacheL3Cache内部存储器(内存)外部存储器(外存)外存Cache94.2现代微机的系统地址映射4.2.1传统地址范围(实地址模式)960KB640KB768KB896KB0F0000H0EFFFFH0E0000H0DFFFFH0C0000H0A0000H0BFFFFH09FFFFH0FFFFFH1MB00000HDOS区传统视频区(SMM存储器)128KB扩充区128KB(16KB8)扩展系统BIOS(低端)64KB(16KB4)系统BIOS(上端)64KB104.2.2主存储地址范围(1MB-TOLUD)兼容DOS存储(传统地址范围)0MB10000H主存储区1MB0H15MB0F0000HTOLUD100000HISAHole(可选)主存储区TSEG(1MB/2MB/8MB可选)IGD(1~64MB可选)PCI存储范围APICFlashMemory最大4GB0FFFFFFFFH114.2.3PCI存储地址范围(TOLUD-4GB)12IA-32/Intel64的存储模式IA-32内存模式平坦模式(Flatmemorymodel)整个内存是单一连续的地址空间,也称线性地址空间代码、数据和堆栈都包含在这个地址空间线性地址空间是按字节编址的,地址空间从0~232-1(如果不在64位模式)分段模式(Segmentmemorymodel)内存被分割成一个个称为段的独立的地址空间段可以用来存放一个程序的代码、数据或堆栈,或者存放系统数据结构(如TSS或LDT)每一个应用程序都可以使用若干个大小不等的段要寻址段内的一个字节需要提供一个由选择符和一个偏移量组成的逻辑地址在IA-32处理器中运行的程序可以寻址16383个不同大小和类型的段,每个段最大可到232字节13IA-32/Intel64的存储模式IA-32内存模式分段模式(Segmentmemorymodel)段选择符指向要操作的段的描述符在描述符表中的索引,偏移量指向段内地址空间中的一个字节系统中定义的所有段都要被映射到处理器的线性地址空间,因此处理器要把每个逻辑地址转变为线性地址(对程序员透明)分段机制能阻止程序超过段的界限而对另一个段的内容进行越段访问,以确保多个程序或任务执行过程中不会相互干扰。实地址模式见第二章14
IA-32/Intel64的存储模式分页与虚拟存储平坦或分段模式都要将最终的线性地址映射到物理地址空间,这有两种方法直接映射,即每个线性地址一对一的对应到一个物理地址分页机制将线性地址按照固定大小划分为页,将页映射到虚拟存储中,虚拟存储中的页再按照需要映射到物理内存中分页机制并不是必须的分页机制对应用程序来说是透明的所有的应用程序看到的都是线性地址64位下的内存组织在64位模式下,结构本身支持64位线性地址空间支持Intel64结构的处理器可能只实现低于64位的地址空间154.2.3操作模式与存储模式保护模式使用所有的存储模式实地址模式只在处理器处于虚拟8086模式下使用实地址模式只支持实地址存储模式系统管理模式处理器会切换到独立的地址空间在这个模式下,处理器对字节寻址的方法类似于实地址模式兼容模式在兼容模式上执行的软件要遵循它们在32位保护模式下的各种规定64位模式分段被禁止的,采用的是64位平坦线性地址空间16174.3IA-32结构保护模式下的存储管理4.3.1保护模式与特权级概述1.保护模式概述在保护模式下,Intel64和IA-32结构无论在段式管理还是页式管理上都提供基于特权级的保护机制。防止应用程序越权去访问操作系统核心的代码和数据。使用保护机制后,每次使用存储器时,在存储周期开始之前都会经历各种检查以保证正确性,任何的错误都将引起一个异常。将CR0寄存器的PE位(位0)置1的方法使处理器进入保护模式。进入保护模式后将自动启用分段机制。将CR0的PG位(位31)置1将启动分页机制,页级保护将自动启动。17182.特权级概述IA-32/Intel64处理器有4个特权级,编号从0~3,0号特权级级别最高,用于操作系统核心。1级和2级特权级多用于操作系统的服务例程,用户的应用程序一般在特权级3上运行系统将阻止低特权级的程序访问高特权级的段,否则会产生普通保护异常(#GP)。处理器会识别三类特权级。当前特权级(Currentprivilegelebel,CPL):当前执行程序或任务的特权级,它保存在CS和SS段寄存器的位0和位1描述符特权级(Descriptorprivilegelebel,DPL):段或门的特权级,它存储在段或门的描述符的DPL域请求特权级(Requestedprivilegelebel,RPL):保存在段选择符的位0和位1,处理器将它和CPL一起检查,来决定访问某个段是否被允许。18194.3.2保护模式下的段式存储管理1.IA-32/Intel64段式存储管理的几种模式基本平坦模型操作系统和应用程序访问同一个连续的地址空间至少要创建代码段描述符和数据段描述符。但这两个段描述符中的基地址都是0,段界限都是4GB。不同任务或同一任务的数据段、代码段和堆栈段等在地址空间上的不同分布完全由地址偏移量来区分。无法实现段的保护功能1920保护平坦模型类似于基本平坦模型段的界限设置为只包含物理内存实际存在的范围任何企图访问不存在的物理内存的行为都会产生一个普通保护异常(#GP)更复杂的机制可添加到保护平坦模式中来提供更多的保护。页式管理机制,提供用户与系统代码和数据的隔离2021多段模型每个程序或任务都有自己的段描述符表和自己的段段可以是指定的程序完全私有的,也可以是在程序间共享的对段的访问,以及对运行在系统中的独立程序的执行环境的访问都是由硬件控制的214.3IA-32结构保护模式下的存储管理4.3.1保护模式下的段式存储管理1.段式管理的地址变换段寄存器的15~2位偏移量45(77)32(64)31(63)0段描述符段表32(64)位线性地址物理地址逻辑地址段基址222.段描述符D7D0段界限7~0段界限15~8基址7~0基址15~8基址23~16基址31~24TYPESAVLDPLPGD/BL段界限19~160123456723D7D0AVLGD/BL段界限19~16用户的操作系统可用位D/B位代码段(D位)D=1使用32位操作系统和32位寻址方式D=0使用16位操作系统和16位寻址方式数据段(B位)B=1使用ESP寄存器,上限为FFFFFFFFHB=0使用SP寄存器,上限为FFFFHG=0段长以1字节为单位G=1段长以4K字节为单位D/B位粒度位1=在64位模式,0=在兼容或IA-32模式24AWREDCE=0E=1S=1DPLPD7D0存在位特权位S=1是非系统段S=0是系统描述符代码段标志数据段标志兼容位可读位访问位扩展方向位可写位非系统段中的第5字节可执行位25系统描述符中的TYPE2627set_trap_gate(0,÷_error);set_trap_gate(1,&debug);set_intr_gate(2,&nmi);set_system_intr_gate(3,&int3);set_system_gate(4,&overflow);set_system_gate(5,&bounds);set_trap_gate(6,&invalid_op);set_trap_gate(7,&device_not_available);set_task_gate(8,31);set_trap_gate(9,&coprocessor_segment_overrun);set_trap_gate(10,&invalid_TSS);set_trap_gate(11,&segment_not_present);set_trap_gate(12,&stack_segment);set_trap_gate(13,&general_protection);set_intr_gate(14,&page_fault);set_trap_gate(16,&coprocessor_error);set_trap_gate(17,&alignment_check);set_trap_gate(18,&machine_check);set_trap_gate(19,&simd_coprocessor_error);set_system_gate(128,&system_call);2829RPLTi选择符(段寄存器)15210索引Ti=1Ti=0……01……01LDTLDTLDTGDT基址界限选择符基址界限LDTRGDTR223031#include"stdafx.h"#include<stdio.h>#include<wtypes.h>
//wtypes.h定义了WORDLONG, //DWORD,WORD等数据类型DWORDLONGgdtr,savegdt;//下面是GDT中将创建的数据段描述符表,基地址0X00000F00,//段界限为0XFFFF,优先级为3的在内存中的可写数据段WORDdescriptor[4]={0xFFFF,0X0F00,0XF200, 0X0040};
intresult[10];intmain(int
argc,char*argv[]){_asm{
push
ebp
sgdt
gdtr
//将GDTR寄存器的内容读取到
//gdtr开始的6个字节中,其中
//前两个字节给出GDT的界限值, //高4个字节给出GDT的基地址32
mov
ebp,dword
ptr[gdtr+2]//将gdt的基
//地址读到EBP中
add
ebp,70h //我们选择70H偏移下的段描述
//符(GDT中第14个描述符)
lea
edi,savegdt
mov
esi,ebp
movsd
//以上4条指令保存原来在70H偏移上
movsd
//的描述符
mov
edi,ebp
lea esi,descriptor;
movsd
//把我们的数据段描述符装入70H
movsd
//偏移上
push
es
mov
ax,0073h
//选择字为描述符偏移70H拼接上
//低3位控制位元,其中Ti为0,表
//示访问GDT,RPL为11,为3级优
//先级,所以就为73H
33
mov
es,ax
//ES装入选择字73H
lea
edi,result
//将存放输出结果的变量
//的地址放在EDI中
mov
eax,1
mov
ebx,1}_asm{
mov
cx,10a1:
mov
es:[eax],eax
add
eax,4
loop
a1
//上面4条指令将向物理地址
//0X00000F00处写10个双字}_asm{
mov
cx,10a2:
mov
eax,es:[ebx]
mov
[edi],eax34
add
ebx,4
add
edi,4
loop
a2
//以上从物理地址0X00000F00 //处依次读出10个数据存放在
//result数组中}_asm{
pop
es
pop
ebp}
printf("result=");
for(inti=0;i<10;i++)
printf("%d,",result[i]);//输出结果
return0;}354.3.2保护模式下的虚拟页式存储管理主存~~~~页框页面程序1程序2程序336372.IA-32/Intel64页式存储管理模式当CR0.PG=1且CR0.PE=1(保护模式使能)的时候,页式管理被使能,此时可用三种分页的模式中的一种32位分页模式。当CR0.PG=1并且CR4.PAE=0时进入该模式。PAE分页模式。当CR0.PG=1,CR4.PAE=1并且IA32_EFER.LME=0时进入该模式。IA-32e分页模式。当CR0.PG=1,CR4.PAE=1并且IA32_EFER.LME=1时进入该模式373832位分页模式下的4KB分页方式(CR4.PSE=0)
P=出现位,US=用户/监督位,PCD是页Cache禁止,D=Cache“脏”位,RW=读/写位,PWT=页写贯穿位,A=访问位,AVL=用户的操作系统可用位。而第7位(PS)在4KB分页中为0页目录32位线性地址页目录项号页面号偏移CR332位物理地址31222112110页表低12位高20位3112119876543210PWTPCD页表基地址31~12PRWUSGAVLAD0页目录项PWTPCD页框基地址31~12PRWUSGPATAVLAD页表项3112119876543210383932位分页模式下的4MB分页方式(CR4.PSE=1)
32位线性地址页目录项号偏移CR332位物理地址3122210页目录低22位高10位3122(M-19)1312119876543210PWTPCD页框基地址31~22PRWUSAD1页目录项PATAVLGM为40和MAXPHYADDR的最小值,MAXPHYADDR是处理器支持的最大物理地址,其值在40~32之间3940PAE分页模式下的2MB分页方式地址转换(CR4.PSE=1)32位线性地址页目录项号偏移CR3物理地址31302921200页目录PDPT项号页目录指针表4×64位512×64位页目录项PWTPCD2MB对齐的页框基地址PRWUSAVLAD63M(M-1)212013121198765432101G低21位高31位PAT36<M<52PAE分页模式转换32位线性地址到52位物理地址(如果某处理器只支持MAXPHYADDR(<52)位物理地址,则物理地址的MAXPHYADDR~51位为0)。M=MAXPHYADDR404131543210PWTPCD32字节对齐的PDPT基地址CR3寄存器63M(M-1)121198543210PWTPCDPAVLPDPT项4KB对齐的页目录基地址(高24位)63M(M-1)12119876543210PWTPCD4KB对齐的页表基地址PRWUSAVLA0页目录项PWTPCD4KB对齐的页框基地址PRWUSAVLAD页表项63M(M-1)121198765432100GPAE分页模式下的4KB分页方式地址转换(CR4.PSE=0)32位线性地址页目录项号页面号偏移CR3物理地址313029212012110页目录页表PDPT项号页目录指针表4×64位512×64位512×64位低12位高40位36<M<524142IA-32e模式下的4KB内存分页结构项的格式
PWTPCDPML4基地址PRWUSA63625251M(M-1)12119876543210AVLPML4表EXBAVLPDPT表PWTPCD页目录基地址PRWUSA63625251M(M-1)12119876543210AVLEXBAVL页目录项PDE(4KByte页表)PWTPCD页表基地址PRWUSA63625251M(M-1)12119876543210AVLEXBAVL000页表(4KByte页表)PWTPCD页框基地址PRWUSA63625251M(M-1)12119876543210AVLEXBAVLGPATD0IA-32e模式支持4KB、2MB和1GB三种不同的页面大小,PDPT.PS=1为1GB分页,PDPT.PS=0且PDE.PS=0为4KB分页,PDPT.PS=0且PDE.PS=1为2MB分页,CR4.PSE位被忽略。4243IA-32e模式下4KB分页方式地址转换4344IA-32e模式下的2MB内存分页结构项的格式
PWTPCDPML4基地址PRWUSA63625251M(M-1)12119876543210AVLPML4表EXBAVLPDPT表PWTPCD页目录基地址PRWUSA63625251M(M-1)12119876543210AVLEXBAVL页目录项PDE(2MB页表)PWTPCD页框基地址PRWUSA63625251M(M-1)21201312119876543210AVLEXBAVLG1DAVLPAT04445IA-32e模式下2MB分页方式地址转换4546IA-32e模式下的1GB内存分页结构项的格式
PWTPCDPML4基地址PRWUSA63625251M(M-1)12119876543210AVLPML4表EXBAVLPDPT表PWTPCD页框基地址PRWUSA63625251M(M-1)30291312119876543210AVLEXBAVLG1DAVLPAT4647IA-32e模式下1GB分页方式地址转换4731543210PWTPCD32字节对齐的PDPT基地址CR3寄存器633635121198543210PWTPCDPAVLPDPT项4KB对齐的页目录基地址(高24位)63363512119876543210PWTPCD4KB对齐的页表基地址PRWUSAVLA0页目录项PWTPCD4KB对齐的页框基地址PRWUSAVLAD页表项633635121198765432100G36位地址下的4KB分页方式地址转换32位线性地址页目录项号页面号偏移CR336位物理地址313029212012110页目录页表PDPT项号页目录指针表4×64位512×64位512×64位低12位高24位4836位地址下的2MB分页方式地址转换32位线性地址页目录项号偏移CR336位物理地址31302921200页目录PDPT项号页目录指针表4×64位512×64位页目录项PWTPCD2MB对齐的页框基地址PRWUSAVLAD633635212013121198765432101G低21位高15位PAT49IA-32e模式下的4KB内存分页结构项的格式
PWTPCDPML4基地址PRWUSA6362513912119876543210AVLPML4表EXBAVLPDPT表PWTPCD页目录基地址PRWUSA6362513912119876543210AVLEXBAVL页目录项(4KByte页表)PWTPCD页目录基地址PRWUSA6362513912119876543210AVLEXBAVL000页表(4KByte页表)PWTPCD页目录基地址PRWUSA6362513912119876543210AVLEXBAVLGPATD50IA-32e模式下4KB分页方式地址转换514.4高速缓冲存储器Cache4.1.1Cache的工作原理与地址映射1.Cache的工作原理522.Cache的地址映像1)直接映像主存中的每一页都映像到高速缓存中的一个固定页,而高速缓存中的每一页却对应着主存中的若干页。这是最简单的一种映像技术,易于实现,地址变换速度快,但是不够灵活,Cache的页冲突概率高,空间利用率低。
53主存中各区内相同字块号的数据块都可以分别调入缓存中字块号相同的地址中,但同时只能有一个区的块存入缓存。由于主、缓存字块号相同,因此,目录表登记时,只记录调入字块的区号即可。
54图所示为主存、Cache地址格式、目录表格式及地址变换规则。主存、Cache字块号及块内地址两个字段完全相同。目录表存放在相联存储器中,其中包括二部分:数据块在主存的区号和有效位。目录表的容量与Cache的字块数相同。55562)全相联映像全相联映像技术允许主存中每一个页面映像到Cache的任何一个页面位置上,也允许采用某种替换算法从已占满的Cache中替换出任何一个旧页面。这种方式冲突概率低,可达到很高的Cache命中率,但实现起来比较困难。5758地址映象规则:主存的任意一字块可映象到Cache中的任意一字块。(1)主存与Cache分成相同大小的字块。(2)主存的某一字块可以装入Cache的任意一字块空间中。图3-15示出了目录表(字块标记)的格式及地址变换规则。目录表存放在相关(联)存储器中,其中包括三部分:主存的字块号、Cache字块号、有效位(也称装入位)。由于是全相联方式,因此目录表的容量应当与Cache的字块数相同。59603)组相联映像
主存和Cache按同样大小划分成块。主存和Cache按同样大小划分成组。主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放,即从主存的组到Cache的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。616263例:设有8个块,分成2个组,在上述地址序列下:64653.Cache的读写操作存储器读访问页面在Cache中——直接读Cache,不读主存访问页面不在Cache中——·贯穿读出式:页面从主存读到Cache,再到CPU·旁路读出式:页面直接从主存读到CPU,而不经过Cache存储器写
·写回法:写Cache页时不写主存,到下次页面修改时再写主存。
·写贯穿法:页面在写到Cache时同时写到主存,以保持主存与Cache的相关页的内容一致
664.4.2IA-32的Cach
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年广东省公务员录用考试《行测》真题(县级)及答案解析
- 吉林师范大学《山水画技法表现解析》2021-2022学年第一学期期末试卷
- 吉林师范大学《给水管网系统》2021-2022学年期末试卷
- 混凝土管道抗震施工方案
- 水泥产品市场推广与供应方案
- 吉林师范大学《儿童文学》2021-2022学年第一学期期末试卷
- 企业网络数据泄露应急预案
- 吉林大学《无线通信原理》2021-2022学年第一学期期末试卷
- 2024资金借款企业合同
- 教育行业履职工作总结与教学提升
- 绿色物流阶段测试试题及答案
- 进口中药资质要求及申报手续
- 新时代高职英语(基础模块)Unit1
- 初中研究性学习报告(通用17篇)
- 人教版九年级数学下册 (相似三角形的判定)相似课件(第3课时)
- MBTI性格测评-课件
- 口腔牙体牙髓病例展示
- 历史文化名城西安城市课件
- 中药审方-中药饮片处方审查(中药调剂技术课件)
- 中医养生中医养生与体质调护课件
- 建筑工程工地卫生防疫措施
评论
0/150
提交评论