好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第3章存储器及存储系统.ppt

193页
  • 卖家[上传人]:工****
  • 文档编号:577768766
  • 上传时间:2024-08-22
  • 文档格式:PPT
  • 文档大小:2.33MB
  • / 193 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第三章 存储器及存储系统3.1 3.1 存储器概述3.2 3.2 主存储器 3.3 3.3 半导体存储器芯片3.4 3.4 主存储器组织3.5 3.5 存储保护和校验技术 3 3.1 1 存储器概述1 1.存储器分类1 1)按存储介质分类(1 1)半导体存储器 特点:集成高、容量大、体积小、存取速度快、功耗低、价格便宜、维护简单 又分两类:双极性存储器(TTLTTL型和ECLECL型)和金属氧化物半导体存储器(MOSMOS)(分为静态MOSMOS存储器和动态MOSMOS存储器) (2 2) 磁表面存储器 特点:存储体积大且不易丢失含磁盘存储器、磁带存储器等(3 3) 激光存储器 特点:集上述两种优点 只读型光盘(CD-ROMCD-ROM)、只写一次型光盘(WORMWORM)和磁光盘(MODMOD) 2 2)按存取方式分类 (1 1)随机存储器(RAMRAM) 在存储器中任何存储单元的内容都能随机存取,且存取时间与存储单元的物理位置无关主要用途:存放各种输入/ /输出的程序、数据、中间结果以及存放与外界交换的信息和做堆栈用。

      一般充当高速缓冲存储器和主存储器 (2 2)串行访问存储器(SASSAS) 在存储器中按某种顺序来存取,也就是存取时间与存储单元的物理位置有关又分为顺序存取存储器(SAMSAM)和直接存取存储器(DAMDAM)主要用途:磁带(SAMSAM)和磁盘(DAMDAM)用于外部存储器 (3 3)只读存储器(ROMROM)只能读,不能写的,其内容已经预先一次写入,是存放固定不变的信息 主要用途:微程序控制器、BIOSBIOS等 又分为掩模ROMROM(MROMMROM)、 可编程ROMROM(PROMPROM)、可擦除可编程ROMROM(EPROMEPROM和E E2 2PROMPROM)) 非永久记忆的存储器:断电后信息即消失的存储器 (主存中的RAMRAM) 永久记忆性存储器:断电后仍能保存信息的存储器 (辅存,ROMROM)3)3)按信息的可保存性分类 根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。

      4)4)按在计算机系统中的作用分类 存储器分类综述主存储器主存储器辅助存储器辅助存储器存存储储器器RAMRAMRAMRAMROMROMROMROMSRAMSRAMSRAMSRAMDRAMDRAMDRAMDRAM磁盘磁盘光盘光盘软盘软盘硬盘硬盘→→→→CacheCacheCacheCache磁带磁带MROMMROMMROMMROMPROMPROMPROMPROMEPROMEPROMEPROMEPROME E E E2 2 2 2PROMPROMPROMPROMCD-ROMCD-ROMCD-ROMCD-ROMWORMWORMWORMWORMEODEODEODEOD 2 2.存储器的分级管理 通常采用三级存储器结构(高速缓冲存储器、主存储器和辅助存储器),CPUCPU能直接访问存储器(高速缓冲存储器、主存储器)称为内存储器(内存),不能直接访问称为外存储器(外存) (1 1)高速缓冲存储器(CacheCache、快存) 是一个高速的小容量的存储器,临时存放指令和数据,主要用双极型半导体存储器组成 (2 2)主存储器(主存) 是计算机主要存储器,用来存放计算机运行期间的大量数据和程序。

      它是和快存交换数据和指令,快存再与CPUCPU打交道由MOSMOS存储器组成 (3 3)外存储器(外存) 又称辅助存储器,主要是存储容量大,用来存放系统程序和大型数据文件及数据库 三级结构有关系有下图表示: 主机高速缓冲存储器CacheCache 寄存器组CPUCPU主存外存 3 3.2 2 主存储器一、主存储器的技术指标1 1、存储容量 存放一个机器字的存储单元,称为字存储单元,相应的单元地址叫字地址,若计算机中可编址最小单元为字,称该计算机为按字编址的计算机;存放一个字节的单元,称为字节存储单元,相应的单元地址叫字节地址,若计算机中可编址最小单元为字节,称该计算机为按字节编址的计算机 在一个存储器中可以容纳的主存储器的单元总数称为该存储器的存储容量,通常用字节(B B,1B=8b1B=8b)表示1K=10241K=1024,1M=1024K1M=1024K,1G=1024M1G=1024M和1T=1024G1T=1024G,单位为MBMB、GBGB、TB TB 2 2、存取时间 写操作:信息存入存储器的操作 读操作:从存储器取出信息的操作。

       访 问:读/ /写操作 存储器的访问时间(存取时间,用T TA A表示,多数在nsns级):从存储器接收到读(或写)命令到从存储器读出(写入)信息所需的时间 3 3、存取周期 存取周期(用T TM M表示):存储器作连续访问操作过程中完成一次完整存取操作所需的全部时间也是指连续启动两次独立的存储器操作所需间隔的最小时间T TM M>T>TA A 主存储器的主要几项技术指标指标 含义 表现 单位 存储容量在一个存储器中可以容纳的存储单元总数 存储空间的大小 字数,字节数 存取时间启动到完成一次存储器操作所经历的时间主存的速度 ns 存储周期连续启动两次操作所需间隔的最小时间 主存的速度 ns 存储器带宽单位时间里存储器所存取的信息量数据传输速率技术指标位/ /秒,字节/ /秒 二、主存储器的基本结构    它由存储体加上一些外围电路构成    外围电路包括地址译码驱动器、数据寄存器和存储器控制电路等接收来自CPU的n位地址信号,经过译码、驱动后形成2n个地址选择信号,每次 选中一个地址 三、主存储器的基本操作 主存储器用来暂时存储CPUCPU正在使用的指令和数据,它们的连接是通过总线实现的。

      总线有三类:数据总线、地址总线和控制总线存储器地址寄存器(在CPUCPU中,MARMAR):传送地址的,单向的CPUCPU发出,连接的总线(MARMAR总线)存储器数据寄存器(在CPUCPU中,MDRMDR):传送数据的,双向的(MDRMDR总线)MACMAC控制线:含读、写和表示存储器功能完成的线 CPUMARMDR主存容量2K字字长n位MEM地址总线K位数据总线n位ReadWriteMAC控制总线 读操作过程: CPUCPU发出指定存储器地址(通过MARMAR到总线),并发出ReadRead有效,之后等待主存储器的应答信号(MACMAC控制线,若为1 1,表示主存储器已将数据送入数据总线),送入MDRMDR,完成一次读操作 写操作过程: CPUCPU发出指定存储器地址(通过MARMAR到总线),并将数据(通过MDRMDR到总线),同时发出WriteWrite有效,之后等待主存储器的应答信号(MACMAC控制线);主存储器从数据总线接收到信息并按地址总线指定的地址存储然后经过MACMAC控制线发回存储器操作完成的信号。

      完成一次写操作 3.33.3半导体存储器芯片3.3.1 3.3.1 静态MOSMOS存储器(SRAM)(SRAM)3.3.2 3.3.2 动态MOSMOS存储器(DRAM)(DRAM)3.3.3 3.3.3 半导体只读存储器 工艺双极型MOSMOS型速度很快、功耗大、容量小功耗小、容量大静态MOSMOS动态MOSMOS存储信息原理静态存储器SRAMSRAM动态存储器DRAMDRAM(双极型、静态MOSMOS型): 依靠双稳态电路内部交叉反馈的机制存储信息动态MOSMOS型): 依靠电容存储电荷的原理存储信息功耗较大, ,速度快, ,作CacheCache功耗较小, ,容量大, ,速度较快, ,作主存静态MOSMOS除外)半导体存储器 VCCT3T4T5T6BT1T2ADDT7T8接 Y 地址译码线(I/O)(I/O)X 地址译码线一、静态MOSMOS存储器(SRAMSRAM) 1 1.静态MOSMOS存储单元下图是一位的六管静态MOSMOS存储单元电路图:①①T T1 1、T T2 2是工作管,使得A A、B B点为互补(一个为 1 1,另一个一定0 0)。

      ②②T T3 3、T T4 4是负载管,起限流电阻作用③③T T5 5、T T6 6、T T7 7、T T8 8为控制管或开门管,由它们实现按地址选择存储单元 VCCT3T4T5T6BT1T2ADDT7T8接 Y 地址译码线(I/O)(I/O)X 地址译码线一、静态MOSMOS存储器(SRAMSRAM) 1 1.静态MOSMOS存储单元下图是一位的六管静态MOSMOS存储单元电路图:1 1)写操作 如果写入““1”1”,则在I/OI/O线上输入高电位,而在 线上输入低电位,并开通T5T5、T6T6、T7T7、T8T8四个MOSMOS管,把高、低电位分别加入A A点和B B点上,从而使T1T1管截止,T2T2管导通当输入信号及地址选择信号消失后,T5T5、T6T6、T7T7、T8T8管都截止,T1T1和T2T2管就保持被强迫写入的状态不变,从而将““1”1”写入存储元,各种干扰信号不会影响T1T1和T2T2管;写““0”0”同上原理一样 VCCT3T4T5T6BT1T2ADDT7T8接 Y 地址译码线(I/O)(I/O)X 地址译码线一、静态MOSMOS存储器(SRAMSRAM) 1 1.静态MOSMOS存储单元下图是一位的六管静态MOSMOS存储单元电路图: 2 2)读操作 读操作时,若某个存储元被选中,则T5T5、T6T6、T7T7、T8T8四管均导通,于是A A点、B B点与位线D D、 相连,存储元的信息被送到I/OI/O线和 线上,I/OI/O及 线连接着一个差动读出放大器,从其电流方向,可以判断所存信息是““1”1”和““0”0”;也可以只有一个输出端连接到外部,从其有无电流通过,判断出所存信息是““1”1”还是““0”0”。

      2.  静态MOS存储器的组成                     16                    ….                      2164×64=4096存储矩阵驱动器X译码器地址译码器6.........…I/O电路Y译码电路地址反相器 6输出驱动器控制电路输出输入A6A7A11…读/写片选164164…A0A1A5… Y译码X译码X1X0Y1Y0DDI/O电路4×4 阵列构成的16×1位存储器存储体地址译码器 X译码X1X0D3I/O电路4×4 位存储器D2D1D0 ① ① 存储体(存储矩阵) 存储体是存储单元的集合在容量较大的存储器中往往把各个字的同一位组织在一个集成片中; 图芯片是4096*14096*1位,由这样的8 8个芯片可组成40964096字节的存储器 40964096个存储单元排成64*6464*64的矩阵 由X X选择线(行选择线)和Y Y选择线(列选择线)来选择所需用的单元 两种地址译码方式: 1)1)单译码方式,适用于小容量存储器;② ② 地址译码器 地址译码器把用二进制表示的地址转换为译码输入线上的高电位,以便驱动相应的读写电路。

      地址译码器只有一个,其输出叫字选线,选择某个字的所有位 地址输入线n=4n=4,经地址译码器译码后,产生1616个字选线,分别对应1616个地址 译码器A5A4A3A2A1A06301存储单元64个单元单译码 2)2)双译码方式,适用于容量较大的存储器 地址译码器分为X X和Y Y两个译码器每一个译码器有n/2n/2个输入端,可以译出2 2 n/2n/2个状态,两译码器交叉译码的结果,可产生 2 2 n/2n/2 × 2 × 2 n/2n/2 个输出状态 行译码A2A1A0710列译码A3A4A501764个单元双译码 采用双译码结构的8×88×8的存储矩阵构成的6464×1位的存储器 ......X X地址译码0,00,01,01,063,063,00,10,11,11,163,163,10,630,631,631,6363,6363,63Y Y地址译码I/OI/O控制双地址译码存储结构X X0 0X X1 1X X6363......y y0 0y y1 1......y y6363.................. 采用双译码结构的4096×14096×1的存储单元矩阵;对40964096个单元选址,需要1212根地址线:A A0 0—A A1111。

      ③ ③ 驱动器 一条X X方向的选择线要控制在其上的各个存储单元的字选线,负载较大,要在译码器输出后加驱动器④ I/O④ I/O控制 它处于数据总线和被选用的单元之间,用以控制被选中的单元读出或写入,并具有放大信息的作用⑤ ⑤ 片选控制 将一定数量的芯片按一定方式连接成一个完整的存储器;芯片外的地址译码器产生片选控制信号,选中要访问的存储字所在的芯片⑥ ⑥ 读/ /写控制 根据CPUCPU给出的信号是读命令还是写命令,控制被选中存储单元的读写 &&CSR/WI/ODD片选和读写控制电路 3 3.静态MOSMOS存储器芯片实例下图是Intel 2114Intel 2114静态MOSMOS芯片逻辑结构图,该芯片是一个1K1K××4 4位的静态RAMRAM,片上共有40964096个六管存储元电路,排成6464××6464的矩阵,有地址总线1010根(A A0 0~A A9 9),其中六根(A A3 3~A A8 8)用于行译码,产生6464根行选择线,四根用于列译码,产生64/464/4条选择线,即1616条列选择线,每条线同时接矩阵的4 4位。

      地址端:21142114(1K×41K×4)1 19 910101818A6 A5 A4 A3 A0 A1 A2 CS GNDA6 A5 A4 A3 A0 A1 A2 CS GNDVcc A7 A8 A9 D0 D1 D2 D3 WEVcc A7 A8 A9 D0 D1 D2 D3 WEA9A9~A0A0(入)数据端: D3D3~D0D0(入/ /出)控制端:片选CSCS= 0 = 0 选中芯片= 1 = 1 未选中芯片写使能WEWE= 0 = 0 写= 1 = 1 读电源、地SRAMSRAM芯片21142114(1 1K×4K×4位)外特性: 4 4、存储器的读/ /写操作 结合上面Inter 2114, Inter 2114, 对读/ /写操作的时序进行分析 1 1)读操作时序CS地址 tCXtOHAtCOtRCtAtOTDDOUT读周期t tRCRC 地址有效 →下一次地址有效, ,最小450ns450ns 4 4、存储器的读/ /写操作 结合上面Inter 2114, Inter 2114, 对读/ /写操作的时序进行分析。

      1 1)读操作时序CS地址 tCXtOHAtCOtRCtAtOTDDOUT读时间t t t tA A A A 地址有效数据稳定 4 4、存储器的读/ /写操作 结合上面Inter 2114, Inter 2114, 对读/ /写操作的时序进行分析 1 1)读操作时序CS地址 tCXtOHAtCOtRCtAtOTDDOUTt tCO CO 片选有效数据稳定 4 4、存储器的读/ /写操作 结合上面Inter 2114, Inter 2114, 对读/ /写操作的时序进行分析 1 1)读操作时序CS地址 tCXtOHAtCOtRCtAtOTDDOUTt tOTD OTD 片选失效输出高阻 4 4、存储器的读/ /写操作 结合上面Inter 2114, Inter 2114, 对读/ /写操作的时序进行分析 1 1)读操作时序CS地址 tCXtOHAtCOtRCtAtOTDDOUTt tOHA OHA 地址失效后的数据维持时间 参数名称tmin/nstmax/ns说明tRC读周期时间450 存取周期TmtA读出时间 450存取时间TatCO片选有效到数据输出延迟 120 tCX片选有效到输出有效20  tOTD断开片选到输出变为三态0100 tOHA地址改变后数据的维持时间50  1 1 1 1 ))读读操操作作时时序序CS地址 tCXtOHAtCOtRCtAtOTDDOUT读周期 t tRC RC 地址有效 →下一次地址有效读时间 t tA A 地址有效数据稳定 t tCOCO 片选有效数据稳定t tOTDOTD 片选失效输出高阻t tOHAOHA 地址失效后的 数据维持时间 ACSDOUT地址有效地址失效片选失效数据有效数据稳定高阻  静态 RAM 读 时序  tAtCOtOHAtOTDtRC片选有效读周期 t tRCRC 地址有效 下一次地址有效读时间 t tA A 地址有效数据稳定 t tCOCO 片选有效数据稳定t tOTDOTD 片选失效输出高阻t tOHAOHA 地址失效后的 数据维持时间 tDHtDTWCS地址tAWtWCtWRDINWEtWtDWDOUT2 2 )写操作时序写周期 t tWC WC 地址有效下一次地址有效写时间 t tW W 写命令 WE WE 的有效时间t tAWAW 地址有效片选有效的滞后时间t tWRWR 片选失效下一次地址有效t tDW DW 数据稳定 WE WE 失效t tDHDH WE WE 失效后的数据维持时间参数名称t tminmin/ns/nst tmaxmax/ns/ns说明t tWCWC写周期时间450450  t tW W写数时间200200  t tWRWR写恢复时间0 0  t tDTWDTW写信号有效到输出变为三态0 0 100t tDWDW数据有效时间200200  t tDHDH写信号无效后数据保持时间0 0   ACSWEDOUTDIN 静态 RAM (2114) 写 时序  tWCtWtAWtDWtDHtWR写周期 t tWCWC 地址有效下一次地址有效写时间 t tW W 写命令 WEWE 的有效时间t tAWAW 地址有效片选有效的滞后时间t tWRWR 片选失效下一次地址有效t tDW DW 数据稳定 WE WE 失效t tDHDH WE WE 失效后的数据维持时间 【例1 1】 下图是SRAMSRAM的写入时序图。

      其中R/WR/W是读/ /写命令控制线,当R/WR/W线为低电平时,存储器按给定地址把数据线上的数据写入存储器请指出下图写入时序中的错误,并画出正确的写入时序图 【解】写入存储器的时序信号必须同步通常,当R/WR/W线加负脉冲时,地址线和数据线的电平必须是稳定的当R/WR/W线达到低电平时,数据立即被存储 因此,当R/WR/W线处于低电平时,如果数据线改变了数值,那么存储器将存储新的数据⑤⑤同样,当R/WR/W线处于低电平时地址线如果发生了变化那么同样数据将存储到新的地址②②或③③正确的写入时序图见下图 二、动态MOSMOS存储器(DRAM)(DRAM)在六管静态存储元电路中,信息暂存于T T1 1,T T2 2管的栅极,这是因为管子总是存在着一定的电容负载管T T3 3,T T4 4是为了给这些存储电荷补充电荷用的 由于MOSMOS的栅极电阻很高,故泄漏电流很小,在一定的时间内这些信息电荷可以维持住为了减少管子以提高集成度,把负载管T T3 3,T T4 4去掉,这样变成了四管的动态存储电路 1.四管动态存储元 写操作: :I/OI/O与I/OI/O加相反的电平,当T5,T6T5,T6截止时,靠T1T1,T2T2管栅极电容的存储作用,在一定时间内( (如2ms)2ms)可保留所写入的信息。

       读操作: :先给出预充信号,使T9T9,T10T10管导通,位线D D和D D上的电容都达到电源电压字选择线使T5T5,T6T6管导通时,存储的信息通过A A,B B端向位线输出 刷新操作: :为防止存储的信息电荷泄漏而丢失信息,由外界按一定规律不断给栅极进行充电,补足栅极的信息电荷 四管的动态存储电路和六管静态存储元电路的区别:①①写操作:I/O与I/O加相反的电平,当T5、T6截止时,靠T1、T2管栅极电容的存储作用,在一定时间内(如2ms)可保留所写入的信息②②读操作:先给出预充信号,使T9、T10管导通,位线D和D上的电容都达到电源电压字选择线使T5、T6管导通时,存储的信息通过A、B端向位线输出③③刷新操作:为防止存储的信息电荷泄漏而丢失信息,由外界按一定规律不断给栅极进行充电,补足栅极的信息电荷  写入:字选择线为“1 1”,T1T1管导通,写入信息由位线( (数据线) )存入电容C C中; 读出:字选择线为“1 1”,存储在电容C C上的电荷,通过T1T1输出到数据线上,通过读出放大器即可得到存储信息2.单管动态存储元 单管动态存储元电路由一个管子T1和一个电容C构成。

      四管与单管动态存储元的优点和缺点: :(1 1)四管:管子多,占有芯片面积大 单管:单管,元件数量少,集成度高(2 2)四管:外围电路较简单,读出过程同时刷新, 单管:因读“1 1”和“0 0”时,数据线上电平差很小, 需要有高鉴别能力的读出放大器配合工作, 外围电路比较复杂    DRAMDRAM存储器芯片的结构大体与SRAMSRAM存储器芯片相似,由存储体与外围电路构成但它集成度要高,外围电路更复杂 下图是16K×116K×1位的DRAMDRAM存储器片21162116的逻辑结构示意图3. 3. 动态MOS RAMMOS RAM芯片实例 2116的逻辑结构示意图DRAM与SRAM有两点不同:(1)数据输入输出分开        (DRAM:Din和Dout)(2)控制信号DRAM只有           WE,而没有CS 定义:刷新动态存储器依靠电容电荷存储信息平时无电源供电,时间一长电容电荷会泄放,需定期向电容补充电荷,以保持信息不变。

      定期向电容补充电荷原因:4.DRAM4.DRAM的刷新 刷新周期:从上一次刷新结束到下一次对整个DRAMDRAM全部刷新一遍为止,这一段时间间隔称为刷新周期刷新操作:即是按行来执行内部的读操作由刷新计数器产生行地址,选择当前要刷新的行,读即刷新,刷新一行所需时间即是一个存储周期刷新行数:单个芯片的单个矩阵的行数–对于内部包含多个存储矩阵的芯片,各个矩阵的同一行是被同时刷新的–对于多个芯片连接构成的DRAMDRAM,DRAMDRAM控制器将选中所有芯片的同一行来进行逐行刷新单元刷新间隔时间:DRAMDRAM允许的最大信息保持时间;一般为2ms2ms刷新方式:集中式刷新、分散式刷新和异步式刷新4.DRAM4.DRAM的刷新 在2ms2ms单元刷新间隔时间内,集中对128128行刷新一遍,所需时间128×500ns=64μs128×500ns=64μs,其余时间则用于访问操作 在内部刷新时间(64μs64μs)内,不允许访存,这段时间被称为死时间集中式刷新例:64K×1位DRAM芯片中,存储电路由4个独立的128×128的存储矩阵组成设存储器存储周期为500ns,单元刷新间隔是2ms。

       用在实时要求不高的场合 在任何一个存储周期内,分为访存和刷新两个子周期–访存时间内,供CPUCPU和其他主设备访问–在刷新时间内,对DRAMDRAM的某一行刷新存储周期为存储器存储周期的两倍,即500ns×2500ns×2=1μ s1μ s刷新周期缩短,为128× 1 μ s 128× 1 μ s =128 μ s128 μ s在2ms2ms的单元刷新间隔时间内,对DRAMDRAM刷新了2ms÷128μs2ms÷128μs遍分散式刷新用在低速系统中 异步式刷新–异步刷新采取折中的办法,在2ms2ms内分散地把各行刷新一遍–避免了分散式刷新中不必要的多次刷新,提高了整机速度;同时又解决了集中式刷新中““死区””时间过长的问题–刷新信号的周期为2ms/128=15.625μs2ms/128=15.625μs让刷新电路每隔15μs15μs产生一个刷新信号,刷新一行用在大多数计算机中 【例2 2】 说明1M×11M×1位DRAMDRAM片子的刷新方法,刷新周期定为8ms 8ms 【解】  如果选择一个行地址进行刷新, 刷新地址为A0A0—A8A8,因此这一行上的20482048个存储元同时进行刷新,即在8ms8ms内进行512512个周期的刷新。

      按照这个周期数,512×2048512×2048=1 048 5671 048 567,即对1M1M位的存储元全部进行刷新刷新方式可采用:在8ms8ms中进行512512次刷新操作的集中刷新方式,或按8ms÷5128ms÷512=15.5μs15.5μs刷新一次的异步刷新方式 & && &≥1≥1& &读/ /写与刷新操作的CASCAS转换电路读/ /写控制CASCAS刷新延时CASCAS DRAM DRAM控制器 地址总线 刷新地址计数器地址多路开关行列地址刷新定时器仲裁电路控制信号 发生器读/ /写 RAS RAS CAS CAS WR WRDRAMDRAM存储器CPUCPU DRAM DRAM控制器结构框图 DRAMDRAM存储器的特点 使用半导体器件中分布电容上有无电荷来表示0 0和1 1代码 电源不掉电的情况下,信息也会丢失,因此需要不断刷新存取速度慢,集成度高(容量大),价格低 常用作内存条 SRAMSRAM和DRAMDRAM的对比比较内容SRAMSRAMDRAMDRAM存储信息0 0和1 1的方式 双稳态触发器 极间电容上的电荷电源不掉电时 信息稳定信息会丢失刷新不需要需要集成度低高容量小大价格高低速度快慢适用场合CacheCache主存 地址译码器. .. .. .A A0 0A A1 1A A9 9…………0 0……. .. .. .1 1 数据缓冲器……10231023读出放大器D D0 0D D1 1D D7 7CSCS…………U Udodo 0 01 1…7 70 00 00 0…1 11 11 10 0…1 1……………102310231 11 1…0 0三、 半导体只读存储器 1 1 1 1.掩模式只读存储器(.掩模式只读存储器(MROMMROMMROMMROM)) 1024×81024×8位MROMMROM:行与列线连接存储““0 0””,否则为““1 1”” 特点:(1 1)一次写入后不能修改,灵活差(2 2)信息固定不变,可靠性高(3 3)生产周期长,只适合定型批量生产 写入时,E EC C接+12V+12V,要写1 1的那一位的D D端断开,用大电流烧断熔丝;写0 0位的D D端接地,电流不经过熔丝。

      如此逐字写入需要的信息 读出时, E EC C接+5V+5V,信息从D D0 0~D D3 3输出2 2.可编程只读存储器(PROM)PROM)采用单译码结构,存储元4×4位矩阵,共有4个字,每字4 位 说明:(A A)读出时,EcEc要接5V5V电压,写入时EcEc要接12V12V(B B)读时操作: 熔丝不断时,反相输出为1 1 熔丝烧断时,反相输出为0 0(C C)写入只能一次,一旦熔丝烧断就不能复原 要写“0 0”,使D D端断开 要写“1 1”,使D D端接地,使大电流烧断熔丝 AI++++++N基体P+P+SDSiO2浮空多晶硅栅EPROM字线位线Vcc3 3.紫外光线可擦除可编程只读存储器(EPROMEPROM) 其栅级由SiOSiO2 2与多晶体硅做成,且浮空,管子做好时栅级(G G)上无电荷,该管不导通,即漏级(D D)和源级(S S)间无电流,存入的信息为1 1,若要写入0 0,则需要在D D和S S间加25V25V电压,外加编程脉冲(宽50MS50MS)可击穿,电子注入硅栅,高压撤除后,因硅栅有绝缘层包围,电子无法泄漏,硅栅变负,从而形成导电沟道,EPROMEPROM管导通,存入信息“0 0”。

      CE为低电平、OE为高电平和WE加负脉冲D0~D7写入CE为低电平、OE为低电平和WE为高电平从D0~D7读出CE为低电平、OE为10V~15V和WE加低电平整片擦除OE为高电平和WE为高电平 D0~D7输出无高阻       4 4.电可擦除电可改写只读存储器(EEPROM)(EEPROM) 存储手段非易失性高密度低功耗单管单元重写字节写入抗冲击MROMMROMY YY YY YY YY YEPROMEPROMY YY YY YY YY YE2PROME2PROMY YY YY YY YY YNOVRAMNOVRAMY YY YY YY YFLASHFLASHY YY YY YY YY YY Y 第四节 主存储器组织 存储器与CPUCPU线相连的有地址线、数据线和控制线对存储器进行读/ /写操作:–首先由地址总线给出地址信号,–然后要发出读操 作或写操作的控制信号,–最后在数据总线上进行信息交流根据芯片结构的不同,连接方式可以采用:–位并联法(位扩展法):从字长方向扩展–地址串联法(字扩展法):从字数方向扩展一、 存储器与CPUCPU的连接 芯片数= =计算机字长N /N /芯片存储字长n n1 1、位扩展法(位并联法): 当芯片的容量和主存容量相同,而位数不足时,就要对位数进行扩展。

      方法: 将多片存储芯片的地址端、片选端和读/ /写控制端各自并联在一起,而他们的数据端分别引出,连到存储器不同位的数据总线上 解:①①分析:8K=8192=28K=8192=21313,要1313根地址线,由于要组成8 8位数据线则要求位扩展,需要8 8块8K8K××1 1的存储芯片,由于每个地址选中8 8块芯片都选中,因而CSCS引脚都为低电平(接地)例1 1:用8K8K××1 1的RAMRAM组成8K8K××8 8的存储器 ②②结构图③③结果讨论:由上结构图组成存储器中读写控制线没有画出,主要可以分析地址的范围应为0000H0000H~1FFFH1FFFH 例2 2:用1K×41K×4位芯片构成1K×81K×8位存储器CPUWECSA9A0·········A9A9A0A0D0D1D2D3D4D5D6D7D1D1D2D0D0D3D3D2······CSWEMREQR/W要点:(1 1)芯片的地址线A A、读写控制信号WEWE、片选信号CSCS分别连在一起; (2 2)芯片的数据线D D分别对应于所搭建的存储器的高若干位和低若干位 CPUWECSA9A0·········A9A9A0A0D0D7D0D0D3D3······CSWEMREQR/W~~~ 芯片数= =存储器存储单元数M M/芯片存储单元数m m2、地址串联法(字扩展法): 当芯片字长与主存相同,而容量不足时,就需要用几片存储器芯片组成合起来的存储空间即地址空间进行扩展,称为字扩展。

      方法: 将各芯片的地址线,数据线、读/ /写线分别并联在一起,片选信号单独连接,用来区分各片地址,用高位地址经过译码而产生的输出信号作为各个芯片的片选信号,用低位地址作为各芯片的片内地址 例1 1:用1K×81K×8位芯片构成4K×84K×8位存储器 地址分配关系0102310242047204830713072409500001023102310231023A11A10A9A8A0···0   0    0    0                  0           1     1                 10   1    0    0                 0           1    1                 10   1    0    0                 0           1    1                 11   1    0    0                 0           1    1                 1············片  内  地   址片选 A9A0···CSWE···D7D0~A9A0···CSWE···D7D0~A9A0···CSWE···D7D0~A9A0···CSWE···D7D0~2/4译码器A9A0···D7D0~A11A10CPUR/W 例2 2::用16K16K××8 8位的芯片组成64K64K××8 8位的存储器 解: ① ①分析:每块芯片的地址线,16K=216K=21414,要1414根,总的地址线,64K=264K=21616,要1616根,数据线都为8 8根,所以要16K16K××8 8的芯片为64/16=464/16=4片。

      …………②②结构图 ③③结果讨论: 由上图所示可得出以下结论:地址线A A0 0~A A1313的1414根为4 4块芯片共用,通过A A1414~A A1515和2-42-4译码器可得出四块芯片的地址为:地址A A1515A A1414A A1313A A1212…A A0 0地址范围片号1 100000000000000H0000H000011111111111111111111111111113fffH3fffH2 201010000004000H4000H010111111111111111111111111111117FFFH7FFFH3 310100000008000H8000H10101111111111111111111111111111BFFFHBFFFH4 41111000000C000HC000H11111111111111111111111111111111FFFFHFFFFH (1 1)芯片的数据线D D、读写控制信号WEWE分别连在一起; ; (2 2)存储器地址线A A的低若干位连接各芯片的地址线; ;(3 3)存储器地址线A A的高若干位作用于各芯片的片选 信号CSCS。

      要点: 3、字位扩展法: : 芯片数=(M=(M/m) m) ·· ( N / n ) ( N / n ) M: M:存储器存储单元数 m:m:芯片存储单元数 N:N:计算机字长 n:n:芯片存储字长例1 1:用2K×82K×8位的RAM存储芯片构成8K×16×16位的随机存储器 2K×8 2K×82K×8 2K×82K×8 2K×82K×82K×82/4译码器R/WA10~A0A12A11AAAAAAAAR/WAR/WACSCSD15~D0D15~D8D7~D0D15~D8D15~D8D15~D8D7~D0D7~D0D7~D0CPU 例2:某8位机采用单总线结构,地址总线16根(A15~A0, ,A0为低位),双向数据总线8根(D7~D0,,控制总线中与主存有关的有MREQ(允许访存,低电平有效),R/W(高电平为读命令,低电平为写命令)     主存地址空间分配如下:               0~8191为系统程序区,由只读存储器芯片组成;               8192~32767为用户程序区;            最后(最大地址)2K地址空间为系统程序工作区,    上述地址为十进制数,按字节编址,现有如下存储器芯片:     ROM:8K×8位(控制端仅有CS)     RAM(静态):16K×1位,2K×8位,4K×8位,8K×8位     请从上述芯片中选择适当芯片设计该计算机存储器,画出主存储器逻辑框图,注意画出选片逻辑(可选用门电路及3:8译码器74LS138)与CPU的连接,说明选哪些存储器芯片,选多少? 解: :主存地址空间分配如下: : 根据给定条件, ,选用: :ROM:8K×8ROM:8K×8位芯片1 1片RAM:8K×8RAM:8K×8位芯片3 3片, 2K×8, 2K×8位芯片1 1片3:83:8译码器仅用Y Y0 0 Y Y1 1Y Y2 2Y Y3 3和Y Y7 7的输出端, ,且对最后的2K×82K×8位选片还需加门电路译码 2K(RAM) 2K(RAM) 30K( 30K(空) ) 24K(RAM) 24K(RAM) 8K(ROM) 8K(ROM)0 08191819181928192327673276763487634876553565535 A A15 15 A A14 14 A A13 13 A A12 12 A A1111A A10 10 A A9 9 ·· ·· ·· ·· ··A A0 00 0 0 × × × × 0 0 0 × × × × ·· ·· ·· ·· × ×0 0 1 × × × × 0 0 1 × × × × ·· ·· ·· ·· × ×0 1 0 × × × × 0 1 0 × × × × ·· ·· ·· ·· × ×0 1 1 × × × × 0 1 1 × × × × ·· ·· ·· ·· × ×·· ·· ·· ·· ···· ·· ·· ·· ·· ···· 1 1 1 1 1 1 1 1 1 1 ×× × × ·· ·· ·· ·· × × 2K(RAM) 2K(RAM) 30K ( 30K (空) ) 8K(ROM) 8K(ROM) 8K(RAM) 8K(RAM) 8K(RAM) 8K(RAM) 8K(RAM) 8K(RAM) ROM8KBD0D7A0A12RAM8KBD0D7A0A12RAM8KBD0D7A0A12RAM 8KBD0D7A0A12RAM  2KBD0D7A0A1074LS138CSCSCSCSCSD0D7R/WA0A10A11A12A13A14A15ABCCPUMREQY0Y1Y2Y3Y4Y5Y6Y7R/W································· 1 1.CacheCache的功能与基本原理1)Cache1)Cache的功能二、高速缓冲存储器•CacheCache是指位于CPUCPU和主存之间的一个高速小容量的存储器,一般由SRAMSRAM构成。

      •CacheCache功能:用于弥补CPUCPU和主存之间的速度差异,提高CPUCPU访问主存的平均速度•设置CacheCache的理论基础,是程序访问的局部性原理•CacheCache的内容是主存部分内容的副本,CacheCache的功能均由硬件实现,对程序员是透明的 程序访问的局部性原理局部性有两种:(1 1)时间局部性(temporal localitytemporal locality)如果一项数据被引用,很可能不久它会被再次使用,程序的循环和堆栈等操作中的信息就是典型的例子2 2)空间局部性(spatial localityspatial locality)如果一项数据被引用,那么与它相连的数据可能很快也会被引用,以顺序执行为主的程序和数据(如数组)就是典型例子 •CPUCPU与CacheCache之间的数据交换是以字为单位,而CacheCache与主存之间的数据交换是以块为单位一个块由若干定长字组成的2)Cache2)Cache的基本原理•当CPUCPU读取主存中一个字时,便发出此字的内存地址到CacheCache和主存•此时CacheCache控制逻辑依据地址判断此字当前是否在 CacheCache中:若在( (称为命中),此字立即传送给CPUCPU;若不在( (称为不命中),则用主存读周期把此字从主存读出送到CPUCPU,与此同时,把含有这个字的整个数据块从主存读出送到CacheCache中。

      由始终管理CacheCache使用情况的硬件逻辑电路来实现LRULRU替换算法 增加CacheCache的目的,就是在性能上使主存的平均读出时间尽可能接近CacheCache的读出时间因此,CacheCache的命中率应接近于1 1由于程序访问的局部性,这是可能的 在一个程序执行期间,设NcNc表示CacheCache完成存取的总次数,NmNm表示主存完成存取的总次数,h h定义为命中率,则有: :3)Cache3)Cache的命中率 LRU管理逻辑相联存储图表快存M1地址总线CAM数据总线主存M M2 2 检索寄存器屏蔽寄存器比较寄存器存储体代码寄存器译码选择电路符合寄存器m···21···············相联存储器 1001 X X 00比较寄存器代码寄存器译码选择电路符合寄存器0110···············0101110010010010相联存储器 OD输出数据M符合WE写启动选择S(地址)输入启动IEID输入数据一位相联存储元电路IE=1时,M=QD+QD=Q     D一致时M=1,否则M=0+相联存储器 W0.0W0.1W1.0W1.1从选择线路来的地址送到选择线路的符合信号从屏蔽寄存器来IE0IE1ID0ID1输入数据S0S1WEOD0OD1去输出寄存器M0M1字0字12×2位相联存储器阵列 2 2.Cache Cache 存储器的地址映像为了把信息放到CacheCache存储器中,必须应用某种函数把主存地址映象到CacheCache中定位,称为地址映象,这些函数通常称做映象函数。

      在信息按这种映象关系装入CacheCache中,执行程序时,应将主存地址变换成CacheCache地址,这个变换过程叫做地址变换地址的映象与变换是密切相关的地址映象方式有直接映象、全相联映象直接映象、全相联映象和组相联映象相联映象 设主存空间被分为2 2m m个页(页号为0 0、1 1、2 2、……、i i、……2 2m m- -1 1), ,每页的大小为2 2b b个字;CacheCache存储空间被分为2 2c c个页(页号为0 0、1 1、……、j j、……、2 2c c-1-1), ,每页的大小也为2 2b b个字CacheCacheCacheCache地址地址c+bc+bc+bc+b位位主存地址主存地址m+bm+bm+bm+b位位 主存主存- Cache地址变换 主存地址页内地址页号Cache数据或指令             CPU页内地址页号  Cache替换部件Cache  地址CPU替换块装入块不命中命中 1 1)直接映象法 主存的页以2 2c c为模映象到CacheCache的固定位置上由映象函数还可以看出,主存页号的低C C位(即j mod 2j mod 2c c)正好是它要装入的CacheCache的页号。

      直接映象函数为 i=ji=ji=ji=j  mod 2mod 2mod 2mod 2c c c c ,其中i i是CacheCache页号,j j是主存页号t t位标志用来区别记入的是主存中的哪一页,在一个新页送入CacheCache时,把主存地址的高t t位存入CacheCache的标志字段中 页面号0标记页面号1……页面号2c-1标记标记页面号0页面号1……页面号2c-1页面号2c页面号2c+1……页面号2c+1-1页面号2c+1……页面号2m-1主存页面标记Cache页面地址页内地址m位t位c位b位t位Cache主存储器主存地址 页面标记按地址访问有效位页面号CacheCache页面地址页内地址页内地址主存地址CacheCache地址相等页面标记相等比较不等访问CacheCache若比较相等,且有效位为“1 1”,则用CacheCache地址去访问CacheCache,读出的数据送往CPUCPUt t位 c c位b b位m m位 直接映象的优点是实现简单,其缺点是不够灵活 出现CacheCache中还有很多空页,也必须对指定的CacheCache页进行替换。

      主存和CacheCache的读出 CPU CPU访问时,首先根据访存地址中的C C位( (页号) ),直接查出该主存对应的CacheCache页号找到对应的CacheCache页后,检查它的标记和主存的高t t位是否一致若一致,访问“命中”,再根据页内地址(b(b位) ),从CacheCache中读数据否则“不命中” ,CPUCPU直接从主存读出 例: :考虑一个具有16KB16KB直接相连CacheCache的3232位微处理 器, ,假定该CacheCache的页面为4 4个3232位的字: :(1)(1)画出CacheCache的地址映像方式, ,指出主存地址的不同 字段的作用2)(2)主存地址为ABCDE8F8HABCDE8F8H的单元在CacheCache中的什么 位置, ,指出主存页面标记、页面号和页内地址值. . 页面标记Cache页面号页内字地址字节号页面号页内字地址字节号比较0102318位10位2位2位2位2位10位不相等页面失效主存页面标志2位CacheCache地址主存地址地址映像方式         ABCDE8F8 H                 =1010 1011 1100 1101 11 10 1000 1111  10 00页面标记=   1010 1011 1100 1011 11                                      Cache页号=  10 1000 1111                                                                 页内字地址= 10                                                                     字节地址  = 00 2 2)全相联映象法对应关系: :主存中任一页面可装入CacheCache内任一页面的位置。

       采用存放于相联存储器中的目录表来实现地址映象;以加快“主存—CacheCache”地址变换速度第2m-1页 … …第1页第0页第0页 …第1页第0页CacheCache主存全相联映象法 主存—CacheCache地址变换过程 让主存页号与目录表中各项的页号作相联比较;如有相同的,则将对应行的CacheCache页号取出,拼接上页内地址就形成了CacheCache地址 相联表中无相同的页号,表示主存页未装入CacheCache,失靶,去主存读 优点是页面冲突概率最低;但查表速度难以提高几乎没有单纯采用全相联映象法 页号 页内地址主存地址CacheCache地址相联比较失靶去主存读命中页号 页内地址全相联映象地址变换........................ 让主存页号与目录表中各项的页号作相联比较;如有相同的,则将对应行的CacheCache页号取出,拼接上页内地址就形成了CacheCache地址 相联表中无相同的页号,表示主存页未装入CacheCache,失靶,去主存读 3 3)组相联映象法 将CacheCache空间分成若干组,每组包含若干页,组间采用直接映象,组内各页则是全相联映象。

      全相联映象法和直接映象法结合起来,就产生了组相联映象法组相联映像方式的地址变换过程如下图所示 区号E E,组内页号B B组内页号b bC Cb b个块组内页号B B组内页号b b页内地址W W页内地址w w主存地址CacheCache地址区号E E相联比较块表组号G G组号g g相等不等 3.3.替换策略 Cache Cache工作原理要求它尽量保存最新数据,必然要产生替换 对直接映射的CacheCache来说,只要把此特定位置上的原主存块换出CacheCache即可 对全相联和组相联CacheCache来说, 就要从允许存放新主存块的若干特定行中选取一行换出常用替换策略常用替换策略–先进先出(FIFOFIFO)策略–最近最少使用(LRULRU)策略 •FIFO FIFO 算法选择最早装入CacheCache的页面作为被替换的页 •占用空间表的每一页都与一个“装入顺序数”相联系,每当一个页送入Cache Cache 或从CacheCache重取走,都将更新“装入顺序数”•通过检查这些数,决定最先进入的页先进先出(FIFOFIFO)这种算法优点是容易实现,缺点是经常使用的页,如一个包含程序循环的页,也可能由于它是最早的页而被替换掉。

      • LRULRU算法将近期内长久未被访问过的行换出•每行也设置一个计数器,CacheCache每命中一次,命中行计数器清零,其它各行计数器增1 1•当需要替换时,将计数值最大的行换出最近最少使用(LRU)(LRU)算法这种算法保护了刚拷贝到Cache中的新数据行,有较高的命中率  * *优化替换算法(OPTOPT) 选择将来最少使用访问的CacheCache页为调出页 是一种理想算法,命中率最高 程序需运行两次,第一次分析地址流,第二次才真正运行程序 下面通过一个程序和的运行情况,来说明各种算法的工作过程及性能比较假定该程序有5 5页信息块,CacheCache空间为3 3页,该程序的页地址流为:3 3种算法工作过程和命中情况,如图所示时间 t ti it t1 1t t2 2t t3 3t t4 4t t5 5t t6 6t t7 7t t8 8t t9 9t t1010t t1111t t1212使用页P Pi iP P2 2P P3 3P P2 2P P1 1P P5 5P P2 2P P4 4P P5 5P P3 3P P2 2P P5 5P P2 2 命中率:25%命中率:41.7%命中率:50% 4.CacheCache—主存内容的一致性问题 CPU CPU执行写操作时,要写的内容恰在CacheCache中,则CacheCache内容被更改,但该单元对应的主存内容尚没有改变,这就产生了CacheCache和主存内容不一致的情况。

      解决问题的关键是选择更新主存内容的算法; 采用两种算法 处理机进行写操作时,利用“CacheCache—主存”层次中存在于处理机和主存之间的通路将信息也写回主存2 2、写直达法又称存直达法, 在页替换时,就不必将被替换的CacheCache页内容写回,可以直接调入新页 1 1、‘写回法’(Write backWrite back) 处理机执行写操作时,信息只写入CacheCache,当CacheCache页被替换时,将该页内容写回主存后,再调入新页  写直达则在每次写入时,都要附加一个比写CacheCache长得多的写主存时间;写直达法的开销大一些,但其一致性保持要好一些◆ ◆ 采用两种算法比较 写回法的开销是在页替换时的回写时间; 主存地址空间4GB4GB被分成2 21717页,页的大小为8K8K字(3232位)Cache (Cache (有数据SRAMSRAM和目录SRAMSRAM两块组成):):数据SRAMSRAM:8K8K字(3232位),可分成10241024个段,每段8 8个字,每个字为一行目录SRAMSRAM:存放目录表,对应数据SRAMSRAM的每一段的一个条目,由标记位(1717位,指主存的页面号,是2 21717页中的一个页号)、标记有效位(1 1位)和行有效位(8 8位)组成。

      地址总线分成三部分:1717位标记位(A A3131——A A1515),1010位段地址字段(A A1414——A A5 5)3 3位行选择位(A A4 4——A A2 2),总线的低1313位(A A1414——A A2 2)还作为CacheCache地址,直接选中数据SRAMSRAM中8K8K字中的一行 组间直接映象:主存中各页中第0 0段只能对应数据SRAMSRAM中第0 0段……组内页面全相联:每段8 8行中可采用全相联,用8 8位行有效位和一位标记有效位标注 3.4.3 3.4.3 多体交叉存储器 出发点:能够实现同时从存储器取出n n条指令特点:通过改进主存的组织方式,在不改变存储器存取周期的情况下,提高存储器的带宽结构特点:多体交叉存储器由M M个的存储体(或称存储模块)组成,每个存储体有相同的容量和存取速度,又有各自独立的地址寄存器、地址译码器、读写电路和驱动电路 每个模块各自以等同的方式与CPUCPU传送信息CPUCPU同时访问四个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递这是一种并行存储器结构多体交叉存储器的基本结构 •编址方法:交叉编址,即任何两个相邻地址的物理单元不属于同一个存储体,一般在相邻的存储体中;同一个存储体内的地址都是不连续的。

      •主要有两种:–顺序方式–交叉方式地址交叉法 •某个模块进行存取时,其他模块不工作;某一模块出现故障时,其他模块可以照常工作;通过增添模块来扩充存储器容量比较方便•但各模块串行工作,存储器的带宽受到了限制顺序方式: •地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字•连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的交叉方式:•对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽 多体交叉存储器•访问:CPUCPU同时送出的M M个地址,只要他们分属于M M个存储体,访问就不会冲突;由存储器控制部件控制它们分时使用数据总线进行信息传递•适合采用流水线方式并行存取,虽然每个存储体的存储周期没变,但是当CPUCPU连续访问一个字块时,可以大大提高存储器的带宽 512K×8512K×8位偶地址存储体512K×8512K×8位奇地址存储体FFFFFHFFFFFH0000500005H0000300003H0000100001H` `FFFFEHFFFFEH0000400004H0000200002H0000000000H` `15158 87 70 0 8086 8086存储器交叉编址结构示意图 例: 例1:1:有一个具有8 8个存储体的低位多体交叉存储器中, , 如果处理器的访存地址为以下八进制值, ,问该存储 器比单体存储器的平均访问速度提高多少? ? ( (忽略初启时的延迟) )(1)1001(1)10018 8、 100210028 8、 100310038 8、············110011008 8(2) 1002(2) 10028 8、100410048 8、100610068 8、············ 1200 12008 8(3) 1003(3) 10038 8、100610068 8、101110118 8、············ 1300 13008 88 , 4 , 8 例2:2:设存储器容量为3232字,字长6464位,模块数m=4m=4,分别用顺序方式和交叉方式进行组织。

      存储周期T=200nsT=200ns,数据总线宽度为6464位,总线传送周期τ=50nsτ=50ns问顺序存储器和交叉存储器的带宽各是多少? ? 【解】 顺序存储器和交叉存储器连续读出m=4m=4个字的信息总量都是:q=64q=64位×4=256×4=256位 顺序存储器和交叉存储器连续读出4 4个字所需的时间分别是:   t2=mT=4×200ns=800ns=8×10t2=mT=4×200ns=800ns=8×10-7-7s;s;   t1=T+(m-1)τ=200ns+3t1=T+(m-1)τ=200ns+3×50ns=350ns=3.5×100ns=350ns=3.5×10- -7 7s s顺序存储器和交叉存储器的带宽分别是:  W2=q/t2=256÷(8×10W2=q/t2=256÷(8×10-7-7)=32×10)=32×107 7[位/s/s]; ; W1=q/t1=256÷(3.5×10 W1=q/t1=256÷(3.5×10-7-7)=73×10)=73×107 7[位/s/s]   虚拟存储器 1 1  虚拟存储器的基本概念2 2  页式虚拟存储器3 3  段式虚拟存储器4 4  段页式虚拟存储器5 5  替换算法6 6  虚拟存储器实例 一、虚拟存储器的基本概念 1 1、什么叫虚拟存储器(Virtual MemoryVirtual Memory)虚拟存储器是一个容量非常大的存储器的逻辑模虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。

      型,不是任何实际的物理存储器虚拟存储器是建立在主存虚拟存储器是建立在主存- - - -辅存物理结构基础之辅存物理结构基础之上,由附加硬件装置以及操作系统存储管理软件上,由附加硬件装置以及操作系统存储管理软件组成的一种存储体系,它把主存和辅存的地址空组成的一种存储体系,它把主存和辅存的地址空间统一编址,形成一个庞大的存储空间间统一编址,形成一个庞大的存储空间 实地址:实际的主存储器单元的地址,即主存地址,或叫物实地址:实际的主存储器单元的地址,即主存地址,或叫物理地址 虚拟存储器的辅存部分也能让用户象内存一样使用,用户编虚拟存储器的辅存部分也能让用户象内存一样使用,用户编程时指令地址允许涉及到辅存的空间范围,这种指令地址称程时指令地址允许涉及到辅存的空间范围,这种指令地址称为为“ “虚地址虚地址” ”(即虚拟地址),或叫(即虚拟地址),或叫“ “逻辑地址逻辑地址” ” 虚拟存储器的用户程序以虚地址编址并存放在辅存里,程序虚拟存储器的用户程序以虚地址编址并存放在辅存里,程序运行时运行时CPUCPUCPUCPU以虚地址访问主存,由辅助硬件找出虚地址和物理以虚地址访问主存,由辅助硬件找出虚地址和物理地址的对应关系。

      地址的对应关系 2 2、虚地址和实地址 ①①①①把程序中最近常用的部分驻留在高速的存储器中把程序中最近常用的部分驻留在高速的存储器中②②②②一旦这部分变得不常用了,把它们送回到低速的存储一旦这部分变得不常用了,把它们送回到低速的存储器中③③③③这种换入换出是由硬件或操作系统完成的,对用户是这种换入换出是由硬件或操作系统完成的,对用户是透明的④④④④力图使存储系统的性能接近高速存储器,价格接近低力图使存储系统的性能接近高速存储器,价格接近低速存储器速存储器它们遵循的原则是: 主存- -外存层次和Cache-Cache-主存层次用的地址变换映射方法和替换策略是相同的,都基于程序局部性原理 3 3、虚拟存储器和主存-Cache-Cache存储器的比较: 相同处: ① ①化为许多信息块 ② ②从慢存储器传递快存储器调度 ③ ③有替换策略 ④ ④映射关系和变换地址 3 3、虚拟存储器和主存-Cache-Cache存储器的比较:不同处:①①作用不同:速度( (主-C)-C)和容量( (虚拟) )②②信息块长度不同③③主-C-C速度比为5~10;1,5~10;1,而主- -辅速度为 1;100~10001;100~1000)④④CPUCPU读取的时间相差较大⑤⑤存取信息、地址变换和替换策略(主-C-C用硬件,虚拟用操作系统的软件加适当的硬件) 二、虚拟存储器的基本管理方法段是按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。

      虚拟存储器的管理方式有段式、页式或段页式三种页是主存物理空间中划分出来的等长的固定区域段页式管理采用分段和分页结合的方法 1 1、页式虚拟存储器 虚存地址分为两个字段: 高位字段为逻辑页号, 低位字段为页内地址 在页式虚拟存储器系统中,把虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页 实存地址也分两个字段: 高位字段为物理页号,低位字段为页内地址 两者的页面大小一样,页内地址是相等的逻辑页号页内地址物理页号页内地址 页式管理的地址变换 一个虚存逻辑页号有一个表项,表项内容包含该逻辑页所在的主存页面地址(物理页号)、装入位、替换控制位及其它保护位等; 虚存地址到主存实地址的变换是由放在主存中的页表来实现 用主存页面地址作为实(主)存地址的高字段,与虚存地址的页内地址字段相拼接,就产生了完整的实存地址,用来访问主存 装入位为““1 1””,表示该逻辑页已从外存调入内存;反之, 则表示对应的逻辑页未调入内存从辅存中读出新的页到主存中来 页表基址寄存器页表基地址逻辑页号   页内地址虚存地址装入位 主存页号 ┆ ┆物理页号 页内地址实存地址 页表(在主存中)页式虚拟存储器地址变换 页表基址寄存器页表基地址逻辑页号 页内地址00000010 1010110虚存地址装入位 主存页号1 101010 *****1 110101 001010 ***** ┆ ┆11010 1010110实存地址物理页号 页内地址 页表(在主存中)页式虚拟存储器地址变换 快表由硬件组成,比页表小得多,只是慢表的小副本。

      查表时,由逻辑页号同时去查快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址寄存器并使慢表的查找作废; 为了避免页表已保存或已调入主存储器时对主存访问次数的增多,把页表的最活跃部分存放在高速存储器中组成快表经快表和慢表转换的页式虚拟存储管理快表和慢表转换的页式虚拟存储管理 如果在快表中查不到,要花费一个访主存时间查慢表,从中查到物理页号送入实存地址寄存器,并将此逻辑页号和对应的物理页号送入快表,替换快表中应该移掉的内容 逻辑页号逻辑页号 页内地址页内地址 虚存地址虚存地址(( 按地址访问)按地址访问) 物理页号物理页号 页内地址页内地址快表快表(相联存储器)(相联存储器) 实存地址实存地址相联比较相联比较 (按内容访问)(按内容访问) 逻辑页号逻辑页号 物理页号物理页号 ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ 物理页号物理页号 控制位控制位 ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ ┄┄(快表中查不到)(快表中查不到) 慢表(在主存中)慢表(在主存中)经快表和慢表进行地址变换经快表和慢表进行地址变换 段是利用系统的模块化性质,按照程序的逻辑结构划段是利用系统的模块化性质,按照程序的逻辑结构划分成多个相对独立部分分成多个相对独立部分( ( ( (过程、子程序、数据表、阵过程、子程序、数据表、阵列列) ) ) );把主存按段分配的存储管理方式称为段式管理。

      把主存按段分配的存储管理方式称为段式管理 可以把段作为基本信息单位在主存可以把段作为基本信息单位在主存————辅存之间传送辅存之间传送和定位2 2、段式虚拟存储器 段是按照程序的逻辑结构划分,各段的大小因程序段是按照程序的逻辑结构划分,各段的大小因程序而异 用段表来指明各段在主存中的位置;每段都有它的名用段表来指明各段在主存中的位置;每段都有它的名称(用户名或数据结构名或段号)、段起点、段长称(用户名或数据结构名或段号)、段起点、段长等 在访问某段时,如果段内地址值超过段的长度,则在访问某段时,如果段内地址值超过段的长度,则发生地址越界中断发生地址越界中断 虚拟地址由段号和段内地址组成,为了把虚拟地址虚拟地址由段号和段内地址组成,为了把虚拟地址变换成实主存地址,需要一个段表段表也是一个变换成实主存地址,需要一个段表段表也是一个段,可以存在外存中,但一般是驻留在主存中段,可以存在外存中,但一般是驻留在主存中 虚拟地址向实存地址的变换过程 段表基址寄存器 段表基地址 虚存地址 段号 段内地址段号段首址 装入位 段长012n 实存地址 段表(在主存中)段式虚拟存储器地址变换...... ▲ ▲ 通过段表把虚拟地址变换成实存地址 段表格式( (如图所示) ) 程序分段( (逻辑) )段0 (2K)0 (2K) 段1 (5K)1 (5K) 段2 (3K)2 (3K) ┄┄ ┄┄段表( (在主存) )段号段首址 装入位 段长 1200 1 2K 1200 1 2K 3320 1 5K 3320 1 5K **** 0 3K **** 0 3K ┄┄ ┄┄ 8000 1 2K 8000 1 2K ┄┄ ┄┄0 01 12 2┆┆ 实存空间12001200段0 0空 段1 1 段i i┄┄┄┄i i3320332080008000段表示意图 段是按照程序的逻辑结构划分,各段的大小因程序而异。

      如下图:段0 0段1 1段2 2段3 3段4 4程序分段空间(外存)长度1KB1KB2KB2KB3KB3KB1KB1KB2KB2KB段起址装入位段长100010001 11KB1KB0 0612061201 13KB3KB919291921 11KB1KB202420241 12KB2KB段号0 01 12 23 34 4段表(在主存)段0 0段4 4段2 2段3 3主存空间 ▲ 段式与页式管理系统的比较页面的起点和终点地址是固定的页面的起点和终点地址是固定的, , , ,方便造页表方便造页表, , , ,新页调新页调入主存也很容易掌握,比段式空间浪费小入主存也很容易掌握,比段式空间浪费小 由于页不是逻辑上独立的实体,所以处理、保护和共由于页不是逻辑上独立的实体,所以处理、保护和共享都不及段式来得方便享都不及段式来得方便页式虚拟存储管理:页式虚拟存储管理: 由于段的长度各不相同,段的起点和终点不定,给主由于段的长度各不相同,段的起点和终点不定,给主存空间分配带来麻烦,且容易在实存中留下许多空白存空间分配带来麻烦,且容易在实存中留下许多空白的零碎存储空间不好利用,造成浪费。

      的零碎存储空间不好利用,造成浪费▲ 段式与页式管理系统的比较 段的分界与程序的自然分界相对应;段的逻辑独立性段的分界与程序的自然分界相对应;段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序使它易于编译、管理、修改和保护,也便于多道程序共享;共享; 某些类型的段(堆栈、队列)具有动态可变长度,允某些类型的段(堆栈、队列)具有动态可变长度,允许自由调度以便有效利用主存空间许自由调度以便有效利用主存空间段式虚拟存储管理:段式虚拟存储管理: 3 3、段页式虚拟存储器 段页式虚拟存储器是段式虚拟存储器和页式虚拟存储段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合器的结合 把程序按逻辑单位分段以后,再把每段分成固定大小把程序按逻辑单位分段以后,再把每段分成固定大小的页程序对主存的调入调出是按页面进行的,按段的页程序对主存的调入调出是按页面进行的,按段实现共享和保护实现共享和保护 它兼有页式和段式的优点缺点是在地址映象过程中它兼有页式和段式的优点缺点是在地址映象过程中需要多次查表需要多次查表 目前,大、中型机一般都采用这种段页式存储管理目前,大、中型机一般都采用这种段页式存储管理方式。

      方式 在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的 段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息 由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息    多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址   虚拟地址格式如下:基号基号 段号段号 页号页号 页内地址页内地址 多道程序:如果有多个用户在机器上独立运行就多道程序:如果有多个用户在机器上独立运行就称为多道程序称为多道程序 若只有一个基址寄存器,基号可以不要,在多道若只有一个基址寄存器,基号可以不要,在多道程序切换时,由操作系统修改基址寄存器的内容程序切换时,由操作系统修改基址寄存器的内容来实现来实现 例:有三道程序(用户标志号为P1P1,P2P2,P3P3),其基址寄存器内容分别为B1B1,B2B2,B3B3,   逻辑地址到物理地址的变换( (如图所示) ) 上述每一张表的每一行都要设置一个有效位;若有效位均为上述每一张表的每一行都要设置一个有效位;若有效位均为““““0 0 0 0””””,访问失败,则发中断请求操作系统建表。

      访问失败,则发中断请求操作系统建表 基址寄存器 B1 B1 B2 B2 B3 B3 基号 段号 页号 页内地址 P3 1 2 b P3 1 2 b B1+0 B1+0 B1+1 B1+1 B1+2 B1+2 B3+1 B3+1 实地址程序P1P1段表┆┆程序P3P3段表 B3+0 B3+0 * *m m物理页号 页内地址8 b8 b程序P3P3、1 1段的页表m+0m+0m+1m+1m+2m+2 ┅ ┅ 5 5 9 9 8 8 ┅ ┅段页式虚拟存储器地址变换段页式虚拟存储器地址变换虚拟地址 例:今假设有三道程序(用户标志号为A A,B B,C C),其基址寄存器内容分别为S SA A,S SB B,S SC C,逻辑地址到物理地址的转移过程见下图在主存中,每道程序都有一张段表,A A程序有4 4段,C C程序有3 3段每段应有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号 解:地址转换过程如下: (1 1)根据基号C C,执行S SC C(基址寄存器内容)加1 1(段号)操作,得到段表相应行地址,其内容为页表的起始地址b b。

      (2 2)执行b b(页表起始地址)+2+2(页号),得到物理页号的地址,其内容即为物理页号1010 (3 3)物理页号与页内地址拼接即得物理地址 C 1 2 dSASBSCABC10 d128710124++基址寄存器程序A段表程序C段表S A+0S B+1S A+2S A+3S C+0S C+1S C+2A+0A+1B+0B+1B+2C+0C+1逻辑地址物理地址基号 段号 页号 页内地址物理页号 四、替换算法 虚拟存储器中的页面替换策略和虚拟存储器中的页面替换策略和CacheCacheCacheCache中的行替换中的行替换策略有很多相似之处,但有三点显著不同:策略有很多相似之处,但有三点显著不同:(1)(1)(1)(1)缺页至少要涉及一次磁盘存取,读取所缺的页,缺页至少要涉及一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比缺页使系统蒙受的损失要比CacheCacheCacheCache未命中大得多未命中大得多2)(2)页面替换是由操作系统软件实现的。

      3)(3)页面替换的选择余地很大,属于一个进程的页面都可替换 虚拟存储器中的替换策略一般采用LRULRU算法:把““近期最少使用的页””替换出去对于将被替换出去的页面是否要进行某些处理? 由于在内存中的每一页在外存中都留有副本,假由于在内存中的每一页在外存中都留有副本,假如该页调入主存后没有被修改,就不必进行处理,如该页调入主存后没有被修改,就不必进行处理,否则就把该页重新写入外存,以保证外存中数据否则就把该页重新写入外存,以保证外存中数据的正确性为此,在页表的每一行应设置一修改的正确性为此,在页表的每一行应设置一修改位 假设主存只有假设主存只有a,b,ca,b,ca,b,ca,b,c三个页框,组成三个页框,组成a a a a进进c c c c出的出的FIFOFIFOFIFOFIFO队列,进程访问页面的序列是队列,进程访问页面的序列是0 0 0 0,,1 1 1 1,,2 2 2 2,,4 4 4 4,,2 2 2 2,,3 3 3 3,,0 0 0 0,,2 2 2 2,,1 1 1 1,,3 3 3 3,,2 2 2 2号若采用号若采用①①①①FIFOFIFOFIFOFIFO算法,算法,②②②②FIFOFIFOFIFOFIFO算算法法+LRU+LRU+LRU+LRU算法,用列表法分别求两种替换策略情况下算法,用列表法分别求两种替换策略情况下的命中率。

      的命中率解解】】求解表格如下所示求解表格如下所示 例:在页式虚拟存储器中,若主存容量为例:在页式虚拟存储器中,若主存容量为16MB16MB16MB16MB,页面,页面容量为容量为4KB4KB4KB4KB,程序地址空间为,程序地址空间为1G1G1G1G,问虚页号有多少位,问虚页号有多少位?页表长度为多少?页内地址有多少位??页表长度为多少?页内地址有多少位? 解:解:由于页面容量为由于页面容量为4KB=24KB=24KB=24KB=212121212B B B B,,程序地址空间程序地址空间=1GB=2=1GB=2=1GB=2=1GB=230303030B B B B,,虚页号字段位数虚页号字段位数=30-12=18=30-12=18=30-12=18=30-12=18,,页表长度页表长度=2=2=2=218181818行,行,页内地址段为页内地址段为12121212位数 例:设主存容量4MB4MB,虚存容量1GB1GB,页面大小为4KB4KB1 1、写出主存地址格式2 2、写出虚拟地址格式3 3、页表长度为多少?解:主存地址格式为:虚拟地址格式为:页表长度为2 21818=256K=256K。

      页号(10位) 页内地址(12位)21 12 11 0 页面号(18位) 页内地址(12位)29                               12  11                            0 3.5 3.5 存储保护和校验技术一、存储保护 1 1.存储区域保护 对对虚虚拟拟存存储储器器的的主主存存系系统统可可采采用用界界限限寄寄存存器器方方式式进进行行保保护护,,由由系系统统特特权权指指令令设设置置上上、、下下界界限限的的值值,,用用户户程程序序是是不不能能越越界界访访问问这这只只能能对对用用户户占占有有连连续续的的主主存存区区域域为为了了能能对对用用户户程程序序是是不不连连续续的的分分布布在在主主存存内内,,可可采采用用页页表表保保护护、、段段表表保保护护和和键键式式保保护护等等方方法来进行存储保护法来进行存储保护 是在未形成主存地址前的保护1 1 1 1)) 页表保护和段表保护页表保护和段表保护 每个程序的段表和页表本身都有自己的保护功能。

      每个程序的段表和页表本身都有自己的保护功能 每个程序的虚页号是固定的,经过虚地址向实地址每个程序的虚页号是固定的,经过虚地址向实地址变换后的实存页号也就固定了那么不论虚地址如变换后的实存页号也就固定了那么不论虚地址如何出错,也只能影响到相对的几个主存页面不会何出错,也只能影响到相对的几个主存页面不会侵犯其他程序空间侵犯其他程序空间段表和页表的保护功能相同,但段表中除包括段表段表和页表的保护功能相同,但段表中除包括段表起点外,还包括段长(如图示可判断越界中断)起点外,还包括段长(如图示可判断越界中断) 段页式保护如下图:段页式保护如下图: 段号段号页号页号页内地址页内地址页表始地址页表始地址装入位装入位段长(页数)段长(页数)页号大页号大??段表段表访问表访问表越界中断越界中断N N N N段长段长Y Y Y Y ((2 2 2 2)) 键保护方式键保护方式基本思想:基本思想: 为为主主存存的的每每一一页页配配上上一一个个键键,,称称为为存存储储键键((相相当当于于一一把把锁锁)),,是是操操作作系系统统赋赋予予的的。

      每每个个用用户户的的主主存存页页面面的的键键都都相相同同为为了了打打开开这这个个锁锁,,必必须须有有钥钥匙匙,,称称为为访访问问键键 ,,访访问问键键赋赋予予给给这这个个用用户户每每道道程程序序,,并并把把它它保保存存在在该该道道程程序序的的状状态态寄寄存存器器中中当当数数据据要要写写入入主主存存时时,,要要比比较较两两键键((访访问问键键和和存存储储键键))是是否否相相符符,,是是则则允允许许访问该页,否则拒绝访问访问该页,否则拒绝访问 例:设主存按2KB2KB分块,每块有一个4 4位的存储键寄存器,有1616种调入主存的活跃的页面,0 0是操作系统访问键,取数键寄存器中1 1不但受存数保护而且受取数保护 A A页B B页C C页D D页E E页主存5 50 07 75 57 7存储器寄存器1 11 10 01 10 0取数键寄存器 ((3 3 3 3)环保护方式)环保护方式 环控例行程序环控例行程序现行环号寄存器现行环号寄存器上行环号寄存器上行环号寄存器 对当前正在执行的程序本身的核心部分或关键部对当前正在执行的程序本身的核心部分或关键部分进行保护分进行保护 在现行程序运行前,由操作系统定好各页的环号,在现行程序运行前,由操作系统定好各页的环号,并放入页表中,然后将该程序的开始环号送入并放入页表中,然后将该程序的开始环号送入CPUCPUCPUCPU的的现行程序寄存器中,并把操作系统为其规定的上限环现行程序寄存器中,并把操作系统为其规定的上限环号也放入相应的寄存器中。

      程序可以跨层访问任何外号也放入相应的寄存器中程序可以跨层访问任何外层(环号大于现行环号)空间,但如果企图向内层层(环号大于现行环号)空间,但如果企图向内层(环号小于现行环号)空间访问,则需由操作系统的(环号小于现行环号)空间访问,则需由操作系统的环控例行程序判断这个向内访问是否合法如果合法,环控例行程序判断这个向内访问是否合法如果合法,则允许访问,否则按出错进入保护处理但肯定现行则允许访问,否则按出错进入保护处理但肯定现行程序不能访问低于上限环号的存储区域当允许现行程序不能访问低于上限环号的存储区域当允许现行程序访问其他层时,相应的要改变现行环号寄存器程序访问其他层时,相应的要改变现行环号寄存器 2. 2. 访问方式保护 逻辑组合含义逻辑组合含义(R+W+ER+W+E)不允许任何访问(R+ER+E). .W W只能写访问R+W+ER+W+E可进行任何访问(R+ER+E). .W W不准写访问(R+WR+W). .E E只能读、写,不可执行R R. .(W+EW+E)只能读访问(R+WR+W). .E E只能执行,不可读、写R R. .(W+EW+E)不准读访问 二、 存储校验技术 具具有有发发现现错错误误或或同同时时能能给给出出错错误误所所在在的的位位置置的的数数据据编码,称为数据校验码。

      编码,称为数据校验码1 1.检错码只只能能检检查查出出错错误误,,奇奇偶偶校校验验码码,,有有奇奇校校验验码码((“ “1 1 1 1” ”的的个数为奇数)和偶校验码(个数为奇数)和偶校验码(“ “1 1 1 1” ”的个数为偶数)的个数为偶数)2 2.纠错码能给出错误所在位置并能自动纠正能给出错误所在位置并能自动纠正1 1)海明校验码 可自动纠正一位或几位的错误 实现原理: 在数据中加入几位校验位,将数据代码的码距比较均匀地拉大,并把数据的每一个二进制位分配在几个奇偶校验组中,某一位出错会引起有关的几个校验位的值发生变化,它不但可以发生出错,还能指出哪一位出错,为自动纠正提供依据讨论一位的纠错的海明码的设计原理和方法, ,可以采用分成多个奇偶校验组,根据每组的位的校验位组成校验出错编码下面一些例子是用偶校验形式 1 1)   校验位的个数 设 有 效 信 息 有 K K位 , 校 验 位 有 R R位 , 组 成 N N位(N=K+RN=K+R)有校验码,把N N位分成R R个奇偶校验小组,R R位信息就构成一个指误字其中有一种状态表示无错,另2 2R R-1-1状态表示错误。

      N N、R R和K K的关系应如下表示: N=K+R≤2N=K+R≤2R R-1-1 例 R=3R=3,则N=K+R≤7N=K+R≤7,因而K≤4K≤4 K12~45~1112~2627~5758~120R234567 2 2)   分组原则在海明校验码中,用P PI I记各组的奇偶校验位,用X X表示有效位P Pi i和X X 中位置的设计方法与分组的原则有关例:设N=11N=11,K=7K=7和R=4R=4,可以设计其位置如下: : 第i i位位号可由校验位位号之和组成,可得到如下表 位号位号1 1 1 12 2 2 23 3 3 34 4 4 45 5 5 56 6 6 67 7 7 78 8 8 89 9 9 91010101011111111P P P Pi i i i占位占位P1P1P1P1P2P2P2P2X X X XP3P3P3P3X X X XX X X XX X X XP4P4P4P4X X X XX X X XX X X X 海明码位号海明码位号占用的校验位号占用的校验位号备注备注1 1 1 11 1 1 11=11=11=11=12 2 2 22 2 2 22=22=22=22=23 3 3 31 1 1 1、、2 2 2 23=1+23=1+23=1+23=1+24 4 4 44 4 4 44=44=44=44=45 5 5 51 1 1 1、、4 4 4 45=1+45=1+45=1+45=1+46 6 6 62 2 2 2、、4 4 4 46=2+46=2+46=2+46=2+47 7 7 71 1 1 1、、2 2 2 2、、4 4 4 47=1+2+47=1+2+47=1+2+47=1+2+48 8 8 88 8 8 88=88=88=88=89 9 9 91 1 1 1、、8 8 8 89=1+89=1+89=1+89=1+8101010102 2 2 2、、8 8 8 810=2+810=2+810=2+810=2+8111111111 1 1 1、、2 2 2 2、、8 8 8 811=1+2+811=1+2+811=1+2+811=1+2+8 由此可得出分组(4 4组,每组一位校验位) 校验位号被校验位位号1 1(P1P1)1 1、3 3、5 5、7 7、9 9、11112 2(P2P2)2 2、3 3、6 6、7 7、1010、11114 4(P3P3)4 4、5 5、6 6、7 78 8(P4P4)8 8、9 9、1010、1111 举例:设有效信息有4位,校验位有3位,组成7位(7= =4+ +3)有校验码,则: : 第i i位位号可由校验位位号之和组成,可得到如下表 位号1234567P1P2B1P3B2B3B4 海明码位号海明码位号占用的校验位号占用的校验位号备注备注1 1 1 11 1 1 11=11=11=11=12 2 2 22 2 2 22=22=22=22=23 3 3 31 1 1 1、、2 2 2 23=1+23=1+23=1+23=1+24 4 4 44 4 4 44=44=44=44=45 5 5 51 1 1 1、、4 4 4 45=1+45=1+45=1+45=1+46 6 6 62 2 2 2、、4 4 4 46=2+46=2+46=2+46=2+47 7 7 71 1 1 1、、2 2 2 2、、4 4 4 47=1+2+47=1+2+47=1+2+47=1+2+4 由此可得出分组(3 3组,每组一位校验位) 校验位号被校验位位号1 1(P P1 1)1 1、3 3、5 5、7 72 2(P P2 2)2 2、3 3、6 6、7 74 4(P P3 3)4 4、5 5、6 6、7 7P P1 1=B=B1 1⊕B⊕B2 2⊕B⊕B4 4P P2 2=B=B1 1⊕B⊕B3 3⊕B⊕B4 4P P3 3=B=B2 2⊕B⊕B3 3⊕B⊕B4 4例:B:B1 1B B2 2B B3 3B B4 4=1011=1011,P P1 1=0=0,P P2 2=1=1,P P3 3=0=0 3 3)编码、查错和纠错的原理G G1 1=P=P1 1⊕B⊕B1 1⊕B⊕B2 2⊕B⊕B4 4G G2 2=P=P2 2⊕B⊕B1 1⊕B⊕B3 3⊕B⊕B4 4G G3 3=P=P3 3⊕B⊕B2 2⊕B⊕B3 3⊕B⊕B4 4 海明码序号1 12 23 34 45 56 67 7指误字无错误出错位含义P P1 1P P2 2B B1 1P P3 3B B2 2B B3 3B B4 41 12 23 34 45 56 67 7第三组   Y YY YY YY YG G3 30 00 00 00 01 11 11 11 1第二组 Y YY Y  Y YY YG G2 20 00 01 11 10 00 01 11 1第一组Y Y Y Y Y Y Y YG G1 10 01 10 01 10 01 10 01 1 3 3)  编码、查错和纠错的原理 例例:B:B:B:B1 1 1 1B B B B1 1B B B B3 3 3 3B B B B4 4 4 4=1011=1011=1011=1011,,P P P P1 1 1 1=0=0=0=0,,P P2 2=1=1=1=1,,P P P P3 3 3 3=0=0=0=0组组成成的的海海明明码码(偶校验)(偶校验)P P P P1 1 1 1P P P P2 2 2 2B B B B1 1 1 1P P P P3 3 3 3B B B B2 2 2 2B B B B3 3 3 3B B B B4 4 4 4=0110011=0110011=0110011=0110011在传送的过程中得到数据为:在传送的过程中得到数据为: P P P P1 1 1 1P P P P2 2 2 2B B B B1 1 1 1P P P P3 3 3 3B B B B2 2 2 2B B B B3 3 3 3B B B B4 4 4 4=0100011=0100011=0100011=0100011则则: : : : G G G G1 1 1 1=P=P=P=P1 1 1 1⊕B⊕B⊕B⊕B1 1 1 1⊕B⊕B⊕B⊕B2 2 2 2⊕B⊕B⊕B⊕B4 4 4 4=1=1=1=1 G G G G2 2 2 2=P=P=P=P2 2 2 2⊕B⊕B⊕B⊕B1 1 1 1⊕B⊕B⊕B⊕B3 3 3 3⊕B⊕B⊕B⊕B4 4 4 4=1=1=1=1 G G G G3 3 3 3=P=P=P=P3 3 3 3⊕B⊕B⊕B⊕B2 2 2 2⊕B⊕B⊕B⊕B3 3 3 3⊕B⊕B⊕B⊕B4 4 4 4=0 =0 =0 =0 可可得得出出G G G G1 1 1 1G G G G2 2 2 2G G G G3 3 3 3=011=011=011=011是是P P P P1 1 1 1P P P P2 2 2 2B B B B1 1 1 1P P P P3 3 3 3B B B B2 2 2 2B B B B3 3 3 3B B B B4 4 4 4中中第第3 3 3 3位位出出错错,,即即B B B B1 1 1 1。

      只将只将B B B B1 1 1 1取反就可取反就可 查错、纠错后的代码查错、纠错前的代码74LS13874LS138A AB BC CY Y0 0Y Y1 1Y Y2 2Y Y3 3Y Y4 4Y Y5 5Y Y6 6Y Y7 7P P1 1P P2 2P P3 3B B1 1B B2 2B B3 3B B4 4G G2 2G G1 1G G3 3=1=1=1=1=1=1=1=1=1=1=1=1=1=1P P1 1P P2 2P P3 3B B1 1B B2 2B B3 3B B4 4 ((2 2 2 2)循环码()循环码(CRCCRCCRCCRC))是是一一种种建建立立在在模模2 2 2 2运运算算的的编编码码规规律律的的校校验验码码,,它它可可以以通通过过模模2 2 2 2运运算算来来建建立立有有效效信信息息和和校校验验位位之之间间的的约约定定关关系,即要求系,即要求N=K+RN=K+RN=K+RN=K+R位的某数能被某一约定的除数除尽位的某数能被某一约定的除数除尽 设设待待编编码码的的有有效效信信息息以以多多项项式式M(x)M(x)M(x)M(x)表表示示,,用用约约定定的一个多项式的一个多项式G(x)G(x)G(x)G(x)去除,可用以下式子表示:去除,可用以下式子表示: M(x) =Q(x)G(x)+R(x) M(x) =Q(x)G(x)+R(x) M(x) =Q(x)G(x)+R(x) M(x) =Q(x)G(x)+R(x) M(x) M(x) M(x) M(x)--R(x)=Q(x)G (x) R(x)=Q(x)G (x) R(x)=Q(x)G (x) R(x)=Q(x)G (x) 因因而而可可将将M(x)M(x)M(x)M(x)--R(x)R(x)R(x)R(x)作作为为编编好好的的码码送送目目标标部部件件,,若若在在目目标标部部件件中中能能除除约约定定的的G(x)G(x)G(x)G(x)余余数数为为0 0 0 0,,表表明明数数据据传传送送正确。

      若不是表明有错误,再进一步确定哪一位错若不是表明有错误,再进一步确定哪一位错 例例::对对4 4 4 4位位有有效效信信息息((1100110011001100))循循环环校校验验码码,,选选择择的的生生成成多项式多项式G(x)=1011G(x)=1011G(x)=1011G(x)=1011;;解:解: 1)M(x)=X1)M(x)=X1)M(x)=X1)M(x)=X3 3 3 3+X+X+X+X2 2 2 2=1100=1100=1100=1100 2) 2) 2) 2)左移左移R R R R位:位:M(x)M(x)M(x)M(x)····X X X X3 3 3 3=X=X=X=X6 6 6 6+X+X+X+X5 5 5 5=1100000=1100000=1100000=1100000((R=3R=3R=3R=3)) 3)3)3)3)用用R+1R+1R+1R+1位的位的G (x)G (x)G (x)G (x)对对M (x) XM (x) XM (x) XM (x) XR R R R作模作模2 2 2 2运算运算 G(x)=XG(x)=XG(x)=XG(x)=X3 3 3 3+X+1=1011 +X+1=1011 +X+1=1011 +X+1=1011 M(x) M(x) M(x) M(x)····X X X X3 3 3 3/G(x)=1100000/1011=1110+010/1011/G(x)=1100000/1011=1110+010/1011/G(x)=1100000/1011=1110+010/1011/G(x)=1100000/1011=1110+010/1011 4) 4) 4) 4)将左移将左移R R R R位后的待编有效信息与余数作模位后的待编有效信息与余数作模2 2 2 2加,加, 循环码为:循环码为: 1100000+010=11000101100000+010=11000101100000+010=11000101100000+010=1100010(模(模2 2 2 2加),(加),(7 7 7 7,,4 4 4 4);); 5)5)译码与纠错若接收部件所接的数据去除G G (x)(x)无余数时,表示无错,有错时,错在哪一位,可由余数来表示。

      如下表: N1N1N2N2N3N3N4N4N5N5N6N6N7N7余数出错位正确1 11 10 00 00 01 10 00 00 00 0无  错误1 11 10 00 00 01 11 10 00 01 17 71 11 10 00 00 00 00 00 01 10 06 61 11 10 00 01 11 10 01 10 00 05 51 11 10 01 10 01 10 00 01 11 14 41 11 11 10 00 01 10 01 11 10 03 31 10 00 00 00 01 10 01 11 11 12 20 01 10 00 00 01 10 01 10 01 11 1 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.