位扩展、字扩展与片选逻辑一文搞定存储器设计题摘要/导语上一期我们聊了如何通过双端口和多模块技术让内存跑得更快点击查看上期。但今天我们要解决一个更现实的问题如果单颗内存芯片容量太小或者位数不够该怎么办就像乐高积木一样我们需要把小的存储芯片“拼”起来才能满足CPU的需求。这就是本期要讲的**“主存与CPU的连接”——位扩展与字扩展**。这可是408考研和设计题的重灾区文末附带真题实战建议收藏反复看 正文内容 第一部分解剖一颗存储器芯片在开始“拼装”之前我们先来看看一颗标准的存储器芯片内部长什么样。别被复杂的电路图吓倒它其实就是一个精密的数据仓库。我们可以把它拆解为四个核心部门存储矩阵核心库房这是真正存放0和1的地方通常排列成行和列的矩阵形式。译码驱动电路导航员CPU发来地址后它负责把地址翻译成具体的“行号”和“列号”精准定位到某一个存储单元。读写电路搬运工负责把数据写进去或者把数据读出来送到数据线上。外部引脚对外接口这是芯片与CPU沟通的桥梁主要包括地址线告诉芯片我要找哪个房间。数据线传输实际的数据内容。片选线 (C S ‾ \overline{CS}CS)相当于芯片的“总开关”只有它被激活通常是低电平芯片才工作。读写控制线 (W E ‾ \overline{WE}WE/O E ‾ \overline{OE}OE)指挥是“存入”还是“取出”。 避坑指南很多同学做题时容易忽略片选线。记住不管地址对不对其只要片选信号没给对这颗芯片就是“装死”状态数据总线处于高阻态绝不干扰别人。 第二部分位扩展 —— “加宽马路”场景假设你的CPU是32位的一次能处理32bit数据但你手里只有8位的存储芯片比如1 K × 8 1K \times 81K×8位。问题一次只能传8位CPU得传4次才能凑齐32位太慢了对策位扩展。怎么做这就好比原本只有一条车道的马路现在要扩建成四车道。我们需要4片1 K × 8 1K \times 81K×8的芯片。地址线并联大家共用一套地址线因为都是找第几个房间房间号是一样的。控制线并联读写命令大家一起听。数据线串联拼接第一片负责低8位第二片负责次低8位……以此类推拼成32位宽的数据总线。这里展示的是8片8K x 1位的扩展成8K x 8位 记忆口诀位扩展地址同片选同数据分头走。 第三部分字扩展 —— “加盖楼层”场景你的CPU有16根地址线寻址范围64K但你手里只有1K容量的芯片。问题地址太多芯片太少根本住不下对策字扩展。怎么做这就好比地基面积不变数据线宽度不变但是往高处盖楼增加房间数量。我们需要64片1 K × N 1K \times N1K×N的芯片假设数据位宽匹配。数据线并联大家都连在同一组数据总线上因为每次只选其中一片工作。低位地址并联芯片内部的10根地址线2 10 1 K 2^{10}1K2101K全部连在一起用来在各自芯片内部找房号。高位地址做片选剩下的6根地址线16 − 10 6 16-10616−106通过译码器变成64个片选信号分别连到64个芯片的C S ‾ \overline{CS}CS端。这里就涉及到了两种片选方法线选法直接用某一根高位地址线连到一个芯片的片选端。优点简单不用译码器。缺点浪费地址空间容易冲突比如A15选了芯片1那A151的所有地址都归芯片1中间会有大量空洞。译码片选法重点使用3:8译码器或2:4译码器。优点地址连续不浪费空间是正规军做法。关键要学会分析地址空间算出每片芯片的起始和结束地址。 避坑指南字扩展的核心在于**“分时工作”**。同一时刻只有一片芯片的片选信号有效其他芯片都在“睡觉”。所以它们的数据线可以并联在一起不会打架。 第四部分字位同时扩展 —— “既加宽又加盖”场景这是最真实的情况。CPU是32位寻址64K你手里只有1 K × 8 1K \times 81K×8的小芯片。对策既要位扩展凑够32位又要字扩展凑够64K容量。计算步骤考试必考算总数总容量 / 单片容量 所需芯片总数。( 64 K × 32 ) / ( 1 K × 8 ) 64 × 4 256 (64K \times 32) / (1K \times 8) 64 \times 4 256(64K×32)/(1K×8)64×4256片。分组位方向需要4片并联32 / 8 4 32/8432/84组成一组这就叫“一个存储体”。字方向需要64组64 K / 1 K 64 64K/1K6464K/1K64进行串联。连线逻辑组内位扩展地址线、片选线并联数据线分开。组间字扩展地址线低位并联高位经译码器接各组的公共片选端数据线全部并联。 课后实战408真题演练【题目】某计算机主存容量为64 K B 64KB64KB其中R O M ROMROM区为4 K B 4KB4KB其余为R A M RAMRAM区。按字节编址。现有2 K × 8 2K \times 82K×8位的R O M ROMROM芯片和4 K × 4 4K \times 44K×4位的R A M RAMRAM芯片。若采用位扩展和字扩展相结合的方式设计该存储器则需要R O M ROMROM芯片和R A M RAMRAM芯片的数量分别是多少【解析】分析需求总容量64 K B 64KB64KB。R O M ROMROM区4 K B 4KB4KB。R A M RAMRAM区64 K B − 4 K B 60 K B 64KB - 4KB 60KB64KB−4KB60KB。按字节编址→ \rightarrow→数据线宽度为 8位。计算 ROM 芯片数需求4 K B 4KB4KB即4 K × 8 4K \times 84K×8位。现有2 K × 8 2K \times 82K×8位。位宽已满足都是8位只需字扩展。数量 4 K / 2 K 2 4K / 2K 24K/2K2片。计算 RAM 芯片数需求60 K B 60KB60KB即60 K × 8 60K \times 860K×8位。现有4 K × 4 4K \times 44K×4位。先位扩展目标8位现有4位→ \rightarrow→需要2片并联4 × 2 8 4 \times 2 84×28位。这2片构成一组容量4 K × 8 4K \times 84K×8。再字扩展目标60 K 60K60K每组4 K 4K4K→ \rightarrow→需要60 / 4 15 60 / 4 1560/415组。总数量 15 组 × 2 片/组 30 15 \text{组} \times 2 \text{片/组} 3015组×2片/组30片。【答案】ROM芯片 2 片RAM芯片 30 片。
计算机组成原理 | 位扩展、字扩展与片选逻辑
位扩展、字扩展与片选逻辑一文搞定存储器设计题摘要/导语上一期我们聊了如何通过双端口和多模块技术让内存跑得更快点击查看上期。但今天我们要解决一个更现实的问题如果单颗内存芯片容量太小或者位数不够该怎么办就像乐高积木一样我们需要把小的存储芯片“拼”起来才能满足CPU的需求。这就是本期要讲的**“主存与CPU的连接”——位扩展与字扩展**。这可是408考研和设计题的重灾区文末附带真题实战建议收藏反复看 正文内容 第一部分解剖一颗存储器芯片在开始“拼装”之前我们先来看看一颗标准的存储器芯片内部长什么样。别被复杂的电路图吓倒它其实就是一个精密的数据仓库。我们可以把它拆解为四个核心部门存储矩阵核心库房这是真正存放0和1的地方通常排列成行和列的矩阵形式。译码驱动电路导航员CPU发来地址后它负责把地址翻译成具体的“行号”和“列号”精准定位到某一个存储单元。读写电路搬运工负责把数据写进去或者把数据读出来送到数据线上。外部引脚对外接口这是芯片与CPU沟通的桥梁主要包括地址线告诉芯片我要找哪个房间。数据线传输实际的数据内容。片选线 (C S ‾ \overline{CS}CS)相当于芯片的“总开关”只有它被激活通常是低电平芯片才工作。读写控制线 (W E ‾ \overline{WE}WE/O E ‾ \overline{OE}OE)指挥是“存入”还是“取出”。 避坑指南很多同学做题时容易忽略片选线。记住不管地址对不对其只要片选信号没给对这颗芯片就是“装死”状态数据总线处于高阻态绝不干扰别人。 第二部分位扩展 —— “加宽马路”场景假设你的CPU是32位的一次能处理32bit数据但你手里只有8位的存储芯片比如1 K × 8 1K \times 81K×8位。问题一次只能传8位CPU得传4次才能凑齐32位太慢了对策位扩展。怎么做这就好比原本只有一条车道的马路现在要扩建成四车道。我们需要4片1 K × 8 1K \times 81K×8的芯片。地址线并联大家共用一套地址线因为都是找第几个房间房间号是一样的。控制线并联读写命令大家一起听。数据线串联拼接第一片负责低8位第二片负责次低8位……以此类推拼成32位宽的数据总线。这里展示的是8片8K x 1位的扩展成8K x 8位 记忆口诀位扩展地址同片选同数据分头走。 第三部分字扩展 —— “加盖楼层”场景你的CPU有16根地址线寻址范围64K但你手里只有1K容量的芯片。问题地址太多芯片太少根本住不下对策字扩展。怎么做这就好比地基面积不变数据线宽度不变但是往高处盖楼增加房间数量。我们需要64片1 K × N 1K \times N1K×N的芯片假设数据位宽匹配。数据线并联大家都连在同一组数据总线上因为每次只选其中一片工作。低位地址并联芯片内部的10根地址线2 10 1 K 2^{10}1K2101K全部连在一起用来在各自芯片内部找房号。高位地址做片选剩下的6根地址线16 − 10 6 16-10616−106通过译码器变成64个片选信号分别连到64个芯片的C S ‾ \overline{CS}CS端。这里就涉及到了两种片选方法线选法直接用某一根高位地址线连到一个芯片的片选端。优点简单不用译码器。缺点浪费地址空间容易冲突比如A15选了芯片1那A151的所有地址都归芯片1中间会有大量空洞。译码片选法重点使用3:8译码器或2:4译码器。优点地址连续不浪费空间是正规军做法。关键要学会分析地址空间算出每片芯片的起始和结束地址。 避坑指南字扩展的核心在于**“分时工作”**。同一时刻只有一片芯片的片选信号有效其他芯片都在“睡觉”。所以它们的数据线可以并联在一起不会打架。 第四部分字位同时扩展 —— “既加宽又加盖”场景这是最真实的情况。CPU是32位寻址64K你手里只有1 K × 8 1K \times 81K×8的小芯片。对策既要位扩展凑够32位又要字扩展凑够64K容量。计算步骤考试必考算总数总容量 / 单片容量 所需芯片总数。( 64 K × 32 ) / ( 1 K × 8 ) 64 × 4 256 (64K \times 32) / (1K \times 8) 64 \times 4 256(64K×32)/(1K×8)64×4256片。分组位方向需要4片并联32 / 8 4 32/8432/84组成一组这就叫“一个存储体”。字方向需要64组64 K / 1 K 64 64K/1K6464K/1K64进行串联。连线逻辑组内位扩展地址线、片选线并联数据线分开。组间字扩展地址线低位并联高位经译码器接各组的公共片选端数据线全部并联。 课后实战408真题演练【题目】某计算机主存容量为64 K B 64KB64KB其中R O M ROMROM区为4 K B 4KB4KB其余为R A M RAMRAM区。按字节编址。现有2 K × 8 2K \times 82K×8位的R O M ROMROM芯片和4 K × 4 4K \times 44K×4位的R A M RAMRAM芯片。若采用位扩展和字扩展相结合的方式设计该存储器则需要R O M ROMROM芯片和R A M RAMRAM芯片的数量分别是多少【解析】分析需求总容量64 K B 64KB64KB。R O M ROMROM区4 K B 4KB4KB。R A M RAMRAM区64 K B − 4 K B 60 K B 64KB - 4KB 60KB64KB−4KB60KB。按字节编址→ \rightarrow→数据线宽度为 8位。计算 ROM 芯片数需求4 K B 4KB4KB即4 K × 8 4K \times 84K×8位。现有2 K × 8 2K \times 82K×8位。位宽已满足都是8位只需字扩展。数量 4 K / 2 K 2 4K / 2K 24K/2K2片。计算 RAM 芯片数需求60 K B 60KB60KB即60 K × 8 60K \times 860K×8位。现有4 K × 4 4K \times 44K×4位。先位扩展目标8位现有4位→ \rightarrow→需要2片并联4 × 2 8 4 \times 2 84×28位。这2片构成一组容量4 K × 8 4K \times 84K×8。再字扩展目标60 K 60K60K每组4 K 4K4K→ \rightarrow→需要60 / 4 15 60 / 4 1560/415组。总数量 15 组 × 2 片/组 30 15 \text{组} \times 2 \text{片/组} 3015组×2片/组30片。【答案】ROM芯片 2 片RAM芯片 30 片。