1、第四章 存储器,第3讲,存储器概述 分类 层次结构 主存储器 概述 半导体存储芯片 静态随机存储器 动态随机存储器 只读存储器 存储器与CPU的连接 存储器的校验 提高访存速度的措施,主要内容,高位字节 地址为字地址,低位字节 地址为字地址,设地址线 24 根,按 字节 寻址,按 字 寻址,若字长为 16 位,按 字 寻址,若字长为 32 位,主存中存储单元地址的分配,224 = 16 M,8 M,4 M,通常计算机系统既可按字寻址,也可按字节寻址 此时,地址编号按字节编号,存储器容量,16M字节,8M字 16M字节,4M字 16M字节,CPU与存储芯片连接设计4步骤 根据十六进制地址范围写出
2、二进制地址码,并确定其容量; 根据地址范围以及该范围在计算机系统中的作用确定芯片的数量及类型; 分配CPU地址线(CPU低位与存储芯片地址相连,高位和访存信号共同产生片选信号); 确定片选信号,74138译码器,CPU芯片引脚图,根据要求先写出16进制代码,再转换成对应的二进制地址码,或直接写成二进制代码。,(2) 确定芯片的数量及类型,(3) 分配地址线,(4) 确定片选信号,1片 4K 8位 ROM 2片 4K 8位 RAM,A11 A0 接 ROM 和 RAM 的地址线,解:,0000H 0FFFH 系统程序区,1000H 2FFFH 用户程序区,或 1片 4K 8位 ROM 1片 8K
3、 8位 RAM,例 2 CPU 与存储器的连接图,用 138 译码器及其他门电路(门电路自定)画出 CPU和 2764 的连接图。要求地址为 F0000HFFFFFH , 并 写出每片 2764 的地址范围。,(1) 写出对应的二进制地址码,(2) 确定芯片的数量及类型,(3) 分配地址线,(4) 确定片选信号,8片 8K 8位 EPROM,A12 A0 接 EPROM的地址线,F0000H-FFFFFH 容量64K,IO/M控制译码器工作,RD对应OE,WE对应PGM,A13 A15 译码器输入端和高位地址一起片选,七、存储器的校验,编码的纠错 、检错能力与编码的最小距离有关,L 编码的最小
4、距离,D 检测错误的位数,C 纠正错误的位数,汉明码是具有一位纠错能力的编码,1 . 编码的最小距离,任意两组合法代码之间 二进制位数 的 最少差异,L = 3,最多纠错 1位,最多检错 2位,汉明码的组成需增添 ?位检测位,检测位的位置 ?,检测位的取值 ?,2k n + k + 1,组成汉明码的三要素,2 . 汉明码,2i-1 ( i = 1,2, , k ),(1)汉明码的组成,各检测位的取值与该位所在的检测“小组” 中各位数值,以及校验方式有关,各检测位 Ci 所承担的检测小组为,gi 小组独占第 2i1 位,gi 和 gj 小组共同占第 2i1 + 2j1 位,gi、gj 和 gl
5、小组共同占第 2i1 + 2j1 + 2l1 位,奇校验 各检测位的值使各自对应监测小组中为1的位数为奇数; 如汉明码为7位,则检测位C1应使1、3、5、7位中的1的个数为奇数,C2则应使2、3、6、7位中1的个数为奇数,C4则应使4、5、6、7位中1的个数为奇数; 偶校验 各检测位的值使各自对应监测小组中为1的位数为偶数;,奇偶校验,例1,求 0101 按 “偶校验” 配置的汉明码,解:, n = 4,根据 2k n + k + 1,得 k = 3,汉明码排序如下:,C1 C2 C4,0, 0101 的汉明码为0100101,1,0,得各检测位位置20 21 22,由 2i-1 ( i =
6、1,2, , k ),求 0011按“奇校验”配置 的汉明码,C1 C2 C4,0 1 1,解:, n = 4 根据 2k n + k + 1,取 k = 3, 0011 的汉明码为 0101011,例2,按配偶原则配置 1011 的汉明码,C1 C2 C4,0 1 0,解:, n = 4 根据 2k n + k + 1,取 k = 3, 0011 的汉明码为 0110011,练习1,(2) 汉明码的纠错过程,形成新的检测位 Pi ,,如增添 3 位 (k = 3),,新的检测位为 P4 P2 P1 。,以 k = 3 为例,Pi 的取值为,对于按 “偶校验” 配置的汉明码,不出错时 P1=
7、0,P2 = 0,P4 = 0,C1,C2,C4,其位数与增添的检测位有关,,无错,有错,有错, P4P2P1 = 110,第 6 位出错,可纠正为 0100101, 故要求传送的信息为 0101。,纠错过程如下,例3,解:,练习2, P4 P2 P1 = 100,第 4 位错,可不纠,汉明码形成过程 首先根据2k n + k + 1,求出需增加的检测位位数k; 再根据2i-1 ( i = 1,2, , k )确定Ci的位置; 然后根据奇偶原则配置Ci各位的值,注意:按奇配置与偶配置所求得的Ci值正好相反; 纠错时,新的检测位Pi的取值与奇偶配置原则是相对应的; 对于偶配置,不出错时Pi的取值
8、为0;而对于奇配置,不出错时Pi的值为1;,Cyclic Redundancy Check,CRC 基于模2运算而建立编码规则的校验码,是在k位信息码之后拼接r位校验码; 应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错; CRC码可以发现并纠正信息存储或传送过程中连续出现的多位错误 。,3. 循环冗余校验码,(1)模2运算 以按位模2相加为基础的四则运算,不考虑进位和借位; 模2加减 即 00=0, 01=1,10=1,11=0; 按位加,可用异或逻辑实现;两个相同的数据的模2和为0;模2加与模2减的结果相同; 模2乘 按模2加求部分积之
9、和. 例如:,0 0 0 0,1 1 1 0,1 1 1 0,模2除 按模2减求部分余数,每求一位商应使部分余数减少一位; 上商的原则 当部分余数的首位为1时,商取1; 当部分余数的首位为0时,商取0。 当部分的余数的位数小于除数的位数时,该余数即为最后余数。 例:被除数101101,除数1101,商?余数? 商 110,余数0011,(2) CRC码的编码方法 在纠错编码代数中,把以二进制数字表示的一个数据系列看成一个多项式。 如,可将待编码的k位有效信息位组表达为多项式M(x) M(x)=Ck-1Xk-1 +Ck-2Xk-2 + + CiXi + + C1X+C0 式中Ci为0或1,由对应
10、二进制数确定;如待编码数为1100,则M(x)=X3+X2+0+0; 若将信息位组左移r位,则可表示为多项式M(x)Xr。这样就可空出r位,以便拼接r位校验位,即:n=(k+r)位,信息位组左移 r 位情况,CRC码就是用多项式M(x)Xr 除以生成多项式G(x)(即产生效验码的多项式),所得的余数作为校验位; 设所得余数表达为R(x),商为Q(x),将余数拼接在信息位组左移r位空出的r位上,就构成这个有效信息的CRC码。这个CRC码可用多项式表达为:M(x)Xr + R(x) = Q(x)G(x) + R(x) + R(x)= Q(x)G(x) + R(x)+R(x)= Q(x)G(x) 所
11、得CRC码可被G(x)表示的数码除尽。,模2和为0,例4(P145) 对4位有效信息(1100)求循环校验编码,选择生成多项式(1011)。 解: 有效信息 M(x)=x3+x2由多项式 G(x)=x3+x+1得 k+1=4所以 k=3 ,将有效信息左移k位后再被G(x)模2除,得 M(x) x3=1100000=x6+x5M(x)x3 /G(x)=1100000/1011 =1110+010/1011 所以 M(x)X3 + R(x)=1100000 + 010 =1100010 上面循环校验码中n=7,k=4,称为(7,4)码 说明:生成多项式不是随意设定的,也不是唯一的,上面例子中生成多
12、项式使用1011 ,也可以用1101 ; 大家算一下使用1101时,计算出的R(x)=?,(7,4)码为? R(x)=101,(7,4)码 1100101,(3)CRC码的纠错 在接收方将收到的CRC码用约定的生成多项式G(x)去除,如果码字没有错误,则余数为0,若有一位出错,则余数不为0,而且不同的出错位置其余数不同; 更换不同的码字,余数和出错位的关系不变,只和码制与生成多项式有关; 表4.6(P146)给出了对应G(x)=1011 的(7,4)码,对于其它码制或选用其他生成多项式,出错位置与余数的关系可能发生改变,即出错模式将发生变化。,(4)生成多项式的选取并不是任何一个k位多项式都能
13、作为生成多项式。从查错和纠错的要求来看,选取的一个生成多项式应满足以下几个条件: 任何一位发生错误时,都应使余数不为0; 不同位发生错误时,余数应该不同; 对余数作模2 除时,应使余数循环;,八、提高访存速度的措施,采用高速元件,调整主存结构 单体多字系统 多体并行系统 并行存储器 高性能存储芯片,采用层次结构 Cache 主存,采用了并行技术, 时间和空间并行,主存的并行读写:主存在一个工作周期或略多一点的时间内可以读出多个主存字所采用的技术,在静态和动态存储器中均可用。,程序的局部性原理 程序在一定的时间段内通常只访问较小的地址空间; 两种局部性: 时间:最近被访问过的程序和数据很可能再次
14、被访问; 空间:CPU很可能访问最近被访问过的地址单元附近的地址单元。,单体四字结构存储器,1. 单体多字系统,利用程序局部性原理,在一个存取周期内取出多条指令,然后再逐条将指令送至CPU执行;,单体多字系统优点 增大存储器带宽; 提高单体存储器的工作速度; 单体多字系统缺点 每次读出的字必须首先保存在位数足够长的寄存器中等待数据总线分次传送走; 指令和数据在主存内必须是连续存放;,2. 多体并行系统 采用多体模块组成的存储器,每个模块具有相同的容量、存取速度,有独立的MAR、MDR、地址译码、驱动电路和读/写电路,各模块既可以并行工作,又能交叉工作; 并行工作即同时访问N个模块,同时启动,同
15、时读出,完全并行地工作; 同时读出的多个字在总线上需分时传送; 两种结构 高位交叉编址、低位交叉编址,(1) 高位交叉,顺序编址,各个体并行工作,体号,(2)低位交叉,各个体轮流编址,体号,低位交叉的特点,在不改变存取周期前提下,增加存储器带宽,启动存储体 0,启动存储体 1,启动存储体 2,启动存储体 3,设四体低位交叉存储器,存取周期为T,总线传输周期为,为实现流水线方式存取,应满足 T 4。,连续读取 4 个字所需的时间为 T(4 1),(3) 存储器控制部件(简称存控),易发生代码 丢失的请求源,优先级 最高,严重影响 CPU 工作的请求源, 给予 次高 优先级,(1)双端口存储器的逻
16、辑结构 双端口存储器由于同一个存储器具有两组相互独立的读写控制电路而得名。由于进行并行的独立操作,因而是一种高速工作的存储器,在科研和工程中非常有用。,3.双端口存储器,双端口存储器IDT7133的逻辑框图,(2)无冲突读写控制 当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。 当任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片选控制(CE)和输出驱动控制(OE)。 读操作时,端口的OE(低电平有效)打开输出驱动器,由存储矩阵读出的数据就出现在I/O线上。,(3)有冲突读写控制 当两个端口同时存取存储器同一存储单元时,便发生读写冲突。 为解决此问题,
17、特设置了BUSY标志。在这种情况下,片上的判断逻辑可以决定对哪个端口优先进行读写操作,而对另一个被延迟的端口置BUSY标志(BUSY变为低电平),即暂时关闭此端口。,(4) 有冲突读写控制判断方法 如果地址匹配且在CE之前有效,片上控制逻辑在CEL和CER间进行判断来选择端口(CE判断)。 如果CE在地址匹配之前变低,片上的控制逻辑在左、右地址间进行判断来选择端口(地址有效判断)。 无论采用哪种判断方式,延迟端口的BUSY标志都将置位而关闭此端口,而当允许存取的端口完成操作时,延迟端口BUSY标志才进行复位而打开此端口。,读写时序,4.高性能存储芯片,(1) SDRAM (同步 DRAM),在系统时钟的控制下进行读出和写入 CPU 无须等待,主要解决速度匹配问题,(2) RDRAM,由 Rambus 开发,主要解决 存储器带宽 问题,(3) 带 Cache 的 DRAM,在 DRAM 的芯片内 集成 了一个由 SRAM 组成的 Cache ,有利于 猝发式读取,QUESTION?,作业,第1讲(P150)4.3、4.6、4.7、4.12 第2讲(P150)4.11 、4.13、4.14、4.15 第3讲(P150) 4.17、4.18、4.22、4.24、4.41、4.42,