计算机组成原理 | 双端口RAM与多模块存储器
2026/6/13 15:00:32 网站建设 项目流程

双端口RAM与多模块存储器,一文讲透“并行”的艺术

摘要/导语

上一期我们搞懂了SRAM和DRAM的区别(<点击查看上期>),也回顾了ROM的前世今生(<点击查看上上期>)。但还有一个灵魂拷问:CPU的速度是法拉利,内存如果是自行车怎么办?

今天这篇,我们不谈芯片材质,只谈架构设计。带你解锁“提升主存速度” 的两大杀手锏——双端口RAM多模块存储器。文末附带经典408真题,建议反复研读!


🚀 正文内容

⏱️ 前置知识:什么是“存取周期 T”?

在开始提速之前,我们必须先理解一个拦路虎:存取周期T TT

很多同学容易混淆“存取时间”和“存取周期”。我们可以把它想象成去银行柜台办业务

  • 存取时间 (r rr):你坐在柜台前,柜员帮你办理业务的时间(比如数钱、敲键盘)。
  • 恢复时间:你办完走了,柜员需要整理桌面、叫下一个号、系统刷新状态的时间。
  • 存取周期 (T TT)=存取时间 (r rr)+恢复时间

💡 划重点:
只有等整个周期T TT结束,存储器才能响应下一次请求。如果CPU想连续读写,必须得等这个“冷却CD”。为了让CPU少等一会儿,工程师们想了两个绝招!


🛠️ 第一招:双端口 RAM —— “左右互搏”术

普通的RAM就像只有一扇门的房间,一次只能进一个人(一个CPU)。而双端口RAM,顾名思义,就是给存储体装了两套独立的读写电路(左端口和右端口)。

这就好比一家餐厅开了两个大门,支持两个CPU同时访问

🤔 它能同时干嘛?(和谐共处)

  • 各玩各的:左边读A单元,右边写B单元。(完全没问题,井水不犯河水)
  • 一起看:左边读A单元,右边也读A单元。(也没问题,大家只是看看,不破坏东西,数据是稳定的)

❌ 它不能干嘛?(冲突时刻)

  • 抢地盘(写-写冲突):左边要写A单元,右边也要写A单元。(这就打架了!数据到底听谁的?)
  • 边看边改(读-写冲突):左边在读A单元,右边突然要改写A单元。(读到的数据可能是旧的,也可能是写到一半的乱码)。

⚠️ 冲突了怎么办?
这时候硬件逻辑会介入,发出一个“BUSY”信号

  • 通常原则是:“写优先”或者“先来后到”
  • 结果就是:其中一个CPU的访问端口会被暂时关闭,必须等待另一个操作完成后才能继续。

🎓 考点提炼:
双端口RAM虽然有两个口,但并不是所有时候都能并行。只有在访问不同存储单元,或者同时读同一单元时,才是真正的并行。


🏗️ 第二招:多模块存储器 —— “人多力量大”

既然单个存储器慢,那我们就用多个存储器拼起来!这就是多模块存储器。这里分为两种流派:单体多字多体并行

1. 单体多字存储器:一次拿一摞

这种方案比较简单粗暴。

  • 原理:虽然还是一个存储体,但我把数据线加宽!以前一次读1个字(比如32位),现在我一次并行读出m mm个连续的字。
  • 代价:总线宽度也要扩展为m mm个字宽。
  • 比喻:以前你去取快递,一次拿一个盒子;现在给你换了一辆大卡车,一次拉走一排盒子。
2. 多体并行存储器:真正的“流水线”

这是考试的重头戏!它有多个独立的存储模块(Module 0, Module 1…),每个模块都有自己的地址寄存器和读写电路。

这里涉及到一个关键概念:编址方式

(1) 高位交叉编址(顺序编址)
  • 怎么分:地址的高位决定去哪个模块,低位决定模块内的位置。
  • 效果:Module 0 存 0~1023号,Module 1 存 1024~2047号…
  • 评价:这本质上只是扩大了容量,并没有提高速度。因为CPU通常是顺序执行指令的(0, 1, 2, 3…),这意味着CPU会一直盯着 Module 0 猛操,其他模块都在围观。实际效果相当于单纯的扩容。
(2) 低位交叉编址(多体并行,重点!)
  • 怎么分:地址的低位决定去哪个模块。
  • 效果
    • 地址0 -> Module 0
    • 地址1 -> Module 1
    • 地址m -> Module 0 (轮回来了!)
  • 优势:当CPU连续读取指令或数据时(0, 1, 2, 3…),它会依次激活不同的模块。
    • t 1 t_1t1时刻:启动 Module 0
    • t 2 t_2t2时刻:启动 Module 1 (此时 Module 0 正在恢复中,互不干扰)
  • 结论:微观上,每个模块还是串行工作的;但在宏观上,每隔T / m T/mT/m的时间就能吐出一个数据,实现了流水线的无缝衔接!

🧮 黄金公式(必背):
要想流水线不间断,存储模块数m mm必须满足:
m ≥ T r m \ge \frac{T}{r}mrT
即:模块数量≥ \ge存取周期 / 存取时间
如果m mm太小,前面的模块还没恢复好,新的请求又来了,流水线就会断档(气泡)。


📝 总结一张图

特性双端口 RAM单体多字多体并行 (低位交叉)
核心思路增加接口,空间并行增加带宽,单次吞吐大轮流启动,时间重叠
适用场景双CPU共享内存向量处理机通用高性能计算机
冲突处理BUSY信号挂起只要m ≥ T / r m \ge T/rmT/r就不冲突

🔥 实战演练:408 & 高校期末真题

【真题 1】(2015年408统考真题·单选)
某计算机存储器按字节编址,采用低位多体交叉编址方式,由4个存储体组成,设每个存储体的存取周期为200ns,则连续读取4个字所需的最短时间为?
A. 200ns
B. 400ns
C. 500ns
D. 800ns

💬 解析:
看到“低位多体交叉”,马上想到流水线!
标准答案选 A (200ns)
理由:在多体并行存储器中,若模块数m mm足够多,使得流水线不间断,那么在一个存取周期T TT内,可以并行地读出m mm个字。所以读4个字(刚好等于模块数)的时间理论上等于一个存取周期T TT

【真题 2】(某高校期末题·判断)
双端口存储器之所以能提高速度,是因为它有两个端口,可以同时读写同一个存储单元。
( )

💬 解析:
错 (×)
根据定义:双端口RAM不能同时写(或一读一写)同一个单元。如果发生这种情况,会产生冲突,导致其中一个端口暂停(BUSY),反而降低了效率。它提速的前提是访问不同的单元。

【真题 3】(概念填空)
为了提高存储器的带宽,可以采用多体并行存储器。其中______编址方式主要用于扩大存储容量,而______编址方式可以提高存储器的存取速度。

💬 解析:
第一空填:高位交叉(顺序编址)。
第二空填:低位交叉(多体并行)。


💬 互动话题

你觉得现在的电脑内存(DDR4/DDR5)用的是哪种技术更多呢?欢迎在评论区留言讨论!如果觉得这篇文章对你有帮助,别忘了点赞+在看,你的支持是我更新的最大动力!


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询