| 项目 | 值 |
|---|---|
| 双端口 RAM | 两个独立端口,可同时访问 |
| 多模块存储器 | 高位交叉 / 低位交叉编址 |
| 低位交叉 | 连续地址分布在不同模块,可并行 |
单体单端口存储器每次只能进行一次访问,限制了带宽。双端口 RAM和多模块存储器通过并行访问提高带宽,是解决 CPU 与存储器速度不匹配的重要手段。
当两端口同时访问同一地址时:用 BUSY 信号延迟一方、或按优先级仲裁;两端口同时写同一地址会产生数据冲突(必须避免)。
应用:双核 CPU 共享数据、CPU 与 DMA 共享内存、多处理器通信。
单体存储器带宽受限,多模块并行工作可提高带宽。带宽 = 数据宽度 $\times$ 模块数 / 存取周期。
地址高位选模块,低位选模块内地址;连续地址分布在同一模块。
模块0:0, 1, 2, ..., m-1
模块1:m, m+1, ..., 2m-1
模块2:2m, 2m+1, ..., 3m-1
...
总地址 = [模块号(高)][模块内地址(低)]
连续访问同一模块 → 无并行;跨模块访问才可并行。适合随机访问。
地址低位选模块,高位选模块内地址;连续地址分布在不同模块。
模块0:0, 4, 8, 12, ...
模块1:1, 5, 9, 13, ...
模块2:2, 6, 10, 14, ...
模块3:3, 7, 11, 15, ...
总地址 = [模块内地址(高)][模块号(低)]
连续访问不同模块 → 可并行,大幅提升带宽,适合突发访问。理想带宽 = m × (数据宽度 / T)。
| 特性 | 顺序编址 | 交叉编址 |
|---|---|---|
| 模块选择 | 高位地址 | 低位地址 |
| 连续地址 | 同一模块 | 不同模块 |
| 并行性 | 低 | 高 |
| 适合场景 | 随机访问 | 顺序 / 突发访问 |
| 冲突概率 | 高 | 低 |
高位交叉(顺序):地址格式 [模块号(高)][模块内地址(低)],高位译码选模块。
低位交叉(交叉)⭐:地址格式 [模块内地址(高)][模块号(低)],低位直接选模块。
CPU ←→ L1 ←→ L2 ←→ L3 ←→ 主存 ←→ 磁盘
快 慢
小 大
贵 便宜
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。