① 问:什么是位扩展,什么是字扩展
存储芯片的扩展包括位扩展、字扩展和字位同时扩展等三种情况。1、位扩展位扩展是指存储芯片的字(单元)数满足要求而位数不够,需对每个存储单元的位数进行扩展。例:用1K×4的2114芯片构成lK×8的存储器系统。分析:每个芯片的容量为1K,满足存储器系统的容量要求。但由于每个芯片只能提供4位数据,故需用2片这样的芯片,它们分别提供4位数据至系统的数据总线,以满足存储器系统的字长要求。设计要点:(1)将每个芯片的10位(1k=2^10)地址线按引脚名称一一并联,按次序逐根接至系统地址总线的低10位。(2)数据线则按芯片编号连接,1号芯片的4位数据线依次接至系统数据总线的D0-D3,2号芯片的4位数据线依次接至系统数据总线的D4-D7。(3)两个芯片的端并在一起后接至系统控制总线的存储器写信号(如CPU为8086/8088,也可由和/M或IO/组合来承担)(4)引脚分别并联后接至地址译码器的输出,而地址译码器的输入则由系统地址总线的高位来承担。当存储器工作时,系统根据高位地址的译码同时选中两个芯片,而地址码的低位也同时到达每一个芯片,从而选中它们的同一个单元。在读/写信号的作用下,两个芯片的数据同时读出,送上系统数据总线,产生一个字节的输出,或者同时将来自数据总线上的字节数据写入存储器。2、字扩充字扩展用于存储芯片的位数满足要求而字数不够的情况,是对存储单元数量的扩展。例:用2K×8的2716A存储器芯片组成8K×8的存储器系统分析:由于每个芯片的字长为8位,故满足存储器系统的字长要求。但由于每个芯片只能提供2K个存储单元,故需用4片这样的芯片,以满足存储器系统的容量要求。设计要点:同位扩充方式相似。(1)先将每个芯片的11(2*2^10)位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低11位。(2)将每个芯片的8位数据线依次接至系统数据总线的D0-D7。(3)两个芯片的端并在一起后接至系统控制总线的存储器读信号(这样连接的原因同位扩充方式),(4)它们的引脚分别接至地址译码器的不同输出,地址译码器的输入则由系统地址总线的高位来承担。当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片,低位地址码则同时到达每一个芯片,选中它们的相应单元。在读信号的作用下,选中芯片的数据被读出,送上系统数据总线,产生一个字节的输出。3、同时进行位扩充与字扩充存储器芯片的字长和容量均不符合存储器系统的要求,需要用多片这样的芯片同时进行位扩充和字扩充,以满足系统的要求。例:用1K×4的2114芯片组成2K×8的存储器系统分析:由于芯片的字长为4位,因此首先需用采用位扩充的方法,用两片芯片组成1K×8的存储器。再采用字扩充的方法来扩充容量,使用两组经过上述位扩充的芯片组来完成。设计要点:每个芯片的10根地址信号引脚宜接接至系统地址总线的低10位,每组两个芯片的4位数据线分别接至系统数据总线的高/低四位。地址码的A10、A11经译码后的输出,分别作为两组芯片的片选信号,每个芯片的控制端直接接到CPU的读/写控制端上,以实现对存储器的读/写控制。当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片组,低位地址码则同时到达每一个芯片组,选中它们的相应单元。在读/写信号的作用下,选中芯片组的数据被读出,送上系统数据总线,产生一个字节的输出,或者将来自数据总线上的字节数据写入芯片组。
② 存储器容量扩充方法有哪几种他们各有什么优缺点
字扩展与位扩展,但是它们两个合起来才是一种完整的存储器扩展方法。
③ 字扩展与位扩展
位扩展:当主存储器的字长与单个存储芯片的字数相同而位数不相同时,可采用位扩展方式来组织 多个存储芯片构成主存储器。
字扩展:当主存储器的字长与单个存储芯片的字长相同而字数不相同时,可采用字扩展方式来组织多个存储芯片构成主存储器。
④ 计算机组成原理(三)存储系统
辅存中的数据要调入主存后才能被CPU访问
按存储介质,存储器可分为磁表面存储器(磁盘、磁带)、磁心存储器半导体存储器(MOS型存储器、双极型存储器)和光存储器(光盘)。
随机存取存储器(RAM):读写任何一个存储单元所需时间都相同,与存储单元所在的物理位置无关,如内存条等
顺序存取存储器(SAM):读写一个存储单元所需时间取决于存储单元所在的物理位置,如磁盘等
直接存取存储器(DAM):既有随机存取特性,也有顺序存取特性。先直接选取信息所在区域,然后按顺序方式存取。如硬盘等
相联存储器,即可以按内容访问的存储器(CAM)可以按照内容检索到存储位置进行读写,“快表”就是一种相联存储器
读写存储器—即可读、也可写(如:磁盘、内存、Cache)
只读存储器—只能读,不能写(如:实体音乐专辑通常采用CD-ROM,实体电影采用蓝光光盘,BIOS通常写在ROM中)
断电后,存储信息消失的存储器——易失性存储器(主存、Cache)
断电后,存储信息依然保持的存储器——非易失性存储器(磁盘、光盘)
信息读出后,原存储信息被破坏——破坏性读出(如DRAM芯片,读出数据后要进行重写)
信息读出后,原存储信息不被破坏——非破坏性读出(如SRAM芯片、磁盘、光盘)
存储器芯片的基本电路如下
封装后如下图所示
图中的每条线都会对应一个金属引脚,另外还有供电引脚、接地引脚,故可以由此求引脚数目
n位地址对应2 n 个存储单元
假如有8k×8位的存储芯片,即
现代计算机通常按字节编址,即每个字节对应一个地址
但也支持按字节寻址、按字寻址、按半字寻址、按双字寻址
(Dynamic Random Access Memory,DRAM)即动态RAM,使用栅极电容存储信息
(Static Random Access Memory,SRAM)即静态RAM,使用双稳态触发器存储信息
DRAM用于主存、SRAM用于Cache,两者都属于易失性存储器
简单模型下需要有 根选通线,而行列地址下仅需 根选通线
ROM芯片具有非易失性,断电后数据不会丢失
主板上的BIOS芯片(ROM),存储了“自举装入程序”,负责引导装入操作系统(开机)。逻辑上,主存由 辅存RAM+ROM组成,且二者常统一编址
位扩展的连接方式是将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出。
字扩展是指增加存储器中字的数量,而位数不变。字扩展将芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围。
实际上,存储器往往需要同时扩充字和位。字位同时扩展是指既增加存储字的数量,又增加存储字长。
两个端口对同一主存操作有以下4种情况:
当出现(3)(4)时,置“忙”信号为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问。
多体并行存储器由多体模块组成。每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交义工作。多体并行存储器分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)两种.
①高位交叉编址
②低位交叉编址
采用“流水线”的方式并行存取(宏观上并行,微观上串行),连续取n个存储字耗时可缩短为
宏观上,一个存储周期内,m体交叉存储器可以提供的数据量为单个模块的m倍。存取周期为T,存取时间/总线传输周期为r,为了使流水线不间断,应保证模块数
单体多字系统的特点是存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元。
缺点:每次只能同时取m个字,不能单独取其中某个字;指令和数据在主存内必须是连续存放的
为便于Cache 和主存之间交换信息,Cache 和主存都被划分为相等的块,Cache 块又称Cache 行,每块由若干字节组成。块的长度称为块长(Cache 行长)。由于Cache 的容量远小于主存的容盘,所以Cache中的块数要远少于主存中的块数,它仅保存主存中最活跃的若干块的副本。因此 Cache 按照某种策略,预测CPU在未来一段时间内欲访存的数据,将其装入Cache.
将某些主存块复制到Cache中,缓和CPU与主存之间的速度矛盾
CPU欲访问的信息已在Cache中的比率称为命中率H。先访问Cache,若Cache未命中再访问主存,系统的平均访问时间t 为
同时访问Cache和主存,若Cache命中则立即停止访问主存系统的平均访问时间t 为
空间局部性:在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的
时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息
基于局部性原理,不难想到,可以把CPU目前访问的地址“周围”的部分数据放到Cache中
直接映射方式不需要考虑替换算法,仅全相联映射和组相联映射需要考虑
①随机算法(RAND):若Cache已满,则随机选择一块替换。实现简单,但完全没考虑局部性原理,命中率低,实际效果很不稳定
②先进先出算法(FIFO):若Cache已满,则替换最先被调入Cache的块。实现简单,依然没考虑局部性原理
③近期最少使用算法(LRU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块已经有多久没被访问了。当Cache满后替换“计数器”最大的.基于“局部性原理”,LRU算法的实际运行效果优秀,Cache命中率高。
④最不经常使用算法(LFU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块被访问过几次。当Cache满后替换“计数器”最小的.并没有很好地遵循局部性原理,因此实际运行效果不如LRU
现代计算机常采用多级Cache,各级Cache之间常采用“全写法+非写分配法”;Cache-主存之间常采用“写回法+写分配法”
写回法(write-back):当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存。减少了访存次数,但存在数据不一致的隐患。
全写法(写直通法,write-through):当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲(write buffer)。使用写缓冲,CPU写的速度很快,若写操作不频繁,则效果很好。若写操作很频繁,可能会因为写缓冲饱和而发生阻塞访存次数增加,速度变慢,但更能保证数据一致性
写分配法(write-allocate):当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改。通常搭配写回法使用。
非写分配法(not-write-allocate):当CPU对Cache写不命中时只写入主存,不调入Cache。搭配全写法使用。
页式存储系统:一个程序(进程)在逻辑上被分为若干个大小相等的“页面”, “页面”大小与“块”的大小相同 。每个页面可以离散地放入不同的主存块中。CPU执行的机器指令中,使用的是“逻辑地址”,因此需要通“页表”将逻辑地址转为物理地址。页表的作用:记录了每个逻辑页面存放在哪个主存块中
逻辑地址(虚地址):程序员视角看到的地址
物理地址(实地址):实际在主存中的地址
快表是一种“相联存储器”,可以按内容寻访,表中存储的是页表项的副本;Cache中存储的是主存块的副本
地址映射表中每一行都有对应的标记项
主存-辅存:实现虚拟存储系统,解决了主存容量不够的问题
Cache-主存:解决了主存与CPU速度不匹配的问题
⑤ 《计算机组成原理》存储器的字扩展法
4片需要4个片选信号,高两位地址产生经2-4译码器产生4个片选信号。1k*4到
2k*8从4位到8位是位扩展,其实字扩展的只是将两个1k*8得到2k*8,只需两个片选信号即可,一位高位地址线即可。
二
1.给的芯片的数据线只有4条,但要你通过位扩展到8条
2,3.其实就是用现有芯片得到扩展芯片的连线图,然后与cpu的数据线和控制线相连
4.是的
⑥ 给出芯片的存储范围怎么连接译码器
主存芯片和cpu的连接原理
主存通过数据线/地址线/控制线和cpu相连
数据总线的位数W D W_DW
D
和总线工作频率f B f_Bf
B
的乘积B = W D f B B=W_Df_BB=W
D
f
B
正比于数据传输速率
地址总线的位数决定了可寻址的最大内存空间
控制总线(读.写)指出总线周期的类型和本次输入输出操作完成的时刻
多个内存芯片集成到一个内存条上
多个内存条和主板上的ROM芯片组成计算机所需的主存空间,再通过总线与cpu相连
内存条插槽就是存储器总线
内存中的信息通过内存条的引脚,再通过插槽内的引线连接到主板上
主板上的导线连接到cpu上
主存容量的扩展
单个芯片的容量有限
可通过字扩展/位扩展两方面来扩充主存容量
位扩展法
字扩展发
字位同时扩展
存储器容量S=地址线数N A N_AN
A
乘以字长W
S = N A × W S=N_A\times{W}S=N
A
×W
位扩展法
cpu的数据线和存储芯片数据位数不一定相等
必须进行位扩展,使用多个存储器间对字长进行扩展,使其数据位数和cpu的数据线相等
也即是扩展单个存储字的字长(仅提升W)
可见,单纯的位扩展没有扩大寻址范围
在同一时刻,cpu片选中所有芯片,每个芯片读取相同个bit内容
片选信号C S ‾ \overline{CS}
CS
要链接到所有芯片
每片的数据线一次作为cpu数据线的一位
采用位扩展时,所有芯片链接地址线的方式相同
另一种扩展方式是字扩展法,扩展的是存储字总数(仅提升N A N_AN
A
)
将多个存储芯片的以下方面相应并联
地址端
片选端
读写控制端
数据端分别引出
字扩展法
扩展的是存储字总数(仅提升N A N_AN
A
),字的位数不变
将芯片的以下方面相应并联
地址线
数据线
读写控制线
片选信号用来区分各芯片的地址范围
仅采用字扩展时,各芯片
连接地址线的方式相同
连接数据线的方式也相同
但是在某一时刻只选中部分芯片
通过**片选信号C S ‾ \overline{CS}
CS
**或者采用译码器设计连接到相应存储芯片
字位同时扩展法
同时增加N A , W N_A,WN
A
,W
一般先执行位扩展(分组→ \to→整体)
再执行字扩展
连线:
所有芯片的地址线连线还是相同
数据线不同
存储芯片的地址分配和片选
cpu访问存储单元
首先需要进行片选
多个存储芯片构成的存储器,选择其中的一片进行访问
片选信号的产生分为线选法和译码片选法
再进行字选
在选中的芯片中,根据地址码选择相应的存储单元
片内的字选通常由cpu送出的N条低位地址线完成的
地址线直接链接到所有存储芯片的地址输入端
线选法
不需要译码器,线路简单
地址空间不连续,片选的地址线必须分时为低电平(否则不能工作)
可能无法充分利用系统的存储器空间,造成地址资源浪费
比如cpu可用的高位地址线数量不足以选中大量需要独立选中的芯片(组),即片选信号种类不足
译码片选法
用高位地址线(除了片内寻址外的)通过地址译码器芯片产生片选信号
半导体存储芯片的译码驱动方式
半导体存储芯片的译码驱动方式有两种:线选法和 重合法
线选法
它的特点是用一根 字选择线(字线),直接选中一个存储单元的各位(如一个字节的各个位)
这种方式结构较简单,但只适于容量不大的存储芯片
4.19 是一个 16×1 字节线选法存储芯片的结构示意图
如当地址线 A 3 A 2 A 1 A 0 A_{3}A_{2}A_{1}A_{0}A
3
A
2
A
1
A
0
为 1111 时,则第 15 根字线被选中,对应下图中的最后一行 8 位代码便可直接读出或写入
重合法
由于被选单元是由 X、Y 两个方向的地址决定的,故称为重合法
4.10 是一个 1K×1 位重合法结构示意图
显然,只要用 64 根选择线(X、Y 两个方向各 32 根),便可选择 32×32 矩阵中的 任一位
例如,当地址线为全 0 时,译码输出 X 和 Y 有效,矩阵中第 0 行、第 О 列共同选中的那位即被选中
当欲构成 1K×1 字节的存储器时,只需用 8 片即可
存储器与 CPU 的连接🎈
合理选择存储芯片
要组成一个主存系统,选择存储芯片是第一步,主要指
存储芯片的类型(RAM 或 ROM)
芯片数量
ROM 存放系统程序、标准子程序和各类常数
RAM 则是为用户编程而设置的
考虑芯片数量时,要尽量使连线简单、方便
地址线的连接
存储芯片的容量不同,其地址线数也不同,而 CPU 的地址线数往往比存储芯片的地址线数要多
将 CPU 地址线的低位与存储芯片的 地址线相连,以选择芯片中的某一单元(字选)
这部分的译码是由芯片的片内逻辑完成的
将 CPU地址线的高位则在 扩充存储芯片时使用
用来 选择存储芯片(片选),这部分译码由外接译码器逻辑完成
数据线的连接
CPU 的数据线数与存储芯片的数据线数不一定相等,
在相等时可直接相连;
在不等时必须对存储芯片扩位,使其数据位数与 CPU 的数据线数相等
读写命令线的连接
CPU 读/写命令线一般可直接与存储芯片的读/写控制端相连,
通常高电平为读,
低电平为写
有些 C P U \mathrm{CPU}CPU 的读/写命令线是分开的
读为 R D ‾ \overline{RD}
RD
(read), 写为 W E ‾ \overline{WE}
WE
(write) , 均为低电平有效
此时 C P U \mathrm{CPU}CPU 的读命令线应与存储芯片的允许读控制端相连,
而 CPU 的写命令线则应与存储芯片的允许写控制端相连
片选线的连接
片选线的连接是 CPU 与存储芯片连接的关键
存储器由许多存储芯片叠加而成
哪一片被选中完全取决于该存储芯片的片选控制端 C S ‾ \overline{CS}
CS
是否能接收到来自 CPU 的片选有效信号
片选有效信号与 CPU 的 访存控制信号M R E Q ‾ \overline{MREQ}
MREQ
(MemoryRequst)(低电平有效)有关,
因为只有当 CPU 要求访存时,才要求选中存储芯片
若 CPU 访问外设IO,则 M R E Q ‾ \overline{MREQ}
MREQ
为高,表示不要求存储器工作
芯片引脚缩写参考🎆
Pin Name Abbreviations - Using Altium Documentation
https://techdocs.altium.com › files › wiki_attachments
示例
注意到存储是按照字节编址,容量是(范围*8bit)
也不是必须要将十六进制转换为二进制(可以直接执行十六进制的减法运算:67 F F H − 6000 H + 1 = 800 H = 2 11 = 2 × 2 10 67FFH-6000H+1=800H=2^{11}=2\times2^{10}67FFH−6000H+1=800H=2
11
=2×2
10
=2k
类似的,6 B F F H − 6800 H + 1 = 400 H = 2 10 H = 1 k 6BFFH-6800H+1=400H=2^{10}H=1k6BFFH−6800H+1=400H=2
10
H=1k
此处+1是因为此处范围为闭区间,包括起始地址
不过,要写成二进制形式的时候,在标注坐标的时候,每一段的首尾可以标注一下,可以这样分配:
LHS=[A 0 , A 4 , A 7 , A 8 , A 12 A_0,A_4,A_7,A_8,A_{12}A
0
,A
4
,A
7
,A
8
,A
12
]
RHS=[A 3 , A 7 , A 11 , A 15 A_3,A_7,A11,A15A
3
,A
7
,A11,A15]
但是在画片选逻辑图的时候,需要结合cpu地址线的高位部分以及要求的寻址范围,得出哪些cpu地址线需要保持高电平/低电平,从而便于接入特定的地址译码器(驱动其)进行片选
另外我们可以从二进制形式中方便的看出A 11 , A 12 , A 13 A_{11},A_{12},A_{13}A
11
,A
12
,A
13
的规律,即他们除了A 11 A_{11}A
11
外,其余都保持不变(分别是A 12 = 0 , A 13 = 1 A_{12}=0,A_{13}=1A
12
=0,A
13
=1);如此一来,就可以确定A 13 , A 12 , A 11 A_{13},A_{12},A_{11}A
13
,A
12
,A
11
(高位到低位分别是100,101这两种可能(十进制就是4,5;所以最终在连接译码器输出端的时候,我们接入的是Y 4 , Y 5 Y_{4},Y_{5}Y
4
,Y
5
而不是其他的译码器输出))
第一片存储芯片用作系统空间,寻址空间需要11条地址线才能够充分利用该芯片的存储单元
第二部分是有两片小的4位芯片组合成一个整体上有8位字长的芯片组,然而位扩展不会增加寻址范围,因此和扩展前的地址线要求一致,仅需要10条地址线
M R E Q ‾ \overline{MREQ}
MREQ
端:注意,cpu上的访存控制信号M R E Q ‾ \overline{MREQ}
MREQ
和A 14 A_{14}A
14
的始终保持低电平不同,在需要访存的时候,M R E Q ‾ \overline{MREQ}
MREQ
信号(低电平有效/触发,所以型号名上有overline)才会呈现低电平,从而达到只在需要访存的时候驱动地址译码器进行存储芯片片选
A 12 , A 13 , A 14 A_{12},A_{13},A_{14}A
12
,A
13
,A
14
这几条地址本质上和其他地址线没有什么不同(是指,如果该cpu接入的存储系统(芯片不通过小芯片扩展而成,而是同一块芯片的时候,这些地址线仍然以同样的方式工作))
当然,这里被用来接入片选译码器,但是译码器应该对于这几条线是透明的.
关键在于图中的与非门(用于控制片选RAM部分(芯片组))
由于ROM和RAM属于的是字扩展(而非位扩展),所以他们不能同时被选中
而A 10 A_{10}A
10
比较独特,因为ROM芯片片内地址需要11条线(也就是需要A 10 A_{10}A
10
,但是RAM片内并用不上A 10 A_{10}A
10
)(本例中,存储扩展后,可寻址地址范围不连续)
guess:
我们要让A 10 A_{10}A
10
有效(高电平)的时候只访问ROM,而不访问RAM
又,译码器Y 5 ‾ \overline{Y_{5}}
Y
5
为低电平的时候有效,故当A 10 , Y 5 ‾ A_{10},\overline{Y_{5}}A
10
,
Y
5
均为低电平的时候才选中RAM(书上的说明是用了与门),RAM也是电平有效(选中)
后两个芯片构成一组(字长的扩展(也就是为扩展),来匹配机器 cpu 字长)(执行为扩展的时候,注意数据线(D线)的划分:高位部分和低位部分分别连接到不同的被位扩展的芯片上,同时所有成员芯片被同时片选中(是通过该位扩展芯片组的被选中而同时选所有成员 ))
一般各个存储芯片都有自己的使能端(片选C S ‾ \overline{CS}
CS
(ChipSelect))(和存储芯片的地址线以及数据线都是不同的)
打开CSDN APP,看更多技术内容